Dear Sage-Combinat developers,

It's been quite an intensive Sage Days here in Portland working on the
upcoming Sage workflow! Here is a first update.

The core feature is that the interaction with the Sage official
repository will be done through our version control system: updating
to the latest version, sending a modification, reviewing a ticket,
... No more manual posting or downloading patches from trac or
extracting a patch from an old version of Sage and manually rebasing
it onto a new version.

In practice this clears the main hurdle that was preventing us to use
standard version control features like branches. Gone should be the
Sage-Combinat queue which was isolating us from the other Sage devs
and forcing tedious rebasing and bookkeeping. Instead, each project
will be able to develop itself on its own branch without perturbing
the others. Much more flexibility and productivity.

In practice, the team has chosen to base the new workflow on top of
the DVCS git instead of mercurial previously. I am not necessarily
convinced by this choice, but I respect it: by doing the work they
earn the right to do the technical choices. For issue tracking, we
will still be using trac; however trac will now be aware of the
underlying DCVS and most operations will be doable from the command
line, if not offline.

The other good news is that, thanks to the hard work the team put into
this during all week and before, this could be coming relatively
fast. I for myself will be trying out the new workflow in the coming
weeks, and maybe a transition period around Sage Days 49?

So that all is pretty exciting and now you all should be longing to
switch to the new workflow. So I can state the bad news :-)

- The transition will require work! Migrating the current patches,
  playing with the new workflow, smoothing out all the rough edges,
  training our team, writing documentation and scripts, ...

- Experience tells that a key feature for Sage's development is the
  handling of dependencies between tickets. For various reason we need
  that more than most other software projects. This means that we are
  on our own here. We will need to discover ourselves the best (and
  worst!) practices and develop appropriate tools on top of our DCVS.

- How well this all will work in practice is quite open:
  - How easy will it be to keep an overview of what everybody is
    working on? To detect conflicts and opportunities of
    collaborations early on?
  - How smooth will it be to jump between branches? E.g. will
    reviewing a branch which is based on the very latest version of
    Sage require a lot of recompilation time?
  - How easy and robust will it be to join branches in order to
    combine all the in-development features that we need for our
    calculations?

Anyway, let's move forward. Work is already in progress to try to
tackle those.

Beside participating to the many design discussions, I spent most of
the week automatizing the migration of the queue from a linear stack
of patches to a relatively flat graph of independently branches (see
attached file). At this point, I can import most of the queue. A good
chunk of the work was to recover the dependencies the hard way. And
this is only about the syntactic dependencies. There certainly are
semantic dependencies that I did not detect: in fact except for a few
branches, I haven't even tried to run Sage, let alone run the tests! I
encoded the dependency information in the series file; I'll push it
later on this week-end. Please add any dependency information you may
be aware of! Oh, and it will help the transition as well if you create
tickets for your patches and name your patches accordingly.

More information on the transition will come later. For now, a big
kudo to those who work hard on this for us: Andrew, Benjamin,
Christopher, David, Julyan, Jeroen, Keshav, Keith, Robert, Timo.

Cheers,
                                Nicolas
--
Nicolas M. Thiéry "Isil" <nthi...@users.sf.net>
http://Nicolas.Thiery.name/

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Attachment: dependency_graph.pdf
Description: Adobe PDF document

Reply via email to