diff --git a/.bumpversion.cfg b/.bumpversion.cfg
index 8038e6a9..a99c94bf 100644
--- a/.bumpversion.cfg
+++ b/.bumpversion.cfg
@@ -1,5 +1,5 @@
[bumpversion]
-current_version = 0.23.0
+current_version = 0.23.1
commit = True
tag = False
message = chore: Bump version from {current_version} to {new_version}
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 0214e4e3..6146c728 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -34,10 +34,10 @@ jobs:
steps:
- name: Check Out VCS Repository
- uses: actions/checkout@v3.3.0
+ uses: actions/checkout@v3.5.3
- name: Set Up Python ${{ matrix.python_version }}
- uses: actions/setup-python@v4.5.0
+ uses: actions/setup-python@v4.7.0
with:
python-version: "${{ matrix.python_version }}"
@@ -45,7 +45,7 @@ jobs:
run: make python-virtualenv PYTHON_VIRTUALENV_DIR="venv"
- name: Restoring/Saving Cache
- uses: actions/cache@v3.2.6
+ uses: actions/cache@v3.3.1
with:
path: "venv"
key: py-v1-deps-${{ runner.os }}-${{ matrix.python_version }}-${{ hashFiles('requirements.txt') }}-${{ hashFiles('requirements-dev.txt') }}-${{ hashFiles('Makefile', 'make/**.mk') }}
@@ -75,15 +75,15 @@ jobs:
steps:
- name: Check Out VCS Repository
- uses: actions/checkout@v3.3.0
+ uses: actions/checkout@v3.5.3
- name: Set Up Python ${{ matrix.python_version }}
- uses: actions/setup-python@v4.5.0
+ uses: actions/setup-python@v4.7.0
with:
python-version: "${{ matrix.python_version }}"
- name: Restoring/Saving Cache
- uses: actions/cache@v3.2.6
+ uses: actions/cache@v3.3.1
with:
path: "venv"
key: py-v1-deps-${{ runner.os }}-${{ matrix.python_version }}-${{ hashFiles('requirements.txt') }}-${{ hashFiles('requirements-dev.txt') }}-${{ hashFiles('Makefile', 'make/**.mk') }}
@@ -120,7 +120,11 @@ jobs:
source "$PYTHON_VIRTUALENV_ACTIVATE"
make test-coverage-report
- codecov
+ - name: Upload coverage reports to Codecov
+ uses: codecov/codecov-action@v3.1.4
+ with:
+ directory: ./test-reports/coverage/
+ fail_ci_if_error: true
- name: Check that compiled Python dependency manifests are up-to-date with their sources
# FIXME: There are issues related to testing with multiple Python versions.
diff --git a/.github/workflows/dependency-review.yaml b/.github/workflows/dependency-review.yaml
index d78b8ab7..fa84e1d8 100644
--- a/.github/workflows/dependency-review.yaml
+++ b/.github/workflows/dependency-review.yaml
@@ -17,9 +17,9 @@ jobs:
steps:
- name: Check Out VCS Repository
- uses: actions/checkout@v3.3.0
+ uses: actions/checkout@v3.5.3
- name: Dependency Review
- uses: actions/dependency-review-action@v3.0.3
+ uses: actions/dependency-review-action@v3.0.6
with:
fail-on-severity: critical
diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml
index 075b69cf..a778b74d 100644
--- a/.github/workflows/deploy.yaml
+++ b/.github/workflows/deploy.yaml
@@ -38,16 +38,16 @@ jobs:
steps:
- name: Check Out VCS Repository
- uses: actions/checkout@v3.3.0
+ uses: actions/checkout@v3.5.3
- name: Set Up Python
id: set_up_python
- uses: actions/setup-python@v4.5.0
+ uses: actions/setup-python@v4.7.0
with:
python-version: "3.10.9"
- name: Restoring/Saving Cache
- uses: actions/cache@v3.2.6
+ uses: actions/cache@v3.3.1
with:
path: "venv"
key: py-v1-deps-${{ runner.os }}-${{ steps.set_up_python.outputs.python-version }}-${{ hashFiles('requirements.txt') }}-${{ hashFiles('requirements-dev.txt') }}-${{ hashFiles('Makefile', 'make/**.mk') }}
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
index 3a4f0d6a..d9d3676d 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yaml
@@ -35,11 +35,11 @@ jobs:
steps:
- name: Check Out VCS Repository
- uses: actions/checkout@v3.3.0
+ uses: actions/checkout@v3.5.3
- name: Set Up Python
id: set_up_python
- uses: actions/setup-python@v4.5.0
+ uses: actions/setup-python@v4.7.0
with:
python-version: "3.10.9"
@@ -47,7 +47,7 @@ jobs:
run: make python-virtualenv PYTHON_VIRTUALENV_DIR="venv"
- name: Restoring/Saving Cache
- uses: actions/cache@v3.2.6
+ uses: actions/cache@v3.3.1
with:
path: "venv"
key: py-v1-deps-${{ runner.os }}-${{ steps.set_up_python.outputs.python-version }}-${{ hashFiles('requirements.txt') }}-${{ hashFiles('requirements-dev.txt') }}-${{ hashFiles('Makefile', 'make/**.mk') }}
diff --git a/CODEOWNERS b/CODEOWNERS
index 08d8f27f..629bccbe 100644
--- a/CODEOWNERS
+++ b/CODEOWNERS
@@ -5,4 +5,8 @@
# Documentation: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
# Default
-* @fyntex/developers
+* @cordada/developers
+
+# Dependencies
+/requirements.*
+/requirements-*.*
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index f3b10171..ec198bc1 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -230,5 +230,5 @@ This is done by the CI/CD system.
[^semver]: [Semantic Versioning](https://semver.org/)
[^git-alias-github-pr-summary]: Add a Git alias that generates a summary of changes from GitHub pull
requests:
- `git config --global alias.lg-github-pr-summary \
+ `git config --global alias.lg-github-pr-summary
'!f() { git log --date=short --reverse --merges --grep "^Merge pull request #[[:digit:]]* from" --pretty="tformat:- (%C(auto,red)%s%C(reset), %C(auto,green)%ad%C(reset)) %b" "$@" | sed -E "s|Merge pull request (#[0-9]+) from .+|PR \1|"; }; f'`
diff --git a/HISTORY.md b/HISTORY.md
index 1aa03fd1..9f0140e6 100644
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -1,5 +1,39 @@
# History
+## 0.23.1 (2023-07-26)
+
+- (PR #478, 2023-04-05) Fix Git alias `lg-github-pr-summary` in Contributing Guidelines
+- (PR #479, 2023-04-05) Update code owners for Python dependencies
+- (PR #467, 2023-04-10) chore(deps): Bump importlib-metadata from 6.0.0 to 6.1.0
+- (PR #483, 2023-04-18) Add Codecov to CI workflow
+- (PR #466, 2023-04-18) chore: Bump actions/cache from 3.2.6 to 3.3.1
+- (PR #465, 2023-04-18) chore: Bump actions/dependency-review-action from 3.0.3 to 3.0.4
+- (PR #481, 2023-04-24) chore: Bump actions/checkout from 3.3.0 to 3.5.2
+- (PR #480, 2023-04-24) chore(deps-dev): Bump mypy from 1.0.1 to 1.2.0
+- (PR #473, 2023-04-24) chore(deps-dev): Bump types-pytz from 2022.7.1.2 to 2023.3.0.0
+- (PR #471, 2023-04-24) chore(deps): Bump pytz from 2022.7.1 to 2023.3
+- (PR #468, 2023-04-24) chore(deps): Bump cryptography from 39.0.1 to 39.0.2
+- (PR #486, 2023-05-05) chore: Bump codecov/codecov-action from 3.1.2 to 3.1.3
+- (PR #484, 2023-05-09) chore: Bump sqlparse from 0.4.2 to 0.4.4
+- (PR #499, 2023-06-22) chore(deps): Update `black` from 23.1.0 to 23.3.0
+- (PR #501, 2023-07-03) chore: Bump actions/checkout from 3.5.2 to 3.5.3
+- (PR #502, 2023-07-03) chore(deps): Update `pip-tools` from 6.8.0 to 6.14.0
+- (PR #504, 2023-07-19) chore: Bump actions/setup-python from 4.5.0 to 4.7.0
+- (PR #495, 2023-07-20) chore: Bump actions/dependency-review-action from 3.0.4 to 3.0.6
+- (PR #494, 2023-07-21) chore: Bump codecov/codecov-action from 3.1.3 to 3.1.4
+- (PR #497, 2023-07-25) chore: Bump pyopenssl from 23.0.0 to 23.2.0
+- (PR #505, 2023-07-25) chore: Bump pygments from 2.13.0 to 2.15.0
+- (PR #492, 2023-07-25) chore: Bump requests from 2.25.1 to 2.31.0
+- (PR #512, 2023-07-25) chore: Bump cryptography from 39.0.2 to 41.0.2
+- (PR #513, 2023-07-25) chore(deps): Update `django` from 3.2.17 to 3.2.20
+- (PR #490, 2023-07-25) chore(deps): Bump signxml from 3.1.0 to 3.2.0
+- (PR #514, 2023-07-25) chore(deps): Update `tox` from 3.25.1 to 4.6.4
+- (PR #506, 2023-07-25) chore: Bump types-pyopenssl from 23.0.0.4 to 23.2.0.2
+- (PR #498, 2023-07-25) chore: Bump coverage from 7.1.0 to 7.2.7
+- (PR #515, 2023-07-25) chore(deps): Update `certifi` from 2022.6.15 to 2023.7.22
+- (PR #516, 2023-07-25) Update code owners
+- (PR #511, 2023-07-25) chore: Bump wheel from 0.38.4 to 0.41.0
+
## 0.23.0 (2023-04-05)
- (PR #443, 2023-03-13) chore(deps-dev): Bump types-pytz from 2022.7.1.0 to 2022.7.1.2
diff --git a/Makefile b/Makefile
index 4680ef81..c696a635 100644
--- a/Makefile
+++ b/Makefile
@@ -7,7 +7,7 @@ PYTHON_PIP_VERSION_SPECIFIER = ==22.3.1
PYTHON_SETUPTOOLS_VERSION_SPECIFIER = ==58.1.0
PYTHON_WHEEL_VERSION_SPECIFIER = ==0.38.4
PYTHON_VIRTUALENV_DIR = venv
-PYTHON_PIP_TOOLS_VERSION_SPECIFIER = ~=6.8.0
+PYTHON_PIP_TOOLS_VERSION_SPECIFIER = ==6.14.0
PYTHON_PIP_TOOLS_SRC_FILES = requirements.in requirements-dev.in
# Black
@@ -21,7 +21,7 @@ TOXENV ?= py310
.PHONY: clean clean-build clean-pyc clean-test
.PHONY: install-dev install-deps-dev
.PHONY: lint lint-fix test test-all test-coverage
-.PHONY: test-coverage-report test-coverage-report-console test-coverage-report-html
+.PHONY: test-coverage-report test-coverage-report-console test-coverage-report-xml test-coverage-report-html
.PHONY: build dist deploy upload-release
.PHONE: python-virtualenv
.PHONY: python-deps-compile python-deps-sync-check python-pip-tools-install
@@ -87,12 +87,16 @@ test-coverage: ## run tests and record test coverage
coverage run --rcfile=setup.cfg setup.py test
test-coverage-report: test-coverage-report-console
+test-coverage-report: test-coverage-report-xml
test-coverage-report: test-coverage-report-html
test-coverage-report: ## Run tests, measure code coverage, and generate reports
test-coverage-report-console: ## print test coverage summary
coverage report --rcfile=setup.cfg -m
+test-coverage-report-xml: ## Generate test coverage XML report
+ coverage xml --rcfile=setup.cfg
+
test-coverage-report-html: ## generate test coverage HTML report
coverage html --rcfile=setup.cfg
diff --git a/cl_sii/__init__.py b/cl_sii/__init__.py
index 696a8031..73eac80b 100644
--- a/cl_sii/__init__.py
+++ b/cl_sii/__init__.py
@@ -5,4 +5,4 @@
"""
-__version__ = '0.23.0'
+__version__ = '0.23.1'
diff --git a/cl_sii/libs/dataclass_utils.py b/cl_sii/libs/dataclass_utils.py
index 8bfa6053..71180ebd 100644
--- a/cl_sii/libs/dataclass_utils.py
+++ b/cl_sii/libs/dataclass_utils.py
@@ -91,8 +91,16 @@ def _dc_deep_compare_to(value_a: object, value_b: object) -> DcDeepComparison:
return DcDeepComparison.EQUAL
# Remove dataclass attributes whose value is None.
- self_dict_clean = {k: v for k, v in dataclasses.asdict(value_a).items() if v is not None}
- value_dict_clean = {k: v for k, v in dataclasses.asdict(value_b).items() if v is not None}
+ self_dict_clean = {
+ k: v
+ for k, v in dataclasses.asdict(value_a).items() # type: ignore[call-overload]
+ if v is not None
+ }
+ value_dict_clean = {
+ k: v
+ for k, v in dataclasses.asdict(value_b).items() # type: ignore[call-overload]
+ if v is not None
+ }
if len(self_dict_clean) < len(value_dict_clean):
for k, v in self_dict_clean.items():
diff --git a/requirements-dev.in b/requirements-dev.in
index 21df2341..7544b466 100644
--- a/requirements-dev.in
+++ b/requirements-dev.in
@@ -4,16 +4,15 @@
-c requirements.txt
-black==23.1.0
+black==23.3.0
bumpversion==0.5.3
-codecov==2.1.12
-coverage==7.1.0
+coverage==7.2.7
flake8==6.0.0
isort==5.12.0
-mypy==1.0.1
-tox==3.25.1
+mypy==1.2.0
+tox==4.6.4
twine==3.1.1
types-jsonschema==4.17.0.6
-types-pyOpenSSL==23.0.0.4
-types-pytz==2022.7.1.2
-wheel==0.38.4
+types-pyOpenSSL==23.2.0.2
+types-pytz==2023.3.0.0
+wheel==0.41.0
diff --git a/requirements-dev.txt b/requirements-dev.txt
index 2e9b5ab9..cea034d7 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -1,18 +1,18 @@
#
-# This file is autogenerated by pip-compile with python 3.8
-# To update, run:
+# This file is autogenerated by pip-compile with Python 3.8
+# by the following command:
#
# pip-compile --strip-extras requirements-dev.in
#
-appdirs==1.4.4
- # via virtualenv
-black==23.1.0
+black==23.3.0
# via -r requirements-dev.in
bleach==5.0.1
# via readme-renderer
bumpversion==0.5.3
# via -r requirements-dev.in
-certifi==2022.6.15
+cachetools==5.3.1
+ # via tox
+certifi==2023.7.22
# via
# -c requirements.txt
# requests
@@ -20,17 +20,17 @@ cffi==1.15.1
# via
# -c requirements.txt
# cryptography
-chardet==4.0.0
+chardet==5.1.0
+ # via tox
+charset-normalizer==3.1.0
# via requests
click==8.0.3
# via black
-codecov==2.1.12
+colorama==0.4.6
+ # via tox
+coverage==7.2.7
# via -r requirements-dev.in
-coverage==7.1.0
- # via
- # -r requirements-dev.in
- # codecov
-cryptography==39.0.1
+cryptography==41.0.2
# via
# -c requirements.txt
# secretstorage
@@ -39,7 +39,7 @@ distlib==0.3.6
# via virtualenv
docutils==0.19
# via readme-renderer
-filelock==3.0.12
+filelock==3.12.2
# via
# tox
# virtualenv
@@ -57,26 +57,28 @@ keyring==21.4.0
# via twine
mccabe==0.7.0
# via flake8
-mypy==1.0.1
+mypy==1.2.0
# via -r requirements-dev.in
-mypy-extensions==0.4.3
+mypy-extensions==1.0.0
# via
# black
# mypy
-packaging==23.0
+packaging==23.1
# via
# -c requirements.txt
# black
+ # pyproject-api
# tox
pathspec==0.9.0
# via black
pkginfo==1.8.3
# via twine
-platformdirs==2.4.1
- # via black
-pluggy==1.0.0
- # via tox
-py==1.10.0
+platformdirs==3.9.1
+ # via
+ # black
+ # tox
+ # virtualenv
+pluggy==1.2.0
# via tox
pycodestyle==2.10.0
# via flake8
@@ -86,13 +88,14 @@ pycparser==2.20
# cffi
pyflakes==3.0.1
# via flake8
-pygments==2.13.0
+pygments==2.15.0
# via readme-renderer
+pyproject-api==1.5.3
+ # via tox
readme-renderer==35.0
# via twine
-requests==2.25.1
+requests==2.31.0
# via
- # codecov
# requests-toolbelt
# twine
requests-toolbelt==0.9.1
@@ -100,17 +103,14 @@ requests-toolbelt==0.9.1
secretstorage==3.3.3
# via keyring
six==1.16.0
- # via
- # bleach
- # tox
- # virtualenv
-toml==0.10.2
- # via tox
-tomli==2.0.0
+ # via bleach
+tomli==2.0.1
# via
# black
# mypy
-tox==3.25.1
+ # pyproject-api
+ # tox
+tox==4.6.4
# via -r requirements-dev.in
tqdm==4.64.0
# via twine
@@ -118,9 +118,9 @@ twine==3.1.1
# via -r requirements-dev.in
types-jsonschema==4.17.0.6
# via -r requirements-dev.in
-types-pyopenssl==23.0.0.4
+types-pyopenssl==23.2.0.2
# via -r requirements-dev.in
-types-pytz==2022.7.1.2
+types-pytz==2023.3.0.0
# via -r requirements-dev.in
typing-extensions==4.3.0
# via
@@ -129,11 +129,11 @@ typing-extensions==4.3.0
# mypy
urllib3==1.26.12
# via requests
-virtualenv==20.4.3
+virtualenv==20.24.1
# via tox
webencodings==0.5.1
# via bleach
-wheel==0.38.4
+wheel==0.41.0
# via -r requirements-dev.in
# The following packages are considered to be unsafe in a requirements file:
diff --git a/requirements.in b/requirements.in
index 62769a51..1672903c 100644
--- a/requirements.in
+++ b/requirements.in
@@ -5,15 +5,15 @@
# Note: To install a package from a Git VCS repository, see the following example:
# git+https://github.com/example/example.git@example-vcs-ref#egg=example-pkg[foo,bar]==1.42.3
-cryptography==39.0.1
+cryptography==41.0.2
defusedxml==0.7.1
Django>=2.2.24
djangorestframework>=3.10.3,<3.15
-importlib-metadata==6.0.0
+importlib-metadata==6.1.0
jsonschema==4.17.3
lxml==4.9.2
marshmallow==3.19.0
pydantic==1.10.4
-pyOpenSSL==23.0.0
-pytz==2022.7.1
-signxml==3.1.0
+pyOpenSSL==23.2.0
+pytz==2023.3
+signxml==3.2.0
diff --git a/requirements.txt b/requirements.txt
index d3d0b453..99577cca 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,6 +1,6 @@
#
-# This file is autogenerated by pip-compile with python 3.8
-# To update, run:
+# This file is autogenerated by pip-compile with Python 3.8
+# by the following command:
#
# pip-compile --strip-extras requirements.in
#
@@ -8,26 +8,26 @@ asgiref==3.5.2
# via django
attrs==20.3.0
# via jsonschema
-certifi==2022.6.15
+certifi==2023.7.22
# via signxml
cffi==1.15.1
# via cryptography
-cryptography==39.0.1
+cryptography==41.0.2
# via
# -r requirements.in
# pyopenssl
# signxml
defusedxml==0.7.1
# via -r requirements.in
-django==3.2.17
+django==3.2.20
# via
# -r requirements.in
# djangorestframework
djangorestframework==3.14.0
# via -r requirements.in
-importlib-metadata==6.0.0
+importlib-metadata==6.1.0
# via -r requirements.in
-importlib-resources==5.12.0
+importlib-resources==6.0.0
# via jsonschema
jsonschema==4.17.3
# via -r requirements.in
@@ -37,7 +37,7 @@ lxml==4.9.2
# signxml
marshmallow==3.19.0
# via -r requirements.in
-packaging==23.0
+packaging==23.1
# via marshmallow
pkgutil-resolve-name==1.3.10
# via jsonschema
@@ -45,20 +45,20 @@ pycparser==2.20
# via cffi
pydantic==1.10.4
# via -r requirements.in
-pyopenssl==23.0.0
+pyopenssl==23.2.0
# via
# -r requirements.in
# signxml
pyrsistent==0.17.3
# via jsonschema
-pytz==2022.7.1
+pytz==2023.3
# via
# -r requirements.in
# django
# djangorestframework
-signxml==3.1.0
+signxml==3.2.0
# via -r requirements.in
-sqlparse==0.4.2
+sqlparse==0.4.4
# via django
typing-extensions==4.3.0
# via pydantic
diff --git a/setup.cfg b/setup.cfg
index 45faa047..c8f5641a 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -13,6 +13,9 @@ exclude_lines =
if __name__ == .__main__.
show_missing = True
+[coverage:xml]
+output = test-reports/coverage/xml/coverage.xml
+
[coverage:html]
directory = test-reports/coverage/html
diff --git a/tests/test_libs_crypto_utils.py b/tests/test_libs_crypto_utils.py
index bb24b423..853332c0 100644
--- a/tests/test_libs_crypto_utils.py
+++ b/tests/test_libs_crypto_utils.py
@@ -488,7 +488,7 @@ def test_load_der_x509_cert_ok_cert_real_dte_1(self) -> None:
some_microsoft_extension_oid = oid.ObjectIdentifier("1.3.6.1.4.1.311.21.7")
some_microsoft_ext = cert_extensions.get_extension_for_oid(some_microsoft_extension_oid)
self.assertEqual(some_microsoft_ext.critical, False)
- self.assertTrue(isinstance(some_microsoft_ext.value.value, bytes))
+ self.assertTrue(isinstance(some_microsoft_ext.value.public_bytes(), bytes))
def test_load_der_x509_cert_ok_cert_real_dte_3(self) -> None:
cert_der_bytes = utils.read_test_file_bytes(