From 8c8de361d2ac6680ad577e863b02734d98dfe057 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Sat, 6 Sep 2025 12:47:18 -0700 Subject: [PATCH 1/2] admin: Rename `backfill-og-images` to `render-og-images` The initial backfill is finished, but this tool can still be useful to manually trigger rerenders, so we will rename to reflect that new purpose. --- src/bin/crates-admin/main.rs | 6 +++--- .../{backfill_og_images.rs => render_og_images.rs} | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) rename src/bin/crates-admin/{backfill_og_images.rs => render_og_images.rs} (95%) diff --git a/src/bin/crates-admin/main.rs b/src/bin/crates-admin/main.rs index 0e3b8cc1e1c..be69bb4a190 100644 --- a/src/bin/crates-admin/main.rs +++ b/src/bin/crates-admin/main.rs @@ -1,7 +1,6 @@ #[macro_use] extern crate tracing; -mod backfill_og_images; mod default_versions; mod delete_crate; mod delete_version; @@ -9,6 +8,7 @@ mod dialoguer; mod enqueue_job; mod migrate; mod populate; +mod render_og_images; mod render_readmes; mod transfer_crates; mod upload_index; @@ -18,7 +18,7 @@ mod yank_version; #[derive(clap::Parser, Debug)] #[command(name = "crates-admin")] enum Command { - BackfillOgImages(backfill_og_images::Opts), + RenderOgImages(render_og_images::Opts), DeleteCrate(delete_crate::Opts), DeleteVersion(delete_version::Opts), Populate(populate::Opts), @@ -48,7 +48,7 @@ async fn main() -> anyhow::Result<()> { span.record("command", tracing::field::debug(&command)); match command { - Command::BackfillOgImages(opts) => backfill_og_images::run(opts).await, + Command::RenderOgImages(opts) => render_og_images::run(opts).await, Command::DeleteCrate(opts) => delete_crate::run(opts).await, Command::DeleteVersion(opts) => delete_version::run(opts).await, Command::Populate(opts) => populate::run(opts).await, diff --git a/src/bin/crates-admin/backfill_og_images.rs b/src/bin/crates-admin/render_og_images.rs similarity index 95% rename from src/bin/crates-admin/backfill_og_images.rs rename to src/bin/crates-admin/render_og_images.rs index 85c2afa4b8e..d7ea296fe2c 100644 --- a/src/bin/crates-admin/backfill_og_images.rs +++ b/src/bin/crates-admin/render_og_images.rs @@ -9,8 +9,8 @@ use tracing::{info, warn}; #[derive(clap::Parser, Debug)] #[command( - name = "backfill-og-images", - about = "Enqueue OG image generation jobs for existing crates" + name = "render-og-images", + about = "Enqueue OG image generation jobs for crates" )] pub struct Opts { #[arg(long, default_value = "1000")] @@ -29,7 +29,7 @@ pub struct Opts { pub async fn run(opts: Opts) -> Result<()> { let mut conn = db::oneoff_connection().await?; - info!("Starting OG image backfill with options: {opts:?}"); + info!("Starting OG image rendering with options: {opts:?}"); // Helper function to build query let build_query = |offset: i64| { From 788296c04f1b773748f1329520d80c009418cb06 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Sat, 6 Sep 2025 12:49:01 -0700 Subject: [PATCH 2/2] admin/render_og_images: Add `--skip-invalidation` option This adds an option to explicitly skip CDN invalidations, defaulting to false, now that the initial backfill is done. --- src/bin/crates-admin/render_og_images.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/bin/crates-admin/render_og_images.rs b/src/bin/crates-admin/render_og_images.rs index d7ea296fe2c..bd1eae107d3 100644 --- a/src/bin/crates-admin/render_og_images.rs +++ b/src/bin/crates-admin/render_og_images.rs @@ -24,6 +24,10 @@ pub struct Opts { #[arg(long)] /// Offset to start enqueueing from (useful for resuming) offset: Option, + + #[arg(long)] + /// Skip CDN cache invalidation when generating OG images + skip_invalidation: bool, } pub async fn run(opts: Opts) -> Result<()> { @@ -79,7 +83,13 @@ pub async fn run(opts: Opts) -> Result<()> { // Create batch of jobs let jobs = crate_names .into_iter() - .map(GenerateOgImage::without_cdn_invalidation) + .map(|crate_name| { + if opts.skip_invalidation { + GenerateOgImage::without_cdn_invalidation(crate_name) + } else { + GenerateOgImage::new(crate_name) + } + }) .map(|job| { Ok(( background_jobs::job_type.eq(GenerateOgImage::JOB_NAME),