Annotation of freem/POLICY.md, revision 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>