About common semantics :)

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

About common semantics :)

stephane ducasse
Dale

working on phexample (which worked well on 2.0) I changed

stable: spec
        <symbolicVersion: #stable>
        spec for: #'common' version: '1.0'.

into

stable: spec
        <symbolicVersion: #stable>
        spec for: #'pharo1.4.x' version: '1.1'.
        spec for: #'pharo2.x' version: '1.0'.

because I could not get the version running in 1.4 (deprecated method usage).


version11: spec
        <version: '1.1' imports: #('1.0-baseline' )>

        spec for: #'common' do: [
                spec blessing: #'release'.
                spec description: 'initial version working well for Pharo 1.4'.
                spec author: 'StephaneDucasse'.
                spec timestamp: '2/10/2013 17:46'.
                spec package: 'Phexample' with: 'Phexample-StephaneDucasse.68'. ].


version10: spec
        <version: '1.0' imports: #('1.0-baseline' )>

        spec for: #'common' do: [
                spec blessing: #'release'.
                spec description: 'initial version working well for Pharo 2.0'.
                spec author: 'StefanMarr'.
                spec timestamp: '2/8/2013 11:46'.
                spec package: 'Phexample' with: 'Phexample-StefanMarr.67'. ].

Now the semantics of common in symbolic version versus in version is not clear to me.
Should I transform

version10: spec
        <version: '1.0' imports: #('1.0-baseline' )>

        spec for: #'common' do: [
                spec blessing: #'release'.
                spec description: 'initial version working well for Pharo 2.0'.
                spec author: 'StefanMarr'.
                spec timestamp: '2/8/2013 11:46'.
                spec package: 'Phexample' with: 'Phexample-StefanMarr.67'. ].

into

version10: spec
        <version: '1.0' imports: #('1.0-baseline' )>

        spec for: #'pharo2.x' do: [
                spec blessing: #'release'.
                spec description: 'initial version working well for Pharo 2.0'.
                spec author: 'StefanMarr'.
                spec timestamp: '2/8/2013 11:46'.
                spec package: 'Phexample' with: 'Phexample-StefanMarr.67'. ].

and

version11: spec
        <version: '1.1' imports: #('1.0-baseline' )>

        spec for: #'common' do: [
                spec blessing: #'release'.
                spec description: 'initial version working well for Pharo 1.4'.
                spec author: 'StephaneDucasse'.
                spec timestamp: '2/10/2013 17:46'.
                spec package: 'Phexample' with: 'Phexample-StephaneDucasse.68'. ].

into
version11: spec
        <version: '1.1' imports: #('1.0-baseline' )>

        spec for: #'pharo1.4.x' do: [
                spec blessing: #'release'.
                spec description: 'initial version working well for Pharo 1.4'.
                spec author: 'StephaneDucasse'.
                spec timestamp: '2/10/2013 17:46'.
                spec package: 'Phexample' with: 'Phexample-StephaneDucasse.68'. ].

Thanks
Stef

 
Reply | Threaded
Open this post in threaded view
|

Re: About common semantics :)

Sean P. DeNigris
Administrator
stephane ducasse wrote
stable: spec
        <symbolicVersion: #stable>
        spec for: #'pharo1.4.x' version: '1.1'.
        spec for: #'pharo2.x' version: '1.0'.
Now the semantics of common in symbolic version versus in version is not clear to me.
Should I transform
        spec for: #'common' do: [
into
        spec for: #'pharo2.x' do: [

and
        spec for: #'common' do: [
into
        spec for: #'pharo1.4.x' do: [

You've already used the symbolic versions to indicate the stability/status mapping from platform to MetaC version. Unless the packaged in spec for: #'common'... are specific to PharoX.Y.Z (e.g. Platform.pharo14), I would leave the #'common'. The package that works for 1.4 might also work for 1.3 and 1.2. We should confirm with Dale, but I'm pretty sure that a #'pharo1.4.x' block will override a #'common' block, so there wouldn't be any conflict...
Cheers,
Sean
Reply | Threaded
Open this post in threaded view
|

