On Sat, May 22, 2010 at 1:01 AM, Dale Henrichs <dhenrich@vmware.com> 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: metacello@googlegroups.com [metacello@googlegroups.com] On Behalf Of Mariano Martinez Peck [marianopeck@gmail.com] Sent: Friday, May 21, 2010 2:25 AM To: metacello@googlegroups.com; 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