Hi Dale,
I saw your examples of doing something like: project entry --url=http://gsdevkit.github. 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: \'<a href="https://github.com/ba-st/HighchartsSt\">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, _______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
I would like to see a stack trace of the error ... On 12/21/17 6:25 AM, Mariano Martinez
Peck via Glass wrote:
_______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
In reply to this post by GLASS mailing list
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 ... Dale On 12/21/17 6:25 AM, Mariano Martinez
Peck via Glass wrote:
_______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
On Thu, Dec 21, 2017 at 2:50 PM, Dale Henrichs via Glass <[hidden email]> wrote:
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: \'<a href="https://github.com/ba-st/HighchartsSt\">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@quuveserver1 backups]$
_______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
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:
_______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
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:
_______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
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 <[hidden email]> wrote:
_______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
On 12/22/17 5:10 AM, Mariano Martinez
Peck wrote:
Okay so the project isn't loaded yet ... I guess that is true because of the ZipArchive problem ... Certainly ... the rule would be that if you have projects that are to be shared amongst a collection of stones, then use `/sys/local/server/projects` ... the only time to use the `/sys/stone/projects` is when you want to do work on a branch that is explicitly not shared ... I use this approach when I doing work on Metacello that is likely to break Metacello while I am working on it -- I cannot afford to break Metacello for all of the other stones:) exactly... Yes it does! Yes, I think this bit is a bit inadvertant, but without the ZipArchive bug is certainly an annoyance at most ... with the bug this is a problem --- but it should be easy to work around this ...simply define the project entry to use the github:// and the master branch (which downloads correctly) and do your `project clone` - no lock in project entry... another alternative is to manually clone the repo into $GS_HOME/shared/repos and thenn define the project entry referencing the filetree:// url for the repo - use a lock now ... and then you're ready to rumba ... The simplest is to clone the repository manually and then create the project entry and just avoid the whole ZipArchive bug completely ... The ony reason that all of the examples use github:// urls is a) I didn't really realize that the project entry would automactically do the download and b) I didn't know about the ZipArchive bug that could get in the way ... The project entry is used as a specification for other stones that are created in the $GS_HOME env ... so you don't have to "teach" each knew stone where all of the local clones for projects are located ... I am patiently waiting to see if the pharo folks see the advantage of having these disk-based artifacts, but I may have to retire before that happens:) ... For 3.5 we should have Cypress2 (called Rowan now) and Metacello in the base along with selected bits of tODE tools api as we have a few of our commercial customers who are becoming interested in using git for managing the GemStone source ... so it is likely that I will revisit the project entry implementation and probably come up with a Metacello Load Specification which will be similar to project entries, with some tweaks and changes based on my/our experiences so far ... For 3.5 I plan to move towards using GsDevKit/GsDevKit[1], SeasideSt/Grease[2] and Metacello/metacello[3] instead of glassdb/glass, GsDevKit/Grease and dalehenrich/metacello-work ... and that is going to push the limits of what can be done with the single $GS_HOME/shared/repos and $GS_HOME/sys/local/server/projects directory structure. The methods and classes themselves have not changed (that much)between projects, but the fact that they are independent git projects (some with the same name) and the fact that I don't want to force any existing stones to have to switch projects makes it a bit of a challenge ... So things are constantly being refined as time goes by and the requirements/experiences change. Dale [1] https://github.com/GsDevKit/GsDevKit [2] https://github.com/SeasideSt/Grease [3] https://github.com/Metacello/metacello _______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
Free forum by Nabble | Edit this page |