liberapay / liberapay.com

Source code of the recurrent donations platform Liberapay
https://liberapay.com/
1.67k stars 215 forks source link

Migrate to gitlab.com #46

Open Changaco opened 8 years ago

Changaco commented 8 years ago

GitLab has been continuously improving, and it should now be possible to migrate Liberapay with only a small effort. The advantages are: it's open source, the gitlab.com instance provides free private repositories, GitLab is a remote company (we're a remote organization). The downsides are: need to migrate from Travis CI to GitLab CI, smaller user community than GitHub.

So, should we migrate?

Changaco commented 8 years ago

The missing watch a repo feature is a blocker. Closing this issue for now, we'll reconsider later.

sim6 commented 8 years ago

:(

Changaco commented 8 years ago

GitLab issue for the "watch a repo" feature: https://gitlab.com/gitlab-org/gitlab-ce/issues/9013

Changaco commented 8 years ago

It looks like watching a repo will be implemented soon, it's time to reconsider this.

Changaco commented 8 years ago

Watching a repo has been implemented by https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3986.

Changaco commented 8 years ago

Someone told me in IRC that GitLab CI is great but that you have to set up your own worker, which is a bit of additional work compared to simply using Travis.

agateblue commented 7 years ago

We have a full Gitlab / Gitlab CI installation at work, It's a bit painful to setup the first time, but not too much. I'm okay to help with that if you want (I'm managing my workplace's Gitlab since almost 2 years).

Changaco commented 7 years ago

I don't think we want our own Gitlab instance unless using gitlab.com turns out to be problematic.

agateblue commented 7 years ago

If you use the hosted version, I think you can use also their CI workers, (meaning you just need to write relevant configuration in .gitlab-ci.yml), it should be easy enough to set up. Maybe it's also possible to have an hybrid setup: Hosted Gitlab, self-hosted CI worker ?

Changaco commented 7 years ago

Maybe it's also possible to have an hybrid setup: Hosted Gitlab, self-hosted CI worker ?

It's almost certainly possible, but we should try the shared CI first.

P.S. in English there are no spaces before punctuation marks. ;-)

agateblue commented 7 years ago

P.S. in English there are no spaces before punctuation marks. ;-)

Yeah, that's a real problem for me... I'll try to be more careful, thanks!

Regarding the migration, a way to smooth up the whole thing could be:

  1. create a repository mirror on Gitlab,
  2. Configure the project to run tests on Gitlab CI as well as on Travis.
  3. Import remaining data on Gitlab (issues, etc.)
  4. Invert the mirroring: Github becames a mirror of the Gitlab repository
  5. See if everything works fine
  6. Remove Travis, Github mirroring, archive the project and Github (or redirect directly to gitlab, if possible).

However, from a personal perspective, I'm not sure if it's really worth it to migrate from GitHub to hosted Gitlab.com / CI. Both companies provide almost the same services, (apart from the private repositories policy, as you pointed earlier).

Migrating to self-hosted Gitlab would make sense to me, to avoid depending on anyone regarding the project hosting, but it will also take more time / resources.

Changaco commented 7 years ago

Moving away from a closed source service to an open source one is a gain in itself. There are many people in the free software community who prefer Gitlab over GitHub because the former is open source. In fact not too long ago we had someone who gave up contributing to Liberapay because I told him he'd have to use GitHub.

agateblue commented 7 years ago

Moving away from a closed source service to an open source one is a gain in itself.

You're right, however, we don't have any way to verify that the Gitlab.com instance really shares the same code than the open source one. In a way, a hosted service is a closed source service, even if the code is published somewhere else. Also, if the service is shut down or decide to close a project's account, the damage would be exactly the same.

That's why, in my mind, open source is important, but using hosted open source services does not really add much value in itself, compared to self-hosting an open source service. I agree that the former is still better than nothing though.

Changaco commented 7 years ago

Self-hosting gives even more control of course, but there are economies of scale in hosting many projects on a shared instance. Simplicity and cost efficiency are big reasons why most people don't self-host.

jorgesumle commented 6 years ago

Got an error I don't fully understand while trying to migrate to GitLabCI:

Cloning into '/builds/jorgesumle/liberapay.com'...
Checking out dec12ed1 as master...
Downloading www/assets/fonts/ubuntu-bold-italic-webfont.ttf (357 KB)
Error downloading object: www/assets/fonts/ubuntu-bold-italic-webfont.ttf (2c33de3): Smudge error: Error downloading www/assets/fonts/ubuntu-bold-italic-webfont.ttf (2c33de34d51065a5e56bae5e1c7c13cd128268b26569838a38db038e6ac9723d): batch request: exec: "ssh": executable file not found in $PATH

Errors logged to /builds/jorgesumle/liberapay.com/.git/lfs/objects/logs/20180401T052759.323459372.log
Use `git lfs logs last` to view the log.
error: external filter 'git-lfs filter-process' failed
fatal: www/assets/fonts/ubuntu-bold-italic-webfont.ttf: smudge filter lfs failed

