Skip to content

Releases: Nicoretti/crc

7.1.0

05 Nov 20:34
Compare
Choose a tag to compare

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

19 Apr 16:26
Compare
Choose a tag to compare

7.0.0 - 2024-04-19

🚨 Breaking Changes

Update of crc configurations

  • Rename: The Crc16.CCITT configuration to Crc16.XMODEM.
  • New Addition: Introduced Crc16.KERMIT, which matches the official configuration for Crc16.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:

  1. If you previously used Crc16.CCITT and expected the configuration defined here:

    Solution: Replace all usages of Crc16.CCITT in your code with Crc16.KERMIT.

  2. 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 with Crc16.XMODEM.

Related Issues

πŸ”© Internal

  • Update python-environment action
  • Add classifiers to pyproject.toml

6.1.2

14 Apr 09:09
Compare
Choose a tag to compare

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 the Calculator 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

10 Feb 11:02
Compare
Choose a tag to compare

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

30 Dec 14:43
Compare
Choose a tag to compare

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

02 Dec 08:53
Compare
Choose a tag to compare

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 named SAE_J1850_ZERO was added.

πŸ”© Internal / Development

  • Add python 3.12 to test matrix
  • Re-lock dev dependencies

5.0.0

08 Oct 16:35
Compare
Choose a tag to compare

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 where crc.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 like from 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 (formerly crc.py) has been
    removed.

    This shouldn't affect anyone installing crc as package. Both the entrypoint crc
    and the package-level __main__ remain in place.

    However, in case you were to obtain the src/crc/_crc.py file (formerly crc.py)
    and mark it as executable afterwards to run it directly, then this change may affect
    you. Running the main() function can then still be achieved by either:

    • python path/to/crc.py
    • python -m crc (if the module is on your PYTHON_PATH)

✨ Added

  • Add py.typed marker to indicate the crc 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 of ignore_missing_imports (mypy) or reportMissingTypeStubs
    (Pylance/Pyright) in downstream projects.

πŸ“š Documentation

  • Add contributors page

πŸ”© Internal / Development

  • Several improvements to type annotations:
    • Conform to mypy in strict mode.
    • Type information now follows a more modern syntax by implementing recommendations
      from PEPs 563, 585, 604 while maintaining
      support for Python 3.8.
    • Declare all instance variables on classes.
    • Create a Type Alias for a complex Union used repetitively.
  • Remove unnecessary parentheses and start argument in range().
  • Remove unused imports.
  • Update lockfile.

4.3.0

25 Jun 16:07
Compare
Choose a tag to compare

4.3.0 - 2023-06-25

πŸ“š Documentation

  • Fix typo in license file

πŸ”© Internal

  • Update lockfile

4.2.0

16 Apr 09:44
Compare
Choose a tag to compare

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

18 Dec 16:03
Compare
Choose a tag to compare

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