python-git-changelog

CLEAN
maintainer Smoolak 0 votes scanned 2026-09-21 00:26:32.109917
View on AUR

Triggered rules

Clean AI review downgraded a static finding llm_review

The static rules flagged this LOW, but an AI model (qwen/qwen3-235b-a22b-2507) reviewed the full PKGBUILD and judged it CLEAN (confidence 95%): The package builds from a verifiable source tarball hosted on the project's official GitHub repository, uses standard Python build tools, and runs upstream tests; the low-severity flag is due to metadata (few votes, recent upload) but the PKGBUILD itself shows no malicious or risky behavior.

1 higher static finding superseded - not the current verdict (shown for transparency)
Low Few votes, recently uploaded zero_votes_recent

Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.

PKGBUILD

1# Maintainer: Smoolak <smoolak@gmail.com>
2
3_pkgname=git-changelog
4pkgname=python-git-changelog
5pkgver=2.9.7
6pkgrel=1
7pkgdesc="Automatic changelog generator using Jinja2 templates"
8arch=('any')
9url="https://github.com/pawamoy/git-changelog"
10license=('ISC')
11depends=(
12 'git'
13 'python>=3.10'
14 'python-jinja>=3.0'
15 'python-packaging>=26.0'
16 'python-platformdirs>=4.4'
17 'python-semver>=3.0'
18 'python-typing_extensions'
19)
20makedepends=(
21 'python-build'
22 'python-installer'
23 'python-pdm-backend'
24)
25checkdepends=(
26 'mkdocstrings>=0.29'
27 'python-griffe>=2.0'
28 'python-pytest>=8.2'
29 'python-pytest-cov>=5.0'
30 'python-pytest-gitconfig>=0.7'
31 'python-pytest-randomly>=3.15'
32 'python-pytest-xdist>=3.6'
33 'python-tomli-w>=1.2'
34)
35source=("$pkgname-$pkgver.tar.gz::https://github.com/pawamoy/git-changelog/archive/refs/tags/$pkgver.tar.gz")
36sha256sums=('1192a29a8ab7c8d7c371ead7866912ce5716ec8d6aefb8ca7b1a186fb97a1beb')
37
38build() {
39 cd "$_pkgname-$pkgver"
40 python -m build --wheel --no-isolation
41}
42
43check() {
44 cd "$_pkgname-$pkgver"
45
46 local _check_dir="$srcdir/_check"
47 local _python_version
48 local _site_packages
49 local _smoke_repo="$srcdir/smoke-repo"
50 local _smoke_output="$srcdir/smoke-changelog.md"
51
52 _python_version="$(python -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')"
53 _site_packages="$_check_dir/usr/lib/python$_python_version/site-packages"
54
55 rm -rf "$_check_dir" "$_smoke_repo" "$_smoke_output"
56 python -m installer --destdir="$_check_dir" dist/*.whl
57
58 # Upstream runs tests from a Git checkout, while release archives omit
59 # repository metadata. Recreate the checkout context expected by test_main.
60 rm -rf .git
61 git init -q -b main .
62 git config user.name "Arch Linux"
63 git config user.email "arch@example.invalid"
64 git add -A
65 git commit -q -m "chore: source archive"
66
67 # Run upstream's complete test suite against the staged wheel.
68 # Upstream itself skips inventory checks when its generated site/objects.inv
69 # documentation artifact is not present in the release archive.
70 PYTHONPATH="$_site_packages" pytest -c config/pytest.ini -n auto tests
71
72 # Exercise both the installed Python API and CLI on a realistic Git history.
73 git init -q -b main "$_smoke_repo"
74 git -C "$_smoke_repo" config user.name "Arch Linux"
75 git -C "$_smoke_repo" config user.email "arch@example.invalid"
76 git -C "$_smoke_repo" remote add origin "https://github.com/example/widgets.git"
77 git -C "$_smoke_repo" commit -q --allow-empty -m "chore: initial release"
78 git -C "$_smoke_repo" tag 1.0.0
79 git -C "$_smoke_repo" commit -q --allow-empty -m "feat: add widget support"
80 git -C "$_smoke_repo" commit -q --allow-empty -m "fix: handle empty widgets"
81
82 PYTHONPATH="$_site_packages" python - "$_smoke_repo" <<'PY'
83import sys
84
85from git_changelog import AngularConvention, Changelog, get_template
86
87repository = sys.argv[1]
88changelog = Changelog(repository, convention=AngularConvention, bump="auto")
89assert changelog.versions_list[0].planned_tag == "1.1.0"
90rendered = get_template("keepachangelog").render(changelog=changelog)
91assert "add widget support" in rendered
92assert "handle empty widgets" in rendered
93PY
94
95 PYTHONPATH="$_site_packages" "$_check_dir/usr/bin/git-changelog" \
96 "$_smoke_repo" \
97 --config-file no \
98 --convention angular \
99 --bump auto \
100 --output "$_smoke_output"
101 grep -q '## \[1.1.0\]' "$_smoke_output"
102 grep -q 'add widget support' "$_smoke_output"
103 grep -q 'handle empty widgets' "$_smoke_output"
104}
105
106package() {
107 cd "$_pkgname-$pkgver"
108 python -m installer --destdir="$pkgdir" dist/*.whl
109 install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
110}
111

Scan history

Scanned at (UTC)SeverityRules
2026-09-21 00:26:32 Clean 2
2026-09-20 23:33:19 Low 1

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion