[Glass] Early access update: PR #13

Jon Paynter via Glass glass at lists.gemtalksystems.com
Wed Nov 4 15:24:01 PST 2015


On Wed, Nov 4, 2015 at 2:25 PM, Dale Henrichs <
dale.henrichs at gemtalksystems.com> wrote:

>
>
> On 11/04/2015 01:49 PM, Jon Paynter wrote:
>
>
> On Wed, Nov 4, 2015 at 12:53 PM, Dale Henrichs <
> dale.henrichs at gemtalksystems.com> wrote:
>
>>
>> Pull when I post ... I do my development on separate branches for both
>> GsDevKit_home and tODE and I send out the email within an hour or merging
>> the changes for _home and tode into their respective master branches ... so
>> nothing (that you should use) is available unless you see a post ...
>>
>> Willdo.  hopefully I havent made a hash of things by trying to pull daily.
>
> YOu can't over-pull, unless you are pulling from the dev branches:) I
> often break the universe on the dev branches, so stick to the master
> branches and you'll be fine ...
>
> Are you using $GS_HOme/bin/updateGsDevKit to do your "pulls"?
>
I think once twice I used the conventional 'git pull'
but the last several times I use the updateGsDevKit script.

Also - as an FYI  the page:
https://github.com/GsDevKit/GsDevKit_home/blob/master/docs/FAQ.md
mentions to use "updateGsDevKitScript"  which doesnt exist, so I use
"updateGsDevKit" instead

>
>
>>  `mc list routeevent` will bring up a browser on the packages in the
>> image whose name matches the given pattern and there are 'delete' and
>> 'unload' menu items available (that perform the `mc` command for you) ...
>>
>> I removed the 2 packages BaselineOfRouteEvent and RouteEvent-Core using
> 'unload' from the tode shell
>
>
>>
>> This looks like the " a STONReaderError occurred (error 2710), Cannot
>> resolve class named #'TDObjectGatewayLeafNode" error that I mentioned in
>> the EA pull request #15[1] and I would like you to try running the
>> following bash shell command:
>>
>>   $GS_HOME/bin/patches/patchIssue15 <stone-name>
>>
>>
> That completed without (visible) errors, but I did notice this while it
> was running
>
> Loaded -> Tode-GemStone-Server-Base-dkh.1 ---
> filetree:///home/gemstone/GsDevKit_home/shared/repos/tode/repository
> [e2fccee:master] --- cache
>
>
>
> *Warning: You are about to load new versions of the following packages
> that have unsaved changes in the image.  If you continue, you will lose
> these changes.   Tode-GemStone-Server-Core *
> Loaded -> Tode-GemStone-Server-Core-dkh.191 ---
> filetree:///home/gemstone/GsDevKit_home/shared/repos/tode/repository
> [e2fccee:master] --- cache
>
> Since I did not intentionally make changes to that package, I assume its
> ok to overwrite the changes.
>
> This message can pop up at times, when a method has been moved from one
> package to another ... it's actually a good thing to get everything loaded
> during an update, since the system depends upon all of the packages working
> together ..
>
>
> After restarting my tode client, project list works again.
>
> But when I re-run  "project new --class RouteEvent"  I get an error
>  Could not create directory: errno=17,EEXIST, The file already exists :
> $GS_HOME/shared/repos/RouteEvent/repository
> 1. UserDefinedError(AbstractException)>>_signalWith: @5 line 25
> 2. UserDefinedError(AbstractException)>>signal @2 line 47
> 3. ServerFileDirectory(Object)>>error: @6 line 7
> 4. ServerFileDirectory(FileDirectory)>>createDirectory: @9 line 10
> 5.
> TDMetacelloTool>>projectNew:projectEntryPath:packageName:gitRootPath:requiredProjects:dependencies:repositories:superclassName:applicationClassCreationBlock:
> @7 line 5
> 6.
> TDMetacelloTool>>projectNew:projectEntryPath:packageName:gitRootPath:superclassName:applicationClassCreationBlock:
> @2 line 3
> 7.
> TDMetacelloTool>>projectNew:projectEntryPath:packageName:gitRootPath:applicationClassCreationBlock:
> @2 line 3
> 8. TDMetacelloTool>>projectnew @10 line 42
> 9. TDMetacelloTool class(TDAbstractDevTool
> class)>>performSubCommand:objIn:commandOptions:todeCommand: @23 line 22
> 10. [] in TDMetacelloTool class>>project @2 line 5
> 11. TDMetacelloTool class(ExecBlock)>>cull:cull:cull:cull: @7 line 4
> 12. TDTopezServer>>evaluateCommand:objIn: @18 line 22
> 13. TDTopezServer>>evaluateSTONCommand: @9 line 6
> 14. Executed Code
> 15. GsNMethod class>>_gsReturnToC @1 line 1
>
> so I remove the folder
> rm -Rf GsDevKit_home/shared/repos/RouteEvent
>
>
> Then re-run the project new cmd
>
> and now the same walkback re-occurrs:
>
> ah this is good to know ... I think I should be able to bullet proof
> things a bit more in `project new` .... when a failure occurs I should
> clean up things so that something like the following doesn't happen ...
>
> Until I update, you'll need to manually remove the git directory and the
> unload the packages in the image upon an error .. I think I can handle this
> much better
>
That I can do. Its pretty standard practice now.


