Skip to content

Split platform manuals#2388

Merged
bors-ferrocene[bot] merged 2 commits into
mainfrom
split-targets
Jul 13, 2026
Merged

Split platform manuals#2388
bors-ferrocene[bot] merged 2 commits into
mainfrom
split-targets

Conversation

@plaindocs

@plaindocs plaindocs commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

This PR splits out the following docs from safety manual, user manual and qualification docs:

  • QNX7
  • QNX8
  • RHIVOS

Into a single manual per target that contains the relevant content from the 3 documents. I've made the minimal changes required for those to make sense.

Still to do:

  • update tests so CI passes
  • update index.html to reference the new targets?
  • RHIVOS qualified targets?
  • update doc list

Review:

  • be great if someone familiar with the test outcomes could make sure that all looks ok
  • be great if someone could eyeball the new docs with fresh eyes and sure it all seems ok

@plaindocs
plaindocs marked this pull request as draft June 2, 2026 14:48
Comment thread ferrocene/doc/qnx7-manual/exts/ferrocene_test_outcomes/outcomes.py Outdated
@jyn514 jyn514 added the waiting-on-author If this PR was opened by an automation, the "author" is the assignee. label Jun 17, 2026
Comment thread ferrocene/doc/qnx7-manual/src/templates/tests.jinja2 Outdated
@jyn514

jyn514 commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

remaining changes look ok to me but there's a bunch of rebase conflicts.

@plaindocs
plaindocs marked this pull request as ready for review July 7, 2026 14:29
@plaindocs plaindocs changed the title New QNX7 manual Split platform manuals Jul 7, 2026

@jyn514 jyn514 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@plaindocs you need to run cargo insta review --manifest-path src/bootstrap/Cargo.toml; see https://ops-handbook.ferrocene.dev/pr-rotation/upstream-pull-basic-checks.html.

can you confirm that x doc ferrocene/doc --exclude ferrocene/doc/rhivos-manual works and does what you expect?

about the index: since Sphinx allows python extensions, you should be able to add conditional logic here. i haven't looked at the code in detail but you can search for .py files in ferrocene/doc and that should give you an idea. let me know if you need more guidance or get stuck.

Comment thread src/bootstrap/src/core/builder/mod.rs
@plaindocs

Copy link
Copy Markdown
Contributor Author

@jyn514 makes sense. Will check --exclude next.

The main doc index is https://github.com/ferrocene/ferrocene/tree/main/ferrocene/doc/index which is just html, so doesn't support sphinx conditionals.

@plaindocs

Copy link
Copy Markdown
Contributor Author

@jyn514 I don't think --exclude works:

➜  ./x doc ferrocene/doc --exclude ferrocene/doc/rhivos-manual

...

Building Ferrocene documentation index (aarch64-apple-darwin)
Skipping Set({doc::ferrocene/doc/rhivos-manual}) because it is excluded
Build completed successfully in 0:01:14

ferrocene on  split-targets via  v26.0.0 via 🐍 v3.14.5 via 🦀 v1.96.1 took 1m14s
➜ ls build/aarch64-apple-darwin/doc/targets/rhivos-manual
_sources        document-id.txt objects.inv     rustc           search.html     signature
_static         index.html      overview.html   scope.html      searchindex.js  targets

My understanding is I need to use the 'source' doc in exclude?

I'm also not sure if building with --exclude would delete it if it was there (I lowkey expect not), but I tested for that.

@jyn514

jyn514 commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

@plaindocs it's being pull in recursively by DocumentList:

afbeelding

The main doc index is https://github.com/ferrocene/ferrocene/tree/main/ferrocene/doc/index which is just html, so doesn't support sphinx conditionals.

ok. i would suggest doing something like this:

  1. Turn the HTML file into a .jinja file. There's docs here: https://jinja.palletsprojects.com/en/stable/templates/
  2. Extend doc::Index::run to render Jinja, either in Rust or in a python wrapper. If you go the python route you can use ferrocene/doc/qualification-report/exts/ferrocene_test_outcomes/render_template.py as a reference.
  3. Extend doc::Index to carry more data in the struct along with the target — i think we probably want a list of all targets it links to, since i imagine we'll want to have more conditional targets in the future.
  4. Add a new build.exclude-targets = [] list to bootstrap, read from bootstrap.toml. Extend doc::Index::make_run to use it to determine the targets that are rendered.

Comment thread ferrocene/doc/qnx8-manual/src/rustc/aarch64-unknown-qnx.rst

@jyn514 jyn514 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this looks ok for now. i've tested that x doc ferrocene/doc/index and x ferrocene/doc/qnx8 both work. we're planning to build the QNX8 docs separately as a one-off for 26.08, and worry about the long-term fix later.

