guix/guix
Ludovic Courtès 323b58ac18
channels: ‘latest-channel-instances’ traverses user-provided channels first.
Previously, ‘latest-channel-instances’ would perform a depth-first
traversal of channels.  Since dependencies specified in ‘.guix-channel’
are usually less specific that those provided by the user, this would
lead to the use of instances corresponding to those less specific specs,
which in turn might declare dependencies that do not exist for the more
specific instances.

This commit changes ‘latest-channel-instances’ to perform a
breadth-first traversal, thereby giving user-supplied channels higher
precedence over dependencies found via ‘.guix-channel’.

Fixes <https://issues.guix.gnu.org/68822>.

* guix/channels.scm (latest-channel-instances)[ignore?]: Remove.
[instance-name, same-named?, more-specific?]: New procedures.
Rewrite as a breadth-first traversal using a regular loop.
* tests/channels.scm ("latest-channel-instances reads dependencies from most-specific instance"):
New test.

Change-Id: Iba518145cfd209f04293a56246dbfee3b714650b
2024-01-31 09:07:25 +01:00
..
build build-system/zig: Add cross-compilation support. 2024-01-07 16:56:00 +01:00
build-system build: perl: Accept Gexps for #:module-build-flags. 2024-01-18 22:10:58 -05:00
import import/cran: Set HOME when ExperimentHub is among the inputs. 2024-01-22 13:54:44 +01:00
platforms guix: Add ork1-elf platform. 2024-01-22 11:26:56 +01:00
scripts scripts: describe: Support 'channels-sans-intro' format for local checkouts. 2024-01-24 23:28:38 +01:00
store
tests
android-repo-download.scm
avahi.scm
base16.scm
base32.scm
base64.scm
build-system.scm
bzr-download.scm
cache.scm
channels.scm channels: ‘latest-channel-instances’ traverses user-provided channels first. 2024-01-31 09:07:25 +01:00
ci.scm
colors.scm
combinators.scm
config.scm.in
cpio.scm
cpu.scm
cve.scm
cvs-download.scm
d3.v3.js
deprecation.scm deprecation: Fix docstring typo. 2023-12-22 17:47:15 +01:00
derivations.scm
describe.scm
diagnostics.scm
discovery.scm
docker.scm guix: docker: Build layered images. 2024-01-08 21:04:44 +03:00
download.scm download: Update Apache mirror list. 2023-12-17 01:00:00 +01:00
elf.scm
ftp-client.scm
gexp.scm gexp: #:references-graphs accepts and honors <gexp-input> records. 2023-12-22 00:31:40 +01:00
git-authenticate.scm
git-download.scm
git.scm
glob.scm
gnu-maintenance.scm
gnupg.scm
grafts.scm
graph.js
graph.scm
hash.scm
hg-download.scm
http-client.scm
i18n.scm
inferior.scm
ipfs.scm
least-authority.scm least-authority: Add support for changing UIDs/GIDs before exec. 2023-12-22 00:31:41 +01:00
licenses.scm
lint.scm
man-db.scm
memoization.scm
modules.scm
monad-repl.scm
monads.scm
nar.scm
narinfo.scm
openpgp.scm
packages.scm
pki.scm
platform.scm
profiles.scm
profiling.scm
progress.scm
quirks.scm
read-print.scm guix: import: Optionally import necessary yanked crates. 2024-01-09 09:38:38 +02:00
records.scm
remote.scm
repl.scm
rpm.scm
scripts.scm
search-paths.scm
self.scm
serialization.scm
sets.scm
ssh.scm
status.scm
store.scm
substitutes.scm
svn-download.scm
swh.scm
tests.scm
transformations.scm
ui.scm ui: It’s 2024 now! 2024-01-05 17:27:21 +01:00
upstream.scm
utils.scm gnu: Add target-x32?. 2024-01-04 21:48:17 +02:00
workers.scm