From 9c83b79b3d816a56f4b848b3a633e3cb86b4cdff Mon Sep 17 00:00:00 2001 From: Jeff Kala Date: Tue, 25 Aug 2026 15:58:44 -0600 Subject: [PATCH 1/3] Bump version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index f4737ea9..b6557ceb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "netutils" -version = "1.19.0" +version = "1.19.1a0" description = "Common helper functions useful in network automation." authors = ["Network to Code, LLC "] license = "Apache-2.0" From 82a3e9ee6e26952531b65b90e8b60f88398eb52d Mon Sep 17 00:00:00 2001 From: Jeff Kala <48843785+jeffkala@users.noreply.github.com> Date: Wed, 26 Aug 2026 07:50:13 -0600 Subject: [PATCH 2/3] Fix release bug, and bump checkout action (#894) * Fix release bug, and bump checkout action * update to newer docker actions for buildx and builds * streamline pytest ci testing to be local as pylint is already checked in docker --- .github/workflows/ci.yml | 45 ++++++++---------------- .github/workflows/oui_filepull.yml | 4 +-- .github/workflows/prepare_release.yml | 2 +- .github/workflows/proto_filepull.yml | 4 +-- .github/workflows/proto_num_filepull.yml | 4 +-- .github/workflows/release.yml | 7 ++-- changes/+checkout-action.housekeeping | 1 + changes/893.fixed | 1 + 8 files changed, 27 insertions(+), 41 deletions(-) create mode 100644 changes/+checkout-action.housekeeping create mode 100644 changes/893.fixed diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e63747eb..00cd9d5e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,7 +21,7 @@ jobs: INVOKE_NETUTILS_LOCAL: "True" steps: - name: "Check out repository code" - uses: "actions/checkout@v4" + uses: "actions/checkout@v7" - name: "Setup environment" uses: "networktocode/gh-action-setup-poetry-environment@v7" with: @@ -34,7 +34,7 @@ jobs: INVOKE_NETUTILS_LOCAL: "True" steps: - name: "Check out repository code" - uses: "actions/checkout@v4" + uses: "actions/checkout@v7" - name: "Setup environment" uses: "networktocode/gh-action-setup-poetry-environment@v7" with: @@ -47,9 +47,9 @@ jobs: INVOKE_NETUTILS_LOCAL: "True" steps: - name: "Check out repository code" - uses: "actions/checkout@v4" + uses: "actions/checkout@v7" - name: "Setup environment" - uses: "networktocode/gh-action-setup-poetry-environment@v6" + uses: "networktocode/gh-action-setup-poetry-environment@v7" with: python-version: "3.13" - name: "Type-Hints: mypy" @@ -63,7 +63,7 @@ jobs: INVOKE_NETUTILS_LOCAL: "True" steps: - name: "Check out repository code" - uses: "actions/checkout@v4" + uses: "actions/checkout@v7" - name: "Setup environment" uses: "networktocode/gh-action-setup-poetry-environment@v7" with: @@ -77,7 +77,7 @@ jobs: INVOKE_NETUTILS_LOCAL: "True" steps: - name: "Check out repository code" - uses: "actions/checkout@v4" + uses: "actions/checkout@v7" - name: "Setup environment" uses: "networktocode/gh-action-setup-poetry-environment@v7" with: @@ -90,7 +90,7 @@ jobs: INVOKE_NETUTILS_LOCAL: "True" steps: - name: "Check out repository code" - uses: "actions/checkout@v4" + uses: "actions/checkout@v7" - name: "Setup environment" uses: "networktocode/gh-action-setup-poetry-environment@v7" with: @@ -107,12 +107,12 @@ jobs: strategy: fail-fast: true matrix: - python-version: ["3.10"] + python-version: ["3.10", "3.14"] env: INVOKE_NETUTILS_PYTHON_VER: "${{ matrix.python-version }}" steps: - name: "Check out repository code" - uses: "actions/checkout@v4" + uses: "actions/checkout@v7" - name: "Setup environment" uses: "networktocode/gh-action-setup-poetry-environment@v7" with: @@ -121,9 +121,9 @@ jobs: run: "echo INVOKE_NETUTILS_IMAGE_VER=`poetry version -s`-py${{ matrix.python-version }} >> $GITHUB_ENV" - name: "Set up Docker Buildx" id: "buildx" - uses: "docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2" # v3.10.0 + uses: "docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e" # v4.3.0 - name: "Build" - uses: "docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25" # v5.4.0 + uses: "docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a" # v7.3.0 with: builder: "${{ steps.buildx.outputs.name }}" context: "./" @@ -147,31 +147,14 @@ jobs: runs-on: "ubuntu-latest" env: INVOKE_NETUTILS_PYTHON_VER: "${{ matrix.python-version }}" + INVOKE_NETUTILS_LOCAL: "True" steps: - name: "Check out repository code" - uses: "actions/checkout@v4" + uses: "actions/checkout@v7" - name: "Setup environment" uses: "networktocode/gh-action-setup-poetry-environment@v7" with: poetry-version: "2.1.3" - - name: "Get image version" - run: "echo INVOKE_NETUTILS_IMAGE_VER=`poetry version -s`-py${{ matrix.python-version }} >> $GITHUB_ENV" - - name: "Set up Docker Buildx" - id: "buildx" - uses: "docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2" # v3.10.0 - - name: "Build" - uses: "docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25" # v5.4.0 - with: - builder: "${{ steps.buildx.outputs.name }}" - context: "./" - push: false - load: true - tags: "${{ env.INVOKE_NETUTILS_IMAGE_NAME }}:${{ env.INVOKE_NETUTILS_IMAGE_VER }}" - file: "./Dockerfile" - cache-from: "type=gha,scope=${{ env.INVOKE_NETUTILS_IMAGE_NAME }}-${{ env.INVOKE_NETUTILS_IMAGE_VER }}-py${{ matrix.python-version }}" - cache-to: "type=gha,scope=${{ env.INVOKE_NETUTILS_IMAGE_NAME }}-${{ env.INVOKE_NETUTILS_IMAGE_VER }}-py${{ matrix.python-version }}" - build-args: | - PYTHON_VER=${{ matrix.python-version }} - name: "Run Tests" run: "poetry run invoke pytest" changelog: @@ -181,7 +164,7 @@ jobs: runs-on: "ubuntu-latest" steps: - name: "Check out repository code" - uses: "actions/checkout@v4" + uses: "actions/checkout@v7" with: fetch-depth: "0" - name: "Setup environment" diff --git a/.github/workflows/oui_filepull.yml b/.github/workflows/oui_filepull.yml index 0f9eae40..9124088b 100644 --- a/.github/workflows/oui_filepull.yml +++ b/.github/workflows/oui_filepull.yml @@ -13,7 +13,7 @@ jobs: BRANCH_NAME: "OUI_Updates" steps: - name: "Check out code" - uses: "actions/checkout@v4" + uses: "actions/checkout@v7" with: ref: "develop" fetch-depth: 0 @@ -73,7 +73,7 @@ jobs: steps: # Checkout repo - name: "Check out code" - uses: "actions/checkout@v4" + uses: "actions/checkout@v7" with: ref: "OUI_Updates" # Create PR from branch created above into develop diff --git a/.github/workflows/prepare_release.yml b/.github/workflows/prepare_release.yml index 1a70ab5b..abb283a6 100644 --- a/.github/workflows/prepare_release.yml +++ b/.github/workflows/prepare_release.yml @@ -35,7 +35,7 @@ jobs: runs-on: "ubuntu-latest" steps: - name: "Checkout code" - uses: "actions/checkout@v4" + uses: "actions/checkout@v7" with: # If target_branch is 'main', use 'develop' as the source branch. Otherwise, the source and target branch are the same. ref: "${{ github.event.inputs['target_branch'] == 'main' && 'develop' || github.event.inputs['target_branch'] }}" diff --git a/.github/workflows/proto_filepull.yml b/.github/workflows/proto_filepull.yml index 5f958249..1c2e9fc0 100644 --- a/.github/workflows/proto_filepull.yml +++ b/.github/workflows/proto_filepull.yml @@ -13,7 +13,7 @@ jobs: steps: # Checkout repo - name: "Check out code" - uses: "actions/checkout@v4" + uses: "actions/checkout@v7" with: ref: "develop" # Delete old branch if it exists @@ -46,7 +46,7 @@ jobs: steps: # Checkout repo - name: "Check out code" - uses: "actions/checkout@v4" + uses: "actions/checkout@v7" with: ref: "PROTO_Updates" # Create PR from branch created above into develop diff --git a/.github/workflows/proto_num_filepull.yml b/.github/workflows/proto_num_filepull.yml index c19fcb96..d6b9209a 100644 --- a/.github/workflows/proto_num_filepull.yml +++ b/.github/workflows/proto_num_filepull.yml @@ -13,7 +13,7 @@ jobs: steps: # Checkout repo - name: "Check out code" - uses: "actions/checkout@v4" + uses: "actions/checkout@v7" with: ref: "develop" # Delete old branch if it exists @@ -46,7 +46,7 @@ jobs: steps: # Checkout repo - name: "Check out code" - uses: "actions/checkout@v4" + uses: "actions/checkout@v7" with: ref: "PROTO_NUM_Updates" # Create PR from branch created above into develop diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a1455227..56670222 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -7,6 +7,7 @@ on: # yamllint disable-line rule:truthy rule:comments env: POETRY_VERSION: "2.1.3" PYTHON_VERSION: "3.12" + INVOKE_NETUTILS_LOCAL: "True" jobs: build: @@ -14,7 +15,7 @@ jobs: runs-on: "ubuntu-latest" if: "startsWith(github.ref, 'refs/tags/v')" steps: - - uses: "actions/checkout@v4" + - uses: "actions/checkout@v7" - name: "Setup environment" uses: "networktocode/gh-action-setup-poetry-environment@v7" with: @@ -44,7 +45,7 @@ jobs: contents: "write" needs: "build" steps: - - uses: "actions/checkout@v4" + - uses: "actions/checkout@v7" - name: "Retrieve built package from cache" uses: "actions/download-artifact@v4" with: @@ -121,7 +122,7 @@ jobs: runs-on: "ubuntu-latest" steps: - name: "Checkout source branch" - uses: "actions/checkout@v4" + uses: "actions/checkout@v7" with: ref: "${{ github.event.release.target_commitish }}" fetch-depth: 0 diff --git a/changes/+checkout-action.housekeeping b/changes/+checkout-action.housekeeping new file mode 100644 index 00000000..05e0929d --- /dev/null +++ b/changes/+checkout-action.housekeeping @@ -0,0 +1 @@ +Upgrade GitHub actions/checkout@v4 to @v7. diff --git a/changes/893.fixed b/changes/893.fixed new file mode 100644 index 00000000..25c2ebf1 --- /dev/null +++ b/changes/893.fixed @@ -0,0 +1 @@ +Fixed the release process failing due to missing local environment invoke variable. From f7be3cda7ace76878eff06f0216a9653d3d9628b Mon Sep 17 00:00:00 2001 From: jeffkala Date: Wed, 26 Aug 2026 13:54:49 +0000 Subject: [PATCH 3/3] prepare release v1.19.1 --- changes/+checkout-action.housekeeping | 1 - changes/893.fixed | 1 - docs/admin/release_notes/version_1.19.md | 10 ++++++++++ poetry.lock | 17 +++++++---------- pyproject.toml | 2 +- 5 files changed, 18 insertions(+), 13 deletions(-) delete mode 100644 changes/+checkout-action.housekeeping delete mode 100644 changes/893.fixed diff --git a/changes/+checkout-action.housekeeping b/changes/+checkout-action.housekeeping deleted file mode 100644 index 05e0929d..00000000 --- a/changes/+checkout-action.housekeeping +++ /dev/null @@ -1 +0,0 @@ -Upgrade GitHub actions/checkout@v4 to @v7. diff --git a/changes/893.fixed b/changes/893.fixed deleted file mode 100644 index 25c2ebf1..00000000 --- a/changes/893.fixed +++ /dev/null @@ -1 +0,0 @@ -Fixed the release process failing due to missing local environment invoke variable. diff --git a/docs/admin/release_notes/version_1.19.md b/docs/admin/release_notes/version_1.19.md index 0f31b4d7..8ac7abae 100644 --- a/docs/admin/release_notes/version_1.19.md +++ b/docs/admin/release_notes/version_1.19.md @@ -8,6 +8,16 @@ This document describes all new features and changes in the release. The format +## [v1.19.1 (2026-08-26)](https://github.com/networktocode/netutils/releases/tag/v1.19.1) + +### Fixed + +- [#893](https://github.com/networktocode/netutils/issues/893) - Fixed the release process failing due to missing local environment invoke variable. + +### Housekeeping + +- Upgrade GitHub actions/checkout@v4 to @v7. + ## [v1.19.0 (2026-08-25)](https://github.com/networktocode/netutils/releases/tag/v1.19.0) ### Added diff --git a/poetry.lock b/poetry.lock index 5077d5fc..afdec05e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -540,19 +540,16 @@ markers = {main = "extra == \"optionals\""} [[package]] name = "click" -version = "8.4.2" +version = "8.5.0" description = "Composable command line interface toolkit" optional = false python-versions = ">=3.10" groups = ["dev", "docs"] files = [ - {file = "click-8.4.2-py3-none-any.whl", hash = "sha256:e6f9f66136c816745b9d65817da91d61d957fb16e02e4dcd0552553c5a197b76"}, - {file = "click-8.4.2.tar.gz", hash = "sha256:9a6cea6e60b17ebe0a44c5cc636d94f09bd66142c1cd7d8b4cd731c4917a15f6"}, + {file = "click-8.5.0-py3-none-any.whl", hash = "sha256:255bc9599cf7748b4b1a446ccc735421bd08a2ae529a8b88597d3de5664ee360"}, + {file = "click-8.5.0.tar.gz", hash = "sha256:ba0d2089de75ea0310e2dde03160e6ca10009947fb95a182f9b54021bb272e34"}, ] -[package.dependencies] -colorama = {version = "*", markers = "platform_system == \"Windows\""} - [[package]] name = "colorama" version = "0.4.6" @@ -564,7 +561,7 @@ files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] -markers = {dev = "sys_platform == \"win32\" or platform_system == \"Windows\""} +markers = {dev = "sys_platform == \"win32\""} [[package]] name = "coverage" @@ -3229,15 +3226,15 @@ full = ["cerberus (==1.3.*) ; python_version >= \"3.9\"", "deepdiff (==8.6.*) ; [[package]] name = "ttp-templates" -version = "0.5.11" +version = "0.5.12" description = "Template Text Parser Templates collections" optional = true python-versions = "<4.0,>=3.10" groups = ["main"] markers = "extra == \"optionals\"" files = [ - {file = "ttp_templates-0.5.11-py3-none-any.whl", hash = "sha256:953a6d019625e5e124891ea49de74083768fe1c1f33e0dc96dc77a934f756859"}, - {file = "ttp_templates-0.5.11.tar.gz", hash = "sha256:199b1800c3d4f77002f4baaca9942ab97fca726e187bcf731889ebe33ea7fc84"}, + {file = "ttp_templates-0.5.12-py3-none-any.whl", hash = "sha256:82d073142c0290e7d252f7337275e3019bfebd1bdbe9232568c1816b4f0bec97"}, + {file = "ttp_templates-0.5.12.tar.gz", hash = "sha256:c34c0bdf92726c8424a86ea7fba570496714faab3ec81cd8166bccfde3936987"}, ] [package.dependencies] diff --git a/pyproject.toml b/pyproject.toml index b6557ceb..994c340b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "netutils" -version = "1.19.1a0" +version = "1.19.1" description = "Common helper functions useful in network automation." authors = ["Network to Code, LLC "] license = "Apache-2.0"