This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Project Lifecycle

We use GitHub Custom Properties to indentify a Project’s Classification within our Community.

Custom Properties

Flagship-Project

This is a boolean. Where set to true, this indicates the Project has Flagship Status - i.e. it’s popular or something we want to highlight.

Project-Status

There are four options to choose from:

  1. Active - the project is being actively maintained
  2. Archived - the project is not being maintained
  3. Graduated - the project has been superseded by official Sonatype Project

The fourth option is to leave this field unset. This means the project’s status has not yet been assessed and confirmed.

You can see a list of all Projects that have not yet been assessed for status by visiting here.

1 - Starting a New Project

You can share your idea for a new Project by starting a Discussion here.

Organization Admins can execute the below procedure to create new Project within the Sonatype Open Source Community.

New Project Proposal

Prerequisites

  • Ensure you have defined a clear purpose for the new project
  • Maintaniers of the project must have previously contributed to another Sonatype Open Source Project

Creating the Project

External Project Contributions

External contributors may propose an existing repository for migration into the Sonatype Open Source Community. Follow these steps to accept and onboard the repository:

1. Proposal Submission

  • The external contributor should initiate a Project Proposal Discussion.
  • Include the following details in the discussion:
    • Public Repository URL
    • A summary of the project’s purpose and goals
    • Any existing contributors who intend to transition as maintainers

2. Initial Review

  • Ensure the repository aligns with the Community’s goals and standards.
  • Confirm that the repository has an open-source license compatible with the Sonatype Open Source Community licensing policy.
  • Assess the project’s activity level, community engagement, and quality of documentation.

3. Feedback Period

  • Allow a period for community members and Organization Admins to review and provide feedback on the proposal.
  • A thorough review must be performed by Sonatype’s legal team.
  • Address any concerns or required changes before proceeding.

4. Repository Transfer

Once the proposal is approved, the repository must be transferred to the Sonatype Community GitHub Organization.

The transfer process includes:

5. Assign Roles and Responsibilities

  • Ensure that proposed maintainers meet the Maintainer Requirements.
  • Assign the necessary roles and permissions to maintainers and contributors.
  • Update the repository’s Code Owners and the respective GitHub Team.

6. Announce and Promote

  • Publicly announce the inclusion of the project in the Community through appropriate channels.
  • Update the Community Project List to reflect the new addition.

2 - Activating a Project

Projects within our Community may occasionally transition between states, such as moving from an unset or archived status to active. This process ensures projects are thoughtfully evaluated and meet the standards required for active maintenance.

Activating a Project

To activate a project, follow these steps:

1. Review the Project

Assess the project’s relevance, dependencies, and community interest. This includes:

  • Consider recent issues, pull requests, or community engagement
  • Review alignment with current Community goals, as applicable
  • Confirm the project’s compliance with Community Project Standards

2. Assign Maintainer(s)

Ensure at least one maintainer is identified to oversee the project and handle ongoing contributions. This step is crucial for maintaining quality and responsiveness.

Maintainers MUST have previously contributed to another Sonatype Open Source Project. This ensures they are familiar with our Community workflows and have signed our CLA.

Assigning the initial maintainers for a project requires unanimous approval of the Community Admins.

3. Update the Custom Property

Modify the Project-Status property using GitHub Custom Properties:

  • Set to Active to indicate the project is actively maintained.

For projects previously archived:

  • First, unarchive the repository via the GitHub interface.

4. Communicate the Change

  • Announce the project’s activation in relevant Community channels.
  • Update any associated documentation to reflect its active status.

Qualifying Projects

For a list of projects currently archived or unset, use the following links:

Activation is a deliberate process aimed at fostering robust and meaningful contributions. By ensuring thoughtful evaluation, we maintain the integrity and quality of our Community projects.

3 - Graduation Process

For some of our Community Projects, there comes a time where Sonatype officially supports the features or functions provided by a Community Project. In these situations we mark the Community Project as Graduated by following the below process.

Graduation Preparation

Project Graduation Proposal

For the sake of historical context and community insight, a GitHub Issue should be created to explain the reasoning and expectations for graduation. This is benefitial even in cases where community engagement is low.

Look here to see a great real-world example!

Project Graduation Notice

The Community Project should have it’s README on it’s main branch updated to contain an appropriate Graduation Notice. An example might be:

> ℹ️ As of 7th November 2024, this community project has [graduated](https://contribute.sonatype.com/docs/project-lifecycle/) and is offered as part of Sonatype's commercial offerings - see [here](https://help.sonatype.com/en/configuring-blob-stores.html#google-cloud-blob-store) for full details.
>
> 🚧 This community project will receive no further updates or maintenance.

It’s good practice to be specific about when the project graduated, and where interested parties can head to find out more.

CI/CD Closure

Any existing CI/CD configuration should be removed and projects deprovisioned from CI/CD systems.

Project Properties

The project’s Custom Properties should be updated to reflect the Graduated status.

Open Issues

Any open issues should be closed with a notice of the graduation.

Graduating

Once the preparation steps are executed, the project should be marked as archived in GitHub.