Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
cfe3468
Merge remote-tracking branch 'origin/main' into build/turborepo-monorepo
claude Sep 17, 2026
379047d
build: turn the repo into a turborepo monorepo with uv workspaces
userAugustos Sep 17, 2026
95879aa
docs: point install and setup notes at the packages layout
userAugustos Sep 17, 2026
cd49b32
ci: run checks and releases from the packages layout
userAugustos Sep 17, 2026
a1a2802
build: keep egg-info out of the core image context
userAugustos Sep 17, 2026
d344d87
ci: sync only the CLI package for the nuitka build
userAugustos Sep 17, 2026
e742f7f
build: rely on turbo's own build outputs and ignore stray envs in the…
userAugustos Sep 17, 2026
274b72e
docs: fix the moved path in the porting skill and split a README sent…
userAugustos Sep 17, 2026
3618d57
test: move tests into their packages and run them per package
userAugustos Sep 17, 2026
f455f4d
test: compile the controller protos for the core test session
userAugustos Sep 17, 2026
5334f4b
ci: pin the bun and uv setup actions to commit hashes
userAugustos Sep 17, 2026
0f49800
Merge branch 'build/turborepo-monorepo' into test/move-tests-into-pac…
userAugustos Sep 17, 2026
e19410b
Merge branch 'test/move-tests-into-packages' into test/core-proto-stubs
userAugustos Sep 17, 2026
79c90ee
ci: run the test suite with a cached turbo on every pull request
userAugustos Sep 17, 2026
315cc40
ci: build the CLI release through turbo and narrow the release trigger
userAugustos Sep 17, 2026
5c9567d
test: hash the lock and skip bytecode for the root test task
userAugustos Sep 17, 2026
c33359e
Merge branch 'test/move-tests-into-packages' into test/core-proto-stubs
userAugustos Sep 17, 2026
cde7871
test: declare grpcio-tools for the core tests and rebuild the stubs e…
userAugustos Sep 17, 2026
6c39cdb
Merge branch 'test/core-proto-stubs' into ci/turbo-tests
userAugustos Sep 17, 2026
f815ef8
ci: drop a comment that restates the cache step
userAugustos Sep 17, 2026
83102db
Merge branch 'ci/turbo-tests' into ci/release-through-turbo
userAugustos Sep 17, 2026
4019714
ci: fix the publish check url, pin nuitka, and keep core tests from p…
userAugustos Sep 17, 2026
1d1b45b
build: drop the apps workspace glob until an app exists
userAugustos Sep 17, 2026
b2aa8ad
Merge branch 'build/turborepo-monorepo' into test/move-tests-into-pac…
userAugustos Sep 17, 2026
1a491f5
Merge branch 'test/move-tests-into-packages' into test/core-proto-stubs
userAugustos Sep 17, 2026
702918a
Merge branch 'test/core-proto-stubs' into ci/turbo-tests
userAugustos Sep 17, 2026
36f0a11
Merge branch 'ci/turbo-tests' into ci/release-through-turbo
userAugustos Sep 17, 2026
f7dfc1f
Merge remote-tracking branch 'origin/main' into build/turborepo-monorepo
userAugustos Sep 17, 2026
bd48b45
style: format the clean command test
userAugustos Sep 17, 2026
537bea0
Merge branch 'build/turborepo-monorepo' into test/move-tests-into-pac…
userAugustos Sep 17, 2026
24158cb
test: move the clean command test into the CLI package
userAugustos Sep 17, 2026
77e1178
Merge branch 'test/move-tests-into-packages' into test/core-proto-stubs
userAugustos Sep 17, 2026
6171fff
Merge branch 'test/core-proto-stubs' into ci/turbo-tests
userAugustos Sep 17, 2026
898335e
Merge branch 'ci/turbo-tests' into ci/release-through-turbo
userAugustos Sep 17, 2026
aab4c59
docs: drop the development section from the README
userAugustos Sep 17, 2026
f9e13c6
Merge branch 'build/turborepo-monorepo' into test/move-tests-into-pac…
userAugustos Sep 17, 2026
74f4efe
Merge branch 'test/move-tests-into-packages' into test/core-proto-stubs
userAugustos Sep 17, 2026
1bb33a3
Merge branch 'test/core-proto-stubs' into ci/turbo-tests
userAugustos Sep 17, 2026
43dca16
Merge branch 'ci/turbo-tests' into ci/release-through-turbo
userAugustos Sep 17, 2026
6451445
build: name the root package canyonos
userAugustos Sep 17, 2026
34de2de
Merge branch 'build/turborepo-monorepo' into test/move-tests-into-pac…
userAugustos Sep 17, 2026
7bffe41
Merge branch 'test/move-tests-into-packages' into test/core-proto-stubs
userAugustos Sep 17, 2026
efc604e
Merge branch 'test/core-proto-stubs' into ci/turbo-tests
userAugustos Sep 17, 2026
50edadc
Merge branch 'ci/turbo-tests' into ci/release-through-turbo
userAugustos Sep 17, 2026
afd9eb1
Merge remote-tracking branch 'origin/main' into build/turborepo-monorepo
userAugustos Sep 17, 2026
64859d6
Merge branch 'build/turborepo-monorepo' into test/move-tests-into-pac…
userAugustos Sep 17, 2026
6bfe629
Merge branch 'test/move-tests-into-packages' into test/core-proto-stubs
userAugustos Sep 17, 2026
6a57328
Merge branch 'test/core-proto-stubs' into ci/turbo-tests
userAugustos Sep 17, 2026
b98916b
Merge branch 'ci/turbo-tests' into ci/release-through-turbo
userAugustos Sep 17, 2026
de8200d
Merge commit '3f3781c' into build/turborepo-monorepo
userAugustos Sep 17, 2026
5e61e1d
Merge branch 'build/turborepo-monorepo' into test/move-tests-into-pac…
userAugustos Sep 17, 2026
233bd4a
Merge branch 'test/move-tests-into-packages' into test/core-proto-stubs
userAugustos Sep 17, 2026
3a848cd
Merge branch 'test/core-proto-stubs' into ci/turbo-tests
userAugustos Sep 17, 2026
3436b05
Merge branch 'ci/turbo-tests' into ci/release-through-turbo
userAugustos Sep 17, 2026
d4b8829
Merge branch 'main' into build/turborepo-monorepo
userAugustos Sep 17, 2026
0a472d4
Merge branch 'build/turborepo-monorepo' into test/move-tests-into-pac…
userAugustos Sep 17, 2026
97ca1b6
Merge branch 'test/move-tests-into-packages' into test/core-proto-stubs
userAugustos Sep 17, 2026
086acad
Merge branch 'test/core-proto-stubs' into ci/turbo-tests
userAugustos Sep 17, 2026
60b776e
Merge branch 'ci/turbo-tests' into ci/release-through-turbo
userAugustos Sep 17, 2026
072185f
Merge commit 'f09ef65' into build/turborepo-monorepo
userAugustos Sep 17, 2026
ea65a7e
Merge branch 'build/turborepo-monorepo' into test/move-tests-into-pac…
userAugustos Sep 17, 2026
17b04ec
Merge branch 'test/move-tests-into-packages' into test/core-proto-stubs
userAugustos Sep 17, 2026
6eaca31
Merge branch 'test/core-proto-stubs' into ci/turbo-tests
userAugustos Sep 17, 2026
411b1af
Merge branch 'ci/turbo-tests' into ci/release-through-turbo
userAugustos Sep 17, 2026
12be055
Merge branch 'main' into build/turborepo-monorepo
userAugustos Sep 18, 2026
2a73771
Merge branch 'build/turborepo-monorepo' into test/move-tests-into-pac…
userAugustos Sep 18, 2026
ba662af
Merge branch 'test/move-tests-into-packages' into test/core-proto-stubs
userAugustos Sep 18, 2026
5bbe066
Merge branch 'test/core-proto-stubs' into ci/turbo-tests
userAugustos Sep 18, 2026
d8128c0
Merge branch 'ci/turbo-tests' into ci/release-through-turbo
userAugustos Sep 18, 2026
16c3360
Merge branch 'main' into build/turborepo-monorepo
userAugustos Sep 18, 2026
92e43e3
Merge branch 'build/turborepo-monorepo' into test/move-tests-into-pac…
userAugustos Sep 18, 2026
91b326a
Merge branch 'test/move-tests-into-packages' into test/core-proto-stubs
userAugustos Sep 18, 2026
e41ecc1
Merge branch 'test/core-proto-stubs' into ci/turbo-tests
userAugustos Sep 18, 2026
595e873
Merge branch 'ci/turbo-tests' into ci/release-through-turbo
userAugustos Sep 18, 2026
78c1c7b
Merge branch 'main' into build/turborepo-monorepo
userAugustos Sep 18, 2026
c2c42cf
Merge branch 'build/turborepo-monorepo' into test/move-tests-into-pac…
userAugustos Sep 18, 2026
1ed86e2
Merge branch 'test/move-tests-into-packages' into test/core-proto-stubs
userAugustos Sep 18, 2026
2f31d1c
Merge branch 'test/core-proto-stubs' into ci/turbo-tests
userAugustos Sep 18, 2026
836c6cd
Merge branch 'ci/turbo-tests' into ci/release-through-turbo
userAugustos Sep 18, 2026
584b629
Merge branch 'main' into build/turborepo-monorepo
userAugustos Sep 18, 2026
4411a7a
Merge branch 'build/turborepo-monorepo' into test/move-tests-into-pac…
userAugustos Sep 18, 2026
7bd2c74
Merge branch 'test/move-tests-into-packages' into test/core-proto-stubs
userAugustos Sep 18, 2026
9d89b02
Merge branch 'test/core-proto-stubs' into ci/turbo-tests
userAugustos Sep 18, 2026
f78296d
Merge branch 'ci/turbo-tests' into ci/release-through-turbo
userAugustos Sep 18, 2026
375b909
Merge commit '63bf3d3' into build/turborepo-monorepo
userAugustos Sep 18, 2026
61585e9
Merge branch 'build/turborepo-monorepo' into test/move-tests-into-pac…
userAugustos Sep 18, 2026
ad76b4c
Merge branch 'test/move-tests-into-packages' into test/core-proto-stubs
userAugustos Sep 18, 2026
b06cc00
Merge branch 'test/core-proto-stubs' into ci/turbo-tests
userAugustos Sep 18, 2026
6ba8e18
Merge branch 'ci/turbo-tests' into ci/release-through-turbo
userAugustos Sep 18, 2026
ac20ecd
Merge commit '20e2470' into build/turborepo-monorepo
userAugustos Sep 18, 2026
5ff2534
Merge branch 'build/turborepo-monorepo' into test/move-tests-into-pac…
userAugustos Sep 18, 2026
d77e47f
Merge branch 'test/move-tests-into-packages' into test/core-proto-stubs
userAugustos Sep 18, 2026
8f4777b
Merge branch 'test/core-proto-stubs' into ci/turbo-tests
userAugustos Sep 18, 2026
29b70de
Merge branch 'ci/turbo-tests' into ci/release-through-turbo
userAugustos Sep 18, 2026
c1f4dad
Merge commit '59f749b' into build/turborepo-monorepo
userAugustos Sep 18, 2026
512e5f0
Merge branch 'build/turborepo-monorepo' into test/move-tests-into-pac…
userAugustos Sep 18, 2026
651111e
Merge branch 'test/move-tests-into-packages' into test/core-proto-stubs
userAugustos Sep 18, 2026
0dbfa28
Merge branch 'test/core-proto-stubs' into ci/turbo-tests
userAugustos Sep 18, 2026
9fa4261
Merge branch 'ci/turbo-tests' into ci/release-through-turbo
userAugustos Sep 18, 2026
fecd99e
Merge commit '81de972' into build/turborepo-monorepo
userAugustos Sep 18, 2026
1bbffed
Merge branch 'build/turborepo-monorepo' into test/move-tests-into-pac…
userAugustos Sep 18, 2026
f897170
Merge branch 'test/move-tests-into-packages' into test/core-proto-stubs
userAugustos Sep 18, 2026
b42a1b8
Merge branch 'test/core-proto-stubs' into ci/turbo-tests
userAugustos Sep 18, 2026
29ac546
Merge branch 'ci/turbo-tests' into ci/release-through-turbo
userAugustos Sep 18, 2026
bccad71
Merge commit 'd7cb093' into build/turborepo-monorepo
userAugustos Sep 18, 2026
0ac733f
Merge branch 'build/turborepo-monorepo' into test/move-tests-into-pac…
userAugustos Sep 18, 2026
f211a12
Merge branch 'test/move-tests-into-packages' into test/core-proto-stubs
userAugustos Sep 18, 2026
84bd841
Merge branch 'test/core-proto-stubs' into ci/turbo-tests
userAugustos Sep 18, 2026
a3ea9cb
Merge branch 'ci/turbo-tests' into ci/release-through-turbo
userAugustos Sep 18, 2026
dba12e7
Merge commit 'd4a2726' into build/turborepo-monorepo
userAugustos Sep 18, 2026
cc273b5
Merge branch 'build/turborepo-monorepo' into test/move-tests-into-pac…
userAugustos Sep 18, 2026
d51ece1
test(core): move the llm proxy and pricing tests into the package
userAugustos Sep 18, 2026
e7147c8
Merge branch 'test/move-tests-into-packages' into test/core-proto-stubs
userAugustos Sep 18, 2026
b87b9ee
Merge branch 'test/core-proto-stubs' into ci/turbo-tests
userAugustos Sep 18, 2026
e954c7e
Merge branch 'ci/turbo-tests' into ci/release-through-turbo
userAugustos Sep 18, 2026
7585367
Merge commit '3fc38bc' into test/move-tests-into-packages
userAugustos Sep 20, 2026
9c5ba8c
Merge branch 'test/move-tests-into-packages' into test/core-proto-stubs
userAugustos Sep 20, 2026
282b581
Merge branch 'test/core-proto-stubs' into ci/turbo-tests
userAugustos Sep 20, 2026
8c4f126
Merge branch 'ci/turbo-tests' into ci/release-through-turbo
userAugustos Sep 20, 2026
3cf35fa
build: hash the porting skill sources into the root test task
userAugustos Sep 21, 2026
a1c4772
Merge branch 'test/move-tests-into-packages' into test/core-proto-stubs
userAugustos Sep 21, 2026
446fc4e
Merge branch 'test/core-proto-stubs' into ci/turbo-tests
userAugustos Sep 21, 2026
f265333
Merge branch 'ci/turbo-tests' into ci/release-through-turbo
userAugustos Sep 21, 2026
b64e660
Merge commit '80ce36b' into ci/turbo-tests
userAugustos Sep 21, 2026
94f6271
Merge branch 'ci/turbo-tests' into ci/release-through-turbo
userAugustos Sep 21, 2026
fcc2005
Merge commit 'c13ca42' into ci/release-through-turbo
userAugustos Sep 21, 2026
26899a5
ci(cli): publish to PyPI only after the binaries are attached
userAugustos Sep 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 20 additions & 4 deletions .github/workflows/cli-release-tag.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,12 @@ name: Tag CLI Release
on:
push:
branches: [main]
# Only files that ship in the wheel or the binary cut a release. Negations must follow the positive pattern.
paths:
- 'packages/cli/**'
- '!packages/cli/tests/**'
- '!packages/cli/**.md'
- '!packages/cli/install.sh'

