Iceberg Tutorial

Screenshots of how to use Iceberg to create a project.

This does not cover Git migration

Where to start?

Since it matches the 'Local Repository Missing error'. Click and choose 'Repair Repository', first time I choose to 'Clone again this repository' and picked to pull from jborden23/StringClassifier/repository, but had a non-recoverable ssh error. Next time choose 'Locate this repository in your file system.' Took the default local directory and added src as the source dir. This generated a few errors, so I did this from the command line:

0 Johns-MacBook-Pro$ mkdir src
0 Johns-MacBook-Pro$ git init
0 Johns-MacBook-Pro$ git add src

2018-May-11 - After renaming the image in the launcher, had the 'Fetch required, Unknown e7ccc62' error. Choose 'Repair repository -> Fetch remote commits', the window flashed a little, but appears that nothing happened.

Finally Loaded StringClassifier! From Repositories, choose 'Add', then 'Clone GitHub repository' and selected jborden23 for the username, StringClassifier for the project, and repository for the directory. Different than before, I chose HTTPS for the protocol. This resulted in the Repositories saying that it wasn't loaded. Somehow I found an option to load it, and now its in my image!

Didn't have any issues commiting or pushing the changes.


Started over again using ssh keys - 2018-Dec-23 - Starting with MacOS, check ssh keys with this from the command line:

0 Johns-MacBook-Pro$ ssh -T git@github.com
Hi jborden23! You've successfully authenticated, but GitHub does not provide shell access.

Started Pharo 7 on MacOS. Open the World menu, choose:

Tools -> Iceberg

Under settings, check the user name and keys exist under custom:

Verify that the files exist:

0 Johns-MacBook-Pro$ if [[ -s /Users/jborden/.ssh/id_rsa.pub && -s /Users/jborden/.ssh/id_rsa ]]; then print files present; fi
files present

Getting errors:

LGit_GIT_ENOTFOUND: Could not find repository from '/Users/jborden/Documents/Pharo/images/iceberg_test/pharo-local/iceberg'

Does not have the code loaded.


Caching

After merging code in github, noticed that when I load the project into a fresh image it is missing the updates. Found that if I remove the project directory, it took a very long time to load, but was accurate. Example:

'pharo-local/iceberg/Pier-CMS' asFileReference ensureDeleteAll.

It seems like the ideal way to use this is to do everything possible in Pharo.


Possible Errors

Iceberg authentication Error

2021-Feb-5 - Error when cloning StringClassifier had this, not sure why the operation was empty:

There was an authentication error while trying to execute the operation: .
This happens usually because you didn't provide a valid set of credentials.
You may fix this problem in different ways:
1. adding your keys to ssh-agent, executing ssh-add ~/.ssh/id_rsa to your command line.
2. adding your keys in settings(open settings browser search for "Use custom SSH keys" and add your public and private keys)
3. using HTTPS instead of ssh(Just use an url in the form HTTPS://etc.git)

Added a remote source for this repository from the Github code button, when attempting to pull it gave a talkback:

MessageNotUnderstood: IceNoCommit>>#id

Clone Location Already Exists

In Pharo 10, ran into the error: IceCloneLocationAlreadyExists


TODO

Add notes on PAT

Try:

Metacello new
	baseline: 'Pier';
	repository: 'github://Pier-CMS/Pier3:UpdateEditor/repository';
	onConflictUseLoaded;
	load: #('todo').

Iceberg Work

Update https://github.com/pharo-vcs/iceberg/wiki/Tutorial - Replace in the autnentication page

s/those changs in/those changes in/
s/Following, we describe/In the following, we describe/

Where is the missing screenshot?

 Add Token, as shown in the screenshot below.

This seems related to: https://docs.github.com/en/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account. From the github docs, try:

gpg --list-secret-keys --keyid-format=long

Found that GPG isn't related to the Personal Access Token, the Developer settings has been moved to the bottom of the page. For now I selected 90 days and repos & projects. For a small change it was successful, I was also able to create a branch.

WHERE ARE THESE ADDED IN PHARO?


Posted by John Borden link