> a UserDefinedError occurred (error 2318), reason:halt, No #baseline pragma
> found
>
> 1. UserDefinedError(AbstractException)>>_signalWith: @5 line 25
> 2. UserDefinedError(AbstractException)>>signal @2 line 47
> 3. MetacelloBaselineConstructor(Object)>>error: @6 line 7
> 4. MetacelloBaselineConstructor>>extractBaselinePragmaFor: @6 line 5
> 5. MetacelloBaselineConstructor>>calculate:project: @4 line 4
> 6. MetacelloBaselineConstructor>>on:project: @2 line 2
> 7. MetacelloBaselineConstructor class>>on:project: @3 line 3
> 8. BaselineOfRouteEvent(ConfigurationOf)>>project @14 line 8
> 9. BaselineOfRouteEvent class(ConfigurationOf class)>>project @3 line 3
> 10. MetacelloToolBox>>baselineNamed: @14 line 18
> 11. MetacelloToolBox class>>baselineNamed: @3 line 3
> 12.
> TDMetacelloTool>>createBaselineOf:requiredProjects:dependencies:repositories:withPackageNamed:
> @2 line 3
> 13.
> TDMetacelloTool>>projectNew:projectEntryPath:packageName:gitRootPath:requiredProjects:dependencies:repositories:superclassName:applicationClassCreationBlock:
> @36 line 24
> 14.
> TDMetacelloTool>>projectNew:projectEntryPath:packageName:gitRootPath:superclassName:applicationClassCreationBlock:
> @2 line 3
> 15.
> TDMetacelloTool>>projectNew:projectEntryPath:packageName:gitRootPath:applicationClassCreationBlock:
> @2 line 3
> 16. TDMetacelloTool>>projectnew @10 line 42
> 17. TDMetacelloTool class(TDAbstractDevTool
> class)>>performSubCommand:objIn:commandOptions:todeCommand: @23 line 22
> 18. [] in TDMetacelloTool class>>project @2 line 5
> 19. TDMetacelloTool class(ExecBlock)>>cull:cull:cull:cull: @7 line 4
> 20. TDTopezServer>>evaluateCommand:objIn: @18 line 22
> 21. TDTopezServer>>evaluateSTONCommand: @9 line 6
> 22. Executed Code
> 23. GsNMethod class>>_gsReturnToC @1 line 1
>
> A little poking around in the code for each stack frame leaves me
> scratching my head.
> In the method
> TDMetacelloTool>>createBaselineOf:requiredProjects:dependencies:repositories:withPackageNamed:
>
>
> I see this:
>   | toolBox |
>   (toolBox := MetacelloToolBox baselineNamed: projectName)
>     createBaselineOfMethod: 'baseline:' inCategory: 'baseline';
>     addBaselineOfSection: #'common'
> .....<snip>....
>
> Where "MetacelloToolBox baselineNamed: projectName"  is failing to because
> the baseline is missing, but it looks like the very next thing it does is
> to create the baseline method that is missing.
>
> No ... if you look at the code in frame 10, you'll see that the if the
> BaselineOf class doesn't exist, that a new one is created and an emtpy
> baseline: method is created ... the fact that you don't have a baseline:
> method implies that the class existed beforehand and was missing the method
> itself ,,,
>
hrm. true there.  More debugging is needed.  Im glad method breakpoints are
working.

