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>