Re: [Pharo-users] Information on Spec development

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Information on Spec development

Guillermo Polito
Thanks for pushing this Cyril!
This will let us move forward with Iceberg too :)

El 13 ago 2019, a las 12:15, Cyril Ferlicot <[hidden email]> escribió:

On Thu, Jun 20, 2019 at 5:29 PM Cyril Ferlicot <[hidden email]> 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

Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Information on Spec development

NorbertHartl


Am 13.08.2019 um 12:28 schrieb Guillermo Polito <[hidden email]>:

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 <[hidden email]> escribió:

On Thu, Jun 20, 2019 at 5:29 PM Cyril Ferlicot <[hidden email]> 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


Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Information on Spec development

Torsten Bergmann
In reply to this post by Guillermo Polito
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.


Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Information on Spec development

CyrilFerlicot
In reply to this post by NorbertHartl
On Tue, Aug 13, 2019 at 2:59 PM Norbert Hartl <[hidden email]> 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

Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Information on Spec development

EstebanLM


> On 13 Aug 2019, at 15:19, Cyril Ferlicot <[hidden email]> wrote:
>
> On Tue, Aug 13, 2019 at 2:59 PM Norbert Hartl <[hidden email]> 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
>


Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Information on Spec development

CyrilFerlicot
On Tue, Aug 13, 2019 at 3:25 PM Esteban Lorenzano <[hidden email]> 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