Alien: separate core, tests and win32 into own packages

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

Alien: separate core, tests and win32 into own packages

Torsten Bergmann
 
Hi Eliot, (CC'ing vm-dev)

hope you had a good start into 2018 and sorry again if the "Alien commit into Alien" [1] created some trouble.

But while we are at discussing about Alien I would like to ask one question: can we split the Alien package into
two packages instead of just one. One with the core functionality and and have the unit tests separated into an
own separate package? Also the Win32 struct wrappers should be in an own package as this is platform dependent.

Because with the new possibility to bootstrap smaller images one can build minimal images with just a foreign interface/Alien
but where SUnit and tests are not loaded.  

Without having the tests in an own separately loadable package such a thing is not possible to realize because loading
Alien would give automatically a dependency to SUnit. Also Alien-Win32 do not make sense if one builds a platform
specific image for Mac, Unix or the Pi.

So can we split it to be more clean? What do you think about this?

I can spend some time (possibly next week) on separating Alien into two packages and also do/help/check in changing loading configs
for VMMaker or other.

For the naming: while in Pharo the packages could already be named
  - "Alien-Core"
  - "Alien-Core-Test"
  - "Alien-Win32"
as Pharo already supports explicit packages.

But I'm pretty sure this would be problematic for Squeak 6.0 which still relies on the old category solution. So I would
suggest to follow Seaside naming convention and name them
  - "Alien-Core"
  - "Alien-Tests-Core"
  - "Alien-Win32"
so it is loadable and compatible in all dialects. If you would prefer other names we can align easily.

Thanks for an answer in advance!

Bye
T.

[1] http://lists.squeakfoundation.org/pipermail/vm-dev/2018-January/026350.html
Reply | Threaded
Open this post in threaded view
|

Re: Alien: separate core, tests and win32 into own packages

Eliot Miranda-2
 
Hi Torsten,

    sorry for the late reply; I had some personal things to attend to earlier in the week.

On Mon, Jan 8, 2018 at 12:50 PM, Torsten Bergmann <[hidden email]> wrote:
Hi Eliot, (CC'ing vm-dev)

hope you had a good start into 2018 and sorry again if the "Alien commit into Alien" [1] created some trouble.

But while we are at discussing about Alien I would like to ask one question: can we split the Alien package into
two packages instead of just one. One with the core functionality and and have the unit tests separated into an
own separate package? Also the Win32 struct wrappers should be in an own package as this is platform dependent.

Because with the new possibility to bootstrap smaller images one can build minimal images with just a foreign interface/Alien
but where SUnit and tests are not loaded.

Without having the tests in an own separately loadable package such a thing is not possible to realize because loading
Alien would give automatically a dependency to SUnit. Also Alien-Win32 do not make sense if one builds a platform
specific image for Mac, Unix or the Pi.

So can we split it to be more clean? What do you think about this?

Sounds good to me.  Feel free to make the changes.  As long as the repository is unchanged and the committed versions preserve version stamps I have no objection to the split.
 

I can spend some time (possibly next week) on separating Alien into two packages and also do/help/check in changing loading configs
for VMMaker or other.

For the naming: while in Pharo the packages could already be named
  - "Alien-Core"
  - "Alien-Core-Test"
  - "Alien-Win32"
as Pharo already supports explicit packages.

But I'm pretty sure this would be problematic for Squeak 6.0 which still relies on the old category solution. So I would
suggest to follow Seaside naming convention and name them
  - "Alien-Core"
  - "Alien-Tests-Core"
  - "Alien-Win32"
so it is loadable and compatible in all dialects. If you would prefer other names we can align easily.

Thanks for an answer in advance!

Bye
T.

[1] http://lists.squeakfoundation.org/pipermail/vm-dev/2018-January/026350.html



--
_,,,^..^,,,_
best, Eliot
Reply | Threaded
Open this post in threaded view
|

Re: Alien: separate core, tests and win32 into own packages

Torsten Bergmann
 
Hi,

as already discussed it would be good to have the packages in Alien more modular
(separate the tests, separate platform dependent part from core functionality).
Also this would allow to use Alien core functionality in more minimal Smalltalk images
where there is no SUnit or windows support needed or wanted.

The issue was already discussed in January and thankfully Eliot as the engineer behind Alien
gave his OK with the request that the repo is kept and version stamps are preserved.
I now was able to devote some minutes to this task.

For all to reproduce what was done:
===================================
The most recent valid version found in squeaksource.com/Alien from Eliot
was "Alien-eem.44.mcz" from 23 February 2018.

This package is now split into the following packages/MCZ's:

        - Alien-Core-tbn.100.mcz
        - Alien-Tests-Core-tbn.100.mcz
        - Alien-Win32-tbn.100.mcz

based on exactly this latest version from Eliot.

You will find them in the Alien repository: http://squeaksource.com/Alien.html

With this the "Alien" MCZ package line is now deprecated.

Please continue to contribute and develop on
 - "Alien-Core" for core functionality
 - "Alien-Tests-Core" for tests on core functionality
 - "Alien-Win32" for windows specific functionality
to move Alien forward.

Side note:
======
The switch to the high version number 100 was done to avoid confusion
as there were already "Alien-Core", "Alien-Tests" and "Alien-Win32"
in squeaksource.com/Alien back from 2009 to 2012. This also allows to
continue to show the most recent version on top in Monticello.

I clearly documented the split as well as the reasoning behind using
version number 100 onwards in the comments of the new packages.

Additionally:
=======
 - I created an Alien-tbn.45.mcz with the change to empty out the
   now deprecated "Alien-xxx.yy.mcz" package line and mention in the
   comment to now use the new modular packages
- I double checked the loading of the modular packages in a fresh Squeak
  image  
- I also double checked that the version information on authors and timestamp
  is kept
- as this was only a repackaging activity no code was changed and the 118 tests
  are still green

I did the repackaging very carefully and verified proper loading as well. What I can not
do is to change all the places where it is used.

I hope you all (and especially Eliot) can support this in doing the necessary changes on
Open Smalltalk VM - maybe some VMMaker or private loading scripts need to be adopted.

Primarily it is now necessary to load the 3 packages "Alien-Core", "Alien-Tests-Core" and
"Alien-Win32" on all places where previously "Alien" package/MCZ was loaded.

If you need to change config specs be aware that it would make sense to have "Alien-Tests-Core"
and "Alien-Win32" being dependent on "Alien-Core".

Thanks
T.
Reply | Threaded
Open this post in threaded view
|

Re: Alien: separate core, tests and win32 into own packages

Eliot Miranda-2
 


> On Mar 2, 2018, at 2:51 AM, Torsten Bergmann <[hidden email]> wrote:
>
> Hi,
>
> as already discussed it would be good to have the packages in Alien more modular
> (separate the tests, separate platform dependent part from core functionality).
> Also this would allow to use Alien core functionality in more minimal Smalltalk images
> where there is no SUnit or windows support needed or wanted.
>
> The issue was already discussed in January and thankfully Eliot as the engineer behind Alien
> gave his OK with the request that the repo is kept and version stamps are preserved.
> I now was able to devote some minutes to this task.

Thanks Torsten!  I wonder if there's a useful way of marking the transition, such as committing a version of Alien with an author stamp such as PackageDecomposed...

>
> For all to reproduce what was done:
> ===================================
> The most recent valid version found in squeaksource.com/Alien from Eliot
> was "Alien-eem.44.mcz" from 23 February 2018.
>
> This package is now split into the following packages/MCZ's:
>
>        - Alien-Core-tbn.100.mcz
>        - Alien-Tests-Core-tbn.100.mcz
>        - Alien-Win32-tbn.100.mcz
>
> based on exactly this latest version from Eliot.
>
> You will find them in the Alien repository: http://squeaksource.com/Alien.html
>
> With this the "Alien" MCZ package line is now deprecated.
>
> Please continue to contribute and develop on
> - "Alien-Core" for core functionality
> - "Alien-Tests-Core" for tests on core functionality
> - "Alien-Win32" for windows specific functionality
> to move Alien forward.
>
> Side note:
> ======
> The switch to the high version number 100 was done to avoid confusion
> as there were already "Alien-Core", "Alien-Tests" and "Alien-Win32"
> in squeaksource.com/Alien back from 2009 to 2012. This also allows to
> continue to show the most recent version on top in Monticello.
>
> I clearly documented the split as well as the reasoning behind using
> version number 100 onwards in the comments of the new packages.
>
> Additionally:
> =======
> - I created an Alien-tbn.45.mcz with the change to empty out the
>   now deprecated "Alien-xxx.yy.mcz" package line and mention in the
>   comment to now use the new modular packages
> - I double checked the loading of the modular packages in a fresh Squeak
>  image  
> - I also double checked that the version information on authors and timestamp
>  is kept
> - as this was only a repackaging activity no code was changed and the 118 tests
>  are still green
>
> I did the repackaging very carefully and verified proper loading as well. What I can not
> do is to change all the places where it is used.
>
> I hope you all (and especially Eliot) can support this in doing the necessary changes on
> Open Smalltalk VM - maybe some VMMaker or private loading scripts need to be adopted.
>
> Primarily it is now necessary to load the 3 packages "Alien-Core", "Alien-Tests-Core" and
> "Alien-Win32" on all places where previously "Alien" package/MCZ was loaded.
>
> If you need to change config specs be aware that it would make sense to have "Alien-Tests-Core"
> and "Alien-Win32" being dependent on "Alien-Core".
>
> Thanks
> T.
cbc
Reply | Threaded
Open this post in threaded view
|

Re: Alien: separate core, tests and win32 into own packages

cbc
 


On Sat, Mar 3, 2018 at 10:20 AM, Eliot Miranda <[hidden email]> wrote:



> On Mar 2, 2018, at 2:51 AM, Torsten Bergmann <[hidden email]> wrote:
>
> Hi,
>
> as already discussed it would be good to have the packages in Alien more modular
> (separate the tests, separate platform dependent part from core functionality).
> Also this would allow to use Alien core functionality in more minimal Smalltalk images
> where there is no SUnit or windows support needed or wanted.
>
> The issue was already discussed in January and thankfully Eliot as the engineer behind Alien
> gave his OK with the request that the repo is kept and version stamps are preserved.
> I now was able to devote some minutes to this task.

Thanks Torsten!  I wonder if there's a useful way of marking the transition, such as committing a version of Alien with an author stamp such as PackageDecomposed...

Maybe commit another Alien package with no code in it all all (all items removed), with a pre-script that explicitly loads the other packages first?
Except the other ones are also linked under Alien.  Hmm.
-cbc
<snip> 

Reply | Threaded
Open this post in threaded view
|

Re: Alien: separate core, tests and win32 into own packages

Torsten Bergmann
 
Chris Cunningham wrote:
>Maybe commit another Alien package with no code in it all all (all items removed)

Thats what I aleady did, as I wrote:

   "I created an Alien-tbn.45.mcz with the change to empty out the
    now deprecated "Alien-xxx.yy.mcz" package line and mention in the
    comment to now use the new modular packages"


Thx
T.