GsDevKit / GsDevKit_home

master GsDevKit project
http://gsdevkit.github.io/GsDevKit_home
MIT License
31 stars 36 forks source link

`createClient -t pharo Gt4Gemstone -l -v Pharo5.0 -z /Users/andrei/fee....` fails with `STONReaderError: At character 109: Cannot read STON config file for smalltalkCI.` #146

Open dalehenrich opened 7 years ago

dalehenrich commented 7 years ago

The .smalltalk.ston appears to be valid STON format as the following is handled correctly in GemStone:

STON fromString: 'SmalltalkCISpec {
  #loading : [
    SCIMetacelloLoadSpec {
      #baseline : ''Gt4Gemstone'',
      #load : [ ''default'' ],
      #directory : ''repository'',
      #onWarningLog : true,
      #platforms : [ #gemstone, #pharo ]
    }
  ]
}'

Here's a portion of the log file and the full command line:

createClient -t pharo Gt4Gemstone -l -v Pharo5.0 -z /Users/andrei/feenk/projects/gs-tools/GsDevKit_home/shared/repos/Gt4Gemstone/.smalltalk.ston

Loaded -> STON-Core-dkh.57 --- filetree:///Users/andrei/feenk/projects/gs-tools/GsDevKit_home/shared/repos/ston/repository [:] --- cache
Loaded -> STON-Pharo-Core-dkh.3 --- filetree:///Users/andrei/feenk/projects/gs-tools/GsDevKit_home/shared/repos/ston/repository [:] --- cache
STONReaderTests>>testTimeStamp (TimeStamp is Undeclared) 

STONWriteReadTests>>testDatesAndTimes (TimeStamp is Undeclared) 

STONWriteReadTests>>testDatesAndTimes (TimeStamp is Undeclared) 

STONWriterTests>>testTimeStamp (TimeStamp is Undeclared) 

Loaded -> STON-Tests-dkh.57 --- filetree:///Users/andrei/feenk/projects/gs-tools/GsDevKit_home/shared/repos/ston/repository [:] --- cache
Loaded -> STON-Pharo-Tests-dkh.1 --- filetree:///Users/andrei/feenk/projects/gs-tools/GsDevKit_home/shared/repos/ston/repository [:] --- cache
SmalltalkCI class>>classesWithCategoryNames:(name is shadowed)
SmalltalkCI class>>classesWithPackageNames:(name is shadowed)
Loaded -> SmalltalkCI-Core-fn.168 --- filetree:///Users/andrei/feenk/projects/gs-tools/GsDevKit_home/shared/repos/smalltalkCI/repository [:] --- cache
Loaded -> SmalltalkCI-Pharo-Core-fn.31 --- filetree:///Users/andrei/feenk/projects/gs-tools/GsDevKit_home/shared/repos/smalltalkCI/repository [:] --- cache
GsDevKitServerStonesStone>>stoneInfo (GsDevKitStoneInfo is Undeclared) 

GsDevKitSysLocalSessions>>sessionDescriptionNamed:ifAbsent: (TDSessionDescription is Undeclared) 

