Dodanie gałęzi testowych do moich repozytoriów dystrybucji
Podczas testowania różnych gałęzi repozytorium guix zrozumiałem, że konieczne jest dodanie gałęzi testowych do repozytoriów używanych przeze mnie do rekonfiguracji systemu.
Przyczyną jest to, że niektóre testowane zmiany są niekompatybilne z bieżącą implementacją.
Implementacja tych testowanych zmian w odrębnej gałęzi jest konieczna aby nie zakłocać pracy pozostałych systemów.
Alias test-system ładuje lokalne struktury katalogów kopii repozytoriów.
Pozwala to na ładowanie gałęzi testowych repozytoriów bez modyfikacji tego aliasu.
$ alias test-system
alias test-system='guix pull --fallback --allow-downgrades --disable-authentication --url=file:///home/marek/Szablony/guix --branch=test ; sudo guix system reconfigure -e "(@ (deployment systems rakan) operating-system*)" --fallback --allow-downgrades -L ~/Szablony/deployment -L ~/Szablony/guix-rust-past-crates -L ~/Szablony/nonguix -L ~/Szablony/sovereign'
ZROBIONE
W pierwszej kolejności dodaję gałąź testową do sovereign.
W obecnej sytuacji to repozytorium jest niekompatybilne z testowanym zestawem zmian.
Obserwując bieżący przebieg wykonania procesu test-system dochodzę do wniosku, że guix pull w tym aliasie powinien odnosić się do lokalnych kopii wszystkich zaciąganych repozytoriów.
Niestety implementacja takiego rozwiązania nie jest trywialna i zostawiam ją na później.
Wypycham gałąź test do repozytorium kanonicznego.
$ guix pull --help
Usage: guix pull [OPTION]...
Download and deploy the latest version of Guix.
-C, --channels=FILE deploy the channels defined in FILE
-q, --no-channel-files
inhibit loading of user and system 'channels.scm'
--url=URL download "guix" channel from the Git repository at URL
--commit=COMMIT download the specified "guix" channel COMMIT
--branch=BRANCH download the tip of the specified "guix" channel BRANCH
--allow-downgrades allow downgrades to earlier channel revisions
--disable-authentication
disable channel authentication
--no-check-certificate
do not validate the certificate of HTTPS servers
-N, --news display news compared to the previous generation
-l, --list-generations[=PATTERN]
list generations matching PATTERN
--details show details when listing generations
--roll-back roll back to the previous generation
-d, --delete-generations[=PATTERN]
delete generations matching PATTERN
-S, --switch-generation=PATTERN
switch to a generation matching PATTERN
-p, --profile=PROFILE use PROFILE instead of ~/.config/guix/current
-v, --verbosity=LEVEL use the given verbosity LEVEL
--bootstrap use the bootstrap Guile to build the new Guix
-L, --load-path=DIR prepend DIR to the package module search path
-K, --keep-failed keep build tree of failed builds
-k, --keep-going keep going when some of the derivations fail
-n, --dry-run do not build the derivations
--fallback fall back to building when the substituter fails
--no-substitutes build instead of resorting to pre-built substitutes
--substitute-urls=URLS
fetch substitute from URLS if they are authorized
--no-grafts do not graft packages
--no-offload do not attempt to offload builds
--max-silent-time=SECONDS
mark the build as failed after SECONDS of silence
--timeout=SECONDS mark the build as failed after SECONDS of activity
--rounds=N build N times in a row to detect non-determinism
-c, --cores=N allow the use of up to N CPU cores for the build
-M, --max-jobs=N allow at most N build jobs
--debug=LEVEL produce debugging output at LEVEL
--list-systems list available systems
-s, --system=SYSTEM attempt to build for SYSTEM--e.g., "i686-linux"
-h, --help display this help and exit
-V, --version wyświetl informację na temat wersji i zakończ
$ git checkout -b test
Przełączono na nową gałąź „test”
$ git push
Enter passphrase for key '/home/marek/.ssh/id_rsa':
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
To ssh://git.marekpasnikowski.pl:23/sovereign
* [new branch] test -> test
branch 'test' set up to track 'origin/test'.
W analogiczny sposób dodaję gałąź test do kanonicznego repozytorium deployment.
$ git checkout -b test
Przełączono na nową gałąź „test”
$ git push
Enter passphrase for key '/home/marek/.ssh/id_rsa':
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
To ssh://marekpasnikowski.pl:23/deployment.git
* [new branch] test -> test
branch 'test' set up to track 'origin/test'.
DO ZROBIENIA
Spisując wyniki poleceń git push zauważam, że kopie repozytoriów są związane z dwiema różnymi domenami.
Powinienem to wykorzystać do poprawienia konfiguracji serwera stron internetowych.