More than three years after the 0.6.0 release I have published gipc version 1.0.0 today.
Quick links
Release highlights
This release focuses on reliability and platform compatibility. It brings along a number of changes relevant for running it on Windows and macOS, as well as for running it under PyPy.
Both, gevent 1.2 and 1.3 are now officially supported. On Linux, gipc now officially supports CPython 2.7, 3.4, 3.5, 3.6, PyPy2.7, and PyPy3. On Windows, gipc officially supports gevent 1.3 on CPython 2.7, 3.4, 3.5, 3.6, and 3.7. Support for gevent 1.1 and CPython 3.3 has been dropped.
The API did not change. In view of the stability of the API over the recent years I thought it is time to officially declare it as such, and to follow the semantic versioning spec‘s point 5: “Version 1.0.0 defines the public API” :-).
For this release most of the work went into
- fixing a small number of platform-dependent bugs (this one was interesting, and this one was pretty insightful and ugly).
- setting up a continuous integration (CI) pipeline for Linux and macOS (on Travis CI) as well as for Windows (via AppVeyor).
- Re-writing and re-styling significant parts of the documentation: the new docs are online and can be found at https://gehrcke.de/gipc (for comparison: old docs).
- moving the repository from Bitbucket to GitHub (I also migrated issues using this well-engineered helper).
- making tests more stable.
- running the example programs as part of CI, on all supported platforms (required a number of consolidations).
Acknowledgements
I would like to thank the following people who have helped with this release, be it by submitting bug reports, by asking great questions, with testing, or with a bit of code: Heungsub Lee, James Addison, Akhil Acharya, Oliver Margetts.
Changelog for this release
For the record, the complete changelog for this release copied from CHANGELOG.rst:
New platform support:
- Add support for PyPy on Linux. Thanks to Oliver Margetts and to Heungsub Lee for patches.
Fixes:
- Fix a bug as of which gipc crashed when passing “raw” pipe handles between processes on Windows (see issue #63).
- Fix
can't pickle gevent._semaphore.Semaphore
error on Windows.- Fix
ModuleNotFoundError
intest_wsgi_scenario
.- Fix signal handling in example
infinite_send_to_child.py
.- Work around segmentation fault after fork on Mac OS X (affected
test_wsgi_scenario
and example programwsgimultiprocessing.py
).Test / continuous integration changes:
- Fix a rare instability in
test_exitcode_previous_to_join
.- Make
test_time_sync
more stable.- Run the example programs as part of CI (run all on Linux and Mac, run most on Windows).
- Linux main test matrix (all combinations are covered):
- gevent dimension: gevent 1.2.x, gevent 1.3.x.
- Python implementation dimension: CPython 2.7, 3.4, 3.5, 3.6, PyPy2.7, PyPy3.
- Also test on Linux: CPython 3.7, pyenv-based PyPy3 and PyPy2.7 (all with gevent 1.3.x only).
- Mac OS X tests (all with gevent 1.3.x):
- pyenv Python builds: CPython 2.7, 3.6, PyPy3
- system CPython
- On Windows, test with gevent 1.3.x and CPython 2.7, 3.4, 3.5, 3.6, 3.7.
Potentially breaking changes:
- gevent 1.1 is not tested anymore.
- CPython 3.3 is not tested anymore.
Leave a Reply