pharo-users@lists.pharo.org

Any question about pharo is welcome

View all threads

P12 new Tonel formatting and PR implications

TM
Tim Mackinnon
Wed, May 15, 2024 11:09 PM

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

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
TM
Tim Mackinnon
Wed, May 15, 2024 11:30 PM

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

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