Skip to content

fix: Centralize PI_VERSION and fix nightly CI failures#108

Merged
dnouri merged 4 commits intomasterfrom
fix-ci-versions
Feb 8, 2026
Merged

fix: Centralize PI_VERSION and fix nightly CI failures#108
dnouri merged 4 commits intomasterfrom
fix-ci-versions

Conversation

@dnouri
Copy link
Owner

@dnouri dnouri commented Feb 8, 2026

Summary

Makefile is now the single source of truth for the pinned pi version.
Workflows extract it automatically — no more scattered version strings to keep in sync.

Changes

  • Centralize PI_VERSION: Workflows read from Makefile via grep, eliminating 4 hardcoded version strings across workflow files
  • Simplify nightly matrix: Test pinned + latest only (dropped unsupported 0.50.x and pi-mono main branch builds)
  • Fix session-name integration test: Race condition — accept-process-output returned early on buffered output before the RPC completed. Now uses a proper polling loop
  • Fix stale .elc in make test: Set load-prefer-newer so tests always run against source
  • Sync core version header: pi-coding-agent-core.el was stuck at 0.1.0

Test Results

  • 451 unit tests ✅
  • 17 integration tests ✅
  • 13 GUI tests ✅
  • make check (compile + lint + tests) ✅

- test-gui.yml: 0.50.1 → 0.51.3
- test-integration.yml: 0.50.4 → 0.51.3
- nightly.yml: 0.50.1 → 0.51.3 in version matrix
- README.org: update nightly description (0.48.0 → 0.51.3)
- Remove dead get_commands skip guards (0.50.1 compat no longer needed)
- Makefile: set load-prefer-newer to avoid stale .elc in make test
Workflows now extract PI_VERSION from Makefile instead of hardcoding it.
Updating the pinned version only requires changing one line in the Makefile.

Nightly simplified to test just two versions: pinned + latest.
Removed pi-mono main branch builds (noise — latest covers forward compat).
The test called accept-process-output once for 1 second, which returns
as soon as ANY output arrives.  If residual output from the prompt phase
was buffered, it returned immediately — before the set_session_name RPC
response arrived.  The file was then read before the write happened.

Fix: poll for the RPC callback flag with a proper timeout loop, matching
the pattern used by all other integration tests.
Was stuck at 0.1.0 while the main file had 1.2.6. Both files are
part of the same package and should have matching versions.
@dnouri dnouri merged commit 83a57bf into master Feb 8, 2026
7 checks passed
@dnouri dnouri deleted the fix-ci-versions branch February 8, 2026 00:57
dnouri added a commit that referenced this pull request Feb 25, 2026
* fix: Pin all CI workflows to minimum supported pi version (0.51.3)

- test-gui.yml: 0.50.1 → 0.51.3
- test-integration.yml: 0.50.4 → 0.51.3
- nightly.yml: 0.50.1 → 0.51.3 in version matrix
- README.org: update nightly description (0.48.0 → 0.51.3)
- Remove dead get_commands skip guards (0.50.1 compat no longer needed)
- Makefile: set load-prefer-newer to avoid stale .elc in make test

* refactor: Centralize PI_VERSION — Makefile is single source of truth

Workflows now extract PI_VERSION from Makefile instead of hardcoding it.
Updating the pinned version only requires changing one line in the Makefile.

Nightly simplified to test just two versions: pinned + latest.
Removed pi-mono main branch builds (noise — latest covers forward compat).

* fix: Session-name integration test race condition

The test called accept-process-output once for 1 second, which returns
as soon as ANY output arrives.  If residual output from the prompt phase
was buffered, it returned immediately — before the set_session_name RPC
response arrived.  The file was then read before the write happened.

Fix: poll for the RPC callback flag with a proper timeout loop, matching
the pattern used by all other integration tests.

* fix: Sync pi-coding-agent-core.el version header to 1.2.6

Was stuck at 0.1.0 while the main file had 1.2.6. Both files are
part of the same package and should have matching versions.
dnouri added a commit that referenced this pull request Feb 26, 2026
* fix: Pin all CI workflows to minimum supported pi version (0.51.3)

- test-gui.yml: 0.50.1 → 0.51.3
- test-integration.yml: 0.50.4 → 0.51.3
- nightly.yml: 0.50.1 → 0.51.3 in version matrix
- README.org: update nightly description (0.48.0 → 0.51.3)
- Remove dead get_commands skip guards (0.50.1 compat no longer needed)
- Makefile: set load-prefer-newer to avoid stale .elc in make test

* refactor: Centralize PI_VERSION — Makefile is single source of truth

Workflows now extract PI_VERSION from Makefile instead of hardcoding it.
Updating the pinned version only requires changing one line in the Makefile.

Nightly simplified to test just two versions: pinned + latest.
Removed pi-mono main branch builds (noise — latest covers forward compat).

* fix: Session-name integration test race condition

The test called accept-process-output once for 1 second, which returns
as soon as ANY output arrives.  If residual output from the prompt phase
was buffered, it returned immediately — before the set_session_name RPC
response arrived.  The file was then read before the write happened.

Fix: poll for the RPC callback flag with a proper timeout loop, matching
the pattern used by all other integration tests.

* fix: Sync pi-coding-agent-core.el version header to 1.2.6

Was stuck at 0.1.0 while the main file had 1.2.6. Both files are
part of the same package and should have matching versions.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant