[Glass] GsDevkit gsUpgrader using local clones

Dale Henrichs dale.henrichs at gemtalksystems.com
Fri Feb 25 10:44:25 PST 2022


>
> Is there a way to prevent hitting GitHub for that package?
>
Unfortunately I don't think so, at least not easily ...  as I mention in
the project README[1], the goal is to transition from Monticello-based
repositories to Github-based repositories and IIRC (this work was done 6
years ago) it is a bit tricky to update Metacello across this boundary
which is what MetacelloPreview does ... this code has held up for 6 years
now and I'm reluctant to fiddle with it since it is currently used in a
number of different places and testing / replacing all of those places
would be very difficult.

I know you've heard this before, but I have been focusing on Rowan as the
long term solution to this problem and for a number of reasons Rowan is not
quite ready for general use ... However, we are planning on making an alpha
release of Rowan v2.3.0 in 3.6.4, with the inclusion of an
extent0.rowan.dbf in $GEMSTONE/bin that has Rowan installed. The core
functionality of Rowan is solid and has been in constant use internally for
several years. The main drawbacks at this point in time are that:

   - The top level API in Rowan v2.3.0 is not as clean as it should be ...
   some required functionality requires non-intuitive machinations and I'm
   working Rowan v3.0.0 to clean up the top level API.
   - The current Rowan IDE is Windows only.
   - The current Rowan IDE is lacking support for creating new projects
   and  packages. In the alpha release we're making superDoit[2] scripts
   available to fill in the major missing pieces of functionality. The IDE for
   Rowan v3.0.0 (which we are also working on) will have full support for
   Rowan.
   - Rowan v2.3.0 and Monticello/Metacello do not play well together in the
   same image

We have a few customers who have been using Rowan for their internal
development (despite the drawbacks) and with the alpha release we will
support upgrading Rowan images so that they can move forward with GemStone
bugfixes and eventually update to Rowan V3.0.0 when it is released.

The root cause of the Monticello/Metacello update "problem" is that
currently GemStone only has a Monticello package reader as the starting
point for bootstrapping filetree and Metacello into an image, but with
Rowan and superDoit scripts available (superDoit scripts can be used with
3.4.x and later stones) it should be possible to create a superDoit .stone
script that would use a combination of Rowan and .gs files to dynamically
bootstrap GLASS1 (filetree, Monticello, Metacello, Grease, etc.) from
GitHub into a 3.4.x and beyond extent0.dbf.

To be clear this approach would make it possible to bootstrap GLASS1 from
the GitHub repositories into an extent0.dbf and completely bypass the use
of extent0.seaside.dbf, GemSource[4], SqueakSurce3[5] and eliminate the
need to use gsUpgrader altogether...

Rowan has the ability to clone projects from Github (something lacking in
Metacello) ... so this script could work in a GsDevKit_home[3] environment
(where there is a well known location for github clones) or a "naked"
GemStone installation with a user-specified github clone location ...

This is something that I've been planning as part of the Rowan v3.0.0
release , but there is really no reason not get started on this sooner
rather than later ...

Other than development man hours and priorities ...

Right now the annoyance caused by "hitting GitHub for that package" may not
be worth the effort to tackle the problem "sooner rather than later".

If there are folks that are annoyed enough to put effort into this project,
then I would be certainly willing to provide help and support getting the
job done "sooner rather than later", but if left to my own devices this
project would not be at the top of my todo list ...

Questions, comments?

Dale

[1] https://github.com/GsDevKit/gsUpgrader#gsupgrader-
[2] https://github.com/dalehenrich/superDoit/tree/v2.2.0#superdoit
[3]
https://github.com/GsDevKit/GsDevKit_home#open-source-development-kit-for-gemstones-64-bit-
[4] http://seaside.gemtalksystems.com/ss
[5] http://ss3.gemtalksystems.com/
[6]
https://github.com/GsDevKit/GsDevKit_upgrade#upgrading-glassgsdevkit-applications-to-gemstone-350

On Fri, Feb 25, 2022 at 5:56 AM Johan Brichau via Glass <
glass at lists.gemtalksystems.com> wrote:

