Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
163 changes: 163 additions & 0 deletions community-contribution-acceptance-criteria.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
# Acceptance criteria for community contributions

This document outlines the criteria and process for accepting new modules and code contributions

Check failure on line 3 in community-contribution-acceptance-criteria.md

View workflow job for this annotation

GitHub Actions / lint

Line length

community-contribution-acceptance-criteria.md:3:81 MD013/line-length Line length [Expected: 80; Actual: 96] https://github.com/DavidAnson/markdownlint/blob/v0.31.1/doc/md013.md
into the Mage-OS ecosystem, utilizing GitHub Discussions for submissions, voting, and decision-making.

Check failure on line 4 in community-contribution-acceptance-criteria.md

View workflow job for this annotation

GitHub Actions / lint

Line length

community-contribution-acceptance-criteria.md:4:81 MD013/line-length Line length [Expected: 80; Actual: 102] https://github.com/DavidAnson/markdownlint/blob/v0.31.1/doc/md013.md

[TOC]

## Acceptance Criteria for a module in mage-os-lab

### Requirements

**Value and Functionality**

Check failure on line 12 in community-contribution-acceptance-criteria.md

View workflow job for this annotation

GitHub Actions / lint

Emphasis used instead of a heading

community-contribution-acceptance-criteria.md:12 MD036/no-emphasis-as-heading/no-emphasis-as-header Emphasis used instead of a heading [Context: "Value and Functionality"] https://github.com/DavidAnson/markdownlint/blob/v0.31.1/doc/md036.md
* Provides significant value to a meaningful portion of Mage-OS users (either in require or require-dev)

Check failure on line 13 in community-contribution-acceptance-criteria.md

View workflow job for this annotation

GitHub Actions / lint

Lists should be surrounded by blank lines

community-contribution-acceptance-criteria.md:13 MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "* Provides significant value t..."] https://github.com/DavidAnson/markdownlint/blob/v0.31.1/doc/md032.md

Check failure on line 13 in community-contribution-acceptance-criteria.md

View workflow job for this annotation

GitHub Actions / lint

Line length

community-contribution-acceptance-criteria.md:13:81 MD013/line-length Line length [Expected: 80; Actual: 104] https://github.com/DavidAnson/markdownlint/blob/v0.31.1/doc/md013.md
* Offers unique functionality not already available in core Mage-OS
* Or demonstrably improves performance, security, or usability of existing features
* Solves a clear problem or fills a gap in the ecosystem

**Technical Requirements**

Check failure on line 18 in community-contribution-acceptance-criteria.md

View workflow job for this annotation

GitHub Actions / lint

Emphasis used instead of a heading

community-contribution-acceptance-criteria.md:18 MD036/no-emphasis-as-heading/no-emphasis-as-header Emphasis used instead of a heading [Context: "Technical Requirements"] https://github.com/DavidAnson/markdownlint/blob/v0.31.1/doc/md036.md
* Maintains high code quality with proper patterns and practices

Check failure on line 19 in community-contribution-acceptance-criteria.md

View workflow job for this annotation

GitHub Actions / lint

Lists should be surrounded by blank lines

community-contribution-acceptance-criteria.md:19 MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "* Maintains high code quality ..."] https://github.com/DavidAnson/markdownlint/blob/v0.31.1/doc/md032.md
* Follows Mage-OS/Magento coding standards
* Demonstrates compatibility with latest Mage-OS version
* Demonstrates active maintenance (recent updates, responsive to issues)
* Implements security best practices with no known vulnerabilities
* Avoids introducing excessive dependencies
* Follows semantic versioning principles

**Documentation and Support**

Check failure on line 27 in community-contribution-acceptance-criteria.md

View workflow job for this annotation

GitHub Actions / lint

Emphasis used instead of a heading

community-contribution-acceptance-criteria.md:27 MD036/no-emphasis-as-heading/no-emphasis-as-header Emphasis used instead of a heading [Context: "Documentation and Support"] https://github.com/DavidAnson/markdownlint/blob/v0.31.1/doc/md036.md
* Contains comprehensive documentation (usage, configuration, troubleshooting)

Check failure on line 28 in community-contribution-acceptance-criteria.md

View workflow job for this annotation

GitHub Actions / lint

Lists should be surrounded by blank lines

community-contribution-acceptance-criteria.md:28 MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "* Contains comprehensive docum..."] https://github.com/DavidAnson/markdownlint/blob/v0.31.1/doc/md032.md
* Includes clear installation instructions
* Show evidence of community adoption and support

**Licensing and Compliance**

Check failure on line 32 in community-contribution-acceptance-criteria.md

View workflow job for this annotation

GitHub Actions / lint

Emphasis used instead of a heading

