diff --git a/.github/workflows/build_data_tools.yml b/.github/workflows/build_data_tools.yml index 2fc184ae55..a55026907b 100644 --- a/.github/workflows/build_data_tools.yml +++ b/.github/workflows/build_data_tools.yml @@ -28,7 +28,7 @@ jobs: # https://github.com/docker/login-action - name: Log in to the Container registry - uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0 + uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0 # v4.4.0 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -37,7 +37,7 @@ jobs: # https://github.com/docker/metadata-action - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9 # v6.1.0 + uses: docker/metadata-action@dc802804100637a589fabce1cb79ff13a1411302 # v6.2.0 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} @@ -45,11 +45,11 @@ jobs: # at the moment to be able to use a subdirectory with Git context # https://github.com/docker/setup-buildx-action - name: Set up Docker Buildx - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4.1.0 + uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4.2.0 # https://github.com/docker/build-push-action/ - name: Build and push Docker image - uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7.2.0 + uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0 with: context: "{{defaultContext}}:backend" # https://github.com/docker/build-push-action#git-context push: true diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index de28b28e29..c2b9c5b2c2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,7 +55,7 @@ jobs: - uses: ./.github/actions/setup-javascript - name: Cache Cypress binary - uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 + uses: actions/cache@caa296126883cff596d87d8935842f9db880ef25 # v5.1.0 with: path: ~/.cache/Cypress key: cypress-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('frontend/bun.lock') }} diff --git a/.github/workflows/e2e_test_reusable.yml b/.github/workflows/e2e_test_reusable.yml index 0260d53cb2..215624068a 100644 --- a/.github/workflows/e2e_test_reusable.yml +++ b/.github/workflows/e2e_test_reusable.yml @@ -44,7 +44,7 @@ jobs: - uses: ./.github/actions/setup-javascript - name: Cache Cypress binary - uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 + uses: actions/cache@caa296126883cff596d87d8935842f9db880ef25 # v5.1.0 with: path: ~/.cache/Cypress key: cypress-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('frontend/bun.lock') }} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 32af562580..08d2fd3c72 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -82,6 +82,6 @@ repos: additional_dependencies: ["@commitlint/config-conventional"] language_version: 22.8.0 - repo: https://github.com/renovatebot/pre-commit-hooks - rev: 43.243.2 + rev: 43.259.2 hooks: - id: renovate-config-validator diff --git a/backend/data_tools/Pipfile b/backend/data_tools/Pipfile index 03795f8a84..0ab84379e7 100644 --- a/backend/data_tools/Pipfile +++ b/backend/data_tools/Pipfile @@ -9,9 +9,9 @@ pandas = "==3.0.4" json5 = "==0.15.0" psycopg2-binary = "==2.9.12" cfenv = "==0.5.3" -typing-extensions = "==4.15.0" +typing-extensions = "==4.16.0" desert = "2022.9.22" -sqlalchemy-continuum = "==1.6.0" +sqlalchemy-continuum = "==1.7.0" marshmallow-sqlalchemy = "==1.5.0" marshmallow-enum = "==1.5.1" alembic = "==1.18.5" @@ -24,11 +24,11 @@ click = "==8.4.2" aiohttp = "==3.14.1" deepdiff = "==9.1.0" python-dotenv = "==1.2.2" -ipython = "==9.14.1" +ipython = "==9.15.0" urllib3 = "==2.7.0" [dev-packages] -nox = "==2026.4.10" +nox = "==2026.7.11" flake8 = "==7.3.0" flake8-import-order = "==0.19.2" flake8-bugbear = "==25.11.29" @@ -38,7 +38,7 @@ pytest-cov = "==7.1.0" pytest-mock = "==3.15.1" pytest-xdist = "==3.8.0" filelock = "==3.29.7" -ipython = "==9.14.1" +ipython = "==9.15.0" pytest-docker = {extras = ["docker-compose-v2"], version = "==3.2.5"} black = {extras = ["d"], version = "==26.5.1"} isort = "==8.0.1" diff --git a/backend/data_tools/Pipfile.lock b/backend/data_tools/Pipfile.lock index 41f57ee365..77ef9ca1ca 100644 --- a/backend/data_tools/Pipfile.lock +++ b/backend/data_tools/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "f3a92cae44deadeac596f285b3184b674aa55ec5dd97c96b1a83d338ec4dcaf5" + "sha256": "8235e3ae6808896346fba6c88db4f30a1613bb20491906e0713fa91084bc124b" }, "pipfile-spec": 6, "requires": { @@ -899,12 +899,12 @@ }, "ipython": { "hashes": [ - "sha256:5d4a9ecaa3b10e6e5f269dd0948bdb58ca9cb851899cd23e07c320d3eb11613c", - "sha256:f913bf74df06d458e46ced84ca506c23797590d594b236fe60b14df213291e7b" + "sha256:515ad9c3cdf0c932a5a9f6245419e8aba706b7bd03c3e1d3a1c83d9351d6aa6e", + "sha256:da2819ce2aa83135257df830660b1176d986c3d2876db24df01974fa955b2756" ], "index": "pypi", "markers": "python_version >= '3.11'", - "version": "==9.14.1" + "version": "==9.15.0" }, "ipython-pygments-lexers": { "hashes": [ @@ -1767,12 +1767,12 @@ }, "sqlalchemy-continuum": { "hashes": [ - "sha256:4be2b66c5b951fdccf38da5b45c56f64f45b7656fe69f56310bf723548f612fc", - "sha256:8768a402146f5a71b5b86dc4157c72b10ca86e2eecaf5e575c77c3d0811e6768" + "sha256:30efaa26a0c6325ac70d034847e6e972ae70616b6553bb016a27f7ed2f1a1003", + "sha256:6bdce869bfc0b6f22b51ea3552669b68acfa05791a6349b29457cd1bab84dd7a" ], "index": "pypi", - "markers": "python_version >= '3.9'", - "version": "==1.6.0" + "markers": "python_version >= '3.10'", + "version": "==1.7.0" }, "stack-data": { "hashes": [ @@ -1791,12 +1791,12 @@ }, "typing-extensions": { "hashes": [ - "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", - "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548" + "sha256:481caa481374e813c1b176ada14e97f1f67a4539ce9cfeb3f350d78d6370c2e8", + "sha256:dc983d19a509c94dba722ee6abd33940f7c05a89e243c47e907eb4db6f1a43e5" ], "index": "pypi", "markers": "python_version >= '3.9'", - "version": "==4.15.0" + "version": "==4.16.0" }, "typing-inspect": { "hashes": [ @@ -2506,12 +2506,12 @@ }, "ipython": { "hashes": [ - "sha256:5d4a9ecaa3b10e6e5f269dd0948bdb58ca9cb851899cd23e07c320d3eb11613c", - "sha256:f913bf74df06d458e46ced84ca506c23797590d594b236fe60b14df213291e7b" + "sha256:515ad9c3cdf0c932a5a9f6245419e8aba706b7bd03c3e1d3a1c83d9351d6aa6e", + "sha256:da2819ce2aa83135257df830660b1176d986c3d2876db24df01974fa955b2756" ], "index": "pypi", "markers": "python_version >= '3.11'", - "version": "==9.14.1" + "version": "==9.15.0" }, "ipython-pygments-lexers": { "hashes": [ @@ -2732,12 +2732,12 @@ }, "nox": { "hashes": [ - "sha256:082c117627590d9b90aa21f86df89b310b07c5842539524203bcb3c719f116c1", - "sha256:2d0af5374f3f37a295428c927d1b04a8182aa01762897d172446dda2f1ce9692" + "sha256:dec9bd2c854540a2d5c0b841eaaf1d23a7c26cd90af36d9f1f1668b34524bfd9", + "sha256:f5e811693ee8374d269396204eb39990d2084da67ed968239f94301805c9a169" ], "index": "pypi", - "markers": "python_version >= '3.9'", - "version": "==2026.4.10" + "markers": "python_version >= '3.10'", + "version": "==2026.7.11" }, "packaging": { "hashes": [ diff --git a/backend/ops_api/Pipfile b/backend/ops_api/Pipfile index 32c9bb9b6a..d1ea76710f 100644 --- a/backend/ops_api/Pipfile +++ b/backend/ops_api/Pipfile @@ -22,7 +22,7 @@ psycopg2-binary = "==2.9.12" PyYAML = "==6.0.3" requests = "==2.34.2" sqlalchemy = "==2.0.51" -sqlalchemy-continuum = "==1.6.0" +sqlalchemy-continuum = "==1.7.0" deepdiff = "==9.1.0" urllib3 = "==2.7.0" @@ -30,7 +30,7 @@ urllib3 = "==2.7.0" black = {extras = ["d"], version = "==26.5.1"} flake8 = "==7.3.0" isort = "==8.0.1" -nox = "==2026.4.10" +nox = "==2026.7.11" numpy = "==2.5.1" pytest = "==9.1.1" pytest-bdd = "==8.1.0" @@ -40,8 +40,8 @@ pytest-flask = "==1.3.0" pytest-mock = "==3.15.1" pytest-xdist = "==3.8.0" filelock = "==3.29.7" -ipython = "==9.14.1" -locust = "==2.44.4" +ipython = "==9.15.0" +locust = "==2.45.0" [requires] python_version = "3.14" diff --git a/backend/ops_api/Pipfile.lock b/backend/ops_api/Pipfile.lock index 16ea75297a..05d2447811 100644 --- a/backend/ops_api/Pipfile.lock +++ b/backend/ops_api/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "3cc9c9f7ddfbf74714e10fd2d0b4288036448f2e85301a481cced4318b04aff7" + "sha256": "ebaa27e02da793f6edc7f76a52a370c3e39677701f5d9f0df5cb6d793a257f21" }, "pipfile-spec": 6, "requires": { @@ -1076,12 +1076,12 @@ }, "sqlalchemy-continuum": { "hashes": [ - "sha256:4be2b66c5b951fdccf38da5b45c56f64f45b7656fe69f56310bf723548f612fc", - "sha256:8768a402146f5a71b5b86dc4157c72b10ca86e2eecaf5e575c77c3d0811e6768" + "sha256:30efaa26a0c6325ac70d034847e6e972ae70616b6553bb016a27f7ed2f1a1003", + "sha256:6bdce869bfc0b6f22b51ea3552669b68acfa05791a6349b29457cd1bab84dd7a" ], "index": "pypi", - "markers": "python_version >= '3.9'", - "version": "==1.6.0" + "markers": "python_version >= '3.10'", + "version": "==1.7.0" }, "typeguard": { "hashes": [ @@ -2156,12 +2156,12 @@ }, "ipython": { "hashes": [ - "sha256:5d4a9ecaa3b10e6e5f269dd0948bdb58ca9cb851899cd23e07c320d3eb11613c", - "sha256:f913bf74df06d458e46ced84ca506c23797590d594b236fe60b14df213291e7b" + "sha256:515ad9c3cdf0c932a5a9f6245419e8aba706b7bd03c3e1d3a1c83d9351d6aa6e", + "sha256:da2819ce2aa83135257df830660b1176d986c3d2876db24df01974fa955b2756" ], "index": "pypi", "markers": "python_version >= '3.11'", - "version": "==9.14.1" + "version": "==9.15.0" }, "ipython-pygments-lexers": { "hashes": [ @@ -2206,12 +2206,12 @@ }, "locust": { "hashes": [ - "sha256:3a600f2162e79d47f2bf2bf29cd7d4c066684a89f814b33d6fa68147a89a2b02", - "sha256:9115530e33ca9591c02d9f970d92991739d50b775785b954103d5794ce299c3f" + "sha256:9fa840a4ef8c2624d7719f6e642bce3e19079aa4eea755c99c5282087903e13a", + "sha256:a8b4d059296a38fa79432be60fb6904f70367e7d6fb824da64b744c45d8073ae" ], "index": "pypi", "markers": "python_version >= '3.10'", - "version": "==2.44.4" + "version": "==2.45.0" }, "mako": { "hashes": [ @@ -2567,12 +2567,12 @@ }, "nox": { "hashes": [ - "sha256:082c117627590d9b90aa21f86df89b310b07c5842539524203bcb3c719f116c1", - "sha256:2d0af5374f3f37a295428c927d1b04a8182aa01762897d172446dda2f1ce9692" + "sha256:dec9bd2c854540a2d5c0b841eaaf1d23a7c26cd90af36d9f1f1668b34524bfd9", + "sha256:f5e811693ee8374d269396204eb39990d2084da67ed968239f94301805c9a169" ], "index": "pypi", - "markers": "python_version >= '3.9'", - "version": "==2026.4.10" + "markers": "python_version >= '3.10'", + "version": "==2026.7.11" }, "numpy": { "hashes": [ diff --git a/frontend/bun.lock b/frontend/bun.lock index 7bb377218e..a3a37a14dc 100644 --- a/frontend/bun.lock +++ b/frontend/bun.lock @@ -77,7 +77,7 @@ "globals": "17.7.0", "history": "5.3.0", "jsdom": "29.1.1", - "msw": "2.14.7", + "msw": "2.15.0", "prettier": "3.9.5", "prop-types": "15.8.1", "redux-mock-store": "1.5.5", @@ -2032,7 +2032,7 @@ "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], - "msw": ["msw@2.14.7", "", { "dependencies": { "@inquirer/confirm": "^6.0.11", "@mswjs/interceptors": "^0.41.3", "@open-draft/deferred-promise": "^3.0.0", "@types/statuses": "^2.0.6", "cookie": "^1.1.1", "graphql": "^16.13.2", "headers-polyfill": "^5.0.1", "is-node-process": "^1.2.0", "outvariant": "^1.4.3", "path-to-regexp": "^6.3.0", "picocolors": "^1.1.1", "rettime": "^0.11.11", "statuses": "^2.0.2", "strict-event-emitter": "^0.5.1", "tough-cookie": "^6.0.1", "type-fest": "^5.5.0", "until-async": "^3.0.2", "yargs": "^17.7.2" }, "peerDependencies": { "typescript": ">= 4.8.x" }, "optionalPeers": ["typescript"], "bin": { "msw": "cli/index.js" } }, "sha512-HrQZpxtwMhindpMvlu0fAeSwvRzXhBQnOoS8g0/9Z0tQ3V5o4u2QAwo8bMrnharfZaseYimeh21u/7hVl7eJrg=="], + "msw": ["msw@2.15.0", "", { "dependencies": { "@inquirer/confirm": "^6.0.11", "@mswjs/interceptors": "^0.41.3", "@open-draft/deferred-promise": "^3.0.0", "@types/statuses": "^2.0.6", "cookie": "^1.1.1", "graphql": "^16.13.2", "headers-polyfill": "^5.0.1", "is-node-process": "^1.2.0", "outvariant": "^1.4.3", "path-to-regexp": "^6.3.0", "picocolors": "^1.1.1", "rettime": "^0.11.11", "statuses": "^2.0.2", "strict-event-emitter": "^0.5.1", "tough-cookie": "^6.0.1", "type-fest": "^5.5.0", "until-async": "^3.0.2", "yargs": "^17.7.2" }, "peerDependencies": { "typescript": ">= 4.8.x" }, "optionalPeers": ["typescript"], "bin": { "msw": "cli/index.js" } }, "sha512-2wQAmKkQKxRuXvYJxVhPGG0wZNBQyD06oJvxqw90XqLvptdqxdlHrFUfEteKkpaNORX3Xzc+HtEl/q0nfmN2wQ=="], "mute-stdout": ["mute-stdout@2.0.0", "", {}, "sha512-32GSKM3Wyc8dg/p39lWPKYu8zci9mJFzV1Np9Of0ZEpe6Fhssn/FbI7ywAMd40uX+p3ZKh3T5EeCFv81qS3HmQ=="], diff --git a/frontend/package.json b/frontend/package.json index 4d9674ed1c..ea30f8389d 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -75,7 +75,7 @@ "globals": "17.7.0", "history": "5.3.0", "jsdom": "29.1.1", - "msw": "2.14.7", + "msw": "2.15.0", "prettier": "3.9.5", "redux-mock-store": "1.5.5", "sass-loader": "17.0.0",