]> _ Git - alire.git/commit
Fix `pin` command to preserve dependencies across pin/unpin (#406)
authorAlejandro R Mosteo <amosteo@unizar.es>
Fri, 15 May 2020 16:40:37 +0000 (18:40 +0200)
committerGitHub <noreply@github.com>
Fri, 15 May 2020 16:40:37 +0000 (18:40 +0200)
commit1176dd2e385a3d2b3f5be69ce3817695f548358e
tree0ee260c627f6ffd59acd92515b836d49155b42f6
parent0a2e435aead1b51acfd07aded617a6ce62b9573c
Fix `pin` command to preserve dependencies across pin/unpin (#406)

* Privatize the Alire.Solutions.Solution type

* Add internal `pinned` attribute to releases

* Pin listing

* Implement proper pin/unpin for regular releases

The solver is enhanced to reuse pins from a former solution

* Fixes for testsuite, new tests (pin all, unpin)

Fix bug about using relative paths for index configuration in the python setup.

* Rename `Replacing` --> `With_Pin`

* Fix: unpinned releases where being kept in solution

* Test that pin holds across `alr update`

* Test that a downgrading pin actually works

* Test: pinned release stays on dependency removal

* Enhance pinning status line with version changes

* Refactor pinning logic from Alr into Alire
50 files changed:
deps/aaa
deps/semantic_versioning
src/alire/alire-conditional.ads
src/alire/alire-pinning.adb [new file with mode: 0644]
src/alire/alire-pinning.ads [new file with mode: 0644]
src/alire/alire-releases.adb
src/alire/alire-releases.ads
src/alire/alire-solutions-diffs.adb
src/alire/alire-solutions-diffs.ads
src/alire/alire-solutions.adb
src/alire/alire-solutions.ads
src/alire/alire-solver.adb
src/alire/alire-solver.ads
src/alire/alire-toml_keys.ads
src/alr/alr-checkout.adb
src/alr/alr-commands-get.adb
src/alr/alr-commands-pin.adb
src/alr/alr-commands-pin.ads
src/alr/alr-commands-search.adb
src/alr/alr-commands-show.adb
src/alr/alr-commands-test.adb
src/alr/alr-commands-update.adb
src/alr/alr-commands-update.ads
src/alr/alr-commands-withing.adb
src/alr/alr-commands.adb
testsuite/drivers/alr.py
testsuite/drivers/helpers.py
testsuite/tests/pin/all/my_index/index/he/hello1.toml [new file with mode: 0644]
testsuite/tests/pin/all/my_index/index/he/hello2.toml [new file with mode: 0644]
testsuite/tests/pin/all/my_index/index/index.toml [new file with mode: 0644]
testsuite/tests/pin/all/test.py [new file with mode: 0644]
testsuite/tests/pin/all/test.yaml [new file with mode: 0644]
testsuite/tests/pin/downgrade/my_index/index/index.toml [new file with mode: 0644]
testsuite/tests/pin/downgrade/my_index/index/li/libchild.toml [new file with mode: 0644]
testsuite/tests/pin/downgrade/my_index/index/li/libparent.toml [new file with mode: 0644]
testsuite/tests/pin/downgrade/test.py [new file with mode: 0644]
testsuite/tests/pin/downgrade/test.yaml [new file with mode: 0644]
testsuite/tests/pin/post-update/my_index/index/index.toml [new file with mode: 0644]
testsuite/tests/pin/post-update/my_index/index/li/libchild.toml [new file with mode: 0644]
testsuite/tests/pin/post-update/my_index/index/li/libparent.toml [new file with mode: 0644]
testsuite/tests/pin/post-update/test.py [new file with mode: 0644]
testsuite/tests/pin/post-update/test.yaml [new file with mode: 0644]
testsuite/tests/pin/unneeded-held/my_index/index/index.toml [new file with mode: 0644]
testsuite/tests/pin/unneeded-held/my_index/index/li/libchild.toml [new file with mode: 0644]
testsuite/tests/pin/unneeded-held/my_index/index/li/libparent.toml [new file with mode: 0644]
testsuite/tests/pin/unneeded-held/test.py [new file with mode: 0644]
testsuite/tests/pin/unneeded-held/test.yaml [new file with mode: 0644]
testsuite/tests/pin/unpin/test.py [new file with mode: 0644]
testsuite/tests/pin/unpin/test.yaml [new file with mode: 0644]
testsuite/tests/workflows/init-with-pin/test.py