Welcome | Get started | Dive into Lino | Contribute | Topics | Reference | More

Moving from GitHub to GitLab

Until 2021 our repositories were hosted on GitHub. In March 2021 we started to move to GitLab.

The following repositories are now maintained on GitLab:

  • 2021-03-11 : Community Guide, Developer Guide and Atelier

  • 2021-04-12 : lino, xl, noi, cosi, voga, avanti, welfare, weleup, welcht

  • 2021-04-25 : presto, react, amici, tera

  • 2021-04-30 : getlino, algus, openui5, care, vilma

  • 2021-05-21 : pronto

  • 2022-08-17 : rstgen

  • todo: eidreader, blog, mercato, ext6, cd, tt, patrols, logos

How to update the remote setting of your clone

If you have a clone of one of these repositories, you must update its remote setting:

$ git remote rm origin
$ git remote add origin git@gitlab.com:lino-framework/XXX.git
$ git fetch
$ git branch --set-upstream-to=origin/master master

If git fetch says "git@gitlab.com: Permission denied (publickey). fatal: Could not read from remote repository.", then you might want to say:

$ git remote add origin https://gitlab.com/lino-framework/XXX.git

Where XXX is the nickname of the repository. See https://gitlab.com/lino-framework for the list of repository nicknames.

See https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes in case you wonder what a remote is.

How to see the remotes of your clone:

$ git remote -v

How to move a repo from GitHub to GitLab

Here is my cheat sheet for moving repositories from GH to GL.

Change the remote and push to the new upstream:

$ git pull
$ git remote rm origin
$ git remote add origin git@gitlab.com:lino-framework/XXX.git
$ git push -u git@gitlab.com:lino-framework/XXX.git master

Add a .gitlab-ci.yml file (copy from a repo that is already on GL):

$ cp ../cosi/.gitlab-ci.yml .
$ git add .gitlab-ci.yml

Update URLs in the setup_info.py and the main __init__.py.

Run inv bd to update the README.rst file and then push your first changes on GitLab:

$ inv bd
$ git ci -am "moved from GitHub to GitLab"
$ git push

Visit https://gitlab.com/lino-framework/XXX/edit#js-general-project-settings and change visibility from "private" to "public" (this can't be done using the CLI as explained here) in the GitLab project settings.

Visit https://github.com/lino-framework/XXX/blob/master/README.rst and use the web UI to add a warning to the README.rst file:

Warning: This repository has moved to https://gitlab.com/lino-framework/XXX

Update the known repositories in getlino.utils.

Finally:

  • Tell GitHub to archive the repository.

  • Run inv check

  • Run pp -l and check the project urls.

  • Release to PyPI.

Why avoid GitHub?

"GitHub has warped Git — creating add-on features that turn a distributed, egalitarian, and FOSS system into a centralized, proprietary site. And, all those add-on features are controlled by a single, for-profit company. By staying on GitHub, established FOSS communities bring newcomers to this proprietary platform — expanding GitHub's reach. and limiting the imaginations of the next generation of FOSS developers." -- https://sfconservancy.org/GiveUpGitHub/