HI Shaping,
Its interesting getting your fresh eyes perspective on this.
Often I become so fluent in working around it blunts my awareness of
how it comes across to newcomers.

On Fri, 31 May 2019 at 18:45, Shaping <[email protected]> wrote:
> >
> > So are you trying to actually contribute to Pharo? You don’t normally need 
> > to reload pharo (if I’ve understood what you are doing).
>
> Yes, generally to start, I need to track my changes on 7.0.3, save them down 
> to a local repo, and have a way to use that local repo (Iceberg-on-Git repo) 
> to regenerate an image that is 7.0.3 plus my stuff or 8.0 plus my stuff when 
> 8.0 is in better shape.

Is your application making a lot of changes to existing Pharo code?
Are you aware of "extension methods" ? Where a method you add to a
built-in Pharo class (Collection for example) is saved/loaded with
your package.
Then you only need to manage your package not Pharo built-in packages as well.


> This is a really important loop for anyone trying to switch environs, and it 
> should get lots of attention and TLC from Pharo veterans wanting Smalltalkers 
> to migrate to Pharo.  If the new guy can do that loop reliably and 
> repeatedly, the probability that he sticks around and pushes on with Pharo, 
> instead of running back home to VW (done this a lot), increases greatly.  And 
> along the way, there should be no VM crashes.   I still need to determine 
> what caused those.


> > - if you pick Add, then choose GitHub, then enter the owner and project 
> > (e.g. for exercism - owner = exercism, project = pharo-smalltalk), this 
> > will get you the baseline (but won’t load any packages).
>
> After I do the above, Iceberg lists a repo called pharo-smalltalk.  Was this 
> intentional?

Yes, this the the repo name assigned by the Exercism administrators.
The Exercism project has 50 language tracks each with their own
repo... https://github.com/exercism
The Pharo Track repo is https://github.com/exercism/pharo-smalltalk


> Above is the Exercism GitHub page.  The URL and doc mention both Exercism and 
> pharo-smalltalk, but the former is not found in the GUI anywhere to tell the 
> user what he has (without additional digging).
> I just cloned Exercism.  I thought it would be identified somewhere besides 
> in the Git commit comments.  The Iceberg repo context menu item Repository 
> (strange name given that we are already in an Iceberg repo) lists the repo as 
> ‘Repository of pharo-smalltalk’  with a master node, origin node and several 
> version tags.

How much have you used git?
Cloning the Pharo Track repo from the command line is done like this...
   $ git clone [email protected]:exercism/pharo-smalltalk.git
which creates a folder with the same name as the repo (i.e. "pharo-smalltalk")
As a git GUI, Iceberg does the same.  Indeed, Iceberg uses libgit2 to
do this, so the behaviour is standard git.


> These can’t be Pharo versions because the numbers are too small.   They must 
> be Exercism versions,

yes.

> but ‘exercism’ isn’t mentioned anywhere, except in some of the Git commit 
> comments, or I missed it.  So there is some immediate disorientation on that 
> account.  If I choose Packages on the Iceberg repo context menu, I can see 
> that this repo is all about Exercism.

Would a hover tool tip showing "owner/repo" clear this up for you?

@Tim, another way to mitigate such user confusion would be to separate
the tools out from  https://github.com/exercism/pharo-smalltalk
into https://github.com/pharo-exercism/exercism-tools.


> Would the Iceberg GUI make more sense as a split pane arrangement where the 
> stuff listed in the Repository window is shown in the right pain after 
> selecting a well-named Iceberg repo in the left pane?  We could have 
> bubble-help on the listed repos and details in the right pane on repo 
> selection.

I can't parse that description.  A graphical mockup would be more
useful to discuss.


>> Now you have to right click on the repository, and pick the Metacello menu 
>> item, and then you can load baseline (which gives you the default), or you 
>> can enter a group name (e.g. ‘dev’ for exercism).
>
> I loaded the default baseline and see 4 packages up to date and the rest 
> unloaded.

Thats right, the default-baseline is for students. The other packages
are only required by mentors & maintainers.


> When I tried ‘dev’ I got an assertion failure on the SSH creds.  Did I miss a 
> step concerning SSH creds on install?  But the loading seemed to continue.

Given that it already loaded the 4 packages, your SSH creds have
already been proven working.
Before considering this further, just need to ask how reliable your
internet connection is?
A poor connection might also explain some of your PharoLauncher
"identifying VM version" issues.


> I also got the error:
>
> LGit_GIT_EEXISTS: Failed to stat file '
> F:/_personal/Pharo/images/Shaping 7.0 - 64bit 
> (stable)/pharo-local/iceberg/dionisiydk/Mocketry/Mocketry-Specs-Tests.package/SpecOfExpectedObjectSenderTests.class/instance/testFailedValidationWhenRequiredSenderReturnedAnotherObjectAndNobodyReturnedGivenObject.st'

Those very long path names come from a repo in FileTree format.
FileTree format was used by some people to fileout code to work with
git from the command outside of Pharo.
These long path names are fine on Linux, but on Windows libgit2 is
constrained by 260 character paths.
FileTree also had a file per method creating a massive number of small
files, which was fine on Linux but a big performance problem on
Windows.
To address these issues Tonel format was created with a class per file.

I experienced the same error and fixed it by converting Mocketry to
Tonel format here...
    github://pharo-exercism/Mocketry
and updated the baseline here...
    
https://github.com/exercism/pharo-smalltalk/blob/master/dev/src/BaselineOfExercism/BaselineOfExercism.class.st#L81

Try pulling the `pharo-smalltalk` repo to update it and check it has
that line updated.

cheers -ben

Reply via email to