In addition to what https://github.com/liberapay/liberapay.com/issues/46#issuecomment-264203840 says, we shouldn't forget about Weblate.

Changaco commented 6 years ago

@jorgesumle Looks like git-lfs failed because the ssh command wasn't available.

jorgesumle commented 6 years ago

Yes, and I cannot do anything, as it clones the repository before executing the before_script part. See an attempt to do that. It seems like I would need to create a Docker image with SSH installed in addition to Python.

Changaco commented 6 years ago

@jorgesumle Deleting the .lfsconfig file might "solve" the problem by removing the need for SSH.

jorgesumle commented 6 years ago

No, it didn't work. It looks like the problem is the version of git-lfs used. GitLab explains:

Git LFS v1 original API is not supported since it was deprecated early in LFS development

And from I can see the files tracked by git-lfs have this version https://git-lfs.github.com/spec/v1.

Changaco commented 6 years ago

@jorgesumle I don't think so, the GitLab doc you linked is about their implementation of the server side of Git-LFS.

jorgesumle commented 6 years ago

@Changaco, you are right.

Solved the Git-LFS issue thanks to the article Migrating Repositories with Git LFS, but now I cannot get posgreSQL to work.

Changaco commented 6 years ago

@jorgesumle Looks like the postgres daemon hasn't been launched.

jorgesumle commented 6 years ago

GitLab has non-libre code from Google reCAPTCHA. The community seems to agree to remove it, see vote count.

mulles commented 6 years ago

As I suppose you all know, Microsoft acquired Github, thus this issue may become more relevant? Can't help with the migration, but wish you all the best to get it work :) I am waiting on the other side :)

jorgesumle commented 6 years ago

Almost done, but I need some help making GitLab-CI work with posgresql, see #1143

MartinDelille commented 6 years ago

@Changaco @jorgesumle Can you add me to the gitlab team member so I can at least clone the project? I'm quite familiar with gitlab since I use it since several year and could be some help here.

jorgesumle commented 6 years ago

I cannot add members, because I have the "Maintainer" role.

MartinDelille commented 6 years ago

@Changaco?

MartinDelille commented 6 years ago

https://blog.github.com/2018-10-26-github-and-microsoft/

Changaco commented 6 years ago

@MartinDelille I've added you on gitlab as requested. (Don't take this as a sign that I'm ready to migrate the 3 main Liberapay repositories to gitlab, because I'm not.)

MartinDelille commented 6 years ago

@Changaco Yes: the article I posted this morning contains some good argument to stay on Github. Accepting Gitlab merge request would be good indeed to have more contributors!

MartinDelille commented 6 years ago

Unfortunately, it seems that there is a problem with LFS.

Investigation started here: https://gitlab.com/gitlab-org/gitlab-ce/issues/40616#note_112865255

MartinDelille commented 5 years ago

Fixed: https://gitlab.com/liberapay/liberapay.com

davidak commented 5 years ago

It's probably too late to point out, that GitLab is also problematic, since it's a for-profit organization which took $165M venture-capital. The investors want to see profits!

A good alternative i found is Gitea. It's developed by the community! There are also instances hosted by the community. For example Codeberg, a non-profit organization. Or maybe the FSFE allows you to use their instance.

But you need an external CI, like Drone CI.

tuxayo commented 5 years ago

Thanks a lot. It's a move from a fully closed-source and monopolistic platform. This is a huge step.

Indeed GitLab.com isn't perfect, if the closed-source features aren't used (couldn't quickly find a list) then we will stay independent and will be able to easily move to other intances (running the libre version) if GitLabs venture-capital makes them do bad things.

revi commented 5 years ago

if the closed-source features aren't used (couldn't quickly find a list)

GitLab pricing - anything that isn't Core (Self-hosted) seem to be their commercial initiative.

jorgesumle commented 5 years ago

If we decide to migrate to GitLab, the file .github/FUNDING.yml should be removed.

tuxayo commented 5 years ago

Are there still blockers for the migration?

12people commented 3 years ago

Any progress on this? Is this still planned?

antenore commented 3 years ago

@jorgesumle no need to remove the FUNDING.yml, as it's mirrored on GitHub, those looking around on GitHub they will see all the donations options.

@Changaco GitLab has a program for opensource projects, we took advantage of this for Remmina.

You get an enterprise subscription for free. If you need more info let me known.

As a side note, I've migrated myself Remmina to GitLab a while back, and it's the best move we have done. We were afraid to loose the community effect, but on the contrary the number of contributions went up. On GitHub there many lurkers, while on GitLab are actually active contributors.

Now GitLab has even more features than GitHub, but most important, when you need support, there humans behind the organization and not bots and MS enterprise policies

If you need help let me know, it's really a good change and it's worth the effort