Skip to content

Commit 094f1c2

Browse files
authored
Merge pull request #142 from NDDev-OpenNetwork/fix/release-onboarding-093
fix: stabilize device onboarding and refresh release tools
2 parents d2854ed + 5df05cf commit 094f1c2

44 files changed

Lines changed: 857 additions & 616 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gds/bundle.lock.yaml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@
22
schema_version: 1
33

44
bundle:
5-
version: "0.9.2-dev"
5+
version: "0.9.3-dev"
66
release_sequence: 0
77
channel: "development"
8-
source_tree_digest: "sha256:0c885d2d0f12f74a4ea83a0cfcdab9d7458c815a89bb555f8dfe8aa8030b5366"
9-
digest: "sha256:0442b90d82ad533ad4cc3e8647f3948dc00feddd2dd529f6665ee4baa59f4419"
8+
source_tree_digest: "sha256:dbbd338cb723846e6f140f16fd2e76594fea9377bf792c03fbae60a54e88ee01"
9+
digest: "sha256:d8b7f50891831664b429e19e5df040fcc7e1fd6d1b544cf8c8ebf3147cc2afef"
1010

1111
projection:
12-
input_digest: "sha256:6990797ab8ff381018560945ee46b08f218e45c29d9330611e4aedc72269ea81"
13-
output_digest: "sha256:6e34a0f22dbff41e27b75cee5aee8166b00acea9573fed77ca622e9e4209e6cc"
12+
input_digest: "sha256:a56667c2156bdae3807b57a647c5f92c07223bf37b0edefbb4a50eb0038bd3e1"
13+
output_digest: "sha256:5a94f145b67e94ed66d769850bed7a5e2a9ea29439d5aebcd400fab18eb49ec1"
1414
files:
1515
- path: ".gds/compiled-policy.json"
16-
digest: "sha256:f22de75f2bb598a052f336948b85dbcf10c368d83dca323b518eee96ff6f8d42"
16+
digest: "sha256:26f4268e1b6df625045487c49b80342e94c5c6a81f2d8dc966f1a3a05021ac37"
1717
- path: ".github/workflows/gds-ci.yml"
18-
digest: "sha256:e2c0d4349fe9b3cfba25794893c7aeda31e92347cb367484d83aaf2aea50828d"
18+
digest: "sha256:e12974ce96d1fccf477eaab11d2def7a22240df5d0a4e5bfb78c5c2b70e8fc7d"

