Support¶
Python Wires support is based on volunteer effort, delivered on an availability and best-effort basis.
Versions and Platforms¶
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 64 bit Linux, Windows or macOS systems.
- CPython 3.6 on 64 bit Linux, Windows or macOS systems.
- CPython 3.7 on 64 bit Linux, Windows or macOS systems.
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. |
Backwards Compatibility Policy¶
- 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.
Deprecation Policy¶
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.
Requesting Support¶
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.
[1] | Whatever that means, without implying any guarantees other than the ones expressed in the License. |