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 build: Add dependency on Git. 2023-09-26 17:36:58 +02:00
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-download: Add support for Git Large File Storage (LFS). 2023-11-07 12:33:26 -05:00
git.scm git: Shell out to ‘git gc’ when necessary. 2023-11-22 16:51:47 +01:00
glob.scm
gnu-maintenance.scm gnu-maintenance: Support URI list of mixed mirrors, HTTP URLs. 2023-09-11 23:39:13 -04:00
gnupg.scm
grafts.scm grafts: Use the right locale package. 2023-12-03 23:55:08 +01:00
graph.js
graph.scm graph: Add GraphML backend. 2023-08-25 14:24:43 +02:00
hash.scm
hg-download.scm
http-client.scm
i18n.scm
inferior.scm time-machine: Make target commit check cheaper. 2023-11-05 23:23:23 +01:00
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 licenses: Add Arphic-1999 (Aprhic Public License). 2023-08-01 19:40:19 +08:00
lint.scm lint: Speed up the formatting linter. 2023-11-05 17:51:38 +00:00
man-db.scm
memoization.scm
modules.scm
monad-repl.scm monad-repl: Add REPL commands to inspect package arguments. 2023-12-04 22:26:38 +01:00
monads.scm
nar.scm
narinfo.scm
openpgp.scm
packages.scm packages: Honor target system for the inputs to ‘patch-and-repack’. 2023-12-03 23:55:08 +01:00
pki.scm
platform.scm guix: platform: Add platform-rust-target. 2023-12-11 13:50:48 +02:00
profiles.scm gnu: Use ‘libc-utf8-locales-for-target’. 2023-12-02 12:25:45 +01:00
profiling.scm
progress.scm tests: Import (guix build syscalls) when (guix build store-copy) is used. 2023-11-25 16:29:25 +01:00
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 search-paths: Add GCC search paths. 2023-10-04 23:30:41 -04:00
self.scm gnu: Use ‘libc-utf8-locales-for-target’. 2023-12-02 12:25:45 +01:00
serialization.scm
sets.scm
ssh.scm ssh: Also print the user when authentication fails. 2023-08-22 11:17:53 +02:00
status.scm
store.scm daemon: Implement ‘substitute-urls’ RPC. 2023-12-11 23:18:53 +01:00
substitutes.scm
svn-download.scm
swh.scm
tests.scm
transformations.scm transformations: Add support for zig. 2023-12-03 09:58:34 +02:00
ui.scm ui: It’s 2024 now! 2024-01-05 17:27:21 +01:00
upstream.scm upstream: Compare symbols to symbols. 2023-09-13 22:17:21 +02:00
utils.scm gnu: Add target-x32?. 2024-01-04 21:48:17 +02:00
workers.scm