P12 new Tonel formatting and PR implications
Asking this here as it didnât get much traction on Discord - but with the move to P12, the category format in Tonel has changed from a symbol to a string e.g. { #category : #examples } vs { #category : 'examples' } - this causes mega noise when submitting tiny PR's - how is everyone else handling this? Should projects resave every project module to get the new format while people are out of the pool? Or is there a way to force the old format on specific projects until they can be upgraded ? It seems like a change whose consequences need some attention ? What are others doing? Tim
The team will be back from vacationâ¦. last week was a three free days week :). S
On 12 May 2024, at 06:21, Tim Mackinnon <tim@testit.works> wrote:
Asking this here as it didnât get much traction on Discord - but with the move to P12, the category format in Tonel has changed from a symbol to a string e.g. { #category : #examples } vs { #category : 'examples' } - this causes mega noise when submitting tiny PR's - how is everyone else handling this? Should projects resave every project module to get the new format while people are out of the pool? Or is there a way to force the old format on specific projects until they can be upgraded ?
It seems like a change whose consequences need some attention ?
What are others doing?
Tim
Stéphane Ducasse http://stephane.ducasse.free.fr 06 30 93 66 73 "If you knew today was your last day on earth, what would you do differently? ....ESPECIALLY if, by doing something different, today might not be your last day on earth.â Calvin & Hobbes
Hi, This is indeed a noisy change. That's the reason it was a change we were holding back during years, but at a point we needed to do it (there is a spec for tonel format we made together with Gemstone people and at a point, we needed to go to the agreed definition. So, yes... this will cause annoying moments until all projects are migrated. My recommendation is to make a PR with the new format and work from there. Esteban ps: there will be still some noise, next year, since we need to clean up a bit around... I am sorry in advance. On 12/05/2024 23:55, stephane ducasse wrote:
The team will be back from vacationâ¦. last week was a three free days week :).
S
On 12 May 2024, at 06:21, Tim Mackinnon <tim@testit.works> wrote:
Asking this here as it didnât get much traction on Discord - but with the move to P12, the category format in Tonel has changed from a symbol to a string e.g. Â { #category : #examples } vs { #category : 'examples' } - this causes mega noise when submitting tiny PR's - how is everyone else handling this? Should projects resave every project module to get the new format while people are out of the pool? Or is there a way to force the old format on specific projects until they can be upgraded ?
It seems like a change whose consequences need some attention ?
What are others doing?
Tim
Stéphane Ducasse http://stephane.ducasse.free.fr 06 30 93 66 73
"If you knew today was your last day on earth, what would you do differently? ....ESPECIALLY if, by doing something different, today might not be your last day on earth.â Calvin & Hobbes
Hey Esteban - understood. So it sounds like - quickly walk through all your project packages - add a little comment "upgrade to new tonel formt" and then commit (with everyone checked in before) sounds like the way to go. I'll get on that with projects that I work with. It does of course imply everyone move up to P12 (from P11) to avoid flip flopping between formats - and I don't think there is any reason to stick to P11 as P12 seems solid and without anything controversial to hold back on. Thanks for pushing things forward. Tim On Mon, 13 May 2024, at 6:31 AM, Esteban Lorenzano via Pharo-users wrote:
Hi,
This is indeed a noisy change. That's the reason it was a change we were holding back during years, but at a point we needed to do it (there is a spec for tonel format we made together with Gemstone people and at a point, we needed to go to the agreed definition.
So, yes... this will cause annoying moments until all projects are migrated. My recommendation is to make a PR with the new format and work from there.
Esteban
ps: there will be still some noise, next year, since we need to clean up a bit around... I am sorry in advance.
On 12/05/2024 23:55, stephane ducasse wrote:
The team will be back from vacationâ¦. last week was a three free days week :).
S
On 12 May 2024, at 06:21, Tim Mackinnon <tim@testit.works> wrote:
Asking this here as it didnât get much traction on Discord - but with the move to P12, the category format in Tonel has changed from a symbol to a string e.g. { #category : #examples } vs { #category : 'examples' } - this causes mega noise when submitting tiny PR's - how is everyone else handling this? Should projects resave every project module to get the new format while people are out of the pool? Or is there a way to force the old format on specific projects until they can be upgraded ?
It seems like a change whose consequences need some attention ?
What are others doing?
Tim
Stéphane Ducasse http://stephane.ducasse.free.fr 06 30 93 66 73
"If you knew today was your last day on earth, what would you do differently? ....ESPECIALLY if, by doing something different, today might not be your last day on earth.â Calvin & Hobbes
Hi, Here are some additional notes to what was already answered. If you want to convert all the files of a repository at once to avoid to have multiple PR with format changes you can use this script and commit the resulting files: | projectName | projectName := 'Spec2'. repository := IceRepository repositories detect: [ :repo | repo name = projectName ]. repository workingCopy packages do: [ :pkg | IceLibgitTonelWriter forInternalStoreFileOut: pkg latestVersion mcVersion on: repository ] Also, if you work on a project both in p12 and p11, you can avoid the ping pong by fixing a version of tonel in the properties file. The file to update is the .properties that is in the source folder and it should look like this: { #format : #tonel, #version: #'1.0' } P12 will take into account the tonel version asked and use it. In previous version of Pharo, this additional line will be ignored and Tonel v1 will be used. With both of those options it should be possible to reduce the pain of the format update. Have a nice day -- Cyril Ferlicot-Delbecque https://ferlicot.fr On Sunday, May 12th, 2024 at 12:21 PM, Tim Mackinnon <tim@testit.works> wrote:
Asking this here as it didnât get much traction on Discord - but with the move to P12, the category format in Tonel has changed from a symbol to a string e.g. { #category : #examples } vs { #category : 'examples' } - this causes mega noise when submitting tiny PR's - how is everyone else handling this? Should projects resave every project module to get the new format while people are out of the pool? Or is there a way to force the old format on specific projects until they can be upgraded ?
It seems like a change whose consequences need some attention ?
What are others doing?
Tim
Cyril could you add that in the wiki somewhere. I will publish something on pharo weekly. S
On 13 May 2024, at 05:45, Cyril FERLICOT-DELBECQUE via Pharo-users <pharo-users@lists.pharo.org> wrote:
Hi,
Here are some additional notes to what was already answered.
If you want to convert all the files of a repository at once to avoid to have multiple PR with format changes you can use this script and commit the resulting files:
| projectName | projectName := 'Spec2'. repository := IceRepository repositories detect: [ :repo | repo name = projectName ]. repository workingCopy packages do: [ :pkg | IceLibgitTonelWriter forInternalStoreFileOut: pkg latestVersion mcVersion on: repository ]
Also, if you work on a project both in p12 and p11, you can avoid the ping pong by fixing a version of tonel in the properties file. The file to update is the .properties that is in the source folder and it should look like this:
{ #format : #tonel, #version: #'1.0' }
P12 will take into account the tonel version asked and use it. In previous version of Pharo, this additional line will be ignored and Tonel v1 will be used.
With both of those options it should be possible to reduce the pain of the format update.
Have a nice day
-- Cyril Ferlicot-Delbecque https://ferlicot.fr
On Sunday, May 12th, 2024 at 12:21 PM, Tim Mackinnon <tim@testit.works> wrote:
Asking this here as it didnât get much traction on Discord - but with the move to P12, the category format in Tonel has changed from a symbol to a string e.g. { #category : #examples } vs { #category : 'examples' } - this causes mega noise when submitting tiny PR's - how is everyone else handling this? Should projects resave every project module to get the new format while people are out of the pool? Or is there a way to force the old format on specific projects until they can be upgraded ?
It seems like a change whose consequences need some attention ?
What are others doing?
Tim
Stéphane Ducasse http://stephane.ducasse.free.fr 06 30 93 66 73 "If you knew today was your last day on earth, what would you do differently? ....ESPECIALLY if, by doing something different, today might not be your last day on earth.â Calvin & Hobbes
I added some documentation here:⯠https://github.com/pharo-open-documentation/pharo-wiki/blob/master/General/E... I hope this helps :) -- Cyril Ferlicot-Delbecquehttps://ferlicot.fr On Monday, May 13th, 2024 at 12:55 PM, stephane ducasse <stephane.ducasse@inria.fr> wrote:
Cyril
could you add that in the wiki somewhere. I will publish something on pharo weekly.
S
On 13 May 2024, at 05:45, Cyril FERLICOT-DELBECQUE via Pharo-users <pharo-users@lists.pharo.org> wrote:
Hi,
Here are some additional notes to what was already answered.
If you want to convert all the files of a repository at once to avoid to have multiple PR with format changes you can use this script and commit the resulting files:
| projectName | projectName := 'Spec2'. repository := IceRepository repositories detect: [ :repo | repo name = projectName ]. repository workingCopy packages do: [ :pkg | IceLibgitTonelWriter forInternalStoreFileOut: pkg latestVersion mcVersion on: repository ]
Also, if you work on a project both in p12 and p11, you can avoid the ping pong by fixing a version of tonel in the properties file. The file to update is the .properties that is in the source folder and it should look like this:
{ #format : #tonel, #version: #'1.0' }
P12 will take into account the tonel version asked and use it. In previous version of Pharo, this additional line will be ignored and Tonel v1 will be used.
With both of those options it should be possible to reduce the pain of the format update.
Have a nice day
-- Cyril Ferlicot-Delbecque https://ferlicot.fr
On Sunday, May 12th, 2024 at 12:21 PM, Tim Mackinnon <tim@testit.works> wrote:
Asking this here as it didnât get much traction on Discord - but with the move to P12, the category format in Tonel has changed from a symbol to a string e.g. { #category : #examples } vs { #category : 'examples' } - this causes mega noise when submitting tiny PR's - how is everyone else handling this? Should projects resave every project module to get the new format while people are out of the pool? Or is there a way to force the old format on specific projects until they can be upgraded ?
It seems like a change whose consequences need some attention ?
What are others doing?
Tim
Stéphane Ducasse http://stephane.ducasse.free.fr 06 30 93 66 73
"If you knew today was your last day on earth, what would you do differently? ....ESPECIALLY if, by doing something different, today might not be your last day on earth.â Calvin & Hobbes
Tx!
On 13 May 2024, at 08:55, Cyril FERLICOT-DELBECQUE via Pharo-users <pharo-users@lists.pharo.org> wrote:
I added some documentation here:â¯
https://github.com/pharo-open-documentation/pharo-wiki/blob/master/General/E...
I hope this helps :)
-- Cyril Ferlicot-Delbecque https://ferlicot.fr <https://ferlicot.fr/>
On Monday, May 13th, 2024 at 12:55 PM, stephane ducasse <stephane.ducasse@inria.fr> wrote:
Cyril
could you add that in the wiki somewhere. I will publish something on pharo weekly.
S
On 13 May 2024, at 05:45, Cyril FERLICOT-DELBECQUE via Pharo-users <pharo-users@lists.pharo.org> wrote:
Hi,
Here are some additional notes to what was already answered.
If you want to convert all the files of a repository at once to avoid to have multiple PR with format changes you can use this script and commit the resulting files:
| projectName | projectName := 'Spec2'. repository := IceRepository repositories detect: [ :repo | repo name = projectName ]. repository workingCopy packages do: [ :pkg | IceLibgitTonelWriter forInternalStoreFileOut: pkg latestVersion mcVersion on: repository ]
Also, if you work on a project both in p12 and p11, you can avoid the ping pong by fixing a version of tonel in the properties file. The file to update is the .properties that is in the source folder and it should look like this:
{ #format : #tonel, #version: #'1.0' }
P12 will take into account the tonel version asked and use it. In previous version of Pharo, this additional line will be ignored and Tonel v1 will be used.
With both of those options it should be possible to reduce the pain of the format update.
Have a nice day
-- Cyril Ferlicot-Delbecque https://ferlicot.fr
On Sunday, May 12th, 2024 at 12:21 PM, Tim Mackinnon <tim@testit.works> wrote:
Asking this here as it didnât get much traction on Discord - but with the move to P12, the category format in Tonel has changed from a symbol to a string e.g. { #category : #examples } vs { #category : 'examples' } - this causes mega noise when submitting tiny PR's - how is everyone else handling this? Should projects resave every project module to get the new format while people are out of the pool? Or is there a way to force the old format on specific projects until they can be upgraded ?
It seems like a change whose consequences need some attention ?
What are others doing?
Tim
Stéphane Ducasse http://stephane.ducasse.free.fr 06 30 93 66 73
"If you knew today was your last day on earth, what would you do differently? ....ESPECIALLY if, by doing something different, today might not be your last day on earth.â Calvin & Hobbes
Stéphane Ducasse http://stephane.ducasse.free.fr 06 30 93 66 73 "If you knew today was your last day on earth, what would you do differently? ....ESPECIALLY if, by doing something different, today might not be your last day on earth.â Calvin & Hobbes
Hey Cyril - as mentioned on Discord, thanks for advising and sorting this out (for the bigger changes in P13 - it will be useful to get something in the release notes - but definitely don't want to stand in the way of progress)!. Tim On Mon, 13 May 2024, at 1:55 PM, Cyril FERLICOT-DELBECQUE via Pharo-users wrote:
I added some documentation here:â¯
https://github.com/pharo-open-documentation/pharo-wiki/blob/master/General/E...
I hope this helps :)
-- Cyril Ferlicot-Delbecque https://ferlicot.fr
On Monday, May 13th, 2024 at 12:55 PM, stephane ducasse <stephane.ducasse@inria.fr> wrote:
Cyril
could you add that in the wiki somewhere. I will publish something on pharo weekly.
S
On 13 May 2024, at 05:45, Cyril FERLICOT-DELBECQUE via Pharo-users <pharo-users@lists.pharo.org> wrote:
Hi,
Here are some additional notes to what was already answered.
If you want to convert all the files of a repository at once to avoid to have multiple PR with format changes you can use this script and commit the resulting files:
| projectName | projectName := 'Spec2'. repository := IceRepository repositories detect: [ :repo | repo name = projectName ]. repository workingCopy packages do: [ :pkg | IceLibgitTonelWriter forInternalStoreFileOut: pkg latestVersion mcVersion on: repository ]
Also, if you work on a project both in p12 and p11, you can avoid the ping pong by fixing a version of tonel in the properties file. The file to update is the .properties that is in the source folder and it should look like this:
{ #format : #tonel, #version: #'1.0' }
P12 will take into account the tonel version asked and use it. In previous version of Pharo, this additional line will be ignored and Tonel v1 will be used.
With both of those options it should be possible to reduce the pain of the format update.
Have a nice day
-- Cyril Ferlicot-Delbecque https://ferlicot.fr
On Sunday, May 12th, 2024 at 12:21 PM, Tim Mackinnon <tim@testit.works> wrote:
Asking this here as it didnât get much traction on Discord - but with the move to P12, the category format in Tonel has changed from a symbol to a string e.g. { #category : #examples } vs { #category : 'examples' } - this causes mega noise when submitting tiny PR's - how is everyone else handling this? Should projects resave every project module to get the new format while people are out of the pool? Or is there a way to force the old format on specific projects until they can be upgraded ?
It seems like a change whose consequences need some attention ?
What are others doing?
Tim
Stéphane Ducasse http://stephane.ducasse.free.fr 06 30 93 66 73
"If you knew today was your last day on earth, what would you do differently? ....ESPECIALLY if, by doing something different, today might not be your last day on earth.â Calvin & Hobbes
https://pharoweekly.wordpress.com/2024/05/13/about-controling-change-format-in-p12/
On 13 May 2024, at 05:45, Cyril FERLICOT-DELBECQUE via Pharo-users <pharo-users@lists.pharo.org> wrote:
Hi,
Here are some additional notes to what was already answered.
If you want to convert all the files of a repository at once to avoid to have multiple PR with format changes you can use this script and commit the resulting files:
| projectName | projectName := 'Spec2'. repository := IceRepository repositories detect: [ :repo | repo name = projectName ]. repository workingCopy packages do: [ :pkg | IceLibgitTonelWriter forInternalStoreFileOut: pkg latestVersion mcVersion on: repository ]
Also, if you work on a project both in p12 and p11, you can avoid the ping pong by fixing a version of tonel in the properties file. The file to update is the .properties that is in the source folder and it should look like this:
{ #format : #tonel, #version: #'1.0' }
P12 will take into account the tonel version asked and use it. In previous version of Pharo, this additional line will be ignored and Tonel v1 will be used.
With both of those options it should be possible to reduce the pain of the format update.
Have a nice day
-- Cyril Ferlicot-Delbecque https://ferlicot.fr
On Sunday, May 12th, 2024 at 12:21 PM, Tim Mackinnon <tim@testit.works> wrote:
Asking this here as it didnât get much traction on Discord - but with the move to P12, the category format in Tonel has changed from a symbol to a string e.g. { #category : #examples } vs { #category : 'examples' } - this causes mega noise when submitting tiny PR's - how is everyone else handling this? Should projects resave every project module to get the new format while people are out of the pool? Or is there a way to force the old format on specific projects until they can be upgraded ?
It seems like a change whose consequences need some attention ?
What are others doing?
Tim
Stéphane Ducasse http://stephane.ducasse.free.fr 06 30 93 66 73 "If you knew today was your last day on earth, what would you do differently? ....ESPECIALLY if, by doing something different, today might not be your last day on earth.â Calvin & Hobbes
Hey Cyril - before I raise a bug, I've tried running that script on CodeParadise and first off, its missing a declaration for respository (although I think you can execute and get away with it). I also hit an error that it assume that every package of your project is loaded - so it probably needs a comment caveat to explain that you shoujld have loaded every project before running it (or we correct the internal code that makes that assumption). But having run it - I'm a bit confused what should happen? I was expecting dirty projects that I would then commit (having made a branch to submit a PR on) - however no packages appear dirty and so there is nothing to commit? I guess I'm a bit confused what #forInternalStoreFileOut: on: does ? Is it writing something out to disk - and if so, what do we do with that in pharo - or are we expected to do something on the terminal? If so - the instructions don't make that very clear? To be honest I was expecting something that caused something that cause a comment change that would cause every package to force a commit in the iceberg browser? Can you clarify a bit more please? Tim On Mon, 13 May 2024, at 10:45 AM, Cyril FERLICOT-DELBECQUE via Pharo-users wrote:
Hi,
Here are some additional notes to what was already answered.
If you want to convert all the files of a repository at once to avoid to have multiple PR with format changes you can use this script and commit the resulting files:
| projectName | projectName := 'Spec2'. repository := IceRepository repositories detect: [ :repo | repo name = projectName ]. repository workingCopy packages do: [ :pkg | IceLibgitTonelWriter forInternalStoreFileOut: pkg latestVersion mcVersion on: repository ]
Also, if you work on a project both in p12 and p11, you can avoid the ping pong by fixing a version of tonel in the properties file. The file to update is the .properties that is in the source folder and it should look like this:
{ #format : #tonel, #version: #'1.0' }
P12 will take into account the tonel version asked and use it. In previous version of Pharo, this additional line will be ignored and Tonel v1 will be used.
With both of those options it should be possible to reduce the pain of the format update.
Have a nice day
-- Cyril Ferlicot-Delbecque https://ferlicot.fr
On Sunday, May 12th, 2024 at 12:21 PM, Tim Mackinnon <tim@testit.works> wrote:
Asking this here as it didnât get much traction on Discord - but with the move to P12, the category format in Tonel has changed from a symbol to a string e.g. { #category : #examples } vs { #category : 'examples' } - this causes mega noise when submitting tiny PR's - how is everyone else handling this? Should projects resave every project module to get the new format while people are out of the pool? Or is there a way to force the old format on specific projects until they can be upgraded ?
It seems like a change whose consequences need some attention ?
What are others doing?
Tim
Answering my own question - it writes out file to the disk outside of Iceberg's knowledge - so you have to open a terminal and: git commit -a -m "Update tonel formal to V3" git push I 've submitted a PR to improve the instructions in the open docs repo. On Thu, 16 May 2024, at 12:09 AM, Tim Mackinnon wrote:
Hey Cyril - before I raise a bug, I've tried running that script on CodeParadise and first off, its missing a declaration for respository (although I think you can execute and get away with it).
I also hit an error that it assume that every package of your project is loaded - so it probably needs a comment caveat to explain that you shoujld have loaded every project before running it (or we correct the internal code that makes that assumption).
But having run it - I'm a bit confused what should happen? I was expecting dirty projects that I would then commit (having made a branch to submit a PR on) - however no packages appear dirty and so there is nothing to commit? I guess I'm a bit confused what #forInternalStoreFileOut: on: does ? Is it writing something out to disk - and if so, what do we do with that in pharo - or are we expected to do something on the terminal? If so - the instructions don't make that very clear?
To be honest I was expecting something that caused something that cause a comment change that would cause every package to force a commit in the iceberg browser?
Can you clarify a bit more please?
Tim
On Mon, 13 May 2024, at 10:45 AM, Cyril FERLICOT-DELBECQUE via Pharo-users wrote:
Hi,
Here are some additional notes to what was already answered.
If you want to convert all the files of a repository at once to avoid to have multiple PR with format changes you can use this script and commit the resulting files:
| projectName | projectName := 'Spec2'. repository := IceRepository repositories detect: [ :repo | repo name = projectName ]. repository workingCopy packages do: [ :pkg | IceLibgitTonelWriter forInternalStoreFileOut: pkg latestVersion mcVersion on: repository ]
Also, if you work on a project both in p12 and p11, you can avoid the ping pong by fixing a version of tonel in the properties file. The file to update is the .properties that is in the source folder and it should look like this:
{ #format : #tonel, #version: #'1.0' }
P12 will take into account the tonel version asked and use it. In previous version of Pharo, this additional line will be ignored and Tonel v1 will be used.
With both of those options it should be possible to reduce the pain of the format update.
Have a nice day
-- Cyril Ferlicot-Delbecque https://ferlicot.fr
On Sunday, May 12th, 2024 at 12:21 PM, Tim Mackinnon <tim@testit.works> wrote:
Asking this here as it didnât get much traction on Discord - but with the move to P12, the category format in Tonel has changed from a symbol to a string e.g. { #category : #examples } vs { #category : 'examples' } - this causes mega noise when submitting tiny PR's - how is everyone else handling this? Should projects resave every project module to get the new format while people are out of the pool? Or is there a way to force the old format on specific projects until they can be upgraded ?
It seems like a change whose consequences need some attention ?
What are others doing?
Tim
participants (4)
-
Cyril FERLICOT-DELBECQUE -
Esteban Lorenzano -
stephane ducasse -
Tim Mackinnon