Loaded -> GsDevKit-Structure-dkh.6 --- filetree:///Users/andrei/feenk/projects/gs-tools/GsDevKit_home/shared/repos/todeClient [:] --- cache
...finished baseline'Errors in script loaded from /Users/andrei/feenk/projects/gs-tools/GsDevKit_home/dev/clients/Gt4Gemstone/customClientLoad.st'
STONReaderError: At character 109: Cannot read STON config file for smalltalkCI.
[ :error | 
error messageText: 'Cannot read STON config file for smalltalkCI.'.
error signal ] in SmalltalkCIPharo>>readSTONSpec: in Block: [ :error | ...
BlockClosure>>cull:
Context>>evaluateSignal:
Context>>handleSignal:
STONReaderError(Exception)>>signal
STONReaderError(Exception)>>signal:
STONReaderError class>>signal:streamPosition:
STONReader>>error:
STONReader>>parseValue
STONReader>>parseListDo:
[ :stream | self parseListDo: [ :each | stream nextPut: each ] ] in STONReader>>parseList in Block: [ :stream | self parseListDo: [ :each | stream nex...etc...
Array class(SequenceableCollection class)>>new:streamContents:
Array class(SequenceableCollection class)>>streamContents:
STONReader>>parseList
STONReader>>parseValue
STONReader>>parseMapDo:
SCIMetacelloLoadSpec(Object)>>fromSton:
SCIMetacelloLoadSpec class(Object class)>>fromSton:
STONReader>>parseObject
STONReader>>parseValue
STONReader>>parseListDo:
[ :stream | self parseListDo: [ :each | stream nextPut: each ] ] in STONReader>>parseList in Block: [ :stream | self parseListDo: [ :each | stream nex...etc...
Array class(SequenceableCollection class)>>new:streamContents:
Array class(SequenceableCollection class)>>streamContents:
STONReader>>parseList
STONReader>>parseValue
STONReader>>parseMapDo:
SmalltalkCISpec(Object)>>fromSton:
SmalltalkCISpec class(Object class)>>fromSton:
STONReader>>parseObject
Error on or near line 262 :: createPharoTodeClient -c -l -z /Users/andrei/feenk/projects/gs-tools/GsDevKit_home/shared/repos/Gt4Gemstone/.smalltalk.ston -v Pharo5.0 Gt4Gemstone :: createPharoTodeClient -c -l -z /Users/andrei/feenk/projects/gs-tools/GsDevKit_home/shared/repos/Gt4Gemstone/.smalltalk.ston -v Pharo5.0 Gt4Gemstone
Error on or near line 103 :: createClient -c -l -v Pharo5.0 -z /Users/andrei/feenk/projects/gs-tools/GsDevKit_home/shared/repos/Gt4Gemstone/.smalltalk.ston Gt4Gemstone :: createClient -c -l -v Pharo5.0 -z /Users/andrei/feenk/projects/gs-tools/GsDevKit_home/shared/repos/Gt4Gemstone/.smalltalk.ston Gt4Gemstone
Error on or near line 141 :: createClient -t pharo Gt4Gemstone -l -v Pharo5.0 -z /Users/andrei/feenk/projects/gs-tools/GsDevKit_home/shared/repos/Gt4Gemstone/.smalltalk.ston :: createClient -t pharo Gt4Gemstone -l -v Pharo5.0 -z /Users/andrei/feenk/projects/gs-tools/GsDevKit_home/shared/repos/Gt4Gemstone/.smalltalk.ston
dalehenrich commented 7 years ago

It looks like characer 109 might be causing the problem (STONReaderError: At character 109), so here's the chunk of the string for a version of the string that converts in GemStone:

100@         -> $#
101@         -> $l
102@         -> $o
103@         -> $a
104@         -> $d
105@         -> $ 
106@         -> $:
107@         -> $ 
108@         -> $[
109@         -> $ 
110@         -> $'
111@         -> $d
112@         -> $e
113@         -> $f
114@         -> $a
115@         -> $u
116@         -> $l
117@         -> $t
118@         -> $'
119@         -> $ 
120@         -> $]

and Character 109 is:

.             -> $ 
..            -> 'SmalltalkCISpec { #loading : [ SCIMetacelloLoadSpec { #baseline : 'Gt4Gemstone', #load : [ 'default' ], #directory . . .'
(class)@      -> Character
(oop)@        -> 8220
(asciiValue)@ -> 32
(value)@      -> ' '

a space character, so the actual character in the file must be something else ...

dalehenrich commented 7 years ago

Here's a command line for a public project that exhibits the same errors:

createClient -F -t pharo Tugrik_new -l -v Pharo5.0 -z /Users/andrei/feenk/projects/gs-tools/GsDevKit_home/shared/repos/Tugrik/.smalltalk.ston

...finished baseline'Errors in script loaded from /Users/andrei/feenk/projects/gs-tools/GsDevKit_home/dev/clients/Tugrik_new/customClientLoad.st'
STONReaderError: At character 109: Cannot read STON config file for smalltalkCI.
[ :error | 
error messageText: 'Cannot read STON config file for smalltalkCI.'.
error signal ] in SmalltalkCIPharo>>readSTONSpec: in Block: [ :error | ...
BlockClosure>>cull:
Context>>evaluateSignal:
Context>>handleSignal:
STONReaderError(Exception)>>signal
STONReaderError(Exception)>>signal:
STONReaderError class>>signal:streamPosition:
STONReader>>error:
STONReader>>parseValue
STONReader>>parseListDo:
[ :stream | self parseListDo: [ :each | stream nextPut: each ] ] in STONReader>>parseList in Block: [ :stream | self parseListDo: [ :each | stream nex...etc...
Array class(SequenceableCollection class)>>new:streamContents:
Array class(SequenceableCollection class)>>streamContents:
STONReader>>parseList
STONReader>>parseValue
STONReader>>parseMapDo:
SCIMetacelloLoadSpec(Object)>>fromSton:
SCIMetacelloLoadSpec class(Object class)>>fromSton:
STONReader>>parseObject
STONReader>>parseValue
STONReader>>parseListDo:
[ :stream | self parseListDo: [ :each | stream nextPut: each ] ] in STONReader>>parseList in Block: [ :stream | self parseListDo: [ :each | stream nex...etc...
Array class(SequenceableCollection class)>>new:streamContents:
Array class(SequenceableCollection class)>>streamContents:
STONReader>>parseList
STONReader>>parseValue
STONReader>>parseMapDo:
SmalltalkCISpec(Object)>>fromSton:
SmalltalkCISpec class(Object class)>>fromSton:
STONReader>>parseObject

I'll guess that something has changed recently in Pharo5.0 to break the GemStone STON code ...

dalehenrich commented 7 years ago

Here are the SHAs for the involved projects:

    cd $GS_HOME/shared/repos/smalltalkCI
      git log -1

commit d4b1bbf11c210b995f81b6f69367bb3488498fc1
Author: Fabio Niephaus <code@fniephaus.com>
Date:   Wed Oct 12 21:33:40 2016 +0200

    Make sure error banner is completely red

      cd $GS_HOME
      git log -1

commit fcfeea61354d151f053b7d50eb85d3c6c38695d8
Merge: 7eadcd1 fb698c0
Author: Dale Henrichs <dale.henrichs@gemtalksystems.com>
Date:   Sun Oct 9 21:11:55 2016 -0700

    Merge pull request #145 from GsDevKit/issue_141

    #141 use topaz instead of gem, since SmalltalkCI now writes pretty printed test results to stdout

      cd $GS_HOME/shared/repos/ston
      git log -1

commit 25aace18006bd8749a379741824e800d317977fb
Merge: 35ceae6 12f7eae
Author: Dale Henrichs <dale.henrichs@gemtalksystems.com>
Date:   Mon Jun 29 17:28:56 2015 -0700

    Merge pull request #10 from GsDevKit/gemstone_dev

    Issue #6 merge: v0.9.4
dalehenrich commented 7 years ago

A naive test run using the Tugrik createClient command with my dev version of GsDevKit_home and other dev repositories successfully builds the project ... so I will have to setup with the exact versions of the various projects ...