Project Lifecycle | Sonatype Open Source Community Handbook

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.

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

Why?

Having contributed previously means you’ll have signed our CLA and understand our Community workflows.

Creating the Project

Heads up!

This will cause a number of default files to be placed into your new repository. It will also automatically inherit a number of Organization defined files that you do not need to redefine in your 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

2. Initial Review

3. Feedback Period

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

6. Announce and Promote

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:

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.

Bring your friends

Additional maintainers may be added at this stage OR a later date with unanimous approval from the existing maintainers and support from at least one Community Admin.

3. Update the Custom Property

Modify the Project-Status property using GitHub Custom Properties:

For projects previously archived:

4. Communicate the Change

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.

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.