So where is the method(s) that DO create the missing baseline method?  I
can check if its missing, or maybe figure out why its not being called.

The class creation part is working as expected, I verified
MetacelloToolBox>>baselineNamed:  is definitely creating a new class.. but
that seems to be all it does

>
> next, I tried creating a new project with a different name:
>     project new --class RouteEvent1
>
> and I get the same walkback as above
>
>
> I'd liek to see that stack myself ... the one above involved
> BaselineRouteEvent and that was a class that we knew already existed in the
> image ... there must be something different this time around unless you
> already have a class named BaselineRouteEvent1 already created?
>
here is the walkback (this time for RouteEvent2, since I guess RouteEvent1
still has artifacts hanging around)

a UserDefinedError occurred (error 2318), reason:halt, No #baseline pragma
found
1. UserDefinedError(AbstractException)>>_signalWith: @5 line 25
2. UserDefinedError(AbstractException)>>signal @2 line 47
3. MetacelloBaselineConstructor(Object)>>error: @6 line 7
4. MetacelloBaselineConstructor>>extractBaselinePragmaFor: @6 line 5
5. MetacelloBaselineConstructor>>calculate:project: @4 line 4
6. MetacelloBaselineConstructor>>on:project: @2 line 2
7. MetacelloBaselineConstructor class>>on:project: @3 line 3
8. BaselineOfRouteEvent2(ConfigurationOf)>>project @14 line 8
9. BaselineOfRouteEvent2 class(ConfigurationOf class)>>project @3 line 3
10. MetacelloToolBox>>baselineNamed: @14 line 18
11. MetacelloToolBox class>>baselineNamed: @3 line 3
12.
TDMetacelloTool>>createBaselineOf:requiredProjects:dependencies:repositories:withPackageNamed:
@2 line 3
13.
TDMetacelloTool>>projectNew:projectEntryPath:packageName:gitRootPath:requiredProjects:dependencies:repositories:superclassName:applicationClassCreationBlock:
@36 line 24
14.
TDMetacelloTool>>projectNew:projectEntryPath:packageName:gitRootPath:superclassName:applicationClassCreationBlock:
@2 line 3
15.
TDMetacelloTool>>projectNew:projectEntryPath:packageName:gitRootPath:applicationClassCreationBlock:
@2 line 3
16. TDMetacelloTool>>projectnew @10 line 42
17. TDMetacelloTool class(TDAbstractDevTool
class)>>performSubCommand:objIn:commandOptions:todeCommand: @23 line 22
18. [] in TDMetacelloTool class>>project @2 line 5
19. TDMetacelloTool class(ExecBlock)>>cull:cull:cull:cull: @7 line 4
20. TDTopezServer>>evaluateCommand:objIn: @18 line 22
21. TDTopezServer>>evaluateSTONCommand: @9 line 6
22. Executed Code
23. GsNMethod class>>_gsReturnToC @1 line 1


Let me know if you want the contents of any of the stack frames
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20151104/f4428461/attachment-0001.html>


More information about the Glass mailing list