12.07.2015 Views

Sage Developer's Guide - Mirrors

Sage Developer's Guide - Mirrors

Sage Developer's Guide - Mirrors

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Sage</strong> Developer’s <strong>Guide</strong>, Release 6.1.1• Keywords: List of keywords. Fill in any keywords that you think will make your ticket easier to find. Ticketsthat have been worked on at <strong>Sage</strong> days NN (some number) ofter have sdNN as keyword.• Cc: List of trac user names to Cc (send emails for changes on the ticket). Note that users that enter a commentare automatically substcribed to email updates and don’t need to be listed under Cc.• Merged in: The <strong>Sage</strong> release where the ticket was merged in. Only changed by the release manager.• Authors: Real name of the ticket author (or list of authors).• Reviewers: Real name of the ticket reviewer (or list of reviewers).• Report Upstream: If the ticket is a bug in an upstream component of <strong>Sage</strong>, this field is used to summarize thecommunication with the upstream developers.• Work issues: Issues that need to be resolved before the ticket can leave the “needs work” status.• Branch: See Branching Out• Dependencies: Does the ticket depend on another ticket? Sometimes, a ticket requires that another ticket beapplied first. If this is the case, put the dependencies as a comma-separated list (#1234, #5678) into the“Dependencies:” field.• Stopgaps: See Stopgaps.3.5 StopgapsIf a component of <strong>Sage</strong> produces a mathematical error, you should open two tickets: a main ticket with all availabledetails, and also a “stopgap” ticket. This second ticket should have a patch which will be merged into <strong>Sage</strong> if no onefixes the main issue; this patch should print a warning when anyone uses the relevant code. To produce the warningmessage, use code like the following:from sage.misc.stopgap import stopgapstopgap("This code contains bugs and may be mathematically unreliable.",TICKET_NUM)Replace TICKET_NUM by the ticket number for the main ticket. See trac ticket #12699, for example. On the main tracticket, you should also enter the ticket number for the stopgap ticket in the “Stopgaps” field. Stopgap tickets shouldbe marked as blockers.Note: If mathematically valid code causes <strong>Sage</strong> to raise an error or crash, for example, there is no need for a stopgap.Rather, stopgaps are to warn users that they may be using buggy code; if <strong>Sage</strong> crashes, this is not an issue.3.6 Working on TicketsIf you manage to fix a bug or enhance <strong>Sage</strong> you are our hero. See <strong>Sage</strong> Development Process for making changes tothe <strong>Sage</strong> source code, uploading them to the <strong>Sage</strong> trac server, and finally putting your new branch on the trac ticket.The following are some other relevant issues:• The Patch buildbot wil automatically test your ticket. See the patchbot wiki for more information about itsfeatures and limitations. Make sure that you look at the log, especially if the patch buildbot did not give you thegreen blob.• Every bug fixed should result in a doctest.3.5. Stopgaps 15

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!