[Glass] Failing to add a valid project entry in GsDevKit_home

Mariano Martinez Peck via Glass glass at lists.gemtalksystems.com
Fri Dec 22 05:10:49 PST 2017


Hi Dale,

What I am trying to do is.... right now the configuration of my application
does reference git based projects via github url. This was OK (even if not
ideal) until I reached ZipArchive error of the other day. So... I am trying
to migrate to an approach like this:

1) Clone repositories to local machine (I am trying to do this via Iceberg
in dev and via GsDevKit_home / tODE on production)
2) Do a metacello load pointing to the local filestree and then lock

With that in mind, for the GemStone side what I am trying is:

a) Put .ston files for each of the projects  I refer that are in Git
(Seaside, HighcartsSt, etc) in to `/sys/local/server/projects`  *(is this
the recommended place????)*. That way, each new server will get all needed
.ston as they are sincronized together with my sys local project.
b) do a `project install` ,  `project load` and `project lock` of those
projects.

Does this make sense?

Well, I thought it had. But... I just tried `project clone` and it seems it
ALSO downloads a the zip tarball using ZipArchive. Damn it. I thought you
were were using git (via FFI, or performOnServer or whatever) underneath
for making the clone...

So what are the alternatives?  if I remove the `--https` and I change the
url to be the git / ssh keys , would that avoid doing a zipball download?
I ask before starting to deal with the keys etc..
If not, then the only way I find is to make the clone myself, using git.
But then, the project entry makes almost no sense, I cannot use `project
clone` etc etc.


Thanks in advance,




On Thu, Dec 21, 2017 at 3:42 PM, Dale Henrichs <
dale.henrichs at gemtalksystems.com> wrote:

