From Fedora Project Wiki
(Grrr... discussion happening in an unrelated fesco ticket)
No edit summary
Line 1: Line 1:
= Executive Summary =
{{draft}}
== Executive Summary ==


This proposal is to add an informative comment to the Fedora spec files, of the form:
This proposal is to add an informative comment to the Fedora spec files, of the form:
Line 9: Line 10:
  #VCS: git:git://git.gnome.org/metacity
  #VCS: git:git://git.gnome.org/metacity


= Rationale =
== Rationale ==


Currently spec files have a lot of metadata about the upstream project; however it lacks one of the most important, which is the upstream revision control system.
Currently spec files have a lot of metadata about the upstream project; however it lacks one of the most important, which is the upstream revision control system.
Line 20: Line 21:
* In the more distant future, reworking Fedora's packaging to be more VCS-centric (i.e. having a mirror of upstream VCS instead of series of inefficient tarball snapshots in lookaside cache)
* In the more distant future, reworking Fedora's packaging to be more VCS-centric (i.e. having a mirror of upstream VCS instead of series of inefficient tarball snapshots in lookaside cache)


= Implementation =
== Implementation ==


Because RPM only allows a well-known set of keys, this proposal introduces the key with a comment prefix, to ensure that older RPM versions do not complain.  A patch has been [[http://rpm.org/ticket/143 submitted upstream]] however.
Because RPM only allows a well-known set of keys, this proposal introduces the key with a comment prefix, to ensure that older RPM versions do not complain.  A patch has been [[http://rpm.org/ticket/143 submitted upstream]] however.
Line 28: Line 29:
Supported implementation formats:
Supported implementation formats:


==== git ====
=== git ===


The ''<vcsurl>'' part should be in a format which '''git clone''' as of Git 1.6.6 will accept, with the additional qualifier that the URL may have a fragment identifer which denotes a branch.  Examples:
The ''<vcsurl>'' part should be in a format which '''git clone''' as of Git 1.6.6 will accept, with the additional qualifier that the URL may have a fragment identifer which denotes a branch.  Examples:
Line 35: Line 36:
  #VCS: git:git://git.clutter-project.org/clutter#clutter-1.0
  #VCS: git:git://git.clutter-project.org/clutter#clutter-1.0


=== Discussion ===
== Discussion ==
Unfortunately, some questions were raised here: https://fedorahosted.org/fesco/ticket/353  Wait until that dies down and then make sure those questions get asked and addressed here.
Unfortunately, some questions were raised here: https://fedorahosted.org/fesco/ticket/353  Wait until that dies down and then make sure those questions get asked and addressed here.
[[Category: Packaging guidelines draft]]

Revision as of 03:26, 11 March 2010

Warning.png
This page is a draft only
It is still under construction and content may change. Do not rely on the information on this page.

Executive Summary

This proposal is to add an informative comment to the Fedora spec files, of the form:

#VCS: <vcstype>:<vcsurl>

Example:

#VCS: git:git://git.gnome.org/metacity

Rationale

Currently spec files have a lot of metadata about the upstream project; however it lacks one of the most important, which is the upstream revision control system.

Adding this data will allow:

  • Cherrypicking a patch directly from the upstream VCS
  • Correspondence checking between source tarballs and VCS checkouts
  • Automated build scripts to update the spec from VCS
  • In the more distant future, reworking Fedora's packaging to be more VCS-centric (i.e. having a mirror of upstream VCS instead of series of inefficient tarball snapshots in lookaside cache)

Implementation

Because RPM only allows a well-known set of keys, this proposal introduces the key with a comment prefix, to ensure that older RPM versions do not complain. A patch has been [submitted upstream] however.

The key format has been influenced by the [Maven SCM format], however we drop the redundant "scm:" prefix.

Supported implementation formats:

git

The <vcsurl> part should be in a format which git clone as of Git 1.6.6 will accept, with the additional qualifier that the URL may have a fragment identifer which denotes a branch. Examples:

#VCS: git:http://example/~you/proj.git
#VCS: git:git://git.clutter-project.org/clutter#clutter-1.0

Discussion

Unfortunately, some questions were raised here: https://fedorahosted.org/fesco/ticket/353 Wait until that dies down and then make sure those questions get asked and addressed here.