[Glass] Failing to load Seaside using tODE
Ezequiel R. Aguerre
ezeaguerre at gmail.com
Thu Jan 6 16:59:39 PST 2022
Hi everyone! I'm experimenting a little bit with GemStone. I tried to
install Seaside but the instructions are not working for me.
I've used the scripts of the GsDevKit_home to setup everything, I can
launch tODE successfully, but when I type the following commands in the
shell, they don't work.
The first one:
project install --url=http://gsdevkit.github.io/GsDevKit_home/Seaside32.ston
This one fails, but it also says something about Seaside being already
installed... so I just skip it.
But then, this command fails:
project load --loads=`#('Welcome' 'Development' 'Zinc Project' 'Examples')`
Seaside3
It raises an exception about accessing an array with a non-integer index.
It looks like there must be something outdated, but I'm not sure. So I
can't load Seaside to start playing with it.
If I right-click "load" on the project list, it happens the same thing.
The following is an investigation on the issue in case it clarifies
anything:
The error is raised in the following method:
MetacelloGemStonePlatform>>downloadJSON: url eTagsCache: eTagsCache
eTagsKey: eTagsKey username: username pass: pass
"(code ...)"
(status beginsWith: '403')
ifTrue: [
| jsonObject |
"Oh snap! Rate limit exceeded"
jsonObject := MCFileTreeJsonParser parse: payload.
self error: (jsonObject at: 'message') ].
"(more code...)"
jsonObject is actually an array, so jsonObject at: 'message' raises an
excepction.
These are the values of the variables:
- url: 'https://api.github.com/repos/GsDevKit/Seaside31/tags'
- username: nil
- pass: nil
- eTagsKey: 'GsDevKit/Seaside31'
- eTagsCache: aDictionary( 'GsDevKit/Seaside31' -> aDictionary() )
- jsonObject: an array of dictionaries, each dictionary has the following
information:
- commit: a dictionary with a "sha" and "url" keys
- name: a string like 'v3.1.4.2-gs'
- node_id: a base64 encoded string, when decoded is something like:
'03:Ref8633068:refs/tags/v3.1.4.2-gs'
- tarball_url: a url
- zipball_url: a url
I don't know how to use the debugger yet, so I can't step through the code.
But I think the problem is actually up above, in the following line:
status := headerDict at: 'status' ifAbsent: [ '403' ].
Because the server is actually responding correctly, if I "curl
https://api.github.com/repos/GsDevKit/Seaside31/tags" it works just fine.
And the following method:
MetacelloGemStonePlatform>>extractHTTPHeader: aStream do: aBlock
explicitly skips the first HTTP line (the status):
line := aStream nextLine. "strip status"
I tried adding a line like the following:
header at: 'status' put: (line substrings at: 2).
But then I have a problem with an "X-Ratelimit-Remaining" header.
So I'm not sure... I think there's something outdated somewhere... I don't
know how to proceed.
Or maybe this kind of things are better asked on the Github issue tracker?
I don't know, I didn't want to open an issue that may not be an issue at
all.
Oh, before I forget, I'm running Arch Linux 64 bits, maybe the problem is
my environment.
Thanks!
--
Ezequiel R. Aguerre
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/archives/glass/attachments/20220106/e5ea94e9/attachment.htm>
More information about the Glass
mailing list