Skip to content

Releases: tomerfiliba-org/reedsolomon

ReedSolo v2.1.1-beta1

15 Jul 22:08
Compare
Choose a tag to compare
ReedSolo v2.1.1-beta1 Pre-release
Pre-release

Minor update: add support for MicroPython embedded systems, big thanks to @elvis-epx ❤️

Full Changelog since last beta release: v2.1.0b1...v2.1.1b1

Note: only the sdist is attached on this GitHub Release, for the per-platform wheels, please see on PyPi.

ReedSolo v2.1.0-beta1

11 Apr 12:35
Compare
Choose a tag to compare
ReedSolo v2.1.0-beta1 Pre-release
Pre-release

Summary: Major update. Previous 2.x pre-releases were yanked, this one should be considered the first true release in v2.x branch. The following description pertains to all changes since the last major stable release (v1.7.0).

Introduces breaking changes, especially because it requires Cython v3.0.0b2 (hence a prerelease), but this allows huge speedups in encoding, especially with the cythonized extension. Several bugfixes as well (not math bugs but more about expected data structures, now the whole internal and external API should be coherent, always using bytearray or cpython array), and the packaging was overhauled to be PEP517 compliant and with a src-layout. Furthermore, automatic builds including with the C extension compiled as a PYD are now provided across platforms and Python versions thanks to cibuildwheel.

Note that the ReedSolo v2.x.x branch will remain in pre-release status until Cython v3 stable is released.

See the section Migration from v1.x to v2.x for more information on how to migrate.

Long description:

Cython v3 beta was recently released, and this offers new possibilities to optimize, especially because math operators in Cython v3 are now much more like Python v3. I hence decided to do a significant rework of the module to squeeze more speed optimizations in creedsolo. Several optimizations were also translated to the pure python reedsolo module, which can improve speed when run inside a JIT compiler such as PyPy.

This incidentally led me to repackage the module according to PEP517 and PEP518 standards for modern python packaging, which comes with isolated builds by default and almost reproducible builds (but we would need to move to another backend like meson for full reproducibility by default, otherwise setuptools still has some work to do on this front).

Finally, I also reworked the GitHub Actions to automatize the building and publishing process of releases to PyPi, using cibuildwheel, which offers the nice plus that we now have wheels with precompiled creedsolo for a lot of OSes and Python versions!

Should you migrate? ReedSolo v2.x API is considered stable, it won't change for the stable release and all planned changes were already implemented. ReedSolo v2.x branch will remain in beta while Cython v3 stable is not released, as requiring a pre-release version of a dependency is bad practice and breaks supply chains down the line (eg, Linux distributions will not be able to provide ReedSolo v2 if it requires a pre-release of Cython, because only stable releases of Cython are packaged).

In practice:

  • If you want cutting edge performance and bugfixes and you don't mind using a pre-release of Cython (and requiring the downstream packages that require your own package need to do so), then you can use pip install reedsolo --pre. When Cython v3 stable release will be published, ReedSolo will be updated asap to remove the beta suffix anyway, and you won't have to change anything on your side (optionally you will be able to remove the --pre flag for pip). See the section Migration from v1.x to v2.x in the README.md for more information on how to migrate.
  • If you don't mind using a less fast release which essentially provides the same encoding/decoding abilities (v1.7.0 is totally compatible with v2.x branch, caveat a few edge case bugs that were fixed), or you or your downstream packages cannot accept using a pre-release dependency, then you can just use the latest stable release of ReedSolo meanwhile (which is v1.7.0). If you set reedsolo as a dependency with no version capping, then anyway your package will be updated to ReedSolo v2.x when Cython v3 will be fixed. However, some API changes are to be expected, so you will need to do some updates here and there (mainly to type all your inputs as bytearray()s), especially if you used creedsolo.

Full Changelog since last stable release: v1.7.0...v2.1.0b1

Special thanks to @henryiii, @paravoid, the python.org participants who kindly replied to my messages in this forum post, and especially @mgorny for their help in packaging and polishing this release!

Note: only the sdist is attached on this GitHub Release, for the per-platform wheels, please see on PyPi.

