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 |
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 |
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, |
In reply to this post by Dale Henrichs
On Sat, May 22, 2010 at 1:01 AM, Dale Henrichs <[hidden email]> wrote:
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 ... |
Free forum by Nabble | Edit this page |