General Policies

From FreeM Wiki
Revision as of 16:02, 3 August 2023 by Smw (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Copyright and License

This document is Copyright © 2020, 2021, 2023 John P. Willis

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover texts, and with no Back-Cover Texts.

Mission Statement

To provide a highly portable, feature-rich, free software implementation of the M programming language, focused on extensibility and easy application development on client, desktop, single-board, and older server devices. Identity

FreeM is a free software implementation of the M programming language and database. This is woven into the foundational motivations of our core developers, and the observance of this identity is to be considered a foundational rule of the project.

We are first and foremost lovers of the M programming language, and are proud to represent it with our quirky–yet feature-rich–little implementation. No effort will be made or allowed to hide our M identity or cultural and community heritage.

External Forks

At least one external fork of FreeM is known to exist, pre-dating the current maintainer of the GUMP-era codebase taking over. The FreeM project and its members may not publicly disparage or plagiarize from any such fork. If the maintainers of these forks wish to join this project, they will be welcomed warmly into our community.

Other Free Implementations

FreeM project contributors are free to criticize other free software M implementations outside of the project. However, disparaging other free software implementations in the FreeM mailing lists, Discord server, or other public or private social media venues run by or on behalf of the FreeM Project will not be tolerated, nor may FreeM contributors indicate or insinuate that their criticisms in other venues represent the official opinion of the FreeM Project itself.

Those who have signed nondisclosure agreements involving proprietary, closed-source M implementations may not contribute source code to FreeM, as our project and its host organization, Coherent Logic Development, cannot afford to defend itself against copyright infringement claims.

Operating System Nomenclature

In FreeM Project documentation, Linux refers solely to a POSIX-compliant kernel written by Linus Torvalds. Operating systems built around this kernel will be referred to as GNU/Linux or GNU+Linux.

Mailing Lists

The freem-dev mailing list ( is a venue for discussions among those contributing to FreeM itself. Commit messages are automatically sent there.

The freem-users mailing list ( is a venue for those using FreeM to develop M programs and applications.

Project Governance

Internal project governance is handled in the project-policy channel of the FreeM Community Discord server.

John P. Willis ( is the project lead. In John’s absence, any member of the ``Core Team from the FreeM Community Discord server is authorized to speak with authority on matters of FreeM project governance, or redirect such matters to John per their own judgment.

Relationship to Coherent Logic Development LLC

Coherent Logic Development LLC lends its Internet and server infrastructure and corporate weight to the FreeM project. It does not exercise authority over the project itself or its contributors. We do not believe in corporate personhood.

Copyright Policy

Ethical Positioning

The FreeM Project strongly identifies with the free software movement, and does not associate itself with the ethically-lacking open source movement or terminology (please see Why Open Source Misses the Point of Free Software). We believe that the ethical implications of proprietary software are far more important than the mere practical implications. We believe there is a natural right to software freedom, and the laws written to protect rapacious proprietary software vendors are both unjust and ill-conceived. Software should first and foremost respect the four essential freedoms. Let the hoarders hoard their piles of money: we of the FreeM Project believe in all of the essential rights of the free software movement, and this position rests well above and beyond any commercial gain we stand to make from FreeM, if any.

This software is meant to empower individuals and strengthen communities, not to gain profit for its developers.

Code Licenses

FreeM will use strong copyleft licenses (namely, the GNU Affero General Public License, version 3 or later) for all contributions of code.

Documentation Licenses

Documentation will be released under the GNU Free Documentation License.

Contributor Protections

FreeM contributors will retain their individual copyright for their contributions.

FreeM contributors will also receive full credit for their contributions in the FreeM manual and on the FreeM website. Versioning and the Software Contract

Semantic Versioning

FreeM will adhere as closely as possible to Semantic Versioning 2.0.0:

  • Breaking changes will be limited to changes in major version
  • New functionality will increment the minor version
  • Fixes without functionality enhancements will increment the patch version

Releases prior to 1.0.0 come with no promises of stable APIs or functionality.

However, once a 1.0.0 release is reached, we will make every effort to avoid breaking API changes wherever possible, above and beyond the requirements enforced by semantic versioning. Issue Reporting

Issue reporting is handled exclusively through the FreeM GitLab repository

When reporting issues, please provide as much detail as possible. Leave the assignee field blank, unless you intend to assign yourself, and a FreeM core team member will assign the issue to the appropriate developer.

Repository Access

If you have write access to the FreeM git repository, please do your development in your own branch, and create a pull request for your changes. Unless you are a core developer, you may not commit directly to the main branch.

Code of Conduct

Please see Code of Conduct. We have adopted the Contributor Covenant.

Coding Standards

Contributions must follow the Coding Standards in Appendix E of The FreeM Manual.