Overhaul v0.9.0 user documentation - #422
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
🔗 Linked repositories identifiedCodeRabbit considers these linked repositories for cross-repo context during reviews:
Summary
WalkthroughThe pull request rewrites the v0.9.0 documentation and adds infrastructure to parse, compile, and run marked Rust examples. It adds contract tests for documentation synchronisation, configuration formats, command output, environment isolation, and documented workflows. ChangesDocumentation and executable examples
Sequence Diagram(s)sequenceDiagram
participant Documentation
participant ExampleLoader
participant ExampleWorkspace
participant Cargo
participant ExampleBinary
Documentation->>ExampleLoader: provide marked examples
ExampleLoader->>ExampleWorkspace: return validated examples
ExampleWorkspace->>Cargo: build examples offline
Cargo-->>ExampleWorkspace: return build result
ExampleWorkspace->>ExampleBinary: run with arguments and sanitised environment
ExampleBinary-->>ExampleWorkspace: return output
Possibly related PRs
Suggested reviewers: Poem
Important Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional. ❌ Failed checks (1 warning, 6 inconclusive)
✅ Passed checks (13 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Reviewer's GuideOverhauls public user documentation for OrthoConfig v0.9.0: a concise, benefit-led README and a task-oriented user’s guide backed by an executable Markdown example contract, plus a substantially expanded migration guide and supporting execplan and tests. Flow diagram for v0.9.0 migration guide adoption stepsflowchart TD
Start["Start: existing project on v0.8.0"] --> ReadGuide["Read v0-9-0-migration-guide.md impact table"]
ReadGuide --> UpdateDeps["Update ortho_config and ortho_config_macros to 0.9.0"]
UpdateDeps --> HandleDiscovery["Review ConfigDiscovery::load_first error semantics"]
HandleDiscovery --> CheckYAML["If yaml feature enabled: test YAML 1.2 and duplicate keys"]
CheckYAML --> OptionalImprovements["Adopt recommended improvements (MapEnv tests, discovery attribute, localization, docs IR)"]
OptionalImprovements --> Observability["Optionally enable tracing and metrics for discovery"]
Observability --> Validate["Run full test, lint, and documentation gates"]
Validate --> Done["Complete migration to v0.9.0"]
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
@coderabbitai Please suggest a fix for this issue and supply a prompt for an AI coding agent to enable it to apply the fix. Include the file and symbol names indicated in the issue at the head of your response. Ensure that this is validated against the current version of the codegraph. If further refinement to address this finding would be deleterious, please supply a clear explanatory one to two paragraph markdown message I can paste into the CodeScene web ui's diagnostic suppression function so this diagnostic can be silenced. String Heavy Function Argumentsortho_config/tests/documentation_examples/workspace.rs: What lead to degradation?In this module, 46.2% of all arguments to its 7 functions are strings. The threshold for string arguments is 39.0% Why does this problem occur?String is a generic type that fail to capture the constraints of the domain object it represents. In this module, 46 % of all function arguments are string types. How to fix it?Heavy string usage indicates a missing domain language. Introduce data types that encapsulate the semantics. For example, a user_name is better represented as a constrained User type rather than a pure string, which could be anything. |
This comment was marked as resolved.
This comment was marked as resolved.
There was a problem hiding this comment.
Sorry @leynos, your pull request is larger than the review limit of 150000 diff characters
|
@coderabbitai Have the following failed checks now been resolved? If further work is required, please provide an AI agent prompt for the remaining work to be done to address these failures. Do not treat warnings as optional or aspirational. Where a change is out of scope for this PR, propose a GitHub issue unless one exists already. (Treat o11y, code safety, documentation and validation coverage as in scope). ❌ Failed checks (1 error, 2 warnings)
|
This comment was marked as resolved.
This comment was marked as resolved.
|
@coderabbitai Re:
No roadmap link is needed if there is no roadmap item for the PR. |
|
@coderabbitai review |
|
Tip For best results, initiate chat on the files or code changes.
Withdraw the title-check finding. The prior reply assumed that roadmap item ✏️ Learnings added
You are interacting with an AI system. |
✅ Action performedReview finished.
|
|
@coderabbitai Please investigate the cause of the following issue arising in Windows CI using codegraph exploration and research, identify a fix and provide an AI coding agent prompt for the fix: |
This comment was marked as resolved.
This comment was marked as resolved.
|
@coderabbitai review |
✅ Action performedReview finished.
|
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@ortho_config/tests/documentation_examples/cargo_runner.rs`:
- Around line 81-86: In the conditional Windows MSVC x86_64 branch of the cargo
environment preparation function, replace the explicit return in the block with
prepare_msvc_environment(state_directory) as the block’s tail expression,
preserving the non-Windows default path.
In `@ortho_config/tests/documentation_examples/mod.rs`:
- Around line 46-47: Preserve the exact source line endings when constructing
`DocumentedExample::body`; avoid using `contents.lines()` and unconditional LF
joins that strip CRLF terminators. Update the related extraction paths at the
indicated locations to retain original terminators, or explicitly normalize to
LF and add a CRLF regression test documenting that behavior.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: d3151a38-f5e7-4c1d-bbfb-96e79904d562
📒 Files selected for processing (9)
docs/developers-guide.mddocs/execplans/prepare-v0-9-0-user-documentation.mddocs/users-guide.mdortho_config/tests/documentation_examples/cargo_runner.rsortho_config/tests/documentation_examples/mod.rsortho_config/tests/documentation_examples/workspace.rsortho_config/tests/documentation_examples_loader_tests.rsortho_config/tests/documentation_examples_rust_tests.rsortho_config/tests/documentation_examples_tests.rs
🔗 Linked repositories identified
CodeRabbit considers these linked repositories for cross-repo context during reviews:
leynos/weaver(auto-detected)leynos/netsuke(auto-detected)leynos/rstest-bdd(auto-detected)
Use a tail expression for Windows MSVC Cargo environment preparation and make the loader's canonical LF body representation explicit with CRLF regression coverage.
|
@coderabbitai review |
✅ Action performedReview finished.
|
Capture Cargo, host-tool, and documented-binary output through fixed-size buffers and terminate children that exceed the shared test deadline. Cover output truncation and timeout handling so documentation checks cannot consume unbounded memory or wait indefinitely.
|
@coderabbitai Please suggest a fix for this issue and supply a prompt for an AI coding agent to enable it to apply the fix. Include the file and symbol names indicated in the issue at the head of your response. Ensure that this is validated against the current version of the codegraph. If further refinement to address this finding would be deleterious, please supply a clear explanatory one to two paragraph markdown message I can paste into the CodeScene web ui's diagnostic suppression function so this diagnostic can be silenced. ortho_config/tests/documentation_examples/process_runner.rs Comment on file //! Bounded subprocess execution for executable documentation tests.
❌ New issue: String Heavy Function Arguments |
|
@coderabbitai Have the following failed checks now been resolved? If further work is required, please provide an AI agent prompt for the remaining work to be done to address these failures. Do not treat warnings as optional or aspirational. Where a change is out of scope for this PR, propose a GitHub issue unless one exists already. (Treat o11y, code safety, documentation and validation coverage as in scope). ❌ Failed checks (1 warning, 6 inconclusive)
|
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
Distinguish operation descriptions from raw command arguments and model the closed stdout and stderr set explicitly in documentation test runners. Preserve existing diagnostic text and keep Rust test-harness selectors as plain strings.
Summary
This branch replaces the v0.9.0 public documentation with a benefit-led,
low-time-to-Hello-World introduction, a task-oriented user's guide, and a
complete impact-labelled migration guide. It also makes every README and
user's-guide example executable so published guidance cannot drift from the
library's behaviour.
The implementation follows the
documentation execplan.
The final review pass also synchronizes the crate's published README, corrects
the subcommand and tracing examples, documents all
load_firstoutcomes, andhardens the example runner against unsafe identifiers, paths, and inherited
environment secrets.
Review walkthrough
README
for the benefits, quick start, now-and-next summary, and routes into deeper
material. The
crate README
is kept byte-identical for crates.io.
user's guide
for worked CLI, TOML, environment, discovery, subcommand, diagnostics, and
generated-help flows.
migration guide
for the v0.8.0 to v0.9.0 compatibility boundaries and adoption choices.
example loader,
isolated workspace,
runtime contracts,
and
format and packaging contracts.
Validation
cargo test -p ortho_config --test documentation_examples_loader_tests --test documentation_examples_tests --test documentation_examples_rust_tests:passed.
cargo check --offlineof the migration guide's subcommand example:passed.
cargo package -p ortho_config --allow-dirty --no-verify: passed; thepackaged README matches the repository README byte for byte.
make check-fmt: passed.make lint: passed (cargo doc, Clippy, and Whitaker).make test: passed, including documentation examples and doctests.make markdownlint: passed, including spelling.make nixie: passed.mbake validate Makefile: passed.git diff --check: passed.An independent scrutineer reran every repository gate above and reported no
findings.
Notes
The README intentionally remains an entry point rather than a condensed copy
of the user's guide. The migration guide groups changes by upgrade impact, so
required compatibility work remains distinct from recommended and low-cost
opt-ins.