Annotation of freem/POLICY.md, revision 1.2
1.1 snw 1: # FreeM Project Policies
2:
3:
4: ## Copyright and License
5:
1.2 ! snw 6: This document is Copyright (C) 2020, 2025 Serena Willis
1.1 snw 7:
8: Permission is granted to copy, distribute and/or modify this document under the
9: terms of the GNU Free Documentation License, Version 1.3 or any later version
10: published by the Free Software Foundation; with no Invariant Sections, with no
11: Front-Cover texts, and with no Back-Cover Texts.
12:
13: ## Mission Statement
14:
15: To provide a highly portable, feature-rich, free software implementation of the
16: M programming language, compliant with relevant MDC standards, and focused on
17: extensibility and easy application development on client, desktop, single-board,
18: and older server devices.
19:
20: ## Identity
21:
22: FreeM is an implementation of the M programming language and database. This is
23: woven into the foundational motivations of our core developers, and the
24: observance of this identity is to be considered a foundational rule of the
25: project.
26:
27: We are first and foremost lovers of the M programming language, and are proud
28: to represent it with our quirky--yet feature-rich--little implementation. No
29: effort will be made or allowed to hide our M identity or cultural and community
30: heritage.
31:
32: ## External Forks
33:
34: At least one external fork of FreeM is known to exist, pre-dating the current
35: maintainer of the GUMP-era codebase taking over. The FreeM project and its
36: members may not publicly disparage or plagiarize from any such fork. If the
37: maintainers of these forks wish to join this project, they will be welcomed
38: warmly into our community.
39:
40: ## Other Implementations
41:
42: FreeM project contributors are free to criticize other M implementations
43: outside of the project. However, disparaging other implementations in the
44: FreeM mailing lists, Discord server, or other public or private social media
45: venues will not be tolerated, nor may FreeM contributors indicate or
46: insinuate that their criticisms in other venues represent the official opinion
47: of the FreeM project itself.
48:
49: Those who have signed nondisclosure agreements involving proprietary, closed-source
50: M implementations may not contribute source code to FreeM, as our project and its
51: host organization, Coherent Logic Development, cannot afford to defend itself
52: against copyright infringement claims.
53:
54: ## Mailing Lists
55:
56: The *freem-dev* mailing list (freem-dev@mailman.chivanet.org) is a venue for
57: discussions among those contributing to FreeM itself. Commit messages are
58: automatically sent there.
59:
60: The *freem-users* mailing list (freem-users@mailman.chivanet.org) is a venue for
61: those using FreeM to develop M programs and applications.
62:
63: ## Project Governance
64:
65: Internal project governance is handled in the *project-policy* channel of the
66: *FreeM Community* Discord server.
67:
1.2 ! snw 68: Serena Willis <snw@coherent-logic.com> is the project lead. In Serena's absence,
1.1 snw 69: any member of the "Core Team" from the *FreeM Community* Discord server is
70: authorized to speak with authority on matters of FreeM project governance, or
1.2 ! snw 71: redirect such matters to Serena per their own judgment.
1.1 snw 72:
73: ## Relationship to Coherent Logic Development LLC
74:
75: Coherent Logic Development LLC lends its Internet and server infrastructure and
76: corporate weight to the FreeM project. It does not exercise authority over the
77: project itself or its contributors. We do not believe in corporate personhood.
78:
79: ## Copyright Policy
80:
81: ### Ethical Positioning
82:
83: FreeM strongly identifies with the *free software* movement, and does not associate
1.2 ! snw 84: itself with the ethically hollow *open source* movement or terminology. We believe
1.1 snw 85: that the ethical implications of proprietary software are far more important than
86: the mere practical implications. We believe there is a natural right to software
87: freedom, and the laws written to protect proprietary software devils are both
88: unjust and ill-conceived. Let the hoarders hoard their piles of money: we of the
89: FreeM project believe in all of the essential rights of the free software movement,
90: and this position rests well above and beyond any commercial gain we stand to make
91: from FreeM, if any.
92:
93: ### Code Licenses
94:
95: FreeM will use strong copyleft licenses (namely, the GNU Affero General Public
96: License, version 3 or later) for all contributions of code.
97:
98: ### Documentation
99:
100: Documentation will be released under the GNU Free Documentation License.
101:
102: ### Contributor Protections
103:
104: FreeM contributors will retain their individual copyright for their contributions.
105:
106: FreeM contributors will also receive full credit for their contributions in the
107: FreeM manual and on the FreeM website.
108:
109: ## Versioning and the Software Contract
110:
111: ### Semantic Versioning
112:
113: FreeM will adhere as closely as possible to Semantic Versioning 2.0.0:
114:
115: * Breaking changes will be limited to changes in major version
116: * New functionality will increment the minor version
117: * Fixes without functionality enhancements will increment the patch version
118:
119: Releases prior to 1.0.0 come with no promises of stable APIs or functionality.
120:
121: However, once a 1.0.0 release is reached, we will make every effort to avoid
122: breaking API changes wherever possible, above and beyond the requirements
123: enforced by semantic versioning.
124:
125: ## Issue Reporting
126:
127: Issue reporting is handled exclusively through the FreeM GitLab repository
128: at https://gitlab.coherent-logic.com/jpw/freem
129:
130: When reporting issues, please provide as much detail as possible. Leave the
131: assignee field blank, unless you intend to assign yourself, and a FreeM
132: core team member will assign the issue to the appropriate developer.
133:
134: ## Repository Access
135:
136: If you have write access to the FreeM git repository, please do your development
137: in your own branch, and create a pull request for your changes. Unless you are
138: a core developer, you may not commit directly to the main branch.
139:
140: ## Code of Conduct
141:
142: For the moment, the FreeM project will observe the *GNU Kind Communication
143: Guidelines* (https://www.gnu.org/philosophy/kind-communication.html) as a
144: Code of Conduct, pending the development of a more exhaustive and general
145: set of community software guidelines.
146:
147: Our main focus is neither punitive nor retributive: most people who push the
148: limits of acceptable behavior should be gently and privately reminded of the
149: broader goals of the project, and guided with the same gentle hand towards
150: healthier means of communication.
151:
152: FreeM developers should strive to display radical hospitality--free of judgment--
153: to all community members, participants, and outsiders, no matter what their
154: background or belief system.
155:
156: The one category of offense for which tolerance will be strictly limited is
157: hypocrisy. Hypocrisy, in our estimation, is most prominently on display in acts
158: based on prejudice. Whether against a race, culture, gender identity, sexual
159: orientation, religion, language, a mental, emotional, or physical challenge, all
160: prejudices are rooted in hypocrisy.
161:
162: Place the needs of the community above your own, and you will get along well here.
163:
164: ## Standards Compliance
165:
166: * The FreeM project will endeavor to comply with M Development Committee standards
167: to the best of its ability, and to the extent to which FreeM's architecture
168: allows.
169:
170: * The FreeM project will maintain a presence in MDC proceedings. Its representative(s)
171: will relay all MDC decisions to the FreeM developer community.
172:
173: * The FreeM project will respect MDC guidelines with regards to vendor-specific
174: extensions (using 'Z' prefixes, etc.).
175:
176: * The FreeM project *may* implement MDC proposals prior to such proposals being
177: elevated to type A extension status. Such features will be clearly marked as
178: being subject to change, to avoid problems for FreeM users, should such proposals
179: fail to become extensions, or should their syntax or semantics change.
180:
181: * The FreeM project *may* retain non-standard features where architectural issues
182: preclude the implementation of a standards-compliant alternative, until such
183: time as a standards-compliant solution may be found. Such exceptions
184: will be noted in the Conformance Clause in Appendix F of *The FreeM Manual*.
185:
186: * Once the 1.0.0 release milestone is reached, each major or minor release will
187: update the Conformance Clause in Appendix F of *The FreeM Manual*. This
188: conformance clause will include a full, un-redacted report of a thorough and
189: complete run of the *M Validation and Test Suite* (or *MVTS*), to include both
190: success and error conditions. To hide areas where FreeM fails to conform to
191: MDC standards does a great disservice to this project, undermines the labors
192: of the MDC, and undermines trust in our community of users and developers.
193:
194: ## Coding Standards
195:
196: Contributions must follow the Coding Standards in Appendix E of The FreeM Manual.
197:
198:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>