> Curiously enough, I think you will need very little hand-holding.
> (But I'm willing to answer whatever questions I can.)  Hopefully you
> won't have a whole lot of spkgs to update, and merging new code is
> very easy with Craig's apply_ticket.py program.  (Check ~ncalexan/bin
> for an hg repository.)
>

And in fact, I've even touched it up and added a few more options, and
I'm about to post it to #6170. Here's a fun option that I just added,
using some code that Nick wrote:

[craigci...@sharma ~/sage/release_scripts]  $ ./apply_ticket.py -c
Fetching http://trac.sagemath.org/sage_trac/report/11 ...

======================================
 >>> Tickets with positive review <<<
======================================

#3084:  Solve Sudoku faster!
#4290:  function to construct an Elliptic Curve from a plane curve of
genus one (using Magma)
#4712:  Make the doctest timeouts in Sage easily adjustable
#5307:  Bug in conductor() over number fields
#5594:  better error message for list_plot
#5637:  allow \[ and \] to delimit math in %html blocks
#5991:  Add a standard constructor for dynamic classes
#6027:  get_memory_usage() sucks performance wise on OSX
#6239:  fix ReST formatting for pydesign module ext_rep
#6261:  Add multiplicative order for matrices over finite fields
#6269:  Coloring odds and ends
#6273:  Improve random_element for number field orders and ideals
#6274:  fix formatting of files under sage/plot
#6289:  minor ref manual issue with calculus stuff
#6290:  Allow keywords such as latex_name=LaTeX while defining symbolic function
#6302:  make openopt an optional spkg
#6307:  Move javascript out of python-land
#6330:  optional doctest failure -- constructions number fields doctest failures
#6336:  optional doctest failure -- constructions calculus tests hang forever
#6349:  graphs -- bug in DiGraph constructor
#6351:  typo in Graph.plot docstring
#6354:  Advertise and improve sage -fixdoctest

Obviously one can just look on trac, but this is an easy way to see
what tickets you want to pass to the merge script. Now the next person
can write something that just iterates through those, and determines
which ones cause trouble ... in fact, that's only about 10 lines.
... [20 minutes pass] ...
And I just did it. It's not perfect, but I ran this one command:
 ./apply_ticket.py -a -n 12
in a sage shell (i.e. source sage-env or do sage -sh), and it tested
every ticket on the above list independently, using sage -tp 12. (Some
very minor work needs done to do this in series without committing the
changes -- see the comments involving the word 'qsave' in the source.)
It asked me to edit the patch order every time there were multiple
patches on a ticket (thank you Nick!), and ran some tests. Here was
the final result:

Tickets to merge:  ['6290', '6027', '4712', '5307', '6239', '6273',
'6330', '6336', '6354', '4290', '5594', '5637', '6261', '6269',
'6274', '6289', '6307', '6349', '6351', '3084']
Tickets I couldn't test:  ['6302']
Tickets needing work:  ['5991']

#5991 depends on another ticket, so that one makes sense. #6302 is
just an spkg -- it couldn't find any files to test.

Now, it only tested the files that were changed -- I could have used
the -t option to change this (thank you again Nick!). It has options
for "all changed files," "all files in any directory that was
touched," and "test everything." In particular, some of the tests
above were about #optional stuff -- this didn't notice anything with
those, since we haven't added a way of asking for #optional doctests.
(This would be fairly trivial to add.)

You can test these individually by putting a ticket number in place of
-a, and if you pass -f (for "finish," as in "qfinish") it will commit
the changes after a successful test.

Also, it rebuilds the reference manual each time -- if we set up
sphinx to turn warnings into errors (Mike Hansen said this is probably
-e), we could probably have reference manual issues show up as errors
here.

Looks like Tom has some patches already waiting! ;)

-cc

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

Reply via email to