Re: release number when upstream *only* has git hashes?

2011-10-05 Thread Toshio Kuratomi
On Tue, Oct 04, 2011 at 09:32:28PM -0700, Garrett Holmstrom wrote:
 On 2011-10-04 12:01, Toshio Kuratomi wrote:
  So my solyution:
  foo-0-1.20110120git.fc16 vs
 
  Your solution:
  foo-20110120-1.20110120git.fc16
 
  (Since it's a snapshot, the date has to go into the release string anyway)
  Which is uglier?
 
  Also, since these are snapshots, a date in the upstream version field isn't
  really that great either.  Which branch is this from?  Which repository
  (in the case of DVCS)?
 
 With respect to a package's n-v-r, it doesn't matter which repository 
 one's checkout of a given git commit comes from.  One of git's main 
 tenets is that a given hash refers to the same object in every 
 repository in which it exists.  Git commit hashes are also independent 
 of the branches (if any) that point to them.
 
 With respect to recording source URLs, we already require commentary 
 with a list of commands when people pull sources directly from version 
 control.  This will necessarily include a URL for the appropriate git 
 repository.
 
  Now do we want to put the git hash into the version field too?
 
 For the package's n-v-r alone to uniquely refer to a given commit it 
 *must* contain the hash in a case such as this.  To comply with 
 packaging guidelines it also needs to contain a date and the string 
 git.  This means it would need to contain 20111005git0123456.
 

To clarify what I meant since it seems both you and Ralf read this
differently than I intended:

I'm starting by saying that using date alone is not sufficient to identify
the checkout and therefore should not be used in the upstream Version:
field.  I then put forward what I think people's next candidate would be:
the git hash.  At that point, (I thought this but perhaps didn't write it
out) you run into the problem where the git hash does not increment and
therefore you potentially need to bump epoch with every release.  So the git
hash is also not a good candidate for the upstream version field.

 (I would also posit that the date is unnecessary, as it may not identify 
 a unique commit, but that is a topic for another thread.)
 
The rationale is that the Release field is documenting for two audiences.
The important audience is the end user.  The end user either doesn't know or
doesn't want to go through the trouble of verifying what version of software
a git hash refers to.  They just want to be able to say that a bug was fixed
on January 1, 2011 or that Ubuntu has the 0.11 release from February 2,
2012 and then compare that to the Fedora package.  The second audience is
other packagers and developers of the software.  These people may want to
grab the exact snapshot of the software from upstream.  If they don't want
to open up the spec file to see our comments on how to get the snapshot
(maybe they're actually Ubuntu devs and don't know how to get at that
information easily) the release field may optionally provide this
information.

-Toshio


pgpAjvBypxtOn.pgp
Description: PGP signature
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: release number when upstream *only* has git hashes?

2011-10-05 Thread Toshio Kuratomi
On Wed, Oct 05, 2011 at 06:53:50AM +0200, Ralf Corsepius wrote:
 On 10/04/2011 09:01 PM, Toshio Kuratomi wrote:
 
   Now do we want to put the git hash into the version
  field too?
 Yes, because git checkouts by date are not sufficiently reliable to 
 provide deterministic checkouts from git.
 
I hope you don't really mean this.  git hashes belong in the Release field;
not in the version field.

-Toshio


pgp8UNwWCOi2U.pgp
Description: PGP signature
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: release number when upstream *only* has git hashes?

2011-10-05 Thread Ralf Corsepius
On 10/05/2011 04:35 PM, Toshio Kuratomi wrote:
 On Wed, Oct 05, 2011 at 06:53:50AM +0200, Ralf Corsepius wrote:
 On 10/04/2011 09:01 PM, Toshio Kuratomi wrote:

   Now do we want to put the git hash into the version
 field too?
 Yes, because git checkouts by date are not sufficiently reliable to
 provide deterministic checkouts from git.

 I hope you don't really mean this.
Certainly not -  version - release mixup on my part :() - Sorry.

 git hashes belong in the Release field;
 not in the version field.

I was advocating to mandate git hashes as part of the release-string, 
because checkouts by date do not work well with git.

Ralf

-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: release number when upstream *only* has git hashes?

2011-10-04 Thread Eric Smith
I wrote:
 What should I use for the release number in a spec when upstream does 
 not have releases, and *only* has git hashes?  It's not a prerelease 
 since it is not clear that there will ever be any official release.

I meant version number, not release number.  I imagine that the 
release number should still be 0.1.mmddgithashprefix.  Or for 
this case, should the date and git hash go into the version?

Thanks,
Eric


-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: release number when upstream *only* has git hashes?

2011-10-04 Thread Ralf Corsepius
On 10/04/2011 08:04 AM, Eric Smith wrote:
 I wrote:
 What should I use for the release number in a spec when upstream does
 not have releases, and *only* has git hashes?  It's not a prerelease
 since it is not clear that there will ever be any official release.

 I meant version number, not release number.

OK, this makes a big difference.

If the project doesn't use an internal version number, I'd use 0 and 
never increment it.

  If the project has some internal version number (e.g. most autoconf 
based project have one, even if they don't have a release tarball), I'd 
use this one.

 I imagine that the
 release number should still be 0.1.mmddgithashprefix.

I'd use 0.mmddgithash.%{?dist} or similar.

The only points that count are
- Do not introduce (inofficial) version numbers (Upstream is the only 
authority to set them), because they may cause problems, should upstream 
once start to use version numbers.

- Within a version all release tags must be steadily incrementable and 
should provide sufficient human readable information to allow others to 
verify the tarball.

 Or for
 this case, should the date and git hash go into the version?

I'd recommend doing so, because this helps verifying/regenerating the 
tarball.

On a wider scope, I'd however question if such a project is mature and 
stable enough and maintained well enough to be included into Fedora. 
Many projects, which do not release tarballs in longer terms often prove 
to be poorly upstream maintained and to be problematic when it comes to 
inclusion into a distro (e.g. lack of stable APIs, SONAME etc).

Ralf
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: release number when upstream *only* has git hashes?

2011-10-04 Thread Toshio Kuratomi
On Tue, Oct 04, 2011 at 09:13:46AM +0200, Ralf Corsepius wrote:
 On 10/04/2011 08:04 AM, Eric Smith wrote:
  I wrote:
  What should I use for the release number in a spec when upstream does
  not have releases, and *only* has git hashes?  It's not a prerelease
  since it is not clear that there will ever be any official release.
 
  I meant version number, not release number.
 
 OK, this makes a big difference.
 
 If the project doesn't use an internal version number, I'd use 0 and 
 never increment it.
 
   If the project has some internal version number (e.g. most autoconf 
 based project have one, even if they don't have a release tarball), I'd 
 use this one.
 
+1

  I imagine that the
  release number should still be 0.1.mmddgithashprefix.
 
 I'd use 0.mmddgithash.%{?dist} or similar.
 
Just to clarify -- this release string goes hand-in-hand with using 0 as the
version string.  We're assuming that upstream will never release a version
0 and therefore the post-release snapshot form is better than the
pre-release form.

 The only points that count are
 - Do not introduce (inofficial) version numbers (Upstream is the only 
 authority to set them), because they may cause problems, should upstream 
 once start to use version numbers.
 
 - Within a version all release tags must be steadily incrementable and 
 should provide sufficient human readable information to allow others to 
 verify the tarball.
 
+1

  Or for
  this case, should the date and git hash go into the version?
 
 I'd recommend doing so, because this helps verifying/regenerating the 
 tarball.
 
I think you read this wrong or missed a negative in your reply.  For me,
I would *not* recommend putting the date and git hash into the version.
(The release, yes;  version, no).  The hash definitely should not go there
because it cannot be depended on to increment.  The date should not go there
as you cannot tell if upstream will someday switch to an actual version
string (which will then need an Epoch to upgrade cleanly from the date).

-Toshio


pgpxxnoUYXxHC.pgp
Description: PGP signature
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: release number when upstream *only* has git hashes?

2011-10-04 Thread Matej Cepl
On 4.10.2011 16:38, Toshio Kuratomi wrote:
 The date should not go there
 as you cannot tell if upstream will someday switch to an actual version
 string (which will then need an Epoch to upgrade cleanly from the date).

That's your opinion or actually some rule? Well, it depends on the 
upstream circumstances, but if reasonable, I would think this is exactly 
the situation where I would leave incrementing epoch number as an 
available fallback and just go with dates as versions. Having software

foo-0-0.something very long and complicated.fc16

seems like something so ugly, that I wouldn't go there as a long term 
solution.

Matěj


-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: release number when upstream *only* has git hashes?

2011-10-04 Thread Toshio Kuratomi
On Tue, Oct 04, 2011 at 05:58:33PM +0200, Matej Cepl wrote:
 On 4.10.2011 16:38, Toshio Kuratomi wrote:
  The date should not go there
  as you cannot tell if upstream will someday switch to an actual version
  string (which will then need an Epoch to upgrade cleanly from the date).
 
 That's your opinion or actually some rule? Well, it depends on the 
 upstream circumstances, but if reasonable, I would think this is exactly 
 the situation where I would leave incrementing epoch number as an 
 available fallback and just go with dates as versions. Having software
 
 foo-0-0.something very long and complicated.fc16
 
 seems like something so ugly, that I wouldn't go there as a long term 
 solution.
 
So my solyution:
foo-0-1.20110120git.fc16 vs

Your solution:
foo-20110120-1.20110120git.fc16

(Since it's a snapshot, the date has to go into the release string anyway)
Which is uglier?

Also, since these are snapshots, a date in the upstream version field isn't
really that great either.  Which branch is this from?  Which repository (in
the case of DVCS)?  Now do we want to put the git hash into the version
field too?

If upstream is shipping releases where they put dates in as their versions
(as some fonts do) you might be able to make a case for this.  In this case,
though, I don't think this is really a place to create our own release
string and put it in the field reserved for the upstream version.

-Toshio


pgpLg3PwERaYL.pgp
Description: PGP signature
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: release number when upstream *only* has git hashes?

2011-10-04 Thread Garrett Holmstrom
On 2011-10-04 12:01, Toshio Kuratomi wrote:
 So my solyution:
 foo-0-1.20110120git.fc16 vs

 Your solution:
 foo-20110120-1.20110120git.fc16

 (Since it's a snapshot, the date has to go into the release string anyway)
 Which is uglier?

 Also, since these are snapshots, a date in the upstream version field isn't
 really that great either.  Which branch is this from?  Which repository
 (in the case of DVCS)?

With respect to a package's n-v-r, it doesn't matter which repository 
one's checkout of a given git commit comes from.  One of git's main 
tenets is that a given hash refers to the same object in every 
repository in which it exists.  Git commit hashes are also independent 
of the branches (if any) that point to them.

With respect to recording source URLs, we already require commentary 
with a list of commands when people pull sources directly from version 
control.  This will necessarily include a URL for the appropriate git 
repository.

 Now do we want to put the git hash into the version field too?

For the package's n-v-r alone to uniquely refer to a given commit it 
*must* contain the hash in a case such as this.  To comply with 
packaging guidelines it also needs to contain a date and the string 
git.  This means it would need to contain 20111005git0123456.

(I would also posit that the date is unnecessary, as it may not identify 
a unique commit, but that is a topic for another thread.)

 If upstream is shipping releases where they put dates in as their versions
 (as some fonts do) you might be able to make a case for this.  In this case,
 though, I don't think this is really a place to create our own release
 string and put it in the field reserved for the upstream version.

+1.  I specifically suggest foo-0-1.20111005git0123456.fc16.  Doing so 
will do a number of useful things:

* A version of 0 is a clear signal that upstream does not use 
traditional version numbering.

* A version of 0 provides a natural upgrade path if upstream later 
chooses to start using traditional version numbering.

* Including the git hash makes the n-v-r alone refer to unique code.

* It does not duplicate information.

* It requires one to bend the fewest packaging guidelines.  (One is only 
filling the Version field with an obvious placeholder)
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: release number when upstream *only* has git hashes?

2011-10-04 Thread Ralf Corsepius
On 10/04/2011 09:01 PM, Toshio Kuratomi wrote:
 On Tue, Oct 04, 2011 at 05:58:33PM +0200, Matej Cepl wrote:
 On 4.10.2011 16:38, Toshio Kuratomi wrote:
 The date should not go there
 as you cannot tell if upstream will someday switch to an actual version
 string (which will then need an Epoch to upgrade cleanly from the date).

 That's your opinion or actually some rule?
It's common sense trying to reflect the priniciple of least conflict, 
by avoiding potential NEVR conflicts with upstream and with 3rd party 
package repos.

 Well, it depends on the
 upstream circumstances, but if reasonable, I would think this is exactly
 the situation where I would leave incrementing epoch number as an
 available fallback and just go with dates as versions. Having software

 foo-0-0.something very long and complicated.fc16

 seems like something so ugly, that I wouldn't go there as a long term
 solution.

 So my solyution:
 foo-0-1.20110120git.fc16 vs

 Your solution:
 foo-20110120-1.20110120git.fc16

 (Since it's a snapshot, the date has to go into the release string anyway)
 Which is uglier?
IMO, without any doubt, the latter.

 Also, since these are snapshots, a date in the upstream version field isn't
 really that great either.  Which branch is this from?
Correct me if I'm wrong (I am far from being a git specialist), but I 
thought hashes were unique across branches?

  Which repository (in
 the case of DVCS)?
IMO, similar to tarballs, which are required to be provided by the 
project's master repository, sources pulled from git need to originate 
from a project's public master repository.

  Now do we want to put the git hash into the version
 field too?
Yes, because git checkouts by date are not sufficiently reliable to 
provide deterministic checkouts from git.

Ralf
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


release number when upstream *only* has git hashes?

2011-10-03 Thread Eric Smith
What should I use for the release number in a spec when upstream does 
not have releases, and *only* has git hashes?  It's not a prerelease 
since it is not clear that there will ever be any official release.

Thanks,
Eric

-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel