Skip to content

Commit

Permalink
User changes
Browse files Browse the repository at this point in the history
  • Loading branch information
mosteo committed Feb 19, 2024
1 parent f7f5e4d commit c854f0f
Showing 1 changed file with 16 additions and 28 deletions.
44 changes: 16 additions & 28 deletions doc/user-changes.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,36 +6,24 @@ stay on top of `alr` new features.

## Release `2.0-dev`

### New switch `alr build --stop-after=<build stage>`

### Enable shared dependencies by default

PR [#1449](https://github.com/alire-project/alire/pull/1449)

Pre-2.0, Alire worked always in "sandboxed" mode; that is, all source
dependencies were found under `<workspace>/alire/cache`. This behavior can be
now enabled with `alr config --set dependencies.shared false`, locally or
globally.

By default, post-2.0, Alire works in "shared" mode, where sources are
downloaded once (to `~/.cache/alire/releases`) and unique builds are created
(under `~/.cache/alire/builds`) for unique configurations. This should minimize
rebuilds across crate configurations and workspaces, and eliminate risks of
inconsistencies.

Disk use is decreased by unique source downloads, but might be increased by
unique build configurations. Cache management and cleanup will be provided down
the road. The build cache can always be deleted to retrieve disk space, at the
cost of triggering rebuilds.

Unique builds are identified by a build hash which takes into account the
following inputs for a given release:

- Build profile
- Environment variables modified in the manifest
- GPR external variables declared or set
- Configuration variables declared or set
- Compiler version
- Vaue of `LIBRARY_TYPE` and `<CRATE>_LIBRARY_TYPE` variables.
- Hash of dependencies
PR [#1573](https://github.com/alire-project/alire/pull/1573)

From `alr help build`:

**Build stages**

Instead of always doing a full build, the process can be stopped early using `--stop-after=<stage>`, where `<stage>` is one of:

* sync: sync pristine sources to build location
* generation: generate configuration-dependent files
* post-fetch: running of post-fetch actions
* pre-build: running of pre-build actions
* build: actual building of sources
* post-build: running of post-build actions

### Automatic index updates

Expand Down

0 comments on commit c854f0f

Please sign in to comment.