23408
Comment:
|
23107
|
Deletions are marked like this. | Additions are marked like this. |
Line 22: | Line 22: |
With Sage < 4.7.1, if you do not already have an hg configuration file {{{$HOME/.hgrc}}} in your home directory, you need to create such a file containing the following (edit your name!!!): {{{ [ui] username = Simon Cussonnet <Simon.Cussonnet at lycee-technique.thorel.eure.fr> }}} |
|
Line 23: | Line 34: |
* Pushing patches to the server requires you to authenticate with your trac server username and password. Create them as indicated on [[http://trac.sagemath.org/sage_trac/|the trac server page]]. To avoid having to type your username and password each time you push patches to the patch server, you can include the following lines in your .hgrc configuration file (see more about this file in the "Mercurial configuration" section further down): {{{ [auth] combinat_patches.prefix = http://combinat.sagemath.org/patches/ combinat_patches.username = trac_login combinat_patches.password = trac_password }}} |
|
Line 46: | Line 48: |
There occurred several problems installing the Sage-combinat patches on OS X, which had to be solved BEFORE running {{{sage -combinat install}}}. Some apply as well for other systems. |
There occurred several issues installing the Sage-combinat patches on OS X, which have to be solved BEFORE running {{{sage -combinat install}}}. * Have the [[http://developer.apple.com/technologies/tools/|developer tools (XCode)]] installed /* |
Line 51: | Line 57: |
*/ |
|
Line 52: | Line 60: |
* If you do not already have an hg configuration file, create such a file {{{$HOME/.hgrc}}} in your home directory (see as well below), insert the following, and edit the username. {{{ [ui] username = Simon Cussonnet <Simon.Cussonnet at lycee-technique.thorel.eure.fr> }}} |
|
Line 172: | Line 174: |
This is the purpose of the patches like {{{sage-3.0.2.patch}}}. This particular patch contains all the sage-combinat patches that have been integrated into Sage 3.0.2, and is only applied if Sage's version is strictly less than 3.0.2. This is achieved through guards (see the next section), and is taken care of automatically by {{{sage -combinat}}}, and in particular by: | This is the purpose of the patches like {{{sage-4.7.patch}}}. This particular patch contains all the sage-combinat patches that have been integrated into Sage 4.7, and is only applied if Sage's version is strictly less than 4.7. This is achieved through guards (see the next section), and is taken care of automatically by {{{sage -combinat}}}, and in particular by: |
Line 199: | Line 201: |
The following conventions are used regarding positive and negative version guards: * A patch marked +4_7 is not applied if sage's version >= 4_7 Use case: patches merged in 4.7 or that need rebase for 4.7 * A patch marked -4_7 is not applied if sage's version < 4_7 Use case: patches that don't apply anymore on old versions * A patch should not be marked with both +4_7 an -4_7. |
|
Line 204: | Line 215: |
Some configuration is required for write access to the Mercurial server. Open (or create, if it does not exist yet) your Mercurial configuration file ({{{~/.hgrc}}} in your home directory), insert the following, and edit the username, and the shortusername (usually the 2 initials of your first-name/last-name): |
Write access to the Mercurial server requires authentication using your Sage's trac account username and password; if you do not yet have a Sage's trac account, create one ([[http://trac.sagemath.org/sage_trac/|instructions]]). Some further configuration is also required. Open (or create, if it does not exist yet) your Mercurial configuration file ({{{~/.hgrc}}} in your home directory), insert the following, and *edit the username, trac username, password, the shortusername* (usually the 2 initials of your first-name/last-name): |
Line 228: | Line 244: |
Line 258: | Line 273: |
trac_10063-determinant_not_computed_in_some_rings_bugfix_attempt_4-tm.patch | |
Line 260: | Line 274: |
trac_5038_paths-sl.patch graphs_paths_and_cycles_enumeration-abm.patch free-modules-final.patch dyck-words-closed.patch }}} A series of patches like the free_modules one above is intended to be progressively folded together into a single patch free_modules.patch before submission to sage (see patch folding below). The name free_modules_final indicates that the owner of this patch will no longer edit it, and it is ready to be posted to trac. The name *_closed.patch indicates that this patch has been posted to trac and the corresponding ticket has been closed. |
trac_7251_integer_parent-review-fs.patch }}} A series of patches like the free_modules one above is intended to be progressively folded together into a single patch trac_7251_integer_parent-nt.patch before submission to sage (see patch folding below). |
The Sage-Combinat patch server: step by step instructions
This page is meant as a step-by-step tutorial on using the Sage-Combinat patch server, from basic installation to contributing new patches:
Contents
- Installation and basic usage
- Looking and selecting the patches
-
Creating and contributing patches
- Mercurial configuration
- Patch naming convention
- Patch description
- Creating a new patch (qnew)
- Editing the Sage sources
- Refreshing your patch (qrefresh)
- Removing a patch
- Pushing patches to the sage-combinat server
- In the case of Merging conflicts
- Handling rejection
- Exporting Patches for use with trac
- Rebasing the patch queue on a new version of sage
For technical background on the patch server, see http:/combinat/Mercurial.
To do: add a link to a short write up about the rationale for using a patch server.
1. Installation and basic usage
1.1. Prerequisites
The instructions below assume that:
You need to have a very recent version of Sage already installed (say in /opt/sage) which can be started by typing sage at the command line
(it is recommended to use the most recent stable version, and in particular >= 4.3.1 as of 2010, march the 20)
The user has write access to the Sage installation tree
The user has access to: http://combinat.sagemath.org/patches/
With Sage < 4.7.1, if you do not already have an hg configuration file $HOME/.hgrc in your home directory, you need to create such a file containing the following (edit your name!!!):
[ui] username = Simon Cussonnet <Simon.Cussonnet at lycee-technique.thorel.eure.fr>
Notes:
The patch management is based on the version control system Mercurial, with a support script sage -combinat for ease of use. Online help on this script is accessible through:
sage -combinat --help
1.2. Downloading and installing the Sage-combinat patches
sage -combinat install
1.2.1. Installing the Sage-combinat patches on OS X
There occurred several issues installing the Sage-combinat patches on OS X, which have to be solved BEFORE running sage -combinat install.
Have the [[http://developer.apple.com/technologies/tools/|developer
- tools (XCode)]] installed