diff --git a/docs/docs/changelog/changes_5.0.0.md b/docs/docs/changelog/changes_5.0.0.md new file mode 100644 index 0000000..dee986d --- /dev/null +++ b/docs/docs/changelog/changes_5.0.0.md @@ -0,0 +1,62 @@ +# 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][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](changes_2.0.0.md), 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][PEP 563], [585][PEP 585], [604][PEP 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. + +[issue-110]: https://github.com/Nicoretti/crc/issues/110 +[PEP 563]: https://peps.python.org/pep-0563/ +[PEP 585]: https://peps.python.org/pep-0585/ +[PEP 604]: https://peps.python.org/pep-0604/ diff --git a/docs/docs/changelog/unreleased.md b/docs/docs/changelog/unreleased.md index 7b7ffc8..79e701b 100644 --- a/docs/docs/changelog/unreleased.md +++ b/docs/docs/changelog/unreleased.md @@ -1,57 +1 @@ # Unreleased - -## 🚨 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][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](changes_2.0.0.md), 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. - -## πŸ”© 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][PEP 563], [585][PEP 585], [604][PEP 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. - -[issue-110]: https://github.com/Nicoretti/crc/issues/110 -[PEP 563]: https://peps.python.org/pep-0563/ -[PEP 585]: https://peps.python.org/pep-0585/ -[PEP 604]: https://peps.python.org/pep-0604/ diff --git a/docs/docs/contributors.md b/docs/docs/contributors.md index 3079448..f4072e5 100644 --- a/docs/docs/contributors.md +++ b/docs/docs/contributors.md @@ -1,6 +1,6 @@ # Contributors -Thank you to all contributors for helping to improve this project. πŸš€ +Thank you to all contributors for your help in improving this project. πŸš€ * Gert van Dijk * Dependabot diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index f2c99b7..b88f290 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -20,7 +20,6 @@ nav: - Development: - "development/setup.md" - "development/release.md" - - "contributors.md" - Changelog: - "changelog/unreleased.md" - "changelog/changes_4.3.0.md" @@ -30,6 +29,7 @@ nav: - "changelog/changes_3.0.1.md" - "changelog/changes_3.0.0.md" - "changelog/changes_2.0.0.md" + - "contributors.md" theme: name: material icon: diff --git a/pyproject.toml b/pyproject.toml index adc15d6..2607759 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "crc" -version = "4.3.0" +version = "5.0.0" description = "Library and CLI to calculate and verify all kinds of CRC checksums" packages = [ { include = "crc", from = "src" },