From 86aaca7c0033c348cd934a60b2331013f5cf35c3 Mon Sep 17 00:00:00 2001 From: Thomas Calmant Date: Fri, 14 Jun 2024 11:58:57 +0200 Subject: [PATCH 01/12] Removed Python 2.7 and 3.6 from GitHub actions --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 826aa59..761c61e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,7 +17,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["2.7", "3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12"] + python-version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"] steps: - uses: actions/checkout@v2 From 29ba90939d1e45d0c4798b4f9b773bad38344580 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Fri, 7 Mar 2025 09:10:58 +0100 Subject: [PATCH 02/12] fix path to tests 6f361ebbac49c281c3e44f7c5c039637a5cf3390 renamed _tests/tests.py_ but did not change the path in _setup.py_. --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 8a2318b..3a703e0 100644 --- a/setup.py +++ b/setup.py @@ -70,7 +70,7 @@ def read(fname): license_file="LICENSE", keywords="python java marshalling serialization", packages=["javaobj", "javaobj.v1", "javaobj.v2"], - test_suite="tests.tests", + test_suite="tests.test_v1", install_requires=[ 'enum34;python_version<="3.4"', 'typing;python_version<="3.4"', From 3afaba4c47b0b5317790550ee2e34ca3cdd0271c Mon Sep 17 00:00:00 2001 From: Thomas Calmant Date: Thu, 13 Mar 2025 18:36:03 +0100 Subject: [PATCH 03/12] Upgrade CI build files --- .../workflows/{build.yml => build-20.04.yml} | 20 ++++---- .github/workflows/build-24.04.yml | 47 +++++++++++++++++++ 2 files changed, 57 insertions(+), 10 deletions(-) rename .github/workflows/{build.yml => build-20.04.yml} (74%) create mode 100644 .github/workflows/build-24.04.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build-20.04.yml similarity index 74% rename from .github/workflows/build.yml rename to .github/workflows/build-20.04.yml index 761c61e..872fb32 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build-20.04.yml @@ -1,28 +1,28 @@ # This workflow will install Python dependencies, run tests and lint with a variety of Python versions # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions -name: CI Build +name: CI Build - Python 3.7 on: push: - branches: '**' + branches: [ "master" ] tags: '**' pull_request: - branches: '**' + branches: [ "master" ] jobs: build: timeout-minutes: 10 - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: - python-version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"] + python-version: ["3.7"] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install dependencies @@ -34,14 +34,14 @@ jobs: run: | # stop the build if there are Python syntax errors or undefined names flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - # exit-zero treats all errors as warnings. - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=110 --statistics + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - name: Test run: | coverage run -m pytest - name: Coveralls env: - COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} + COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_TOKEN }} run: | pip install coveralls coveralls diff --git a/.github/workflows/build-24.04.yml b/.github/workflows/build-24.04.yml new file mode 100644 index 0000000..7cc5cfe --- /dev/null +++ b/.github/workflows/build-24.04.yml @@ -0,0 +1,47 @@ +# This workflow will install Python dependencies, run tests and lint with a variety of Python versions +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions + +name: CI Build - Python 3.8+ + +on: + push: + branches: [ "master" ] + tags: '**' + pull_request: + branches: [ "master" ] + +jobs: + build: + timeout-minutes: 10 + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14-dev"] + + steps: + - uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install flake8 pytest + if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + - name: Lint with flake8 + run: | + # stop the build if there are Python syntax errors or undefined names + flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + - name: Test + run: | + coverage run -m pytest + - name: Coveralls + env: + COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_TOKEN }} + run: | + pip install coveralls + coveralls From d9942470b006517ca24b67ed4350de736cf73b30 Mon Sep 17 00:00:00 2001 From: Thomas Calmant Date: Thu, 13 Mar 2025 18:41:35 +0100 Subject: [PATCH 04/12] Fixed test_suite to run both test_v1and test_v2 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 3a703e0..cf93fb8 100644 --- a/setup.py +++ b/setup.py @@ -70,7 +70,7 @@ def read(fname): license_file="LICENSE", keywords="python java marshalling serialization", packages=["javaobj", "javaobj.v1", "javaobj.v2"], - test_suite="tests.test_v1", + test_suite="tests", install_requires=[ 'enum34;python_version<="3.4"', 'typing;python_version<="3.4"', From 19f4b6f1233e8d49477ed1dae945ed784864fd33 Mon Sep 17 00:00:00 2001 From: Thomas Calmant Date: Thu, 13 Mar 2025 18:42:44 +0100 Subject: [PATCH 05/12] Update project configuration --- .editorconfig | 2 +- .gitignore | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.editorconfig b/.editorconfig index afbf061..b1493ad 100644 --- a/.editorconfig +++ b/.editorconfig @@ -13,5 +13,5 @@ indent_size = 4 [*.rst] indent_size = 3 -[.travis.yml] +[*.{yml,yaml,toml}] indent_size = 2 diff --git a/.gitignore b/.gitignore index 3f42667..9711698 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ *.so # Packages +.eggs/ *.egg *.egg-info dist From 4ebc5e10c2cdce6ec47ded12db4208e9783d737f Mon Sep 17 00:00:00 2001 From: Thomas Calmant Date: Thu, 13 Mar 2025 18:46:09 +0100 Subject: [PATCH 06/12] Test more older Python versions --- .github/workflows/build-20.04.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-20.04.yml b/.github/workflows/build-20.04.yml index 872fb32..8d01623 100644 --- a/.github/workflows/build-20.04.yml +++ b/.github/workflows/build-20.04.yml @@ -1,7 +1,7 @@ # This workflow will install Python dependencies, run tests and lint with a variety of Python versions # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions -name: CI Build - Python 3.7 +name: CI Build - Python 3.4-3.7 on: push: @@ -17,7 +17,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.7"] + python-version: ["3.4", "3.5", "3.6", "3.7"] steps: - uses: actions/checkout@v4 From 92d0bc3b7d34d8b7f78e08a8df62686e9bc08bff Mon Sep 17 00:00:00 2001 From: Thomas Calmant Date: Thu, 13 Mar 2025 18:53:13 +0100 Subject: [PATCH 07/12] Addition of the pyproject.toml file --- pyproject.toml | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index a8f43fe..8789351 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,2 +1,58 @@ +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.build.targets.wheel] +packages = ["javaobj"] + +[project] +name = "javaobj-py3" +version = "0.4.4" +description = "Module for serializing and de-serializing Java objects." +readme = "README.md" +license = "Apache-2.0" +authors = [ + { name = "Volodymyr Buell", email = "vbuell@gmail.com" } +] +maintainers = [ + { name = "Thomas Calmant", email = "thomas.calmant@gmail.com" } +] +keywords = ["python", "java", "marshalling", "serialization"] +classifiers = [ + "Development Status :: 3 - Alpha", + "License :: OSI Approved :: Apache Software License", + "Operating System :: OS Independent", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Software Development :: Libraries :: Python Modules" +] + +dependencies = [ + "enum34; python_version<='3.4'", + "typing; python_version<='3.4'" +] + +[project.optional-dependencies] +test = ["pytest"] + +[project.urls] +Homepage = "https://github.com/tcalmant/python-javaobj" +Issues = "http://github.com/tcalmant/python-javaobj/issues" +Source = "http://github.com/tcalmant/python-javaobj/" + +[tool.hatch.envs.test] +dependencies = ["pytest"] + +[tool.hatch.envs.test.scripts] +run = "pytest tests" + [tool.black] line-length = 79 From e55cc24a07727890ca02c5dc7d92c58b32360efa Mon Sep 17 00:00:00 2001 From: Thomas Calmant Date: Thu, 13 Mar 2025 19:00:24 +0100 Subject: [PATCH 08/12] Fixed coveralls secret name --- .github/workflows/build-20.04.yml | 2 +- .github/workflows/build-24.04.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-20.04.yml b/.github/workflows/build-20.04.yml index 8d01623..6b32894 100644 --- a/.github/workflows/build-20.04.yml +++ b/.github/workflows/build-20.04.yml @@ -41,7 +41,7 @@ jobs: coverage run -m pytest - name: Coveralls env: - COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_TOKEN }} + COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} run: | pip install coveralls coveralls diff --git a/.github/workflows/build-24.04.yml b/.github/workflows/build-24.04.yml index 7cc5cfe..cc006f8 100644 --- a/.github/workflows/build-24.04.yml +++ b/.github/workflows/build-24.04.yml @@ -41,7 +41,7 @@ jobs: coverage run -m pytest - name: Coveralls env: - COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_TOKEN }} + COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} run: | pip install coveralls coveralls From ca9e1e8749e4a52b9539bb12d1fa4705c6e6fb3f Mon Sep 17 00:00:00 2001 From: Thomas Calmant Date: Thu, 13 Mar 2025 19:02:12 +0100 Subject: [PATCH 09/12] Python 3.4 is only available on Ubuntu 18.04 --- .github/workflows/build-18.04.yml | 47 +++++++++++++++++++++++++++++++ .github/workflows/build-20.04.yml | 4 +-- 2 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/build-18.04.yml diff --git a/.github/workflows/build-18.04.yml b/.github/workflows/build-18.04.yml new file mode 100644 index 0000000..b732203 --- /dev/null +++ b/.github/workflows/build-18.04.yml @@ -0,0 +1,47 @@ +# This workflow will install Python dependencies, run tests and lint with a variety of Python versions +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions + +name: CI Build - Python 3.4 + +on: + push: + branches: [ "master" ] + tags: '**' + pull_request: + branches: [ "master" ] + +jobs: + build: + timeout-minutes: 10 + runs-on: ubuntu-18.04 + strategy: + fail-fast: false + matrix: + python-version: ["3.4"] + + steps: + - uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install flake8 pytest coverage + if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + - name: Lint with flake8 + run: | + # stop the build if there are Python syntax errors or undefined names + flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + - name: Test + run: | + coverage run -m pytest + - name: Coveralls + env: + COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} + run: | + pip install coveralls + coveralls diff --git a/.github/workflows/build-20.04.yml b/.github/workflows/build-20.04.yml index 6b32894..db2d1c4 100644 --- a/.github/workflows/build-20.04.yml +++ b/.github/workflows/build-20.04.yml @@ -1,7 +1,7 @@ # This workflow will install Python dependencies, run tests and lint with a variety of Python versions # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions -name: CI Build - Python 3.4-3.7 +name: CI Build - Python 3.5-3.7 on: push: @@ -17,7 +17,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.4", "3.5", "3.6", "3.7"] + python-version: ["3.5", "3.6", "3.7"] steps: - uses: actions/checkout@v4 From 078db5a84902ba55ad08d62f9adbbf51947a0e94 Mon Sep 17 00:00:00 2001 From: Thomas Calmant Date: Thu, 13 Mar 2025 19:11:08 +0100 Subject: [PATCH 10/12] Trust pypi SSL certificates for older Python versions --- .github/workflows/build-18.04.yml | 2 ++ .github/workflows/build-20.04.yml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/build-18.04.yml b/.github/workflows/build-18.04.yml index b732203..a3c0fcb 100644 --- a/.github/workflows/build-18.04.yml +++ b/.github/workflows/build-18.04.yml @@ -25,6 +25,8 @@ jobs: uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} + env: + PIP_TRUSTED_HOST: "pypi.python.org pypi.org files.pythonhosted.org" - name: Install dependencies run: | python -m pip install --upgrade pip diff --git a/.github/workflows/build-20.04.yml b/.github/workflows/build-20.04.yml index db2d1c4..2d8a2bc 100644 --- a/.github/workflows/build-20.04.yml +++ b/.github/workflows/build-20.04.yml @@ -25,6 +25,8 @@ jobs: uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} + env: + PIP_TRUSTED_HOST: "pypi.python.org pypi.org files.pythonhosted.org" - name: Install dependencies run: | python -m pip install --upgrade pip From 59f07a642658392dc347a01e6e925544d7384476 Mon Sep 17 00:00:00 2001 From: Thomas Calmant Date: Thu, 13 Mar 2025 19:16:40 +0100 Subject: [PATCH 11/12] Added missing coverage in 24.04 CI --- .github/workflows/build-24.04.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-24.04.yml b/.github/workflows/build-24.04.yml index cc006f8..4c25cf3 100644 --- a/.github/workflows/build-24.04.yml +++ b/.github/workflows/build-24.04.yml @@ -28,7 +28,7 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - python -m pip install flake8 pytest + python -m pip install flake8 pytest coverage if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - name: Lint with flake8 run: | From d25a574f931f5684e8b8aed34ab867a63ab63fb3 Mon Sep 17 00:00:00 2001 From: Thomas Calmant Date: Fri, 14 Mar 2025 10:53:29 +0100 Subject: [PATCH 12/12] Removed Python 3.4 from CI build Builds are queued indefinitely waiting for an Ubuntu 18.04 runner --- .github/workflows/build-18.04.yml | 49 ------------------------------- 1 file changed, 49 deletions(-) delete mode 100644 .github/workflows/build-18.04.yml diff --git a/.github/workflows/build-18.04.yml b/.github/workflows/build-18.04.yml deleted file mode 100644 index a3c0fcb..0000000 --- a/.github/workflows/build-18.04.yml +++ /dev/null @@ -1,49 +0,0 @@ -# This workflow will install Python dependencies, run tests and lint with a variety of Python versions -# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions - -name: CI Build - Python 3.4 - -on: - push: - branches: [ "master" ] - tags: '**' - pull_request: - branches: [ "master" ] - -jobs: - build: - timeout-minutes: 10 - runs-on: ubuntu-18.04 - strategy: - fail-fast: false - matrix: - python-version: ["3.4"] - - steps: - - uses: actions/checkout@v4 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} - env: - PIP_TRUSTED_HOST: "pypi.python.org pypi.org files.pythonhosted.org" - - name: Install dependencies - run: | - python -m pip install --upgrade pip - python -m pip install flake8 pytest coverage - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - - name: Lint with flake8 - run: | - # stop the build if there are Python syntax errors or undefined names - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - - name: Test - run: | - coverage run -m pytest - - name: Coveralls - env: - COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} - run: | - pip install coveralls - coveralls