[squeak-dev] [Seaside] About loading Seaside into Squeak6.0a-17082 ....
Tobias Pape
Das.Linux at gmx.de
Wed Apr 26 21:46:29 UTC 2017
Hi
> On 26.04.2017, at 23:38, Dale Henrichs <dale.henrichs at gemtalksystems.com> wrote:
>
>
>
> On 04/26/2017 02:26 PM, Tobias Pape wrote:
>> Hi
>>> On 26.04.2017, at 22:31, Dale Henrichs <dale.henrichs at gemtalksystems.com> wrote:
>>>
>>>
>>> On 04/26/2017 11:08 AM, Tobias Pape wrote:
>>>> Hi,
>>>> (cc squeak-dev)
>>>>
>>>>> On 26.04.2017, at 19:52, Esteban A. Maringolo <emaringolo at gmail.com> wrote:
>>>>>
>>>>> You should have a GRSqueakPlatform as subclass, and then evaluate
>>>>> "GRSqueakPlatform select", this will create and assign the new
>>>>> instance as GRPlatform singleton.
>>>>>
>>>> Sadly, in his image won't be a GRSqueakPlatform.
>>>> Why? because (SystemVersion current version asString) returns 'Squeak6.0alpha', but
>>>> MetacelloSqueakPlatform>>defaultPlatformAttributes does not know about that.
>>>> And ConfigurationOfGrease>>baseline117: only has an idea of #'squeak4.x' and #'squeak5.x'.
>>>>
>>>> I've no good idea how to fix that yet.
>>> submit a pull request for the Metacello project on github[1] and update the method MetacelloSqueakPlatform>>defaultPlatformAttributes[2] with your new Squeak versions added to the list ...
>>>
>>> If you want to avoid having to update Metacello for each new Squeak release, add something along the lines of what pharo has been doing for a few years[3] ... then you only need to remember to update that method ... but at least it will be part of the base image ...
>>>
>>> For GemStone I've included code to generate the default attributes for GemStone based on the GemStone version number ...
>>>
>> Hey Dale, those are good ideas and I've thought about that, too.
>> However, that does not help on its own. because even if this brought us, eg, #'squeak6.x' or #'squeak6alpha', Grease would pick none of them.
> Hey Tobias, when a new version of Squeak is nearing release, you presumably need to validate that Seaside and all of it's dependent projects load/run in the new version, at which time you'd update the configuration/baseline as part of the validation ... and also run tests, etc.
True. The case here is that someone took a Trunk mid-cycle.
But yes, generally we should do that.
> Both Grease[1] and Seaside[2] are up on github and use smalltalkCI and travis-ci to run tests, so for that, you could fork Grease and Seaside, edit the .travis.yml file to include the new squeak version; edit the baseline to include the new Squeak version (all of which could be done from your web browser) and when you commit, travis builds are kicked off automatically -- if the tests pass on travis-ci, you issue a pull request for Grease and Seaside and Bob's you uncle ...
1. ask
2. dale answers
3. ???
4. profit!
\o/
no seriously, that process is fine.
I was bikeshedding implementation details...
long story short: there's no seaside at squeaktrunk at the moment without at least a tiny bit of hand-tuing.
Hannes, since I have not much time atm for Seaside, can you try out a bit yourself?
You should get things loaded at least if you make `MetacelloSqueakPlatform>>defaultPlatformAttributes` return #'squeak5.0'
best regards
-Tobias
>
> [1] https://github.com/SeasideSt/Grease/
> [2] https://github.com/SeasideSt/Seaside
>>
>> So, this could work:
>> 1. have an extraction like gemstone below, but
>> 2. ALSO identify as #'squeakTrunk' if version string ends in 'alpha', and
>> 3. Change grease baseline 117 (or push number here?) the specific line from #'squeak5.x' to
>> a. either #( 'squeak5.x' 'squeak6.x')
>> b. or #( 'squeak5.x' 'squeakTrunk')
>> c. or have #'squeak6.x' separate.
>>
>> @squeak-dev: hoping you are ok with (1), are you ok with (2)?
>> @seaside-dev: would you rather like (3a), (3b), or (3c)?
>>
>> Best regards
>> -Tobias
>>
>>
>>> Dale
>>>
>>> [1] https://github.com/dalehenrich/metacello-work
>>> [2] https://github.com/dalehenrich/metacello-work/blob/master/repository/Metacello-Platform.squeak.package/MetacelloSqueakPlatform.class/instance/defaultPlatformAttributes.st#L11-L19
>>> [3] https://github.com/dalehenrich/metacello-work/blob/master/repository/Metacello-PharoCommonPlatform.package/MetacelloPharoCommonPlatform.class/instance/defaultPlatformAttributes.st#L4-L5
>>> [4] https://github.com/dalehenrich/metacello-work/blob/master/repository/Metacello-Platform.gemstone.package/MetacelloGemStonePlatform.class/instance/extractAtrributesFrom..st
>>>> Any takers?
>>>>
>>>> best regards
>>>> -Tobias
>>>>
>>>>
>>>>> Regards.
>>>>> Esteban A. Maringolo
>>>>>
>>>>>
>>>>> 2017-04-26 14:27 GMT-03:00 H. Hirzel <hannes.hirzel at gmail.com>:
>>>>>> The issue is that
>>>>>>
>>>>>> GRPlatform current
>>>>>>
>>>>>>
>>>>>> returns nil.
>>>>>>
>>>>>> On 4/26/17, H. Hirzel <hannes.hirzel at gmail.com> wrote:
>>>>>>> After replacing
>>>>>>>
>>>>>>> #greaseInteger
>>>>>>>
>>>>>>> with
>>>>>>>
>>>>>>> #asInteger
>>>>>>>
>>>>>>> I get an error in
>>>>>>>
>>>>>>>
>>>>>>> WAKeyGenerator>>initialize
>>>>>>>
>>>>>>> initialize
>>>>>>> super initialize.
>>>>>>> self generator: GRPlatform current newRandom.
>>>>>>> self space:
>>>>>>> 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-'
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> So there are issues with the Grease compatibility layer.
>>>>>>>
>>>>>>> Maybe the configuration map loads the wrong version?
>>>>>>>
>>>>>>>
>>>>>>> Suggestions?
>>>>>>>
>>>>>>>
>>>>>>> On 4/26/17, H. Hirzel <hannes.hirzel at gmail.com> wrote:
>>>>>>>> Hello
>>>>>>>>
>>>>>>>> Loading Seaside into Squeak6.0a-17082 .... gives the following error
>>>>>>>>
>>>>>>>> Character(Object)>>doesNotUnderstand: #greaseInteger
>>>>>>>>
>>>>>>>> Details [1]
>>>>>>>>
>>>>>>>> Is there a particular Squeak6.0a version where Seaside loads fine?
>>>>>>>> http://files.squeak.org/6.0alpha/
>>>>>>>>
>>>>>>>> Any suggestions how a fix to Grease should look like?
>>>>>>>>
>>>>>>>> Regards
>>>>>>>> --Hannes
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------------------------------------
>>>>>>>> Character(Object)>>doesNotUnderstand: #greaseInteger
>>>>>>>> Receiver: Character null
>>>>>>>> Arguments and temporary variables:
>>>>>>>> aMessage: greaseInteger
>>>>>>>> exception: MessageNotUnderstood:
>>>>>>>> Character>>greaseInteger
>>>>>>>> resumeValue: nil
>>>>>>>> Receiver's instance variables:
>>>>>>>> Character null
>>>>>>>>
>>>>>>>> WAUrlEncoder class>>encode:on:
>>>>>>>> Receiver: WAUrlEncoder
>>>>>>>> Arguments and temporary variables:
>>>>>>>> aCharacter: Character null
>>>>>>>> aStream: a WriteStream
>>>>>>>> printer: a GRNumberPrinter
>>>>>>>> Receiver's instance variables:
>>>>>>>> superclass: WATableBasedEncoder
>>>>>>>> methodDict: a MethodDictionary()
>>>>>>>> format: 65538
>>>>>>>> instanceVariables: nil
>>>>>>>> organization: ('as yet unclassified')
>>>>>>>>
>>>>>>>> subclasses: nil
>>>>>>>> name: #WAUrlEncoder
>>>>>>>> classPool: nil
>>>>>>>> sharedPools: nil
>>>>>>>> environment: Smalltalk
>>>>>>>> category: #'Seaside-Core-Document'
>>>>>>>> table: #(nil nil nil nil nil nil nil nil nil nil nil
>>>>>>>> nil nil nil
>>>>>>>> nil nil nil ni...etc...
>>>>>>>>
>>>>>>>> WAUrlEncoder class>>initializeTable
>>>>>>>> Receiver: WAUrlEncoder
>>>>>>>> Arguments and temporary variables:
>>>>>>>> stream: a WriteStream
>>>>>>>> characterLimit: 255
>>>>>>>> index: 0
>>>>>>>> character: Character null
>>>>>>>> value: nil
>>>>>>>> Receiver's instance variables:
>>>>>>>> superclass: WATableBasedEncoder
>>>>>>>> methodDict: a MethodDictionary()
>>>>>>>> format: 65538
>>>>>>>> instanceVariables: nil
>>>>>>>> organization: ('as yet unclassified')
>>>>>>>>
>>>>>>>> subclasses: nil
>>>>>>>> name: #WAUrlEncoder
>>>>>>>> classPool: nil
>>>>>>>> sharedPools: nil
>>>>>>>> environment: Smalltalk
>>>>>>>> category: #'Seaside-Core-Document'
>>>>>>>> table: #(nil nil nil nil nil nil nil nil nil nil nil
>>>>>>>> nil nil nil
>>>>>>>> nil nil nil ni...etc...
>>>>>>>>
>>>>>> _______________________________________________
>>>>>> seaside mailing list
>>>>>> seaside at lists.squeakfoundation.org
>>>>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>>>> _______________________________________________
>>>>> seaside mailing list
>>>>> seaside at lists.squeakfoundation.org
>>>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>>> _______________________________________________
>>>> seaside mailing list
>>>> seaside at lists.squeakfoundation.org
>>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>> _______________________________________________
>>> seaside mailing list
>>> seaside at lists.squeakfoundation.org
>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>> _______________________________________________
>> seaside mailing list
>> seaside at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
More information about the Squeak-dev
mailing list
|