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