Releases: Nicoretti/crc
7.1.0
7.1.0 - 2024-11-05
π This release is powered by Allen-saltedfish, thank you for your contribution!
β¨ Features
-
Add support for the following Crc8 configurations:
- ITU
- ROHC
-
Add support for the following Crc16 configurations:
- IBM
- MAXIM
- USB
- X25 (X-25)
- DNP
π© Internal
- Re-lock dependencies
7.0.0
7.0.0 - 2024-04-19
π¨ Breaking Changes
Update of crc configurations
- Rename: The
Crc16.CCITT
configuration toCrc16.XMODEM
. - New Addition: Introduced
Crc16.KERMIT
, which matches the official configuration forCrc16.CCITT
.
Decision Rationale
It was intentionally decided not to reintroduce Crc16.CCITT
with the updated configuration. While it could have been added as an alias for Crc16.KERMIT
or a replacement, omitting Crc16.CCITT
ensures that client code will break upon update, thereby forcing maintainers to take notice and react accordingly.
Migration Guide
Below are solutions to the two common scenarios that need to be addressed due to this change:
-
If you previously used
Crc16.CCITT
and expected the configuration defined here:Solution: Replace all usages of
Crc16.CCITT
in your code withCrc16.KERMIT
. -
If you depended on or wanted to use the configuration values that
Crc16.CCITT
provided so far:Solution: Replace all usages of
Crc16.CCITT
in your code withCrc16.XMODEM
.
Related Issues
π© Internal
- Update
python-environment
action - Add classifiers to
pyproject.toml
6.1.2
6.1.2 - 2024-04-14
π Bug Fixes
-
Fixed unstable return values of
digest
function. For more details, see issue #151.!!! bug
This issue specifically affected scenarios where the CRC register was manually manipulated. Standard usages of theCalculator
class were not impacted.
Furthermore, this issue primarily occurred in configurations that required reverse output.
π Documentation
- Add overview of crc configurations
π© Internal
- Re-lock dependencies
6.1.1
6.1.1 - 2024-02-10
π This release is powered by Ramya-Ab, thank you for your contribution!
π Documentation
- Fix typos in README
π© Internal
- Re-lock dependencies
6.1.0
6.1.0 - 2023-12-30
π This release is powered by Riccardo Malavolti, thank you for your contribution!
β¨ Features
- Add support for IBM-3740 (also known as CCITT-FALSE)
π© Internal
- Update GitHub Action(s)
- Re-lock dependencies
6.0.0
6.0.0 - 2023-12-02
π¨οΈ Breaking Changes
- Remove Python 3.7 support
- Changed SAE1850J configuration (see Bug fixes)
π Bug Fix
-
Adjusted the SAE-J1850 configuration to match the specification
π¨οΈ For users which do rely on the previously misconfigured
SAEJ1850
settings a configuration namedSAE_J1850_ZERO
was added.
π© Internal / Development
- Add
python 3.12
to test matrix - Re-lock dev dependencies
5.0.0
5.0.0 - 2023-10-08
π This release is powered by Gert van Dijk, thank you for your contribution!
π¨ Breaking Changes
-
Move from a single-file/module to an βsrc-based layoutβ package.
The layout of the source repository has changed from single file
crc.py
in the
root into a package wherecrc.py
is now a private module_crc.py
of package
crc
.src/ βββ crc/ βββ _crc.py βββ __init__.py
__init__.py
re-exports all the public entities from the private module, so that
typical imports likefrom crc import Calculator
remain working as-is.The need and choice for this new layout is discussed in Issue #110.
-
The shebang line on the main
src/crc/_crc.py
file (formerlycrc.py
) has been
removed.This shouldn't affect anyone installing
crc
as package. Both the entrypointcrc
and the package-level__main__
remain in place.However, in case you were to obtain the
src/crc/_crc.py
file (formerlycrc.py
)
and mark it as executable afterwards to run it directly, then this change may affect
you. Running themain()
function can then still be achieved by either:python path/to/crc.py
python -m crc
(if the module is on yourPYTHON_PATH
)
β¨ Added
- Add
py.typed
marker to indicate thecrc
package ships with type information. The
type information was added inline since 2.0.0, but the marker file
was missing in the package, so type checkers did not consider the type information.
This eliminates the use ofignore_missing_imports
(mypy) orreportMissingTypeStubs
(Pylance/Pyright) in downstream projects.
π Documentation
- Add contributors page
π© Internal / Development
- Several improvements to type annotations:
- Remove unnecessary parentheses and
start
argument inrange()
. - Remove unused imports.
- Update lockfile.
4.3.0
4.3.0 - 2023-06-25
π Documentation
- Fix typo in license file
π© Internal
- Update lockfile
4.2.0
4.2.0 - 2023-04-16
β¨ Features
- Add support for MODBUS
π Documentation
- Add copy button support for code snippets
π© Internal
- Fix path to changelog file for GitHub release
- Add python 3.11 to test matrix
- Add pre-commit support
- Update dev dependencies
- Fix mypy warnings
4.1.0
4.1.0 - 2022-12-18
π Documentation
- Update repository status badge in documentation
- Fix minimum required version in documentation and README
- Update developer documentation
π© Internal
- Remove custom python version classifiers from pyproject.toml
- Add support for GitHub release notes