-
-
Notifications
You must be signed in to change notification settings - Fork 14.4k
bootstrap: Ensure documentation is built before tarball is created #150845
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
This comment has been minimized.
This comment has been minimized.
`run_default_doc_steps()` is called to ensure the documentation is built by `Docs::run()` and it should build the documentation if it isn't already built. When running the `install src` command I'm seeing failures as the `builder.doc_out(host)` directory does not exist. This is because `match_paths_to_steps_and_run()` doesn't actually build any documentation as the `paths.is_empty()` causes an early return. This results in install failures as the `*/doc` src directory doesn't exist. This patch passes the paths to `run_host_step_descriptions()` when building documentation to ensure it is correctly built. This fixes installing the Rust source code in OpenEmbedded. Signed-off-by: Alistair Francis <[email protected]>
e2ed364 to
2e89bf7
Compare
|
r? bootstrap |
|
@alistair23 can you say more on:
I'm trying to see if it's possible to snapshot the doc steps that |
It's part of the OpenEmbedded build system, so it isn't super easy to split out a simple reproducible test case. It's calling ./x install
./x install srcThis is my # EXTRA_OECARGO_PATHS
paths = [
]
# Local mirror vendored by bitbake
[source.bitbake]
directory = "/var/mnt/scratch/alistair/yocto/oe-master/build/tmp/work/x86_64-linux/cargo-native/1.92.0/sources/rustc-1.92.0-src/vendor"
[source.crates-io]
replace-with = "bitbake"
local-registry = "/nonexistent"
[http]
# Multiplexing can't be enabled because http2 can't be enabled
# in curl-native without dependency loops
multiplexing = false
# Ignore the hard coded and incorrect path to certificates
cainfo = "/var/mnt/scratch/alistair/yocto/oe-master/build/tmp/work/x86_64-linux/cargo-native/1.92.0/recipe-sysroot-native/etc/ssl/certs/ca-certificates.crt"
# HOST_SYS
[target.x86_64-unknown-linux-gnu]
linker = "/var/mnt/scratch/alistair/yocto/oe-master/build/tmp/work/x86_64-linux/cargo-native/1.92.0/wrapper/target-rust-ccld"
[build]
# Use out of tree build destination to avoid polluting the source tree
target-dir = "/var/mnt/scratch/alistair/yocto/oe-master/build/tmp/work/x86_64-linux/cargo-native/1.92.0/build/target"
[term]
progress.when = 'always'
progress.width = 80 |
|
(I meant the bootstrap config, be it |
Whoops, wrong file. If I copy these out from OE I can bootsrap Rust independently config.toml .cargo/config.toml But that doesn't reproduce the issue. I'm not clear on what the difference is between the OE build environment and a standalone one which triggers the issue |
|
That feels a bit surprising, is OE using the same |
|
We saw a failure like this in Ferrocene and the root cause was that we had run |
|
Oh, interesting, that isn't a possibility I considered 👀 |
run_default_doc_steps()is called to ensure the documentation is built byDocs::run()and it should build the documentation if it isn't already built.When running the
install srccommand I'm seeing failures as thebuilder.doc_out(host)directory does not exist. This is becausematch_paths_to_steps_and_run()doesn't actually build any documentation as thepaths.is_empty()causes an early return. This results in install failures as the*/docsrc directory doesn't exist.This patch passes the paths to
run_step_descriptions()when building documentation to ensure it is correctly built.This fixes installing the Rust source code in OpenEmbedded.