All notable changes to this project will be documented in this file.
The format is based on CHANGELOG.md and this project adheres to Semantic Versioning.
Updated dependencies, added py.typed
, swapped linters to Ruff, fixed lint
issues, and removed support for Python 3.8 due to type hint changes.
py.typed
is now present, lettingmypy
use the provided type hints- Added a workflow for Ruff
- Ruff replaces Pylint an Flake8 as linters
- Cleaned up the source code with Ruff
- Updated dpendencies
- Updated
Makefile
- Removed the old workflows for Pylint and Flake8
Updated dependencies, stopped ignoring poetry.lock
, and upgraded workflows.
Also added documentation.
- New workflows for code analysis and automatic dependency updates
- Automated GitHub releases
- Documentation
- Now using specific versions for the dependencies
poetry.lock
is now included in the repository- Updated project metadata files for consistency
- Updated old workflows
- Changed the filename of
deploy.yml
topypi_deploy.yml
to get rid of a YAML validator complaint - Updated dependencies
- The old
deploy.yml
was removed in favour ofpypi_deploy.yml
Small changes, such as the new Makefile
.
- Added a
Makefile
to make testing the codebase easier/more streamlined locally on Linux/Unix platforms - Added Tox as a development dependency
- Changed the
README.md
badge chain to a table with the badges split into categories - Updated localisation files
- Removed
pytest-runner
as a development dependency, as it's useless with Poetry
A quick fix to resolve Snyk throwing errors due to the empty requirements.txt
file.
- Updated localisation files
- Snyk throwing a fit on pull requests
- Missing coverage from
iplib3.address
requirements.txt
This release focuses mostly on back-end changes, but there are a few additions
to functionality as well. Things have moved around, new unit tests have been
added, and the overall structure of the project is now more manageable. Most
importantly, however, the project has now been transitioned to use poetry
as
its build system and this transition has enabled many of the old config files
to be removed. The entire project now uses pyproject.toml
for all
configuration, from builds to unit tests. In addition, the GitHub Actions
workflow has been split into multiple workflows, it now uses Tox, and the
project is now additionally linted using flake8
; previously only pylint
was used.
iplib3.constants
, a new sub-package used to store all of the constant values used by the project.iplib3.subnet
, a new submodule housing new subnet objects. At this stage they remain unused, though the code has been unit tested.iplib3.validators
, a new submodule for validator functions.
- Validator functions from
iplib3.address
andiplib3.subnet
have been moved toiplib3.validators
to keep the codebase more maintainable. - Constants originally defined in
iplib3.address
andiplib3.subnet
have been moved toiplib3.constants
. - Some validators, including
port_validator
,ip_validator
,ipv4_validator
,ipv6_validator
, andsubnet_validator
, have been added to the public interface. Previously they were considered private. - Steps have been taken to reduce code duplication and complexity by creating new, currently private helper functions. This will be a key point in future development.
iplib3.PureAddress
is no longer an abstract base class, as it caused difficulties in unit testing. It has been reworked into a concrete class.- Updated localisation files
- The
requirements.txt
-file is no longer used for anything, it may be removed in a future version. Then again, it has been kept empty so far as the library currently lacks non-development dependencies.
- Hundreds of linter errors
- Unit test coverage (previously ~70%, now 100%)
- Bugs related to equality testing of addresses
- Bugs related to initialisation and construction of
iplib3.IPAddress
setup.cfg
setup.py
- Scripts related to running tests (now handled by Makefile and/or Poetry)
- Added Snyk integration to sniff out vulnerabilities
This is the beginning of the changelog. Previously made commits have not been tracked, and there are no plans to distinguish them. You may consider this the initial commit.
- Added project URLs, more classifiers, and a minimum Python version requirement to PyPI
- Unit tests are now also run on Windows and Mac OS during the CI/CD process
- The releases are now built on the latest version of Ubuntu, using Python 3.9
- The badges in README were split to separate lines to improve readability
- Fixed the CI/CD build process