> Perhaps a more general question to this is: it’s easy to load a BaselineOf
> from a local clone but what about the references in that BaselineOf to
> other projects?
> Is the only solution to load and lock those projects *before* by loading
> from your own clones?
>
> Johan
>
> On 25 Feb 2022, at 13:48, Johan Brichau <johan at yesplan.be> wrote:
>
> Hi,
>
> I am using gsUpgrader https://github.com/GsDevKit/gsUpgrader to load
> GLASS1 both in virgin Gemstone 3.4.5 extents and right before application
> load for upgrades.
>
> I want to change the loading to using local cloned repositories for the
> upgrades, which I got largely done by subclassing GsUpgrader and changing
> the repository descriptions for glass, grease and metacello to local
> filetree clones.
> However, the execution of ‘upgradeGLASS’ still hits GitHub for the
> repository github://dalehenrich/filetree:gemstone2.4/repository during
> the load of MetacelloPreview. See load for `upgradeGLASS` using local
> clones below.
>
> I tried adding a local clone for that GitHub repository as well and load
> and lock the BaselineOfFileTree right before the loading of
> MetacelloPreview, but that just leads to a metacello load conflict further
> on.
>
> Is there a way to prevent hitting GitHub for that package?
>
>
> —— load excerpt below:
>
> (Smalltalk at: #GsUpgraderForYesplan28) upgradeGLASSForYesplan28.
> %
> --transcript--'======================'
> --transcript--'=====Installing patchForGsDevKitIssue60: HTTPSocket'
> --transcript--'======================'
> --transcript--'=====Installing patchForGsDevKitIssue60: MCPlatformSupport
> class'
> --transcript--'======================'
> --transcript--'=====Detected version >=1.0-beta.9.2.2
> [ConfigurationOfGLASS] of GLASS'
> --transcript--'======================'
> --transcript--'=====Upgrading GLASS to 1.0-beta.9.3'
> --transcript--'======================'
> --transcript--'=====Using repositoryOverride:
> aMCDirectoryRepository(/home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache)'
> --transcript--'Loading 1.0-beta.32.3 of ConfigurationOfMetacello...'
> --transcript--'Project: FileTree stable'
> --transcript--' [1.0.6.1]'
> --transcript--'Project: Monticello 0.243'
> --transcript--' [0.244.3]'
> --transcript--'Fetched -> MonticelloFileTree-Core.gemstone24-dkh.164 ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache'
> --transcript--'Project: GsMonticello 0.244.2'
> --transcript--'Project: Gofer stable'
> --transcript--' [1.0.5.1]'
> --transcript--'Fetched -> Metacello-Base-dkh.109 ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache'
> --transcript--'Fetched -> Metacello-Core-dkh.695 ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache'
> --transcript--'Fetched -> Metacello-MC-dkh.680 ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache'
> --transcript--'Fetched -> Metacello-Platform.gemstone-dkh.33 ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache'
> --transcript--'Fetched -> Metacello-ToolBox-dkh.134 ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache'
> --transcript--'Project: GsCore 0.247'
> --transcript--' [0.250]'
> --transcript--'Fetched -> Metacello-GitHub-dkh.29 ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache'
> --transcript--'Loaded -> MonticelloFileTree-Core.gemstone24-dkh.164 ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache ---
> cache'
> --transcript--'Loaded -> Metacello-Base-dkh.109 ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache ---
> cache'
> --transcript--'Loaded -> Metacello-Core-dkh.695 ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache ---
> cache'
> --transcript--'Evaluated -> Metacello-MC >> gemstone10beta24PreLoadDoIt'
> --transcript--'Loaded -> Metacello-MC-dkh.680 ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache ---
> cache'
> --transcript--'Warning: This package depends on the following classes:
>   ExecutableBlock
> You must resolve these dependencies before you will be able to load these
> definitions:
>   ExecutableBlock>>valueSupplyingMetacelloAnswers:
> '
> --transcript--'Loaded -> Metacello-Platform.gemstone-dkh.33 ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache ---
> cache'
> --transcript--'Evaluated -> Metacello-Platform >>
> gemstone10beta311PostLoadDoIt'
> --transcript--'Loaded -> Metacello-ToolBox-dkh.134 ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache ---
> cache'
> --transcript--'Loaded -> Metacello-GitHub-dkh.29 ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache ---
> cache'
> --transcript--'Evaluated -> 1.0-beta.32.3 [ConfigurationOfMetacello] >>
> metacelloPrimeRegistry'
> --transcript--'...finished 1.0-beta.32.3'
> --transcript--'======================'
> --transcript--'=====Upgrading Gofer to #stable'
> --transcript--'Loading 1.0.5.4 of ConfigurationOfGofer...'
> --transcript--'Fetched -> Gofer-Core.gemstone-dkh.138 ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache'
> --transcript--'Starting atomic load'
> --transcript--'Loaded -> Gofer-Core.gemstone-dkh.138 ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache ---
> cache'
> --transcript--'Finished atomic load'
> --transcript--'...finished 1.0.5.4'
> --transcript--'Loading 1.0-beta.9.3 of ConfigurationOfGLASS...'
> --transcript--'Fetched -> ConfigurationOfGsOB-dkh.96 ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache'
> --transcript--'Loaded -> ConfigurationOfGsOB-dkh.96 ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache ---
> cache'
> --transcript--'Fetched -> ConfigurationOfGoferProjectLoader-dkh.22 ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache'
> --transcript--'Loaded -> ConfigurationOfGoferProjectLoader-dkh.22 ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache ---
> cache'
> --transcript--'Project: Gofer 1.0.5.3'
> --transcript--' [1.0.5.4]'
> --transcript--'Project: Core 0.249'
> --transcript--' [0.250]'
> --transcript--'Project: Monticello 0.244.3'
> --transcript--'Project: Metacello previewBootstrap'
> --transcript--' [1.0-beta.32.3]'
> --transcript--'Project: FileTree stable'
> --transcript--' [1.0.6.1]'
> --transcript--'Project: Monticello 0.243'
> --transcript--'Project: GsMonticello 0.244.2'
> --transcript--'Project: Gofer stable'
> --transcript--' [1.0.5.4]'
> --transcript--'Project: Gofer Project Loader 1.0-alpha2.2'
> --transcript--'Project: Gofer Core 1.0.2.1'
> --transcript--'Project: OB 0.242.2'
> --transcript--'Fetched -> ConfigurationOfGsMisc-dkh.120 ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache'
> --transcript--'Loaded -> ConfigurationOfGsMisc-dkh.120 ---
> /home/yesplan/gsUpgrader/caches/upgradeGLASS/monticello//package-cache ---
> cache'
> --transcript--'Project: Announcements 0.240.1'
> --transcript--' [0.243]'
> --transcript--'Project: Change-Notification 0.241'
> --transcript--'Project: Monticello 0.243'
> --transcript--'Project: Release Support 0.243'
> --transcript--'Project: Grease 1.0.7.2'
> --transcript--'Project: System-Digital-Signatures 0.241.1'
> --transcript--'Project: SMTPMail 0.241.1'
> --transcript--'Project: UTF8 0.241.1'
> --transcript--'Project: SqueakCommon 0.9.4'
> --transcript--'Project: Grease 1.0.7.1'
> --transcript--'Evaluated -> 1.0-beta.32.3 [ConfigurationOfMetacello] >>
> metacelloPrimeRegistry'
> --transcript--'Evaluated -> 1.0-alpha2.2
> [ConfigurationOfGoferProjectLoader] >> postLoadLoader'
> --transcript--'...finished 1.0-beta.9.3'
> --transcript--'Fetched -> BaselineOfMetacello-dkh.85 ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository
> ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository'
> --transcript--'Loaded -> BaselineOfMetacello-dkh.85 ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository
> ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository'
> --transcript--'Loading baseline of BaselineOfMetacello...'
> --transcript--'Fetched -> BaselineOfFileTree-dkh.4 ---
> github://dalehenrich/filetree:gemstone2.4/repository ---
> github://dalehenrich/filetree:gemstone2.4/repository'
> --transcript--'Loaded -> BaselineOfFileTree-dkh.4 ---
> github://dalehenrich/filetree:gemstone2.4/repository ---
> github://dalehenrich/filetree:gemstone2.4/repository'
> --transcript--'Project: FileTree baseline'
> --transcript--'Fetched -> MonticelloFileTree-Core-dkh.204 ---
> github://dalehenrich/filetree:gemstone2.4/repository ---
> github://dalehenrich/filetree:gemstone2.4/repository'
> --transcript--'Fetched ->
> MonticelloFileTree-FileDirectory-Utilities-dkh.15 ---
> github://dalehenrich/filetree:gemstone2.4/repository ---
> github://dalehenrich/filetree:gemstone2.4/repository'
> --transcript--'Project: Gofer stable'
> --transcript--' [1.0.5.4]'
> --transcript--'Fetched -> Metacello-Base-dkh.123 ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository
> ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository'
> --transcript--'Fetched -> Metacello-Core-dkh.807 ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository
> ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository'
> --transcript--'Fetched -> Metacello-MC-dkh.722 ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository
> ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository'
> --transcript--'Fetched -> Metacello-Platform.gemstone-dkh.56 ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository
> ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository'
> --transcript--'Fetched -> Metacello-GS3x-Platform-dkh.1 ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository
> ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository'
> --transcript--'Fetched -> Metacello-ToolBox-dkh.139 ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository
> ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository'
> --transcript--'Fetched -> Metacello-FileTree-dkh.36 ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository
> ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository'
> --transcript--'Fetched -> Metacello-GitBasedRepository-dkh.13 ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository
> ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository'
> --transcript--'Fetched -> Metacello-Bitbucket-dkh.5 ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository
> ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository'
> --transcript--'Fetched -> Metacello-GitHub-dkh.44 ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository
> ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository'
> --transcript--'Loaded -> MonticelloFileTree-Core-dkh.204 ---
> github://dalehenrich/filetree:gemstone2.4/repository --- cache'
> --transcript--'Loaded -> MonticelloFileTree-FileDirectory-Utilities-dkh.15
> --- github://dalehenrich/filetree:gemstone2.4/repository --- cache'
> --transcript--'Loaded -> Metacello-Base-dkh.123 ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository
> --- cache'
> --transcript--'Loaded -> Metacello-Core-dkh.807 ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository
> --- cache'
> --transcript--'Loaded -> Metacello-MC-dkh.722 ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository
> --- cache'
> --transcript--'Loaded -> Metacello-Platform.gemstone-dkh.56 ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository
> --- cache'
> --transcript--'Evaluated -> Metacello-Platform >>
> gemstone10beta311PostLoadDoIt'
> --transcript--'Loaded -> Metacello-GS3x-Platform-dkh.1 ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository
> --- cache'
> --transcript--'Loaded -> Metacello-ToolBox-dkh.139 ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository
> --- cache'
> --transcript--'Loaded -> Metacello-FileTree-dkh.36 ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository
> [4174d12:yesplan] --- cache'
> --transcript--'Loaded -> Metacello-GitBasedRepository-dkh.13 ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository
> [4174d12:yesplan] --- cache'
> --transcript--'Loaded -> Metacello-Bitbucket-dkh.5 ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository
> [4174d12:yesplan] --- cache'
> --transcript--'Loaded -> Metacello-GitHub-dkh.44 ---
> filetree:///home/yesplan/gsUpgrader/caches/upgradeGLASS/metacelloPreview/metacello-work-1.0.0-beta.32.18/repository
> [4174d12:yesplan] --- cache'
> --transcript--'priming registry from image. See
> https://github.com/dalehenrich/metacello-work/issues/197'
> --transcript--'Evaluated -> baseline [BaselineOfMetacello] >>
> reprimeRegistryIssue197'
> --transcript--'...finished baseline'
> --transcript--'Migrated 0 instances for 10 classes.'
> [53688065 sz:19 cls: 53687809 GsUpgraderForYesplan28 class]
> GsUpgraderForYesplan28
>
>
> _______________________________________________
> Glass mailing list
> Glass at lists.gemtalksystems.com
> https://lists.gemtalksystems.com/mailman/listinfo/glass
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/archives/glass/attachments/20220225/279fd2a6/attachment-0001.htm>


More information about the Glass mailing list