You are not logged in.
I would like to mark specific versions of my packages, to allow people to downgrade to a package for a very specific version, I know this is a bit odd for a rolling release philosophy, but need it to ensure scientific reproducibility. I figured since AUR uses git this was gonna be easy by just git tagging my version, but unfortunately pushing tags to server is not allowed:
$ git push --tags
Total 0 (delta 0), reused 0 (delta 0)
remote: error: pushing to a branch other than master is restricted
remote: error: hook declined to update refs/tags/v0.9.5
To ssh://aur4.archlinux.org/ucto.git
! [remote rejected] v0.9.5 -> v0.9.5 (hook declined)
error: failed to push some refs to 'ssh://aur@aur4.archlinux.org/ucto.git'
I was surprised to see that this was blocked. My question is if there is a good reason for this and if it can't just be allowed?
Alternatively, a server-side system that automatically tags based on $pkgver-$pkgrel would be great too.
Offline
Why on earth would you need tags in the AUR repo for this. The tags would be in the source repo. You can put tags in the source array to get a specific source tag.
EDIT: I see you're actually using a versioned tarball as a source. Assuming you have tarballs for other version, just make the version number a variable (as most packages do). Then to build a different version, the AUR user just changes the pkgver variable.
"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" - Richard Stallman
Offline
It's the actual PKGBUILD that changes between versions too, most notably the depends line; newer versions rely on newer dependencies, older versions might not even work with newer dependencies sometimes if there are backward-incompatible API changes. That's why I want to tag the AUR. I'd also like all versions of the package to be nicely listable/enumerable (which tags will do). It may be a bit of a niche-use but I don't see why this common and useful feature of git is blocked for AUR.
EDIT: not unimportant, the md5 sum of the package changes as well, per version, of course
Last edited by proycon (2017-01-12 13:09:33)
Offline
Are the commit hashes not enough? If you use commit messages like Update to v0.2.1 or similar then you could do
$ git log --oneline
...
123abcd Update to v0.2.1'
...
...
$ git checkout 123abcd
Last edited by mis (2017-01-12 14:10:59)
Offline
That would work as a workaround, but is of course a poor substitute for proper git tags.
Offline
Why is this necessary? tags are essentially used to provide aliases for commits, but there isn't usually a good reason for the AUR to have anything but one commit per version, and whenever there are multiple commits per version you won't want the first of those commits (with obsolete build instructions/deps/etc) so the optimistically-tagged-first commit will be wrong and cannot be updated.
Just grep the git log for the latest instance of "pkgver = $pkgver" in .SRCINFO, since .SRCINFO exists to provide a sane interface to the package information.
Managing AUR repos The Right Way -- aurpublish (now a standalone tool)
Offline
I'll resort to that workaround for the time being then, grepping the history of the .SRCINFO sounds acceptable; but I still don't really see the argument for not allowing git tags.
Offline
They didn't want branches, so they whitelisted "master".
And you haven't really given a sufficient reason to whitelist refs/tags/* either.
e.g If you tag the commit dealing with a specific upstream version, then update to fix a mistake you made, you won't be able to update the tag to point to a new commit. So tags don't help so much, unless you tag every single commit...
Managing AUR repos The Right Way -- aurpublish (now a standalone tool)
Offline
To build even further on the above - I get that you want to make it easy for people to get older versions. But tags would only help those who are both capable enough with git and well informed enough about your specific AUR package to know how to and to know to checkout a specific tag to get a specific version. Anyone in such a category could quite readily also be given a commit number to check out - this already can be done without tags.
"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" - Richard Stallman
Offline