feat: ecosystem submodules, CI improvements, and EasyCLA compliance#605
feat: ecosystem submodules, CI improvements, and EasyCLA compliance#605DamianReeves merged 11 commits intomainfrom
Conversation
✅ Deploy Preview for angry-raman-7c44f6 canceled.
|
- Add ecosystem/ directory with morphir-rust and morphir-examples submodules - Create ecosystem/README.md and ecosystem/AGENTS.md for documentation - Add mise tasks for submodule management (init, update, status, add, pull) - Add top-level mise init task that depends on submodules:init - Wire morphir-live to morphir-rust crates via path dependencies - Move morphir CLI from morphir-rust into crates/morphir - Update root README.md and AGENTS.md to document ecosystem integration
Add husky commit-msg hook that enforces EasyCLA compliance by blocking commits with AI assistant co-author trailers (Claude, Cursor, Copilot, ChatGPT, etc.). This prevents CLA verification failures on pull requests.
76d68ae to
44979c6
Compare
There was a problem hiding this comment.
💡 Codex Review
morphir/crates/morphir-live/src/components/settings/editor/web.rs
Lines 23 to 33 in 76d68ae
The initialization effect captures monaco_ready as a plain bool before use_effect, so the effect won’t re-run when Monaco becomes ready asynchronously. If the editor renders while monaco_ready is still false (the common case for a CDN-loaded Monaco), the early return at if !monaco_ready prevents initialization permanently, leaving the TOML editor stuck in the loading state. Read the readiness signal inside the effect (or otherwise make it a reactive dependency) so the init logic runs after Monaco flips to ready.
morphir/crates/morphir-live/src/components/settings/editor/web.rs
Lines 92 to 99 in 76d68ae
The polling loop relies on document::eval to return the string from window.getMonacoContent(...), but Dioxus eval return values are not reliable and often resolve to undefined, which makes value.as_str() return None. In those cases the TOML editor never calls on_change, so edits are silently dropped on web builds. Prefer reading via js_sys::Reflect (as done for readiness) or have JS write the content to a window property and read it via web_sys.
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
ae448c4 to
311bd34
Compare
- Add submodules: recursive to all CI checkout steps - Update mise init task to support --ci flag for shallow submodule clone The crates/morphir crate depends on morphir-common from the ecosystem/morphir-rust submodule.
311bd34 to
9b695e1
Compare
- Add path filtering to skip Rust builds when only docs/website files change - Add lightweight docs job for markdown link checking - Use dorny/paths-filter to detect what changed - Update All Checks job to handle conditional job results
- P1: Make Monaco readiness reactive by reading signal inside effect - P2: Use web_sys/js_sys::Reflect for content sync instead of unreliable document::eval return values - Add onDidChangeModelContent handler to write content to window property
Remove slow markdown link checker that was making HTTP requests. Replace with simple file validation that completes in seconds.
Addressed Review FeedbackThe issues raised by Codex have been fixed in commit 8a1e503: P1 - Make Monaco readiness reactive before init effect
P2 - Avoid relying on document::eval return for content sync
See: 8a1e503e |
- Add ci:prepare-cli-workspace task to prepare workspace for CLI build - Add ci:validate-docs task for documentation validation - Replace inline bash scripts with Python-backed mise tasks - Improves maintainability and cross-platform compatibility
- Add package rules to group updates: rust, github-actions, mise-tools, docker - Skip mise installation in docs job (uses system Python instead) - Docs job should now complete in seconds instead of minutes
Summary
Ecosystem Integration
CI/Build Improvements
--ciflag for shallow submodule checkoutConfiguration
Code Quality
Test plan
mise run init