Hi Guillermo

El jue., 31 ene. 2019 a las 6:08, Guillermo Polito (<
guillermopol...@gmail.com>) escribió:

> Hi Hernán,
>
> On Thu, Jan 31, 2019 at 8:20 AM Hernán Morales Durand <
> hernan.mora...@gmail.com> wrote:
>
>> I would like your advice on this: What's the effortless way to migrate
>> Github repository from Pharo 6 to Pharo 7?
>>
>
> Can you give us some more detail? Do you already have your project in
> github working for Pharo6? Or is it in Smalltalkhub and you are willing to
> move it to github?
>
>
Most of my packages are working on Pharo 6 already, and they are on GitHub.



> I'll assume the first below :)
>
>
>>
>> I thought in the following solutions:
>>
>> 1) In a Pharo 6 image modify my BaselineOf, add & push a new package
>> MyPackage-Pharo6, then load it into a Pharo 7 image, create
>> MyPackage-Pharo7 and port as needed. The same Metacello installation script
>> is preserved for all versions.
>>
>> 2) Tag repository as x.x in a Pharo 6 image, load my package & do port in
>> a Pharo 7 image and push to master. Previous Pharo 6 version could be
>> loaded referring to a tag (or branch maybe?) in the Metacello installation
>> script.
>>
>
> Well, it depends on what you want to provide as "support".
> - Do you want your package to keep working on both versions?
>

Yes, ideally my package will work on both versions, Pharo 6 and Pharo 7.
The first option was about splitting MyPackage into MyPackage-Common,
MyPackage-Pharo6 and MyPackage-Pharo7 with corresponding methods/classes
moved.


> - Do you want your new features to be available also in the old version?
>
>
I'm not really interested in backward compatibiilty.


> Case 1) Usually I try (if context agrees :) to keep a single branch. And I
> try that my project in that branch is compatible with both Pharo versions.
> Having a single branch if possible removes part of the bureaucracy of
> thinking about backports, patches, and so on...
> Releases are marked as tags, but they are shared between the different
> platforms.
>
>
You're talking about branches but I've used branches for a different
purpose (providing features for example). Wouldn't be more appropriate to
use tags in this case?


> We were able to do it with Iceberg for a long time (and it is an example
> that relies on Spec, File stuff, FFI..).
> We have lost that compatibility in the last weeks because we made a fix
> for win64 that was not compatible with Pharo6, but I'm thinking in getting
> that compatibility back at lest for Iceberg 1.5.*.
>
>
I will check those Baselines because I need to see examples of how does it
work.


> To keep a single branch compatible with many Pharo versions there is no
> magic:
>  1) we have a forward compatibility package to Pharo 7. The idea is that
> we write code for Pharo7 but in Pharo6 we can load a package with some
> extensions/additions that make it compatible with Pharo7.
>  2) we try to use compatible APIs. For example, we use FileSystem as much
> as possible. Another example is that Iceberg relies a lot in the Path class
> to manipulate the directory tree, and the nicest API of that class changed
> a lot so for simplicity we used the low level API that is a bit uglier and
> verbose, but compatible.
>
> Case 2) At the same time, just to set an example, we were thinking version
> 1.5.* was going to be the last iceberg version supported for Pharo6, so
> pharo7 and 8 were going to use 1.6.*. This means we will have two different
> versions running side by side.
>
> If we want to continue applying patches and critical bugfixes in the 1.5.*
> version, we should have two branches.
> Notice that here I'm assuming that my 1.5.* branch will move much more
> slowly than 1.6.*, since no real active development will be done with it.
>
>
Thank you Guillermo



> Probably other people can share their workflows.
>
> HTH,
> Guille
>
>
>> Any recommendations? Alternative paths?
>>
>> Cheers,
>>
>> Hernán
>>
>>
>>
>>
>
> --
>
>
>
> Guille Polito
>
> Research Engineer
>
> Centre de Recherche en Informatique, Signal et Automatique de Lille
>
> CRIStAL - UMR 9189
>
> French National Center for Scientific Research - *http://www.cnrs.fr
> <http://www.cnrs.fr>*
>
>
> *Web:* *http://guillep.github.io* <http://guillep.github.io>
>
> *Phone: *+33 06 52 70 66 13
>

Reply via email to