Requirements of a VCS packaging tool

James Westby jw+debian at jameswestby.net
Mon Mar 17 18:38:53 UTC 2008


Hi,

Martin asked that we look at what such a tool needs to do,
so here's my attempt at starting that discussion.

I do not believe this document will be entirely complete, please
add anything else that you think is important. This is obviously
also coloured by my own experience and views from developing a
tool, so please help to remove those biases.

Support Co-operation
--------------------

There are many workflows which could be adopted, but we require
that the any solution enhances our ability to co-operate.

There are many ways in which we should be able to co-operate

  * With upstream
    - Submitting patches back in their preferred format.
      - This will often be satisfied a plain patch that applies cleanly
        to the latest version or the tip of their development branch.
      - Providing it in their VCS's preferred format is another 
        possibility that many upstreams may prefer. However I doubt that
        any would refuse a patch not delivered using their VCS.
    - Taking individual patches from upstream in order to solve specific
      issues, for instance to fix a security bug in a stable release.

  * With other distros
    - If one distro uses a patch then others may or may not want to
      use it. We should therefore have an easy way to see what patches
      are applied in another distribution, and then take the ones
      we want.
    - We should also be able to modify patches from another distro
      to suit our own if needed, and then easily contribute the
      changes back if appropriate.

  * With other people in the same distro
    - The workflow should give everyone, not just one person, everything
      needed to work on the package.
    - If the format is not mandated by the whole distribution then
      getting the changes in to and out of the other available systems
      should be straightforward. I mean that, for instance, normal
      Debian package source uploads are still permitted then the changes
      made by someone doing that should be easy to integrate.
    - Also if there is more than approach used within a distro then
      in each it should be very easy for someone without experience with
      the system to make a simple change (consider security uploads).

Support common tasks easily
---------------------------

There are certain common tasks which should be made easy to do.

  * New upstream release
    - The process of incorporating a new upstream release, making
      the necessary changes to the packaging data, and updating
      any patches to apply to the new version should not be overly
      complicated.

  * Submitting patches to upstream
    - The patches that are used in the package may not apply directly
      to the current upstream. If that is the case it should be as easy
      as possible to rectify that for sending them upstream.

This is intentionally as vague as possible about how the final system
would look, as I think we need to keep the benefits that we are aiming
for in mind.

Does anyone have any points to add to this?

Thanks,

James





More information about the vcs-pkg-discuss mailing list