@@ -49,6 +49,37 @@ automatic updates.
4949When enabled, updates may happen before executing commands that rely on
5050indexes: ` get ` , ` search ` , ` with ` , etc.
5151
52+ ### Enable shared dependencies by default
53+
54+ PR [ #1449 ] ( https://github.com/alire-project/alire/pull/1449 )
55+
56+ Pre-2.0, Alire worked always in "sandboxed" mode; that is, all source
57+ dependencies were found under ` <workspace>/alire/cache ` . This behavior can be
58+ now enabled with ` alr config --set dependencies.shared false ` , locally or
59+ globally.
60+
61+ By default, post-2.0, Alire works in "shared" mode, where sources are
62+ downloaded once (to ` ~/.cache/alire/releases ` ) and unique builds are created
63+ (under ` ~/.cache/alire/builds ` ) for unique configurations. This should minimize
64+ rebuilds across crate configurations and workspaces, and eliminate risks of
65+ inconsistencies.
66+
67+ Disk use is decreased by unique source downloads, but might be increased by
68+ unique build configurations. Cache management and cleanup will be provided down
69+ the road. The build cache can always be deleted to retrieve disk space, at the
70+ cost of triggering rebuilds.
71+
72+ Unique builds are identified by a build hash which takes into account the
73+ following inputs for a given release:
74+
75+ - Build profile
76+ - Environment variables modified in the manifest
77+ - GPR external variables declared or set
78+ - Configuration variables declared or set
79+ - Compiler version
80+ - Vaue of ` LIBRARY_TYPE ` and ` <CRATE>_LIBRARY_TYPE ` variables.
81+ - Hash of dependencies
82+
5283### Deprecation of ` dependencies.dir ` in favor of ` dependencies.shared `
5384
5485PR [ #1419 ] ( https://github.com/alire-project/alire/pull/1419 )
0 commit comments