SeasideSt / Seaside

The framework for developing sophisticated web applications in Smalltalk.
MIT License
519 stars 71 forks source link

Pharo 9.0 Load script fails with exception (conflict with Grease). #1276

Closed Robert-Briggs closed 3 years ago

Robert-Briggs commented 3 years ago

Executed the load scrip provided in Playground.

Stops part way through with the following exception.

"MetacelloConflictingProjectError: Load Conflict between existing BaselineOfGrease [baseline] from github://SeasideSt/Grease:v1.5.x/repository and BaselineOfGrease [baseline] from github://SeasideSt/Grease:v1.7.x/repository" See screenshot.

Screenshot 2021-08-19 at 09 56 46
jbrichau commented 3 years ago

Hi,

This load conflict pops up because you already have a previous version of Grease loaded in your image. In case of Metacello conflicts, you need to handle these yourself. See https://github.com/Metacello/metacello/blob/master/docs/MetacelloUserGuide.md for more info on Metacello.

In this case, it is perfectly safe (and actually necessary) to upgrade Grease to latest 1.7.x because Seaside requires this version of Grease.

Robert-Briggs commented 3 years ago

Unable to work out what to do from the Metacello user guide. It seems to be that the Grease:v1.5.x/repository is not locked. Therefore the 'useIncoming' behaviour is bypassed and the exception raised. Please advise.

Robert-Briggs commented 3 years ago

PS. I've raised this issue to against the Grease repository in GitHub as it presumably needs to be resolved in GitHub rather than my image, unless you can advise me how to safely remove existing Grease installation in my image.

jbrichau commented 3 years ago

You should add onConflictUseIncoming: #('Grease') or just plain onConflictUseIncoming. See https://github.com/Metacello/metacello/blob/master/docs/MetacelloUserGuide.md#conflicts

Github issues are not the recommended way to get help. May I recommend joining the Pharo mailinglist or the Discord server: https://pharo.org/community.html

Robert-Briggs commented 3 years ago

OK

I’ll try.

Thanks for your help.  I do think however this conflict should be handled automatically by accounting for the conflict – perhaps offering the user the option to retain or update the existing version of a dependent package rather than just halting the load.

I am already on the Pharo mailing list and have used the Discord Server.

Regards

Bob.

You should add onConflictUseIncoming: #('Grease') or just plain onConflictUseIncoming. See https://github.com/Metacello/metacello/blob/master/docs/MetacelloUserGuide.md#conflicts

Github issues are not the recommended way to get help. May I recommend joining the Pharo mailinglist or the Discord server: https://pharo.org/community.html

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.

jbrichau commented 3 years ago

@Robert-Briggs This is how Metacello works, not something Seaside can control.