]> _ Git - alire.git/commit
Support for publishing of crates in subdirectories of repositories (#939)
authorAlejandro R Mosteo <amosteo@unizar.es>
Fri, 4 Mar 2022 12:01:12 +0000 (13:01 +0100)
committerGitHub <noreply@github.com>
Fri, 4 Mar 2022 12:01:12 +0000 (13:01 +0100)
commit26c5c286fd9a865ad0101710cc34e9b9ae0852c0
treeabcb4cf2cf6a0962fae6acbe243522d08dee0a10
parent32126802938244de62c307f8c5e8768d1042402e
Support for publishing of crates in subdirectories of repositories (#939)

* Added require information to Origins

* Unique folder name for monorepos

* Use subdir all around, but for publishing

* Alire.Publish: detect and publish nested crates

* Alire.Roots: Properly deploy/use nested crates

* Test for basic publishing and using of monorepo

* Test for nesting beyond the top level

* Test no subdir accepted for non-repo origins

* user-changes.md: new monorepo feature

* Updates to various documentations

* Create info file for monorepo releases

This is an empty file in the dependencies folder that helps curious users to
understand where a particular release is coming from. For example:

dependencies
 +-- monorepo_adef1234
      +-- mycrate
 +-- mycrate_1.0.0_in_monorepo_adef1234

* Self-review fixes

* Fixes for Windows

Windows may return paths with either long or short names which complicate a bit
comparing two directories as we do to detect nested crates. To us, the problem
esteems from git returning different names than the Ada std lib.

* Alire.Releases: fix obsolete header box

Co-authored-by: Jesper Quorning <jesper.quorning@gmail.com>
* Test using crates from different monorepo commits

Co-authored-by: Jesper Quorning <jesper.quorning@gmail.com>
39 files changed:
.github/workflows/ci-toolchain.yml
doc/catalog-format-spec.md
doc/publishing.md
doc/user-changes.md
src/alire/alire-directories.adb
src/alire/alire-directories.ads
src/alire/alire-origins-deployers.adb
src/alire/alire-origins.adb
src/alire/alire-origins.ads
src/alire/alire-publish.adb
src/alire/alire-publish.ads
src/alire/alire-releases.adb
src/alire/alire-releases.ads
src/alire/alire-roots.adb
src/alire/alire-roots.ads
src/alire/alire-shared.adb
src/alire/alire-uri.ads
src/alire/alire-vcss-git.adb
src/alire/alire-vcss-git.ads
src/alire/alire-vfs.adb
src/alire/alire-vfs.ads
src/alire/alire.ads
src/alire/os_windows/alire-check_absolute_path.adb
src/alr/alr-commands-get.adb
src/alr/alr-commands-test.adb
testsuite/drivers/alr.py
testsuite/drivers/helpers.py
testsuite/tests/monorepo/basic/my_index/index/index.toml [new file with mode: 0644]
testsuite/tests/monorepo/basic/test.py [new file with mode: 0644]
testsuite/tests/monorepo/basic/test.yaml [new file with mode: 0644]
testsuite/tests/monorepo/doubly-nested/my_index/index/index.toml [new file with mode: 0644]
testsuite/tests/monorepo/doubly-nested/test.py [new file with mode: 0644]
testsuite/tests/monorepo/doubly-nested/test.yaml [new file with mode: 0644]
testsuite/tests/monorepo/multi-commit/my_index/index/index.toml [new file with mode: 0644]
testsuite/tests/monorepo/multi-commit/test.py [new file with mode: 0644]
testsuite/tests/monorepo/multi-commit/test.yaml [new file with mode: 0644]
testsuite/tests/monorepo/subdir-in-tar/my_index/index/index.toml [new file with mode: 0644]
testsuite/tests/monorepo/subdir-in-tar/test.py [new file with mode: 0644]
testsuite/tests/monorepo/subdir-in-tar/test.yaml [new file with mode: 0644]