"Georg S. Weber" <georgswe...@googlemail.com> writes:
> 1.
> It can guarantee that each "official" release depends linearly on the
> previous oficial release. I.e. there is a well defined (and openly
> communicated/visible) series of patches, that will lead from one
> official release to the next/following one, when these patches are
> applied sequentially (for each of the different spkgs).
>
> 2.
> It allows for working with/testing *in parallel* several "development"
> releases, between which no such linear dependencies need to exist.
> E.g. it allowed for already creating and testing Sage-5.0.alpha
> development releases already at a point of time, where the "final
> official" Sage-4.8 didn't even exist yet (only rc candidates) --- or
> even could have existed, because for some of the few remaining
> blockers for Sage-4.8, the (eventual) patches themselves simply didn't
> exist yet!
>
> IMHO, the advantages of the current workflow (especially point 2
> above) do outweigh the disadvantages that are mentioned in this
> thread. And I don't see how any "inverse/undo patching" could possibly
> result in the freedom to work on several "truly independent"
> development releases/branches *at one and the same time*. Thus I
> believe that "easiness to anbandon changes made to previous
> development releases" is an essential need!

I think that you are missing an important point, which is that version
control is not for making nice lists of patches, but is for *tracking
development*. If you want to see a nice list of patches you can look at
http://boxen.math.washington.edu/home/release/sage-5.0.beta8/tickets.html
or similar files in other versions. I think this addresses your point
1), if I'm reading it correctly.

As for point 2), you say you want to make several "development releases
in parallel between which no linear dependencies need to exist".
Basically you're saying you want to create tentative collections of code
changes, cherry-picking patches from various people's work to see how
they work together. That is different from *releases*!

Jeroen has explicitly told people to base their patches on the latest
development branch. If the goal is to have development releases be in
parallel and totally independent, this is a rather odd request. It
should be up to the creator of these testing patch queues to rebase
their patches. Why should individual developers care about your or my
testing queues?

More to the point, why should we even want new patches be based on the
current development release if the next one is going to be totally
independent and parallel to it?

The reason that individual developers should care about rebasing or
otherwise modifying their patches to be compatible with *releases* is
that releases of software are supposed to be set in stone, so developers
can be sure that they are actually making forward progress by doing so.

Think about the very fact that there is a "latest" development release.
That means that if what you are saying is true, we are currently, and
*should be*, dragging authors of dozens of in-progress patches around to
various totally independent sets of changes approximately once a week!

Of course, in practice, nobody actually does this - they just rebase the
patch when `hg qimport` is no longer able to fuzzily apply the patch to
the latest development release (i.e. when someone else has touched files
they have touched, and even then only sometimes). In fact, they rarely
bother unless someone actually tries to apply the patch, fails, and sets
the ticket to needs_work.

And in practice, development releases are very rarely parallel or
totally independent. For the most part, they semantically are already
based on the previous development release, but just don't appear so in
the actual version control history graph.

If we switch to git, as I understand we eventually will, patches
(commits) made from an older dev release will be considered to "not
apply" (not be mergeable) a lot more often than merely the cases when
other people have meanwhile touched the same files - in fact, *always* -
unless we make development releases based on their predecessors. This is
the point I was making in the OP.

This mismatch between what developers are supposed to do / what
development releases technically are on one hand and what developers
actually do / what development releases are in practice on the other
hand, and the fact that the latter will necessarily lean more in the
direction of the former when we switch to git, are the reason I made
this thread. But even leaving git aside, as they say, don't make laws
you don't intend to enforce.

If making parallel totally independent collections of patches to test is
really what development releases are for, then I would suggest that we
tell people to just base their patches on the latest official release,
and ignore development releases. Which then makes development releases
rather useless for anything other than testing totally independent
collections of patches.

In fact, I may just stop pushing Jeroen's development release branches
to my github mirror of the Sage library since it is causing the problems
I mentioned in the OP.

> Finally, I'd like to add that in my eyes, Jeroen does a tremendously
> good job in "coordinating concurrent or conflicting changes", to the
> extent that more often than not, it is us fellow developers hanging
> behind after him, not the other way around! (Which is a very good
> thing, because it means Jeroen can attack developer jobs himself like
> the OS X 10.7 Lion problem.)

Absolutely. Jeroen does a lot of great work, and I applaud him for it.
Certainly I have no idea of how difficult it is to be a release manager.
But I don't think that should stop anyone from suggesting ways that what
he does, which affects all Sage developers, could be changed.

Let me hasten to point out, before someone calls me out on only having
13 rather paltry commits in the Sage library over the past year, that
this is not particularly relevant to me personally, since I have only
made rather trivial contributions to Sage so far :)

But I still strongly believe that a lot could be done to make Sage more
friendly to write code for than it currently is. In fact, I think that
Jeroen would also benefit from a revamp of our workflow.

Again, I absolutely don't mean any of this message or the rest of the
thread to be directed against Jeroen or to make light of the huge amount
of work he puts into moving Sage along.

Sorry for the long rant.

-Keshav @ Sea-Tac

----
Join us in #sagemath on irc.freenode.net !

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to