Restructure: monorepo with sibling-subdir packages#47
Merged
Conversation
Move the main package from the repo root into a JuliaLibWrapping/ subdir, sibling to the existing JLWInterop/. Previously the main package sat at the root and contained JLWInterop/, so the registered JuliaLibWrapping source tree would have shipped an unused copy of JLWInterop. Each subdir package now also carries its own LICENSE, as the General registry requires for subdir packages. - Move src/ ext/ test/ docs/ examples/ Project.toml README.md under JuliaLibWrapping/; add a short monorepo README at the root. - Fix the relative paths that crossed the moved boundary: examples/ols/build.jl (../../JLWInterop -> ../../../JLWInterop) and docs/Project.toml (JLWInterop source path; also add JuliaLibWrapping as a [sources] path so the docs env is self-contained). The build-env [sources] and test->examples paths move as a unit and stay valid. - Re-prefix the root-anchored .gitignore entries. - Rework CI to test both packages via a package matrix (setup-julia's project input resolves each package's own min), deploy docs from the subdir via a manual make.jl run, and point TagBot/CompatHelper at the subdir packages. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The docs job used a `shell: julia ... {0}` block that called
`include("JuliaLibWrapping/docs/make.jl")`. Under that shell GitHub Actions
writes the block to a temp file and runs it as a script, so Julia resolves the
relative `include` path against the temp file's directory
(`/home/runner/work/_temp/`) rather than the repo root — make.jl was not found.
Run make.jl directly with `julia --project=… make.jl` (preceded by a separate
instantiate); makedocs derives its root from make.jl's own location, so this
works regardless of the process working directory.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #47 +/- ##
==========================================
- Coverage 94.66% 94.13% -0.53%
==========================================
Files 5 6 +1
Lines 825 887 +62
==========================================
+ Hits 781 835 +54
- Misses 44 52 +8
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Move the main package from the repo root into a JuliaLibWrapping/ subdir, sibling to the existing JLWInterop/. Previously the main package sat at the root and contained JLWInterop/, so the registered JuliaLibWrapping source tree would have shipped an unused copy of JLWInterop. Each subdir package now also carries its own LICENSE, as the General registry requires for subdir packages.
Thanks to @GunnarFarneback for the tips to prepare for registration.