User:Walters/Packaging VCS key proposal

From FedoraProject

< User:Walters(Difference between revisions)
Jump to: navigation, search
(Created page with '= 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/...')
 
m
Line 30: Line 30:
 
==== 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:
  
 
  #VCS: git:http://example/~you/proj.git
 
  #VCS: git:http://example/~you/proj.git
 
  #VCS: git:git://git.clutter-project.org/clutter#clutter-1.0
 
  #VCS: git:git://git.clutter-project.org/clutter#clutter-1.0

Revision as of 14:53, 5 March 2010

Contents

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