Skip to content

🚨 Fix develop-sources include path (anchor at GITHUB_WORKSPACE) β€” unbreaks monorepo sublibrary CI#99

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:fix-develop-sources-include-path
Jun 17, 2026
Merged

🚨 Fix develop-sources include path (anchor at GITHUB_WORKSPACE) β€” unbreaks monorepo sublibrary CI#99
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:fix-develop-sources-include-path

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown

🚨 Urgent β€” fixes a regression that broke all monorepo sublibrary CI

The develop_sources extraction in #98 (released in v1.15.1) introduced a step that fails for every monorepo, e.g. ModelingToolkit Sublibrary CI:

ERROR: LoadError: SystemError: opening file
  "/home/runner/work/_temp/.sciml-dotgithub/scripts/develop_sources.jl": No such file or directory

Root cause

The "Develop in-repo [sources]" step uses shell: julia --color=yes {0}. GitHub writes the step body to a temp file under RUNNER_TEMP and runs it from there. Julia's include resolves a relative path against the including file's directory (RUNNER_TEMP), not GITHUB_WORKSPACE β€” where actions/checkout placed .sciml-dotgithub. So include(joinpath(".sciml-dotgithub", …)) looked in RUNNER_TEMP/.sciml-dotgithub and missed.

Only monorepo sublibrary jobs hit it β€” the step is gated on inputs.project != '.' && '@.', so plain-repo CI (which skips the develop step) was unaffected. That's why it surfaced as broken Sublibrary CI across MTK/Optimization/etc. right after the v1.15.1 retag.

Fix

Anchor the include at ENV["GITHUB_WORKSPACE"]:

include(joinpath(ENV["GITHUB_WORKSPACE"], ".sciml-dotgithub", "scripts", "develop_sources.jl"))

Verification

Simulated the exact step (a Julia temp-script in RUNNER_TEMP, run from a third cwd, with .sciml-dotgithub under GITHUB_WORKSPACE):

  • the relative form reproduces the SystemError verbatim;
  • the GITHUB_WORKSPACE-anchored form loads develop_sources cleanly (isdefined β†’ true).

tests.yml passes yaml.safe_load. (The #98 unit test exercised develop_sources.jl as a function, not the workflow's include, which is why this slipped through.)

⚠️ Needs a v1 retag

Consumers pin @v1, so this only takes effect after merge and a v1 retag. Until then, all monorepo sublibrary CI stays broken β€” please fast-track.


πŸ€– Generated with Claude Code

Please review ASAP β€” @ChrisRackauckas.

…s monorepo sublibrary CI)

The "Develop in-repo [sources]" step (added in SciML#98) runs with
`shell: julia {0}`, which writes the body to a temp file under RUNNER_TEMP
and executes it from there. Julia's `include` resolves a RELATIVE path
against the including file's directory (RUNNER_TEMP), not GITHUB_WORKSPACE
where `.sciml-dotgithub` is checked out -- so the relative
`include(joinpath(".sciml-dotgithub", ...))` failed with
`SystemError: opening file ".../_temp/.sciml-dotgithub/scripts/develop_sources.jl"`.

This broke every monorepo's sublibrary CI (project != '.'/'@.') the moment
v1.15.1 was retagged (e.g. ModelingToolkit Sublibrary CI). Anchor the
include at ENV["GITHUB_WORKSPACE"] so it resolves regardless of the temp
script's location.

Verified by simulating the step (julia temp-script in RUNNER_TEMP, run from
a third cwd, .sciml-dotgithub under GITHUB_WORKSPACE): the relative form
reproduces the SystemError; the GITHUB_WORKSPACE-anchored form loads
develop_sources cleanly.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisRackauckas ChrisRackauckas merged commit 60704a1 into SciML:master Jun 17, 2026
2 checks passed
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.

2 participants