the one thing i'm not sure about is whether test outcomes are going to render properly. i'm a little hesitant to merge this until we know, although i guess we can always just merge to main without backporting to 26.08. yeah ok, let's do that.

bors merge

rendered: Image

Comment on lines +78 to +85
targets: [aarch64-unknown-linux-gnu]
- Set({doc::ferrocene/doc/qnx7-manual})
[Doc] bootstrap::ferrocene::doc::QNX8Manual
targets: [aarch64-unknown-linux-gnu]
- Set({doc::ferrocene/doc/qnx8-manual})
[Doc] bootstrap::ferrocene::doc::RHIVOSManual
targets: [aarch64-unknown-linux-gnu]
- Set({doc::ferrocene/doc/rhivos-manual})

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

noting explicitly that the new target docs are built by default, so they should automatically end up in the release tarball.

@tshepang

Copy link
Copy Markdown
Member

bors cancel

squashing...

@bors-ferrocene

Copy link
Copy Markdown
Contributor

Canceled.

@tshepang
tshepang force-pushed the split-targets branch 2 times, most recently from 4533b93 to 0fae87e Compare July 13, 2026 16:23
Comment thread ferrocene/doc/index/index.html Outdated
We now have manuals for these separated
- RHIVOS
- QNX7
- QNX8

This commit was authored by Sam Wright.
I only did some git wrangling to clean the history.

Co-authored-by: Tshepang Mbambo <[email protected]>

@Hoverbear Hoverbear left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bors merge

@bors-ferrocene

Copy link
Copy Markdown
Contributor

🕐 Waiting for PR status (Github check) to be set, probably by CI. Bors will automatically try to run when all required PR statuses are set.

@bors-ferrocene

Copy link
Copy Markdown
Contributor

Build succeeded:

@bors-ferrocene
bors-ferrocene Bot merged commit bbac114 into main Jul 13, 2026
4 checks passed
@bors-ferrocene
bors-ferrocene Bot deleted the split-targets branch July 13, 2026 22:55
@jyn514 jyn514 mentioned this pull request Jul 14, 2026
@ferrocene-automations ferrocene-automations Bot added the backport:manual PR requiring manual intervention to backport label Jul 14, 2026
bors-ferrocene Bot added a commit that referenced this pull request Jul 16, 2026
2487: Backport to `release/1.97` r=tshepang a=ferrocene-automations[bot]

This PR backports the following PRs to the `release/1.97` branch:

* #2429
* #2433
* #2388
* #2475

Note that the automation failed to backport some PRs automatically. Check out the [backport:manual](https://github.com/ferrocene/ferrocene/pulls?q=is%3Apr+label%3Abackport%3Amanual) for a list of them.

Co-authored-by: Urhengulas <[email protected]>
Co-authored-by: Tshepang Mbambo <[email protected]>
Co-authored-by: Felix Gilcher <[email protected]>
bors-ferrocene Bot added a commit that referenced this pull request Jul 20, 2026
2470: sphinx/test-outcomes: make test target mandatory r=Urhengulas a=japaric

see commit message for rationale. also check the qualification report target pages in tidy

2476: No RHIVOS in main safety man r=Urhengulas a=Hoverbear

#2388 touched this so we touch it again. RHIVOS should be in the safety manual for RHIVOS, not main one.


Co-authored-by: Jorge Aparicio <[email protected]>
Co-authored-by: Ana Hobden <[email protected]>
bors-ferrocene Bot added a commit that referenced this pull request Jul 20, 2026
2363: Annotations recurse into child items r=Urhengulas a=jyn514

This is useful when trying out new crates for a contract, and will also be useful for the upcoming work to add a `cfg(not(subset))` cargo fix lint.

2476: No RHIVOS in main safety man r=Urhengulas a=Hoverbear

#2388 touched this so we touch it again. RHIVOS should be in the safety manual for RHIVOS, not main one.


Co-authored-by: jyn <[email protected]>
Co-authored-by: Johann Hemmann <[email protected]>
Co-authored-by: Ana Hobden <[email protected]>
bors-ferrocene Bot added a commit that referenced this pull request Jul 21, 2026
2476: No RHIVOS in main safety man r=Urhengulas a=Hoverbear

#2388 touched this so we touch it again. RHIVOS should be in the safety manual for RHIVOS, not main one.


Co-authored-by: Ana Hobden <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport:manual PR requiring manual intervention to backport backport:1.97 merged-in:1.97 merged-in:1.98 waiting-on-author If this PR was opened by an automation, the "author" is the assignee.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants