[Metacello] Newbie bug with ConfigurationOfCitezen?

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

[Metacello] Newbie bug with ConfigurationOfCitezen?

Damien Pollet
Hi metacellists,

Gofer new squeaksource: 'Citezen';
        package: 'ConfigurationOfCitezen';
        load.
ConfigurationOfCitezen project latestVersion "returns nil"

Why oh why ?  :)
I did go through the tutorial, no luck…

--
Damien Pollet
type less, do more [ | ] http://people.untyped.org/damien.pollet
Reply | Threaded
Open this post in threaded view
|

Re: [Metacello] Newbie bug with ConfigurationOfCitezen?

Mariano Martinez Peck


On Thu, Feb 4, 2010 at 1:29 PM, Damien Pollet <[hidden email]> wrote:
Hi metacellists,

Gofer new squeaksource: 'Citezen';
       package: 'ConfigurationOfCitezen';
       load.
ConfigurationOfCitezen project latestVersion "returns nil"

Why oh why ?  :)
I did go through the tutorial, no luck…


Hi Damien: the problem is that latestVersion  exclude certain blessings. Actually,  #development #broken and #baseline

You can see that in  MetacelloProject  >> classexcludeFromLatestVersion

You defined only ONE version and with blessing development. Thus, no version in latestVersion :)

Anyway, it is in the tutorial (yes, of course, everybody can just don't see it). The lesson is 11 blessing and it says:


"Blessings can be used as a filter. For example, you will notice that the result of the
following expression is version 0.6, because #latestVersion answers the latest version whose
blessing is _not_ #development, #broken, or #blessing:

    MetacelloTutorialConfig project latestVersion.
    MetacelloTutorialConfig project latestVersion load.

The blessing of version 1.1 is #development. To find the latest #development version you
would execute this expression:

    MetacelloTutorialConfig project latestVersion: #development.
    (MetacelloTutorialConfig project latestVersion: #development) load.

You can get the very last version independent of blessing by executing this expression:

    MetacelloTutorialConfig project lastVersion.
    MetacelloTutorialConfig project lastVersion load."


Cheers

Mariano

 
--
Damien Pollet
type less, do more [ | ] http://people.untyped.org/damien.pollet

Reply | Threaded
Open this post in threaded view
|

Re: [Metacello] Newbie bug with ConfigurationOfCitezen?

Damien Pollet
> You defined only ONE version and with blessing development. Thus, no version
> in latestVersion :)

Heh, newbie bug indeed. Thanks !
--
Damien Pollet
type less, do more [ | ] http://people.untyped.org/damien.pollet
Reply | Threaded
Open this post in threaded view
|

Re: [Metacello] Newbie bug with ConfigurationOfCitezen?

stephane ducasse-2
In reply to this post by Mariano Martinez Peck
mariano

you should add a more explicit explanation in the cool forth coming chapter :)

Stef
On Feb 4, 2010, at 3:41 PM, Mariano Martinez Peck wrote:

>
>
> On Thu, Feb 4, 2010 at 1:29 PM, Damien Pollet <[hidden email]> wrote:
> Hi metacellists,
>
> Gofer new squeaksource: 'Citezen';
>        package: 'ConfigurationOfCitezen';
>        load.
> ConfigurationOfCitezen project latestVersion "returns nil"
>
> Why oh why ?  :)
> I did go through the tutorial, no luck…
>
>
> Hi Damien: the problem is that latestVersion  exclude certain blessings. Actually,  #development #broken and #baseline
>
> You can see that in  MetacelloProject  >> classexcludeFromLatestVersion
>
> You defined only ONE version and with blessing development. Thus, no version in latestVersion :)
>
> Anyway, it is in the tutorial (yes, of course, everybody can just don't see it). The lesson is 11 blessing and it says:
>
>
> "Blessings can be used as a filter. For example, you will notice that the result of the
> following expression is version 0.6, because #latestVersion answers the latest version whose
> blessing is _not_ #development, #broken, or #blessing:
>
>     MetacelloTutorialConfig project latestVersion.
>     MetacelloTutorialConfig project latestVersion load.
>
> The blessing of version 1.1 is #development. To find the latest #development version you
> would execute this expression:
>
>     MetacelloTutorialConfig project latestVersion: #development.
>     (MetacelloTutorialConfig project latestVersion: #development) load.
>
> You can get the very last version independent of blessing by executing this expression:
>
>     MetacelloTutorialConfig project lastVersion.
>     MetacelloTutorialConfig project lastVersion load."
>
>
> Cheers
>
> Mariano
>
>  
> --
> Damien Pollet
> type less, do more [ | ] http://people.untyped.org/damien.pollet
>

Reply | Threaded
Open this post in threaded view
|

Re: [Metacello] Newbie bug with ConfigurationOfCitezen?

Mariano Martinez Peck


On Thu, Feb 4, 2010 at 9:34 PM, stephane ducasse <[hidden email]> wrote:
mariano

you should add a more explicit explanation in the cool forth coming chapter :)


I already had it :)

