-
-
Notifications
You must be signed in to change notification settings - Fork 18.5k
Added version policy #28415
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
Added version policy #28415
Changes from 9 commits
dd57c71
0e9c33a
f346b43
9cd3236
119fffc
00a179b
365801b
714dc3d
aa932cb
1339330
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -16,4 +16,5 @@ Development | |
internals | ||
extending | ||
developer | ||
policies | ||
roadmap |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
.. _develop.policies: | ||
|
||
******** | ||
Policies | ||
******** | ||
|
||
.. _policies.version: | ||
|
||
Version Policy | ||
~~~~~~~~~~~~~~ | ||
|
||
.. versionchanged:: 1.0.0 | ||
|
||
Pandas uses a loose variant of semantic versioning (`SemVer`_) to govern | ||
deprecations, API compatibility, and version numbering. | ||
|
||
A pandas release number is made up of ``MAJOR.MINOR.PATCH``. | ||
|
||
API breaking changes should only occur in **major** releases. Theses changes | ||
will be documented, with clear guidance on what is changing, why it's changing, | ||
and how to migrate existing code to the new behavior. | ||
|
||
Whenever possible, a deprecation path will be provided rather than an outright | ||
breaking change. | ||
|
||
Pandas will introduce deprecations in **minor** releases. These deprecations | ||
will preserve the existing behavior while emitting a warning that provide | ||
guidance on: | ||
|
||
* How to achieve similar behavior if an alternative is available | ||
* The pandas version in which the deprecation will be enforced. | ||
|
||
We will not introduce new deprecations in patch releases. | ||
|
||
Deprecations will only be enforced in **major** releases. For example, if a | ||
behavior is deprecated in pandas 1.2.0, it will continue to work, with a | ||
warning, for all releases in the 1.x series. The behavior will change and the | ||
deprecation removed in the next next major release (2.0.0). | ||
|
||
.. note:: | ||
|
||
Pandas will sometimes make *behavior changing* bug fixes, as part of | ||
minor or patch releases. Whether or not a change is a bug fix or an | ||
API-breaking change is a judgement call. We'll do our best, and we | ||
invite you to participate in development discussion on the issue | ||
tracker or mailing list. | ||
|
||
These policies do not apply to features marked as **experimental** in the documentation. | ||
Pandas may change the behavior of experimental features at any time. | ||
|
||
Python Support | ||
~~~~~~~~~~~~~~ | ||
|
||
Pandas will only drop support for specific Python versions (e.g. 3.5.x, 3.6.x) in | ||
pandas **major** releases. | ||
|
||
.. _SemVer: https://semver.org |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,10 +3,38 @@ | |
What's new in 1.0.0 (??) | ||
------------------------ | ||
|
||
.. warning:: | ||
|
||
Starting with the 0.25.x series of releases, pandas only supports Python 3.5.3 and higher. | ||
See `Dropping Python 2.7 <https://pandas.pydata.org/pandas-docs/version/0.24/install.html#install-dropping-27>`_ for more details. | ||
New Deprecation Policy | ||
~~~~~~~~~~~~~~~~~~~~~~ | ||
|
||
Starting with Pandas 1.0.0, pandas will adopt a version of `SemVer`_. | ||
|
||
Historically, pandas has used a "rolling" deprecation policy, with occasional | ||
outright breaking API changes. Where possible, we would deprecate the behavior | ||
we'd like to change, giving an option to adopt the new behavior (via a keyword | ||
or an alternative method), and issuing a warning for users of the old behavior. | ||
Sometimes, a deprecation was not possible, and we would make an outright API | ||
breaking change. | ||
|
||
We'll continue to *introduce* deprecations in major and minor releases (e.g. | ||
1.0.0, 1.1.0, ...). Those deprecations will be *enforced* in the next major | ||
release. | ||
|
||
Note that *behavior changes* and *API breaking changes* are not identical. If we | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. First note here that API breaking changes will only happen in major releases? (as that part of the policy is actually not explicitly mentioned here) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "here" being this section, or this document? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think it could be literally here (before the sentence that I commented on), but in the end it is mainly important it is mentioned in this document, if you see a better order. So the comment is basically that the part of "breaking changes will only happen in major releases" (which is explained in the policies.rst document) is not explicitly mentioned in the whatsnew note. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Whoops, I was confused by the diff. Thought we were still in policies.st. |
||
consider a behavior to be a bug, and fixing that bug induces a behavior change, | ||
we'll release that change in a minor release. This is a sometimes difficult | ||
judgment call that we'll do our best on. | ||
|
||
This doesn't mean that pandas' pace of development will slow down. In the `2019 | ||
Pandas User Survey`_, about 95% of the respondents said they considered pandas | ||
"stable enough". This indicates there's an appetite for new features, even if it | ||
comes at the cost of break API. The difference is that now API breaking changes | ||
will be accompanied with a bump in the major version number (e.g. pandas 1.5.1 | ||
-> 2.0.0). | ||
|
||
See :ref:`policies.version` for more. | ||
|
||
.. _2019 Pandas User Survey: http://dev.pandas.io/pandas-blog/2019-pandas-user-survey.html | ||
.. _SemVer: https://semver.org | ||
|
||
.. warning:: | ||
|
||
|
Uh oh!
There was an error while loading. Please reload this page.