permissions:
contents: write
Expand All @@ -23,6 +27,7 @@ jobs:
uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5.4.2
with:
version: "0.12.15"
enable-cache: true

- name: Bump patch version in packages/cli/pyproject.toml
id: bump
Expand Down Expand Up @@ -55,26 +60,37 @@ jobs:
with:
tag: ${{ needs.bump.outputs.tag }}

# PyPI last: a version can never be re-uploaded, and the binaries can.
publish-pypi:
needs: bump
needs: [bump, release]
Comment thread
coderabbitai[bot] marked this conversation as resolved.
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ needs.bump.outputs.tag }}

- name: Set up Bun
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version: 1.3.14

- name: Install Turborepo
run: bun install --frozen-lockfile

- name: Set up uv
uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5.4.2
with:
version: "0.12.15"
enable-cache: true

- name: Build sdist and wheel
run: uv build --package canyonos
run: bun run build --filter=canyonos

- name: Publish to PyPI
env:
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
run: uv publish 'dist/canyonos-*'
run: uv publish --check-url https://pypi.org/simple/ 'dist/canyonos-*'

# Calls cli-release.yml directly (a GITHUB_TOKEN tag push won't retrigger it); "[skip release]" is a defensive backstop against the same push looping.
# Calls cli-release.yml directly (a GITHUB_TOKEN tag push won't retrigger it). "[skip release]" keeps the bump commit,
# which edits packages/cli/pyproject.toml, from starting another bump.
28 changes: 13 additions & 15 deletions .github/workflows/cli-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,29 +42,27 @@ jobs:
with:
ref: ${{ inputs.tag || github.ref }}