"Blessings can be also used as a filter. For example, you will notice that the result of the following expression:
 \begin{code}{}
ConfigurationOfCoolBrowser project latestVersion.
\end{code}
is not always the last version.  This is because \#latestVersion answers the latest version whose blessing is {\em not} \#development, \#broken, or \#blessing. To find the latest \#development version for example, you would execute this expression:
"
 
Anyway, my idea is that when I finish the chapter I will check the whole mailing list to see all the interesting stuff to include.

Mariano

Stef
On Feb 4, 2010, at 3:41 PM, Mariano Martinez Peck wrote:

>
>
> On Thu, Feb 4, 2010 at 1:29 PM, Damien Pollet <[hidden email]> wrote:
> Hi metacellists,
>
> Gofer new squeaksource: 'Citezen';
>        package: 'ConfigurationOfCitezen';
>        load.
> ConfigurationOfCitezen project latestVersion "returns nil"
>
> Why oh why ?  :)
> I did go through the tutorial, no luck…
>
>
> Hi Damien: the problem is that latestVersion  exclude certain blessings. Actually,  #development #broken and #baseline
>
> You can see that in  MetacelloProject  >> classexcludeFromLatestVersion
>
> You defined only ONE version and with blessing development. Thus, no version in latestVersion :)
>
> Anyway, it is in the tutorial (yes, of course, everybody can just don't see it). The lesson is 11 blessing and it says:
>
>
> "Blessings can be used as a filter. For example, you will notice that the result of the
> following expression is version 0.6, because #latestVersion answers the latest version whose
> blessing is _not_ #development, #broken, or #blessing:
>
>     MetacelloTutorialConfig project latestVersion.
>     MetacelloTutorialConfig project latestVersion load.
>
> The blessing of version 1.1 is #development. To find the latest #development version you
> would execute this expression:
>
>     MetacelloTutorialConfig project latestVersion: #development.
>     (MetacelloTutorialConfig project latestVersion: #development) load.
>
> You can get the very last version independent of blessing by executing this expression:
>
>     MetacelloTutorialConfig project lastVersion.
>     MetacelloTutorialConfig project lastVersion load."
>
>
> Cheers
>
> Mariano
>
>
> --
> Damien Pollet
> type less, do more [ | ] http://people.untyped.org/damien.pollet
>


Reply | Threaded
Open this post in threaded view
|

Re: [Metacello] Newbie bug with ConfigurationOfCitezen?

stephane ducasse-2
yes I should finish to read and modify it

On Feb 5, 2010, at 9:28 AM, Mariano Martinez Peck wrote:

>
>
> On Thu, Feb 4, 2010 at 9:34 PM, stephane ducasse <[hidden email]> wrote:
> mariano
>
> you should add a more explicit explanation in the cool forth coming chapter :)
>
>
> I already had it :)
>
> "Blessings can be also used as a filter. For example, you will notice that the result of the following expression:
>  \begin{code}{}
> ConfigurationOfCoolBrowser project latestVersion.
> \end{code}
> is not always the last version.  This is because \#latestVersion answers the latest version whose blessing is {\em not} \#development, \#broken, or \#blessing. To find the latest \#development version for example, you would execute this expression:
> "
>  
> Anyway, my idea is that when I finish the chapter I will check the whole mailing list to see all the interesting stuff to include.
>
> Mariano
>
> Stef
> On Feb 4, 2010, at 3:41 PM, Mariano Martinez Peck wrote:
>
> >
> >
> > On Thu, Feb 4, 2010 at 1:29 PM, Damien Pollet <[hidden email]> wrote:
> > Hi metacellists,
> >
> > Gofer new squeaksource: 'Citezen';
> >        package: 'ConfigurationOfCitezen';
> >        load.
> > ConfigurationOfCitezen project latestVersion "returns nil"
> >
> > Why oh why ?  :)
> > I did go through the tutorial, no luck…
> >
> >
> > Hi Damien: the problem is that latestVersion  exclude certain blessings. Actually,  #development #broken and #baseline
> >
> > You can see that in  MetacelloProject  >> classexcludeFromLatestVersion
> >
> > You defined only ONE version and with blessing development. Thus, no version in latestVersion :)
> >
> > Anyway, it is in the tutorial (yes, of course, everybody can just don't see it). The lesson is 11 blessing and it says:
> >
> >
> > "Blessings can be used as a filter. For example, you will notice that the result of the
> > following expression is version 0.6, because #latestVersion answers the latest version whose
> > blessing is _not_ #development, #broken, or #blessing:
> >
> >     MetacelloTutorialConfig project latestVersion.
> >     MetacelloTutorialConfig project latestVersion load.
> >
> > The blessing of version 1.1 is #development. To find the latest #development version you
> > would execute this expression:
> >
> >     MetacelloTutorialConfig project latestVersion: #development.
> >     (MetacelloTutorialConfig project latestVersion: #development) load.
> >
> > You can get the very last version independent of blessing by executing this expression:
> >
> >     MetacelloTutorialConfig project lastVersion.
> >     MetacelloTutorialConfig project lastVersion load."
> >
> >
> > Cheers
> >
> > Mariano
> >
> >
> > --
> > Damien Pollet
> > type less, do more [ | ] http://people.untyped.org/damien.pollet
> >
>
>

Reply | Threaded
Open this post in threaded view
|

Re: [Metacello] Newbie bug with ConfigurationOfCitezen?

Damien Pollet
In reply to this post by stephane ducasse-2
On Thu, Feb 4, 2010 at 21:34, stephane ducasse
<[hidden email]> wrote:
> you should add a more explicit explanation in the cool forth coming chapter :)

By the way, couldn't there be some kind of "interactive" exceptions ?
Something to provide the user feedback and meaningful error messages
from doits, but that wouldn't impact normal execution…

--
Damien Pollet
type less, do more [ | ] http://people.untyped.org/damien.pollet
Reply | Threaded
Open this post in threaded view
|

Re: Newbie bug with ConfigurationOfCitezen?

Mariano Martinez Peck


On Fri, Feb 5, 2010 at 11:21 AM, Damien Pollet <[hidden email]> wrote:
On Thu, Feb 4, 2010 at 21:34, stephane ducasse
<[hidden email]> wrote:
> you should add a more explicit explanation in the cool forth coming chapter :)

