Skip to content

Instantly share code, notes, and snippets.

@rusty-snake
Last active May 30, 2022 20:12
Show Gist options
  • Save rusty-snake/574a91f1df9f97ec77ca308d6d731e29 to your computer and use it in GitHub Desktop.
Save rusty-snake/574a91f1df9f97ec77ca308d6d731e29 to your computer and use it in GitHub Desktop.
Proposal to easily show the maintenance status of a project.

maintenance status

maintenance-status: passively-maintained version: 3.1.0

Proposal to easily show the maintenance status of a project.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

Motivation

You often find interesting projects on Codeberg/GitHub/GitLab but don't know if they are still maintained by anyone. This proposal tries to improve this situation by introducing simple and clearly defined labels for the maintenance status of a project.

Statuses

actively-developed

maintenance-status: actively-developed

[![maintenance-status: actively-developed](https://img.shields.io/badge/maintenance--status-actively--developed-brightgreen)](https://gist.github.com/rusty-snake/574a91f1df9f97ec77ca308d6d731e29)

This project is being actively developed, new features are planned and the maintainer responds to issues/PRs in a reasonable time.

Attribute Value
New Features Yes
Bug fixes Yes
Security fixes Yes
Answer questions Yes
use Ok
start use Ok

passively-maintained

maintenance-status: passively-maintained

[![maintenance-status: passively-maintained](https://img.shields.io/badge/maintenance--status-passively--maintained-forestgreen)](https://gist.github.com/rusty-snake/574a91f1df9f97ec77ca308d6d731e29)

This project is passively maintained, bugs are fixed, but no new features are planned. The maintainer will try to respond to issues/PRs over time.

Attribute Value
New Features No
Bug fixes Yes
Security fixes Yes
Answer questions Yes
use Ok
start use Ok

irregularly-developed

maintenance-status: irregularly-developed

[![maintenance-status: irregularly-developed](https://img.shields.io/badge/maintenance--status-irregularly--developed-olive)](https://gist.github.com/rusty-snake/574a91f1df9f97ec77ca308d6d731e29)

This project is being irregularly developed, new features are planned, bugs are fixed and the maintainer responds to issues/PRs over time. However, this happens only irregularly.

Attribute Value
New Features Yes
Bug fixes Yes
Security fixes Yes
Answer questions Yes
use Maybe
start use Maybe

as-is

maintenance-status: as-is

[![maintenance-status: as-is](https://img.shields.io/badge/maintenance--status-as--is-yellow)](https://gist.github.com/rusty-snake/574a91f1df9f97ec77ca308d6d731e29)

The project is feature complete. The maintainer does not intend to continue working on it or providing support. It is perfectly fine to use this project unless you need support or find a bug. The maintainer MAY still fix security vulnerabilities or answer questions, however there is no guarantee that this will happen. When switching to this status, all known bugs (at this time) SHOULD be documented somewhere.

Attribute Value
New Features No
Bug fixes No
Security fixes Maybe
Answer questions Maybe
use Ok
start use Ok

deprecated

maintenance-status: deprecated

[![maintenance-status: deprecated](https://img.shields.io/badge/maintenance--status-deprecated-orange)](https://gist.github.com/rusty-snake/574a91f1df9f97ec77ca308d6d731e29)

This project is deprecated, it will be obsolete in the future. The maintainer continues to work on it and it is fine to continue using it for now while you look for or switch to alternatives. Of course, you should not start using this project.

Attribute Value
New Features No
Bug fixes Yes
Security fixes Yes
Answer questions Yes
use Ok
start use No

obsolete

maintenance-status: obsolete

[![maintenance-status: obsolete](https://img.shields.io/badge/maintenance--status-obsolete-red)](https://gist.github.com/rusty-snake/574a91f1df9f97ec77ca308d6d731e29)

This project is obsolete, the maintainer strongly advises against using it. The maintainer MAY continue to work on it. The maintainer SHOULD list alternatives and provide instructions for switching to alternatives.

Attribute Value
New Features No
Bug fixes Maybe
Security fixes Maybe
Answer questions Maybe
use No
start use No

personal

maintenance-status: personal

[![maintenance-status: personal](https://img.shields.io/badge/maintenance--status-personal-hotpink)](https://gist.github.com/rusty-snake/574a91f1df9f97ec77ca308d6d731e29)

This is a personal project and not intended to be used by anyone else. Interested people can use it as a reference and pick up parts from it.

Attribute Value
New Features Maybe
Bug fixes Maybe
Security fixes Maybe
Answer questions Maybe
use No
start use No

experimental

maintenance-status: experimental

[![maintenance-status: experimental](https://img.shields.io/badge/maintenance--status-experimental-palevioletred)](https://gist.github.com/rusty-snake/574a91f1df9f97ec77ca308d6d731e29)

This project is a technical demonstration and is not intended for serious use.

Attribute Value
New Features Maybe
Bug fixes Maybe
Security fixes Maybe
Answer questions Maybe
use No
start use No

Basic usage

To apply the basic variant of this proposal, you MUST add a badge to the README of the project indicating the maintenance status. There are two options:

  • An image like the ones used above. You SHOULD choose this option if the format of your README supports images (e.g. markdown). If you choose this option, you MUST provide a fallback message styled like the second option.
  • A text message in the form maintenance-status: <STATUS> (example: maintenance-status: actively-developed). If the format of your README does not support images (e.g. plain text) or a fallback message for images, you MUST choose this option.

Advanced usage

In order to prevent outdated information, it is RECOMMENDED to add a date to the maintenance status. This date SHALL be renewed no later than every three months.

If the date is older then three months, you should ask the maintainer to update it (except for as-is and obsolete). Furthermore, the maintenance status SHOULD be treated according to this table.

stated status activity in the last month no activity in the last month
actively-developed passively-maintained as-is
passively-maintained passively-maintained as-is
irregularly-developed irregularly-developed irregularly-developed
as-is as-is as-is
deprecated deprecated obsolete
obsolete obsolete obsolete
personal personal personal
experimental experimental experimental

Badges

maintenance-status: actively-developed (as of 2021-01-01)

[![maintenance-status: actively-developed (as of 2021-01-01)](https://img.shields.io/badge/maintenance--status-actively--developed_%28as_of_2021--01--01%29-brightgreen)](https://gist.github.com/rusty-snake/574a91f1df9f97ec77ca308d6d731e29)

maintenance-status: passively-maintained (as of 2021-01-01)

[![maintenance-status: passively-maintained (as of 2021-01-01)](https://img.shields.io/badge/maintenance--status-passively--maintained_%28as_of_2021--01--01%29-forestgreen)](https://gist.github.com/rusty-snake/574a91f1df9f97ec77ca308d6d731e29)

maintenance-status: irregularly-developed (as of 2021-01-01)

[![maintenance-status: irregularly-developed (as of 2021-01-01)](https://img.shields.io/badge/maintenance--status-irregularly--developed_%28as_of_2021--01--01%29-olive)](https://gist.github.com/rusty-snake/574a91f1df9f97ec77ca308d6d731e29)

maintenance-status: as-is (as of 2021-01-01)

[![maintenance-status: as-is (as of 2021-01-01)](https://img.shields.io/badge/maintenance--status-as--is_%28as_of_2021--01--01%29-yellow)](https://gist.github.com/rusty-snake/574a91f1df9f97ec77ca308d6d731e29)

maintenance-status: deprecated (as of 2021-01-01)

[![maintenance-status: deprecated (as of 2021-01-01)](https://img.shields.io/badge/maintenance--status-deprecated_%28as_of_2021--01--01%29-orange)](https://gist.github.com/rusty-snake/574a91f1df9f97ec77ca308d6d731e29)

maintenance-status: obsolete (as of 2021-01-01)

[![maintenance-status: obsolete (as of 2021-01-01)](https://img.shields.io/badge/maintenance--status-obsolete_%28as_of_2021--01--01%29-red)](https://gist.github.com/rusty-snake/574a91f1df9f97ec77ca308d6d731e29)

maintenance-status: personal (as of 2021-01-01)

[![maintenance-status: personal (as of 2021-01-01)](https://img.shields.io/badge/maintenance--status-personal_%28as_of_2021--01--01%29-hotpink)](https://gist.github.com/rusty-snake/574a91f1df9f97ec77ca308d6d731e29)

maintenance-status: experimental (as of 2021-01-01)

[![maintenance-status: experimental (as of 2021-01-01)](https://img.shields.io/badge/maintenance--status-experimental_%28as_of_2021--01--01%29-palevioletred)](https://gist.github.com/rusty-snake/574a91f1df9f97ec77ca308d6d731e29)

Versioning

Draft

Because the meaning of the different maintenance statuses may change between different versions of this proposal, you should link to the exact reversion you are using.

Unresolved: How to provided snippets with the current revision.

Acknowledgments

This proposal is heavily inspired by https://doc.rust-lang.org/cargo/reference/manifest.html#the-badges-section.

Changes

  • 2021-07-04 (2.0.0): added deprecated status
  • 2021-07-04 (2.0.0): changed color of passively-maintained from yellowgreen to forestgreen
  • 2021-07-04 (2.0.0): added irregularly-developed status
  • 2022-05-30 (3.0.0): reworded Motivation, as-is, deprecated, obsolete
  • 2022-05-30 (3.0.0): redefined experimental as technical demonstration
  • 2022-05-30 (3.0.0): added personal status
  • 2022-05-30 (3.0.0): added versioning draft
  • 2022-05-30 (3.1.0): added attribute tables

all code snippets are licensed under CC0 1.0

maintenance status by rusty-snake is licensed under CC BY-SA 4.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment