top view photo of vehicles driving on road

Como publicar packages em domínios próprios

Se você já trabalha com Go, muito provavelmente já utilizou algum package com vanity import path (domínio próprio). Packages com domínio próprio são aqueles que não iniciam, por exemplo, com github.com. Alguns exemplos de package que utilizam vanity import path são go.uber.org/zap, gorm.io/gorm e cloud.google.com/go/pubsub.

Por trás dessas URLs personalizadas, o package continua sendo hospedado em sites como GitHub, Bitbucket ou algum VCS (version control system) próprio. No entanto, para utilizá-lo, ao invés de utilizar o endereço do repositório, utilizamos um domínio customizado.

Além do package passar mais confiança, dar mais visibilidade para sua empresa e etc… utilizar essa estratégia ajuda em casos de migração. Isso por que o endereço do import permanecerá o mesmo, mudando somente o endereço do repositório.

Sem mais delongas, vamos ver o que precisamos fazer para ter um package com domínio próprio.

Tag Meta

O primeiro passo para conseguir ter um package publicado com vanity import path, é criar uma página HTML com a seguinte meta tag.

<meta name="go-import" content="import-prefix vcs repo-root">

Para exemplificar melhor, vamos imaginar que temos o repositório github.com/aprendagolang/router e que queremos que ele seja utilizado através da URL go.aprendagolang.dev/router.

Nesse caso, a meta tag ficaria assim:

<meta name="go-import" content="go.aprendagolang.dev/router git <https://github.com/aprendagolang/router>">

Caso você também queria adicionar detalhes sobre o código fonte, a meta tag go-source precisa ser adicionada no mesmo arquivo.

<meta name="go-source" content="go.aprendagolang.dev/router 
<https://github.com/aprendagolang/router> 
<https://github.com/aprendagolang/router/tree/master{/dir}> 
<https://github.com/aprendagolang/router/blob/master{/dir}/{file}#L{line}>">

Hospedagem e DNS

Caso você não tenha um servidor próprio para hospedar o HTML com as meta tags, poderá utilizar serviços como GitHub Pages ou Netlify.

Com a página publicada, precisamos criar um apontamento DNS do dominio/subdomínio para o local onde a página está hospedada.

⚠️ Como essa etapa de publicação e apontamento é muito especifica de cada provedor, não vou entrar em detalhes de como fazer.

Página publica e DNS apontado, agora é só fazer o import utilizando a URL personalisada.

Espero que tenha gostado. Qualquer dúvida, é só deixar nos comentários.

Até a próxima.


Se inscreva na nossa newsletter

* indicates required

Deixe uma resposta