Early access update: PR #13

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
23 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Early access update: PR #13

GLASS mailing list
See pull request #13[1] for complete details.

Added `project new` command that creates, BaselineOf, package, git repo
and project entry for a new project. Creating a BaselineOf needs some
new support methods for Metacello, so a new version of Metacello must be
downloaded.

A bugfix or two for tODE plus a couple of new tODE features (see PR
#13[1] for details).

Added `-s` option to updateGsDevKit to automatically update the clones
of the "shared projects" : Metacello, GLASS1, ston, rb, Grease and
Filetree ... which is needed to get the latest version of Metacello for
the `project new` command.

Updates of docs from Lisa and myself.

New FAQ: "How do I create a new project from scratch in tODE?"[2]

To update:

   $GS_HOME/bin/updateGsDevKit -g -i -t
   $GS_HOME/bin/updateGsDevKit -s
   $GS_HOME/bin todeUpdate <stone-name>

NOTE, the first updateGsDevKit is needed to get the version of
updateGsDevKit with the -s option. The second updateGsDevKit is to
download the latest version of Metacello to your clone ... run
todeUpdate to update each stone, or you can manually update your stones
(when you are ready) using the project list..

Dale

[1] https://github.com/GsDevKit/GsDevKit_home/pull/13
[2]
https://github.com/GsDevKit/GsDevKit_home/blob/master/docs/FAQ/FAQ.md#7-how-do-i-create-a-new-project-from-scratch-in-tode
_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Early access update: PR #13

GLASS mailing list
Great to hear there is a special command for this.

I tried to use the cmd from tode client and im getting an error:
tode 1 > project new --class RouteEvents
Topez ERROR: a TodeCommandError occurred (error 121000), Unknown sub command 'new' for command 'project'

Im running the todeClient on my local PC (windows7) and gemstone on a VM (ubuntu 12).  both copies of GsDevKit_home are on the same commit:
$ git log -n1
commit ae34dcffa14e96cb03a60f41833ce20188ad141a
Merge: 39af1cf 989ae1d
Author: Dale Henrichs <[hidden email]>
Date:   Sat Oct 24 19:00:54 2015 -0700

    Merge pull request #13 from GsDevKit/dev

    Early Access - new project support

I ran "updateGsDevKit -g -t -i" on both client and server.
Server update completed with no errors.
The client update gave an error:
...finished downloadSmalltalkClient
create gsDevKitCommandLine.image image using /d/gitvob/GsDevKit_home/sys/default
/pharo/windows/gsDevKitCommandLineLoad.st
cat: /d/gitvob/GsDevKit_home/shared/pharo/stderr: No such file or directory

so I created the missing file and re-ran
    touch /d/gitvob/GsDevKit_home/shared/pharo/stderr
    updateGsDevKit -g -t -i
and it completed without errors.

Lastly the |Tode| entry in the project list shows up in red -- I take it to mean there is some problem with the Tode project but I dont know enough to tell what.

Let me know if you need any more info.










On Sat, Oct 24, 2015 at 7:11 PM, Dale Henrichs via Glass <[hidden email]> wrote:
See pull request #13[1] for complete details.

Added `project new` command that creates, BaselineOf, package, git repo and project entry for a new project. Creating a BaselineOf needs some new support methods for Metacello, so a new version of Metacello must be downloaded.

A bugfix or two for tODE plus a couple of new tODE features (see PR #13[1] for details).

Added `-s` option to updateGsDevKit to automatically update the clones of the "shared projects" : Metacello, GLASS1, ston, rb, Grease and Filetree ... which is needed to get the latest version of Metacello for the `project new` command.

Updates of docs from Lisa and myself.

New FAQ: "How do I create a new project from scratch in tODE?"[2]

To update:

  $GS_HOME/bin/updateGsDevKit -g -i -t
  $GS_HOME/bin/updateGsDevKit -s
  $GS_HOME/bin todeUpdate <stone-name>

NOTE, the first updateGsDevKit is needed to get the version of updateGsDevKit with the -s option. The second updateGsDevKit is to download the latest version of Metacello to your clone ... run todeUpdate to update each stone, or you can manually update your stones (when you are ready) using the project list..

Dale

[1] https://github.com/GsDevKit/GsDevKit_home/pull/13
[2] https://github.com/GsDevKit/GsDevKit_home/blob/master/docs/FAQ/FAQ.md#7-how-do-i-create-a-new-project-from-scratch-in-tode
_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Early access update: PR #13

GLASS mailing list


On 10/26/2015 11:48 AM, Jon Paynter wrote:
Great to hear there is a special command for this.

I tried to use the cmd from tode client and im getting an error:
tode 1 > project new --class RouteEvents
Topez ERROR: a TodeCommandError occurred (error 121000), Unknown sub command 'new' for command 'project'

Im running the todeClient on my local PC (windows7) and gemstone on a VM (ubuntu 12).  both copies of GsDevKit_home are on the same commit:
$ git log -n1
commit ae34dcffa14e96cb03a60f41833ce20188ad141a
Merge: 39af1cf 989ae1d
Author: Dale Henrichs <[hidden email]>
Date:   Sat Oct 24 19:00:54 2015 -0700

    Merge pull request #13 from GsDevKit/dev

    Early Access - new project support

I ran "updateGsDevKit -g -t -i" on both client and server.
Server update completed with no errors.
The client update gave an error:
...finished downloadSmalltalkClient
create gsDevKitCommandLine.image image using /d/gitvob/GsDevKit_home/sys/default
/pharo/windows/gsDevKitCommandLineLoad.st
cat: /d/gitvob/GsDevKit_home/shared/pharo/stderr: No such file or directory

so I created the missing file and re-ran
    touch /d/gitvob/GsDevKit_home/shared/pharo/stderr
    updateGsDevKit -g -t -i
and it completed without errors.

Lastly the |Tode| entry in the project list shows up in red -- I take it to mean there is some problem with the Tode project but I dont know enough to tell what.

Let me know if you need any more info.


Most likely you do not have the latest version of tODE loaded in your stone ... the red is likely indicative, but please provide with me with a ALT/CMD-SHIFT-P from the project list window, so I can verify what is wrong - and explain what the red means (if it is what I think it is) ...

Dale

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Early access update: PR #13

GLASS mailing list
alt+shift+P (tode client is running under windows) gives me this:

aTDMetacelloProjectBrowser
--------------------
|FileTree|            263ef78 [gemstone2.4]       filetree:///home/gemstone/GsDevKit_home/shared/repos/filetree/repository
|GLASS1|              208b331 [master]            filetree:///home/gemstone/GsDevKit_home/shared/repos/glass/repository
Gofer                 1.0.5.4 [release]           http://seaside.gemtalksystems.com/ss/metacello
|Grease|              b674ad0 [master]            filetree:///home/gemstone/GsDevKit_home/shared/repos/Grease/repository
|Metacello|           22cca92 [master]            filetree:///home/gemstone/GsDevKit_home/shared/repos/metacello-work/repository
|RB|                  d6639e0 [dev]               filetree:///home/gemstone/GsDevKit_home/shared/repos/rb/repository
|Ston|                25aace1 [gemstone]          filetree:///home/gemstone/GsDevKit_home/shared/repos/ston/repository
|Tode|                b8c9e14 ^ 166f67d [master]  filetree:///home/gemstone/GsDevKit_home/shared/repos/tode/repository
GsDevKit_home         ae34dcf [master]            $GS_HOME
GsApplicationTools                                github://GsDevKit/gsApplicationTools:master/repository
|PharoCompatibility|                              filetree:///home/gemstone/GsDevKit_home/shared/repos/PharoCompatibility/repository
Seaside3                                          github://GsDevKit/Seaside31:3.1.?/repository
SIXX                                              github://glassdb/SIXX:master/repository
|XMLSupport|          1.2.2.1                     http://seaside.gemtalksystems.com/ss/MetacelloRepository
ZincHTTPComponents                                github://GsDevKit/zinc:2.4.3.?/repository

... with formatting & colors updated to match what is displayed in the tode window.

On Mon, Oct 26, 2015 at 1:04 PM, Dale Henrichs <[hidden email]> wrote:


On 10/26/2015 11:48 AM, Jon Paynter wrote:
Great to hear there is a special command for this.

I tried to use the cmd from tode client and im getting an error:
tode 1 > project new --class RouteEvents
Topez ERROR: a TodeCommandError occurred (error 121000), Unknown sub command 'new' for command 'project'

Im running the todeClient on my local PC (windows7) and gemstone on a VM (ubuntu 12).  both copies of GsDevKit_home are on the same commit:
$ git log -n1
commit ae34dcffa14e96cb03a60f41833ce20188ad141a
Merge: 39af1cf 989ae1d
Author: Dale Henrichs <[hidden email]>
Date:   Sat Oct 24 19:00:54 2015 -0700

    Merge pull request #13 from GsDevKit/dev

    Early Access - new project support

I ran "updateGsDevKit -g -t -i" on both client and server.
Server update completed with no errors.
The client update gave an error:
...finished downloadSmalltalkClient
create gsDevKitCommandLine.image image using /d/gitvob/GsDevKit_home/sys/default
/pharo/windows/gsDevKitCommandLineLoad.st
cat: /d/gitvob/GsDevKit_home/shared/pharo/stderr: No such file or directory

so I created the missing file and re-ran
    touch /d/gitvob/GsDevKit_home/shared/pharo/stderr
    updateGsDevKit -g -t -i
and it completed without errors.

Lastly the |Tode| entry in the project list shows up in red -- I take it to mean there is some problem with the Tode project but I dont know enough to tell what.

Let me know if you need any more info.


Most likely you do not have the latest version of tODE loaded in your stone ... the red is likely indicative, but please provide with me with a ALT/CMD-SHIFT-P from the project list window, so I can verify what is wrong - and explain what the red means (if it is what I think it is) ...

Dale


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Early access update: PR #13

GLASS mailing list
perfect .. so when you see a project highlighted in red and the  pattern `sha ^ sha[branch-name]` in the second field, that means that you have "version skew" between the SHA of the git commit that you have loaded in the image and the SHA of the git commit that is on disk ...

This happens when you load tODE into your image and then checkout a different commit in your git repository:
  explicit checkout or a checkout by another stone sharing repo
  pull request from a remote
  commit to the git repo from a different stone sharing repo

In this case when you run an updateGsDevKit with the `-t` option, the shared tODE repsository ($GS_HOME/shared/repos/tode) is updated via a `git pull` ... In the mail when I suggest using the `-t` option I probably mentioned doing a `todeUpdate <stone-name>` which would cause you stone to have the latest version of tODE loaded using `project load Tode`. When you load tODE, the project list is updated with the latest SHA.

With Tode red (and not dirty no leading `*`) it is safe to go ahead and to a `project load Tode` ... and when you do that, it is likely that the new `project new` command will also be loaded.

I don't update stones automatically via, because there is no way to know what you are using a stone for ... but since you know what you are doing, you can use the todeUpdate script on all of your stones after you've done an `updateGsDevKit -t` ... or you can wait until you bring up a stone and notice that projects are red and do the load then ...

If the project (Tode in this case) has been modified and is read, you might be interested in thinking about things before loading because `project load Tode` does not load over dirty packages and you run the risk of not having code loaded that should have been ....

You can use the `revert` menu item to load over the modified packages (a `project revert` is coming) and then do a `project load Tode`.

You might want to look at the code that is coming in before making a decision in which case you use the `skew diff` menu item to see the differences between the two commits (SHAs) ... the diff will be a "file diff" since the differences might only be in a documentation file ...

If you decide that you want to merge you current changes into the new version, you can use the `skew save` menu item that will walk through the steps to safely merge your changes into the incoming version and create a new version .... I plan to add an additional option called `skew clone` which will copy the git repo into a directory associated only with the stone ($GS_HOME/server/stones/<stone-name>/git/<project-name>) and checkout the SHA that you have loaded ... then you can do the merge yourself or not as you please without being affected by updates to the shared git repositories ....

Dale
 
On 10/26/2015 01:19 PM, Jon Paynter wrote:
alt+shift+P (tode client is running under windows) gives me this:

aTDMetacelloProjectBrowser
--------------------
|FileTree|            263ef78 [gemstone2.4]       filetree:///home/gemstone/GsDevKit_home/shared/repos/filetree/repository
|GLASS1|              208b331 [master]            filetree:///home/gemstone/GsDevKit_home/shared/repos/glass/repository
Gofer                 1.0.5.4 [release]           http://seaside.gemtalksystems.com/ss/metacello
|Grease|              b674ad0 [master]            filetree:///home/gemstone/GsDevKit_home/shared/repos/Grease/repository
|Metacello|           22cca92 [master]            filetree:///home/gemstone/GsDevKit_home/shared/repos/metacello-work/repository
|RB|                  d6639e0 [dev]               filetree:///home/gemstone/GsDevKit_home/shared/repos/rb/repository
|Ston|                25aace1 [gemstone]          filetree:///home/gemstone/GsDevKit_home/shared/repos/ston/repository
|Tode|                b8c9e14 ^ 166f67d [master]  filetree:///home/gemstone/GsDevKit_home/shared/repos/tode/repository
GsDevKit_home         ae34dcf [master]            $GS_HOME
GsApplicationTools                                github://GsDevKit/gsApplicationTools:master/repository
|PharoCompatibility|                              filetree:///home/gemstone/GsDevKit_home/shared/repos/PharoCompatibility/repository
Seaside3                                          github://GsDevKit/Seaside31:3.1.?/repository
SIXX                                              github://glassdb/SIXX:master/repository
|XMLSupport|          1.2.2.1                     http://seaside.gemtalksystems.com/ss/MetacelloRepository
ZincHTTPComponents                                github://GsDevKit/zinc:2.4.3.?/repository

... with formatting & colors updated to match what is displayed in the tode window.

On Mon, Oct 26, 2015 at 1:04 PM, Dale Henrichs <[hidden email]> wrote:


On 10/26/2015 11:48 AM, Jon Paynter wrote:
Great to hear there is a special command for this.

I tried to use the cmd from tode client and im getting an error:
tode 1 > project new --class RouteEvents
Topez ERROR: a TodeCommandError occurred (error 121000), Unknown sub command 'new' for command 'project'

Im running the todeClient on my local PC (windows7) and gemstone on a VM (ubuntu 12).  both copies of GsDevKit_home are on the same commit:
$ git log -n1
commit ae34dcffa14e96cb03a60f41833ce20188ad141a
Merge: 39af1cf 989ae1d
Author: Dale Henrichs <[hidden email]>
Date:   Sat Oct 24 19:00:54 2015 -0700

    Merge pull request #13 from GsDevKit/dev

    Early Access - new project support

I ran "updateGsDevKit -g -t -i" on both client and server.
Server update completed with no errors.
The client update gave an error:
...finished downloadSmalltalkClient
create gsDevKitCommandLine.image image using /d/gitvob/GsDevKit_home/sys/default
/pharo/windows/gsDevKitCommandLineLoad.st
cat: /d/gitvob/GsDevKit_home/shared/pharo/stderr: No such file or directory

so I created the missing file and re-ran
    touch /d/gitvob/GsDevKit_home/shared/pharo/stderr
    updateGsDevKit -g -t -i
and it completed without errors.

Lastly the |Tode| entry in the project list shows up in red -- I take it to mean there is some problem with the Tode project but I dont know enough to tell what.

Let me know if you need any more info.


Most likely you do not have the latest version of tODE loaded in your stone ... the red is likely indicative, but please provide with me with a ALT/CMD-SHIFT-P from the project list window, so I can verify what is wrong - and explain what the red means (if it is what I think it is) ...

Dale



_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Early access update: PR #13

GLASS mailing list
The actual code I wrote isnt very much so if I lost it all, its annoying but not a deal breaker.  so I went and ran 'updateTode seaside' from the server command line.  But that failed with an error

gemstone@ubuntu:~/GsDevKit_home$ todeUpdate seaside
=================
   GsDevKit script: todeUpdate seaside
              path: /home/gemstone/GsDevKit_home/bin/todeUpdate
=================
=================
   GsDevKit script: startStone -b seaside
              path: /home/gemstone/GsDevKit_home/bin/startStone
=================
 _____________________________________________________________________________
|             GemStone/S64 Object-Oriented Data Management System             |
|                   Copyright (C) GemTalk Systems 1986-2015                   |
|                            All rights reserved.                             |
+-----------------------------------------------------------------------------+
|    PROGRAM: WAITSTONE, GemStone Remote Process Utility                      |
|    VERSION: 3.2.8, Fri Aug 21 12:12:58 2015                                 |
|      BUILD: gss64_3_2_x_branch-37241                                        |
|  BUILT FOR: x86-64 (Linux)                                                  |
|       MODE: 64 bit                                                          |
| RUNNING ON: 2-CPU ubuntu x86_64 (Linux 3.2.0-23-generic #36-Ubuntu SMP Tue  |
| Apr 10 20:39:51 UTC 2012) 3529MB                                            |
| PROCESS ID: 4044      DATE: 10/28/2015 10:16:51 PDT                         |
|   USER IDS: REAL=gemstone (1001) EFFECTIVE=gemstone (1001) LOGIN=gemstone (1001)
+-----------------------------------------------------------------------------+
|   GEMSTONE_NRS_ALL = #dir:$GEMSTONE_LOGDIR#log:%N%P.log                     |
|_____________________________________________________________________________|
Network service !#server!seaside is ready.
stone seaside already running, to restart use -r option
Update tODE on stone: seaside
=================
   GsDevKit script: todeIt seaside script --script=updateServerTode
              path: /home/gemstone/GsDevKit_home/bin/todeIt
=================
performing tode command: __script --script=updateServerTode__

tode > script --script=updateServerTode[Info]: libssl-3.2.8-32.so: loaded
[10/28/2015 10:16:52.816 PDT]
  gci login: currSession 1  rpc gem processId 4066

---Starting backup to '/home/gemstone/GsDevKit_home/server/stones/seaside/backups//preUpdate.dbf' (10/28/2015 10:16:53)
---Finished backup to 28/10/2015 10:17:53 -- preUpdate.dbf.gz
========>Server Stack:

EXCEPTION: UserDefinedError: 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. MetacelloMCBaselineOfProjectSpec(MetacelloMCProjectSpec)>>projectClassProject @4 line 4
10. MetacelloMCBaselineOfProjectSpec>>version @5 line 4
11. MetacelloMCBaselineOfProjectSpec>>versionString @3 line 2
12. MetacelloMCBaselineOfProjectSpec>>validateVersionString:withDefaultVersionString: @2 line 2
13. MetacelloMCBaselineOfProjectSpec(MetacelloMCProjectSpec)>>validateForScriptLoad:withDefaultVersionString:withDefaultRepositoryDecription: @23 line 35
14. MetacelloScriptEngine>>setDefaultsAndValidate: @4 line 6
15. [] in MetacelloScriptEngine>>lock @4 line 5
16. MetacelloScriptEngine(ExecBlock)>>ensure: @2 line 12
17. MetacelloProjectRegistration class>>copyRegistryRestoreOnErrorWhile: @8 line 14
18. MetacelloScriptEngine>>lock @2 line 4
19. [] in MetacelloScriptApiExecutor(MetacelloScriptExecutor)>>execute: @11 line 15
20. [] in MetacelloScriptApiExecutor>>executeString:do: @5 line 6
21. Array(Collection)>>do: @5 line 10
22. MetacelloScriptApiExecutor>>executeString:do: @6 line 4
23. String>>execute:against: @2 line 2
24. MetacelloScriptApiExecutor(MetacelloScriptExecutor)>>execute: @6 line 9
25. Metacello>>execute:args: @8 line 5
26. Metacello>>lock @2 line 4
27. TDMetacelloTool>>projectLock: @14 line 10
28. [] in TDMetacelloTool>>projectRegistrationDefinitionMap @14 line 17
29. [] in ExecBlock2(TDMetacelloTool)>>scanProjectDir:forProjects: @15 line 16
30. [] in TDProxyLeafNode>>composedChildrenDo: @3 line 5
31. [] in ExecBlock2(TDComposedDirectoryNode)>>composedChildrenDo: @2 line 3
32. [] in ExecBlock1(TDPathComposedDirectoryNodeContents)>>composedChildrenDo: @5 line 5
33. OrderedCollection(Collection)>>do: @5 line 10
34. TDPathComposedProjectEntryNodeContents(TDPathComposedDirectoryNodeContents)>>composedChildrenDo: @5 line 5
35. TDComposedProjectEntryNode(TDComposedDirectoryNode)>>composedChildrenDo: @3 line 3
36. TDRawGatewayNode(TDGatewayNode)>>composedChildrenDo: @3 line 2
37. TDFileSystemLeafNode>>composedChildrenDo: @7 line 3
38. TDProxyLeafNode>>composedChildrenDo: @3 line 3
39. TDObjectGatewayNode(TDGatewayNode)>>composedChildrenDo: @3 line 2
40. TDMetacelloTool>>scanProjectDir:forProjects: @2 line 3
41. TDMetacelloTool>>scanForProjects: @5 line 3
42. TDMetacelloTool>>projectRegistrationDefinitionMap @9 line 8
43. TDMetacelloTool>>projectRegistrationFor: @2 line 2
44. TDMetacelloTool>>resolveProjectRegistrationReference: @18 line 15
45. TDMetacelloTool>>projectload @5 line 40
46. TDMetacelloTool class(TDAbstractDevTool class)>>performSubCommand:objIn:commandOptions:todeCommand: @23 line 22
47. [] in TDMetacelloTool class>>project @2 line 5
48. TDMetacelloTool class(ExecBlock)>>cull:cull:cull:cull: @7 line 4
49. TDTopezServer>>evaluateCommand:objIn: @18 line 22
50. TDTopezServer>>evaluateSTONCommand: @9 line 6
51. Executed Code
52. GsNMethod class>>_gsReturnToC @1 line 1

========>Client Stack:
Error: GemStone Server error: a UserDefinedError occurred (error 2318), reason:halt, No #baseline pragma found
TodeSession>>logStackRequested:
TodeSession(GciSession)>>getNbResult
TodeSession(GciSession)>>getNbResultAsString
TodeSession(GciSession)>>executeStringExpectingStringNB:envId: in Block: [ ...
BlockClosure>>ensure:
Cursor>>showWhile:
TodeSession(GciSession)>>executeStringExpectingStringNB:envId:
TDTopezGemStoneClient>>evaluateCommand:batchMode: in Block: [ ...
BlockClosure>>ensure:
TDTopezGemStoneClient>>evaluateCommand:batchMode:
TDShell>>evaluateCommand:
TDShell>>evaluate: in Block: [ :command | result := self evaluateCommand: comma...etc...
TDCommandLine class>>line:forEachCommand: in Block: [ :isolated | ...
OrderedCollection>>do:
TDCommandLine class>>line:forEachCommand:
TDCommandLine class>>fromStream:selectLine:forEachCommand: in Block: [ :cmdLine | ...
OrderedCollection>>do:
TDCommandLine class>>fromStream:selectLine:forEachCommand:
TDShell>>evaluate: in Block: evaluate: aString...
BlockClosure>>on:do:
TDShell>>evaluate:
TDShell>>executeScript: in Block: [ ^ self evaluate: commands ]
Dictionary>>at:ifPresent:ifAbsent:
TDShell>>executeScript: in Block: [ ...
Dictionary>>at:ifPresent:ifAbsent: in Block: [ :v | ^ oneArgBlock value: v ]
BlockClosure>>cull:
Dictionary>>at:ifPresent:
Dictionary>>at:ifPresent:ifAbsent:
TDShell>>executeScript: in Block: [ ...
Dictionary>>at:ifPresent:ifAbsent:
gemstone@ubuntu:~/GsDevKit_home$



Dale - I realize your busy preparing for a conference, so no urgency on this.   Ideally somebody else can point out what I did wrong and we can fix it.




On Mon, Oct 26, 2015 at 2:06 PM, Dale Henrichs <[hidden email]> wrote:
perfect .. so when you see a project highlighted in red and the  pattern `sha ^ sha[branch-name]` in the second field, that means that you have "version skew" between the SHA of the git commit that you have loaded in the image and the SHA of the git commit that is on disk ...

This happens when you load tODE into your image and then checkout a different commit in your git repository:
  explicit checkout or a checkout by another stone sharing repo
  pull request from a remote
  commit to the git repo from a different stone sharing repo

In this case when you run an updateGsDevKit with the `-t` option, the shared tODE repsository ($GS_HOME/shared/repos/tode) is updated via a `git pull` ... In the mail when I suggest using the `-t` option I probably mentioned doing a `todeUpdate <stone-name>` which would cause you stone to have the latest version of tODE loaded using `project load Tode`. When you load tODE, the project list is updated with the latest SHA.

With Tode red (and not dirty no leading `*`) it is safe to go ahead and to a `project load Tode` ... and when you do that, it is likely that the new `project new` command will also be loaded.

I don't update stones automatically via, because there is no way to know what you are using a stone for ... but since you know what you are doing, you can use the todeUpdate script on all of your stones after you've done an `updateGsDevKit -t` ... or you can wait until you bring up a stone and notice that projects are red and do the load then ...

If the project (Tode in this case) has been modified and is read, you might be interested in thinking about things before loading because `project load Tode` does not load over dirty packages and you run the risk of not having code loaded that should have been ....

You can use the `revert` menu item to load over the modified packages (a `project revert` is coming) and then do a `project load Tode`.

You might want to look at the code that is coming in before making a decision in which case you use the `skew diff` menu item to see the differences between the two commits (SHAs) ... the diff will be a "file diff" since the differences might only be in a documentation file ...

If you decide that you want to merge you current changes into the new version, you can use the `skew save` menu item that will walk through the steps to safely merge your changes into the incoming version and create a new version .... I plan to add an additional option called `skew clone` which will copy the git repo into a directory associated only with the stone ($GS_HOME/server/stones/<stone-name>/git/<project-name>) and checkout the SHA that you have loaded ... then you can do the merge yourself or not as you please without being affected by updates to the shared git repositories ....

Dale

 
On 10/26/2015 01:19 PM, Jon Paynter wrote:
alt+shift+P (tode client is running under windows) gives me this:

aTDMetacelloProjectBrowser
--------------------
|FileTree|            263ef78 [gemstone2.4]       filetree:///home/gemstone/GsDevKit_home/shared/repos/filetree/repository
|GLASS1|              208b331 [master]            filetree:///home/gemstone/GsDevKit_home/shared/repos/glass/repository
Gofer                 1.0.5.4 [release]           http://seaside.gemtalksystems.com/ss/metacello
|Grease|              b674ad0 [master]            filetree:///home/gemstone/GsDevKit_home/shared/repos/Grease/repository
|Metacello|           22cca92 [master]            filetree:///home/gemstone/GsDevKit_home/shared/repos/metacello-work/repository
|RB|                  d6639e0 [dev]               filetree:///home/gemstone/GsDevKit_home/shared/repos/rb/repository
|Ston|                25aace1 [gemstone]          filetree:///home/gemstone/GsDevKit_home/shared/repos/ston/repository
|Tode|                b8c9e14 ^ 166f67d [master]  filetree:///home/gemstone/GsDevKit_home/shared/repos/tode/repository
GsDevKit_home         ae34dcf [master]            $GS_HOME
GsApplicationTools                                github://GsDevKit/gsApplicationTools:master/repository
|PharoCompatibility|                              filetree:///home/gemstone/GsDevKit_home/shared/repos/PharoCompatibility/repository
Seaside3                                          github://GsDevKit/Seaside31:3.1.?/repository
SIXX                                              github://glassdb/SIXX:master/repository
|XMLSupport|          1.2.2.1                     http://seaside.gemtalksystems.com/ss/MetacelloRepository
ZincHTTPComponents                                github://GsDevKit/zinc:2.4.3.?/repository

... with formatting & colors updated to match what is displayed in the tode window.

On Mon, Oct 26, 2015 at 1:04 PM, Dale Henrichs <[hidden email]> wrote:


On 10/26/2015 11:48 AM, Jon Paynter wrote:
Great to hear there is a special command for this.

I tried to use the cmd from tode client and im getting an error:
tode 1 > project new --class RouteEvents
Topez ERROR: a TodeCommandError occurred (error 121000), Unknown sub command 'new' for command 'project'

Im running the todeClient on my local PC (windows7) and gemstone on a VM (ubuntu 12).  both copies of GsDevKit_home are on the same commit:
$ git log -n1
commit ae34dcffa14e96cb03a60f41833ce20188ad141a
Merge: 39af1cf 989ae1d
Author: Dale Henrichs <[hidden email][hidden email]>
Date:   Sat Oct 24 19:00:54 2015 -0700

    Merge pull request #13 from GsDevKit/dev

    Early Access - new project support

I ran "updateGsDevKit -g -t -i" on both client and server.
Server update completed with no errors.
The client update gave an error:
...finished downloadSmalltalkClient
create gsDevKitCommandLine.image image using /d/gitvob/GsDevKit_home/sys/default
/pharo/windows/gsDevKitCommandLineLoad.st
cat: /d/gitvob/GsDevKit_home/shared/pharo/stderr: No such file or directory

so I created the missing file and re-ran
    touch /d/gitvob/GsDevKit_home/shared/pharo/stderr
    updateGsDevKit -g -t -i
and it completed without errors.

Lastly the |Tode| entry in the project list shows up in red -- I take it to mean there is some problem with the Tode project but I dont know enough to tell what.

Let me know if you need any more info.


Most likely you do not have the latest version of tODE loaded in your stone ... the red is likely indicative, but please provide with me with a ALT/CMD-SHIFT-P from the project list window, so I can verify what is wrong - and explain what the red means (if it is what I think it is) ...

Dale




_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Early access update: PR #13

GLASS mailing list
Okay, it looks like you've got an invalid/incomplete BaselineOfRouteEvent class and the problem is probably being triggered because you've got a project entry for the RouteEvent project ...

In your original project list listing, I didn't see a RouteEvent project, so you must have doing some work since sending that email ... and whatever you did wasn't complete and or incorrect...

so in a tODE shell logged into the `seaside` stone  start by restoring to the pre-update status:

  bu restore preUpdate.dbf.gz

and try bringing up a project list (I have suspect that it will fail, but at least you can get an interactive debugger on it):

  project list

I'm not interested in the stack - but more interested if you don't get a stack:) If you do get a project list to come up I want to see a CMD-SHIFT-P of the project list (color not necessary this time)

Anyway, I do want to see the following method source:

  browse method --spec BaselineRouteEvent>>baseline:

If the method doesn't exist that would explain it ... if the method does and I would like to see the project entry ... and I don't have a command that you can run to get it (I will add a flag to the `project entry` command to allow one to edit a project entry without having to open a project list) ... so if you could do the following (one at a time ):

ls /sys/local/server/projects

ls /sys/stone/projects

and then do a `edit` on the node named RouteEvent in either of those two directories and give me the contents ... if there is no RouteEvent ... we'll need to do something else ...

Dale

On 10/28/2015 10:31 AM, Jon Paynter wrote:
The actual code I wrote isnt very much so if I lost it all, its annoying but not a deal breaker.  so I went and ran 'updateTode seaside' from the server command line.  But that failed with an error

gemstone@ubuntu:~/GsDevKit_home$ todeUpdate seaside
=================
   GsDevKit script: todeUpdate seaside
              path: /home/gemstone/GsDevKit_home/bin/todeUpdate
=================
=================
   GsDevKit script: startStone -b seaside
              path: /home/gemstone/GsDevKit_home/bin/startStone
=================
 _____________________________________________________________________________
|             GemStone/S64 Object-Oriented Data Management System             |
|                   Copyright (C) GemTalk Systems 1986-2015                   |
|                            All rights reserved.                             |
+-----------------------------------------------------------------------------+
|    PROGRAM: WAITSTONE, GemStone Remote Process Utility                      |
|    VERSION: 3.2.8, Fri Aug 21 12:12:58 2015                                 |
|      BUILD: gss64_3_2_x_branch-37241                                        |
|  BUILT FOR: x86-64 (Linux)                                                  |
|       MODE: 64 bit                                                          |
| RUNNING ON: 2-CPU ubuntu x86_64 (Linux 3.2.0-23-generic #36-Ubuntu SMP Tue  |
| Apr 10 20:39:51 UTC 2012) 3529MB                                            |
| PROCESS ID: 4044      DATE: 10/28/2015 10:16:51 PDT                         |
|   USER IDS: REAL=gemstone (1001) EFFECTIVE=gemstone (1001) LOGIN=gemstone (1001)
+-----------------------------------------------------------------------------+
|   GEMSTONE_NRS_ALL = #dir:$GEMSTONE_LOGDIR#log:%N%P.log                     |
|_____________________________________________________________________________|
Network service !#server!seaside is ready.
stone seaside already running, to restart use -r option
Update tODE on stone: seaside
=================
   GsDevKit script: todeIt seaside script --script=updateServerTode
              path: /home/gemstone/GsDevKit_home/bin/todeIt
=================
performing tode command: __script --script=updateServerTode__

tode > script --script=updateServerTode[Info]: libssl-3.2.8-32.so: loaded
[10/28/2015 10:16:52.816 PDT]
  gci login: currSession 1  rpc gem processId 4066

---Starting backup to '/home/gemstone/GsDevKit_home/server/stones/seaside/backups//preUpdate.dbf' (10/28/2015 10:16:53)
---Finished backup to 28/10/2015 10:17:53 -- preUpdate.dbf.gz
========>Server Stack:

EXCEPTION: UserDefinedError: 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. MetacelloMCBaselineOfProjectSpec(MetacelloMCProjectSpec)>>projectClassProject @4 line 4
10. MetacelloMCBaselineOfProjectSpec>>version @5 line 4
11. MetacelloMCBaselineOfProjectSpec>>versionString @3 line 2
12. MetacelloMCBaselineOfProjectSpec>>validateVersionString:withDefaultVersionString: @2 line 2
13. MetacelloMCBaselineOfProjectSpec(MetacelloMCProjectSpec)>>validateForScriptLoad:withDefaultVersionString:withDefaultRepositoryDecription: @23 line 35
14. MetacelloScriptEngine>>setDefaultsAndValidate: @4 line 6
15. [] in MetacelloScriptEngine>>lock @4 line 5
16. MetacelloScriptEngine(ExecBlock)>>ensure: @2 line 12
17. MetacelloProjectRegistration class>>copyRegistryRestoreOnErrorWhile: @8 line 14
18. MetacelloScriptEngine>>lock @2 line 4
19. [] in MetacelloScriptApiExecutor(MetacelloScriptExecutor)>>execute: @11 line 15
20. [] in MetacelloScriptApiExecutor>>executeString:do: @5 line 6
21. Array(Collection)>>do: @5 line 10
22. MetacelloScriptApiExecutor>>executeString:do: @6 line 4
23. String>>execute:against: @2 line 2
24. MetacelloScriptApiExecutor(MetacelloScriptExecutor)>>execute: @6 line 9
25. Metacello>>execute:args: @8 line 5
26. Metacello>>lock @2 line 4
27. TDMetacelloTool>>projectLock: @14 line 10
28. [] in TDMetacelloTool>>projectRegistrationDefinitionMap @14 line 17
29. [] in ExecBlock2(TDMetacelloTool)>>scanProjectDir:forProjects: @15 line 16
30. [] in TDProxyLeafNode>>composedChildrenDo: @3 line 5
31. [] in ExecBlock2(TDComposedDirectoryNode)>>composedChildrenDo: @2 line 3
32. [] in ExecBlock1(TDPathComposedDirectoryNodeContents)>>composedChildrenDo: @5 line 5
33. OrderedCollection(Collection)>>do: @5 line 10
34. TDPathComposedProjectEntryNodeContents(TDPathComposedDirectoryNodeContents)>>composedChildrenDo: @5 line 5
35. TDComposedProjectEntryNode(TDComposedDirectoryNode)>>composedChildrenDo: @3 line 3
36. TDRawGatewayNode(TDGatewayNode)>>composedChildrenDo: @3 line 2
37. TDFileSystemLeafNode>>composedChildrenDo: @7 line 3
38. TDProxyLeafNode>>composedChildrenDo: @3 line 3
39. TDObjectGatewayNode(TDGatewayNode)>>composedChildrenDo: @3 line 2
40. TDMetacelloTool>>scanProjectDir:forProjects: @2 line 3
41. TDMetacelloTool>>scanForProjects: @5 line 3
42. TDMetacelloTool>>projectRegistrationDefinitionMap @9 line 8
43. TDMetacelloTool>>projectRegistrationFor: @2 line 2
44. TDMetacelloTool>>resolveProjectRegistrationReference: @18 line 15
45. TDMetacelloTool>>projectload @5 line 40
46. TDMetacelloTool class(TDAbstractDevTool class)>>performSubCommand:objIn:commandOptions:todeCommand: @23 line 22
47. [] in TDMetacelloTool class>>project @2 line 5
48. TDMetacelloTool class(ExecBlock)>>cull:cull:cull:cull: @7 line 4
49. TDTopezServer>>evaluateCommand:objIn: @18 line 22
50. TDTopezServer>>evaluateSTONCommand: @9 line 6
51. Executed Code
52. GsNMethod class>>_gsReturnToC @1 line 1

========>Client Stack:
Error: GemStone Server error: a UserDefinedError occurred (error 2318), reason:halt, No #baseline pragma found
TodeSession>>logStackRequested:
TodeSession(GciSession)>>getNbResult
TodeSession(GciSession)>>getNbResultAsString
TodeSession(GciSession)>>executeStringExpectingStringNB:envId: in Block: [ ...
BlockClosure>>ensure:
Cursor>>showWhile:
TodeSession(GciSession)>>executeStringExpectingStringNB:envId:
TDTopezGemStoneClient>>evaluateCommand:batchMode: in Block: [ ...
BlockClosure>>ensure:
TDTopezGemStoneClient>>evaluateCommand:batchMode:
TDShell>>evaluateCommand:
TDShell>>evaluate: in Block: [ :command | result := self evaluateCommand: comma...etc...
TDCommandLine class>>line:forEachCommand: in Block: [ :isolated | ...
OrderedCollection>>do:
TDCommandLine class>>line:forEachCommand:
TDCommandLine class>>fromStream:selectLine:forEachCommand: in Block: [ :cmdLine | ...
OrderedCollection>>do:
TDCommandLine class>>fromStream:selectLine:forEachCommand:
TDShell>>evaluate: in Block: evaluate: aString...
BlockClosure>>on:do:
TDShell>>evaluate:
TDShell>>executeScript: in Block: [ ^ self evaluate: commands ]
Dictionary>>at:ifPresent:ifAbsent:
TDShell>>executeScript: in Block: [ ...
Dictionary>>at:ifPresent:ifAbsent: in Block: [ :v | ^ oneArgBlock value: v ]
BlockClosure>>cull:
Dictionary>>at:ifPresent:
Dictionary>>at:ifPresent:ifAbsent:
TDShell>>executeScript: in Block: [ ...
Dictionary>>at:ifPresent:ifAbsent:
gemstone@ubuntu:~/GsDevKit_home$



Dale - I realize your busy preparing for a conference, so no urgency on this.   Ideally somebody else can point out what I did wrong and we can fix it.




On Mon, Oct 26, 2015 at 2:06 PM, Dale Henrichs <[hidden email]> wrote:
perfect .. so when you see a project highlighted in red and the  pattern `sha ^ sha[branch-name]` in the second field, that means that you have "version skew" between the SHA of the git commit that you have loaded in the image and the SHA of the git commit that is on disk ...

This happens when you load tODE into your image and then checkout a different commit in your git repository:
  explicit checkout or a checkout by another stone sharing repo
  pull request from a remote
  commit to the git repo from a different stone sharing repo

In this case when you run an updateGsDevKit with the `-t` option, the shared tODE repsository ($GS_HOME/shared/repos/tode) is updated via a `git pull` ... In the mail when I suggest using the `-t` option I probably mentioned doing a `todeUpdate <stone-name>` which would cause you stone to have the latest version of tODE loaded using `project load Tode`. When you load tODE, the project list is updated with the latest SHA.

With Tode red (and not dirty no leading `*`) it is safe to go ahead and to a `project load Tode` ... and when you do that, it is likely that the new `project new` command will also be loaded.

I don't update stones automatically via, because there is no way to know what you are using a stone for ... but since you know what you are doing, you can use the todeUpdate script on all of your stones after you've done an `updateGsDevKit -t` ... or you can wait until you bring up a stone and notice that projects are red and do the load then ...

If the project (Tode in this case) has been modified and is read, you might be interested in thinking about things before loading because `project load Tode` does not load over dirty packages and you run the risk of not having code loaded that should have been ....

You can use the `revert` menu item to load over the modified packages (a `project revert` is coming) and then do a `project load Tode`.

You might want to look at the code that is coming in before making a decision in which case you use the `skew diff` menu item to see the differences between the two commits (SHAs) ... the diff will be a "file diff" since the differences might only be in a documentation file ...

If you decide that you want to merge you current changes into the new version, you can use the `skew save` menu item that will walk through the steps to safely merge your changes into the incoming version and create a new version .... I plan to add an additional option called `skew clone` which will copy the git repo into a directory associated only with the stone ($GS_HOME/server/stones/<stone-name>/git/<project-name>) and checkout the SHA that you have loaded ... then you can do the merge yourself or not as you please without being affected by updates to the shared git repositories ....

Dale

 
On 10/26/2015 01:19 PM, Jon Paynter wrote:
alt+shift+P (tode client is running under windows) gives me this:

aTDMetacelloProjectBrowser
--------------------
|FileTree|            263ef78 [gemstone2.4]       filetree:///home/gemstone/GsDevKit_home/shared/repos/filetree/repository
|GLASS1|              208b331 [master]            filetree:///home/gemstone/GsDevKit_home/shared/repos/glass/repository
Gofer                 1.0.5.4 [release]           http://seaside.gemtalksystems.com/ss/metacello
|Grease|              b674ad0 [master]            filetree:///home/gemstone/GsDevKit_home/shared/repos/Grease/repository
|Metacello|           22cca92 [master]            filetree:///home/gemstone/GsDevKit_home/shared/repos/metacello-work/repository
|RB|                  d6639e0 [dev]               filetree:///home/gemstone/GsDevKit_home/shared/repos/rb/repository
|Ston|                25aace1 [gemstone]          filetree:///home/gemstone/GsDevKit_home/shared/repos/ston/repository
|Tode|                b8c9e14 ^ 166f67d [master]  filetree:///home/gemstone/GsDevKit_home/shared/repos/tode/repository
GsDevKit_home         ae34dcf [master]            $GS_HOME
GsApplicationTools                                github://GsDevKit/gsApplicationTools:master/repository
|PharoCompatibility|                              filetree:///home/gemstone/GsDevKit_home/shared/repos/PharoCompatibility/repository
Seaside3                                          github://GsDevKit/Seaside31:3.1.?/repository
SIXX                                              github://glassdb/SIXX:master/repository
|XMLSupport|          1.2.2.1                     http://seaside.gemtalksystems.com/ss/MetacelloRepository
ZincHTTPComponents                                github://GsDevKit/zinc:2.4.3.?/repository

... with formatting & colors updated to match what is displayed in the tode window.

On Mon, Oct 26, 2015 at 1:04 PM, Dale Henrichs <[hidden email]> wrote:


On 10/26/2015 11:48 AM, Jon Paynter wrote:
Great to hear there is a special command for this.

I tried to use the cmd from tode client and im getting an error:
tode 1 > project new --class RouteEvents
Topez ERROR: a TodeCommandError occurred (error 121000), Unknown sub command 'new' for command 'project'

Im running the todeClient on my local PC (windows7) and gemstone on a VM (ubuntu 12).  both copies of GsDevKit_home are on the same commit:
$ git log -n1
commit ae34dcffa14e96cb03a60f41833ce20188ad141a
Merge: 39af1cf 989ae1d
Author: Dale Henrichs <[hidden email]>
Date:   Sat Oct 24 19:00:54 2015 -0700

    Merge pull request #13 from GsDevKit/dev

    Early Access - new project support

I ran "updateGsDevKit -g -t -i" on both client and server.
Server update completed with no errors.
The client update gave an error:
...finished downloadSmalltalkClient
create gsDevKitCommandLine.image image using /d/gitvob/GsDevKit_home/sys/default
/pharo/windows/gsDevKitCommandLineLoad.st
cat: /d/gitvob/GsDevKit_home/shared/pharo/stderr: No such file or directory

so I created the missing file and re-ran
    touch /d/gitvob/GsDevKit_home/shared/pharo/stderr
    updateGsDevKit -g -t -i
and it completed without errors.

Lastly the |Tode| entry in the project list shows up in red -- I take it to mean there is some problem with the Tode project but I dont know enough to tell what.

Let me know if you need any more info.


Most likely you do not have the latest version of tODE loaded in your stone ... the red is likely indicative, but please provide with me with a ALT/CMD-SHIFT-P from the project list window, so I can verify what is wrong - and explain what the red means (if it is what I think it is) ...

Dale





_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Early access update: PR #13

GLASS mailing list
On Wed, Oct 28, 2015 at 10:51 AM, Dale Henrichs <[hidden email]> wrote:
Okay, it looks like you've got an invalid/incomplete BaselineOfRouteEvent class and the problem is probably being triggered because you've got a project entry for the RouteEvent project ...

In your original project list listing, I didn't see a RouteEvent project, so you must have doing some work since sending that email ... and whatever you did wasn't complete and or incorrect...

so in a tODE shell logged into the `seaside` stone  start by restoring to the pre-update status:

  bu restore preUpdate.dbf.gz
Restore completed with no issues
 

and try bringing up a project list (I have suspect that it will fail, but at least you can get an interactive debugger on it):

  project list
running project list gives me a walkback "no #baseline pragma found"
 

I'm not interested in the stack - but more interested if you don't get a stack:) If you do get a project list to come up I want to see a CMD-SHIFT-P of the project list (color not necessary this time)

Anyway, I do want to see the following method source:

  browse method --spec BaselineRouteEvent>>baseline:
I think you meant BaselineOfRouteEvent ?

BaselineOfRouteEvent has no class or instance methods
 

If the method doesn't exist that would explain it ... if the method does and I would like to see the project entry ... and I don't have a command that you can run to get it (I will add a flag to the `project entry` command to allow one to edit a project entry without having to open a project list) ... so if you could do the following (one at a time ):

ls /sys/local/server/projects
tode 1 > ls /sys/local/server/projects
README.md  RouteEvent@/
 

ls /sys/stone/projects
tode 1 > ls /sys/stone/projects
README.md
 

and then do a `edit` on the node named RouteEvent in either of those two directories and give me the contents ... if there is no RouteEvent ... we'll need to do something else ...
Here is the contents of the file that does exist

tode 1 > edit /sys/local/server/projects/RouteEvent
 
^ TDProjectSpecEntryDefinition new
    baseline: 'RouteEvent'
      repository: 'filetree://$GS_HOME/shared/repos/RouteEvent/repository'
      loads: #('default');
    status: #(#'active');
    locked: true;
    yourself


Since this project is brand new -- it has no real contents (I have yet to figure out how to add a new category to an existing project), so removing it and starting from scratch may be the best option.  I tried that already by removing the class from gemstone and the folder on the server, but either I missed something or its not working right (yet).

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Early access update: PR #13

GLASS mailing list


On 10/28/2015 11:13 AM, Jon Paynter wrote:
On Wed, Oct 28, 2015 at 10:51 AM, Dale Henrichs <[hidden email]> wrote:
Okay, it looks like you've got an invalid/incomplete BaselineOfRouteEvent class and the problem is probably being triggered because you've got a project entry for the RouteEvent project ...

In your original project list listing, I didn't see a RouteEvent project, so you must have doing some work since sending that email ... and whatever you did wasn't complete and or incorrect...

so in a tODE shell logged into the `seaside` stone  start by restoring to the pre-update status:

  bu restore preUpdate.dbf.gz
Restore completed with no issues
 

and try bringing up a project list (I have suspect that it will fail, but at least you can get an interactive debugger on it):

  project list
running project list gives me a walkback "no #baseline pragma found"
 

I'm not interested in the stack - but more interested if you don't get a stack:) If you do get a project list to come up I want to see a CMD-SHIFT-P of the project list (color not necessary this time)

Anyway, I do want to see the following method source:

  browse method --spec BaselineRouteEvent>>baseline:
I think you meant BaselineOfRouteEvent ?

BaselineOfRouteEvent has no class or instance methods
This is the root cause of the problem ...
 

If the method doesn't exist that would explain it ... if the method does and I would like to see the project entry ... and I don't have a command that you can run to get it (I will add a flag to the `project entry` command to allow one to edit a project entry without having to open a project list) ... so if you could do the following (one at a time ):

ls /sys/local/server/projects
tode 1 > ls /sys/local/server/projects
README.md  RouteEvent@/
 

ls /sys/stone/projects
tode 1 > ls /sys/stone/projects
README.md
 

and then do a `edit` on the node named RouteEvent in either of those two directories and give me the contents ... if there is no RouteEvent ... we'll need to do something else ...
Here is the contents of the file that does exist

tode 1 > edit /sys/local/server/projects/RouteEvent
 
^ TDProjectSpecEntryDefinition new
    baseline: 'RouteEvent'
      repository: 'filetree://$GS_HOME/shared/repos/RouteEvent/repository'
      loads: #('default');
    status: #(#'active');
    locked: true;
    yourself

If you move the project entry file, the issue will go away (`mv /sys/local/server/projects/RouteEvent /home` in tODE shell)...that way, if your end up wanting to restore the project entry you haven't lost it ...

How do you think that BaselineOfRouteEvent ended up with no methods ... the `project new` command should have created the needed methods in the class ... if you used `project new` ...

If you did use `project new` you may find that the BaselineOfRouteEvent is dirty (there is an initial commit to the repo when you use `project new`.

`mc list Route` ... will give you a list of packages and if BaselineOfRouteEvent is dirty youy might try the `revert` menu item to restore the missing methods ....

Dale

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Early access update: PR #13

GLASS mailing list
Yes the project was created with 'project new' cmd.

"mc list Route" gave me 2 packages:  BaselineOfRouteEvent and RouteEvent-Core.  both prefixed with an * -- which I assume means they were modified

The RouteEvent project is brand new, so there is nothing worth saving in it, so I removed the 2 packages, and removed the BaselineOfRouteEvent class.  I also removed the folder ~/GsDevKit_home/shared/repos/RouteEvent from the server filesystem.  Lastly I removed ~/GsDevKit_home/sys/local/server/projects/RouteEvent.ston

Then when I re-run "project new --class RouteEvent"  it still fails with 'No #baseline pragma found'

So it seems there is some other part of the project hanging around thats causing problems.  What else do I need to remove/delete so all traces of this project are gone?


I did some poking around in the debugger -- it seems the error in question comes AFTER I should be prompted for class information. so something is preventing the class creation dialog from opening.


On Wed, Oct 28, 2015 at 12:44 PM, Dale Henrichs <[hidden email]> wrote:


On 10/28/2015 11:13 AM, Jon Paynter wrote:
On Wed, Oct 28, 2015 at 10:51 AM, Dale Henrichs <[hidden email]> wrote:
Okay, it looks like you've got an invalid/incomplete BaselineOfRouteEvent class and the problem is probably being triggered because you've got a project entry for the RouteEvent project ...

In your original project list listing, I didn't see a RouteEvent project, so you must have doing some work since sending that email ... and whatever you did wasn't complete and or incorrect...

so in a tODE shell logged into the `seaside` stone  start by restoring to the pre-update status:

  bu restore preUpdate.dbf.gz
Restore completed with no issues
 

and try bringing up a project list (I have suspect that it will fail, but at least you can get an interactive debugger on it):

  project list
running project list gives me a walkback "no #baseline pragma found"
 

I'm not interested in the stack - but more interested if you don't get a stack:) If you do get a project list to come up I want to see a CMD-SHIFT-P of the project list (color not necessary this time)

Anyway, I do want to see the following method source:

  browse method --spec BaselineRouteEvent>>baseline:
I think you meant BaselineOfRouteEvent ?

BaselineOfRouteEvent has no class or instance methods
This is the root cause of the problem ...
 

If the method doesn't exist that would explain it ... if the method does and I would like to see the project entry ... and I don't have a command that you can run to get it (I will add a flag to the `project entry` command to allow one to edit a project entry without having to open a project list) ... so if you could do the following (one at a time ):

ls /sys/local/server/projects
tode 1 > ls /sys/local/server/projects
README.md  RouteEvent@/
 

ls /sys/stone/projects
tode 1 > ls /sys/stone/projects
README.md
 

and then do a `edit` on the node named RouteEvent in either of those two directories and give me the contents ... if there is no RouteEvent ... we'll need to do something else ...
Here is the contents of the file that does exist

tode 1 > edit /sys/local/server/projects/RouteEvent
 
^ TDProjectSpecEntryDefinition new
    baseline: 'RouteEvent'
      repository: 'filetree://$GS_HOME/shared/repos/RouteEvent/repository'
      loads: #('default');
    status: #(#'active');
    locked: true;
    yourself

If you move the project entry file, the issue will go away (`mv /sys/local/server/projects/RouteEvent /home` in tODE shell)...that way, if your end up wanting to restore the project entry you haven't lost it ...

How do you think that BaselineOfRouteEvent ended up with no methods ... the `project new` command should have created the needed methods in the class ... if you used `project new` ...

If you did use `project new` you may find that the BaselineOfRouteEvent is dirty (there is an initial commit to the repo when you use `project new`.

`mc list Route` ... will give you a list of packages and if BaselineOfRouteEvent is dirty youy might try the `revert` menu item to restore the missing methods ....

Dale


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Early access update: PR #13

GLASS mailing list


On 10/28/2015 02:30 PM, Jon Paynter wrote:
Yes the project was created with 'project new' cmd.

"mc list Route" gave me 2 packages:  BaselineOfRouteEvent and RouteEvent-Core.  both prefixed with an * -- which I assume means they were modified

The RouteEvent project is brand new, so there is nothing worth saving in it, so I removed the 2 packages, and removed the BaselineOfRouteEvent class.  I also removed the folder ~/GsDevKit_home/shared/repos/RouteEvent from the server filesystem.  Lastly I removed ~/GsDevKit_home/sys/local/server/projects/RouteEvent.ston

Then when I re-run "project new --class RouteEvent"  it still fails with 'No #baseline pragma found'

So it seems there is some other part of the project hanging around thats causing problems.  What else do I need to remove/delete so all traces of this project are gone?


I did some poking around in the debugger -- it seems the error in question comes AFTER I should be prompted for class information. so something is preventing the class creation dialog from opening.


without a stack I can't answer the question.... the questions in my previous email still apply ...

Dale

On Wed, Oct 28, 2015 at 12:44 PM, Dale Henrichs <[hidden email]> wrote:


On 10/28/2015 11:13 AM, Jon Paynter wrote:
On Wed, Oct 28, 2015 at 10:51 AM, Dale Henrichs <[hidden email]> wrote:
Okay, it looks like you've got an invalid/incomplete BaselineOfRouteEvent class and the problem is probably being triggered because you've got a project entry for the RouteEvent project ...

In your original project list listing, I didn't see a RouteEvent project, so you must have doing some work since sending that email ... and whatever you did wasn't complete and or incorrect...

so in a tODE shell logged into the `seaside` stone  start by restoring to the pre-update status:

  bu restore preUpdate.dbf.gz
Restore completed with no issues
 

and try bringing up a project list (I have suspect that it will fail, but at least you can get an interactive debugger on it):

  project list
running project list gives me a walkback "no #baseline pragma found"
 

I'm not interested in the stack - but more interested if you don't get a stack:) If you do get a project list to come up I want to see a CMD-SHIFT-P of the project list (color not necessary this time)

Anyway, I do want to see the following method source:

  browse method --spec BaselineRouteEvent>>baseline:
I think you meant BaselineOfRouteEvent ?

BaselineOfRouteEvent has no class or instance methods
This is the root cause of the problem ...
 

If the method doesn't exist that would explain it ... if the method does and I would like to see the project entry ... and I don't have a command that you can run to get it (I will add a flag to the `project entry` command to allow one to edit a project entry without having to open a project list) ... so if you could do the following (one at a time ):

ls /sys/local/server/projects
tode 1 > ls /sys/local/server/projects
README.md  RouteEvent@/
 

ls /sys/stone/projects
tode 1 > ls /sys/stone/projects
README.md
 

and then do a `edit` on the node named RouteEvent in either of those two directories and give me the contents ... if there is no RouteEvent ... we'll need to do something else ...
Here is the contents of the file that does exist

tode 1 > edit /sys/local/server/projects/RouteEvent
 
^ TDProjectSpecEntryDefinition new
    baseline: 'RouteEvent'
      repository: 'filetree://$GS_HOME/shared/repos/RouteEvent/repository'
      loads: #('default');
    status: #(#'active');
    locked: true;
    yourself

If you move the project entry file, the issue will go away (`mv /sys/local/server/projects/RouteEvent /home` in tODE shell)...that way, if your end up wanting to restore the project entry you haven't lost it ...

How do you think that BaselineOfRouteEvent ended up with no methods ... the `project new` command should have created the needed methods in the class ... if you used `project new` ...

If you did use `project new` you may find that the BaselineOfRouteEvent is dirty (there is an initial commit to the repo when you use `project new`.

`mc list Route` ... will give you a list of packages and if BaselineOfRouteEvent is dirty youy might try the `revert` menu item to restore the missing methods ....

Dale



_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Early access update: PR #13

GLASS mailing list

On Wed, Oct 28, 2015 at 3:15 PM, Dale Henrichs <[hidden email]> wrote:


On 10/28/2015 02:30 PM, Jon Paynter wrote:
Yes the project was created with 'project new' cmd.

"mc list Route" gave me 2 packages:  BaselineOfRouteEvent and RouteEvent-Core.  both prefixed with an * -- which I assume means they were modified

The RouteEvent project is brand new, so there is nothing worth saving in it, so I removed the 2 packages, and removed the BaselineOfRouteEvent class.  I also removed the folder ~/GsDevKit_home/shared/repos/RouteEvent from the server filesystem.  Lastly I removed ~/GsDevKit_home/sys/local/server/projects/RouteEvent.ston

Then when I re-run "project new --class RouteEvent"  it still fails with 'No #baseline pragma found'

So it seems there is some other part of the project hanging around thats causing problems.  What else do I need to remove/delete so all traces of this project are gone?


I did some poking around in the debugger -- it seems the error in question comes AFTER I should be prompted for class information. so something is preventing the class creation dialog from opening.


without a stack I can't answer the question.... the questions in my previous email still apply ...
Here is the stack from "project new --class RouteEvent"

1. UserDefinedError(AbstractException)>>_signalWith: @6 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:withPackageNamed: @2 line 3
13. TDMetacelloTool>>projectNew:projectEntryPath:packageName:gitRootPath:applicationClassCreationBlock: @36 line 23
14. TDMetacelloTool>>projectnew @10 line 48
15. TDMetacelloTool class(TDAbstractDevTool class)>>performSubCommand:objIn:commandOptions:todeCommand: @23 line 22
16. [] in TDMetacelloTool class>>project @2 line 5
17. TDMetacelloTool class(ExecBlock)>>cull:cull:cull:cull: @7 line 4
18. TDTopezServer>>evaluateCommand:objIn: @18 line 22
19. TDTopezServer>>evaluateSTONCommand: @9 line 6
20. Executed Code
21. GsNMethod class>>_gsReturnToC @1 line 1


contents of stack frame 13 (since it seems to do the most)
.                             -> TDMetacelloTool>>projectNew:projectEntryPath:packageName:gitRootPath:applicationClassCreationBlock: @36 line 23
(context)                     -> aGsNMethod
(self)                        -> aTDMetacelloTool
projectName                   -> 'RouteEvent'
projectEntryPath              -> '/sys/local/server/projects/'
packageName                   -> 'RouteEvent-Core'
gitRootPath                   -> '$GS_HOME/shared/repos'
applicationClassCreationBlock -> anExecBlock
registration                  -> nil
wc                            -> * RouteEvent-Core ()
mcTool                        -> aTDMonticelloTool
projectEntry                  -> ^ TDProjectSpecEntryDefinition new baseline: 'RouteEvent' repository: 'filetree://$GS_HOME/shared/repos/RouteEvent/repository' ...
projectRepoPath               -> '$GS_HOME/shared/repos/RouteEvent/repository'
gitTool                       -> aTDGitTool
gitRepoDir                    -> aServerFileDirectory
.t1                           -> aTDMetacelloTool
.t2                           -> 'RouteEvent'
.t3                           -> 'RouteEvent-Core'

 

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Early access update: PR #13

GLASS mailing list
Sorry for taking so long to get back, but I've been buried in getting ready for my presentation next week ....

The stack you have supplied is indeed the stack that I would expect if a BaselineOf was "corrupted" --- i.e. a missing method ...

Now the real problem occurred before this point .... so I will ask my original set of questions again:

How do you think that BaselineOfRouteEvent ended up with no methods ... the `project new` command should have created the needed methods in the class ... if you used `project new` ...

If you did use `project new` you may find that the BaselineOfRouteEvent is dirty (there is an initial commit to the repo when you use `project new`.

Either an error occurred earlier, or you had already started creating a BaselineOfRouteEvent, or ????

In the future when you get an error doing something with tODE, I really need to see that first stack ... I understand that your instincts as a developer say that you might have done something wrong or that it will work if you try again, but in this case (and very likely future cases) the stack from the original error will be critical to have ...

So the best thing moving forward would be copy the stack and put it somewhere in case it is needed to diagnose the problem ...

I know that tODE isn't perfect and I appreciate your efforts to help work out some of these issues...

Dale

On 10/28/2015 04:07 PM, Jon Paynter wrote:

On Wed, Oct 28, 2015 at 3:15 PM, Dale Henrichs <[hidden email]> wrote:


On 10/28/2015 02:30 PM, Jon Paynter wrote:
Yes the project was created with 'project new' cmd.

"mc list Route" gave me 2 packages:  BaselineOfRouteEvent and RouteEvent-Core.  both prefixed with an * -- which I assume means they were modified

The RouteEvent project is brand new, so there is nothing worth saving in it, so I removed the 2 packages, and removed the BaselineOfRouteEvent class.  I also removed the folder ~/GsDevKit_home/shared/repos/RouteEvent from the server filesystem.  Lastly I removed ~/GsDevKit_home/sys/local/server/projects/RouteEvent.ston

Then when I re-run "project new --class RouteEvent"  it still fails with 'No #baseline pragma found'

So it seems there is some other part of the project hanging around thats causing problems.  What else do I need to remove/delete so all traces of this project are gone?


I did some poking around in the debugger -- it seems the error in question comes AFTER I should be prompted for class information. so something is preventing the class creation dialog from opening.


without a stack I can't answer the question.... the questions in my previous email still apply ...
Here is the stack from "project new --class RouteEvent"

1. UserDefinedError(AbstractException)>>_signalWith: @6 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:withPackageNamed: @2 line 3
13. TDMetacelloTool>>projectNew:projectEntryPath:packageName:gitRootPath:applicationClassCreationBlock: @36 line 23
14. TDMetacelloTool>>projectnew @10 line 48
15. TDMetacelloTool class(TDAbstractDevTool class)>>performSubCommand:objIn:commandOptions:todeCommand: @23 line 22
16. [] in TDMetacelloTool class>>project @2 line 5
17. TDMetacelloTool class(ExecBlock)>>cull:cull:cull:cull: @7 line 4
18. TDTopezServer>>evaluateCommand:objIn: @18 line 22
19. TDTopezServer>>evaluateSTONCommand: @9 line 6
20. Executed Code
21. GsNMethod class>>_gsReturnToC @1 line 1


contents of stack frame 13 (since it seems to do the most)
.                             -> TDMetacelloTool>>projectNew:projectEntryPath:packageName:gitRootPath:applicationClassCreationBlock: @36 line 23
(context)                     -> aGsNMethod
(self)                        -> aTDMetacelloTool
projectName                   -> 'RouteEvent'
projectEntryPath              -> '/sys/local/server/projects/'
packageName                   -> 'RouteEvent-Core'
gitRootPath                   -> '$GS_HOME/shared/repos'
applicationClassCreationBlock -> anExecBlock
registration                  -> nil
wc                            -> * RouteEvent-Core ()
mcTool                        -> aTDMonticelloTool
projectEntry                  -> ^ TDProjectSpecEntryDefinition new baseline: 'RouteEvent' repository: 'filetree://$GS_HOME/shared/repos/RouteEvent/repository' ...
projectRepoPath               -> '$GS_HOME/shared/repos/RouteEvent/repository'
gitTool                       -> aTDGitTool
gitRepoDir                    -> aServerFileDirectory
.t1                           -> aTDMetacelloTool
.t2                           -> 'RouteEvent'
.t3                           -> 'RouteEvent-Core'

 


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Early access update: PR #13

GLASS mailing list

On Wed, Nov 4, 2015 at 9:48 AM, Dale Henrichs <[hidden email]> wrote:
Sorry for taking so long to get back, but I've been buried in getting ready for my presentation next week ....

No worries.  I was dealing with gemstone issues I DO understand - out of tranlog space, shadow pages and GC.
 
The stack you have supplied is indeed the stack that I would expect if a BaselineOf was "corrupted" --- i.e. a missing method ...

Now the real problem occurred before this point .... so I will ask my original set of questions again:

How do you think that BaselineOfRouteEvent ended up with no methods ... the `project new` command should have created the needed methods in the class ... if you used `project new` ...
My suspicion is one or more of the source methods are missing or out of date due to me fat fingering something when running an update.  What is your reccomendation on getting updates to GsDevKit_home?  pull daily? or wait for you to post something on the list?
 

If you did use `project new` you may find that the BaselineOfRouteEvent is dirty (there is an initial commit to the repo when you use `project new`.

Either an error occurred earlier, or you had already started creating a BaselineOfRouteEvent, or ????
Actually I did... sortof .. Before the 'project new' cmd was released I took your sample project made a copy on my server filesystem and renamed everything trying to get a minimal working project.  And yes it was called 'RouteEent'
I was not able to get it working before you released the 'project new' cmd.   But ive since removed my sample copy from the server file system and removed the BaselineOfRotueEvent class.  But I suspect there were packages created when I attempted to load my modified sample which I did not know to remove, and they confused the project creation process.
 

In the future when you get an error doing something with tODE, I really need to see that first stack ... I understand that your instincts as a developer say that you might have done something wrong or that it will work if you try again, but in this case (and very likely future cases) the stack from the original error will be critical to have ...

So the best thing moving forward would be copy the stack and put it somewhere in case it is needed to diagnose the problem ...

I know that tODE isn't perfect and I appreciate your efforts to help work out some of these issues...
Such is life with early access software.  Aside from the project issues, it works nicely.

I let the "project new" issues sit and ive been working on some coding and dataloading for my little project.  but as of today when I run "project list"  I get a new walkback:
 aTDDebugger
--------------------
1. STONReaderError(AbstractException)>>_signalWith: @5 line 25
2. STONReaderError(AbstractException)>>signal: @3 line 7
3. STONReaderError class>>signal:streamPosition: @4 line 4
4. STON091Reader(STONReader)>>error: @4 line 6
5. [] in STON091Reader(STONReader)>>lookupClass: @4 line 10
6. Array(SequenceableCollection)>>detect:ifNone: @11 line 10
7. [] in STON091Reader(STONReader)>>lookupClass: @3 line 9
8. IdentityDictionary(AbstractDictionary)>>at:ifAbsentPut: @7 line 14
9. STON091Reader(STONReader)>>lookupClass: @4 line 6
10. STON091Reader(STONReader)>>parseClass @6 line 7
11. STON091Reader(STONReader)>>parseObject @2 line 3
12. STON091Reader(STONReader)>>parseValue @8 line 5
13. STON091Reader(STONReader)>>next @3 line 4
14. TodeSTON091Serializer(TodeObjectSerializer)>>fromString: @5 line 4
15. TodeSTON091Serializer>>fromString: @3 line 2
16. TDFileSystemLeafNode>>asTDLeafNode @4 line 2
17. TDFileSystemLeafNode class>>fileSystemLeafNodeProxy: @3 line 3
18. TDFileSystemLeafNode class>>fileSystemProxy: @2 line 4
19. TDFileSystemLeafNode class>>directoryEntry: @12 line 8
20. DirectoryEntry>>asTDFileSystemNode @5 line 6
21. [] in TDFileSystemDirectoryNode>>childrenDo: @2 line 4
22. Array(SequenceableCollection)>>collect: @9 line 16
23. TDFileSystemDirectoryNode>>childrenDo: @4 line 3
24. TDPathComposedDirectoryEntry>>childrenDo: @3 line 3
25. [] in ExecBlock1(TDPathComposedProjectEntryNodeContents)>>childMapForComposition: @2 line 7
26. OrderedCollection(Collection)>>do: @5 line 10
27. TDPathComposedProjectEntryNodeContents>>childMapForComposition: @6 line 5
28. TDPathComposedProjectEntryNodeContents(TDPathComposedDirectoryNodeContents)>>composedChildrenDo: @2 line 3
29. TDComposedProjectEntryNode(TDComposedDirectoryNode)>>composedChildrenDo: @3 line 3
30. TDRawGatewayNode(TDGatewayNode)>>composedChildrenDo: @3 line 2
31. TDFileSystemLeafNode>>composedChildrenDo: @7 line 3
32. TDProxyLeafNode>>composedChildrenDo: @3 line 3
33. TDObjectGatewayNode(TDGatewayNode)>>composedChildrenDo: @3 line 2
34. TDMetacelloTool>>scanProjectDir:forProjects: @2 line 3
35. TDMetacelloTool>>scanForProjects: @5 line 3
36. TDMetacelloTool>>projectRegistrationDefinitionMap @9 line 8
37. TDMetacelloTool>>projectRegistrationDefinitionList @2 line 3
38. [] in TDMetacelloTool>>projectlist @2 line 13
39. TDMetacelloProjectBrowser>>clientList:listElement: @3 line 4
40. [] in TDMetacelloProjectBrowser(TDAbstractToolBuilder)>>clientListBlock @2 line 2
41. TDMiniToolSpec>>clientList:listElement: @4 line 3
42. TDMiniToolClientListElementBuilder>>clientList: @3 line 2
43. TDMiniToolClientListElementBuilder(TDClientListElementBuilder)>>firstList: @2 line 2
44. TDMiniToolClientListElementBuilder(TDClientListElementBuilder)>>buildClientElementUsing:editorAspect: @19 line 15
45. [] in ExecBlock2(TDTopezServer)>>clientElementFor:using: @4 line 9
46. [] in TDTopezServer>>editorNodeFor:aspect:do: @8 line 9
47. [] in ExecBlock1(TDTopezServer)>>editorNodeClassNameFor:aspect:do: @5 line 10
48. TDTopezServer>>lookupClassNameFor:aspect:defaultAspect:in:do: @24 line 28
49. TDTopezServer>>editorNodeClassNameFor:aspect:do: @5 line 3
50. TDTopezServer>>editorNodeFor:aspect:do: @2 line 3
51. TDTopezServer>>clientElementFor:using: @3 line 4
52. TDTopezServer>>edit:using: @2 line 3
53. TDMetacelloProjectBrowser(Object)>>editUsing: @4 line 3
54. TDMetacelloProjectBrowser(TDAbstractToolBuilder)>>open @3 line 2
55. [] in TDMetacelloTool>>projectlist @8 line 35
56. Dictionary(AbstractDictionary)>>at:ifPresent:ifAbsent: @3 line 5
57. TDMetacelloTool>>projectlist @4 line 27
58. TDMetacelloTool class(TDAbstractDevTool class)>>performSubCommand:objIn:commandOptions:todeCommand: @23 line 22
59. [] in TDMetacelloTool class>>project @2 line 5
60. TDMetacelloTool class(ExecBlock)>>cull:cull:cull:cull: @7 line 4
61. TDTopezServer>>evaluateCommand:objIn: @18 line 22
62. TDTopezServer>>evaluateSTONCommand: @9 line 6
63. Executed Code
64. GsNMethod class>>_gsReturnToC @1 line 1

Attempting to click on any stack frame with 'TDFileSystemLeaveNode' in its description re-raises the same error.

At this point it looks to me like some lower level class has been messed up somehow.  If I were working on a local Smalltalk image, at this point I file-out/Save my code, throw away the image and create a new one. 
If you think it will be useful to you to continue debugging this then lets proceed.  Otherwise I will save my code, remove the GsDevKit folder and re-run the installer.

Let me know how you want to proceed

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Early access update: PR #13

GLASS mailing list


On 11/04/2015 10:34 AM, Jon Paynter wrote:

On Wed, Nov 4, 2015 at 9:48 AM, Dale Henrichs <[hidden email]> wrote:
Sorry for taking so long to get back, but I've been buried in getting ready for my presentation next week ....

No worries.  I was dealing with gemstone issues I DO understand - out of tranlog space, shadow pages and GC.
oh good ... I figured that I would get a ping for critical problems ...
 
The stack you have supplied is indeed the stack that I would expect if a BaselineOf was "corrupted" --- i.e. a missing method ...

Now the real problem occurred before this point .... so I will ask my original set of questions again:

How do you think that BaselineOfRouteEvent ended up with no methods ... the `project new` command should have created the needed methods in the class ... if you used `project new` ...
My suspicion is one or more of the source methods are missing or out of date due to me fat fingering something when running an update.  What is your reccomendation on getting updates to GsDevKit_home?  pull daily? or wait for you to post something on the list?
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 ...

 

If you did use `project new` you may find that the BaselineOfRouteEvent is dirty (there is an initial commit to the repo when you use `project new`.

Either an error occurred earlier, or you had already started creating a BaselineOfRouteEvent, or ????
Actually I did... sortof .. Before the 'project new' cmd was released I took your sample project made a copy on my server filesystem and renamed everything trying to get a minimal working project.  And yes it was called 'RouteEent'
I was not able to get it working before you released the 'project new' cmd.   But ive since removed my sample copy from the server file system and removed the BaselineOfRotueEvent class.  But I suspect there were packages created when I attempted to load my modified sample which I did not know to remove, and they confused the project creation process.
Ah that makes perfect sense ... you can delete and unload packages using the `mc` command:

  mc delete <package-name>
  mc unload <package-name>

`mc delete` removes the package but leaves any classes and methods in the image.
`mc unload` removes the package and removes the classes and methods from the image..

In your case you want to use `mc unload`.

`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) ...
 

In the future when you get an error doing something with tODE, I really need to see that first stack ... I understand that your instincts as a developer say that you might have done something wrong or that it will work if you try again, but in this case (and very likely future cases) the stack from the original error will be critical to have ...

So the best thing moving forward would be copy the stack and put it somewhere in case it is needed to diagnose the problem ...

I know that tODE isn't perfect and I appreciate your efforts to help work out some of these issues...
Such is life with early access software.  Aside from the project issues, it works nicely.

I let the "project new" issues sit and ive been working on some coding and dataloading for my little project.  but as of today when I run "project list"  I get a new walkback:

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>

and it should fix the problem ... if this doesn't run smoothly I'd like to know --- I'm trying out this patching process that is needed form time to time, when the normal process won't work and in this case, the project entry ston files were changed out from under tODE ... moving forward I don't anticipate making this sort of change, but given that I've only got a few EA users, I thought it was worth making the change now rather than later ....

[1] https://github.com/GsDevKit/GsDevKit_home/pull/15
 aTDDebugger
--------------------
1. STONReaderError(AbstractException)>>_signalWith: @5 line 25
2. STONReaderError(AbstractException)>>signal: @3 line 7
3. STONReaderError class>>signal:streamPosition: @4 line 4
4. STON091Reader(STONReader)>>error: @4 line 6
5. [] in STON091Reader(STONReader)>>lookupClass: @4 line 10
6. Array(SequenceableCollection)>>detect:ifNone: @11 line 10
7. [] in STON091Reader(STONReader)>>lookupClass: @3 line 9
8. IdentityDictionary(AbstractDictionary)>>at:ifAbsentPut: @7 line 14
9. STON091Reader(STONReader)>>lookupClass: @4 line 6
10. STON091Reader(STONReader)>>parseClass @6 line 7
11. STON091Reader(STONReader)>>parseObject @2 line 3
12. STON091Reader(STONReader)>>parseValue @8 line 5
13. STON091Reader(STONReader)>>next @3 line 4\
... snip
61. TDTopezServer>>evaluateCommand:objIn: @18 line 22
62. TDTopezServer>>evaluateSTONCommand: @9 line 6
63. Executed Code
64. GsNMethod class>>_gsReturnToC @1 line 1

Attempting to click on any stack frame with 'TDFileSystemLeaveNode' in its description re-raises the same error.

At this point it looks to me like some lower level class has been messed up somehow.  If I were working on a local Smalltalk image, at this point I file-out/Save my code, throw away the image and create a new one. 
If you think it will be useful to you to continue debugging this then lets proceed.  Otherwise I will save my code, remove the GsDevKit folder and re-run the installer.

Let me know how you want to proceed

yeah in this case, running the following bash script should fix the problem:

  $GS_HOME/bin/patches/patchIssue15 <stone-name>

Thanks again,

Dale

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Early access update: PR #13

GLASS mailing list

On Wed, Nov 4, 2015 at 12:53 PM, Dale Henrichs <[hidden email]> 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.
 
 `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.

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:
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.

So I suspect my stone is missing parts of the PR#13 update

Also of note - when I refresh my project list the new project shows up.  but after I click on the project, the project list, anything else I do gives the same walkback message:   "a UserDefinedError occurred (error 2318), reason:halt, No #baseline pragma found"

Closing and re-opening the project list also gives the same error
So I removed the BaselineOfRouteEvent class, and unloaded the 2 packages, and the project list works again, but the RouteEvent project is still listed -- I expected it to be gone.  If I right-click on the RouteEvent project and pick project->unregister.  it doesnt appear to do anything.

So I remove $GS_HOME/shared/repos/RouteEvent and $GS_HOME/sys/local/server/projects/RouteEvent.ston from the server, and the project is finally gone

next, I tried creating a new project with a different name: 
    project new --class RouteEvent1

and I get the same walkback as above

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Early access update: PR #13

GLASS mailing list


On 11/04/2015 01:49 PM, Jon Paynter wrote:

On Wed, Nov 4, 2015 at 12:53 PM, Dale Henrichs <[hidden email]> 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"?
 
 `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
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 ,,,

So I suspect my stone is missing parts of the PR#13 update

No I don't think this is the problem

Also of note - when I refresh my project list the new project shows up.  but after I click on the project, the project list, anything else I do gives the same walkback message:   "a UserDefinedError occurred (error 2318), reason:halt, No #baseline pragma found"
Yeah you have to get rid of the bogus BaselineOfRouteEvent class ... and I have to bullet proof the project list from this situation as well ... this is exactly the type of error conditions that I was hopgin to find early on ... thanks for sticking with this and providing detailed information!

Closing and re-opening the project list also gives the same error
So I removed the BaselineOfRouteEvent class, and unloaded the 2 packages, and the project list works again, but the RouteEvent project is still listed -- I expected it to be gone.  If I right-click on the RouteEvent project and pick project->unregister.  it doesnt appear to do anything.

So I remove $GS_HOME/shared/repos/RouteEvent and $GS_HOME/sys/local/server/projects/RouteEvent.ston from the server, and the project is finally gone
Yep this is the other artifact created during `project new`

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?

Dale

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Early access update: PR #13

GLASS mailing list


On Wed, Nov 4, 2015 at 2:25 PM, Dale Henrichs <[hidden email]> wrote:


On 11/04/2015 01:49 PM, Jon Paynter wrote:

On Wed, Nov 4, 2015 at 12:53 PM, Dale Henrichs <[hidden email]> 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

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Early access update: PR #13

GLASS mailing list
At this point I think that you've given me enough information to chew on .... I'll let you know if I need more info ... thanks!

Dale

On 11/04/2015 03:24 PM, Jon Paynter wrote:


On Wed, Nov 4, 2015 at 2:25 PM, Dale Henrichs <[hidden email]> wrote:


On 11/04/2015 01:49 PM, Jon Paynter wrote:

On Wed, Nov 4, 2015 at 12:53 PM, Dale Henrichs <[hidden email]> 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


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Early access update: PR #13

GLASS mailing list
Jon,

I would like you to check the source in
MetacelloToolBox>>baselineNamed:. It should look like the following:

baselineNamed: baseName
   | baselineName |
   "Check if the class does not exist"
   baselineName := self baselineNameFrom: baseName.
   (Smalltalk includesKey: baselineName asSymbol)
     ifFalse: [
       "Create the configuration class"
       self ensureMetacello.
       BaselineOf
         subclass: baselineName asSymbol
         instanceVariableNames: ''
         classVariableNames: ''
         poolDictionaries: ''
         category: baselineName.
       MetacelloPlatform current registerPackageNamed: baselineName.
       (MetacelloPlatform current globalNamed: baselineName asSymbol)
         compile: 'baseline: spec <baseline>'
         classified: 'baseline'    "a bit of a hack here to create an
initial null basline method" ].
   project := (MetacelloPlatform current globalNamed: baselineName asSymbol)
     project

Note the #compile:classified: method when the class is being created ...
if you don't have that code in you image, then you haven't updated to
the latest version of Metacello:

   updateGsDevKit -s

and then in the tODE shell of your stone:

   project load Tode

which should refresh tODE as well as the Metacello and GLASS1 (see the
"Update Script for Client/Server and Server" section of the EA #15[1]).

If you have that code, then it's back to the drawing board ... BTW I'm
bullet-proofing the `project new` command and adding a --force option
that should do some self cleaning in the event of errors ...

Dale


[1] https://github.com/GsDevKit/GsDevKit_home/pull/15

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
12