[Unison-hackers] a common patch set - first attempt [repost]
Benjamin Pierce
bcpierce at cis.upenn.edu
Tue Jun 14 10:35:13 EDT 2005
Hi Jerome,
> I'm in favor of option (4), and actually I don't really understand
> what overhead you are talking about: improvements would be done in the
> "trunk", just as now.
Perhaps I haven't understood exactly what you have in mind. I thought
proposal (4) would mean making a branch in the repository for each of
the old versions (2.9.1, 2.10.0, etc., etc.) and, whenever a bug was
fixed in the trunk, remembering to propagate the change to all of these
branches. If we're just talking about a "new development" trunk and a
"bug fixing in most recent stable version" branch, then that's easier
to deal with. There's still a little more work for someone fixing a
bug (compared to just fixing it for future versions), but as you say it
is easier than doing the same thing with patches.
Someone will need to do a little hacking to implement this development
model: Currently, every new svn commit ticks the minor version number,
but we'd now want to do this just on the development trunk, not on the
bugfix branch.
> But I think the right question is what development model we want for
> Unison.
I agree completely.
The development model that I'd like to be in is something like this.
Most of the time, there are just two versions of Unison: a stable
version that is used by almost everybody and a development version that
is used just by developers and a few bleeding edge types that are
willing to help test new features. Every so often, we make a
beta-release; when this happens, there is a period of a few weeks when
there are three versions: the old stable, the new beta, and the
developer version. Once we're sure that the beta version is working
well (perhaps after fixing a few bugs, which we'd do without changing
its version number), it gets promoted to stable and we go back to the
standard situation with just two active versions. I think we could do
all this pretty easily with subversion. (After all this discussion, I
believe the main problem with our release process is precisely that we
never want to just promote the beta version to stable, because there
are almost always new bug fixes in the development version; so instead
we make a new beta release, etc.)
One point that I do not understand yet is whether people have
compelling reasons for wanting to compile patched variants of very old
versions (like 2.9.1). I can imagine two reasons why people might
think of doing this: (1) because they only want to install updates on
one host and have it communicate with another host running an
(unpatched) old version, and (2) because they might consider a later
change to be a downgrade (e.g., when we added resource fork support, I
think some people were unhappy because things that used to work
partially, but well enough for them, were turned into error
situations). But I hope this is not a major need for many people.
>
> For a long time, we had only one branch where both bug fixes and new
> features were committed. Also, we made few releases as it required a
> lot of work. I think this did not work that well, as it took a very
> long time for bugs to be fixed in a stable release, and by the time
> they were fixed, new bugs were also added. (There was no bug
> resulting in data loss though, which shows how well Unison was
> designed by Benjamin.)
And you and Trevor!!!
Regards,
- Benjamin
More information about the Unison-hackers
mailing list