Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a PLEP on release schedule #43

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from
Draft
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
97 changes: 97 additions & 0 deletions PLEP-0009.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
=========================================================
PLEP-0009 – Release schedule and long-term support policy
=========================================================
Comment on lines +1 to +3
Copy link
Member Author

Choose a reason for hiding this comment

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

Suggested change
=========================================================
PLEP-0009 – Release schedule and long-term support policy
=========================================================
============================
PLEP-0009 – Release schedule
============================


+-------------------+---------------------------------------------+
| PLEP | number |
+===================+=============================================+
| author(s) | Nicholas A. Murphy |
+-------------------+---------------------------------------------+
| contact email | [email protected] |
+-------------------+---------------------------------------------+
| date created | *YYYY-MM-DD* |
+-------------------+---------------------------------------------+
| date last revised | *YYYY-MM-DD* |
+-------------------+---------------------------------------------+
| type | process |
+-------------------+---------------------------------------------+
| status | discussion |
+-------------------+---------------------------------------------+
| DOI | |
| | |
+-------------------+---------------------------------------------+

Abstract
========

This PLEP describes the nominal release schedule and long-term support
(LTS) policy for PlasmaPy.
Comment on lines +27 to +28
Copy link
Member Author

Choose a reason for hiding this comment

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

Suggested change
This PLEP describes the nominal release schedule and long-term support
(LTS) policy for PlasmaPy.
This PLEP describes the nominal release schedule for PlasmaPy.


Detailed Description
====================

Release schedule
----------------

Feature releases of PlasmaPy will be scheduled for January, May, and
September of each year, and maintained with backwards compatible bug
fixes and documentation improvements until the next feature release.

Python support policy
---------------------

For consistency with NumPy Enhancement Proposal 29, each feature
release will be compatible with minor versions of Python released in
the prior 42 months and minor versions of NumPy released in the prior
24 months. Because Python minor releases occur each October, the May
release of PlasmaPy will drop support of the oldest-supported version
of Python. For example, the May 2025 release of Python will drop
compatibility with Python 3.10 and require Python 3.11 or newer.

Long-term support policy
------------------------

If there is sufficient funding for the development and maintenance of
PlasmaPy, then the first release in even-numbered years will be an LTS
release that will be maintained with bugfixes and documentation
improvements for two years.
Comment on lines +51 to +57
Copy link
Member Author

Choose a reason for hiding this comment

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

Suggested change
Long-term support policy
------------------------
If there is sufficient funding for the development and maintenance of
PlasmaPy, then the first release in even-numbered years will be an LTS
release that will be maintained with bugfixes and documentation
improvements for two years.
No designated long-term support releases
----------------------------------------
PlasmaPy will not designate any releases as long-term support (LTS)
releases. Packages that depend on PlasmaPy should perform cron tests
using the `main` branch of PlasmaPy's repository.


Implementation
==============

To implement this PLEP, it will be necessary to implement
infrastructure for performing backports for LTS releases. For example,
when a pull request for Astropy is labeled as appropriate for a
backport, then a GitHub tool will automatically create a pull request
to the appropriate branches. This infrastructure will reduce the
effort needed to perform backports and minor releases.
Comment on lines +62 to +67
Copy link
Member Author

Choose a reason for hiding this comment

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

We should probably delay a decision on an LTS policy until we have better infrastructure in place to do backports. I want to look into how Astropy and other packages have backports set up too.


Alternatives
============

Feature release cadence
-----------------------

This PLEP specifies a feature release cadence of four months.

* A less frequent release schedule would reduce the amount of effort
by developers, but would delay new features being made available to
new users. Too much time between releases would also increase the
risk that developers would forget how to perform the releases.

* A more frequent release schedule would enable features to become
available to users more quickly, but with the tradeoffs of
additional work overhead for each release, less stability for
users, and more difficulty keeping track of citations.

A release cadence of four months balances these tradeoffs.

Copy link
Member Author

Choose a reason for hiding this comment

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

Need to add a section that addresses the alternative of having LTS releases.

Decision Rationale
==================

*Summarize the discussion on this PLEP and describe the reasoning
behind the decision, if necessary.*

*Not all PLEPs require all of these sections, and occasionally
additional sections may be necessary. Emphasized text should be
deleted.*