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 (3 weeks ago) by snw
Branches: MAIN
CVS tags: v0-62-3, v0-62-2, v0-62-1, v0-62-0, HEAD
Begin formatting overhaul and REUSE compliance

# FreeM Project Policies


## Copyright and License

This document is Copyright (C) 2020, 2025 Serena Willis

Permission is granted to copy, distribute and/or modify this document under the 
terms of the GNU Free Documentation License, Version 1.3 or any later version 
published by the Free Software Foundation; with no Invariant Sections, with no 
Front-Cover texts, and with no Back-Cover Texts.

## Mission Statement

To provide a highly portable, feature-rich, free software implementation of the 
M programming language, compliant with relevant MDC standards, and focused on
extensibility and easy application development on client, desktop, single-board,
and older server devices.

## Identity

FreeM is an implementation of the M programming language and database. This is
woven into the foundational motivations of our core developers, and the
observance of this identity is to be considered a foundational rule of the
project.

We are first and foremost lovers of the M programming language, and are proud
to represent it with our quirky--yet feature-rich--little implementation. No
effort will be made or allowed to hide our M identity or cultural and community
heritage. 

## External Forks

At least one external fork of FreeM is known to exist, pre-dating the current
maintainer of the GUMP-era codebase taking over. The FreeM project and its 
members may not publicly disparage or plagiarize from any such fork. If the
maintainers of these forks wish to join this project, they will be welcomed
warmly into our community.

## Other Implementations

FreeM project contributors are free to criticize other M implementations 
outside of the project. However, disparaging other implementations in the
FreeM mailing lists, Discord server, or other public or private social media
venues will not be tolerated, nor may FreeM contributors indicate or 
insinuate that their criticisms in other venues represent the official opinion
of the FreeM project itself.

Those who have signed nondisclosure agreements involving proprietary, closed-source
M implementations may not contribute source code to FreeM, as our project and its
host organization, Coherent Logic Development, cannot afford to defend itself 
against copyright infringement claims.

## Mailing Lists

The *freem-dev* mailing list (freem-dev@mailman.chivanet.org) is a venue for
discussions among those contributing to FreeM itself. Commit messages are 
automatically sent there.

The *freem-users* mailing list (freem-users@mailman.chivanet.org) is a venue for
those using FreeM to develop M programs and applications.

## Project Governance

Internal project governance is handled in the *project-policy* channel of the
*FreeM Community* Discord server.

Serena Willis <snw@coherent-logic.com> is the project lead. In Serena's absence,
any member of the "Core Team" from the *FreeM Community* Discord server is 
authorized to speak with authority on matters of FreeM project governance, or
redirect such matters to Serena per their own judgment.

## Relationship to Coherent Logic Development LLC

Coherent Logic Development LLC lends its Internet and server infrastructure and
corporate weight to the FreeM project. It does not exercise authority over the
project itself or its contributors. We do not believe in corporate personhood.

## Copyright Policy

### Ethical Positioning

FreeM strongly identifies with the *free software* movement, and does not associate
itself with the ethically hollow *open source* movement or terminology. We believe
that the ethical implications of proprietary software are far more important than
the mere practical implications. We believe there is a natural right to software
freedom, and the laws written to protect proprietary software devils are both 
unjust and ill-conceived. Let the hoarders hoard their piles of money: we of the
FreeM project believe in all of the essential rights of the free software movement,
and this position rests well above and beyond any commercial gain we stand to make
from FreeM, if any.

### Code Licenses

FreeM will use strong copyleft licenses (namely, the GNU Affero General Public 
License, version 3 or later) for all contributions of code. 

### Documentation

Documentation will be released under the GNU Free Documentation License.

### Contributor Protections

FreeM contributors will retain their individual copyright for their contributions.

FreeM contributors will also receive full credit for their contributions in the
FreeM manual and on the FreeM website.

## Versioning and the Software Contract

### Semantic Versioning

FreeM will adhere as closely as possible to Semantic Versioning 2.0.0:

* Breaking changes will be limited to changes in major version
* New functionality will increment the minor version
* Fixes without functionality enhancements will increment the patch version

Releases prior to 1.0.0 come with no promises of stable APIs or functionality.

However, once a 1.0.0 release is reached, we will make every effort to avoid 
breaking API changes wherever possible, above and beyond the requirements 
enforced by semantic versioning.

## Issue Reporting

Issue reporting is handled exclusively through the FreeM GitLab repository
at https://gitlab.coherent-logic.com/jpw/freem

When reporting issues, please provide as much detail as possible. Leave the
assignee field blank, unless you intend to assign yourself, and a FreeM
core team member will assign the issue to the appropriate developer.

## Repository Access

If you have write access to the FreeM git repository, please do your development
in your own branch, and create a pull request for your changes. Unless you are
a core developer, you may not commit directly to the main branch.

## Code of Conduct

For the moment, the FreeM project will observe the *GNU Kind Communication 
Guidelines* (https://www.gnu.org/philosophy/kind-communication.html) as a 
Code of Conduct, pending the development of a more exhaustive and general
set of community software guidelines.

Our main focus is neither punitive nor retributive:  most people who push the
limits of acceptable behavior should be gently and privately reminded of the 
broader goals of the project, and guided with the same gentle hand towards
healthier means of communication.

FreeM developers should strive to display radical hospitality--free of judgment--
to all community members, participants, and outsiders, no matter what their
background or belief system. 

The one category of offense for which tolerance will be strictly limited is
hypocrisy. Hypocrisy, in our estimation, is most prominently on display in acts
based on prejudice. Whether against a race, culture, gender identity, sexual
orientation, religion, language, a mental, emotional, or physical challenge, all
prejudices are rooted in hypocrisy.

Place the needs of the community above your own, and you will get along well here.

## Standards Compliance

* The FreeM project will endeavor to comply with M Development Committee standards
  to the best of its ability, and to the extent to which FreeM's architecture
  allows.

* The FreeM project will maintain a presence in MDC proceedings. Its representative(s)
  will relay all MDC decisions to the FreeM developer community.

* The FreeM project will respect MDC guidelines with regards to vendor-specific
  extensions (using 'Z' prefixes, etc.).

* The FreeM project *may* implement MDC proposals prior to such proposals being
  elevated to type A extension status. Such features will be clearly marked as
  being subject to change, to avoid problems for FreeM users, should such proposals
  fail to become extensions, or should their syntax or semantics change.

* The FreeM project *may* retain non-standard features where architectural issues
  preclude the implementation of a standards-compliant alternative, until such
  time as a standards-compliant solution may be found. Such exceptions
  will be noted in the Conformance Clause in Appendix F of *The FreeM Manual*.

* Once the 1.0.0 release milestone is reached, each major or minor release will
  update the Conformance Clause in Appendix F of *The FreeM Manual*. This
  conformance clause will include a full, un-redacted report of a thorough and
  complete run of the *M Validation and Test Suite* (or *MVTS*), to include both
  success and error conditions. To hide areas where FreeM fails to conform to
  MDC standards does a great disservice to this project, undermines the labors
  of the MDC, and undermines trust in our community of users and developers.

## Coding Standards

Contributions must follow the Coding Standards in Appendix E of The FreeM Manual. 



FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>