Re: About common semantics :)

Dale Henrichs
In reply to this post by stephane ducasse
Comments embedded below...

----- Original Message -----
| From: "stephane ducasse" <[hidden email]>
| To: "Dale Henrichs" <[hidden email]>
| Cc: "[hidden email] Development" <[hidden email]>
| Sent: Sunday, February 10, 2013 8:01:45 AM
| Subject: About common semantics :)
|
| Dale
|
| working on phexample (which worked well on 2.0) I changed
|
| stable: spec
| <symbolicVersion: #stable>
| spec for: #'common' version: '1.0'.
|
| into
|
| stable: spec
| <symbolicVersion: #stable>
| spec for: #'pharo1.4.x' version: '1.1'.
| spec for: #'pharo2.x' version: '1.0'.
|
| because I could not get the version running in 1.4 (deprecated method usage).
|
|
| version11: spec
| <version: '1.1' imports: #('1.0-baseline' )>
|
| spec for: #'common' do: [
| spec blessing: #'release'.
| spec description: 'initial version working well for Pharo 1.4'.
| spec author: 'StephaneDucasse'.
| spec timestamp: '2/10/2013 17:46'.
| spec package: 'Phexample' with: 'Phexample-StephaneDucasse.68'. ].
|
|
| version10: spec
| <version: '1.0' imports: #('1.0-baseline' )>
|
| spec for: #'common' do: [
| spec blessing: #'release'.
| spec description: 'initial version working well for Pharo 2.0'.
| spec author: 'StefanMarr'.
| spec timestamp: '2/8/2013 11:46'.
| spec package: 'Phexample' with: 'Phexample-StefanMarr.67'. ].
|


I would recommend that you leave the symbolic versions alone:

 stable: spec
  <symbolicVersion: #stable>
  spec for: #'common' version: '1.0'.

In order to accomodate your different packages for different versions you should change the version1.0 spec to the following:

    version10: spec
        <version: '1.0' imports: #('1.0-baseline' )>

        spec for: #'common' do: [
                spec blessing: #'release'.
                spec description: 'version working well for Pharo 1.4'.
                spec author: 'StephaneDucasse'.
                spec timestamp: '2/10/2013 17:46'.
                spec package: 'Phexample' with: 'Phexample-StephaneDucasse.68'. ].

        spec for: #'pharo2.x' do: [
                spec package: 'Phexample' with: 'Phexample-StefanMarr.67'. ].


With this spec, you are declaring that Phexample-StephaneDucasse.68 be used for all platforms except Pharo2.x where Phexample-StefanMarr.67 should be used instead...

Dale

Reply | Threaded
Open this post in threaded view
|

Re: About common semantics :)

stephane ducasse
Dale

I have another question what is the interaction between saying that a given version is stable
using a symbolic version and having the development tag in the version?

For example I'm migrating merlin and I have


stable: spec
        <symbolicVersion: #'stable'>
        spec for: #'common' version: '1.5'.

development: spec
        <symbolicVersion: #'development'>
        spec for: #'common' version: '1.7'.


version15: spec
        <version: '1.5' imports: #('1.0-baseline' )>

        spec for: #'common' do: [
                spec blessing: #'development'.
                spec description: '1.4 : Replaced PluggableListMorphOfMany by PluggableListMorph'.
                spec author: 'AlexandreBergel'.
                spec timestamp: '9/30/2011 09:52'.
                spec package: 'Merlin' with: 'Merlin-AlexandreBergel.137'. ].


version17: spec
        <version: '1.7' imports: #('1.0-baseline' )>

        spec for: #'common' do: [
                spec blessing: #'development'.
                spec description: '1.6 : Removed dependency from BlockContext. Merged with last version'.
                spec author: 'AlexandreBergel'.
                spec timestamp: '11/21/2012 08:42'.
                spec package: 'Merlin' with: 'Merlin-AlexandreBergel.141'. ].

so when do we tag a version as release?
because apparently without doing it it still works.

Stef