Changes between Initial Version and Version 9 of Ticket #10768


Ignore:
Timestamp:
03/29/11 08:56:07 (10 years ago)
Author:
jdemeyer
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #10768 – Description

    initial v9  
    77 - Updating specific pickles is a bit tedious
    88
    9 Since the pickle jar is not so big (600k), what about the following procedure:
     9Here is a new proposal:
    1010
    11  - For each version of Sage (say 4.6.2), a fresh pickle jar (say
    12    pickle_jar-4.6.2.tar.bz2) would be produced by the release manager,
    13    and *added* to the Sage distribution.
    14 
    15  - sage.structure.sage_object.unpickle_all would be run by default on all pickle jars included with Sage.
    16 
    17  - If some day some pickle rots away and it is decided *by consensus*
    18    to not support unpickling it anymore, then the patch author would
    19    include a note to the release manager to delete
    20    pickle_jar-4.6.2.tar.bz2/__class__s.....sobj
    21 
    22    This can be done by just copy-pasting from the error message of
    23    unpickle_all, without having to learn how to manipulate the jar.
    24 
    25  - If space really becomes an issue, then pickle jars from old Sage
    26    distributions could be moved to an optional spkg. Also, if a pickle
    27    jar does not change at all between two versions, or only contains
    28    new pickles, then the previous one can be deleted.
     11 1. Pickles will no longer be stored in a `.tar.bz2` file but simply as '''files''' within the directory `extcode/pickle_jar/$VERSION`.  This will likely increase the on-disk space needed for a Sage install, but will not have a big influence on Sage distributions, since we have an extcode spkg anyway (which is tarred and compressed).
     12 1. Pickles will be '''under `hg` control''' (this will now become possible).
     13 1. The `$VERSION` in the directory name refers to the Sage version used to create the pickle. Once a pickle has been made, it will remain in place in that directory, even in subsequent Sage versions (so sage-4.7.2 will contain `pickle_jar/4.7`, `pickle_jar/4.7.1` and `pickle_jar/4.7.2`).
     14 1. When making a new release, the release manager will unpickle all old pickles and repickle them with the new Sage version.  Whenever a pickle has changed, the new (changed) pickle will be stored in `pickle_jar/$NEWVERSION`.  The old pickle is kept where it was.
     15 1. sage.structure.sage_object.unpickle_all will check all pickles (old and new).
     16 1. If some day some pickle rots away and it is decided by consensus to not support unpickling it anymore, then the patch author would simply `hg remove` the old pickle.