File:  [Coherent Logic Development] / freem / POLICY.md
Revision 1.1: download - view: text, annotated - select for diffs
Sun Jan 19 02:04:04 2025 UTC (7 months, 1 week ago) by snw
Branches: MAIN
CVS tags: HEAD
Initial revision

    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>