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 version guarantees page #34

Merged
merged 1 commit into from
Feb 17, 2023
Merged
Show file tree
Hide file tree
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
3 changes: 3 additions & 0 deletions LICENSE-THIRD-PARTY.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ Applies to:
- .github/workflows/prepare-release.yml: Workflow heavily inspired by original
- .github/scripts/normalize_coverage.py: Entire file
- docs/_static/extra.css: Entire file
- Copyright (c) 2015-present Rapptz
All rights reserved.
- docs/pages/version_guarantees.rst: Entire file
---------------------------------------------------------------------------------------------------
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
1 change: 1 addition & 0 deletions changes/34.docs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add version guarantees page
1 change: 1 addition & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ Content
examples/index.rst
pages/faq.rst
pages/changelog.rst
pages/version_guarantees.rst
pages/contributing.rst
pages/code-of-conduct.rst

Expand Down
3 changes: 3 additions & 0 deletions docs/pages/changelog.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
Changelog
=========

.. seealso::
Check out what can and can't change between the library versions. :doc:`version_guarantees`

.. attention::
Major and minor releases also include the changes specified in prior development releases.

Expand Down
35 changes: 35 additions & 0 deletions docs/pages/version_guarantees.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
Version Guarantees
==================

This library follows `semantic versioning model <https:semver.org>`_, which means the major version
is updated every time there is an incompatible (breaking) change made to the public API. However
due to the fairly dynamic nature of Python, it can be hard to discern what can be considered a
breaking change, and what isn't.

First thing to keep in mind is that breaking changes only apply to **publicly documented
functions and classes**. If it's not listed in the documentation here, it's an internal feature,
that's it's not considered a part of the public API, and thus is bound to change. This includes
documented attributes that start with an underscore.

.. note::
The examples below are non-exhaustive.

Examples of Breaking Changes
----------------------------

* Changing the default parameter value of a function to something else.
* Renaming (or removing) a function without an alias to the old function.
* Adding or removing parameters of a function.
* Removing deprecated alias to a renamed function

Examples of Non-Breaking Changes
--------------------------------

* Changing function's name, while providing a deprecated alias.
* Renaming (or removing) private underscored attributes.
* Adding an element into `__slots__` of a data class.
* Changing the behavior of a function to fix a bug.
* Changes in the typing behavior of the library.
* Changes in the documentation.
* Modifying the internal protocol connection handling.
* Updating the dependencies to a newer version, major or otherwise.