> Could you spend a little bit of time telling me the state of your image
> and what your plans are? I can probably save you some splashing around
> time, if you let me know what your ultimate goals are...
>
> Dale
>
> On 12/21/17 10:29 AM, Dale Henrichs wrote:
>
> try setting locked to false in your project entry ... I don't know that
> state of your image ... is highchartsSt already loaded ... from reading
> code in the stack it doesn't seem that you've got the project loaded
> (registered as loaded with Metacello) which is where the error is coming
> from ... and findExact ... is called when the project entry is locked, but
> the registration is not locked .... if you _have_ loaded HightChartsSt
> already then it seems that there is a true mismatch ... but again unlocking
> the project entry will avoid the logic where the project entry and project
> registrations are trying to be reconciled ...
>
> Dale
> On 12/21/17 10:00 AM, Mariano Martinez Peck wrote:
>
>
>
> On Thu, Dec 21, 2017 at 2:50 PM, Dale Henrichs via Glass <
> glass at lists.gemtalksystems.com> wrote:
>
>> I've create a project entry based on yours ... make sure that the name of
>> the node and the name of the .ston file match ... I don't see a branch
>> named highchart6-import-issue28 and that created a bit of a problem ...
>> until you actually clone the repository you don't want to lock it ... if
>> you use `project clone Highchartst` tODE will lock the project enry for you
>> ...
>>
>> In all my playing around I have not seen a "registratrion for
>> projectSpec" error, so I'm missing something ...
>>
>
> Sorry, I just deleted the branch a few minutes ago, but still with another
> existing branch I have the same problem:
>
> TDObjectGatewayLeafNode{#name:'HighchartsSt',#contents:'^
> TDProjectSpecEntryDefinition new
>     comment: \'\';
>     projectUrl: \'https://github.com/ba-st/HighchartsSt\';
>     baseline: \'HighchartsSt\'
>       repository: \'github://ba-st/HighchartsSt:
> highchart6-import/repository\'
>       loads: #(\'Highcharts\' \'Highstock\' );
>     gitCheckout: \'highchart6-import\';
>     status: #(#\'inactive\');
>     locked: true;
>     yourself'}
>
>
> File is named:
>
> /home/quuve/GsDevKit_home/sys/local/server/projects/HighchartsSt.ston
>
>
>
> Below is a stacktrace:
>
>
> [$ $GS_HOME/bin/todeIt debrisDemo_340 project list
> =================
>    GsDevKit script: todeIt debrisDemo_340 project list
>               path: /home/quuve/GsDevKit_home/bin/todeIt
> =================
> performing tode command: __project list__
> 'Pharo cannot write to the changes file named /home/quuve/GsDevKit_home/
> shared/pharo/gsDevKitCommandLine.changes.
>
> Please check that you have write permission for this file.
>
> You won''t be able to save this image correctly until you fix this.'
>
> tode > project list[Info]: Loaded /home/quuve/GsDevKit_home/
> shared/pharo/pharo-vm/libfloss-3.4.0-32.so
> [12/21/2017 12:59:13.174 EST]
>   gci login: currSession 1  rpc gem processId 15108 socket 10
>
> ========>Server Stack:
>
> EXCEPTION: TodeCommandError: registration for projectSpec: HighchartsSt
> not found
> 1. TodeCommandError(AbstractException)>>_signalWith: @6 line 25
> 2. TodeCommandError(AbstractException)>>signal: @3 line 7
> 3. TodeCommandError class(AbstractException class)>>signal: @3 line 4
> 4. TDShellTool(TDAbstractDevTool)>>error: @2 line 2
> 5. [] in TDShellTool>>findProjectRegistrationExact: @18 line 5
> 6. Array(SequenceableCollection)>>detect:ifNone: @27 line 23
> 7. TDShellTool>>findProjectRegistrationExact: @5 line 4
> 8. [] in TDMetacelloTool>>projectRegistrationDefinitionMap @35 line 20
> 9. [] in UndefinedObject(TDMetacelloTool)>>scanProjectDir:forProjects:
> @18 line 15
> 10. [] in TDProxyLeafNode>>composedChildrenDo: @9 line 5
> 11. [] in UndefinedObject(TDComposedDirectoryNode)>>composedChildrenDo:
> @8 line 3
> 12. [] in UndefinedObject(TDPathComposedDirectoryNodeContents)>>composedChildrenDo:
> @13 line 5
> 13. OrderedCollection(Collection)>>do: @6 line 10
> 14. TDPathComposedProjectEntryNodeContents(TDPathComposedDirectoryNodeContents)>>composedChildrenDo:
> @6 line 5
> 15. TDComposedProjectEntryNode(TDComposedDirectoryNode)>>composedChildrenDo:
> @4 line 3
> 16. TDRawGatewayNode(TDGatewayNode)>>composedChildrenDo: @3 line 2
> 17. [] in TDFileSystemLeafNode>>composedChildrenDo: @13 line 4
> 18. TDFileSystemLeafNode(ExecBlock)>>on:do: @3 line 44
> 19. TDFileSystemLeafNode>>composedChildrenDo: @7 line 5
> 20. TDProxyLeafNode>>composedChildrenDo: @4 line 3
> 21. TDObjectGatewayLeafNode(TDGatewayNode)>>composedChildrenDo: @3 line 2
> 22. TDMetacelloTool>>scanProjectDir:forProjects: @3 line 3
> 23. TDMetacelloTool>>scanForProjects: @6 line 3
> 24. TDMetacelloTool>>projectRegistrationDefinitionMap @10 line 8
> 25. TDMetacelloTool>>projectRegistrationDefinitionList @3 line 3
> 26. [] in TDMetacelloTool>>projectlist @9 line 13
> 27. TDMetacelloProjectBrowser>>clientList:listElement: @4 line 4
> 28. [] in TDMetacelloProjectBrowser(TDAbstractToolBuilder)>>clientListBlock
> @6 line 2
> 29. TDMiniToolSpec>>clientList:listElement: @4 line 3
> 30. TDMiniToolClientListElementBuilder>>clientList: @3 line 2
> 31. TDMiniToolClientListElementBuilder(TDClientListElementBuilder)>>firstList:
> @2 line 2
> 32. TDMiniToolClientListElementBuilder(TDClientListElementBuilder)>>
> buildClientElementUsing:editorAspect: @20 line 15
> 33. [] in UndefinedObject(TDTopezServer)>>clientElementFor:using: @11
> line 9
> 34. [] in TDTopezServer>>editorNodeFor:aspect:do: @13 line 7
> 35. [] in UndefinedObject(TDTopezServer)>>editorNodeClassNameFor:aspect:do:
> @13 line 10
> 36. TDTopezServer>>lookupClassNameFor:aspect:defaultAspect:in:do: @25
> line 28
> 37. TDTopezServer>>editorNodeClassNameFor:aspect:do: @6 line 3
> 38. TDTopezServer>>editorNodeFor:aspect:do: @3 line 3
> 39. TDTopezServer>>clientElementFor:using: @4 line 4
> 40. TDTopezServer>>edit:using: @3 line 3
> 41. TDMetacelloProjectBrowser(Object)>>editUsing: @4 line 3
> 42. TDMetacelloProjectBrowser(TDAbstractToolBuilder)>>open @3 line 2
> 43. [] in TDMetacelloTool>>projectlist @41 line 35
> 44. Dictionary(AbstractDictionary)>>at:ifPresent:ifAbsent: @4 line 5
> 45. TDMetacelloTool>>projectlist @5 line 27
> 46. TDMetacelloTool(Object)>>perform: @1 line 1
> 47. TDMetacelloTool class(TDAbstractDevTool class)>>performSubCommand:
> objIn:commandOptions:todeCommand: @27 line 23
> 48. [] in TDMetacelloTool class>>project @6 line 5
> 49. TDMetacelloTool class(ExecBlock)>>cull:cull:cull:cull: @21 line 14
> 50. TDTopezServer>>evaluateCommand:objIn: @19 line 22
> 51. TDTopezServer>>evaluateSTONCommand: @10 line 6
> 52. Executed Code
> 53. GsNMethod class>>_gsReturnToC @1 line 1
>
> GemStone Server error: a TodeCommandError occurred (error 121000), ,
> registration for projectSpec: HighchartsSt not found
> Error on or near line 99 :: devKitCommandLine todeIt debrisDemo_340 ::
> devKitCommandLine todeIt debrisDemo_340
> Error on or near line 58 :: todeIt debrisDemo_340 project list :: todeIt
> debrisDemo_340 project list
> [debrisdemo at quuveserver1 backups]$
>
>
>
>> Dale
>>
>> On 12/21/17 6:25 AM, Mariano Martinez Peck via Glass wrote:
>>
>> Hi Dale,
>>
>> I saw your examples of doing something like:
>>
>>   project entry --url=http://gsdevkit.github.i
>> o/GsDevKit_home/Seaside32.ston /sys/local/server/projects
>>
>> But...if you ask me, I would prefer to self-contain my .ston projects
>> together with my GsSysLocal fork. In other words, I would have my .ston
>> directly committed into /sys/local/server/projects.
>> So... I just added a project entry there, but then (before trying
>> `install` and `load`), I cannot even do a `project list` or a `project
>> refresh` in a tODE of an existing stone. It always errors with:
>>
>> Topez ERROR: a TodeCommandError occurred (error 121000), , registration
>> for projectSpec: HighchartsSt not found
>>
>> Below is my  $GS_HOME/sys/local/server/projects/HighchartsSt.ston
>>
>>
>> TDObjectGatewayLeafNode{#name:'HighchartsSt',#contents:'^
>> TDProjectSpecEntryDefinition new
>>     comment: \'\';
>>     projectUrl: \'https://github.com/ba-st/HighchartsSt\';
>>     baseline: \'HighchartsSt\'
>>       repository: \'github://ba-st/HighchartsSt:
>> highchart6-import-issue28/repository\'
>>       loads: #(\'Highcharts\' \'Highstock\' );
>>     gitCheckout: \'highchart6-import-issue28\';
>>     status: #(#\'inactive\');
>>     locked: true;
>>     yourself'}
>>
>>
>> Am I doing something obviously wrong in my .ston ?  I thought that maybe
>> I had to explicitly register this project entry even it is a known
>> location..but I haven't find a way of doing that. All the examples of
>> `project --help entry` does not seem to help me.
>>
>>
>> Thanks in advance,
>>
>>
>>
>> --
>> Mariano
>> http://marianopeck.wordpress.com
>>
>>
>> _______________________________________________
>> Glass mailing listGlass at lists.gemtalksystems.comhttp://lists.gemtalksystems.com/mailman/listinfo/glass
>>
>>
>>
>> _______________________________________________
>> Glass mailing list
>> Glass at lists.gemtalksystems.com
>> http://lists.gemtalksystems.com/mailman/listinfo/glass
>>
>>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
>
>
>


-- 
Mariano
http://marianopeck.wordpress.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20171222/2e0e4dcf/attachment-0001.html>


More information about the Glass mailing list