Skip to content
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

release: 0.19.1 #1206

Closed
wants to merge 8 commits into from
Closed

release: 0.19.1 #1206

wants to merge 8 commits into from

Conversation

Gankra
Copy link
Contributor

@Gankra Gankra commented Jul 12, 2024

fixes #1204

mistydemeo and others added 8 commits July 11, 2024 14:24
We had cdylibs available from axoproject/`cargo metadata` in the past,
but we ignored them. This pipes them into the buildsystem and treats
them as binaries like any others. For most of the layers of cargo-dist,
we have a single set of "binaries" but we now type them so that we can
keep track of which are executables and which are libraries. We separate
them back out at the time that we create installers to simplify the
process of deciding where they get installed to.

By default, these aren't packaged or installed in order to avoid catching
people by surprise. However, they can be enabled easily via the new
`package-cdylibs` and `install-cdylibs` config flags.

Homebrew has full first-class support for libraries, which we use here.
Shell and PowerShell currently install them to the same path as binaries;
this will change with new default prefixes in the future. npm projects
don't change since they never did any form of organized installation, and
just dumped the entire contents of the release tarball into a private path.
Support cdylibs from Rust/generic projects
This introduces a new axoproject WorkspaceGraph abstraction that exists to
replace the old Workspaces approach. The purpose of this new abstraction
is that it supports nested workspaces, while still allowing you to work with
all the packages uniformly.

Most code largely remains the same, as it looks up properties of packages by
id, or queries a property of all workspaces/packages, where essentially nothing
is changed.

Also all logic to inherit config from workspaces to packages is just changed to
inherit from the *root* package, as we don't want to support multiple
`[workspace.metadata.dist]` entries.

compute_build functions have been changed to take a workspace, so that we try
to compute N cargo builds for N cargo workspaces (discarding them if unecessary).

The URL code has once again been refactored to be more of a chain instead of
redoing the same work over and over.

The `package_info` subfield of a workspace has been deprecated in favour of
Asking the WorkspaceGraph, as there are different tiers of childhood now.
@@ -3,6 +3,11 @@
Nothing Yet!


# Version 0.19.1 (2024-07-12)

This is a minor release that makes cargo-dist build with versions of rustc older than 1.79.0 (as of this writing, the latest release). The previous cargo-dist release accidentally relied on the rustc's [new temporary lifetime extension features](https://blog.rust-lang.org/2024/06/13/Rust-1.79.0.html#extending-automatic-temporary-lifetime-extension), making us suddenly require bleeding edge rustc for no good reason.
Copy link
Member

Choose a reason for hiding this comment

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

word minor here might be confusing but otherwise lgtm

@Gankra
Copy link
Contributor Author

Gankra commented Jul 12, 2024

(for merge conflict reasons i opened two PRs using the same base branch but different merge-target branches, this is the "doomed" PR that had working CI but went to a dummy branch. the other PR will be merged)

@Gankra Gankra closed this Jul 12, 2024
@Gankra Gankra deleted the rel191 branch July 12, 2024 18:26
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.

3 participants