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>