Cargo will not fix the dependency mess. 
maybe it will be easy the process, but it will not fix the real problem: we 
have a system that’s not made in a modular way. We are working hard to make it 
possible, but until we finish that there will be fixes that will touch more 
than one “module” and then it will be a problem also with Cargo (a dependency 
manager does not fixes couples dependencies, just describes them).

Esteban 


> On 09 Jun 2016, at 10:58, Pavel Krivanek <pavel.kriva...@gmail.com> wrote:
> 
> We cannot do that right now. I hope that we will replace configurations with 
> Cargo.
> 
> -- Pavel
> 
> 2016-06-09 10:03 GMT+02:00 Denis Kudriashov <dionisi...@gmail.com 
> <mailto:dionisi...@gmail.com>>:
> So does we all agree to commit fixes for external packages by slices without 
> new configs?
> 
> 2016-06-09 9:42 GMT+02:00 Pavel Krivanek <pavel.kriva...@gmail.com 
> <mailto:pavel.kriva...@gmail.com>>:
> 
> 
> 2016-06-08 19:40 GMT+02:00 stepharo <steph...@free.fr 
> <mailto: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