git support
- May 19, 2023
-
-
Levente Polyak authored
This avoids potentially unreproducible packages when they were created using unofficial tooling. In the future we could also check for the actual tooling version. Signed-off-by:
Levente Polyak <anthraxx@archlinux.org>
-
Levente Polyak authored
Automatic path conversion is limited to GitLab API v4 and will be removed in the future. It's expected that the caller does the path conversion on caller side and only passes a valid path to the API within its limitations. Hence convert project names to valid paths: 1. replace single '+' between word boundaries with '-' 2. replace any other '+' with literal 'plus' 3. replace any special chars other than '_', '-' and '.' with '-' Signed-off-by:
Levente Polyak <anthraxx@archlinux.org>
Verifiedf718dafa -
Levente Polyak authoredVerified10096fe5
-
Levente Polyak authoredVerified03b8c5fd
-
Levente Polyak authored
The git tag derived from the pkgver is a lossy conversion, lets save the original full pkgver as well so we have a lossless original reference to it.
Verified48b29e07 -
Levente Polyak authoredVerified0ee9b8ea
-
Levente Polyak authored
We already commit implicitly during remove and update function state mutations. Do the same for db-move operations and provide a uniform behavior across this family of functions.
Verified5dd4db25 -
Levente Polyak authored
This way we have better control and isolation of the keyring between dbscripts internal sub command env and test suite gpg handling. Export the GNUPGHOME variable inside the db-functions prolog to ensure any gpg or git operations requiring a keyring operate on the one defined in the config. However doing it this way will not influence any custom calls in the test suite except if explicitly desired. Furthermore remove all explicit passes of GNUPGHOME to subcommands.
Verifiedb870f023 -
Levente Polyak authored
We never want to release a package that has inconsistency between the used PKGBUILD and the tagged PKGBUILD.
Verified258708ad -
Levente Polyak authored
This should be a convenient way to automatically retrieve the author informations for the state repository changes without the need of each individual user to setup yet another author file. This is a central service, hence we can easily deploy and generate the authors file alongside the actual unix user and group permissions rolled out by ansible.
Verified1f595788
-
- Jan 17, 2023
-
-
Levente Polyak authored
It is discouraged to have every command in an own container layer if there is no benefit in having them separate. For example it makes sense to have a static block before having a dynamic block like system updates hence the first layer will mostly never be rebuild. But that all isn't much required here, lets keep it simple by collapsing the polluted amount of layers into the minimum set.
Verified09b1142d -
Levente Polyak authored
Pass along the correct expected pkgver to export an archive from. This fixes the dbscripts test suite for sourceballs tests.
Verified2689b8d6 -
Levente Polyak authored
This helps to avoid interfering on by accident with expectations of dbscripts by setting environment varialbes that Git uses to change its default setting or behavior.
Verifiedbc685a92 -
Levente Polyak authored
This commit mostly helps to ensure we act in similar paradigms on the state repository as db-move and db-update does. We may want to revisit this approach though, as this concept can equally lead to inconsistencies between the actual database and the state repo.
Verified688566f4 -
Levente Polyak authored
We already commit implicitly during move and update function state mutations. Do the same for db-remove operations and provide a uniform behavior across this family of functions.
Verified76c98a5d -
Levente Polyak authored
We can safely call with `--force` to force renaming or moving of a file even if the target exists. This is a common case whenever we want to move packages between repositories which will result in overwriting an old stable version from testing. This commit makes a bunch of new tests cases pass and also makes logically a lot of sense to do.
Verifiedc0df1e6c -
Levente Polyak authored
It's a lot more convenient for operation if we do not require pre existing state assumptions but rather ensure we initialize whatever path we require during execution of the vcs state mutation functions. Any information we want to retrieve from the history will also not require any paths to exist indefinitely, but instead we follow paths in the history no matter when they appear or disappear in between.
Verified6a453b9a -
Levente Polyak authored
We do not serve any packages as dedicated architecture repository in pacman, but that doesn't mean we must change the current behavior of dbscripts. A lot of places are build in a way to expect any packages to actually have a dedicated any entry of the matching repository. Lets not try to change this behavior while migrating to git as we already face too much possibility for issues. Hence map any packages to any when changing the state repository.
Verifiede3ee9bb1 -
Levente Polyak authored
We rely on some safety guards now, as we are doing ACL in code instead of purely relying on filesystem access. Hence lets try to curate the PATH which in return will protect against easily smuggling in maliciously behaving executables we may call during execution.
Verifieded267105 -
Levente Polyak authoredVerifiedc9d1cb1b
-
Levente Polyak authored
We do not serve any packages as dedicated architecture repository in pacman, but that doesn't mean we must change the current behavior of dbscripts. A lot of places are build in a way to expect any packages to actually have a dedicated any entry of the matching repository. Lets not try to change this behavior while migrating to git as we already face too much possibility for issues. Hence map any packages to any when changing the state repository.
Verified7279b75b -
Levente Polyak authored
Only specifying the signature and having gpg rely on assumptions about what to check the signature against is a very bad practice leading to ambiguous possibilities if the signature contains data itself. Make sure that we do not call gpg verification like such by passing both, the signature as well as the actual file of the data to check against.
Verified7fd4275c -
Levente Polyak authored
This fixes several issue with the test suite and also exiting early in case we do not find a matching entry in the current state repository.
Verifiedfe5a36e2 -
Levente Polyak authored
Even with depth=1 we are better of to simply keep caches of the clones. Introduce a new `config` location to store all repositories inside. Whenever the checkout function is called, we now either clone the repository or fetch the latest deltas. Functions that require the actual PKGBUILD are not operating purely in memory and with virtual file handles instead of dealing with actual file checkouts.
Verified6f261116
-
- Dec 11, 2022
-
-
Levente Polyak authored
This makes it more convenient to finally run tests locally via a container instead of natively on an isolated dev environment
Verified8e9a8328 -
Levente Polyak authored
Introduce an associate array that can be set in the config to define the permissions per group. Declare permission sub sets so we can easier puzzle together the actual permissions per group without duplicating all of the repos in the declaration. Furthermore we specifically use `packager` and `junior-packager` instead of `tu` to reflect the rename on system group level. Reflect second batch of changes related to RFC-14 (Merge package repositories). rfcs!14
Verified715185e4 -
Levente Polyak authored
Reflect first batch of changes related to RFC-14 (Merge package repositories). rfcs!14
Verified655817c5 -
Levente Polyak authored
For multi arch setups when handling any packages, we can't call `getpkgbase` or `getpkgver` on the original `$pkg` location, as they get moved along to a different location during looping through the arches. This means we only have a single shot on `any` packages to collect all the metadata that requires the actual package file at `$pkg` to exist. Before this commit, the code only worked by sheer luck, as is_debug_package will call `getpkgbase` via a subshell, which will silently fail horribly as its run in a subshell. Fix this unexpected behavior by only querying is_debug_package when the actual file still exists. Any calls to is_debug_package with a none existing path are now considered a fatal error. Related-to: db-update: fix retrieving metadata from any-packages for multi arch
Verified9c7a4295 -
Levente Polyak authored
For any-packages on a multi arch repo setup, we can't call `getpkgbase` or `getpkgver` on the original `$pkg` location, as they get moved to a different location during per arch repo target handling. Instead of trying to refactor all the behavior of doing so, lets instead choose to retrieve this information once as first action and only access the cached metadata afterwards. Before this commit, the cache has only been populated as last action of the update process, which will fail horribly for the second set of packages targeting another architecture's repo.
Verified1ba72ba5 -
Levente Polyak authored
The way a lot of test cases are build collides with the way our git packaging works. We tag every release in the API, which will fail for some of those tests setups as the tag already exists. Fix this issue by only trying to tag a version if the revision we try to tag actually differs from an existing tag. This allows to preserve the easy going test cases as the functional ideology of the test case won't be compromised by this test check.
Verified80d1f025 -
Levente Polyak authoredVerified13bd810d
-
Levente Polyak authoredVerified5e722530
-
Signed-off-by:
Morten Linderud <morten@linderud.pw>
Verified45a738b3 -
Signed-off-by:
Morten Linderud <morten@linderud.pw>
Verifieda1b4f0d9 -
When dealing with multiple architectures the upstream repo is going to be checked out when we reach this. Ignore the clone if it does. Signed-off-by:
Morten Linderud <morten@linderud.pw>
Verifiedeac1843b -
We are faking a proper hashmap because we need more information then simply the pkgfile name. Signed-off-by:
Morten Linderud <morten@linderud.pw>
Verifieddf613422 -
Signed-off-by:
Morten Linderud <morten@linderud.pw> Signed-off-by:
Levente Polyak <levente@leventepolyak.net>
Verified19b512d7 -
Signed-off-by:
Morten Linderud <morten@linderud.pw>
Verifiedc3b9b5d0 -
Signed-off-by:
Morten Linderud <morten@linderud.pw>
Verified7f72eaf1 -
Signed-off-by:
Morten Linderud <morten@linderud.pw>
Verifiedd769291f -
Signed-off-by:
Morten Linderud <morten@linderud.pw>
Verifiedab971194 -
Verified110b56f4
-
Signed-off-by:
Morten Linderud <morten@linderud.pw>
Verified46d07490 -
Signed-off-by:
Morten Linderud <morten@linderud.pw>
Verified3c6cd4a6
-