Skip to content

Document how to publish new versions of the crates #322

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

Merged

Conversation

GabrielMajeri
Copy link
Collaborator

I've realized that the process for publishing new versions of the crates in this repository has grown to be (a bit) complicated, and couldn't find an appropriate reference online for how to best manage the publishing of new versions of multi-crate projects.

This PR adds a new PUBLISHING.md document, describing some practices I've discovered over the years for handling new releases of the uefi-rs crates.

These are by no means final, but documenting the steps should make it possible to review and improve them over time.

Copy link
Member

@nicholasbishop nicholasbishop left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A couple notes but otherwise looks good. For releasing workspaces I've had some luck with https://crates.io/crates/cargo-release, could be something to look into in the future.

PUBLISHING.md Outdated
The dependency graph of the published crates in this repo is:

```
uefi-macros <-- uefi (root project) <-- uefi-services
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had a little trouble parsing this, might be clearer fully written out? E.g.

uefi-services depends on uefi (the root project), and uefi depends on uefi-macros.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reworded this, should be clearer now.

@GabrielMajeri
Copy link
Collaborator Author

@nicholasbishop There is one step I didn't capture within the document - since issue #105, I've also started to create Git tags corresponding to the various new versions of the main crate. The thing is, I'm not certain it's so useful anymore (since now we have multiple crates in the repo) and I didn't find an Arch Linux package for this crate anymore.

Any motivation for keeping on tagging releases?

@nicholasbishop
Copy link
Member

Re release tagging, I think it's nice to have on occasion, but I admit I can't think of a concrete need at the moment. On the other hand, it's hard to find the appropriate commit to tag after the fact, so maybe worth continuing to do it. For the multiple packages, could maybe do separate tags for each one? That's how cargo-release does it.

@nicholasbishop nicholasbishop merged commit 4288cce into master Dec 12, 2021
@GabrielMajeri GabrielMajeri deleted the add-instructions-for-publishing-new-crate-versions branch December 18, 2021 20:16
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.

2 participants