Thanks Sven.On 29 Dec 2017, at 10:35, Cyril Ferlicot D. <cyril.ferlicot@gmail.com> wrote: Hi, In order to improve the usage of Pharo and the git integration there is some discussions around Metacello in order to be able to: - Load a private git project from Metacello API - Load a project hosted on a private server from Metacello API - Load a project hosted on a private server with non default ssh port from Metacello API - Depend on a private git project in a baseline - Depend on a project hosted on a private server in a baseline - Depend on a project hosted on a private server with non default ssh port in a baseline To achieve this, Metacello needs to be able to manage urls like: - 'git@gitlab.ferlicot.fr:Projet/Bazard.git' - 'ssh://git@gitlab.ferlicot.fr:3456/Projet/Bazard.git' and many others. Dale wants to use Zinc to manage urls's in Pharo. It works great for this url: 'ssh://git@gitlab.ferlicot.fr:3456/Projet/Bazard.git' asUrl It gives an instance of ZnUrl of the ssh scheme, gitlab.ferlicot.fr as host, 3456 as port, git as username and #('Project' 'Bazard.git') as segments. Now the problem is that it does not work well for this url: 'git@gitlab.ferlicot.fr:Projet/Bazard.git' asUrlZnUrl fromString: 'git@gitlab.ferlicot.fr/Projet/Bazard.git' defaultScheme: #http. ZnUrl fromString: 'git@gitlab.ferlicot.fr/Projet/Bazard.git' defaultScheme: #ssh. URI/URL are put in classes or types based on their scheme. If there is no explicit scheme in the URI/URL itself, you have to supply a default one. That being said, the general syntax supported by ZnUrl is approximately scheme://username:password@host:port/segments?query#fragment The colon right after the host is reserved for a port, a path has to start with a / (unless you are using relative URL's, but then you need a parent context). This is why I changed your example, to make it work. There literally exist hundreds of schemes, some with very weird syntax. That is indeed the prerogative of a scheme, to define its own special syntax. However, the straightforward approach of the ZnUrl parser cannot recognise those. The question then becomes: how to provide an extension mechanism for exotic schemes ? Although the question has come up a couple of times, it has never been very urgent. I know that some people have programmed around this limitation, maybe they could tell us what they did.