Rollup merge of #58848 - GuillaumeGomez:fix-cache-issues, r=Mark-Simulacrum,ollie27
Prevent cache issues on version updates Fixes #58827. cc @rust-lang/infra
This commit is contained in:
commit
20f063a939
3 changed files with 31 additions and 16 deletions
|
@ -69,6 +69,17 @@ fn main() {
|
|||
.arg("unstable-options");
|
||||
}
|
||||
cmd.arg("--generate-redirect-pages");
|
||||
has_unstable = true;
|
||||
}
|
||||
|
||||
// Needed to be able to run all rustdoc tests.
|
||||
if let Some(ref x) = env::var_os("RUSTDOC_RESOURCE_SUFFIX") {
|
||||
// This "unstable-options" can be removed when `--resource-suffix` is stabilized
|
||||
if !has_unstable {
|
||||
cmd.arg("-Z")
|
||||
.arg("unstable-options");
|
||||
}
|
||||
cmd.arg("--resource-suffix").arg(x);
|
||||
}
|
||||
|
||||
if verbose > 1 {
|
||||
|
|
|
@ -343,12 +343,9 @@ fn invoke_rustdoc(
|
|||
.arg("--html-before-content").arg(&version_info)
|
||||
.arg("--html-in-header").arg(&header)
|
||||
.arg("--markdown-no-toc")
|
||||
.arg("--markdown-playground-url")
|
||||
.arg("https://play.rust-lang.org/")
|
||||
.arg("-o").arg(&out)
|
||||
.arg(&path)
|
||||
.arg("--markdown-css")
|
||||
.arg("../rust.css");
|
||||
.arg("--markdown-playground-url").arg("https://play.rust-lang.org/")
|
||||
.arg("-o").arg(&out).arg(&path)
|
||||
.arg("--markdown-css").arg("../rust.css");
|
||||
|
||||
builder.run(&mut cmd);
|
||||
}
|
||||
|
@ -431,8 +428,7 @@ impl Step for Standalone {
|
|||
.arg("--html-in-header").arg(&favicon)
|
||||
.arg("--markdown-no-toc")
|
||||
.arg("--index-page").arg(&builder.src.join("src/doc/index.md"))
|
||||
.arg("--markdown-playground-url")
|
||||
.arg("https://play.rust-lang.org/")
|
||||
.arg("--markdown-playground-url").arg("https://play.rust-lang.org/")
|
||||
.arg("-o").arg(&out)
|
||||
.arg(&path);
|
||||
|
||||
|
@ -523,6 +519,7 @@ impl Step for Std {
|
|||
.arg("--markdown-css").arg("rust.css")
|
||||
.arg("--markdown-no-toc")
|
||||
.arg("--generate-redirect-pages")
|
||||
.arg("--resource-suffix").arg(crate::channel::CFG_RELEASE_NUM)
|
||||
.arg("--index-page").arg(&builder.src.join("src/doc/index.md"));
|
||||
|
||||
builder.run(&mut cargo);
|
||||
|
@ -589,6 +586,7 @@ impl Step for Test {
|
|||
|
||||
cargo.arg("--no-deps")
|
||||
.arg("-p").arg("test")
|
||||
.env("RUSTDOC_RESOURCE_SUFFIX", crate::channel::CFG_RELEASE_NUM)
|
||||
.env("RUSTDOC_GENERATE_REDIRECT_PAGES", "1");
|
||||
|
||||
builder.run(&mut cargo);
|
||||
|
@ -660,6 +658,7 @@ impl Step for WhitelistedRustc {
|
|||
// for which docs must be built.
|
||||
for krate in &["proc_macro"] {
|
||||
cargo.arg("-p").arg(krate)
|
||||
.env("RUSTDOC_RESOURCE_SUFFIX", crate::channel::CFG_RELEASE_NUM)
|
||||
.env("RUSTDOC_GENERATE_REDIRECT_PAGES", "1");
|
||||
}
|
||||
|
||||
|
@ -890,6 +889,7 @@ impl Step for ErrorIndex {
|
|||
);
|
||||
index.arg("html");
|
||||
index.arg(out.join("error-index.html"));
|
||||
index.arg(crate::channel::CFG_RELEASE_NUM);
|
||||
|
||||
// FIXME: shouldn't have to pass this env var
|
||||
index.env("CFG_BUILD", &builder.config.build)
|
||||
|
|
|
@ -27,9 +27,10 @@ enum OutputFormat {
|
|||
}
|
||||
|
||||
impl OutputFormat {
|
||||
fn from(format: &str) -> OutputFormat {
|
||||
fn from(format: &str, resource_suffix: &str) -> OutputFormat {
|
||||
match &*format.to_lowercase() {
|
||||
"html" => OutputFormat::HTML(HTMLFormatter(RefCell::new(IdMap::new()))),
|
||||
"html" => OutputFormat::HTML(HTMLFormatter(RefCell::new(IdMap::new()),
|
||||
resource_suffix.to_owned())),
|
||||
"markdown" => OutputFormat::Markdown(MarkdownFormatter),
|
||||
s => OutputFormat::Unknown(s.to_owned()),
|
||||
}
|
||||
|
@ -44,7 +45,7 @@ trait Formatter {
|
|||
fn footer(&self, output: &mut dyn Write) -> Result<(), Box<dyn Error>>;
|
||||
}
|
||||
|
||||
struct HTMLFormatter(RefCell<IdMap>);
|
||||
struct HTMLFormatter(RefCell<IdMap>, String);
|
||||
struct MarkdownFormatter;
|
||||
|
||||
impl Formatter for HTMLFormatter {
|
||||
|
@ -55,7 +56,7 @@ impl Formatter for HTMLFormatter {
|
|||
<title>Rust Compiler Error Index</title>
|
||||
<meta charset="utf-8">
|
||||
<!-- Include rust.css after light.css so its rules take priority. -->
|
||||
<link rel="stylesheet" type="text/css" href="light.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="light{suffix}.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="rust.css"/>
|
||||
<style>
|
||||
.error-undescribed {{
|
||||
|
@ -64,7 +65,7 @@ impl Formatter for HTMLFormatter {
|
|||
</style>
|
||||
</head>
|
||||
<body>
|
||||
"##)?;
|
||||
"##, suffix=self.1)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
@ -242,9 +243,12 @@ fn main_with_result(format: OutputFormat, dst: &Path) -> Result<(), Box<dyn Erro
|
|||
|
||||
fn parse_args() -> (OutputFormat, PathBuf) {
|
||||
let mut args = env::args().skip(1);
|
||||
let format = args.next().map(|a| OutputFormat::from(&a))
|
||||
.unwrap_or(OutputFormat::from("html"));
|
||||
let dst = args.next().map(PathBuf::from).unwrap_or_else(|| {
|
||||
let format = args.next();
|
||||
let dst = args.next();
|
||||
let resource_suffix = args.next().unwrap_or_else(String::new);
|
||||
let format = format.map(|a| OutputFormat::from(&a, &resource_suffix))
|
||||
.unwrap_or(OutputFormat::from("html", &resource_suffix));
|
||||
let dst = dst.map(PathBuf::from).unwrap_or_else(|| {
|
||||
match format {
|
||||
OutputFormat::HTML(..) => PathBuf::from("doc/error-index.html"),
|
||||
OutputFormat::Markdown(..) => PathBuf::from("doc/error-index.md"),
|
||||
|
|
Loading…
Reference in a new issue