What packages to load from Metacello in PharoDev?

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

What packages to load from Metacello in PharoDev?

Mariano Martinez Peck
Hi. For building PharoDev images, we take a PharoCore and just evaluate something like:

(ConfigurationOfPharo project version: '1.1-beta1.10517') load

So....Metacello would be boostraped from ConfigurationOfPharo>>ensureMetacello  which does a     (Smalltalk at: #ConfigurationOfMetacello) perform: #loadLatestVersion
and ConfigurationOfMetacello>>loadLatestVersion   does a "self project latestVersion load" ...

and, the default of ConfigurationOfMetacello is Core....so, in summary, only core is loaded. Perfect.

Now I was thinking that we should load more packages in PharoDev image.

First, we want the Metacello tests. For all packages we include by default in PharoDev, we also include its tests (by default). This is cool because people test it, we can give you quick feedback, be sure all green tests, etc. They are cool as documentation, blah blah blah.

So, first question, which tests package should I load? 

Metacello-Tests
Metacello-TestsCore
Metacello-TestsMC
Metacello-TestsPlatform.pharo
Metacello-TestsReference

Or, maybe even better, load the group 'Test'.  I guess this is the correct one.

Now, I also think we could include all the following packages:

- Tutorial: this is cool for newcomers. They want to do the Metacello tutorial, and having it already in the image is cool I think. I want to include also the tests for the tutorial

- HelpSystem for Metacello: we need to copy this package from the HelpSystem repo (see my other email)

- Metacello ProfStef

- Metacello OB: do you know if it is working in Pharo 1.1 and with OB 1.1.4  ?

What do you think about including these packages in PharoDev by default ? I think it is a good idea.

Regardless that, I am not sure how to load them. As I told you, when building PharoDev images, Metacello is boostraped from the #ensureMetacello of ConfigurationOfPharo. And this will load the Core. ANd this is correct because other people use COnfigurationOfPharo for their own stuff and they just want the core. But in the case of PharoDev, I want more packages. But modifying #ensureMetacello is not an alternative.

So...I can put a reference to ConfigurationOfMetacello in Conf of Pharo, just like any other dependency, and there I specify the loads:  with the array of things I want.  This seems better. But I still have a problem:   #ensureMetacello will load the latestVersion of it. It will load core. So, which version of ConfigurationOfMetacello should I use in my version of ConfigurationOfPharo. If I put a specific version, I may hve problems because it will try to download different versions....So, I would like to load the same as the #ensureMetacello. But I cannot specify in version method lastVersion for metacello.

what can I do ?  don't specify the metacello version in the version method so that it takes the last one ? 

Thanks and sorry for the long email

Mariano


Reply | Threaded
Open this post in threaded view
|

RE: What packages to load from Metacello in PharoDev?

Dale Henrichs
Mariano,

Which Test packages to load ... The real answer to that question will depend upon what other packages are loaded .... if you load 'Tests' you'll end up loading up most of the "optional packages," so if that's not a problem in the default PharoDev then 'Tests' is the right answer, otherwise I would think that the list should match the optional set of packages you are loading anyway...

OB-Metacello was ported to Pharo1.1 in version 1.0-beta.26.2, which I will be releasing very soon.

I agree that for the default environment it is a good idea to include the extra packages, since they provide a level of functionality/documentation that should be present ... I will mention that the Metacello tests can be slow to execute, since they do a lot of loading/unloading of packages (using dictionary-based repositories)...

Finally, you can use a valid version of Metacello .... it turns out that if you specify a version of a project that is _older_ than the currently loaded one, Metacello will use the current version and apply the load  list to the loaded version instead of the one listed ... if the loaded version is _older_ than the specified version then the newer version will be loaded ...

Sooo, all you have to do is specify a reasonable version of Metacello and if later versions are loaded the correct pacakges will be loaded  ... BTW, the bug that you noticed with Seaside3.0 was related to this mechanism not quite working correctly:) (oh and I've fixed this bug in 1.0-beta.26.2).

The only time that a downgrade of mcz files occurs is when you explicitly load a Configuration whose mcz files are older than the loaded versions. Only the packages associated directly with the configuration are downgraded ... the referenced projects follow the "standard rules".

Dale
 
________________________________________
From: [hidden email] [[hidden email]] On Behalf Of Mariano Martinez Peck [[hidden email]]
Sent: Friday, May 21, 2010 2:25 AM
To: [hidden email]; Pharo Development
Subject: [Metacello] What packages to load from Metacello in PharoDev?

Hi. For building PharoDev images, we take a PharoCore and just evaluate something like:

(ConfigurationOfPharo project version: '1.1-beta1.10517') load

So....Metacello would be boostraped from ConfigurationOfPharo>>ensureMetacello  which does a     (Smalltalk at: #ConfigurationOfMetacello) perform: #loadLatestVersion
and ConfigurationOfMetacello>>loadLatestVersion   does a "self project latestVersion load" ...

and, the default of ConfigurationOfMetacello is Core....so, in summary, only core is loaded. Perfect.

Now I was thinking that we should load more packages in PharoDev image.

First, we want the Metacello tests. For all packages we include by default in PharoDev, we also include its tests (by default). This is cool because people test it, we can give you quick feedback, be sure all green tests, etc. They are cool as documentation, blah blah blah.

So, first question, which tests package should I load?

Metacello-Tests
Metacello-TestsCore
Metacello-TestsMC
Metacello-TestsPlatform.pharo
Metacello-TestsReference

Or, maybe even better, load the group 'Test'.  I guess this is the correct one.

Now, I also think we could include all the following packages:

- Tutorial: this is cool for newcomers. They want to do the Metacello tutorial, and having it already in the image is cool I think. I want to include also the tests for the tutorial

- HelpSystem for Metacello: we need to copy this package from the HelpSystem repo (see my other email)

- Metacello ProfStef

- Metacello OB: do you know if it is working in Pharo 1.1 and with OB 1.1.4  ?

What do you think about including these packages in PharoDev by default ? I think it is a good idea.

Regardless that, I am not sure how to load them. As I told you, when building PharoDev images, Metacello is boostraped from the #ensureMetacello of ConfigurationOfPharo. And this will load the Core. ANd this is correct because other people use COnfigurationOfPharo for their own stuff and they just want the core. But in the case of PharoDev, I want more packages. But modifying #ensureMetacello is not an alternative.

So...I can put a reference to ConfigurationOfMetacello in Conf of Pharo, just like any other dependency, and there I specify the loads:  with the array of things I want.  This seems better. But I still have a problem:   #ensureMetacello will load the latestVersion of it. It will load core. So, which version of ConfigurationOfMetacello should I use in my version of ConfigurationOfPharo. If I put a specific version, I may hve problems because it will try to download different versions....So, I would like to load the same as the #ensureMetacello. But I cannot specify in version method lastVersion for metacello.

what can I do ?  don't specify the metacello version in the version method so that it takes the last one ?

Thanks and sorry for the long email

Mariano


Reply | Threaded
Open this post in threaded view
|

Re: What packages to load from Metacello in PharoDev?

Mariano Martinez Peck
Thanks Dale. I understood. I will give it a try and try to put it in next PharoDev.

I will ask you in case of more questions.

Cheers

Mariano

On Sat, May 22, 2010 at 1:01 AM, Dale Henrichs <[hidden email]> wrote:
Mariano,

Which Test packages to load ... The real answer to that question will depend upon what other packages are loaded .... if you load 'Tests' you'll end up loading up most of the "optional packages," so if that's not a problem in the default PharoDev then 'Tests' is the right answer, otherwise I would think that the list should match the optional set of packages you are loading anyway...

OB-Metacello was ported to Pharo1.1 in version 1.0-beta.26.2, which I will be releasing very soon.

I agree that for the default environment it is a good idea to include the extra packages, since they provide a level of functionality/documentation that should be present ... I will mention that the Metacello tests can be slow to execute, since they do a lot of loading/unloading of packages (using dictionary-based repositories)...

Finally, you can use a valid version of Metacello .... it turns out that if you specify a version of a project that is _older_ than the currently loaded one, Metacello will use the current version and apply the load  list to the loaded version instead of the one listed ... if the loaded version is _older_ than the specified version then the newer version will be loaded ...

Sooo, all you have to do is specify a reasonable version of Metacello and if later versions are loaded the correct pacakges will be loaded  ... BTW, the bug that you noticed with Seaside3.0 was related to this mechanism not quite working correctly:) (oh and I've fixed this bug in 1.0-beta.26.2).

The only time that a downgrade of mcz files occurs is when you explicitly load a Configuration whose mcz files are older than the loaded versions. Only the packages associated directly with the configuration are downgraded ... the referenced projects follow the "standard rules".

Dale

________________________________________
From: [hidden email] [[hidden email]] On Behalf Of Mariano Martinez Peck [[hidden email]]
Sent: Friday, May 21, 2010 2:25 AM
To: [hidden email]; Pharo Development
Subject: [Metacello] What packages to load from Metacello in PharoDev?

Hi. For building PharoDev images, we take a PharoCore and just evaluate something like:

(ConfigurationOfPharo project version: '1.1-beta1.10517') load

So....Metacello would be boostraped from ConfigurationOfPharo>>ensureMetacello  which does a     (Smalltalk at: #ConfigurationOfMetacello) perform: #loadLatestVersion
and ConfigurationOfMetacello>>loadLatestVersion   does a "self project latestVersion load" ...

and, the default of ConfigurationOfMetacello is Core....so, in summary, only core is loaded. Perfect.

Now I was thinking that we should load more packages in PharoDev image.

First, we want the Metacello tests. For all packages we include by default in PharoDev, we also include its tests (by default). This is cool because people test it, we can give you quick feedback, be sure all green tests, etc. They are cool as documentation, blah blah blah.

So, first question, which tests package should I load?

Metacello-Tests
Metacello-TestsCore
Metacello-TestsMC
Metacello-TestsPlatform.pharo
Metacello-TestsReference

Or, maybe even better, load the group 'Test'.  I guess this is the correct one.

Now, I also think we could include all the following packages:

- Tutorial: this is cool for newcomers. They want to do the Metacello tutorial, and having it already in the image is cool I think. I want to include also the tests for the tutorial

- HelpSystem for Metacello: we need to copy this package from the HelpSystem repo (see my other email)

- Metacello ProfStef

- Metacello OB: do you know if it is working in Pharo 1.1 and with OB 1.1.4  ?

What do you think about including these packages in PharoDev by default ? I think it is a good idea.

Regardless that, I am not sure how to load them. As I told you, when building PharoDev images, Metacello is boostraped from the #ensureMetacello of ConfigurationOfPharo. And this will load the Core. ANd this is correct because other people use COnfigurationOfPharo for their own stuff and they just want the core. But in the case of PharoDev, I want more packages. But modifying #ensureMetacello is not an alternative.

So...I can put a reference to ConfigurationOfMetacello in Conf of Pharo, just like any other dependency, and there I specify the loads:  with the array of things I want.  This seems better. But I still have a problem:   #ensureMetacello will load the latestVersion of it. It will load core. So, which version of ConfigurationOfMetacello should I use in my version of ConfigurationOfPharo. If I put a specific version, I may hve problems because it will try to download different versions....So, I would like to load the same as the #ensureMetacello. But I cannot specify in version method lastVersion for metacello.

what can I do ?  don't specify the metacello version in the version method so that it takes the last one ?

Thanks and sorry for the long email

Mariano



Reply | Threaded
Open this post in threaded view
|

Re: What packages to load from Metacello in PharoDev?

Mariano Martinez Peck
In reply to this post by Dale Henrichs


On Sat, May 22, 2010 at 1:01 AM, Dale Henrichs <[hidden email]> wrote:


I agree that for the default environment it is a good idea to include the extra packages, since they provide a level of functionality/documentation that should be present ... I will mention that the Metacello tests can be slow to execute, since they do a lot of loading/unloading of packages (using dictionary-based repositories)...


Dale. Yesterday I run the tests and the package that is slow is Metacello-TestsMC. It takes at least half an hour.
If you ask me, I don't care. I would include them in PharoDev anyway. It is worth.

So, what other Pharaoers think?

Cheers

Mariano

 
Finally, you can use a valid version of Metacello .... it turns out that if you specify a version of a project that is _older_ than the currently loaded one, Metacello will use the current version and apply the load  list to the loaded version instead of the one listed ... if the loaded version is _older_ than the specified version then the newer version will be loaded ...

Sooo, all you have to do is specify a reasonable version of Metacello and if later versions are loaded the correct pacakges will be loaded  ... BTW, the bug that you noticed with Seaside3.0 was related to this mechanism not quite working correctly:) (oh and I've fixed this bug in 1.0-beta.26.2).

The only time that a downgrade of mcz files occurs is when you explicitly load a Configuration whose mcz files are older than the loaded versions. Only the packages associated directly with the configuration are downgraded ... the referenced projects follow the "standard rules".

Dale

________________________________________
From: [hidden email] [[hidden email]] On Behalf Of Mariano Martinez Peck [[hidden email]]
Sent: Friday, May 21, 2010 2:25 AM
To: [hidden email]; Pharo Development
Subject: [Metacello] What packages to load from Metacello in PharoDev?

Hi. For building PharoDev images, we take a PharoCore and just evaluate something like:

(ConfigurationOfPharo project version: '1.1-beta1.10517') load

So....Metacello would be boostraped from ConfigurationOfPharo>>ensureMetacello  which does a     (Smalltalk at: #ConfigurationOfMetacello) perform: #loadLatestVersion
and ConfigurationOfMetacello>>loadLatestVersion   does a "self project latestVersion load" ...

and, the default of ConfigurationOfMetacello is Core....so, in summary, only core is loaded. Perfect.

Now I was thinking that we should load more packages in PharoDev image.

First, we want the Metacello tests. For all packages we include by default in PharoDev, we also include its tests (by default). This is cool because people test it, we can give you quick feedback, be sure all green tests, etc. They are cool as documentation, blah blah blah.

So, first question, which tests package should I load?

Metacello-Tests
Metacello-TestsCore
Metacello-TestsMC
Metacello-TestsPlatform.pharo
Metacello-TestsReference

Or, maybe even better, load the group 'Test'.  I guess this is the correct one.

Now, I also think we could include all the following packages:

- Tutorial: this is cool for newcomers. They want to do the Metacello tutorial, and having it already in the image is cool I think. I want to include also the tests for the tutorial

- HelpSystem for Metacello: we need to copy this package from the HelpSystem repo (see my other email)

- Metacello ProfStef

- Metacello OB: do you know if it is working in Pharo 1.1 and with OB 1.1.4  ?

What do you think about including these packages in PharoDev by default ? I think it is a good idea.

Regardless that, I am not sure how to load them. As I told you, when building PharoDev images, Metacello is boostraped from the #ensureMetacello of ConfigurationOfPharo. And this will load the Core. ANd this is correct because other people use COnfigurationOfPharo for their own stuff and they just want the core. But in the case of PharoDev, I want more packages. But modifying #ensureMetacello is not an alternative.

So...I can put a reference to ConfigurationOfMetacello in Conf of Pharo, just like any other dependency, and there I specify the loads:  with the array of things I want.  This seems better. But I still have a problem:   #ensureMetacello will load the latestVersion of it. It will load core. So, which version of ConfigurationOfMetacello should I use in my version of ConfigurationOfPharo. If I put a specific version, I may hve problems because it will try to download different versions....So, I would like to load the same as the #ensureMetacello. But I cannot specify in version method lastVersion for metacello.

what can I do ?  don't specify the metacello version in the version method so that it takes the last one ?

Thanks and sorry for the long email

Mariano