Skip to content

Latest commit

 

History

History
88 lines (49 loc) · 3.96 KB

support.rst

File metadata and controls

88 lines (49 loc) · 3.96 KB

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 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.

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 WiresDeprecationWarnings 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 WiresDeprecationWarnings.

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.