Python Wires support is based on volunteer effort, delivered on an availability and best-effort basis.
Following a strict Backwards Compatibility Policy, Python Wires strives to work on as many Python interpreters and underlying platforms as possible. For that, care is taken in crafting and maintaining a clean, documented code base, that respects and uses safe, non-deprecated Python programming APIs and conventions.
There is, however, a limited set of interpreters and platforms where development and automated testing takes place; these are the only ones where, respectively, human based diagnostics are completed, and where "correctness assertions"1 can be made.
Important
For these motives, the only supported version is the latest PyPI released version, running on an interpreter and platform for which automated testing is in place:
- CPython 2.7 on a glibc based Linux system.
- CPython 3.6 on a glibc based Linux system.
- CPython 3.7 on a glibc based Linux system.
Other interpreters and platforms may become supported in the future.
Python Wires versions follow a Calendar Versioning scheme with YY.MINOR.MICRO
tags, where:
YY |
Is the two digit year of the release. |
MINOR |
Is the release number, starting at 1 every year. |
MICRO |
Is the bugfix release, being 0 for non-bugfix only releases. |
- A given release is API compatible with the release preceding it, possibly including new backwards-compatible features: codebases depending on a given Python Wires release should be able to use a later release, with no changes.
- Notable exceptions:
- Bug fixes may change an erroneous behaviour that a codebase oddly depends on.
- Deprecations, as described below.
If a non-backwards compatible API change is planned:
A fully backwards compatible release will be made, where uses of API about to break compatibility will issue
WiresDeprecationWarning
s using the Python Standard Library's warnings module as in:import warnings class WiresDeprecationWarning(DeprecationWarning): pass warnings.simplefilter('always', WiresDeprecationWarning) warnings.warn('message', WiresDeprecationWarning)
- A non-backwards compatible release will be made, no earlier than six months after the release including the
WiresDeprecationWarning
s.
Before moving forward, please review the documentation: it may include the answers you're looking for. After that, if still in need of support, take this guide into consideration, and then open a new issue here, taking care to submit:
- A clear and concise summary.
- A detailed description, including snippets of code, if considered useful.
If something is not working as expected, please also include:
- A short code sample demonstrating the behaviour, along with the actual and expected results.
- The Python Wires version (eg. 18.1.0).
- The Python interpreter version (eg. CPython 3.5.2 64 bit).
- The operating system version (eg. Debian 9 "stretch" 64 bit).
Note
Addressing requests targeting unsupported versions, interpreters or platforms may require additional efforts and non-trivial amounts of time. Besides that, they will be equally welcome.
Whatever that means, without implying any guarantees other than the ones expressed in the
license
.↩