.gds/compiled-policy.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
"schema_version": 1,
33
"compiled_policy": {
44
"repository_id": "repo_01M0EZ7TB3KNXNSP78Z8M64WXG",
5-
"bundle_version": "0.9.2-dev",
6-
"digest": "sha256:dafc90cc077d4cf850bdf756eb99a6bfb7c532832c0fc43fb4fa8d60ded37d69"
5+
"bundle_version": "0.9.3-dev",
6+
"digest": "sha256:497a28d43aad2a561c0144598da07c453bd1d48de59f02a5321c88f03f27e291"
77
},
88
"sources": [
99
{

.gds/repository.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,11 @@ git:
7777

7878
ci:
7979
profile: "go"
80-
go_version: "1.26.7"
80+
go_version: "1.27.1"
8181
build_command: "go build -trimpath ./core/cmd/gds"
8282
test_command: "go test ./..."
8383
timeout_minutes: 30
84-
workflow_ref: "NDDev-OpenNetwork/ci-workflows/.github/workflows/go-ci.yml@bc9c7919de1c39d947a8709a92856925051bae05"
84+
workflow_ref: "NDDev-OpenNetwork/ci-workflows/.github/workflows/go-ci.yml@a624689c897c5f4733cf475159e77bba3a2b98c7"
8585
# A public repository, so GitHub-hosted runners are unmetered and a fork's
8686
# pull request cannot reach anything of ours. Self-hosted hardware here would
8787
# turn a fork PR into remote code execution on it.
@@ -109,8 +109,8 @@ verification:
109109
- "test"
110110
- "build"
111111
required_contexts:
112-
- "GDS fast / go (1.26.7)"
113-
- "GDS PR required / go (1.26.7)"
112+
- "GDS fast / go (1.27.1)"
113+
- "GDS PR required / go (1.27.1)"
114114

115115
agent:
116116
context_profile: "project-default"

.github/rulesets/branch-main.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,10 @@
4646
"do_not_enforce_on_create": false,
4747
"required_status_checks": [
4848
{
49-
"context": "GDS fast / go (1.26.7)"
49+
"context": "GDS fast / go (1.27.1)"
5050
},
5151
{
52-
"context": "GDS PR required / go (1.26.7)"
52+
"context": "GDS PR required / go (1.27.1)"
5353
}
5454
]
5555
}

.github/workflows/gds-ci.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# GENERATED FILE - DO NOT EDIT DIRECTLY
22
# generator: gds
3-
# bundle: 0.9.2-dev
4-
# source-tree-digest: sha256:0c885d2d0f12f74a4ea83a0cfcdab9d7458c815a89bb555f8dfe8aa8030b5366
5-
# input-digest: sha256:6990797ab8ff381018560945ee46b08f218e45c29d9330611e4aedc72269ea81
6-
# output-digest: sha256:8c045e745cc69b731bc695a4a9d58a48c10f1ab7dd85b7354db7bfd0e072711c
3+
# bundle: 0.9.3-dev
4+
# source-tree-digest: sha256:dbbd338cb723846e6f140f16fd2e76594fea9377bf792c03fbae60a54e88ee01
5+
# input-digest: sha256:a56667c2156bdae3807b57a647c5f92c07223bf37b0edefbb4a50eb0038bd3e1
6+
# output-digest: sha256:15b87303cd0692fd8e5d88281771dded9fdc2fc027d600681155cb4e71f42386
77
# edit-source:
88
# - .gds/repository.yaml
99
# - policies/base/repository-default.yaml
@@ -34,15 +34,15 @@ jobs:
3434
name: GDS fast
3535
permissions:
3636
contents: read
37-
uses: NDDev-OpenNetwork/ci-workflows/.github/workflows/go-ci.yml@bc9c7919de1c39d947a8709a92856925051bae05
37+
uses: NDDev-OpenNetwork/ci-workflows/.github/workflows/go-ci.yml@a624689c897c5f4733cf475159e77bba3a2b98c7
3838
with:
3939
fetch_depth: 0
4040
# Public hosted CI uses GitHub's service cache; the pinned reusable
4141
# workflow owns cache keys and invalidation, so no runner-local state is trusted.
4242
cache: true
4343

4444
runner: "ubuntu-latest"
45-
go_version: "1.26.7"
45+
go_version: "1.27.1"
4646
# Declared fast commands own their build scope; the complete build is below.
4747
build_command: ""
4848
test_command: "scripts/validate_shell.sh && scripts/validate_go_core.sh --fast"
@@ -54,12 +54,12 @@ jobs:
5454
needs: fast
5555
permissions:
5656
contents: read
57-
uses: NDDev-OpenNetwork/ci-workflows/.github/workflows/go-ci.yml@bc9c7919de1c39d947a8709a92856925051bae05
57+
uses: NDDev-OpenNetwork/ci-workflows/.github/workflows/go-ci.yml@a624689c897c5f4733cf475159e77bba3a2b98c7
5858
with:
5959
fetch_depth: 0
6060
cache: true
6161
runner: "ubuntu-latest"
62-
go_version: "1.26.7"
62+
go_version: "1.27.1"
6363
build_command: "go build -trimpath ./core/cmd/gds"
6464
test_command: "go test ./... && python3 -m pip install --quiet --require-hashes -r requirements/test.txt && python3 -m pytest"
6565
timeout_minutes: 30

.github/workflows/platforms.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,8 @@ jobs:
3535
# `macos-latest` is Apple Silicon, so it covers darwin/arm64. `ubuntu-24.04-arm`
3636
# covers linux/arm64. Both are standard hosted runners and unmetered on public
3737
# repositories; macOS-XL and larger runners are billed even here and are not used.
38-
# darwin/amd64 stays uncovered: it needs `macos-13`, the last Intel image, whose
39-
# retirement is already announced — worth adding only if that target is still
40-
# shipped when this is next revisited.
38+
# Standard Intel macOS runners remain available as macos-15-intel. Together
39+
# with the main Linux X64 workflow these jobs execute all four shipped targets.
4140
name: ${{ matrix.name }}
4241
runs-on: ${{ matrix.runner }}
4342
timeout-minutes: 20
@@ -51,6 +50,8 @@ jobs:
5150
runner: macos-latest
5251
- name: linux-arm64
5352
runner: ubuntu-24.04-arm
53+
- name: darwin-amd64
54+
runner: macos-15-intel
5455
steps:
5556
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
5657
with:

.github/workflows/release-bundle.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ jobs:
5656
permissions:
5757
contents: read
5858
env:
59-
GOTOOLCHAIN: go1.26.7
59+
GOTOOLCHAIN: go1.27.1
6060
VERSION: ${{ inputs.version }}
6161
RELEASE_SEQUENCE: ${{ inputs.release_sequence }}
6262
CHANNEL: ${{ inputs.channel }}
@@ -74,7 +74,7 @@ jobs:
7474
- name: Install exact Go toolchain
7575
uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
7676
with:
77-
go-version: "1.26.7"
77+
go-version: "1.27.1"
7878
cache: true
7979

8080
- name: Run release gates

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ topology.
3737
## Local development
3838

3939
```bash
40-
GOTOOLCHAIN=go1.26.7 go build -trimpath -o /tmp/gds ./core/cmd/gds
41-
GOTOOLCHAIN=go1.26.7 go build -trimpath -o /tmp/gds-codex-runtime-driver \
40+
GOTOOLCHAIN=go1.27.1 go build -trimpath -o /tmp/gds ./core/cmd/gds
41+
GOTOOLCHAIN=go1.27.1 go build -trimpath -o /tmp/gds-codex-runtime-driver \
4242
./core/cmd/gds-codex-runtime-driver
4343
/tmp/gds --json context
4444
/tmp/gds --json status

core/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ Root pytest discovery is limited by `pytest.ini` to `tests/`; it never collects
132132
tests from independent workspace repositories. The full Go validator
133133
runs module integrity, vet, unit/integration/race tests, schemas, and CGo-free
134134
cross-builds for macOS and Linux on arm64 and amd64. It requires the exact
135-
source-registered release builder (`go1.26.7`). Quick validation may run on an
135+
source-registered release builder (`go1.27.1`). Quick validation may run on an
136136
older local toolchain but leaves release evidence `NOT_PROVEN`.
137137

138138
`gds-assurance` is a separate release-gate binary. It requires a clean source

core/app/module_verify_lanes_test.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ func TestCleanupPendingStopsLaterLanesInSource(t *testing.T) {
3030
}
3131

3232
func TestFailedRemoveWorktreeDoesNotDeleteWorkspace(t *testing.T) {
33+
// Production must retain a checkout whose removal was not proven. Keep that
34+
// deliberately retained fixture inside the test's own temporary lifetime.
35+
t.Setenv("TMPDIR", t.TempDir())
3336
root, oid := moduleVerifyRepository(t)
3437
runner, err := gitprovider.NewMutationRunner()
3538
if err != nil {
@@ -60,6 +63,10 @@ func TestFailedRemoveWorktreeDoesNotDeleteWorkspace(t *testing.T) {
6063
if !foundCleanup {
6164
t.Fatalf("cleanup finding missing: %#v", findings)
6265
}
66+
retained, err := filepath.Glob(filepath.Join(os.TempDir(), "gds-module-verify-*", "checkout", "fixture.txt"))
67+
if err != nil || len(retained) != 1 {
68+
t.Fatalf("failed cleanup did not preserve the workspace: %v, %v", retained, err)
69+
}
6370
}
6471

6572
func TestFailedRemoveWorktreeSourceContract(t *testing.T) {

0 commit comments

Comments
 (0)