By the way, couldn't there be some kind of "interactive" exceptions ?
Something to provide the user feedback and meaningful error messages
from doits, but that wouldn't impact normal execution…


The problem is that Metacello shouldn't use UIManager or popups so that it can be used by automated build scritps where you don't want that.

How can you distinguish if the do it is from what you were trying to do or from such build scripts ?

I don't know. It is complicated. And it is documented, at least it is in the tutorial. There will be also some validations in a future. I think there are some issues opened regarding this.

But anyway, we should heard Dale opinion, I am just a user as you :)

Mariano
 
--
Damien Pollet
type less, do more [ | ] http://people.untyped.org/damien.pollet

Reply | Threaded
Open this post in threaded view
|

Re: Newbie bug with ConfigurationOfCitezen?

Dale
In reply to this post by Damien Pollet
Damien,

Thanks for the feedback ... technically your original configuration wasn't wrong, it was just not what you expected, which _is_ a bug, just a different kind of bug ... Mariano is correct that I don't want too many notifiers/warnings to interfere with "normal" execution.

I've known that Metacello needs a validator to identify errors and give good error messages (you can currently build "invalid" configurations that don't break right away and when they do, it is difficult to recognize the cause), but I now see that a "configuarion critic" would also be useful ... the critic could give you exactly the feedback that you are looking for without annoying folks with messages when they "violated the convention" on purpose.

I'll include this thread in Issue 6 (the validator feature request).

Thanks,

Dale
----- "Damien Pollet" <[hidden email]> wrote:

| On Thu, Feb 4, 2010 at 21:34, stephane ducasse
| <[hidden email]> wrote:
| > you should add a more explicit explanation in the cool forth coming
| chapter :)
|
| By the way, couldn't there be some kind of "interactive" exceptions ?
| Something to provide the user feedback and meaningful error messages
| from doits, but that wouldn't impact normal execution…
|
| --
| Damien Pollet
| type less, do more [ | ] http://people.untyped.org/damien.pollet
Reply | Threaded
Open this post in threaded view
|

Re: Newbie bug with ConfigurationOfCitezen?

Damien Pollet
On Fri, Feb 5, 2010 at 18:48, Dale Henrichs <[hidden email]> wrote:
> Damien,
>
> Thanks for the feedback ... technically your original configuration wasn't wrong, it was just not what you expected, which _is_ a bug, just a different kind of bug ... Mariano is correct that I don't want too many notifiers/warnings to interfere with "normal" execution.

My remark was a more general one about the platform… we could change
the doit mechanism to do user-oriented exception handling, then
applications could just throw "user exceptions" with helpful messages,
that would be ignored in a normal programming setting.

> I've known that Metacello needs a validator to identify errors and give good error messages (you can currently build "invalid" configurations that don't break right away and when they do, it is difficult to recognize the cause), but I now see that a "configuarion critic" would also be useful ... the critic could give you exactly the feedback that you are looking for without annoying folks with messages when they "violated the convention" on purpose.

Indeed. First what's needed is an entry point, like the Metacello
tutorial, then something to help refine details, or to help when you
have an existing code base and you want to be able to forget the
details or to be notified when you err or the tool changes. Smalltalk
is so dynamic, I think that it needs this kind of *active*
documentation.


--
Damien Pollet
type less, do more [ | ] http://people.untyped.org/damien.pollet