<br><br><div class="gmail_quote">On Wed, Mar 30, 2011 at 11:52 PM, Igor Stasenko <span dir="ltr"><<a href="mailto:siguctua@gmail.com">siguctua@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div><div></div><div class="h5">On 30 March 2011 20:11, Mariano Martinez Peck <<a href="mailto:marianopeck@gmail.com">marianopeck@gmail.com</a>> wrote:<br>
><br>
>> ><br>
>> ><br>
>> > ((Smalltalk at: #ConfigurationOfCog) project<br>
>> > version: '1.5') load: 'VMakerWithCmake'.<br>
>> ><br>
>> > and that's all :)<br>
>><br>
>><br>
>> So, if you know how to do that, please do. And i will happily integrate<br>
>> it.<br>
>><br>
><br>
><br>
> Find the ConfigurationOfCog attached. As an example, I've created the<br>
> version 1.6 and baseline 1.4<br>
><br>
> Notice that in the baseline I added:<br>
><br>
> spec repository: '<a href="http://www.squeaksource.com/VMMaker" target="_blank">http://www.squeaksource.com/VMMaker</a>';<br>
> package: 'CMakeVMMaker' with: [spec requires: #('Cog') ] .<br>
><br>
><br>
> and in the version I added:<br>
><br>
> package: 'CMakeVMMaker' with: 'CMakeVMMaker-IgorStasenko.51'.<br>
><br>
> So...for new versions, the only thing you will need to do is to set that<br>
> version, just the same you do with the rest.<br>
><br>
> So..this:<br>
><br>
> Gofer new<br>
> squeaksource: 'MetacelloRepository';<br>
> package: 'ConfigurationOfCog';<br>
> load.<br>
><br>
> ((Smalltalk at: #ConfigurationOfCog) project<br>
> version: '1.5') load.<br>
><br>
><br>
> ((MCHttpRepository location: '<a href="http://www.squeaksource.com/VMMaker" target="_blank">http://www.squeaksource.com/VMMaker</a>' user:<br>
> '' password: '')<br>
> versionFromFileNamed: 'CMakeVMMaker-IgorStasenko.51.mcz') load.<br>
><br>
><br>
> now is reduced to:<br>
><br>
><br>
> Gofer new<br>
> squeaksource: 'MetacelloRepository';<br>
> package: 'ConfigurationOfCog';<br>
> load.<br>
><br>
> ((Smalltalk at: #ConfigurationOfCog) project<br>
> version: '1.5') load.<br>
><br>
><br>
</div></div>Nice. Thanks.<br>
<div class="im"><br>
><br>
>><br>
>> I'd like to note to everyone:<br>
>><br>
>> - an automated build process works, but its not perfect. (but its<br>
>> much better than we had before ;)<br>
>><br>
>> So, a criticism and help or ideas how to improve it is welcome.<br>
>><br>
>> ><br>
>> > Another idea is to put in the #description of each version of<br>
>> > ConfigurationOfCog, which is the expected version of git to work. I used<br>
>> > to<br>
>> > do this wtih SVN and ConfogurationOfVMMaker.<br>
>> > this way we can map from the other side ;)<br>
>> > even more...in the description you can directlty put which sohuld be the<br>
>> > git<br>
>> > command.<br>
>> ><br>
>><br>
>> Well, that will be unnecessary, because multiple git snapshots may<br>
>> work with same configuration.<br>
><br>
> The same the other way arround ;)<br>
> The same VMMaker version can work with different git snapshos<br>
><br>
>><br>
>> (You may fix or change some platform code, which not requires any<br>
>> changes on VMMaker side).<br>
>><br>
><br>
> or vice-versa<br>
><br>
>><br>
>> This means that my scheme keeps correspondence in direction<br>
>> source => VMMaker<br>
>><br>
><br>
> but why not adding VMMaker -> source<br>
> also ?<br>
><br>
</div>how you suppose to do that?<br>
In configs then you need to put an array of git commits which working<br>
with your config? Or what?<br>
<br>
And then i will be forced to commit sources to git, while<br>
configuration of it to load is not there yet (because only after<br>
commit<br>
i can get an url to these sources and then put it into config and<br>
finally upload new config to squeaksource).<br>
<br>
It looks a bit complicated, isnt? And extra manual work..<br></blockquote><div><br>Yes, maybe. My thught was this procedure:<br><br>1) You commit on Git, and it you get version XXX. This changes on Git needs changes on VMMaker so:<br>
2) You create a new version of ConfigurationOfCog. Let's say YYY. In that moment, that version is blessed with #development and in the descript you put something like saying that it should work with Git versions > XXX. Example:<br>
<br>versionYYY: spec <br> <version: 'YYY' imports: #('1.4-baseline') ><br> <br> spec for: #common do: [<br><span style="background-color: rgb(255, 255, 0);"> spec blessing: #development.</span><br style="background-color: rgb(255, 255, 0);">
<span style="background-color: rgb(255, 255, 0);"> spec description: 'Should be used with Git version > XXX'.</span><br> spec <br> package: 'FFI-Pools' with: 'FFI-Pools-eem.3';<br>
package: 'SharedPool-Speech' with: 'SharedPool-Speech-dtl.2';<br> package: 'Balloon-Engine-Pools' with: 'Balloon-Engine-Pools-JB.2';<br> package: 'Qwaq-VMProfiling-Plugins' with: 'Qwaq-VMProfiling-Plugins-JB.5';<br>
package: 'Sound' with: 'Sound-StephaneDucasse.62';<br> package: 'VMMaker-oscog' with: 'VMMaker-oscog-IgorStasenko.54';<br> package: 'Alien-Core' with: 'Alien-Core-IgorStasenko.68';<br>
package: 'Cog' with: 'Cog-eem.44';<br> package: 'CMakeVMMaker' with: 'CMakeVMMaker-IgorStasenko.51.mcz'.<br> ]. <br><br> <br>3) when there is a new commit ZZZ in git that requires a new version of VMMaker, then you:<br>
3.a) close the previous version (you put blessing:#version)<br>3.b) change the description so that it closes the range. <br><br>Example:<br><br>versionYYY: spec <br>
<version: 'YYY' imports: #('1.4-baseline') ><br>
<br>
spec for: #common do: [<br>
<span style="background-color: rgb(255, 255, 0);"> spec blessing: #release.</span><br style="background-color: rgb(255, 255, 0);">
<span style="background-color: rgb(255, 255, 0);"> spec description: 'Should be used with Git version > XXX nad < ZZZ '.</span><br>
spec <br>
package: 'FFI-Pools' with: 'FFI-Pools-eem.3';<br>
package: 'SharedPool-Speech' with: 'SharedPool-Speech-dtl.2';<br>
package: 'Balloon-Engine-Pools' with: 'Balloon-Engine-Pools-JB.2';<br>
package: 'Qwaq-VMProfiling-Plugins' with: 'Qwaq-VMProfiling-Plugins-JB.5';<br>
package: 'Sound' with: 'Sound-StephaneDucasse.62';<br>
package: 'VMMaker-oscog' with: 'VMMaker-oscog-IgorStasenko.54';<br>
package: 'Alien-Core' with: 'Alien-Core-IgorStasenko.68';<br>
package: 'Cog' with: 'Cog-eem.44';<br>
package: 'CMakeVMMaker' with: 'CMakeVMMaker-IgorStasenko.51.mcz'.<br>
]. <br><br>And then of course, you create the new version if ConfigurationOfCog, let's say NNN<br><br><br>
versionNNN: spec <br>
<version: 'NNN' imports: #('1.4-baseline') ><br>
<br>
spec for: #common do: [<br>
<span style="background-color: rgb(255, 255, 0);"> spec blessing: #development.</span><br style="background-color: rgb(255, 255, 0);">
<span style="background-color: rgb(255, 255, 0);"> spec description: 'Should be used with Git version > ZZZ '.</span><br>
spec <br>
package: 'FFI-Pools' with: 'FFI-Pools-eem.3';<br>
package: 'SharedPool-Speech' with: 'SharedPool-Speech-dtl.2';<br>
package: 'Balloon-Engine-Pools' with: 'Balloon-Engine-Pools-JB.2';<br>
package: 'Qwaq-VMProfiling-Plugins' with: 'Qwaq-VMProfiling-Plugins-JB.5';<br>
package: 'Sound' with: 'Sound-StephaneDucasse.62';<br>
package: 'VMMaker-oscog' with: 'VMMaker-oscog-IgorStasenko.54';<br>
package: 'Alien-Core' with: 'Alien-Core-IgorStasenko.68';<br>
package: 'Cog' with: 'Cog-eem.44';<br>
package: 'CMakeVMMaker' with: 'CMakeVMMaker-IgorStasenko.51.mcz'.<br>
]. <br>
<br>and like that....<br><br>What do you think? If you really understand it, it is not hard. It seems quite easy for me and it gives us even more traceability. <br><br>Cheers<br><br>Mariano<br><br><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im"><br>
>><br>
>> in that way for each source snapshot you know which version of VMMaker<br>
>> you should use.<br>
>> But not in reverse order.<br>
>><br>
>><br>
<br>
<br>
<br>
</div>--<br>
<div><div></div><div class="h5">Best regards,<br>
Igor Stasenko AKA sig.<br>
</div></div></blockquote></div><br>