2016-06-08 19:40 GMT+02:00 stepharo <steph...@free.fr>:

> ***THANKS*** Pavel.
>
> Yes it is the best way to make sure that nobody wants to work at this
> level. We discussed this problem during the last board meeting. This is why
> I proposed the following process.
>
> When the core Pharo developers are in need to change a package they should
> do it without updating the external package configurations.
>
> And the external developers should check and merge the changes from the
> Pharo repo and when they want
>
> release a new configuration that we will integrate.
>
But the problem is that for bootstrap we need updated configurations (or
somenting like it) because we want to load all system correctly from them.
So even for such small changes we need to update them somehow. Moreover, we
want to test incomming slices with bootstrap. That means that for every new
slice we need to create temporary configurations and run bootstrap-load
process on them.

So it is clear that we need configurations that will be created and managed
automatically and will enable swapping of repositories. We had already
several discussions on this theme and from my point of view we need:

- own separate repository for every semi-external project. So something
like fork for Pharo. With GIT it will be natural, for the management by MC
it will be only a temporary step.

- own configuration that will be aware only of Pharo and will be fully
automatically managed

Pharo developers will provide only slices and will not care about
configuraitons at all. It will mean that maintainers of semi-external
projects will loose part of the controll and will need to care of sync with
own development repository but it is nothing new. Even now Pharo makes own
forks of some projects but it is not so visible.


> For me this is clear (for example for the icon: fix) I do not do anything
> if this is with the process you describe because it is insane.
>
> In fact fixing this process is part of the job description for your
> position.
>
> It was
>
>     - republishing automatically changes and the configuration
>
>     - working on package validation (making sure that the catalog does not
> get full of not working project)
>
>     - bootstrap :)
>

Of course I am aware of it :-)

-- Pavel

>
> Stef
>
> Le 8/6/16 à 11:05, Pavel Krivanek a écrit :
>
> Hi,
>
> we had in the system circular package dependency between Catalog and
> GTools and we decided to solve it by simple moving of one method from one
> package to other one. However, these two packages are external packages
> managed by configurations. That means that we needed move the method, save
> dirty packages and fix both configurations.
>
> For the catalog we have very simple configuration because it manages only
> one package (and dependency on STON). ConfigurationOfGTInspectorCore was
> more complicated because the repository already included newer development
> version of the modified package so we needed to merge. But because we are
> not the maintainers, we cannot know if the change in this package is not
> requiring changes in other packages provided by the configuration.
> Well, the new configurations were prepared and copied into inbox. We
> needed to create next two issues for updating of the configuration in the
> system. We did it and integrated all together in one update. But that is
> not all...
> ConfigurationOfGTInspectorCore is used by three other configurations (
> ConfigurationOfGTPlaygroundCore, ConfigurationOfGToolkitCore and
> ConfgurationOfGTDebugger) that specify number of
> ConfigurationOfGTInspectorCore version. In ideal state you should create
> new versions of the configurations but that means that you need to modify
> configurations of all other configurations that use them. It is simpler
> just modify current configuration and upgrade required version number of
> GTInspectorCore. That means to create three next issues, each for one
> configuration, create new configuration versions (and check and merge the
> newer versions in the home repository if needed), copy them to the inbox,
> wait for the review and hope that during integration the Integrator will
> not create new versions of some packages. If yes, you need to update
> configurations again.
>
> So at the end you have at least six issues because you wanted to change
> package for one method that has still the same content and is placed in the
> same class... And it can be worse. Both of these external projects have
> public access to the repository and are managed the same way (not mixing MC
> with GIT).
>
> As you see, it is crazy and unmaintainable.
>
> It is clear that we need to change the process. We need to discuss it
> deeply and some of the results may touch maintainers of the external
> projects integrated in Pharo but please keep in mind that the current
> system is clearly bad.
>
> Cheers,
> -- Pavel
>
>
>
>

Reply via email to