From 38a71013bbf1b5d0e05f6beca4e3906f7c13632d Mon Sep 17 00:00:00 2001 From: Scott Claiborne Date: Tue, 5 May 2026 13:51:40 -0700 Subject: [PATCH 01/16] Install lpm in CI To allow tests to install dependencies --- .github/workflows/ci.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7d0635a..4ec02ee 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,6 +27,13 @@ jobs: python -m pip install --upgrade pip pip install -e ".[dev]" + - uses: actions/setup-node@v4 + with: + node-version: '22' + + - name: Install lpm + run: npm install -g @loupeteam/lpm + - name: Lint (ruff) run: ruff check aspython tests continue-on-error: true From 12d5ed403d77a2a00c3cb664ad385dee9bc5ea8d Mon Sep 17 00:00:00 2001 From: Scott Claiborne Date: Tue, 5 May 2026 13:51:59 -0700 Subject: [PATCH 02/16] Update Python versions --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4ec02ee..3f3cbb9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,7 +13,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.10', '3.11', '3.12'] + python-version: ['3.11', '3.12', '3.13', '3.14'] steps: - uses: actions/checkout@v4 From e4292e9ec5ef71ab8b9c92abc1f469b441aa4244 Mon Sep 17 00:00:00 2001 From: Scott Claiborne Date: Tue, 5 May 2026 13:59:55 -0700 Subject: [PATCH 03/16] Fix LPM not found in CI --- .github/workflows/ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3f3cbb9..d5cb412 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,9 +30,13 @@ jobs: - uses: actions/setup-node@v4 with: node-version: '22' + registry-url: 'https://npm.pkg.github.com' + scope: '@loupeteam' - name: Install lpm run: npm install -g @loupeteam/lpm + env: + NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Lint (ruff) run: ruff check aspython tests From d9e877ea3bb3b61b1ae31906bd7804156d818baa Mon Sep 17 00:00:00 2001 From: Scott Claiborne Date: Tue, 5 May 2026 14:07:50 -0700 Subject: [PATCH 04/16] Fix conftest incorrect silent arg --- tests/conftest.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 5c2544e..b12a7a6 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -35,11 +35,10 @@ def pytest_configure(config): sys.stderr.write('\nAsProject not found — generating via lpm...\n') try: - _run_lpm('init', '--silent', cwd=AS_PROJECT) + _run_lpm('-s', 'init', cwd=AS_PROJECT) for package in _LPM_PACKAGES: sys.stderr.write(f' lpm install {package}\n') - _run_lpm('install', package, '--silent', cwd=AS_PROJECT) - # _run_lpm('install', '--silent', cwd=AS_PROJECT) # See comment above about plain "lpm install" + _run_lpm('-s', 'install', package, cwd=AS_PROJECT) except FileNotFoundError: sys.stderr.write( 'ERROR: lpm not found.\n' From 3f055d2f2561da89b041f157ee83b551659663eb Mon Sep 17 00:00:00 2001 From: Scott Claiborne Date: Tue, 5 May 2026 14:16:13 -0700 Subject: [PATCH 05/16] Login to LPM in CI --- .github/workflows/ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d5cb412..03529d2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,6 +42,9 @@ jobs: run: ruff check aspython tests continue-on-error: true + - name: Log in to lpm + run: lpm login -t ${{ secrets.GITHUB_TOKEN }} + - name: Run tests run: pytest -q From e08e4bbe56eb17d827923afa958b9434f919d237 Mon Sep 17 00:00:00 2001 From: Scott Claiborne Date: Tue, 5 May 2026 14:20:36 -0700 Subject: [PATCH 06/16] Give Token access to packages --- .github/workflows/ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 03529d2..a2770aa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,6 +10,9 @@ on: jobs: test: runs-on: windows-latest + permissions: + contents: read + packages: read strategy: fail-fast: false matrix: From b50ad3ce41a7d149b4f0b3a4e3f4807b6bf3c554 Mon Sep 17 00:00:00 2001 From: Scott Claiborne Date: Tue, 5 May 2026 15:19:53 -0700 Subject: [PATCH 07/16] Add no check to login --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a2770aa..a6421b7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,7 +46,7 @@ jobs: continue-on-error: true - name: Log in to lpm - run: lpm login -t ${{ secrets.GITHUB_TOKEN }} + run: lpm login -t ${{ secrets.GITHUB_TOKEN }} --no-check - name: Run tests run: pytest -q From 7a5247acecada88d9b89a7a80412500b3d04c1d3 Mon Sep 17 00:00:00 2001 From: Scott Claiborne Date: Wed, 6 May 2026 07:42:08 -0700 Subject: [PATCH 08/16] Update to prerelease of lpm --- .github/workflows/ci.yml | 4 ++-- tests/conftest.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a6421b7..b80f440 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,7 +37,7 @@ jobs: scope: '@loupeteam' - name: Install lpm - run: npm install -g @loupeteam/lpm + run: npm install -g @loupeteam/lpm@1.2.0-beta.1 env: NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -46,7 +46,7 @@ jobs: continue-on-error: true - name: Log in to lpm - run: lpm login -t ${{ secrets.GITHUB_TOKEN }} --no-check + run: lpm login -t ${{ secrets.GITHUB_TOKEN }} --no-auth-check - name: Run tests run: pytest -q diff --git a/tests/conftest.py b/tests/conftest.py index b12a7a6..45500ea 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -35,10 +35,10 @@ def pytest_configure(config): sys.stderr.write('\nAsProject not found — generating via lpm...\n') try: - _run_lpm('-s', 'init', cwd=AS_PROJECT) + _run_lpm('-s', '--no-auth-check', 'init', cwd=AS_PROJECT) for package in _LPM_PACKAGES: sys.stderr.write(f' lpm install {package}\n') - _run_lpm('-s', 'install', package, cwd=AS_PROJECT) + _run_lpm('-s', '--no-auth-check', 'install', package, cwd=AS_PROJECT) except FileNotFoundError: sys.stderr.write( 'ERROR: lpm not found.\n' From 0cdfe10119df3ede19a8b23aa7f98c9434d77658 Mon Sep 17 00:00:00 2001 From: Scott Claiborne Date: Wed, 6 May 2026 08:15:54 -0700 Subject: [PATCH 09/16] Attempt to set node token in env --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b80f440..f5c55f6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -50,6 +50,8 @@ jobs: - name: Run tests run: pytest -q + env: + NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} build-exe: needs: test From f9bf6928a233556f9a9e39fce9620009a5eb9cac Mon Sep 17 00:00:00 2001 From: Scott Claiborne Date: Wed, 6 May 2026 08:19:55 -0700 Subject: [PATCH 10/16] Update to use LPM token --- .github/workflows/ci.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f5c55f6..1a48179 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,12 +46,10 @@ jobs: continue-on-error: true - name: Log in to lpm - run: lpm login -t ${{ secrets.GITHUB_TOKEN }} --no-auth-check + run: lpm login -t ${{ secrets.LPM_TOKEN }} --no-auth-check - name: Run tests run: pytest -q - env: - NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} build-exe: needs: test From 458610d0f9d104c9d3ca21140c48cfb91fec361e Mon Sep 17 00:00:00 2001 From: Scott Claiborne Date: Wed, 6 May 2026 08:24:51 -0700 Subject: [PATCH 11/16] Attempt to use node auth token --- .github/workflows/ci.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1a48179..3d8fc90 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,17 +39,16 @@ jobs: - name: Install lpm run: npm install -g @loupeteam/lpm@1.2.0-beta.1 env: - NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.LPM_TOKEN }} - name: Lint (ruff) run: ruff check aspython tests continue-on-error: true - - name: Log in to lpm - run: lpm login -t ${{ secrets.LPM_TOKEN }} --no-auth-check - - name: Run tests run: pytest -q + env: + NODE_AUTH_TOKEN: ${{ secrets.LPM_TOKEN }} build-exe: needs: test From 1705de05a7531c4f9062ccf0d853f00c05104bf0 Mon Sep 17 00:00:00 2001 From: Scott Claiborne Date: Wed, 6 May 2026 08:29:31 -0700 Subject: [PATCH 12/16] Attempt to use Github_Token Now we have it working with LPM_TOKEN lets try the standard Github Token --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3d8fc90..89fbd9b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,7 +39,7 @@ jobs: - name: Install lpm run: npm install -g @loupeteam/lpm@1.2.0-beta.1 env: - NODE_AUTH_TOKEN: ${{ secrets.LPM_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Lint (ruff) run: ruff check aspython tests @@ -48,7 +48,7 @@ jobs: - name: Run tests run: pytest -q env: - NODE_AUTH_TOKEN: ${{ secrets.LPM_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} build-exe: needs: test From 62663f9f17e89abc2a8c4e7c1398ab5d8eb7506e Mon Sep 17 00:00:00 2001 From: Scott Claiborne Date: Wed, 6 May 2026 08:32:48 -0700 Subject: [PATCH 13/16] Switch back to LPM Token --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 89fbd9b..3d8fc90 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,7 +39,7 @@ jobs: - name: Install lpm run: npm install -g @loupeteam/lpm@1.2.0-beta.1 env: - NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.LPM_TOKEN }} - name: Lint (ruff) run: ruff check aspython tests @@ -48,7 +48,7 @@ jobs: - name: Run tests run: pytest -q env: - NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.LPM_TOKEN }} build-exe: needs: test From 8e9f05281092c8b57a9f3dcef5607f16c48ac2d7 Mon Sep 17 00:00:00 2001 From: Scott Claiborne Date: Wed, 6 May 2026 08:34:25 -0700 Subject: [PATCH 14/16] Remove no-auth-check from lpm commands This is only needed if using GITHUB_TOKEN but we cant use that --- tests/conftest.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 45500ea..b12a7a6 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -35,10 +35,10 @@ def pytest_configure(config): sys.stderr.write('\nAsProject not found — generating via lpm...\n') try: - _run_lpm('-s', '--no-auth-check', 'init', cwd=AS_PROJECT) + _run_lpm('-s', 'init', cwd=AS_PROJECT) for package in _LPM_PACKAGES: sys.stderr.write(f' lpm install {package}\n') - _run_lpm('-s', '--no-auth-check', 'install', package, cwd=AS_PROJECT) + _run_lpm('-s', 'install', package, cwd=AS_PROJECT) except FileNotFoundError: sys.stderr.write( 'ERROR: lpm not found.\n' From 9d681562092b4458cf1a4e7aadb1675b140f67f2 Mon Sep 17 00:00:00 2001 From: Scott Claiborne Date: Wed, 6 May 2026 08:38:45 -0700 Subject: [PATCH 15/16] Add tests skip reason to summary --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3d8fc90..8acc238 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,7 +46,7 @@ jobs: continue-on-error: true - name: Run tests - run: pytest -q + run: pytest -q -rs env: NODE_AUTH_TOKEN: ${{ secrets.LPM_TOKEN }} From 6a79e85d260ddd8befafb98f3a04cf4dc1760104 Mon Sep 17 00:00:00 2001 From: Scott Claiborne Date: Fri, 8 May 2026 14:14:02 -0700 Subject: [PATCH 16/16] Update to release lpm version --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8acc238..184ed79 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,7 +37,7 @@ jobs: scope: '@loupeteam' - name: Install lpm - run: npm install -g @loupeteam/lpm@1.2.0-beta.1 + run: npm install -g @loupeteam/lpm@1.2.0 env: NODE_AUTH_TOKEN: ${{ secrets.LPM_TOKEN }}