- name: Set up Bun
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version: 1.3.14

- name: Install Turborepo
run: bun install --frozen-lockfile

- name: Set up uv
uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5.4.2
with:
version: "0.12.15"
enable-cache: true

# packages/cli has no env of its own: both commands target the workspace root .venv.
- name: Install workspace and Nuitka
run: |
uv sync --locked --package canyonos
uv pip install nuitka
# nuitka is in the non-default "release" group, so a plain uv sync skips it.
- name: Install the CLI and Nuitka
run: uv sync --locked --package canyonos --group release

# The task runs from packages/cli; arguments after "--" append to its command.
- name: Build standalone binary
working-directory: packages/cli
run: |
uv run --no-sync python -m nuitka \
--mode=onefile \
--output-filename=${{ matrix.asset }} \
--output-dir=dist \
--include-data-file=canyonos/dashboard.compose.yml=canyonos/dashboard.compose.yml \
--include-distribution-metadata=canyonos \
--assume-yes-for-downloads \
cli.py
run: bun run build:binary --filter=canyonos -- --output-filename=${{ matrix.asset }}

- name: Upload build artifact
uses: actions/upload-artifact@v4
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/core-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,15 @@ on:
pull_request:
paths:
- 'packages/core/**'
- '!packages/core/tests/**'
- '!packages/core/**.md'
- '.github/workflows/core-image.yml'
push:
branches: [main]
paths:
- 'packages/core/**'
- '!packages/core/tests/**'
- '!packages/core/**.md'
- '.github/workflows/core-image.yml'
workflow_dispatch:

Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
"check": "turbo run lint typecheck format:check",
"format": "turbo run format",
"test": "turbo run test",
"build": "turbo run build"
"build": "turbo run build",
"build:binary": "turbo run build:binary"
},
"devDependencies": {
"turbo": "2.10.13"
Expand Down
3 changes: 3 additions & 0 deletions packages/cli/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,6 @@ canyonos = ["dashboard.compose.yml"]
dev = [
"pytest>=9.1.1",
]
release = [
"nuitka==4.2.1",
]
17 changes: 17 additions & 0 deletions turbo.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,23 @@
"build": {
"cache": true
},
"canyonos#build:binary": {
"cache": false,
"command": [
"uv",
"run",
"--no-sync",
"python",
"-m",
"nuitka",
"--mode=onefile",
"--output-dir=dist",
"--include-data-file=canyonos/dashboard.compose.yml=canyonos/dashboard.compose.yml",
"--include-distribution-metadata=canyonos",
"--assume-yes-for-downloads",
"cli.py"
]
},
"canyonos-python#test": {
"command": [
"uv",
Expand Down
10 changes: 10 additions & 0 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading