File:  [Coherent Logic Development] / freem / POLICY.md
Revision 1.2: download - view: text, annotated - select for diffs
Sun Mar 9 15:20:18 2025 UTC (4 months, 3 weeks ago) by snw
Branches: MAIN
CVS tags: v0-63-1-rc1, v0-63-0-rc1, v0-63-0, v0-62-3, v0-62-2, v0-62-1, v0-62-0, HEAD
Begin formatting overhaul and REUSE compliance

    1: # FreeM Project Policies
    2: 
    3: 
    4: ## Copyright and License
    5: 
    6: This document is Copyright (C) 2020, 2025 Serena 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: ## 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: 
   68: Serena Willis <snw@coherent-logic.com> is the project lead. In Serena's absence,
   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
   71: redirect such matters to Serena per their own judgment.
   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
   84: itself with the ethically hollow *open source* movement or terminology. We believe
   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>