Hello everyone! This is an important update about the development of Spec. As you might have heard, we are working on Spec to release a new version in Pharo 8. One goal is to unify all Pharo interfaces behind one GUI framework and a second goal is to allow multiple back-ends (Morphic but also GTK, Bloc, ...). To reach those goals we have been updating the current version of Spec. We see now, however, that updating Spec directly creates troubles with migration. For example, we currently have a lot of deprecation warnings in Iceberg, because we can't update it without breaking Pharo 7 compatibility. After some discussions between the engineers working on Spec, here is our plan to improve the situation: We will copy all classes of Spec and rename them with the "Sp" prefix. (We will also ensure that every class of Spec started with the same prefix for consistency). For extensions methods, we will rename them to have a version different from Spec 1 (The spec from Pharo 7). Once done we will integrate this new version in Pharo 8. From there we will wait some weeks to let users who started to use the updated Spec change their projects to use this new Spec2. Finally, we will revert all changes that happened on Spec 1 and deprecate the packages. We hope this will make things easier for everyone. Have a nice day! -- Cyril Ferlicot https://ferlicot.fr
Thanks for sharing this. You guys are doing an amazing job. I do not mind having a couple of warning times to time. Cheers, Alexandre
On Jun 20, 2019, at 11:29 AM, Cyril Ferlicot <cyril.ferlicot@gmail.com> wrote:
Hello everyone!
This is an important update about the development of Spec.
As you might have heard, we are working on Spec to release a new version in Pharo 8. One goal is to unify all Pharo interfaces behind one GUI framework and a second goal is to allow multiple back-ends (Morphic but also GTK, Bloc, ...). To reach those goals we have been updating the current version of Spec. We see now, however, that updating Spec directly creates troubles with migration. For example, we currently have a lot of deprecation warnings in Iceberg, because we can't update it without breaking Pharo 7 compatibility.
After some discussions between the engineers working on Spec, here is our plan to improve the situation: We will copy all classes of Spec and rename them with the "Sp" prefix. (We will also ensure that every class of Spec started with the same prefix for consistency). For extensions methods, we will rename them to have a version different from Spec 1 (The spec from Pharo 7). Once done we will integrate this new version in Pharo 8. From there we will wait some weeks to let users who started to use the updated Spec change their projects to use this new Spec2. Finally, we will revert all changes that happened on Spec 1 and deprecate the packages. We hope this will make things easier for everyone.
Have a nice day!
-- Cyril Ferlicot https://ferlicot.fr
On Thu, Jun 20, 2019 at 5:29 PM Cyril Ferlicot <cyril.ferlicot@gmail.com> wrote:
Hello everyone!
This is an important update about the development of Spec.
As you might have heard, we are working on Spec to release a new version in Pharo 8. One goal is to unify all Pharo interfaces behind one GUI framework and a second goal is to allow multiple back-ends (Morphic but also GTK, Bloc, ...). To reach those goals we have been updating the current version of Spec. We see now, however, that updating Spec directly creates troubles with migration. For example, we currently have a lot of deprecation warnings in Iceberg, because we can't update it without breaking Pharo 7 compatibility.
After some discussions between the engineers working on Spec, here is our plan to improve the situation: We will copy all classes of Spec and rename them with the "Sp" prefix. (We will also ensure that every class of Spec started with the same prefix for consistency). For extensions methods, we will rename them to have a version different from Spec 1 (The spec from Pharo 7). Once done we will integrate this new version in Pharo 8. From there we will wait some weeks to let users who started to use the updated Spec change their projects to use this new Spec2. Finally, we will revert all changes that happened on Spec 1 and deprecate the packages. We hope this will make things easier for everyone.
Have a nice day!
Hi, The revert of changes of Spec 1 is now done in Pharo 8. Spec 1 is now in the same state than in Pharo 7 and Spec2 can live next to it. All classes of Spec2 start with the Sp or TSp prefix. Have a nice day.
-- Cyril Ferlicot https://ferlicot.fr
-- Cyril Ferlicot https://ferlicot.fr
Thanks for pushing this Cyril! This will let us move forward with Iceberg too :)
El 13 ago 2019, a las 12:15, Cyril Ferlicot <cyril.ferlicot@gmail.com> escribió:
On Thu, Jun 20, 2019 at 5:29 PM Cyril Ferlicot <cyril.ferlicot@gmail.com <mailto:cyril.ferlicot@gmail.com>> wrote:
Hello everyone!
This is an important update about the development of Spec.
As you might have heard, we are working on Spec to release a new version in Pharo 8. One goal is to unify all Pharo interfaces behind one GUI framework and a second goal is to allow multiple back-ends (Morphic but also GTK, Bloc, ...). To reach those goals we have been updating the current version of Spec. We see now, however, that updating Spec directly creates troubles with migration. For example, we currently have a lot of deprecation warnings in Iceberg, because we can't update it without breaking Pharo 7 compatibility.
After some discussions between the engineers working on Spec, here is our plan to improve the situation: We will copy all classes of Spec and rename them with the "Sp" prefix. (We will also ensure that every class of Spec started with the same prefix for consistency). For extensions methods, we will rename them to have a version different from Spec 1 (The spec from Pharo 7). Once done we will integrate this new version in Pharo 8. From there we will wait some weeks to let users who started to use the updated Spec change their projects to use this new Spec2. Finally, we will revert all changes that happened on Spec 1 and deprecate the packages. We hope this will make things easier for everyone.
Have a nice day!
Hi,
The revert of changes of Spec 1 is now done in Pharo 8.
Spec 1 is now in the same state than in Pharo 7 and Spec2 can live next to it. All classes of Spec2 start with the Sp or TSp prefix.
Have a nice day.
-- Cyril Ferlicot https://ferlicot.fr <https://ferlicot.fr/>
-- Cyril Ferlicot https://ferlicot.fr <https://ferlicot.fr/>
Am 13.08.2019 um 12:28 schrieb Guillermo Polito <guillermopolito@gmail.com>:
Thanks for pushing this Cyril! This will let us move forward with Iceberg too :)
Ah yes, I just wrote on discord. I did a tool in spec2 which I cannot use in the newest pharo. The #asSpecAdapter uses still MorphicGenericAdapter instead of SpMorphicGenericAdapter. Iceberg needs the former, my tool the latter. What is the strategy for that. For now I did a #asSpec2Adapter in my image that return the SpMorphic.. class. Norbert
El 13 ago 2019, a las 12:15, Cyril Ferlicot <cyril.ferlicot@gmail.com <mailto:cyril.ferlicot@gmail.com>> escribió:
On Thu, Jun 20, 2019 at 5:29 PM Cyril Ferlicot <cyril.ferlicot@gmail.com <mailto:cyril.ferlicot@gmail.com>> wrote:
Hello everyone!
This is an important update about the development of Spec.
As you might have heard, we are working on Spec to release a new version in Pharo 8. One goal is to unify all Pharo interfaces behind one GUI framework and a second goal is to allow multiple back-ends (Morphic but also GTK, Bloc, ...). To reach those goals we have been updating the current version of Spec. We see now, however, that updating Spec directly creates troubles with migration. For example, we currently have a lot of deprecation warnings in Iceberg, because we can't update it without breaking Pharo 7 compatibility.
After some discussions between the engineers working on Spec, here is our plan to improve the situation: We will copy all classes of Spec and rename them with the "Sp" prefix. (We will also ensure that every class of Spec started with the same prefix for consistency). For extensions methods, we will rename them to have a version different from Spec 1 (The spec from Pharo 7). Once done we will integrate this new version in Pharo 8. From there we will wait some weeks to let users who started to use the updated Spec change their projects to use this new Spec2. Finally, we will revert all changes that happened on Spec 1 and deprecate the packages. We hope this will make things easier for everyone.
Have a nice day!
Hi,
The revert of changes of Spec 1 is now done in Pharo 8.
Spec 1 is now in the same state than in Pharo 7 and Spec2 can live next to it. All classes of Spec2 start with the Sp or TSp prefix.
Have a nice day.
-- Cyril Ferlicot https://ferlicot.fr <https://ferlicot.fr/>
-- Cyril Ferlicot https://ferlicot.fr <https://ferlicot.fr/>
On Tue, Aug 13, 2019 at 2:59 PM Norbert Hartl <norbert@hartl.name> wrote:
Ah yes, I just wrote on discord. I did a tool in spec2 which I cannot use in the newest pharo. The #asSpecAdapter uses still MorphicGenericAdapter instead of SpMorphicGenericAdapter. Iceberg needs the former, my tool the latter. What is the strategy for that. For now I did a #asSpec2Adapter in my image that return the SpMorphic.. class.
Hi, The extensions in Spec2 are renamed to not conflict with Spec 1. You are looking for #asSpAdapter ;)
Norbert
-- Cyril Ferlicot https://ferlicot.fr
On 13 Aug 2019, at 15:19, Cyril Ferlicot <cyril.ferlicot@gmail.com> wrote:
On Tue, Aug 13, 2019 at 2:59 PM Norbert Hartl <norbert@hartl.name> wrote:
Ah yes, I just wrote on discord. I did a tool in spec2 which I cannot use in the newest pharo. The #asSpecAdapter uses still MorphicGenericAdapter instead of SpMorphicGenericAdapter. Iceberg needs the former, my tool the latter. What is the strategy for that. For now I did a #asSpec2Adapter in my image that return the SpMorphic.. class.
Hi,
The extensions in Spec2 are renamed to not conflict with Spec 1. You are looking for #asSpAdapter ;)
No, you are not :) #asSpAdapter will be removed. You are looking for SpMorphPresenter (and/or the method SpPresenter>>newMorph) Esteban
Norbert
-- Cyril Ferlicot https://ferlicot.fr
On Tue, Aug 13, 2019 at 3:25 PM Esteban Lorenzano <estebanlm@gmail.com> wrote:
No, you are not :) #asSpAdapter will be removed.
You are looking for SpMorphPresenter (and/or the method SpPresenter>>newMorph)
In the Spec repository I deprecated #asSpAdapter with a mesage explaining SpMorphPresenter should be used. It will be integrated in next Spec integration.
Esteban
-- Cyril Ferlicot https://ferlicot.fr
Cyril Ferlicot wrote:
The revert of changes of Spec 1 is now done in Pharo 8.
Nice - lots of work. Thanks!!!
All classes of Spec2 start with the Sp or TSp prefix.
Maybe I'm wrong but: If "Sp" is the prefix for Spec2 and trait names start with "T" we should used SpT... for traits, no? Otherwise it would not be a prefix ... Thanks T.
On Tue, Aug 13, 2019 at 1:35 PM Torsten Bergmann <astares@gmx.de> wrote:
Cyril Ferlicot wrote:
The revert of changes of Spec 1 is now done in Pharo 8.
Nice - lots of work. Thanks!!!
All classes of Spec2 start with the Sp or TSp prefix.
Maybe I'm wrong but:
If "Sp" is the prefix for Spec2 and trait names start with "T" we should used SpT... for traits, no?
Until now, the T is before the prefix. (For example TIceXXX for Iceberg). So I followed what was already done.
Otherwise it would not be a prefix ...
Thanks T.
-- Cyril Ferlicot https://ferlicot.fr
Cyril wrote
Until now, the T is before the prefix. (For example TIceXXX for Iceberg). So I followed what was already done.
But then IMHO Iceberg is wrong too and do not correctly and consistently use their own prefix in front of classes/traits. See other samples like traits in which are also there already: Epicea -> EpTEventVisitor Fuel -> FLTGlobalClassOrTraitSerializationTest Glamour -> GLMTBlockTags Moose Algos -> MalTEdgeNode ... and where "prefix" is first as it should be. There are several reasons why "prefix" should be first: 1. As the name says: it is a prefix - so it would be obvious to have it in front of the class or trait name. 2. Prefixes are a workaround because we do not have namespaces (yet). Following the "prefix" always first rule we could later have a separation into namespaces more easily later when migrating. 3. If someone uses a prefix starting with a "T" too, like "TPL" for Template library then people get easily confused with class/trait mix of "TTPL" and "TPLT" looking like a typo or thinking all are traits because "T" is the first. Therefore - Prefix should be two (as in Seaside), ideally three letters and ideally in uppercase IMHO we should define a rule to have three uppercase letters at least for the base image. - order should be "prefix" and then class or trait name (where trait names start with "T". Smalltalk provides lots of freedom. But without rules and discipline it easily ends up in inconsistencies, chaos, a mess... Looks like even Pharo engineers miss a code guide these days ... Bye T.
participants (6)
-
Alexandre Bergel -
Cyril Ferlicot -
Esteban Lorenzano -
Guillermo Polito -
Norbert Hartl -
Torsten Bergmann