Difference between revisions of "Talk:VCS package guidelines"
m (→https:// vs git://) |
|||
(9 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
Could we consider a guideline to use firewall-friendly protocols when possible (e.g. https://github.com/matplotlib/matplotlib.git instead of git://github.com/matplotlib/matplotlib.git)? | Could we consider a guideline to use firewall-friendly protocols when possible (e.g. https://github.com/matplotlib/matplotlib.git instead of git://github.com/matplotlib/matplotlib.git)? | ||
− | --[[User:Mitch feaster|Mitch feaster]] 14:34, 15 November 2011 (EST) | + | <br>--[[User:Mitch feaster|Mitch feaster]] 14:34, 15 November 2011 (EST) |
:It shouldn't be too hard to just mention that. As I haven't heard of anybody else ever bringing it up, it'd probably be enough. | :It shouldn't be too hard to just mention that. As I haven't heard of anybody else ever bringing it up, it'd probably be enough. | ||
Line 28: | Line 28: | ||
:::::--[[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 08:22, 19 May 2013 (UTC) | :::::--[[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 08:22, 19 May 2013 (UTC) | ||
− | : I use this dirty hack: {{ic|<nowiki>cvs history -c -a | cut -d' ' -f2 | sort -u | tail -n 1 | sed 's|-||g"</nowiki>}} ; could probably be improved. --[[User:Buhman|Buhman]] ([[User talk:Buhman|talk]]) 18:00, 6 June | + | : I use this dirty hack: {{ic|<nowiki>cvs history -c -a | cut -d' ' -f2 | sort -u | tail -n 1 | sed 's|-||g"</nowiki>}} ; could probably be improved. |
− | + | :--[[User:Buhman|Buhman]] ([[User talk:Buhman|talk]]) 18:00, 6 June 2013 (UTC) | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== More on git pkgver()'s == | == More on git pkgver()'s == | ||
Line 87: | Line 69: | ||
:::::--[[User:Det|Det]] ([[User talk:Det|talk]]) 05:57, 19 May 2013 (UTC) | :::::--[[User:Det|Det]] ([[User talk:Det|talk]]) 05:57, 19 May 2013 (UTC) | ||
− | :I have the same issue with tup | + | :I have the same issue with {{AUR|tup-git}} package that bumped its version from {{ic|0.6}} to {{ic|0.6.5}}. previously generated version was {{ic|0.6.350.gfoobar}} now it became {{ic|0.6.5}} that is smaller than previous. Generated version should split upstream version from {{ic|git describe}} version. My vote is goes to {{ic|~}} delimiter proposed above. Or maybe we can use {{ic|-}} as delimiter? |
:--[[User:Anatolik|Anatolik]] ([[User talk:Anatolik|talk]]) 11:43, 17 Jun 2013 (UTC) | :--[[User:Anatolik|Anatolik]] ([[User talk:Anatolik|talk]]) 11:43, 17 Jun 2013 (UTC) | ||
− | ::You can't have a | + | |
+ | ::You can't have a {{ic|-}} in the pkgver, so that's out. {{ic|~}} is an option, but I kind of like the suggested {{ic|.r}}. Seems cleaner to me. | ||
::[[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 16:47, 26 July 2013 (UTC) | ::[[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 16:47, 26 July 2013 (UTC) | ||
− | ::: | + | |
+ | :::{{ic|r}} prefix is fine with me. We also need to cut leading {{ic|v}} from the version returned by git. Here is slightly modified {{ic|pkgver()}} used by {{AUR|tup-git}} package {{ic|<nowiki>git describe | sed -E 's/^v//;s/([^-]*-g)/r\1/;s/-/./g'</nowiki>}} | ||
:::--[[User:Anatolik|Anatolik]] ([[User talk:Anatolik|talk]]) 6:13, 26 Sep 2013 (UTC) | :::--[[User:Anatolik|Anatolik]] ([[User talk:Anatolik|talk]]) 6:13, 26 Sep 2013 (UTC) | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== pkgver function for hg based on tags == | == pkgver function for hg based on tags == | ||
− | I recent came across a way with hg to show the most recent tag, as well as the number of commits from this tag (similar to the output of | + | I recent came across a way with hg to show the most recent tag, as well as the number of commits from this tag (similar to the output of {{ic|git describe}}.) |
{{hc|<nowiki>pkgver() { | {{hc|<nowiki>pkgver() { | ||
Line 166: | Line 118: | ||
It is proper to use this format | It is proper to use this format | ||
− | pkgver() { | + | {{bc|<nowiki>pkgver() { |
cd $_repo | cd $_repo | ||
_id=$(hg identify -i) | _id=$(hg identify -i) | ||
echo $(hg identify -n).${_id:0:4} | echo $(hg identify -n).${_id:0:4} | ||
− | } | + | }</nowiki> |
+ | }} | ||
+ | --[[User:Dlin|Dlin]] ([[User talk:Dlin|talk]]) 05:30, 26 August 2013 (UTC) | ||
== fossil == | == fossil == | ||
− | pkgver() { | + | {{bc|<nowiki>pkgver() { |
cd local_repo | cd local_repo | ||
_id=$(cat manifest.uuid 2>/dev/null) | _id=$(cat manifest.uuid 2>/dev/null) | ||
echo ${_id:0:4} | echo ${_id:0:4} | ||
− | } | + | }</nowiki> |
+ | }} | ||
+ | --[[User:Dlin|Dlin]] ([[User talk:Dlin|talk]]) 05:36, 26 August 2013 (UTC) |
Revision as of 15:25, 25 November 2013
Contents
https:// vs git://
Could we consider a guideline to use firewall-friendly protocols when possible (e.g. https://github.com/matplotlib/matplotlib.git instead of git://github.com/matplotlib/matplotlib.git)?
--Mitch feaster 14:34, 15 November 2011 (EST)
- It shouldn't be too hard to just mention that. As I haven't heard of anybody else ever bringing it up, it'd probably be enough.
- --Det (talk) 22:51, 2 May 2013 (UTC)
Updating a CVS repo
I don't use cvs. How can you describe the pkgver for cvs (for pacman 4.1)?
-- Dracorp (talk) 09:31, 6 April 2013 (UTC)
- CVS is not supported in pacman 4.1 like the other VCS tools. You will need to update pkgver manually until CVS support is added.
- -- Jstjohn (talk) 22:44, 15 April 2013 (UTC)
- The download example can still be found in
/usr/share/pacman/
. The next version of the ABS package should update it a bit so the download happens in the prepare function where it belongs. As for pkgver, I think the generic example using date covers that, as there's not a way to get a version number from a CVS repo. Maybe a note to that effect? - -- Scimmia (talk) 07:17, 15 May 2013 (UTC)
- The download example can still be found in
- That makes the most sense, but it might also be a good idea to rename the "Fallback" section to something like "Fallback / CVS" to make it more obvious even when you're just checking out the table of contents.
- Hmm, there were a number of patches submitted last month for cleaning up the prototypes, looks like none have been committed yet. I do remember a discussion (IRC maybe?) questioning the proper place for the prototypes, so maybe that's why? Looking at the patches, I was mistaken anyway; they didn't update the darcs or cvs prototypes. Simple enough, I'll send in a patch myself.
- --Scimmia (talk) 08:22, 19 May 2013 (UTC)
- I use this dirty hack:
cvs history -c -a | cut -d' ' -f2 | sort -u | tail -n 1 | sed 's|-||g"
; could probably be improved. - --Buhman (talk) 18:00, 6 June 2013 (UTC)
More on git pkgver()'s
I would also like to see packages use pkgver
functions like this:
git describe --always --long | sed -E 's/([^-]*-g)/r\1/;s/-/./g'
so they are more friendly to vercmp
.
Current behaviour using git-git as an example:
current ver: 1.8.2.210.g123abc-1
next ver: 1.8.2.1.50.g123abc-1
vercmp 1.8.2.210.g123abc 1.8.2.1.50.g123abc 1 # the first is greater than the second
Right now, the current version is actually greater than the new version, causing a downgrade. If r
is appended to the patch level (the numbers just before the g<hex>
bit), then vercmp
would order the versions correctly.
current ver: 1.8.2.r210.g123abc-1
next ver: 1.8.2.1.r50.g123abc-1
vercmp 1.8.2.r210.g123abc 1.8.2.1.r50.g123abc -1 # the first is less than the second
KaiSforza (talk) 20:42, 18 April 2013 (UTC)
- So Git makes some projects jump down from
x.x.x.210
tox.x.x.x.50
? Is that really intended behavior? - --Det (talk) 22:48, 2 May 2013 (UTC)
- I have the same issue with tup-gitAUR package that bumped its version from
0.6
to0.6.5
. previously generated version was0.6.350.gfoobar
now it became0.6.5
that is smaller than previous. Generated version should split upstream version fromgit describe
version. My vote is goes to~
delimiter proposed above. Or maybe we can use-
as delimiter? - --Anatolik (talk) 11:43, 17 Jun 2013 (UTC)
pkgver function for hg based on tags
I recent came across a way with hg to show the most recent tag, as well as the number of commits from this tag (similar to the output of git describe
.)
pkgver() { cd local_repo hg log -r . --template '{latesttag}.{latesttagdistance}.{node|short}\n' }
3.0.1.40.ee9a2543fcd6
Please could this be included in the page.
Garyvdm (talk) 09:03, 23 July 2013 (UTC)
git pkgver: Date of last commit at the beginning of the version number for compatibility with older PKGBUILDs from AUR?
We have quite a bunch of older PKGBUILDs for -git packages in AUR which still work but which do not have a pkgver function yet. Many of these actually carry a date as version number (mostly the date of the last git commit at the time when the PKGBUILD was last updated).
When you update these scripts to use one of the two pkgver functions suggested on the wiki page, AUR helpers like packer will (in most cases) suggest that there is a newer version in AUR on every system update. My proposal to solve this problem is a pkgver function which precedes the generated version number with the date of the last git commit:
pkgver() { cd "${_pkgname}" echo $(git log -n 1 --date=short | sed -nr 's|^Date:\s+([0-9]{4})-([0-9]{2})-([0-9]{2})$|\1\2\3|p').$(git rev-list --count HEAD).$(git rev-parse --short HEAD) }
This function is *not* intended to go into PKGBUILDs in AUR, but could be proposed as a temporary "local" fix in the wiki for the period of time until the package maintainer has found time to update his PKGBUILD in AUR.
--Hardfalcon (talk) 21:22, 17 August 2013 (UTC)
- Since it's just a local workaround, why not just hardcode a larger number in there? If you want the date of the last commit, I would suggest awk as being easier to use and to read/understand
git log -n 1 --date=short | awk '/Date/ {gsub ("-",""); print $2}'
shorten hg version
To prevent long package file name, It is proper to use this format
pkgver() { cd $_repo _id=$(hg identify -i) echo $(hg identify -n).${_id:0:4} }
--Dlin (talk) 05:30, 26 August 2013 (UTC)
fossil
pkgver() { cd local_repo _id=$(cat manifest.uuid 2>/dev/null) echo ${_id:0:4} }