Repository navigation
fix(autopublish): send crates.io User-Agent (workaround for change-detection churn) - #187
Conversation
crates.io 403s default curl UAs, so the gate's version lookup silently fell back to OLD_VERSION=none -> OLD=none -> changed=true on every run (e.g. rain-metadata-bindings churned 0.1.0 -> 0.1.4 with identical content). Send a descriptive User-Agent, distinguish a real 404 (never published) from other HTTP errors (fail loudly), and echo resolved values for visibility. This makes unchanged crates correctly no-op. Note: it does NOT fix the deeper chained-job issue where 2+ genuinely-changed interdependent crates each rewrite a shared dependent manifest (crates/cli/Cargo.toml) and conflict on rebase — that needs the single-combined-job redesign (tracked separately). It is a workaround that unblocks the common case (only one crate actually changed). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
Warning Review limit reached
More reviews will be available in 11 minutes and 36 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@coderabbitai assess this PR size classification for the totality of the PR with the following criterias and report it in your comment: S/M/L PR Classification Guidelines:This guide helps classify merged pull requests by effort and complexity rather than just line count. The goal is to assess the difficulty and scope of changes after they have been completed. Small (S)Characteristics:
Review Effort: Would have taken 5-10 minutes Examples:
Medium (M)Characteristics:
Review Effort: Would have taken 15-30 minutes Examples:
Large (L)Characteristics:
Review Effort: Would have taken 45+ minutes Examples:
Additional Factors to ConsiderWhen deciding between sizes, also consider:
Notes:
|
crates.io 403s default curl User-Agents, so the change-detection gate's version lookup silently fell back to
OLD_VERSION=none→OLD=none→changed=trueon every run. That's whyrain-metadata-bindingschurned0.1.0 → 0.1.4with byte-identical content (the metaboard job's log showed the literalcurl: (22) 403).Fix: send a descriptive
User-Agent, distinguish a real404(never published) from other HTTP errors (fail loudly instead of assumingnone), and echo resolved values to the log.Important: this is a workaround, not the full fix
It makes unchanged crates correctly no-op. It does not fix the deeper issue: when 2+ genuinely-changed interdependent crates publish via chained jobs, each
cargo releaserewrites the shared dependent manifest (crates/cli/Cargo.tomlpins both bindings and metaboard versions), so rebasing one bump onto the other conflicts there — theCargo.lock-only fallback from #184 can't resolve it. Proper fix = single combined release job per repo. Filing separately.Pairs with #184/#186.
🤖 Generated with Claude Code