[squeak-dev] Getting from GitBrowser to the System Browser

gettimothy gettimothy at zoho.com
Sun Oct 4 15:02:54 UTC 2020


Ok, spun up a fresh 5.3 and ran the steps as below on the 6 alpha.



Same error.



I will hit it again next weekend when I have a functioning brain.



Thanks for all your help. much appreciated.







---- On Sun, 04 Oct 2020 10:31:16 -0400 gettimothy via Squeak-dev <squeak-dev at lists.squeakfoundation.org> wrote ----


Hi Tom,



Still having problems loading Roassal3 via Metacello



Here are my steps:



pristine image



Preference Wizard last page install git, refactor etc.



Installer ensureRecentMetacello



SquitAddRemote >>remoteName



^ remoteName ifNil: [String empty] ifNotNil: [remoteName asString]



Manually unload all three tonel packages using the Monticello Browser



MonticelloTonel-Core

MonticelloTonel-FileSystem

MonticelloTonel-Tests







and then running:

Metacello new

     repository: 'github://squeak-smalltalk/squeak-tonel:squeak';

     baseline: 'Tonel';

     load.





Metacello new

    baseline: 'Roassal3';

    repository: 'github://tom95/Roassal3';

    load.



GoferRepositoryError: UndefinedObject>>directoryFromPath:relativeTo:

from MetacelloFetchingMCSPecLoader >> linearLoadPackageSpec: gover:


this call here:     


references := self

        retryingResolvePackageSpecReferences: packageSpec

        gofer: gofer.	"look up mcz file"



Transcript shows:



...RETRY->BaselineOfRoassal3

...RETRY->BaselineOfRoassal3

gofer repository error: 'GoferRepositoryError: UndefinedObject>>directoryFromPath:relativeTo:'...ignoring

...FAILED->BaselineOfRoassal3




I am on 9.0 alpha...should I try a 5.3 image?

cheers.





---- On Sun, 04 Oct 2020 09:17:54 -0400 Tom Beckmann <mailto:tomjonabc at gmail.com> wrote ----


It looks like Jakob beat me by a couple of seconds :D



Concerning the MCStReader error, have a look at this Inbox commit to fix it locally in your image for the moment :)

http://forum.world.st/The-Inbox-Monticello-tobe-729-mcz-td5122924.html



On Sun, Oct 4, 2020 at 3:14 PM Tom Beckmann <mailto:tomjonabc at gmail.com> wrote:

Hi timothy,



first, on the Array>>\ error, this is likely because you somehow ended up with the master instead of the squeak branch of squeak-tonel. I would recommend to manually unload all three tonel packages using the Monticello Browser and
 then running:

Metacello new 
      repository: 'github://squeak-smalltalk/squeak-tonel:squeak';
      baseline: 'Tonel';
      load.


On Metacello vs Git and the general workflow:

- from my understanding, it is generally recommendable to first install a package using Metacello as it takes care to resolve and install third-party dependencies you may not want to care about

- Metacello is, however, end-user oriented if you will; the sources are stored in a github-cache folder, which only exists for caching purposes. My usual workflow is thus, after installing the desired package once using Metacello,
 to clone the main repo (the repo that I actually care about) again using the GitBrowser and do a checkout on the most recent commit on master; this should leave things unchanged provided that Metacello also installed the version from the master branch

- You can then work in your image and adapt things as needed; when you have a working increment, you can use the GitBrowser again to create commits and push them Github, typically to a fork that belongs to you and then place a pull
 request



You can skip Metacello if you clone all dependencies using the GitBrowser and install them one after the other in the right order. If you look at the many dependencies of for example Roassal [1], it will however be pretty obvious why you would usually
 want to have Metacello automate this for you.



Hope this helps you to get started. Please feel free to ask again if I left something unanswered or if you feel like the workflow should be easier in some way. Maybe there is something we can improve :)



Best,

Tom



[1] https://github.com/tom95/Roassal3/blob/master/src/BaselineOfRoassal3/BaselineOfRoassal3.class.st#L64



On Sun, Oct 4, 2020 at 2:34 PM gettimothy via Squeak-dev <mailto:squeak-dev at lists.squeakfoundation.org> wrote:

Hi folks,



backing up from the specifics and looking at the "correct" way to go about this so we are all on the same page.



Could you please check my assumptions as this Git stuff in squeak is new to me.





If we have the Git, why do we need the Metacello? Can/should we do all the work in the Git and then when it is done, do the Metacello?





Assuming "doing all the work in Git" is the way to go...



Is just "working through the baseline" and getting things in the system a good approach?



Thoughts?



thx



tty
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20201004/4a91a29c/attachment.html>


More information about the Squeak-dev mailing list