[Pharo-project] How to declare Zinc/FS dependency in Metacello Configuration for 1.4
I'm updating some Metacello configurations and I'm wondering how to declare the dependencies on stuff that have been integrated into Pharo 1.4 (e.g., Zinc, FS). Should I declare those dependencies into my configuration? If yes, against with version? My gut feeling is that I should create a new baseline that does not require any Zinc of FS. That becomes a pain in the ass when developing in parallel for 1.3 and 1.4. Is the only place where I can differentiate 1.3 and 1.4 is in the stable symbolic version, right? What are people generally doing? Cheers, Francois
On Apr 25, 2012, at 12:06 AM, Francois Stephany wrote:
I'm updating some Metacello configurations and I'm wondering how to declare the dependencies on stuff that have been integrated into Pharo 1.4 (e.g., Zinc, FS).
excellent question. So far you cannot but what we discussed with esteban is that we want to have the configurationOf the project loaded so that when we move to a smaller kernel we do not have to reinvent them and more important we can code against and use them as milestone.
Should I declare those dependencies into my configuration? If yes, against with version?
My gut feeling is that I should create a new baseline that does not require any Zinc of FS.
yes
That becomes a pain in the ass when developing in parallel for 1.3 and 1.4.
yes same feeling here.
Is the only place where I can differentiate 1.3 and 1.4 is in the stable symbolic version, right?
What are people generally doing?
grumbling :( May be dale know but I don't
Cheers, Francois
Francois, The #stable symbolic version is the key when dealing with a new platform version like pharo 1.4 ... if a configuration does not have a #stable version for #pharo1.4 then it is not likely that the configuration has been tested on pharo1.4 ... If it does have a #stable version then it is likely to have been tested. At this point you have a decision to make ... If your project depends upon particular features or APIs in a project like Zinc or Seaside or FS, then you will be interested in referencing that particular version in your specification. Nonetheless if there is no #stable version specified for the project, then you can't be sure that the project has been ported. On the other hand, if your project uses the standard API and has no special dependencies upon details of the project, then you should reference the #stable version from your configuration ... using #stable means that you don't have to fiddle with your configuration every time a new version is released and using #stable means that your configuration will work with multiple platform versions. Once you have verified that your project is working on pharo1.4, then you should publish a #stable version for #pharo1.4, so that users of your project will know that they can safely move to pharo 1.4 ... Dale ----- Original Message ----- | From: "Francois Stephany" <tulipe.moutarde@gmail.com> | To: pharo-project@lists.gforge.inria.fr | Sent: Tuesday, April 24, 2012 3:06:03 PM | Subject: [Pharo-project] How to declare Zinc/FS dependency in Metacello Configuration for 1.4 | | I'm updating some Metacello configurations and I'm wondering how to | declare the dependencies on stuff that have been integrated into | Pharo | 1.4 (e.g., Zinc, FS). | | Should I declare those dependencies into my configuration? If yes, | against with version? | | My gut feeling is that I should create a new baseline that does not | require any Zinc of FS. | That becomes a pain in the ass when developing in parallel for 1.3 | and | 1.4. Is the only place where I can differentiate 1.3 and 1.4 is in | the | stable symbolic version, right? | | What are people generally doing? | | | Cheers, | Francois | |
Hi Dale,
If your project depends upon particular features or APIs in a project like Zinc or Seaside or FS, then you will be interested in referencing that particular version in your specification.
Yep but what if I don't need to declare Zinc in the #stable version of my package for pharo 1.4 but I do need it for Pharo 1.3.
On the other hand, if your project uses the standard API and has no special dependencies upon details of the project, then you should reference the #stable version from your configuration ... using #stable means that you don't have to fiddle with your configuration every time a new version is released and using #stable means that your configuration will work with multiple platform versions.
Mmm. I still reluctant to specify a dependency against #stable. A package that makes a bump in its version number because of changing API will load the wrong version.
Once you have verified that your project is working on pharo1.4, then you should publish a #stable version for #pharo1.4, so that users of your project will know that they can safely move to pharo 1.4 ...
Right. That works fine if I use the #stable symbolic version to declare the dependency. Francois
----- Original Message ----- | From: "Francois Stephany"<tulipe.moutarde@gmail.com> | To: pharo-project@lists.gforge.inria.fr | Sent: Tuesday, April 24, 2012 3:06:03 PM | Subject: [Pharo-project] How to declare Zinc/FS dependency in Metacello Configuration for 1.4 | | I'm updating some Metacello configurations and I'm wondering how to | declare the dependencies on stuff that have been integrated into | Pharo | 1.4 (e.g., Zinc, FS). | | Should I declare those dependencies into my configuration? If yes, | against with version? | | My gut feeling is that I should create a new baseline that does not | require any Zinc of FS. | That becomes a pain in the ass when developing in parallel for 1.3 | and | 1.4. Is the only place where I can differentiate 1.3 and 1.4 is in | the | stable symbolic version, right? | | What are people generally doing? | | | Cheers, | Francois | |
-- http://tulipemoutarde.be CA: +1 778 558 3225 BE: +32 65 709 131
replies embedded ... ----- Original Message ----- | From: "Francois Stephany" <tulipe.moutarde@gmail.com> | To: pharo-project@lists.gforge.inria.fr | Sent: Tuesday, April 24, 2012 4:35:19 PM | Subject: Re: [Pharo-project] How to declare Zinc/FS dependency in Metacello Configuration for 1.4 | | Hi Dale, | | > If your project depends upon particular features or APIs in a | > project like Zinc or Seaside or FS, then you will be interested in | > referencing that particular version in your specification. | | Yep but what if I don't need to declare Zinc in the #stable version | of | my package for pharo 1.4 but I do need it for Pharo 1.3. So you are implying that you only have dependency on Zinc for the Pharo1.3 version of your project. Then you do something like the following in your baseline: spec for: #'pharo' do: [ spec package: 'that depends upon zinc' with: [ "the common required packages for your package" ]. ]. spec for: #'pharo1.3.x' do: [ spec project: 'Zinc' with: [ spec className: 'ConfigurationOfZinc'; versionString: #'stable'; repository: 'http://www.squeaksource.com/MetacelloRepository' ]. spec package: 'that depends upon zinc' with: [ spec requires: #('Zinc') ]. ]. If you use the #stable version in your baseline there is no need to anything special in your version spec. | | > On the other hand, if your project uses the standard API and has no | > special dependencies upon details of the project, then you should | > reference the #stable version from your configuration ... using | > #stable means that you don't have to fiddle with your | > configuration every time a new version is released and using | > #stable means that your configuration will work with multiple | > platform versions. | | Mmm. I still reluctant to specify a dependency against #stable. | A package that makes a bump in its version number because of changing | API will load the wrong version. If they update the #stable version at the same time then that is what you want ... To be fair, I will be changing the "automatic upgrade" behavior when I come out with the next release of Metacello ... it will include a Metacello scripting API and you will have more control over how Metacello will treat already loaded projects ... basically you will have to explicitly upgrade a project ... | | > Once you have verified that your project is working on pharo1.4, | > then you should publish a #stable version for #pharo1.4, so that | > users of your project will know that they can safely move to pharo | > 1.4 ... | | Right. That works fine if I use the #stable symbolic version to | declare | the dependency. | | Francois | | > | > ----- Original Message ----- | > | From: "Francois Stephany"<tulipe.moutarde@gmail.com> | > | To: pharo-project@lists.gforge.inria.fr | > | Sent: Tuesday, April 24, 2012 3:06:03 PM | > | Subject: [Pharo-project] How to declare Zinc/FS dependency in | > | Metacello Configuration for 1.4 | > | | > | I'm updating some Metacello configurations and I'm wondering how | > | to | > | declare the dependencies on stuff that have been integrated into | > | Pharo | > | 1.4 (e.g., Zinc, FS). | > | | > | Should I declare those dependencies into my configuration? If | > | yes, | > | against with version? | > | | > | My gut feeling is that I should create a new baseline that does | > | not | > | require any Zinc of FS. | > | That becomes a pain in the ass when developing in parallel for | > | 1.3 | > | and | > | 1.4. Is the only place where I can differentiate 1.3 and 1.4 is | > | in | > | the | > | stable symbolic version, right? | > | | > | What are people generally doing? | > | | > | | > | Cheers, | > | Francois | > | | > | | > | | -- | http://tulipemoutarde.be | CA: +1 778 558 3225 | BE: +32 65 709 131 | |
Haha you made my day Dale! I didn't know that you coul specify #'pharo1.3.x' in the baseline. That's exactly what I was looking for. Sorry for the noise! On 24/04/12 16:49, Dale Henrichs wrote:
spec for: #'pharo1.3.x' do: [ spec project: 'Zinc' with: [ spec className: 'ConfigurationOfZinc'; versionString: #'stable'; repository: 'http://www.squeaksource.com/Metacel
Haha, no problem at all ... glad to help:) Dale ----- Original Message ----- | From: "Francois Stephany" <tulipe.moutarde@gmail.com> | To: pharo-project@lists.gforge.inria.fr | Sent: Tuesday, April 24, 2012 4:53:21 PM | Subject: Re: [Pharo-project] How to declare Zinc/FS dependency in Metacello Configuration for 1.4 | | Haha you made my day Dale! | I didn't know that you coul specify #'pharo1.3.x' in the baseline. | That's exactly what I was looking for. | | Sorry for the noise! | | On 24/04/12 16:49, Dale Henrichs wrote: | > spec for: #'pharo1.3.x' do: [ | > spec project: 'Zinc' with: [ | > spec | > className: 'ConfigurationOfZinc'; | > versionString: #'stable'; | > repository: 'http://www.squeaksource.com/Metacel | |
Francios, please read the metacello chapter. What you ask is 1.11 Platform specific package cheers On Wed, Apr 25, 2012 at 2:00 AM, Dale Henrichs <dhenrich@vmware.com> wrote:
Haha, no problem at all ... glad to help:)
Dale
----- Original Message ----- | From: "Francois Stephany" <tulipe.moutarde@gmail.com> | To: pharo-project@lists.gforge.inria.fr | Sent: Tuesday, April 24, 2012 4:53:21 PM | Subject: Re: [Pharo-project] How to declare Zinc/FS dependency in Metacello Configuration for 1.4 | | Haha you made my day Dale! | I didn't know that you coul specify #'pharo1.3.x' in the baseline. | That's exactly what I was looking for. | | Sorry for the noise! | | On 24/04/12 16:49, Dale Henrichs wrote: | > spec for: #'pharo1.3.x' do: [ | > spec project: 'Zinc' with: [ | > spec | > className: 'ConfigurationOfZinc'; | > versionString: #'stable'; | > repository: 'http://www.squeaksource.com/Metacel | |
-- Mariano http://marianopeck.wordpress.com
Ok I will add that in the chapter because damien reported the problem with the fact that we integrated FS and AST then remove it. Since we cannot milestone update versions, we (the pharo core) should probably create new version i.e. 2.0.1 when we change package structure so that people can still work on alpha too. Stef
Haha, no problem at all ... glad to help:)
Dale
----- Original Message ----- | From: "Francois Stephany" <tulipe.moutarde@gmail.com> | To: pharo-project@lists.gforge.inria.fr | Sent: Tuesday, April 24, 2012 4:53:21 PM | Subject: Re: [Pharo-project] How to declare Zinc/FS dependency in Metacello Configuration for 1.4 | | Haha you made my day Dale! | I didn't know that you coul specify #'pharo1.3.x' in the baseline. | That's exactly what I was looking for. | | Sorry for the noise! | | On 24/04/12 16:49, Dale Henrichs wrote: | > spec for: #'pharo1.3.x' do: [ | > spec project: 'Zinc' with: [ | > spec | > className: 'ConfigurationOfZinc'; | > versionString: #'stable'; | > repository: 'http://www.squeaksource.com/Metacel | |
I added: \subsection{How to Deal with Package Structure Changes?} Imagine that you want to develop an application on both Pharo13 and Pharo14, and that your application has only a package for one version: either because you changed your application or because the package was integrated into the base system. The solution is to define the dependencies and use the symbolic tag as a marker, as follows: \begin{code}{} spec for: #'pharo' do: [ spec package: 'that depends upon zinc' with: [ "the common required packages for your package" ]. spec for: #'pharo1.3.x' do: [ spec project: 'Zinc' with: [ spec className: 'ConfigurationOfZinc'; versionString: #'stable'; repository: 'http://www.squeaksource.com/MetacelloRepository' ]. spec package: 'that depends upon zinc' with: [ spec requires: #('Zinc') ]. ]. \end{code} If you use the \ct{stable} version in your baseline there is no need to anything special in your version specification. stef
Stef
Haha, no problem at all ... glad to help:)
Dale
----- Original Message ----- | From: "Francois Stephany" <tulipe.moutarde@gmail.com> | To: pharo-project@lists.gforge.inria.fr | Sent: Tuesday, April 24, 2012 4:53:21 PM | Subject: Re: [Pharo-project] How to declare Zinc/FS dependency in Metacello Configuration for 1.4 | | Haha you made my day Dale! | I didn't know that you coul specify #'pharo1.3.x' in the baseline. | That's exactly what I was looking for. | | Sorry for the noise! | | On 24/04/12 16:49, Dale Henrichs wrote: | > spec for: #'pharo1.3.x' do: [ | > spec project: 'Zinc' with: [ | > spec | > className: 'ConfigurationOfZinc'; | > versionString: #'stable'; | > repository: 'http://www.squeaksource.com/Metacel | |
fstephany wrote
I'm updating some Metacello configurations and I'm wondering how to declare the dependencies on... FS
I noticed that the configuration for FS in MetacelloRepository points to the original fs project on SqS. It seems it would be better, when working in 1.3, to load the new Pharo version at http://ss3.gemstone.com/ss/Pharo14. This way, you will not need a compatibility layer to load your code in both 1.3 and 1.4 since e.g. the class names have changed (e.g. FSReference -> FileReference). The Pharo 1.4 FS loads in 1.3 with all green tests. HTH, Sean -- View this message in context: http://forum.world.st/How-to-declare-Zinc-FS-dependency-in-Metacello-Configu... Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
participants (5)
-
Dale Henrichs -
Francois Stephany -
Mariano Martinez Peck -
Sean P. DeNigris -
Stéphane Ducasse