ReedSolo v2.0.31b1

09 Apr 11:48
Compare
Choose a tag to compare
ReedSolo v2.0.31b1 Pre-release
Pre-release

Pre-release to trigger cibuildwheel and publish on real PyPi

ReedSolo v2.0.24b1

06 Apr 13:46
Compare
Choose a tag to compare
ReedSolo v2.0.24b1 Pre-release
Pre-release

Since v2.0.5, some breaking changes in API were resolved, migration documentation was extended, and the packaging was overhauled to be PEP517 compliant and with a src-layout.

Furthermore, automatic builds including with the C extension compiled as a PYD will be provided across platforms and Python versions thanks to cibuildwheel. This pre-release is published to test cibuildwheel builds on Test PyPi.

Note that the ReedSolo v2.x.x branch will remain in pre-release status until Cython v3 stable is released.

Note also that previous 2.x pseudo stable releases were yanked, as most Linux distributions could not provide a package that used a pre-release version of Cython.

ReedSolo v2.0.5

31 Mar 00:07
Compare
Choose a tag to compare
ReedSolo v2.0.5 Pre-release
Pre-release

Major update, first release in the v2.x branch. Introduces breaking changes, especially because it requires Cython v3.0.0b2 (hence a prerelease), but this allows huge speedups in encoding, especially with the cythonized extension. Several bugfixes as well (not math bugs but more about expected data structures, now the whole internal and external API should be coherent, always using bytearray or cpython array).

See the section "Migration from v1.x to v2.x" for more information on how to migrate.

UPDATE: This release was yanked due to issues with packaging for Linux distributions.

ReedSolo v1.7.0

18 Jan 02:42
Compare
Choose a tag to compare

Changelog:

  • Drop cythonization by default, to avoid installation issues for users with Cython installed but no C++ compiler. Cythonization needs to be requested explictly now, using pip install --upgrade reedsolo --install-option="--cythonize" --verbose.

Full Changelog: v1.6.1...v1.7.0

ReedSolo v1.6.1

06 Jan 17:25
Compare
Choose a tag to compare

Changelog:

  • Clarify license to ensure Public Domain-like rights are granted to users, via the Unlicense or MIT-0 License at the user's preference (big thanks to @musicinmybrain Ben Beasley).

ReedSolo v1.6.0

09 Dec 00:59
Compare
Choose a tag to compare

🎄✨ Annual Christmas maintenance! 🎅🎊

Changelog:

  • Fix major issue preventing pip install when both Cython and a C compiler was installed (thanks to @m-rossi for the fix!)
  • Fix minor inconsistency in reporting errata positions (thanks to @jbosboom!)
  • Migrate continuous integration unit testing from Travis-CI (now only paid plans are offered since 2020) to GitHub Actions.
  • Add CI unit testing for Python 3.7 up to 3.12 alpha 3, and PyPy 3.
  • Drop CI unit testing and support for Python 3.3 to 3.6 included.
  • fixes #34 uncaught error when RSCodec initialized with too many ECC symbols
  • fixes #46 support for bytes input for higher galois fields (thanks to @another-pjohnson!)
  • fix erasures correction for chunked messages (thanks to @another-pjohnson!)
  • Fixes #44 Cythonized implementation chunking was not implemented in check method (thanks to @henla464!)
  • Add note about limitation to galois field 8 of C implementation, fixes #29
  • update install instructions in README.rst
  • Add mention of other contributors

If you are interested in knowing the future of this module, please read this announcement.

Merry Christmas to everyone, may all your wishes come true!

ReedSolo v1.5.4

15 Nov 18:33
Compare
Choose a tag to compare

Changes:

  • Fix installation via pip if no C compiler is available (thanks to @projectgus)

ReedSolo v1.5.3

04 May 15:44
79398fe
Compare
Choose a tag to compare

Changes:

  • Installing (from source or from pip) does not require a compiler nor Cython anymore, the setup.py will automatically switch to the pure python module in these cases (thanks to @projectgus in #21).
  • Fix coverage on coveralls.io and declare Python 3.8 compatibility (#22).
  • Dropped the Win32 installer as is advised by the Python foundation.