From e992ea3e527e061e7d22648b9f7b80fc70de5f48 Mon Sep 17 00:00:00 2001 From: "ugrc-release-bot[bot]" <113075024+ugrc-release-bot[bot]@users.noreply.github.com> Date: Wed, 17 Jun 2026 14:52:19 +0000 Subject: [PATCH 01/23] chore: release v1.7.14-rc.1 --- CHANGELOG.md | 13 +++++++++++++ package.json | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d071cb..515b7f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## [1.7.14-rc.1](https://github.com/agrc/api-client/compare/v1.7.13...v1.7.14-rc.1) (2026-06-17) + + +### Bug Fixes + +* PNPM audit ([028510e](https://github.com/agrc/api-client/commit/028510ed6baffe6b5abb3086297f26883d9feb75)) + + +### Dependencies + +* bump NPM dependencies 🌲 ([e0d1e78](https://github.com/agrc/api-client/commit/e0d1e7822239789c2fc63aabb1a66242a0bb8791)) +* bump NPM dependencies 🌲 ([ab217c7](https://github.com/agrc/api-client/commit/ab217c793a21f2bea062925880dadbfcf611a2f9)) + ## [1.7.13](https://github.com/agrc/api-client/compare/v1.7.12...v1.7.13) (2026-02-13) diff --git a/package.json b/package.json index df9c15b..1fdf8db 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ugrc-api-client", - "version": "1.7.13", + "version": "1.7.14-rc.1", "description": "The official UGRC API client", "keywords": [ "utah", From 5d29f958790511648353c633821d2c56241e6aa9 Mon Sep 17 00:00:00 2001 From: stdavis Date: Mon, 22 Jun 2026 15:23:05 -0600 Subject: [PATCH 02/23] ci: remove unused build package --- .github/workflows/release.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e9d8806..ef46173 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -31,7 +31,7 @@ jobs: show-progress: false - name: 📦 Setup PNPM - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v6 with: version: 11 @@ -55,7 +55,6 @@ jobs: - name: 💻 Set up app DMG run: | python3 -m pip install setuptools - pnpm add --global appdmg@0.6.6 - name: 📥 Install dependencies run: pnpm install --frozen-lockfile From 7561aa83016d6f2da02e1484f64a784a2e05c91d Mon Sep 17 00:00:00 2001 From: stdavis Date: Mon, 22 Jun 2026 15:25:01 -0600 Subject: [PATCH 03/23] ci(windows): add missing build dep --- package.json | 1 + pnpm-lock.yaml | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 1fdf8db..7fb0f69 100644 --- a/package.json +++ b/package.json @@ -84,6 +84,7 @@ "electron-squirrel-startup": "^1.0.1", "eslint": "^9.39.4", "generate-license-file": "^4.2.1", + "lodash": "^4.18.1", "prettier": "^3.8.3", "prettier-plugin-organize-imports": "^4.3.0", "prettier-plugin-packagejson": "^3.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 11bfdbb..ca4192e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -144,6 +144,9 @@ importers: generate-license-file: specifier: ^4.2.1 version: 4.2.1(typescript@6.0.3) + lodash: + specifier: ^4.18.1 + version: 4.18.1 prettier: specifier: ^3.8.3 version: 3.8.3 @@ -5357,7 +5360,7 @@ snapshots: make-fetch-happen: 10.2.1 nopt: 6.0.0 proc-log: 2.0.1 - semver: 7.8.0 + semver: 7.8.3 tar: 6.2.1 which: 2.0.2 transitivePeerDependencies: @@ -5884,7 +5887,7 @@ snapshots: '@npmcli/fs@2.1.2': dependencies: '@gar/promisify': 1.1.3 - semver: 7.8.0 + semver: 7.8.3 '@npmcli/fs@5.0.0': dependencies: @@ -8559,8 +8562,7 @@ snapshots: lodash.merge@4.6.2: {} - lodash@4.18.1: - optional: true + lodash@4.18.1: {} log-symbols@4.1.0: dependencies: From bb2872e93c712bdfc4d9f6354e14e4f1a9acf832 Mon Sep 17 00:00:00 2001 From: "ugrc-release-bot[bot]" <113075024+ugrc-release-bot[bot]@users.noreply.github.com> Date: Mon, 22 Jun 2026 21:25:38 +0000 Subject: [PATCH 04/23] chore: release v1.7.14-rc.2 --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 515b7f7..b3df5c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.7.14-rc.2](https://github.com/agrc/api-client/compare/v1.7.14-rc.1...v1.7.14-rc.2) (2026-06-22) + + +### Bug Fixes + +* remove unused build package ([22241b7](https://github.com/agrc/api-client/commit/22241b73e02f3bf2f605211bfe43de4f07a1a895)) + ## [1.7.14-rc.1](https://github.com/agrc/api-client/compare/v1.7.13...v1.7.14-rc.1) (2026-06-17) diff --git a/package.json b/package.json index 7fb0f69..81c98f2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ugrc-api-client", - "version": "1.7.14-rc.1", + "version": "1.7.14-rc.2", "description": "The official UGRC API client", "keywords": [ "utah", From e309e6b84bf0a3e0eeec02afeab2fe0ea11f6139 Mon Sep 17 00:00:00 2001 From: stdavis Date: Mon, 22 Jun 2026 16:23:11 -0600 Subject: [PATCH 05/23] ci: switch to uploading GH artifacts outside of forge --- .github/workflows/release.yml | 58 +++++++++++++++++++++++++++-------- 1 file changed, 45 insertions(+), 13 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ef46173..08555ff 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,12 +3,6 @@ name: Release Events on: release: types: [published] - workflow_dispatch: - inputs: - environment: - description: "Environment to run tests against" - type: environment - required: true permissions: id-token: write @@ -59,8 +53,8 @@ jobs: - name: 📥 Install dependencies run: pnpm install --frozen-lockfile - - name: 🚀 Build, Package, & Release - run: pnpm run publish --arch=universal + - name: 🚀 Build macOS distributables + run: pnpm run make -- --arch=universal env: NODE_ENV: production APPLE_IDENTITY: ${{ secrets.APPLE_IDENTITY }} @@ -69,9 +63,15 @@ jobs: APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} GCP_KEYRING_PATH: ${{ secrets.GCP_KEYRING_PATH }} GCP_KEY_NAME: ${{ secrets.GCP_KEY_NAME }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} VITE_IS_BETA: ${{ github.event.release.prerelease == true }} + - name: ⬆️ Upload macOS distributables + uses: actions/upload-artifact@v4 + with: + name: macos-release-assets + path: out/make/** + if-no-files-found: error + deploy-windows: name: Publish windows app runs-on: windows-latest @@ -120,19 +120,51 @@ jobs: service_account: ${{ secrets.SERVICE_ACCOUNT_EMAIL }} create_credentials_file: true - - name: 🚀 Build, Package, & Release - run: pnpm run publish + - name: 🚀 Build Windows distributables + run: pnpm run make env: NODE_ENV: production GCP_KEYRING_PATH: ${{ secrets.GCP_KEYRING_PATH }} GCP_KEY_NAME: ${{ secrets.GCP_KEY_NAME }} GOOGLE_APPLICATION_CREDENTIALS: ${{ steps.auth.outputs.credentials_file_path }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} VITE_IS_BETA: ${{ github.event.release.prerelease == true }} + - name: ⬆️ Upload Windows distributables + uses: actions/upload-artifact@v4 + with: + name: windows-release-assets + path: out/make/** + if-no-files-found: error + + upload-release-assets: + name: Attach release assets + needs: [deploy-macos, deploy-windows] + runs-on: ubuntu-latest + steps: + - name: ⬇️ Download macOS distributables + uses: actions/download-artifact@v5 + with: + name: macos-release-assets + path: release-assets/macos + + - name: ⬇️ Download Windows distributables + uses: actions/download-artifact@v5 + with: + name: windows-release-assets + path: release-assets/windows + + - name: 🚀 Attach distributables to release + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + RELEASE_TAG: ${{ github.event.release.tag_name }} + run: | + find release-assets -type f -print0 | while IFS= read -r -d '' file; do + gh release upload "$RELEASE_TAG" "$file" --clobber + done + change-management: name: Change management - needs: [deploy-macos, deploy-windows] + needs: [deploy-macos, deploy-windows, upload-release-assets] runs-on: ubuntu-latest permissions: contents: read From bb619d1676f03b52041299415a345f7130274aa5 Mon Sep 17 00:00:00 2001 From: stdavis Date: Mon, 22 Jun 2026 16:23:24 -0600 Subject: [PATCH 06/23] ci: simplify and correct forge config --- .vscode/settings.json | 1 + README.md | 2 +- forge.config.ts | 29 ++++++++--------------------- 3 files changed, 10 insertions(+), 22 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 3663365..4f415e4 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -15,6 +15,7 @@ "Centerlines", "clsx", "CODESIGN", + "distributables", "draganddrop", "Dropzone", "fulladd", diff --git a/README.md b/README.md index 23f48a0..e2503db 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ An apple developer certificate is required to sign the application for distribut ## Deploying a new version -GitHub Actions will create and update a draft release with every merged pull request. When a release is desired, publish the [draft release](https://github.com/agrc/api-client/releases). Another GitHub action will sign the binaries and upload them to the release assets. The API Clients will silently download the update and the installation will occur on the next restart of the app. +This project uses our [standard release action](https://github.com/agrc/release-composite-action). The existing app installs will silently download the update and the installation will occur on the next restart of the app. ## Dependency Notes diff --git a/forge.config.ts b/forge.config.ts index 3efa921..a7553df 100644 --- a/forge.config.ts +++ b/forge.config.ts @@ -1,4 +1,3 @@ -import { utils } from '@electron-forge/core'; import { MakerDMG } from '@electron-forge/maker-dmg'; import { MakerSquirrel } from '@electron-forge/maker-squirrel'; import { MakerZIP } from '@electron-forge/maker-zip'; @@ -16,8 +15,6 @@ if (process.env.NODE_ENV !== 'production') { dotenv.config(); } -const fromBuildIdentifier = utils.fromBuildIdentifier; - const { version } = packageJson; const assets = path.resolve(__dirname, 'src', 'assets'); const kmsKeyPath = (() => { @@ -50,27 +47,21 @@ const windowsSign = { website: 'https://gis.utah.gov/products/sgid/address/api-client/', signWithParams: ['/v', '/csp', 'Google Cloud KMS Provider', '/kc', kmsKeyPath], }; +const isBeta = process.env.VITE_IS_BETA === 'true'; +const productName = isBeta ? 'UGRC API Client Beta' : 'UGRC API Client'; const config: ForgeConfig = { - buildIdentifier: process.env.VITE_IS_BETA === 'true' ? 'beta' : 'prod', + buildIdentifier: isBeta ? 'beta' : 'prod', packagerConfig: { - // @ts-expect-error expect string - name: fromBuildIdentifier({ - beta: 'UGRC API Client Beta', - prod: 'UGRC API Client', - }), + name: productName, executableName: 'ugrc-api-client', asar: true, icon: path.resolve(assets, 'logo.icns'), - // @ts-expect-error expect string - appBundleId: fromBuildIdentifier({ - beta: 'com.beta.electron.ugrc-api-client', - prod: 'com.electron.ugrc-api-client', - }), + appBundleId: isBeta ? 'com.beta.electron.ugrc-api-client' : 'com.electron.ugrc-api-client', appCategoryType: 'public.app-category.developer-tools', win32metadata: { CompanyName: 'UGRC', - OriginalFilename: 'UGRC API Client', + OriginalFilename: productName, }, // Enable Windows signing only in production; cast to avoid dependency version typing drift // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -119,7 +110,7 @@ const config: ForgeConfig = { }), new MakerZIP({}, ['darwin']), new MakerDMG({ - title: '${productName} ${version}', + title: `${productName} ${version}`, additionalDMGOptions: { window: { size: { @@ -155,11 +146,7 @@ const config: ForgeConfig = { owner: 'agrc', name: 'api-client', }, - draft: true, - prerelease: !!fromBuildIdentifier({ - beta: true, - prod: false, - }), + prerelease: isBeta, }), ], plugins: [ From a579216cf8db622de3e890063db29481b89b6513 Mon Sep 17 00:00:00 2001 From: "ugrc-release-bot[bot]" <113075024+ugrc-release-bot[bot]@users.noreply.github.com> Date: Mon, 22 Jun 2026 22:24:03 +0000 Subject: [PATCH 07/23] chore: release v1.7.14-rc.3 --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b3df5c4..221c63f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.7.14-rc.3](https://github.com/agrc/api-client/compare/v1.7.14-rc.2...v1.7.14-rc.3) (2026-06-22) + + +### Bug Fixes + +* simplify and correct forge config ([b037415](https://github.com/agrc/api-client/commit/b03741579486277aaeef0e617f04a8b1028fb426)) + ## [1.7.14-rc.2](https://github.com/agrc/api-client/compare/v1.7.14-rc.1...v1.7.14-rc.2) (2026-06-22) diff --git a/package.json b/package.json index 81c98f2..9239ad8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ugrc-api-client", - "version": "1.7.14-rc.2", + "version": "1.7.14-rc.3", "description": "The official UGRC API client", "keywords": [ "utah", From 2899eed676323452d196b48e28923cd76e97be91 Mon Sep 17 00:00:00 2001 From: stdavis Date: Mon, 22 Jun 2026 16:38:32 -0600 Subject: [PATCH 08/23] ci: make output path --- .github/workflows/release.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 08555ff..3d56f38 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -54,7 +54,7 @@ jobs: run: pnpm install --frozen-lockfile - name: 🚀 Build macOS distributables - run: pnpm run make -- --arch=universal + run: pnpm make --arch=universal env: NODE_ENV: production APPLE_IDENTITY: ${{ secrets.APPLE_IDENTITY }} @@ -69,7 +69,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: macos-release-assets - path: out/make/** + path: out/**/make/** if-no-files-found: error deploy-windows: @@ -133,7 +133,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: windows-release-assets - path: out/make/** + path: out/**/make/** if-no-files-found: error upload-release-assets: From 7efced8804d8adde8a39eeb8da287a59c1c8817c Mon Sep 17 00:00:00 2001 From: "ugrc-release-bot[bot]" <113075024+ugrc-release-bot[bot]@users.noreply.github.com> Date: Mon, 22 Jun 2026 22:39:04 +0000 Subject: [PATCH 09/23] chore: release v1.7.14-rc.4 --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 221c63f..1b56bb7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.7.14-rc.4](https://github.com/agrc/api-client/compare/v1.7.14-rc.3...v1.7.14-rc.4) (2026-06-22) + + +### Bug Fixes + +* make output path ([51c4fdc](https://github.com/agrc/api-client/commit/51c4fdcd5ea0132bed05a00a02844e76b0636711)) + ## [1.7.14-rc.3](https://github.com/agrc/api-client/compare/v1.7.14-rc.2...v1.7.14-rc.3) (2026-06-22) diff --git a/package.json b/package.json index 9239ad8..4cae1b6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ugrc-api-client", - "version": "1.7.14-rc.3", + "version": "1.7.14-rc.4", "description": "The official UGRC API client", "keywords": [ "utah", From 1dc8bb7c062af9da3842b32a7d719e3b9cd4877b Mon Sep 17 00:00:00 2001 From: stdavis Date: Tue, 23 Jun 2026 17:19:37 -0600 Subject: [PATCH 10/23] ci: remove github publishing plugin Since we are manually uploading the build artifacts now in the release workflow. --- forge.config.ts | 10 --- package.json | 2 - pnpm-lock.yaml | 199 ------------------------------------------------ 3 files changed, 211 deletions(-) diff --git a/forge.config.ts b/forge.config.ts index a7553df..3af393f 100644 --- a/forge.config.ts +++ b/forge.config.ts @@ -3,7 +3,6 @@ import { MakerSquirrel } from '@electron-forge/maker-squirrel'; import { MakerZIP } from '@electron-forge/maker-zip'; import { FusesPlugin } from '@electron-forge/plugin-fuses'; import { VitePlugin } from '@electron-forge/plugin-vite'; -import { PublisherGithub } from '@electron-forge/publisher-github'; import type { ForgeConfig } from '@electron-forge/shared-types'; import { FuseV1Options, FuseVersion } from '@electron/fuses'; import dotenv from 'dotenv'; @@ -140,15 +139,6 @@ const config: ForgeConfig = { }, }), ], - publishers: [ - new PublisherGithub({ - repository: { - owner: 'agrc', - name: 'api-client', - }, - prerelease: isBeta, - }), - ], plugins: [ new VitePlugin({ // `build` can specify multiple entry builds, which can be Main process, Preload scripts, Worker process, etc. diff --git a/package.json b/package.json index 4cae1b6..d38f7d2 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,6 @@ "lint": "eslint . --report-unused-disable-directives --max-warnings 0", "make": "electron-forge make", "package": "electron-forge package", - "publish": "electron-forge publish", "start": "cross-env ELECTRON_ENABLE_LOGGING=1 electron-forge start" }, "dependencies": { @@ -70,7 +69,6 @@ "@electron-forge/plugin-auto-unpack-natives": "^7.11.2", "@electron-forge/plugin-fuses": "^7.11.2", "@electron-forge/plugin-vite": "^7.11.2", - "@electron-forge/publisher-github": "^7.11.2", "@electron/fuses": "~2.1.2", "@tailwindcss/postcss": "^4.3.0", "@types/electron-squirrel-startup": "^1.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ca4192e..0789925 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -102,9 +102,6 @@ importers: '@electron-forge/plugin-vite': specifier: ^7.11.2 version: 7.11.2 - '@electron-forge/publisher-github': - specifier: ^7.11.2 - version: 7.11.2 '@electron/fuses': specifier: ~2.1.2 version: 2.1.2 @@ -341,10 +338,6 @@ packages: resolution: {integrity: sha512-YwK4ZF3+uW7PBEV/ho59NVTriP3fCahskORrztUaFIdG0QP3hqMsfmo01euv98FDsBEW9UXo7/EW8t5jpmYZ0Q==} engines: {node: '>= 16.4.0'} - '@electron-forge/publisher-github@7.11.2': - resolution: {integrity: sha512-1kandHpGPRg2+Lfo6AyI6DtKVMmrc0yyOdJJmo1A7eJO6U8icMGrypSPwOIiTsN6OYJds/vZBzFQ6Vs9rvRsVg==} - engines: {node: '>= 16.4.0'} - '@electron-forge/shared-types@7.11.2': resolution: {integrity: sha512-Tcles7y74xy3jN5dEC+Pt1duJYk4c7W2xu98tjWW8RewmfKD2uHkie6I1I3yifPFZXZ/QfTlaFOOoKIQ9ENZjg==} engines: {node: '>= 16.4.0'} @@ -892,70 +885,6 @@ packages: resolution: {integrity: sha512-mGUWr1uMnf0le2TwfOZY4SFxZGXGfm4Jtay/nwAa2FLNAKXUoUwaGwBMNH36UHPtinWfTSJ3nqFQr0091CxVGg==} engines: {node: ^20.17.0 || >=22.9.0} - '@octokit/auth-token@4.0.0': - resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==} - engines: {node: '>= 18'} - - '@octokit/core@5.2.2': - resolution: {integrity: sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==} - engines: {node: '>= 18'} - - '@octokit/endpoint@9.0.6': - resolution: {integrity: sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==} - engines: {node: '>= 18'} - - '@octokit/graphql@7.1.1': - resolution: {integrity: sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==} - engines: {node: '>= 18'} - - '@octokit/openapi-types@12.11.0': - resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==} - - '@octokit/openapi-types@24.2.0': - resolution: {integrity: sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==} - - '@octokit/plugin-paginate-rest@11.4.4-cjs.2': - resolution: {integrity: sha512-2dK6z8fhs8lla5PaOTgqfCGBxgAv/le+EhPs27KklPhm1bKObpu6lXzwfUEQ16ajXzqNrKMujsFyo9K2eaoISw==} - engines: {node: '>= 18'} - peerDependencies: - '@octokit/core': '5' - - '@octokit/plugin-request-log@4.0.1': - resolution: {integrity: sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA==} - engines: {node: '>= 18'} - peerDependencies: - '@octokit/core': '5' - - '@octokit/plugin-rest-endpoint-methods@13.3.2-cjs.1': - resolution: {integrity: sha512-VUjIjOOvF2oELQmiFpWA1aOPdawpyaCUqcEBc/UOUnj3Xp6DJGrJ1+bjUIIDzdHjnFNO6q57ODMfdEZnoBkCwQ==} - engines: {node: '>= 18'} - peerDependencies: - '@octokit/core': ^5 - - '@octokit/plugin-retry@6.1.0': - resolution: {integrity: sha512-WrO3bvq4E1Xh1r2mT9w6SDFg01gFmP81nIG77+p/MqW1JeXXgL++6umim3t6x0Zj5pZm3rXAN+0HEjmmdhIRig==} - engines: {node: '>= 18'} - peerDependencies: - '@octokit/core': '5' - - '@octokit/request-error@5.1.1': - resolution: {integrity: sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==} - engines: {node: '>= 18'} - - '@octokit/request@8.4.1': - resolution: {integrity: sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==} - engines: {node: '>= 18'} - - '@octokit/rest@20.1.2': - resolution: {integrity: sha512-GmYiltypkHHtihFwPRxlaorG5R9VAHuk/vbszVoRTGXnAsY60wYLkh/E2XiFmdZmqrisw+9FaazS1i5SbdWYgA==} - engines: {node: '>= 18'} - - '@octokit/types@13.10.0': - resolution: {integrity: sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==} - - '@octokit/types@6.41.0': - resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==} - '@oxc-project/types@0.133.0': resolution: {integrity: sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==} @@ -1703,9 +1632,6 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - before-after-hook@2.2.3: - resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} - better-opn@3.0.2: resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} engines: {node: '>=12.0.0'} @@ -1724,9 +1650,6 @@ packages: resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - bottleneck@2.19.5: - resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} - bplist-creator@0.0.8: resolution: {integrity: sha512-Za9JKzD6fjLC16oX2wsXfc+qBEhJBJB1YPInoAQpMLhDuj5aVOv1baGeIQSq1Fr3OCqzvsoQcSBSwGId/Ja2PA==} @@ -2060,9 +1983,6 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} - deprecation@2.3.1: - resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} - dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} @@ -3316,18 +3236,10 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - mime-db@1.54.0: resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} engines: {node: '>= 0.6'} - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -4614,9 +4526,6 @@ packages: resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - universal-user-agent@6.0.1: - resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} - universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} @@ -5220,24 +5129,6 @@ snapshots: - bluebird - supports-color - '@electron-forge/publisher-github@7.11.2': - dependencies: - '@electron-forge/publisher-base': 7.11.2 - '@electron-forge/shared-types': 7.11.2 - '@octokit/core': 5.2.2 - '@octokit/plugin-retry': 6.1.0(@octokit/core@5.2.2) - '@octokit/request-error': 5.1.1 - '@octokit/rest': 20.1.2 - '@octokit/types': 6.41.0 - chalk: 4.1.2 - debug: 4.4.3 - fs-extra: 10.1.0 - log-symbols: 4.1.0 - mime-types: 2.1.35 - transitivePeerDependencies: - - bluebird - - supports-color - '@electron-forge/shared-types@7.11.2': dependencies: '@electron-forge/tracer': 7.11.2 @@ -5963,82 +5854,6 @@ snapshots: node-gyp: 12.3.0 proc-log: 6.1.0 - '@octokit/auth-token@4.0.0': {} - - '@octokit/core@5.2.2': - dependencies: - '@octokit/auth-token': 4.0.0 - '@octokit/graphql': 7.1.1 - '@octokit/request': 8.4.1 - '@octokit/request-error': 5.1.1 - '@octokit/types': 13.10.0 - before-after-hook: 2.2.3 - universal-user-agent: 6.0.1 - - '@octokit/endpoint@9.0.6': - dependencies: - '@octokit/types': 13.10.0 - universal-user-agent: 6.0.1 - - '@octokit/graphql@7.1.1': - dependencies: - '@octokit/request': 8.4.1 - '@octokit/types': 13.10.0 - universal-user-agent: 6.0.1 - - '@octokit/openapi-types@12.11.0': {} - - '@octokit/openapi-types@24.2.0': {} - - '@octokit/plugin-paginate-rest@11.4.4-cjs.2(@octokit/core@5.2.2)': - dependencies: - '@octokit/core': 5.2.2 - '@octokit/types': 13.10.0 - - '@octokit/plugin-request-log@4.0.1(@octokit/core@5.2.2)': - dependencies: - '@octokit/core': 5.2.2 - - '@octokit/plugin-rest-endpoint-methods@13.3.2-cjs.1(@octokit/core@5.2.2)': - dependencies: - '@octokit/core': 5.2.2 - '@octokit/types': 13.10.0 - - '@octokit/plugin-retry@6.1.0(@octokit/core@5.2.2)': - dependencies: - '@octokit/core': 5.2.2 - '@octokit/request-error': 5.1.1 - '@octokit/types': 13.10.0 - bottleneck: 2.19.5 - - '@octokit/request-error@5.1.1': - dependencies: - '@octokit/types': 13.10.0 - deprecation: 2.3.1 - once: 1.4.0 - - '@octokit/request@8.4.1': - dependencies: - '@octokit/endpoint': 9.0.6 - '@octokit/request-error': 5.1.1 - '@octokit/types': 13.10.0 - universal-user-agent: 6.0.1 - - '@octokit/rest@20.1.2': - dependencies: - '@octokit/core': 5.2.2 - '@octokit/plugin-paginate-rest': 11.4.4-cjs.2(@octokit/core@5.2.2) - '@octokit/plugin-request-log': 4.0.1(@octokit/core@5.2.2) - '@octokit/plugin-rest-endpoint-methods': 13.3.2-cjs.1(@octokit/core@5.2.2) - - '@octokit/types@13.10.0': - dependencies: - '@octokit/openapi-types': 24.2.0 - - '@octokit/types@6.41.0': - dependencies: - '@octokit/openapi-types': 12.11.0 - '@oxc-project/types@0.133.0': {} '@react-aria/focus@3.22.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': @@ -6825,8 +6640,6 @@ snapshots: baseline-browser-mapping@2.10.31: {} - before-after-hook@2.2.3: {} - better-opn@3.0.2: dependencies: open: 8.4.2 @@ -6850,8 +6663,6 @@ snapshots: boolean@3.2.0: optional: true - bottleneck@2.19.5: {} - bplist-creator@0.0.8: dependencies: stream-buffers: 2.2.0 @@ -7192,8 +7003,6 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 - deprecation@2.3.1: {} - dequal@2.0.3: {} detect-indent@7.0.2: {} @@ -8700,14 +8509,8 @@ snapshots: braces: 3.0.3 picomatch: 2.3.2 - mime-db@1.52.0: {} - mime-db@1.54.0: {} - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - mimic-fn@2.1.0: {} mimic-function@5.0.1: {} @@ -10039,8 +9842,6 @@ snapshots: dependencies: imurmurhash: 0.1.4 - universal-user-agent@6.0.1: {} - universalify@0.1.2: {} universalify@2.0.1: {} From 2ba95bdc225c79f9932a6c883261c6f99ca34ecd Mon Sep 17 00:00:00 2001 From: stdavis Date: Wed, 24 Jun 2026 08:49:00 -0600 Subject: [PATCH 11/23] ci: pin to node v22 Wait until electron v8 to bump to node v24 --- .github/workflows/pull_request.yml | 2 +- .github/workflows/release.yml | 12 ++++++------ .node-version | 1 + 3 files changed, 8 insertions(+), 7 deletions(-) create mode 100644 .node-version diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 9f2ebe0..013a7a3 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -30,7 +30,7 @@ jobs: - name: ⎔ Setup Node.js uses: actions/setup-node@v6 with: - node-version: lts/* + node-version-file: .node-version cache: pnpm - name: 📥 Download dependencies diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3d56f38..b9c3e89 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -32,7 +32,7 @@ jobs: - name: ⎔ Set up Node.js uses: actions/setup-node@v6 with: - node-version: lts/* + node-version-file: .node-version cache: pnpm - name: 🐍 Set up python @@ -66,7 +66,7 @@ jobs: VITE_IS_BETA: ${{ github.event.release.prerelease == true }} - name: ⬆️ Upload macOS distributables - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: macos-release-assets path: out/**/make/** @@ -91,7 +91,7 @@ jobs: - name: ⎔ Set up Node.js uses: actions/setup-node@v6 with: - node-version: lts/* + node-version-file: .node-version cache: pnpm - name: 📥 Install dependencies @@ -130,7 +130,7 @@ jobs: VITE_IS_BETA: ${{ github.event.release.prerelease == true }} - name: ⬆️ Upload Windows distributables - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: windows-release-assets path: out/**/make/** @@ -142,13 +142,13 @@ jobs: runs-on: ubuntu-latest steps: - name: ⬇️ Download macOS distributables - uses: actions/download-artifact@v5 + uses: actions/download-artifact@v8 with: name: macos-release-assets path: release-assets/macos - name: ⬇️ Download Windows distributables - uses: actions/download-artifact@v5 + uses: actions/download-artifact@v8 with: name: windows-release-assets path: release-assets/windows diff --git a/.node-version b/.node-version new file mode 100644 index 0000000..f5b3ef3 --- /dev/null +++ b/.node-version @@ -0,0 +1 @@ +22.21.0 \ No newline at end of file From 193cac82cc225ce6e02b0b0196d13d50816249b6 Mon Sep 17 00:00:00 2001 From: stdavis Date: Wed, 24 Jun 2026 08:59:24 -0600 Subject: [PATCH 12/23] chore: make local builds on macos work --- .vscode/settings.json | 1 + forge.config.ts | 28 +++++++++++++++++----------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 4f415e4..18994a5 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -37,6 +37,7 @@ "postcss", "pwsh", "relocator", + "runneradmin", "Sectigo", "semibold", "setuptools", diff --git a/forge.config.ts b/forge.config.ts index 3af393f..77357be 100644 --- a/forge.config.ts +++ b/forge.config.ts @@ -48,6 +48,8 @@ const windowsSign = { }; const isBeta = process.env.VITE_IS_BETA === 'true'; const productName = isBeta ? 'UGRC API Client Beta' : 'UGRC API Client'; +const isUniversalArch = process.argv.includes('--arch=universal') || process.env.npm_config_arch === 'universal'; +const shouldSkipFusesForUniversal = process.platform === 'darwin' && isUniversalArch && process.env.NODE_ENV !== 'production'; const config: ForgeConfig = { buildIdentifier: isBeta ? 'beta' : 'prod', @@ -163,17 +165,21 @@ const config: ForgeConfig = { }, ], }), - // Fuses are used to enable/disable various Electron functionality - // at package time, before code signing the application - new FusesPlugin({ - version: FuseVersion.V1, - [FuseV1Options.RunAsNode]: false, - [FuseV1Options.EnableCookieEncryption]: true, - [FuseV1Options.EnableNodeOptionsEnvironmentVariable]: false, - [FuseV1Options.EnableNodeCliInspectArguments]: false, - [FuseV1Options.EnableEmbeddedAsarIntegrityValidation]: true, - [FuseV1Options.OnlyLoadAppFromAsar]: true, - }), + ...(shouldSkipFusesForUniversal + ? [] + : [ + // Fuses are used to enable/disable various Electron functionality + // at package time, before code signing the application + new FusesPlugin({ + version: FuseVersion.V1, + [FuseV1Options.RunAsNode]: false, + [FuseV1Options.EnableCookieEncryption]: true, + [FuseV1Options.EnableNodeOptionsEnvironmentVariable]: false, + [FuseV1Options.EnableNodeCliInspectArguments]: false, + [FuseV1Options.EnableEmbeddedAsarIntegrityValidation]: true, + [FuseV1Options.OnlyLoadAppFromAsar]: true, + }), + ]), ], }; From 7c5052500d16e627d240d79da8139a4b6c56c420 Mon Sep 17 00:00:00 2001 From: stdavis Date: Wed, 24 Jun 2026 09:06:06 -0600 Subject: [PATCH 13/23] ci: more specific upload path for artifacts --- .github/workflows/release.yml | 4 ++-- forge.config.ts | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b9c3e89..1644cc8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -69,7 +69,7 @@ jobs: uses: actions/upload-artifact@v7 with: name: macos-release-assets - path: out/**/make/** + path: out/[prod|beta]/make/ if-no-files-found: error deploy-windows: @@ -133,7 +133,7 @@ jobs: uses: actions/upload-artifact@v7 with: name: windows-release-assets - path: out/**/make/** + path: out/[prod|beta]/make/ if-no-files-found: error upload-release-assets: diff --git a/forge.config.ts b/forge.config.ts index 77357be..aee9371 100644 --- a/forge.config.ts +++ b/forge.config.ts @@ -49,7 +49,8 @@ const windowsSign = { const isBeta = process.env.VITE_IS_BETA === 'true'; const productName = isBeta ? 'UGRC API Client Beta' : 'UGRC API Client'; const isUniversalArch = process.argv.includes('--arch=universal') || process.env.npm_config_arch === 'universal'; -const shouldSkipFusesForUniversal = process.platform === 'darwin' && isUniversalArch && process.env.NODE_ENV !== 'production'; +const shouldSkipFusesForUniversal = + process.platform === 'darwin' && isUniversalArch && process.env.NODE_ENV !== 'production'; const config: ForgeConfig = { buildIdentifier: isBeta ? 'beta' : 'prod', From 6b2cb5a0329b02d68899a724f42198df8376b78b Mon Sep 17 00:00:00 2001 From: "ugrc-release-bot[bot]" <113075024+ugrc-release-bot[bot]@users.noreply.github.com> Date: Wed, 24 Jun 2026 15:06:46 +0000 Subject: [PATCH 14/23] chore: release v1.7.14-rc.5 --- CHANGELOG.md | 12 ++++++++++++ package.json | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b56bb7..bf0936c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [1.7.14-rc.5](https://github.com/agrc/api-client/compare/v1.7.14-rc.4...v1.7.14-rc.5) (2026-06-24) + + +### Bug Fixes + +* more specific upload path for artifacts ([e242253](https://github.com/agrc/api-client/commit/e242253a30323e1ee48849592b05e5d6c18eaded)) + + +### Dependencies + +* pin to node v22 ([114a8d7](https://github.com/agrc/api-client/commit/114a8d78003f14e8369a828f0be7dc1071665713)) + ## [1.7.14-rc.4](https://github.com/agrc/api-client/compare/v1.7.14-rc.3...v1.7.14-rc.4) (2026-06-22) diff --git a/package.json b/package.json index d38f7d2..6fefce2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ugrc-api-client", - "version": "1.7.14-rc.4", + "version": "1.7.14-rc.5", "description": "The official UGRC API client", "keywords": [ "utah", From 42052946ac9d9def312c3228457fb730da131b98 Mon Sep 17 00:00:00 2001 From: stdavis Date: Wed, 24 Jun 2026 09:18:04 -0600 Subject: [PATCH 15/23] ci: prevent dmg mount name from exceeding the 27 character limit --- forge.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge.config.ts b/forge.config.ts index aee9371..8aa7fbd 100644 --- a/forge.config.ts +++ b/forge.config.ts @@ -112,7 +112,7 @@ const config: ForgeConfig = { }), new MakerZIP({}, ['darwin']), new MakerDMG({ - title: `${productName} ${version}`, + title: productName, additionalDMGOptions: { window: { size: { From c1d78910e7e58e53ff741632a95008c3e60c9e65 Mon Sep 17 00:00:00 2001 From: "ugrc-release-bot[bot]" <113075024+ugrc-release-bot[bot]@users.noreply.github.com> Date: Wed, 24 Jun 2026 15:18:46 +0000 Subject: [PATCH 16/23] chore: release v1.7.14-rc.6 --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bf0936c..c009fd5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.7.14-rc.6](https://github.com/agrc/api-client/compare/v1.7.14-rc.5...v1.7.14-rc.6) (2026-06-24) + + +### Bug Fixes + +* prevent dmg mount name from exceeding the 27 character limit ([b52e490](https://github.com/agrc/api-client/commit/b52e490fc4ff16b2e63581f2de13b814a9472b7a)) + ## [1.7.14-rc.5](https://github.com/agrc/api-client/compare/v1.7.14-rc.4...v1.7.14-rc.5) (2026-06-24) diff --git a/package.json b/package.json index 6fefce2..186a0c0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ugrc-api-client", - "version": "1.7.14-rc.5", + "version": "1.7.14-rc.6", "description": "The official UGRC API client", "keywords": [ "utah", From e94c4c7bc35a894748a055938c5e0aa1e3b19e1b Mon Sep 17 00:00:00 2001 From: stdavis Date: Wed, 24 Jun 2026 09:25:23 -0600 Subject: [PATCH 17/23] ci: remove duplicate windows signing --- forge.config.ts | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/forge.config.ts b/forge.config.ts index 8aa7fbd..1cb7aa9 100644 --- a/forge.config.ts +++ b/forge.config.ts @@ -5,6 +5,7 @@ import { FusesPlugin } from '@electron-forge/plugin-fuses'; import { VitePlugin } from '@electron-forge/plugin-vite'; import type { ForgeConfig } from '@electron-forge/shared-types'; import { FuseV1Options, FuseVersion } from '@electron/fuses'; +import type { SignToolOptions } from '@electron/windows-sign'; import dotenv from 'dotenv'; import path from 'path'; import packageJson from './package.json'; @@ -37,9 +38,8 @@ const appleId = process.env.APPLE_USER_ID; const appleIdPassword = process.env.APPLE_PASSWORD; const appleTeamId = process.env.APPLE_TEAM_ID; -const windowsSign = { - digestAlgorithm: 'sha256', - hashes: ['sha256'], +const windowsSign: SignToolOptions = { + hashes: ['sha256' as NonNullable[number]], certificateFile: certPath, timestampServer: 'http://timestamp.sectigo.com', description: 'UGRC API Client', @@ -65,9 +65,6 @@ const config: ForgeConfig = { CompanyName: 'UGRC', OriginalFilename: productName, }, - // Enable Windows signing only in production; cast to avoid dependency version typing drift - // eslint-disable-next-line @typescript-eslint/no-explicit-any - windowsSign: process.env.NODE_ENV !== 'production' ? undefined : (windowsSign as any), osxSign: process.env.NODE_ENV !== 'production' ? undefined @@ -100,15 +97,7 @@ const config: ForgeConfig = { noMsi: true, setupExe: `ugrc-api-client-${version}-win32-setup.exe`, setupIcon: path.resolve(assets, 'logo.ico'), - windowsSign: { - // @ts-expect-error matches enum value - hashes: ['sha256'], - certificateFile: certPath, - timestampServer: 'http://timestamp.sectigo.com', - description: 'UGRC API Client', - website: 'https://gis.utah.gov/products/sgid/address/api-client/', - signWithParams: ['/v', '/csp', 'Google Cloud KMS Provider', '/kc', kmsKeyPath], - }, + windowsSign, }), new MakerZIP({}, ['darwin']), new MakerDMG({ From 31281055d9d04db3b576b666e2a737831135c8ac Mon Sep 17 00:00:00 2001 From: stdavis Date: Wed, 24 Jun 2026 09:27:40 -0600 Subject: [PATCH 18/23] ci: fix upload path --- .github/workflows/release.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1644cc8..fc48ce5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,6 +11,7 @@ permissions: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + BUILD_IDENTIFIER: ${{ github.event.release.prerelease && 'beta' || 'prod' }} jobs: deploy-macos: @@ -69,7 +70,7 @@ jobs: uses: actions/upload-artifact@v7 with: name: macos-release-assets - path: out/[prod|beta]/make/ + path: out/${{ env.BUILD_IDENTIFIER }}/make/ if-no-files-found: error deploy-windows: @@ -133,7 +134,7 @@ jobs: uses: actions/upload-artifact@v7 with: name: windows-release-assets - path: out/[prod|beta]/make/ + path: out/${{ env.BUILD_IDENTIFIER }}/make/ if-no-files-found: error upload-release-assets: From 077459d52d2958bf75266dab23fc266b320296c2 Mon Sep 17 00:00:00 2001 From: "ugrc-release-bot[bot]" <113075024+ugrc-release-bot[bot]@users.noreply.github.com> Date: Wed, 24 Jun 2026 15:28:16 +0000 Subject: [PATCH 19/23] chore: release v1.7.14-rc.7 --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c009fd5..7c7dbe4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.7.14-rc.7](https://github.com/agrc/api-client/compare/v1.7.14-rc.6...v1.7.14-rc.7) (2026-06-24) + + +### Bug Fixes + +* remove duplicate windows signing ([d8cf04c](https://github.com/agrc/api-client/commit/d8cf04c5c1d5946134f398029bd5b4c25f4c6c8f)) + ## [1.7.14-rc.6](https://github.com/agrc/api-client/compare/v1.7.14-rc.5...v1.7.14-rc.6) (2026-06-24) diff --git a/package.json b/package.json index 186a0c0..8521448 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ugrc-api-client", - "version": "1.7.14-rc.6", + "version": "1.7.14-rc.7", "description": "The official UGRC API client", "keywords": [ "utah", From 970a25b9d94e4bcb75334125f81923527a7f2ce1 Mon Sep 17 00:00:00 2001 From: stdavis Date: Wed, 24 Jun 2026 09:46:30 -0600 Subject: [PATCH 20/23] ci: add env var to help gh cli know which repo to target --- .github/workflows/release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fc48ce5..5249b82 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -157,6 +157,7 @@ jobs: - name: 🚀 Attach distributables to release env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_REPO: ${{ github.repository }} RELEASE_TAG: ${{ github.event.release.tag_name }} run: | find release-assets -type f -print0 | while IFS= read -r -d '' file; do From d59b9030fd02caef96b10e570332f1a493574d87 Mon Sep 17 00:00:00 2001 From: "ugrc-release-bot[bot]" <113075024+ugrc-release-bot[bot]@users.noreply.github.com> Date: Wed, 24 Jun 2026 15:47:05 +0000 Subject: [PATCH 21/23] chore: release v1.7.14-rc.8 --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7c7dbe4..e581936 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.7.14-rc.8](https://github.com/agrc/api-client/compare/v1.7.14-rc.7...v1.7.14-rc.8) (2026-06-24) + + +### Bug Fixes + +* add env var to help gh cli know which repo to target ([4b53dae](https://github.com/agrc/api-client/commit/4b53daee918932cf898183dcdfb513dc93b6b5b0)) + ## [1.7.14-rc.7](https://github.com/agrc/api-client/compare/v1.7.14-rc.6...v1.7.14-rc.7) (2026-06-24) diff --git a/package.json b/package.json index 8521448..ebf3682 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ugrc-api-client", - "version": "1.7.14-rc.7", + "version": "1.7.14-rc.8", "description": "The official UGRC API client", "keywords": [ "utah", From e929d282916b363a7e603ddeb598b5770f897c87 Mon Sep 17 00:00:00 2001 From: stdavis Date: Wed, 24 Jun 2026 14:04:16 -0600 Subject: [PATCH 22/23] ci: correlate pnpm action versions --- .github/workflows/pull_request.yml | 2 +- .github/workflows/release.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 013a7a3..3066937 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -23,7 +23,7 @@ jobs: show-progress: false - name: 📦 Setup PNPM - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v6 with: version: 11 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5249b82..1b2fa53 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -85,7 +85,7 @@ jobs: show-progress: false - name: 📦 Setup PNPM - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v6 with: version: 11 From dda7dbc5c12a494225c955aa3fb947f465541c07 Mon Sep 17 00:00:00 2001 From: Scott Davis Date: Wed, 24 Jun 2026 14:04:38 -0600 Subject: [PATCH 23/23] chore: clarify deploy process around github actions Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e2503db..060277d 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ An apple developer certificate is required to sign the application for distribut ## Deploying a new version -This project uses our [standard release action](https://github.com/agrc/release-composite-action). The existing app installs will silently download the update and the installation will occur on the next restart of the app. +This project uses our [standard release action](https://github.com/agrc/release-composite-action) to create draft releases. Publishing a release triggers GitHub Actions to build/sign the distributables and attach them to the release; existing installs will silently download the update and the installation will occur on the next restart of the app. ## Dependency Notes