community-contribution-acceptance-criteria.md:32 MD036/no-emphasis-as-heading/no-emphasis-as-header Emphasis used instead of a heading [Context: "Licensing and Compliance"] https://github.com/DavidAnson/markdownlint/blob/v0.31.1/doc/md036.md
* Uses a compatible open-source license: OSL3, BSD3, MIT, AFL (code released under GPL cannot be accepted)
* Complies with all legal requirements
* Contains proper attribution for any third-party code or dependencies

### Submission Process

1. **Create Module**: Develop your module following Mage-OS standards and best practices
2. **Submit Proposal**: Create a new discussion in the designated GitHub repository (TBD) using the "Module Submission" category
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TBD!

3. **Complete Template**: Fill out the provided submission template with details about:
* Purpose and functionality
* Target audience/users
* Technical implementation overview
* Testing approach
* Dependencies
* Maintenance plan
* Repository link where the module code can be reviewed

### Evaluation Process

#### 1. Community Review (15 Days)

* All module submissions will be open for community review for 15 calendar days starting from the next technical meeting
* Community members can provide feedback through:
* GitHub Discussion comments for technical feedback
* GitHub Discussion up/down votes for simple voting

#### 2. Technical Board Assessment

* After the community review period, the Technical Board will assess the module based on:
* Community feedback and votes
* Compliance with acceptance criteria
* Strategic alignment with Mage-OS roadmap
* Long-term maintainability

#### 3. Decision Communication

* The final decision will be communicated in the Discussion thread with explanation
* Possible outcomes include:
* Accept: Module approved for inclusion in mage-os-lab namespace
* Revise: Module requires specific changes before acceptance
* Reject: Module not accepted with explanation

#### 4. Revision Process

When a "Revise" decision is made:
* The Technical Board will provide specific, actionable feedback on required changes
* The module submitter has 30 days to implement requested changes
* Once changes are complete, the submitter adds a comment in the original Discussion thread indicating completion and linking to the updated code
* The Technical Board will conduct a focused re-evaluation within 15 days
* After re-evaluation, a final decision of "Accept" or "Reject" will be made
* In special cases, a second revision round may be granted at the Technical Board's discretion

### Post-Acceptance Requirements

Accepted modules must maintain:
* Timely responses to bug reports and security issues
* Compatibility with new Mage-OS releases
* Adherence to semantic versioning
* Documentation updates when functionality changes

## Deprecation and Removal

Modules may be marked for deprecation and eventual removal if:
* No active maintenance for an extended period
* Critical issues remain unaddressed
* Incompatibility with current Mage-OS versions
* Functionality has been superseded by core features


## Migration from mage-os-lab to mage-os

### Migration Criteria

The module must:
* comply to the same criterias for general admission
* demonstrate proven value and stability through real-world usage and community adoption.
* be actively maintained, with recent updates and responsiveness to issues.
* not have unresolved critical bugs or security vulnerabilities.

### Migration Process

1. Initiation
* Submit a migration request via a designated GitHub Discussion or issue in the relevant repository.
* Provide evidence of adoption, maintenance, and compliance with Mage-OS standards.
2. Community Review
* Open a 15-day review window for community feedback and voting, similar to new module submissions.
3. Technical Board Assessment
* The Technical Board reviews feedback and ensures all criteria are met.
* Special attention is given to long-term maintainability, strategic fit, and compatibility with Mage-OS core.
4. Decision
* The outcome (approve, request changes, or reject) is communicated in the original thread.
* If changes are requested, a 30-day window is given for revisions, followed by a focused re-evaluation.


## Bundling a Module into the Official Mage-OS Release

### Bundling Criteria

* The module must address a core need for a significant portion of Mage-OS users.
* It should not duplicate functionality already in the core or another bundled module.
* The module must be stable, well-maintained, and fully compatible with the latest Mage-OS release.
* Code quality, documentation, and security must meet the highest standards.
* License must be compatible with Mage-OS requirements.

### Bundling Process

1. Proposal
* Submit a bundling proposal via GitHub Discussion or issue, outlining the case for inclusion (user impact, necessity, maintenance plan).
2. Community Review
* Open a 15-day period for community input and voting, mirroring the module acceptance process.
3. Technical Board Review
* The Technical Board evaluates the proposal, considering community feedback, technical merit, and strategic alignment.
4. Decision
* The final decision (accept, request changes, or reject) is posted with rationale.
* If changes are required, a revision window is provided, followed by a re-evaluation.

## Abandoned community projects

If a project is in the mage-os-lab namespace, didn’t reach a stable release, and becomes inactive for an
extended period, it will be archived.

Before archival an admin will modify the project’s README file adding this notice at the beginning:

```
### ⚠️ Project Archived
This Mage-OS project did not reach a stable release and has been inactive for an extended period.
Archiving is not permanent, if you’d like to resume development, contact the Mage-OS maintainers to have it unarchived.
🧡 Thank you to all who contributed.

----
```