Monticello - break up a package

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Monticello - break up a package

IngoHohmann
Following up on my quest to get SandstoneDb to run on Pharo 2.0.
Ramon asked me to break out my changes to the file store into another
package, so that it is possible to just use the appropriate package for
different Smalltalk versions.

Now, how do I best do that? When I tried it before, I got a new package
with no acestors, but the same content still in the "base" package.

Thank you for your help so far.


Kind regards,

Ingo



Reply | Threaded
Open this post in threaded view
|

Re: Monticello - break up a package

Dale Henrichs
Ingo,

The basic sequence is to create _new_ package called SandstoneDbPharo20 this is where you'll put the Pharo2.0-specific methods ...

I assume that you had to override some methods in the base Sandstone package, if so, you'll also need to create another _new_ package called SandstoneDbCommon (perhaps others can suggest better names ... I seem to always pick the wrong names:). This is where you'll put the FileDirectory based methods for use by all of the other platforms.

At this point you'll have three SandstoneDb packages in your image and I'm assuming that right now you will have the SandstoneDB package with your updates loaded.

Start by doing a diff of your package against the package version that you started with.

For each of the methods that you _changed_ you will need to move the method into the SandstoneDbPharo20 package by creating a *SandstoneDbPharo20 method category in the class and move the method(s) into that category.

If there are any new Pharo2.0 methods "move" those methods into the SandstoneDbPharo20.

If you have deleted any methods for Pharo2.0, make a note (leave the diff window open), because you will want to "move" those methods into the SandstoneDbCommon package.

When you've accounted for all of the changes, save all three packages...

After saving, unload all three packages and load the SandstoneDb package that you started with (the one you used for diff). Load the SandstoneDbCommon package. And repeat the process: "move" all of the methods changed changed for Pharo2.0 into SandstoneDbCommon (using the category name *SandstoneDbCommon) and "move" all of the methods that were deleted for Pharo2.0 into SandstoneDbCommon.

Save the the two dirty packages...

At this point, I think you've accomplished the "break out my changes to the file store into another package, so that it is possible to just use the appropriate package for different Smalltalk versions" plus a little bit more:).

The next step is to update the configuration with the new packages and their dependencies, but perhaps Ramon will do that?

Hope this helps,

Dale


----- Original Message -----
| From: "Ingo Hohmann" <[hidden email]>
| To: "pharo-users" <[hidden email]>
| Sent: Thursday, April 25, 2013 10:28:36 PM
| Subject: [Pharo-users] Monticello - break up a package
|
| Following up on my quest to get SandstoneDb to run on Pharo 2.0.
| Ramon asked me to break out my changes to the file store into another
| package, so that it is possible to just use the appropriate package for
| different Smalltalk versions.
|
| Now, how do I best do that? When I tried it before, I got a new package
| with no acestors, but the same content still in the "base" package.
|
| Thank you for your help so far.
|
|
| Kind regards,
|
| Ingo
|