Skip to content

Fix publish workflow ordering and per-crate readme paths - #187

Merged
huntsman90 merged 1 commit into
dropbox:mainfrom
huntsman90:fix-publish-workflow-and-readmes
Jun 25, 2026
Merged

huntsman90 merged 1 commit into
dropbox:mainfrom
huntsman90:fix-publish-workflow-and-readmes

Conversation

@huntsman90

Copy link
Copy Markdown
Collaborator

Two related fixes for the crates.io publish pipeline:

  1. Set readme = "README.md" directly in pb-jelly/Cargo.toml and pb-jelly-gen/Cargo.toml instead of inheriting readme.workspace = true. The workspace-level readme = "README.md" resolves relative to the workspace root, so packaging emitted a warning like readme '../README.md' appears to be a path outside of the package and would have caused crates.io to render the workspace umbrella README on each crate's page instead of the per-crate README.

  2. Reorder steps in .github/workflows/publish.yml so that pb-jelly-gen's dry-run happens after the real publish of pb-jelly (and the index-wait sleep). When both crates are bumped to the same version in lockstep, dry-running pb-jelly-gen first fails to resolve pb-jelly = "^X.Y.Z" against crates.io because that version doesn't exist yet. New ordering:

    1. Dry run pb-jelly
    2. Authenticate
    3. Publish pb-jelly
    4. Wait for crates.io index
    5. Dry run pb-jelly-gen (now pb-jelly X.Y.Z is on crates.io)
    6. Publish pb-jelly-gen

Two related fixes for the crates.io publish pipeline:

1. Set `readme = "README.md"` directly in `pb-jelly/Cargo.toml` and
   `pb-jelly-gen/Cargo.toml` instead of inheriting `readme.workspace =
   true`. The workspace-level `readme = "README.md"` resolves relative to
   the workspace root, so packaging emitted a warning like
   `readme '../README.md' appears to be a path outside of the package`
   and would have caused crates.io to render the workspace umbrella
   README on each crate's page instead of the per-crate README.

2. Reorder steps in `.github/workflows/publish.yml` so that
   `pb-jelly-gen`'s dry-run happens *after* the real publish of
   `pb-jelly` (and the index-wait sleep). When both crates are bumped to
   the same version in lockstep, dry-running `pb-jelly-gen` first fails
   to resolve `pb-jelly = "^X.Y.Z"` against crates.io because that
   version doesn't exist yet. New ordering:

     1. Dry run pb-jelly
     2. Authenticate
     3. Publish pb-jelly
     4. Wait for crates.io index
     5. Dry run pb-jelly-gen   (now pb-jelly X.Y.Z is on crates.io)
     6. Publish pb-jelly-gen

Co-authored-by: Cursor <cursoragent@cursor.com>
@huntsman90
huntsman90 marked this pull request as ready for review June 25, 2026 05:24
@huntsman90
huntsman90 added this pull request to the merge queue Jun 25, 2026
Merged via the queue into dropbox:main with commit 0ad4009 Jun 25, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant