|
| 1 | +Migrating to the new matplotlib codebase |
| 2 | +======================================== |
| 3 | + |
| 4 | +Michael Droettboom has spent the last several month working on the |
| 5 | +"transforms branch" of matplotlib, in which he rewrote from the ground |
| 6 | +up the transformation infrastructure in matplotlib, whih many found |
| 7 | +unintuitive and hard to extend. In addition to a cleaner code base, |
| 8 | +the refactoring allows you to define your own trasformations and |
| 9 | +projections (eg map projections) within matplotlib. He has merged his |
| 10 | +work into the HEAD of the svn trunk, and this will be the basis for |
| 11 | +future matplotlib releases. |
| 12 | + |
| 13 | +If you are a svn user, we encourage you to continue using the trunk as |
| 14 | +before, but with the understanding that you are now truly on the |
| 15 | +bleeding edge. Michael has made sure all the examples still pass with |
| 16 | +the new code base, so for the vast majority of you, I except to see |
| 17 | +few problems. But we need to get as many people as possible using the |
| 18 | +new code base so we can find and fix the remaining problems. We have |
| 19 | +take the svn cde used in the last stable release in the 0.91 series, |
| 20 | +and made it a maintenance branch so we can still fix bugs and support |
| 21 | +people who are not ready to migrate to the new transformation |
| 22 | +infrastructure but nonetheless need acccess to svn bug fixes. |
| 23 | + |
| 24 | +The experimental transforms refactoring changes have been merged into |
| 25 | +SVN trunk. While this version is passing all examples and unit tests, |
| 26 | +there may be changes that subtly break things that used to work, raise |
| 27 | +nasty exceptions or kill innocent puppies. To help move matplotlib |
| 28 | +forward, we encourage all users who are comfortable with the bleeding |
| 29 | +edge to use the trunk with their own plots and report any bugs to the |
| 30 | +mailing list. |
| 31 | + |
| 32 | +Using the new code |
| 33 | +================== |
| 34 | + |
| 35 | +To check out the trunk with the latest transforms refactoring: |
| 36 | + |
| 37 | + > svn co https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/trunk/matplotlib |
| 38 | + |
| 39 | +If you already have a working copy of the trunk, your next "svn up" will |
| 40 | +include the latest transforms refactoring. |
| 41 | + |
| 42 | +Using the old svn code |
| 43 | +====================== |
| 44 | + |
| 45 | +To check out the maintenance branch, in order to commit bugfixes to 0.91.x: |
| 46 | + |
| 47 | + > svn co https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/v0_91_maint matplotlib_0_91_maint |
| 48 | + |
| 49 | +Any applicable bugfixes on the 0.91.x should be merged into the trunk so |
| 50 | +they are fixed there as well. |
| 51 | + |
| 52 | +API CHANGES in the new transformation infrastructure |
| 53 | +==================================================== |
| 54 | + |
| 55 | +While Michael worked hard to keep the API mostly unchanged while |
| 56 | +performing what has been called "open heart surgery on matplotlib", |
| 57 | +there have been some changes, as discussed below. |
| 58 | + |
| 59 | +The primary goal of this refactoring was to make it easier to |
| 60 | +extend matplotlib to support new kinds of projections. This is |
| 61 | +primarily an internal improvement, and the possible user-visible |
| 62 | +changes it allows are yet to come. |
| 63 | + |
| 64 | +These changes are detailed in the API_CHANGES document |
0 commit comments