RFR: GIT Package VCS

Christopher Blizzard blizzard at redhat.com
Wed Jun 6 17:50:49 UTC 2007

On Wed, 2007-06-06 at 10:31 -0400, Jeremy Katz wrote:
> Right.  I really don't think we want to just take our current system,
> switch out CVS, and end up with all of the same workflows.  The change
> should be more about how do we improve workflows.  That means thinking
> about things like:
> * How do we make it easier for a maintainer to rebase their package to
> a
> newer upstream?
> * How do we make it easier for a maintainer to develop, test, and
> create
> a patch to fix a problem that's being experienced in Fedora?
> * How do we make it easy to send these patches to the upstream of the
> project being worked on?
> * How do we enable downstreams to take our bits, track them and make
> changes as they need/want?
> * How do we better enable a user who has a problem with something we
> ship to be able to fix it themselves and get the fix back to us?

Awesome stuff.  This is the right way to go about the conversation, for
sure.  I would love to add some stuff to this list:

o How do we bring developers and consumers of technology closer
together?  In a less market-ey speak way to put it: how do we let
software developers (not just maintainers!) get directly involved and
let them deal directly with the people who want to use it without the
maintainer as a mediator?

o How do we deal with _more than just RPMs_ as a build and delivery
mechanism.  (Trust me, this is coming.)

o Do we want to move to a process where code is just in a repo and it's
built automatically instead of source + patches + spec file?

Also, we need to think in use cases instead of abstract questions or
about what technology we can use.  For example:

"A developer has made a patch that he thinks fixes a bug for one of his
users.  He mails the user and says "here's a pointer to the patch - just
click on this button to try a build on your system."

One of my goals that I've had for Fedora, one that's easy to understand
is, "one click to try any patch."

What's required to make that happen?  Realistically we probably need to
move to a source control system so that when the developer commits (or
is pushed in the git sense) the tag with that commit or change is
available to apply.  Then the build system can just pull that tag, build
it and make it available to the user automatically.

I would like to compare this to the current work flow we have.  Right
now you report a bug, the developer looks at the bug, generates a patch.
That patch is usually uploaded to bugzilla.  Then a very advanced user
might be able to take that patch, figure out how to apply it to a spec
file, rebuild the rpm and then install and test it.  Then that test
information might be returned, it might not, but it's hard for you to
share that build with other people that might want to test.  Our current
system creates artificial barriers between developers and users and
requires a huge amount of cognitive load to get involved and to get
things done.  It's slowing things down and creating a bad experience.
And worse, everyone doing Linux is doing the same thing.

So I think we need to take the next step.  Think about how to build
simple, easy to understand systems and connect people closer together.

So does using git for the package VCS actually help solve this?  Not
really.  But does it mean that it's a step down the right path?  Sure.
But we need to make sure that we're thinking about the problems
correctly instead of just trying to apply a technology to a problem
without understanding which problem we're trying to solve.  And I don't
think our biggest problem is CVS.  Our biggest problems are scale and
how hard it is for people to be able to share information and be more


More information about the Fedora-infrastructure-list mailing list