Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml25
-rw-r--r--Makefile20
-rw-r--r--README.md1
-rw-r--r--test/case/version-setup.bats127
-rw-r--r--test/fixture/version/setup/.gitignore1
-rw-r--r--test/fixture/version/setup/codeberg-tarball/PKGBUILD18
-rw-r--r--test/fixture/version/setup/codeberg-tarball/nvchecker.assert.toml3
-rw-r--r--test/fixture/version/setup/cpan.org/PKGBUILD14
-rw-r--r--test/fixture/version/setup/cpan.org/nvchecker.assert.toml3
-rw-r--r--test/fixture/version/setup/crates.io/PKGBUILD17
-rw-r--r--test/fixture/version/setup/crates.io/nvchecker.assert.toml3
-rw-r--r--test/fixture/version/setup/files.pythonhosted.org/PKGBUILD15
-rw-r--r--test/fixture/version/setup/files.pythonhosted.org/nvchecker.assert.toml3
-rw-r--r--test/fixture/version/setup/git-custom/PKGBUILD14
-rw-r--r--test/fixture/version/setup/git-custom/nvchecker.assert.toml3
-rw-r--r--test/fixture/version/setup/github-git-as-platform/PKGBUILD17
-rw-r--r--test/fixture/version/setup/github-git-as-platform/nvchecker.assert.toml4
-rw-r--r--test/fixture/version/setup/github-git-v-prefix-as-platform/PKGBUILD17
-rw-r--r--test/fixture/version/setup/github-git-v-prefix-as-platform/nvchecker.assert.toml5
-rw-r--r--test/fixture/version/setup/github-git-v-prefix/PKGBUILD17
-rw-r--r--test/fixture/version/setup/github-git-v-prefix/nvchecker.assert.toml4
-rw-r--r--test/fixture/version/setup/github-git/PKGBUILD17
-rw-r--r--test/fixture/version/setup/github-git/nvchecker.assert.toml3
-rw-r--r--test/fixture/version/setup/github-tarball-as-platform/PKGBUILD29
-rw-r--r--test/fixture/version/setup/github-tarball-as-platform/nvchecker.assert.toml4
-rw-r--r--test/fixture/version/setup/github-tarball/PKGBUILD25
-rw-r--r--test/fixture/version/setup/github-tarball/nvchecker.assert.toml3
-rw-r--r--test/fixture/version/setup/gitlab-archlinux-tarball-as-platform/PKGBUILD57
-rw-r--r--test/fixture/version/setup/gitlab-archlinux-tarball-as-platform/nvchecker.assert.toml6
-rw-r--r--test/fixture/version/setup/gitlab-archlinux-tarball/PKGBUILD57
-rw-r--r--test/fixture/version/setup/gitlab-archlinux-tarball/nvchecker.assert.toml4
-rw-r--r--test/fixture/version/setup/gitlab-git-multi-group-as-platform/PKGBUILD30
-rw-r--r--test/fixture/version/setup/gitlab-git-multi-group-as-platform/nvchecker.assert.toml4
-rw-r--r--test/fixture/version/setup/gitlab-git-multi-group/PKGBUILD30
-rw-r--r--test/fixture/version/setup/gitlab-git-multi-group/nvchecker.assert.toml3
-rw-r--r--test/fixture/version/setup/gitlab-tarball-multi-group-as-platform/PKGBUILD24
-rw-r--r--test/fixture/version/setup/gitlab-tarball-multi-group-as-platform/nvchecker.assert.toml4
-rw-r--r--test/fixture/version/setup/gitlab-tarball-multi-group/PKGBUILD24
-rw-r--r--test/fixture/version/setup/gitlab-tarball-multi-group/nvchecker.assert.toml3
-rw-r--r--test/fixture/version/setup/hackage-tarball/PKGBUILD16
-rw-r--r--test/fixture/version/setup/hackage-tarball/nvchecker.assert.toml3
-rw-r--r--test/fixture/version/setup/opt-no-force/PKGBUILD57
-rw-r--r--test/fixture/version/setup/opt-url/PKGBUILD25
-rw-r--r--test/fixture/version/setup/opt-url/nvchecker.assert.toml3
-rw-r--r--test/fixture/version/setup/pkgbase-with-dot/PKGBUILD27
-rw-r--r--test/fixture/version/setup/pkgbase-with-dot/nvchecker.assert.toml3
-rw-r--r--test/fixture/version/setup/pypi.io/PKGBUILD17
-rw-r--r--test/fixture/version/setup/pypi.io/nvchecker.assert.toml3
-rw-r--r--test/fixture/version/setup/pypi.org/PKGBUILD23
-rw-r--r--test/fixture/version/setup/pypi.org/nvchecker.assert.toml3
-rw-r--r--test/fixture/version/setup/registry.npmjs.org/PKGBUILD16
-rw-r--r--test/fixture/version/setup/registry.npmjs.org/nvchecker.assert.toml3
-rw-r--r--test/fixture/version/setup/rubygems.org/PKGBUILD16
-rw-r--r--test/fixture/version/setup/rubygems.org/nvchecker.assert.toml3
-rw-r--r--test/fixture/version/setup/static.crates.io/PKGBUILD16
-rw-r--r--test/fixture/version/setup/static.crates.io/nvchecker.assert.toml3
56 files changed, 892 insertions, 3 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1a86515..960f5f0 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -12,10 +12,33 @@ build:
- make PREFIX=/usr
- make PREFIX=/usr DESTDIR=build install
-check:
+lint:
stage: test
needs: []
script:
- pacman -Syu --noconfirm m4 make openssh subversion rsync arch-install-scripts git bzr mercurial diffutils asciidoctor shellcheck
- make check || true
- SHELLCHECK_OPTS="-S error" make check
+
+test:
+ stage: test
+ needs: []
+ script:
+ - pacman -Syu --noconfirm m4 make openssh subversion rsync arch-install-scripts git bzr mercurial diffutils coreutils asciidoctor shellcheck nvchecker bats
+ - make test BATS_EXTRA_ARGS='--formatter junit'
+ artifacts:
+ reports:
+ junit: build/coverage/bats-report.xml
+
+coverage:
+ stage: test
+ needs: []
+ script:
+ - pacman -Syu --noconfirm m4 make openssh subversion rsync arch-install-scripts git bzr mercurial diffutils coreutils asciidoctor shellcheck nvchecker bats kcov jq
+ - make coverage
+ coverage: '/Percent covered\s+\d+\.\d+/'
+ artifacts:
+ reports:
+ coverage_report:
+ coverage_format: cobertura
+ path: build/coverage/bats.*/cobertura.xml
diff --git a/Makefile b/Makefile
index 708bec7..b3e32a0 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-SHELL=/bin/bash
+SHELL=/bin/bash -o pipefail
V=1.1.1
BUILDTOOLVER ?= $(V)
@@ -52,6 +52,13 @@ ARCHBUILD_LINKS = \
COMPLETIONS = $(addprefix $(BUILDDIR)/,$(patsubst %.in,%,$(wildcard contrib/completion/*/*)))
+CASES ?= test/case
+JOBS ?= $(shell nproc)
+BATS_EXTRA_ARGS ?=
+BATS_ARGS ?= --jobs $(JOBS) $(BATS_EXTRA_ARGS) --verbose-run
+COVERAGE_DIR ?= $(BUILDDIR)/coverage
+
+
all: binprogs library conf completion man
binprogs: $(BINPROGS)
library: $(LIBRARY)
@@ -168,8 +175,17 @@ dist:
git archive --format=tar --prefix=devtools-$(V)/ v$(V) | gzip > devtools-$(V).tar.gz
gpg --detach-sign --use-agent devtools-$(V).tar.gz
+test: binprogs library conf completion man
+ @mkdir -p $(COVERAGE_DIR)
+ bats $(BATS_ARGS) $(CASES) | tee $(COVERAGE_DIR)/bats-report.xml
+
+coverage: binprogs library conf completion man
+ kcov --include-path=src $(COVERAGE_DIR) bats $(BATS_ARGS) $(CASES)
+ jq -r '. | ["Percent covered", .percent_covered], ["Covered lines", .covered_lines], ["Total lines", .total_lines], ["Percent low", .percent_low], ["Percent high", .percent_high] | @tsv' \
+ $(COVERAGE_DIR)/bats.*/coverage.json
+
check: $(BINPROGS_SRC) $(LIBRARY_SRC) contrib/completion/bash/devtools.in config/makepkg/x86_64.conf contrib/makepkg/PKGBUILD.proto
shellcheck $^
-.PHONY: all binprogs library completion conf man clean install uninstall tag dist upload check
+.PHONY: all binprogs library completion conf man clean install uninstall tag dist upload test coverage check
.DELETE_ON_ERROR:
diff --git a/README.md b/README.md
index 6e4f2a2..6b6b372 100644
--- a/README.md
+++ b/README.md
@@ -98,6 +98,7 @@ Component: pkgctl db remove
- asciidoctor
- make
- shellcheck
+- bats
## License
diff --git a/test/case/version-setup.bats b/test/case/version-setup.bats
new file mode 100644
index 0000000..fd50a87
--- /dev/null
+++ b/test/case/version-setup.bats
@@ -0,0 +1,127 @@
+bats_require_minimum_version 1.5.0
+
+export _DEVTOOLS_LIBRARY_DIR="${PWD}/src"
+
+_pkgctl_version_setup() {
+ source ${_DEVTOOLS_LIBRARY_DIR}/lib/version/setup.sh
+ pkgctl_version_setup "$@"
+}
+
+setup_and_check_config() {
+ pushd "test/fixture/version/setup/$1"
+ shift
+ _pkgctl_version_setup --force --no-check "$@"
+ diff .nvchecker.toml nvchecker.assert.toml
+ popd
+}
+
+@test "opt-no-force" {
+ pushd test/fixture/version/setup/opt-no-force
+ touch .nvchecker.toml
+ run ! _pkgctl_version_setup --no-check "$@"
+ popd
+}
+
+@test "opt-url" {
+ pushd test/fixture/version/setup/opt-url
+ _pkgctl_version_setup --no-check --force --url \
+ "https://crates.io/api/v1/crates/shotgun/1.0/download" "$@"
+ diff .nvchecker.toml nvchecker.assert.toml
+ popd
+}
+
+@test "codeberg-tarball" {
+ setup_and_check_config codeberg-tarball
+}
+
+@test "files.pythonhosted.org" {
+ setup_and_check_config files.pythonhosted.org
+}
+
+@test "github-git" {
+ setup_and_check_config github-git
+}
+
+@test "github-git-as-platform" {
+ setup_and_check_config github-git-as-platform --prefer-platform-api
+}
+
+@test "github-git-v-prefix" {
+ setup_and_check_config github-git-v-prefix
+}
+
+@test "github-git-v-prefix-as-platform" {
+ setup_and_check_config github-git-v-prefix-as-platform --prefer-platform-api
+}
+
+@test "github-tarball" {
+ setup_and_check_config github-tarball
+}
+
+@test "github-tarball-as-platform" {
+ setup_and_check_config github-tarball-as-platform --prefer-platform-api
+}
+
+@test "gitlab-archlinux-tarball" {
+ setup_and_check_config gitlab-archlinux-tarball
+}
+
+@test "gitlab-archlinux-tarball-as-platform" {
+ setup_and_check_config gitlab-archlinux-tarball-as-platform --prefer-platform-api
+}
+
+@test "gitlab-git-multi-group" {
+ setup_and_check_config gitlab-git-multi-group
+}
+
+@test "gitlab-git-multi-group-as-platform" {
+ setup_and_check_config gitlab-git-multi-group-as-platform --prefer-platform-api
+}
+
+@test "gitlab-tarball-multi-group" {
+ setup_and_check_config gitlab-tarball-multi-group
+}
+
+@test "gitlab-tarball-multi-group-as-platform" {
+ setup_and_check_config gitlab-tarball-multi-group-as-platform --prefer-platform-api
+}
+
+@test "hackage-tarball" {
+ setup_and_check_config hackage-tarball
+}
+
+@test "pkgbase-with-dot" {
+ setup_and_check_config pkgbase-with-dot
+}
+
+@test "pypi.io" {
+ setup_and_check_config pypi.io
+}
+
+@test "pypi.org" {
+ setup_and_check_config pypi.org
+}
+
+@test "registry.npmjs.org" {
+ setup_and_check_config registry.npmjs.org
+}
+
+@test "git-custom" {
+ setup_and_check_config git-custom
+}
+
+@test "rubygems.org" {
+ setup_and_check_config rubygems.org
+}
+
+@test "cpan.org" {
+ setup_and_check_config cpan.org
+}
+
+@test "crates.io" {
+ setup_and_check_config crates.io
+}
+
+@test "static.crates.io" {
+ setup_and_check_config static.crates.io
+}
diff --git a/test/fixture/version/setup/.gitignore b/test/fixture/version/setup/.gitignore
new file mode 100644
index 0000000..fa5ad32
--- /dev/null
+++ b/test/fixture/version/setup/.gitignore
@@ -0,0 +1 @@
+*/.nvchecker.toml
diff --git a/test/fixture/version/setup/codeberg-tarball/PKGBUILD b/test/fixture/version/setup/codeberg-tarball/PKGBUILD
new file mode 100644
index 0000000..0f5853c
--- /dev/null
+++ b/test/fixture/version/setup/codeberg-tarball/PKGBUILD
@@ -0,0 +1,18 @@
+pkgname=xmobar
+pkgver=1.0
+pkgrel=1
+pkgdesc=''
+url='https://codeberg.org/xmobar/xmobar'
+arch=(any)
+source=(
+ dynamic-compilation.patch
+ ${pkgname}-${pkgver}.tar.gz::https://codeberg.org/xmobar/xmobar/archive/${pkgver}.tar.gz
+)
+sha512sums=('319f3a77d500c505826ab487e4011bb1a22b8cae70c17b964574a09a6488a864a1aaabb6a298468d121110dd485f179bc712a5106e49eb8ae638e02b5115190a'
+ '15db3e27d1ff957e26e706e4c67cec6e43d89f5a39cd6d81ddb5ae8426e32d938494fbba39fa322461d992a95d2e522c10b186a1ca2c5c3e996f944b6e6ef7c4')
+
+package() {
+ :
+}
+
+# vim: ts=2 sw=2 et:
diff --git a/test/fixture/version/setup/codeberg-tarball/nvchecker.assert.toml b/test/fixture/version/setup/codeberg-tarball/nvchecker.assert.toml
new file mode 100644
index 0000000..773bcd0
--- /dev/null
+++ b/test/fixture/version/setup/codeberg-tarball/nvchecker.assert.toml
@@ -0,0 +1,3 @@
+[xmobar]
+source = "git"
+git = "https://codeberg.org/xmobar/xmobar.git"
diff --git a/test/fixture/version/setup/cpan.org/PKGBUILD b/test/fixture/version/setup/cpan.org/PKGBUILD
new file mode 100644
index 0000000..d972d86
--- /dev/null
+++ b/test/fixture/version/setup/cpan.org/PKGBUILD
@@ -0,0 +1,14 @@
+pkgname=perl-locale-po
+pkgver=0.3.5
+pkgrel=1
+pkgdesc=''
+arch=(any)
+url='http://polyglot.rubyforge.org/'
+source=("https://search.cpan.org/CPAN/authors/id/C/CO/COSIMO/Locale-PO-$pkgver.tar.gz")
+sha256sums=('59d66ef5e3c166431c39cb8b7c1d02af419051352f27912f6a43981b3def16af')
+
+package() {
+ :
+}
+
+# vim: ts=2 sw=2 et:
diff --git a/test/fixture/version/setup/cpan.org/nvchecker.assert.toml b/test/fixture/version/setup/cpan.org/nvchecker.assert.toml
new file mode 100644
index 0000000..d2ca368
--- /dev/null
+++ b/test/fixture/version/setup/cpan.org/nvchecker.assert.toml
@@ -0,0 +1,3 @@
+[perl-locale-po]
+source = "cpan"
+cpan = "Locale-PO"
diff --git a/test/fixture/version/setup/crates.io/PKGBUILD b/test/fixture/version/setup/crates.io/PKGBUILD
new file mode 100644
index 0000000..c2ed37f
--- /dev/null
+++ b/test/fixture/version/setup/crates.io/PKGBUILD
@@ -0,0 +1,17 @@
+pkgname=shotgun
+pkgver=0.3.5
+pkgrel=1
+pkgdesc='Minimal X screenshot utility'
+arch=('any')
+url='https://github.com/neXromancers/shotgun'
+license=('MIT')
+depends=('cargo')
+options=('!emptydirs')
+source=("https://crates.io/api/v1/crates/${pkgname}/${pkgver}/download")
+sha256sums=('59d66ef5e3c166431c39cb8b7c1d02af419051352f27912f6a43981b3def16af')
+
+package() {
+ :
+}
+
+# vim: ts=2 sw=2 et:
diff --git a/test/fixture/version/setup/crates.io/nvchecker.assert.toml b/test/fixture/version/setup/crates.io/nvchecker.assert.toml
new file mode 100644
index 0000000..234be6c
--- /dev/null
+++ b/test/fixture/version/setup/crates.io/nvchecker.assert.toml
@@ -0,0 +1,3 @@
+[shotgun]
+source = "cratesio"
+cratesio = "shotgun"
diff --git a/test/fixture/version/setup/files.pythonhosted.org/PKGBUILD b/test/fixture/version/setup/files.pythonhosted.org/PKGBUILD
new file mode 100644
index 0000000..b6eba1e
--- /dev/null
+++ b/test/fixture/version/setup/files.pythonhosted.org/PKGBUILD
@@ -0,0 +1,15 @@
+_pyname=ipyparallel
+pkgname=python-$_pyname
+pkgver=8.6.1
+pkgrel=1
+pkgdesc='Interactive Parallel Computing in Python'
+url='https://pypi.org/project/ipyparallel/'
+arch=(any)
+license=(BSD)
+source=(https://files.pythonhosted.org/packages/source/${_pyname::1}/$_pyname/$_pyname-$pkgver.tar.gz)
+depends=(python)
+sha256sums=('a39aa5ef9560170bf0e9afedca9ff045e1b9c1832c49303377edcc91cea9fb77')
+
+package() {
+ :
+}
diff --git a/test/fixture/version/setup/files.pythonhosted.org/nvchecker.assert.toml b/test/fixture/version/setup/files.pythonhosted.org/nvchecker.assert.toml
new file mode 100644
index 0000000..815b717
--- /dev/null
+++ b/test/fixture/version/setup/files.pythonhosted.org/nvchecker.assert.toml
@@ -0,0 +1,3 @@
+[python-ipyparallel]
+source = "pypi"
+pypi = "ipyparallel"
diff --git a/test/fixture/version/setup/git-custom/PKGBUILD b/test/fixture/version/setup/git-custom/PKGBUILD
new file mode 100644
index 0000000..3c70d5f
--- /dev/null
+++ b/test/fixture/version/setup/git-custom/PKGBUILD
@@ -0,0 +1,14 @@
+pkgname=libfakekey
+pkgver=0.3
+pkgrel=1
+pkgdesc='X virtual keyboard library.'
+arch=('x86_64')
+url='https://www.yoctoproject.org/tools-resources/projects/matchbox'
+license=('GPL')
+depends=('libxtst')
+source=("git://git.yoctoproject.org/libfakekey")
+sha256sums=('d282fa6481a5b85f71e36e8bad4cfa938cc8eaac4c42ffa27f9203ac634813f4')
+
+package() {
+ :
+}
diff --git a/test/fixture/version/setup/git-custom/nvchecker.assert.toml b/test/fixture/version/setup/git-custom/nvchecker.assert.toml
new file mode 100644
index 0000000..ddcdcd1
--- /dev/null
+++ b/test/fixture/version/setup/git-custom/nvchecker.assert.toml
@@ -0,0 +1,3 @@
+[libfakekey]
+source = "git"
+git = "git://git.yoctoproject.org/libfakekey"
diff --git a/test/fixture/version/setup/github-git-as-platform/PKGBUILD b/test/fixture/version/setup/github-git-as-platform/PKGBUILD
new file mode 100644
index 0000000..18e30bc
--- /dev/null
+++ b/test/fixture/version/setup/github-git-as-platform/PKGBUILD
@@ -0,0 +1,17 @@
+pkgname=minisign
+pkgver=0.11
+pkgrel=1
+pkgdesc="A dead-simple tool to sign files and verify digital signatures"
+arch=('x86_64')
+url="https://github.com/jedisct1/minisign"
+license=('custom:ISC')
+depends=('libsodium')
+makedepends=('cmake' 'git')
+_commit=feefda7af87f64342bd07bf446ceb0467cbd0fb4 # git rev-parse $pkgver
+source=("git+https://github.com/jedisct1/minisign.git?signed#tag=$_commit")
+sha512sums=('SKIP')
+validpgpkeys=(54A2B8892CC3D6A597B92B6C210627AABA709FE1) # Frank Denis
+
+package() {
+ :
+}
diff --git a/test/fixture/version/setup/github-git-as-platform/nvchecker.assert.toml b/test/fixture/version/setup/github-git-as-platform/nvchecker.assert.toml
new file mode 100644
index 0000000..2be1de8
--- /dev/null
+++ b/test/fixture/version/setup/github-git-as-platform/nvchecker.assert.toml
@@ -0,0 +1,4 @@
+[minisign]
+source = "github"
+github = "jedisct1/minisign"
+use_max_tag = true
diff --git a/test/fixture/version/setup/github-git-v-prefix-as-platform/PKGBUILD b/test/fixture/version/setup/github-git-v-prefix-as-platform/PKGBUILD
new file mode 100644
index 0000000..386d0c1
--- /dev/null
+++ b/test/fixture/version/setup/github-git-v-prefix-as-platform/PKGBUILD
@@ -0,0 +1,17 @@
+pkgname=vim
+pkgver=9.1.0131
+pkgrel=1
+pkgdesc="A dead-simple tool to sign files and verify digital signatures"
+arch=('x86_64')
+url="https://github.com/jedisct1/minisign"
+license=('custom:ISC')
+depends=('libsodium')
+makedepends=('cmake' 'git')
+_commit=feefda7af87f64342bd07bf446ceb0467cbd0fb4 # git rev-parse $pkgver
+source=("git+https://github.com/vim/vim.git?signed#tag=v${pkgver}")
+sha512sums=('SKIP')
+validpgpkeys=(54A2B8892CC3D6A597B92B6C210627AABA709FE1) # Frank Denis
+
+package() {
+ :
+}
diff --git a/test/fixture/version/setup/github-git-v-prefix-as-platform/nvchecker.assert.toml b/test/fixture/version/setup/github-git-v-prefix-as-platform/nvchecker.assert.toml
new file mode 100644
index 0000000..a6c7da1
--- /dev/null
+++ b/test/fixture/version/setup/github-git-v-prefix-as-platform/nvchecker.assert.toml
@@ -0,0 +1,5 @@
+[vim]
+source = "github"
+github = "vim/vim"
+use_max_tag = true
+prefix = "v"
diff --git a/test/fixture/version/setup/github-git-v-prefix/PKGBUILD b/test/fixture/version/setup/github-git-v-prefix/PKGBUILD
new file mode 100644
index 0000000..386d0c1
--- /dev/null
+++ b/test/fixture/version/setup/github-git-v-prefix/PKGBUILD
@@ -0,0 +1,17 @@
+pkgname=vim
+pkgver=9.1.0131
+pkgrel=1
+pkgdesc="A dead-simple tool to sign files and verify digital signatures"
+arch=('x86_64')
+url="https://github.com/jedisct1/minisign"
+license=('custom:ISC')
+depends=('libsodium')
+makedepends=('cmake' 'git')
+_commit=feefda7af87f64342bd07bf446ceb0467cbd0fb4 # git rev-parse $pkgver
+source=("git+https://github.com/vim/vim.git?signed#tag=v${pkgver}")
+sha512sums=('SKIP')
+validpgpkeys=(54A2B8892CC3D6A597B92B6C210627AABA709FE1) # Frank Denis
+
+package() {
+ :
+}
diff --git a/test/fixture/version/setup/github-git-v-prefix/nvchecker.assert.toml b/test/fixture/version/setup/github-git-v-prefix/nvchecker.assert.toml
new file mode 100644
index 0000000..169d24b
--- /dev/null
+++ b/test/fixture/version/setup/github-git-v-prefix/nvchecker.assert.toml
@@ -0,0 +1,4 @@
+[vim]
+source = "git"
+git = "https://github.com/vim/vim.git"
+prefix = "v"
diff --git a/test/fixture/version/setup/github-git/PKGBUILD b/test/fixture/version/setup/github-git/PKGBUILD
new file mode 100644
index 0000000..18e30bc
--- /dev/null
+++ b/test/fixture/version/setup/github-git/PKGBUILD
@@ -0,0 +1,17 @@
+pkgname=minisign
+pkgver=0.11
+pkgrel=1
+pkgdesc="A dead-simple tool to sign files and verify digital signatures"
+arch=('x86_64')
+url="https://github.com/jedisct1/minisign"
+license=('custom:ISC')
+depends=('libsodium')
+makedepends=('cmake' 'git')
+_commit=feefda7af87f64342bd07bf446ceb0467cbd0fb4 # git rev-parse $pkgver
+source=("git+https://github.com/jedisct1/minisign.git?signed#tag=$_commit")
+sha512sums=('SKIP')
+validpgpkeys=(54A2B8892CC3D6A597B92B6C210627AABA709FE1) # Frank Denis
+
+package() {
+ :
+}
diff --git a/test/fixture/version/setup/github-git/nvchecker.assert.toml b/test/fixture/version/setup/github-git/nvchecker.assert.toml
new file mode 100644
index 0000000..6d54f48
--- /dev/null
+++ b/test/fixture/version/setup/github-git/nvchecker.assert.toml
@@ -0,0 +1,3 @@
+[minisign]
+source = "git"
+git = "https://github.com/jedisct1/minisign.git"
diff --git a/test/fixture/version/setup/github-tarball-as-platform/PKGBUILD b/test/fixture/version/setup/github-tarball-as-platform/PKGBUILD
new file mode 100644
index 0000000..cf66024
--- /dev/null
+++ b/test/fixture/version/setup/github-tarball-as-platform/PKGBUILD
@@ -0,0 +1,29 @@
+pkgname=git-smash
+pkgver=0.1.0
+pkgrel=1
+pkgdesc='Smash staged changes into previous commits to support your Git workflow'
+url='https://github.com/anthraxx/git-smash'
+arch=('x86_64')
+license=('MIT')
+depends=('glibc' 'gcc-libs' 'git')
+makedepends=('cargo' 'scdoc')
+optdepends=(
+ 'skim: selection menu alternative'
+ 'fzf: selection menu alternative'
+)
+source=(${url}/archive/${pkgver}/${pkgname}-${pkgver}.tar.gz
+ ${url}/releases/download/${pkgver}/${pkgname}-${pkgver}.tar.gz.sig)
+options=('!makeflags')
+sha512sums=('64a8b6e2afa7007966245a4888e51251e8c35f0b82421f3cee634a3e7b82256a24459cba2941800a6e50a047766a0f8de20b435904d17df3fd456b6c09ac4c5f'
+ 'SKIP')
+b2sums=('acc46b7a87135380fe36c378e9055b8b7c9b88a818c955f04677161f50d5ccd5699ac05f0a858dd11ca7b42b3505c0ac037f50efcd690f9e5a76be395d5d6590'
+ 'SKIP')
+validpgpkeys=(
+ 'E240B57E2C4630BA768E2F26FC1B547C8D8172C8' # Levente Polyak
+)
+
+package() {
+ :
+}
+
+# vim: ts=2 sw=2 et:
diff --git a/test/fixture/version/setup/github-tarball-as-platform/nvchecker.assert.toml b/test/fixture/version/setup/github-tarball-as-platform/nvchecker.assert.toml
new file mode 100644
index 0000000..b3c5db2
--- /dev/null
+++ b/test/fixture/version/setup/github-tarball-as-platform/nvchecker.assert.toml
@@ -0,0 +1,4 @@
+[git-smash]
+source = "github"
+github = "anthraxx/git-smash"
+use_max_tag = true
diff --git a/test/fixture/version/setup/github-tarball/PKGBUILD b/test/fixture/version/setup/github-tarball/PKGBUILD
new file mode 100644
index 0000000..935ac0d
--- /dev/null
+++ b/test/fixture/version/setup/github-tarball/PKGBUILD
@@ -0,0 +1,25 @@
+pkgname=git-smash
+pkgver=0.1.0
+pkgrel=1
+pkgdesc='Smash staged changes into previous commits to support your Git workflow'
+url='https://github.com/anthraxx/git-smash'
+arch=('x86_64')
+license=('MIT')
+depends=('glibc' 'gcc-libs' 'git')
+makedepends=('cargo' 'scdoc')
+source=(${url}/archive/${pkgver}/${pkgname}-${pkgver}.tar.gz
+ ${url}/releases/download/${pkgver}/${pkgname}-${pkgver}.tar.gz.sig)
+options=('!makeflags')
+sha512sums=('64a8b6e2afa7007966245a4888e51251e8c35f0b82421f3cee634a3e7b82256a24459cba2941800a6e50a047766a0f8de20b435904d17df3fd456b6c09ac4c5f'
+ 'SKIP')
+b2sums=('acc46b7a87135380fe36c378e9055b8b7c9b88a818c955f04677161f50d5ccd5699ac05f0a858dd11ca7b42b3505c0ac037f50efcd690f9e5a76be395d5d6590'
+ 'SKIP')
+validpgpkeys=(
+ 'E240B57E2C4630BA768E2F26FC1B547C8D8172C8' # Levente Polyak
+)
+
+package() {
+ :
+}
+
+# vim: ts=2 sw=2 et:
diff --git a/test/fixture/version/setup/github-tarball/nvchecker.assert.toml b/test/fixture/version/setup/github-tarball/nvchecker.assert.toml
new file mode 100644
index 0000000..65877ac
--- /dev/null
+++ b/test/fixture/version/setup/github-tarball/nvchecker.assert.toml
@@ -0,0 +1,3 @@
+[git-smash]
+source = "git"
+git = "https://github.com/anthraxx/git-smash.git"
diff --git a/test/fixture/version/setup/gitlab-archlinux-tarball-as-platform/PKGBUILD b/test/fixture/version/setup/gitlab-archlinux-tarball-as-platform/PKGBUILD
new file mode 100644
index 0000000..adcd790
--- /dev/null
+++ b/test/fixture/version/setup/gitlab-archlinux-tarball-as-platform/PKGBUILD
@@ -0,0 +1,57 @@
+pkgname=devtools
+epoch=1
+pkgver=1.1.1
+pkgrel=1
+pkgdesc='Tools for Arch Linux package maintainers'
+arch=('any')
+license=('GPL-3.0-or-later')
+url='https://gitlab.archlinux.org/archlinux/devtools'
+depends=(
+ arch-install-scripts
+ awk
+ bash
+ binutils
+ coreutils
+ curl
+ diffutils
+ fakeroot
+ findutils
+ grep
+ jq
+ openssh
+ parallel
+ rsync
+ sed
+ util-linux
+
+ breezy
+ git
+ mercurial
+ subversion
+)
+makedepends=(
+ asciidoc
+ shellcheck
+)
+optdepends=(
+ 'btrfs-progs: btrfs support'
+ 'bat: pretty printing for pkgctl search'
+ 'nvchecker: pkgctl version subcommand'
+ 'pacman-contrib: support for the --update-checksums option'
+)
+replaces=(devtools-git-poc)
+source=(https://gitlab.archlinux.org/archlinux/devtools/-/releases/v${pkgver}/downloads/devtools-${pkgver}.tar.gz{,.sig})
+validpgpkeys=(
+ 'E240B57E2C4630BA768E2F26FC1B547C8D8172C8' # Levente Polyak <anthraxx@archlinux.org>
+ 'F00B96D15228013FFC9C9D0393B11DAA4C197E3D' # Christian Heusel (gromit packager key) <gromit@archlinux.org>
+)
+sha256sums=('b2a12bb8b4b568110b055ccec903c9a0b0b979ab44f0cba574c026d243d5ce36'
+ 'SKIP')
+b2sums=('be9601a4fcbb576b9a8637abdaec70f8ec730cf5752793c2f8fdce20e489b74555f624d0a0b5f8bb58c0914413a29d51698c8474430010502ab80d6c18c4332e'
+ 'SKIP')
+
+package() {
+ :
+}
+
+# vim: ts=2 sw=2 et:
diff --git a/test/fixture/version/setup/gitlab-archlinux-tarball-as-platform/nvchecker.assert.toml b/test/fixture/version/setup/gitlab-archlinux-tarball-as-platform/nvchecker.assert.toml
new file mode 100644
index 0000000..1a91eb4
--- /dev/null
+++ b/test/fixture/version/setup/gitlab-archlinux-tarball-as-platform/nvchecker.assert.toml
@@ -0,0 +1,6 @@
+[devtools]
+source = "gitlab"
+gitlab = "archlinux/devtools"
+host = "gitlab.archlinux.org"
+use_max_tag = true
+prefix = "v"
diff --git a/test/fixture/version/setup/gitlab-archlinux-tarball/PKGBUILD b/test/fixture/version/setup/gitlab-archlinux-tarball/PKGBUILD
new file mode 100644
index 0000000..adcd790
--- /dev/null
+++ b/test/fixture/version/setup/gitlab-archlinux-tarball/PKGBUILD
@@ -0,0 +1,57 @@
+pkgname=devtools
+epoch=1
+pkgver=1.1.1
+pkgrel=1
+pkgdesc='Tools for Arch Linux package maintainers'
+arch=('any')
+license=('GPL-3.0-or-later')
+url='https://gitlab.archlinux.org/archlinux/devtools'
+depends=(
+ arch-install-scripts
+ awk
+ bash
+ binutils
+ coreutils
+ curl
+ diffutils
+ fakeroot
+ findutils
+ grep
+ jq
+ openssh
+ parallel
+ rsync
+ sed
+ util-linux
+
+ breezy
+ git
+ mercurial
+ subversion
+)
+makedepends=(
+ asciidoc
+ shellcheck
+)
+optdepends=(
+ 'btrfs-progs: btrfs support'
+ 'bat: pretty printing for pkgctl search'
+ 'nvchecker: pkgctl version subcommand'
+ 'pacman-contrib: support for the --update-checksums option'
+)
+replaces=(devtools-git-poc)
+source=(https://gitlab.archlinux.org/archlinux/devtools/-/releases/v${pkgver}/downloads/devtools-${pkgver}.tar.gz{,.sig})
+validpgpkeys=(
+ 'E240B57E2C4630BA768E2F26FC1B547C8D8172C8' # Levente Polyak <anthraxx@archlinux.org>
+ 'F00B96D15228013FFC9C9D0393B11DAA4C197E3D' # Christian Heusel (gromit packager key) <gromit@archlinux.org>
+)
+sha256sums=('b2a12bb8b4b568110b055ccec903c9a0b0b979ab44f0cba574c026d243d5ce36'
+ 'SKIP')
+b2sums=('be9601a4fcbb576b9a8637abdaec70f8ec730cf5752793c2f8fdce20e489b74555f624d0a0b5f8bb58c0914413a29d51698c8474430010502ab80d6c18c4332e'
+ 'SKIP')
+
+package() {
+ :
+}
+
+# vim: ts=2 sw=2 et:
diff --git a/test/fixture/version/setup/gitlab-archlinux-tarball/nvchecker.assert.toml b/test/fixture/version/setup/gitlab-archlinux-tarball/nvchecker.assert.toml
new file mode 100644
index 0000000..4e3d43f
--- /dev/null
+++ b/test/fixture/version/setup/gitlab-archlinux-tarball/nvchecker.assert.toml
@@ -0,0 +1,4 @@
+[devtools]
+source = "git"
+git = "https://gitlab.archlinux.org/archlinux/devtools.git"
+prefix = "v"
diff --git a/test/fixture/version/setup/gitlab-git-multi-group-as-platform/PKGBUILD b/test/fixture/version/setup/gitlab-git-multi-group-as-platform/PKGBUILD
new file mode 100644
index 0000000..1e2d35b
--- /dev/null
+++ b/test/fixture/version/setup/gitlab-git-multi-group-as-platform/PKGBUILD
@@ -0,0 +1,30 @@
+pkgbase=kicad-library
+pkgname=($pkgbase{,-3d})
+pkgver=7.0.10
+pkgrel=1
+pkgdesc='Assorted libraries for KiCad'
+arch=('any')
+url='http://kicad.org/'
+license=('GPL')
+makedepends=('git' 'cmake')
+options=('!strip')
+source=(
+ 'git+https://gitlab.com/kicad/libraries/kicad-packages3D.git#commit=f1af95360976e66472b13897a1f3f5c2a77c0461'
+ 'git+https://gitlab.com/kicad/libraries/kicad-symbols.git#commit=5efa35abf67b4734a8e04cf83e31514be3329ce4'
+ 'git+https://gitlab.com/kicad/libraries/kicad-templates.git#commit=ff6e3193e6ff6029f65e7cce8ab39fafeafecdd6'
+ 'git+https://gitlab.com/kicad/libraries/kicad-footprints.git#commit=9fb460d078b55f2bb08c459cddd184833a853167'
+)
+sha512sums=('SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP')
+
+package_kicad-library() {
+ :
+}
+
+package_kicad-library-3d() {
+ :
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/test/fixture/version/setup/gitlab-git-multi-group-as-platform/nvchecker.assert.toml b/test/fixture/version/setup/gitlab-git-multi-group-as-platform/nvchecker.assert.toml
new file mode 100644
index 0000000..d2cf1b1
--- /dev/null
+++ b/test/fixture/version/setup/gitlab-git-multi-group-as-platform/nvchecker.assert.toml
@@ -0,0 +1,4 @@
+[kicad-library]
+source = "gitlab"
+gitlab = "kicad/libraries/kicad-packages3D"
+use_max_tag = true
diff --git a/test/fixture/version/setup/gitlab-git-multi-group/PKGBUILD b/test/fixture/version/setup/gitlab-git-multi-group/PKGBUILD
new file mode 100644
index 0000000..1e2d35b
--- /dev/null
+++ b/test/fixture/version/setup/gitlab-git-multi-group/PKGBUILD
@@ -0,0 +1,30 @@
+pkgbase=kicad-library
+pkgname=($pkgbase{,-3d})
+pkgver=7.0.10
+pkgrel=1
+pkgdesc='Assorted libraries for KiCad'
+arch=('any')
+url='http://kicad.org/'
+license=('GPL')
+makedepends=('git' 'cmake')
+options=('!strip')
+source=(
+ 'git+https://gitlab.com/kicad/libraries/kicad-packages3D.git#commit=f1af95360976e66472b13897a1f3f5c2a77c0461'
+ 'git+https://gitlab.com/kicad/libraries/kicad-symbols.git#commit=5efa35abf67b4734a8e04cf83e31514be3329ce4'
+ 'git+https://gitlab.com/kicad/libraries/kicad-templates.git#commit=ff6e3193e6ff6029f65e7cce8ab39fafeafecdd6'
+ 'git+https://gitlab.com/kicad/libraries/kicad-footprints.git#commit=9fb460d078b55f2bb08c459cddd184833a853167'
+)
+sha512sums=('SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP')
+
+package_kicad-library() {
+ :
+}
+
+package_kicad-library-3d() {
+ :
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/test/fixture/version/setup/gitlab-git-multi-group/nvchecker.assert.toml b/test/fixture/version/setup/gitlab-git-multi-group/nvchecker.assert.toml
new file mode 100644
index 0000000..c8e7186
--- /dev/null
+++ b/test/fixture/version/setup/gitlab-git-multi-group/nvchecker.assert.toml
@@ -0,0 +1,3 @@
+[kicad-library]
+source = "git"
+git = "https://gitlab.com/kicad/libraries/kicad-packages3D.git"
diff --git a/test/fixture/version/setup/gitlab-tarball-multi-group-as-platform/PKGBUILD b/test/fixture/version/setup/gitlab-tarball-multi-group-as-platform/PKGBUILD
new file mode 100644
index 0000000..4a40842
--- /dev/null
+++ b/test/fixture/version/setup/gitlab-tarball-multi-group-as-platform/PKGBUILD
@@ -0,0 +1,24 @@
+pkgbase=kicad-library
+pkgname=($pkgbase{,-3d})
+pkgver=7.0.10
+pkgrel=1
+pkgdesc='Assorted libraries for KiCad'
+arch=('any')
+url='http://kicad.org/'
+license=('GPL')
+makedepends=('git' 'cmake')
+options=('!strip')
+source=(
+ https://gitlab.com/kicad/libraries/kicad-packages3D/-/archive/8.0.0/kicad-packages3D-8.0.0.tar.gz
+)
+sha512sums=('SKIP')
+
+package_kicad-library() {
+ :
+}
+
+package_kicad-library-3d() {
+ :
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/test/fixture/version/setup/gitlab-tarball-multi-group-as-platform/nvchecker.assert.toml b/test/fixture/version/setup/gitlab-tarball-multi-group-as-platform/nvchecker.assert.toml
new file mode 100644
index 0000000..d2cf1b1
--- /dev/null
+++ b/test/fixture/version/setup/gitlab-tarball-multi-group-as-platform/nvchecker.assert.toml
@@ -0,0 +1,4 @@
+[kicad-library]
+source = "gitlab"
+gitlab = "kicad/libraries/kicad-packages3D"
+use_max_tag = true
diff --git a/test/fixture/version/setup/gitlab-tarball-multi-group/PKGBUILD b/test/fixture/version/setup/gitlab-tarball-multi-group/PKGBUILD
new file mode 100644
index 0000000..4a40842
--- /dev/null
+++ b/test/fixture/version/setup/gitlab-tarball-multi-group/PKGBUILD
@@ -0,0 +1,24 @@
+pkgbase=kicad-library
+pkgname=($pkgbase{,-3d})
+pkgver=7.0.10
+pkgrel=1
+pkgdesc='Assorted libraries for KiCad'
+arch=('any')
+url='http://kicad.org/'
+license=('GPL')
+makedepends=('git' 'cmake')
+options=('!strip')
+source=(
+ https://gitlab.com/kicad/libraries/kicad-packages3D/-/archive/8.0.0/kicad-packages3D-8.0.0.tar.gz
+)
+sha512sums=('SKIP')
+
+package_kicad-library() {
+ :
+}
+
+package_kicad-library-3d() {
+ :
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/test/fixture/version/setup/gitlab-tarball-multi-group/nvchecker.assert.toml b/test/fixture/version/setup/gitlab-tarball-multi-group/nvchecker.assert.toml
new file mode 100644
index 0000000..c8e7186
--- /dev/null
+++ b/test/fixture/version/setup/gitlab-tarball-multi-group/nvchecker.assert.toml
@@ -0,0 +1,3 @@
+[kicad-library]
+source = "git"
+git = "https://gitlab.com/kicad/libraries/kicad-packages3D.git"
diff --git a/test/fixture/version/setup/hackage-tarball/PKGBUILD b/test/fixture/version/setup/hackage-tarball/PKGBUILD
new file mode 100644
index 0000000..d6ae5d2
--- /dev/null
+++ b/test/fixture/version/setup/hackage-tarball/PKGBUILD
@@ -0,0 +1,16 @@
+_hkgname=implicit-hie
+pkgname=haskell-implicit-hie
+pkgver=0.1.2.7
+pkgrel=114
+pkgdesc="Auto generate hie-bios cradles & hie.yaml"
+url="https://github.com/Avi-D-coder/implicit-hie#readme"
+license=("custom:BSD3")
+arch=('x86_64')
+depends=('ghc-libs' 'haskell-attoparsec' 'haskell-filepattern' 'haskell-yaml')
+makedepends=('ghc' 'haskell-hspec' 'haskell-hspec-attoparsec')
+source=("https://hackage.haskell.org/packages/archive/$_hkgname/$pkgver/$_hkgname-$pkgver.tar.gz")
+sha512sums=('b0746867352b29dd2d4c4535ce6f4d61c3cc61ed31f3f18d49e3f657b12d470a9a53a7ef8a785a9e19b8ff12fb8d8b1cfa80c5c22c90af65bf4b39ab62bbd768')
+
+package() {
+ :
+}
diff --git a/test/fixture/version/setup/hackage-tarball/nvchecker.assert.toml b/test/fixture/version/setup/hackage-tarball/nvchecker.assert.toml
new file mode 100644
index 0000000..1f00b99
--- /dev/null
+++ b/test/fixture/version/setup/hackage-tarball/nvchecker.assert.toml
@@ -0,0 +1,3 @@
+[haskell-implicit-hie]
+source = "hackage"
+hackage = "implicit-hie"
diff --git a/test/fixture/version/setup/opt-no-force/PKGBUILD b/test/fixture/version/setup/opt-no-force/PKGBUILD
new file mode 100644
index 0000000..adcd790
--- /dev/null
+++ b/test/fixture/version/setup/opt-no-force/PKGBUILD
@@ -0,0 +1,57 @@
+pkgname=devtools
+epoch=1
+pkgver=1.1.1
+pkgrel=1
+pkgdesc='Tools for Arch Linux package maintainers'
+arch=('any')
+license=('GPL-3.0-or-later')
+url='https://gitlab.archlinux.org/archlinux/devtools'
+depends=(
+ arch-install-scripts
+ awk
+ bash
+ binutils
+ coreutils
+ curl
+ diffutils
+ fakeroot
+ findutils
+ grep
+ jq
+ openssh
+ parallel
+ rsync
+ sed
+ util-linux
+
+ breezy
+ git
+ mercurial
+ subversion
+)
+makedepends=(
+ asciidoc
+ shellcheck
+)
+optdepends=(
+ 'btrfs-progs: btrfs support'
+ 'bat: pretty printing for pkgctl search'
+ 'nvchecker: pkgctl version subcommand'
+ 'pacman-contrib: support for the --update-checksums option'
+)
+replaces=(devtools-git-poc)
+source=(https://gitlab.archlinux.org/archlinux/devtools/-/releases/v${pkgver}/downloads/devtools-${pkgver}.tar.gz{,.sig})
+validpgpkeys=(
+ 'E240B57E2C4630BA768E2F26FC1B547C8D8172C8' # Levente Polyak <anthraxx@archlinux.org>
+ 'F00B96D15228013FFC9C9D0393B11DAA4C197E3D' # Christian Heusel (gromit packager key) <gromit@archlinux.org>
+)
+sha256sums=('b2a12bb8b4b568110b055ccec903c9a0b0b979ab44f0cba574c026d243d5ce36'
+ 'SKIP')
+b2sums=('be9601a4fcbb576b9a8637abdaec70f8ec730cf5752793c2f8fdce20e489b74555f624d0a0b5f8bb58c0914413a29d51698c8474430010502ab80d6c18c4332e'
+ 'SKIP')
+
+package() {
+ :
+}
+
+# vim: ts=2 sw=2 et:
diff --git a/test/fixture/version/setup/opt-url/PKGBUILD b/test/fixture/version/setup/opt-url/PKGBUILD
new file mode 100644
index 0000000..935ac0d
--- /dev/null
+++ b/test/fixture/version/setup/opt-url/PKGBUILD
@@ -0,0 +1,25 @@
+pkgname=git-smash
+pkgver=0.1.0
+pkgrel=1
+pkgdesc='Smash staged changes into previous commits to support your Git workflow'
+url='https://github.com/anthraxx/git-smash'
+arch=('x86_64')
+license=('MIT')
+depends=('glibc' 'gcc-libs' 'git')
+makedepends=('cargo' 'scdoc')
+source=(${url}/archive/${pkgver}/${pkgname}-${pkgver}.tar.gz
+ ${url}/releases/download/${pkgver}/${pkgname}-${pkgver}.tar.gz.sig)
+options=('!makeflags')
+sha512sums=('64a8b6e2afa7007966245a4888e51251e8c35f0b82421f3cee634a3e7b82256a24459cba2941800a6e50a047766a0f8de20b435904d17df3fd456b6c09ac4c5f'
+ 'SKIP')
+b2sums=('acc46b7a87135380fe36c378e9055b8b7c9b88a818c955f04677161f50d5ccd5699ac05f0a858dd11ca7b42b3505c0ac037f50efcd690f9e5a76be395d5d6590'
+ 'SKIP')
+validpgpkeys=(
+ 'E240B57E2C4630BA768E2F26FC1B547C8D8172C8' # Levente Polyak
+)
+
+package() {
+ :
+}
+
+# vim: ts=2 sw=2 et:
diff --git a/test/fixture/version/setup/opt-url/nvchecker.assert.toml b/test/fixture/version/setup/opt-url/nvchecker.assert.toml
new file mode 100644
index 0000000..89e8dad
--- /dev/null
+++ b/test/fixture/version/setup/opt-url/nvchecker.assert.toml
@@ -0,0 +1,3 @@
+[git-smash]
+source = "cratesio"
+cratesio = "shotgun"
diff --git a/test/fixture/version/setup/pkgbase-with-dot/PKGBUILD b/test/fixture/version/setup/pkgbase-with-dot/PKGBUILD
new file mode 100644
index 0000000..d4ab22c
--- /dev/null
+++ b/test/fixture/version/setup/pkgbase-with-dot/PKGBUILD
@@ -0,0 +1,27 @@
+pkgname=git.smash
+pkgver=0.1.0
+pkgrel=1
+pkgdesc='Smash staged changes into previous commits to support your Git workflow'
+url='https://github.com/anthraxx/git-smash'
+arch=('x86_64')
+license=('MIT')
+depends=('glibc' 'gcc-libs' 'git')
+makedepends=('cargo' 'scdoc')
+optdepends=(
+ 'skim: selection menu alternative'
+ 'fzf: selection menu alternative'
+)
+source=(${url}/archive/${pkgver}/${pkgname}-${pkgver}.tar.gz
+ ${url}/releases/download/${pkgver}/${pkgname}-${pkgver}.tar.gz.sig)
+options=('!makeflags')
+sha512sums=('64a8b6e2afa7007966245a4888e51251e8c35f0b82421f3cee634a3e7b82256a24459cba2941800a6e50a047766a0f8de20b435904d17df3fd456b6c09ac4c5f'
+ 'SKIP')
+b2sums=('acc46b7a87135380fe36c378e9055b8b7c9b88a818c955f04677161f50d5ccd5699ac05f0a858dd11ca7b42b3505c0ac037f50efcd690f9e5a76be395d5d6590'
+ 'SKIP')
+validpgpkeys=(
+ 'E240B57E2C4630BA768E2F26FC1B547C8D8172C8' # Levente Polyak
+)
+
+package() {
+ :
+}
diff --git a/test/fixture/version/setup/pkgbase-with-dot/nvchecker.assert.toml b/test/fixture/version/setup/pkgbase-with-dot/nvchecker.assert.toml
new file mode 100644
index 0000000..38e881b
--- /dev/null
+++ b/test/fixture/version/setup/pkgbase-with-dot/nvchecker.assert.toml
@@ -0,0 +1,3 @@
+["git.smash"]
+source = "git"
+git = "https://github.com/anthraxx/git-smash.git"
diff --git a/test/fixture/version/setup/pypi.io/PKGBUILD b/test/fixture/version/setup/pypi.io/PKGBUILD
new file mode 100644
index 0000000..8b95c5f
--- /dev/null
+++ b/test/fixture/version/setup/pypi.io/PKGBUILD
@@ -0,0 +1,17 @@
+pkgname=python-pyaml
+pkgver=23.9.0
+pkgrel=1
+pkgdesc="PyYAML-based module to produce pretty and readable YAML-serialized data"
+url="https://pypi.python.org/pypi/pyaml"
+license=('BSD')
+arch=('any')
+depends=('python-yaml')
+makedepends=('python-setuptools')
+checkdepends=('python-unidecode')
+optdepends=('python-unidecode: Needed if same-id objects or recursion is used within serialized data')
+source=("https://pypi.io/packages/source/p/pyaml/pyaml-$pkgver.tar.gz")
+sha512sums=('1ff23e07e45d6530b6666a26947362a6bb2125b731dd03501aafe9096766a38fec7906a36666c7974e49cedf9a91f5af0973827151c746933e7b969aeec56ab8')
+
+package() {
+ :
+}
diff --git a/test/fixture/version/setup/pypi.io/nvchecker.assert.toml b/test/fixture/version/setup/pypi.io/nvchecker.assert.toml
new file mode 100644
index 0000000..b02c68e
--- /dev/null
+++ b/test/fixture/version/setup/pypi.io/nvchecker.assert.toml
@@ -0,0 +1,3 @@
+[python-pyaml]
+source = "pypi"
+pypi = "pyaml"
diff --git a/test/fixture/version/setup/pypi.org/PKGBUILD b/test/fixture/version/setup/pypi.org/PKGBUILD
new file mode 100644
index 0000000..c849968
--- /dev/null
+++ b/test/fixture/version/setup/pypi.org/PKGBUILD
@@ -0,0 +1,23 @@
+pkgname=python-bleach
+pkgver=6.1.0
+pkgrel=1
+
+pkgdesc="An easy whitelist-based HTML-sanitizing tool"
+url="https://pypi.org/project/bleach/"
+arch=('any')
+license=('Apache')
+depends=('python-packaging'
+ 'python-six'
+ 'python-webencodings')
+makedepends=('python'
+ 'python-setuptools')
+checkdepends=('python-pytest')
+optdepends=('python-tinycss2: for CSS sanitisation')
+
+source=(https://pypi.org/packages/source/b/bleach/bleach-$pkgver.tar.gz)
+
+sha256sums=('0a31f1837963c41d46bbf1331b8778e1308ea0791db03cc4e7357b97cf42a8fe')
+
+package() {
+ :
+}
diff --git a/test/fixture/version/setup/pypi.org/nvchecker.assert.toml b/test/fixture/version/setup/pypi.org/nvchecker.assert.toml
new file mode 100644
index 0000000..c067d86
--- /dev/null
+++ b/test/fixture/version/setup/pypi.org/nvchecker.assert.toml
@@ -0,0 +1,3 @@
+[python-bleach]
+source = "pypi"
+pypi = "bleach"
diff --git a/test/fixture/version/setup/registry.npmjs.org/PKGBUILD b/test/fixture/version/setup/registry.npmjs.org/PKGBUILD
new file mode 100644
index 0000000..ede2264
--- /dev/null
+++ b/test/fixture/version/setup/registry.npmjs.org/PKGBUILD
@@ -0,0 +1,16 @@
+pkgname=node-gyp
+pkgver=10.0.1
+pkgrel=1
+pkgdesc='Node.js native addon build tool'
+arch=('any')
+url='https://github.com/nodejs/node-gyp'
+license=('MIT')
+depends=('nodejs' 'nodejs-nopt' 'python' 'semver')
+makedepends=('npm')
+source=("https://registry.npmjs.org/$pkgname/-/$pkgname-$pkgver.tgz")
+noextract=("$pkgname-$pkgver.tgz")
+sha512sums=('820dff6c77a141f662bd055fa88cb2f304dd4b2985f724f23f808989f2bbde29b234c53c008190136a546bb74d59f98c786f5c0d517679e86244cbf42c2d6202')
+
+package() {
+ :
+}
diff --git a/test/fixture/version/setup/registry.npmjs.org/nvchecker.assert.toml b/test/fixture/version/setup/registry.npmjs.org/nvchecker.assert.toml
new file mode 100644
index 0000000..672a3e1
--- /dev/null
+++ b/test/fixture/version/setup/registry.npmjs.org/nvchecker.assert.toml
@@ -0,0 +1,3 @@
+[node-gyp]
+source = "npm"
+npm = "node-gyp"
diff --git a/test/fixture/version/setup/rubygems.org/PKGBUILD b/test/fixture/version/setup/rubygems.org/PKGBUILD
new file mode 100644
index 0000000..0d95861
--- /dev/null
+++ b/test/fixture/version/setup/rubygems.org/PKGBUILD
@@ -0,0 +1,16 @@
+pkgname=ruby-diff-lcs
+pkgver=0.3.5
+pkgrel=8
+pkgdesc='Allows custom language loaders to be hooked into require'
+arch=('any')
+url='http://polyglot.rubyforge.org/'
+license=('MIT')
+depends=('ruby')
+options=('!emptydirs')
+source=("https://rubygems.org/downloads/${pkgname#*-}-${pkgver}.gem")
+noextract=("${pkgname#*-}-${pkgver}.gem")
+sha256sums=('59d66ef5e3c166431c39cb8b7c1d02af419051352f27912f6a43981b3def16af')
+
+package() {
+ :
+}
diff --git a/test/fixture/version/setup/rubygems.org/nvchecker.assert.toml b/test/fixture/version/setup/rubygems.org/nvchecker.assert.toml
new file mode 100644
index 0000000..197fe21
--- /dev/null
+++ b/test/fixture/version/setup/rubygems.org/nvchecker.assert.toml
@@ -0,0 +1,3 @@
+[ruby-diff-lcs]
+source = "gems"
+gems = "diff-lcs"
diff --git a/test/fixture/version/setup/static.crates.io/PKGBUILD b/test/fixture/version/setup/static.crates.io/PKGBUILD
new file mode 100644
index 0000000..d249f29
--- /dev/null
+++ b/test/fixture/version/setup/static.crates.io/PKGBUILD
@@ -0,0 +1,16 @@
+pkgname=shotgun
+pkgver=0.3.5
+pkgrel=8
+pkgdesc='Allows custom language loaders to be hooked into require'
+arch=('any')
+url='http://polyglot.rubyforge.org/'
+license=('MIT')
+depends=('ruby')
+options=('!emptydirs')
+source=("https://static.crates.io/crates/shotgun/shotgun-$pkgver.crate")
+noextract=("${pkgname#*-}-${pkgver}.gem")
+sha256sums=('59d66ef5e3c166431c39cb8b7c1d02af419051352f27912f6a43981b3def16af')
+
+package() {
+ :
+}
diff --git a/test/fixture/version/setup/static.crates.io/nvchecker.assert.toml b/test/fixture/version/setup/static.crates.io/nvchecker.assert.toml
new file mode 100644
index 0000000..234be6c
--- /dev/null
+++ b/test/fixture/version/setup/static.crates.io/nvchecker.assert.toml
@@ -0,0 +1,3 @@
+[shotgun]
+source = "cratesio"
+cratesio = "shotgun"