ports tree tagging again

Roman Bogorodskiy novel at freebsd.org
Wed Aug 16 12:37:32 UTC 2006


I. Problems

There are few things that I don't like in freebsd ports:

1. Binary packages are almost useless

The chance to install all that you need using 'pkg_add -r' and some given
time are very low. Some packages are outdated, some of them was not
build because something of its dependencies failed, etc. That's very
annoying... so you have to build almost everything yourself. It's just a
waste of time, esp. if you have not very fast box. And it's not always
possible to set up a local box for building packages, etc.

2. Port tree is unstable

IMO, port tree is not very stable. I mean: we're all human and more or
less often make mistakes and inaccurate commits. So you cannot be sure
that if you cvsup/portsnap your tree, it will not break something
(e.g. because of some typo). It's OK to have such errors in general, and
we can do nothing with it, but there are a lot of silly errors which
could be avoided and you definitely don't deal with on a stable system.

II Solutions

Yeah, I'm going to talk about ports tree tagging again :-). So what I
propose: having HEAD and STABLE (or whatever you want't to call it, 
so e.g. not to confuse with src/) branches. Committers commit all 
patches to HEAD first. Then they wait for two things:
  - For next run on pointyhat to find out if package builds well
    (for a start, we could wait only for 6.x/i386 builds)
  - User feedback. Like, if there's no complains like "ahh, it
    broke everyhting, ahaha, please backout!", so everything's ok

If both conditions are meat, the commit may be backported to STABLE.
After some time, when the dust will settle up, STABLE will be really
'stable' and most of the ports in STABLE would build OK. So package
building will be much faster, cause all ports will be in a rather good
shape and it won't happen that a dozen ports fail just because of
dependency problem. So we could have more or less working binary 
packages ready to use, and always more or less stable branch. Now,
when you cvsup ports, you cannot be sure everything works, moreover,
something really importand maybe be broken, like e.g. bsd.sites.mk
typos, etc. And it will cause extra pain cvsupting the tree again.
So for systems where you care about stability, you could use STABLE.

And about freezes, we can make them shorter with such an approach.
We could tag RELEASE_X_Y of STABLE, no HEAD, so it would not take
much time to fix all issues. And HEAD still will be open.

Note that I'm not proposing keeping RELEASE_X_Y as security branch like
it was proposed several times, though it's not incompatible with the
approach described above.

Comments are welcome!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 305 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20060816/134c7903/attachment.pgp


More information about the freebsd-ports mailing list