Jump to content

Why not moving to Git?


Recommended Posts

Sorry for doubleposting but I felt like my last comment was a bit harsh, @WhiteTreePaladin :sorry:

Yes, switching to another revision system like GIT on our server is an option, but GitHub is not IMO.

And, yes, I also don't think GetHub is exceptionally bad right now. But just a slight change in direction in the management can make a service like this basically useless for us.

  • Like 2
  • Confused 1
Link to comment
Share on other sites

3 minutes ago, WhiteTreePaladin said:

@FeXoR

I don't have anything against Microsoft, and they haven't been bad lately. I use the Github repo because we don't have our own hosted git repo. I definitely agree that it's preferable to host it ourselves instead of relying on Github, and I'd gladly switch to a WFG hosted git repo. :)

What about gitlab?

Link to comment
Share on other sites

12 hours ago, sarcoma said:

You are the server with https://gitlab.com/gitlab-org/gitlab-ce

 

I've used it when contributing to a few projects, and it seems pretty good. Our Evil Twin uses it.  I wonder if  it would duplicate most of what we have on Phabricator though? It seems overkill to have both, unless we only use gitlab as a git server (not sure what the advantage of that is).

  • Like 2
  • Haha 2
Link to comment
Share on other sites

42 minutes ago, fabio said:

Related: https://www.zdnet.com/article/github-starts-blocking-developers-in-countries-facing-us-trade-sanctions/

However it's not GitHub itself to blame here, but US government.

IIRC we ourselves have a team member from Iran.

I don't think we do. (Lost communication pretty much immediately after attempting to join - due to issues in the country at the time.)

Link to comment
Share on other sites

  • 9 months later...
On 7/24/2019 at 2:59 AM, WhiteTreePaladin said:

I'm not familiar with gitlab, but I think it's probably still preferred for WFG to host its own repo.

GitLab is the software which allows you to host a git repository. GitLab has features like a web interface with issue tracking and merge request management. GitLab is used by the Debian project and FramaGit.

GitLab.com is a service by the company GitLab Inc. GitLab.com is similar to GitHub as you can create repositories for free. However, you can do the same on FramaGit which is part of the french non profit organization FramaSoft.

In short:

  • Git -> distributed version control tool
  • GitLab -> Web based self hosting software frontent for Git
  • GitLab.com -> GitLab hosted by GitLab Inc. (company)
  • FramaGit -> GitLab hosted by FramaSoft (ngo)
Link to comment
Share on other sites

24 minutes ago, m7600 said:

Wait, so at some point in time, Github gives you an "ultimatum" if you have too many .pngs? "Pay us or your repo is gone", that sort of thing?

If that's the case, then I'll delete my repo by myself. No need to wait for them to do it. I didnt't really have a lot stuff anyway.

Git != github 

Git = versionning technology

Github = website hosting git repository.

Don't worry about it 0 A.D. has a mirror. If we had too many pngs we'd know :)

  • Like 1
Link to comment
Share on other sites

  • 1 month later...
On 5/16/2020 at 6:50 PM, Loki1950 said:

Further info git does not handle art assets gracefully or other binary blobs as git calls them too many of them and both GitHub and GitLab start charging you money to use there service.

Enjoy the Choice :)

 

From what I am aware, this would only happen if you would use their service and not a self-hosted version of it.

If you do, I don't think you would face such issues.

 

I understand not using GitHub at this point - I do however believe they will be here for many many years, but that is another story - but at this time, having a self-hosted GitLab CE instance would make wonders for the project, having everything that's needed in one single place.

What is currently blocking WFgames to move to a self-hosted solution like this?

Link to comment
Share on other sites

2 hours ago, ivoecpereira said:

What is currently blocking WFgames to move to a self-hosted solution like this?

Well we have a lot of art files which will take more space than SVN, because there is actually a big svn encompassing the  repo and three others which are literally full of stuff.

Also we currently use the combo arcanist/Phabricator which allows us to use either git or svn seamlessly. Ideally we'd have a better git mirror which is something @Itms proposed sometime ago. I'll let him give more details about that :)

Link to comment
Share on other sites

  • 1 year later...

There has been some discussion in #0ad-dev about migrating to git. In addition to the benefits mentioned earlier (maybe we need to pile them up in a single document to do a cons vs. pros comparison), it also helps bring new contributors by making it easier to submit a small patch via a web interface or a list of patches via a pull request, which is standard feature in Github and many other popular customer-facing platforms.

I think a self-hosted Gitlab instance (like the ones hosted by KDE and GNOME) may be a great idea. We might even be able to ask for what they learned and what to look out for during migration so avoid some common mistakes that might be harder to fix in retrospect.

To minimize code base so cloning (a typical step for a git or DVCS oriented work flow) is cheap, it is probably worthwhile to move all binary assets (real binary files, not the contents of ./binary/ folder in the .svn repo, such as artwork, images, as well as build artifacts like as .dll, .so, .dylib, .exe) out of the main repository. The git repo can contain the source code for the game engine plus the main game 0ad (aka the "public" mod), and various build scripts and automation scripts so the build artifacts can be built automatically by
a) downloading automatically on a new developer/contributer/CI system necessary (like dev platform tools like Python, SpiderMonkey, Lua library etc.) build and dev tools;
b) installing and configuring the dependencies automatically to build it in a given supported platform.

The artwork can be a git submodule that will be mostly updated by artists, and that will be fetched only if the build process requires it. A majority of the development work and balancing actually does not require access to the artwork assets. Without artwork assets, it is quite possible that cloning the whole repo could be less than 50 MB (my guesstimate).

Ideas? Volunteers? Donations?

  • Like 1
Link to comment
Share on other sites

5 hours ago, hyiltiz said:

making it easier to submit a small patch via a web interface
...
popular customer-facing platforms
...
installing and configuring the dependencies automatically

This works for "superglue" projects e.g. mesa, sdl, youtube-dl, ansible.
The game is the final product. The goal is not the ability to work in all environments, but the Gameplay.

If we leave just bare C++/JS code, hundreds of testers and thousands of patches are needed for it to work decently with all versions of the environment and any version of artwork.

Link to comment
Share on other sites

  • 7 months later...

I'm pretty sure I'd be available to help some with the migration process, when it's decided upon. I'm looking forward to 0ad switching primarily to git, as I never worked with svn much when it was more popular (because I didn't do much development at that time) and I'm much more comfortable with the "pull request" workflow. I guess arcanist is supposed to make it easier, but I kept getting certificate errors when I tried it, and it seemed to be a problem for a while, iirc.

 

When the Devuan distro forked Debian, they used self-hosted GitLab, but eventually switched to self-hosted gitea. I don't know why.

Edited by andy5995
Link to comment
Share on other sites

2 hours ago, andy5995 said:

I'm pretty sure I'd be available to help some with the migration process, when it's decided upon. I'm looking forward to 0ad switching primarily to git, as I never worked with svn much when it was more popular (because I didn't do much development at that time) and I'm much more comfortable with the "pull request" workflow. I guess arcanist is supposed to make it easier, but I kept getting certificate errors when I tried it, and it seemed to be a problem for a while, iirc.

I have currently set up a gitea instance due to blender announcing they are migrating from Phabricator to gitea which means they will both create migration scripts and also help by contributing to gitea. They didn't sadly make their decision public but the reasoning was that since they wouldn't pay for gitlab it made no sense to redevelop the missing features that were only available to paying users such as blocking pull requests.

Today I made the first experiments at setting up a jenkins CI to work with our large repo. I am now able to trigger builds and send feedback.  Now I have to find a smart way to not clone the repos uselessly just like it's done using zfs for linux right now.

  • Like 1
Link to comment
Share on other sites

33 minutes ago, Stan` said:

I have currently set up a gitea instance due to blender announcing they are migrating from Phabricator to gitea which means they will both create migration scripts and also help by contributing to gitea. They didn't sadly make their decision public but the reasoning was that since they wouldn't pay for gitlab it made no sense to redevelop the missing features that were only available to paying users such as blocking pull requests.

Today I made the first experiments at setting up a jenkins CI to work with our large repo. I am now able to trigger builds and send feedback.  Now I have to find a smart way to not clone the repos uselessly just like it's done using zfs for linux right now.

Reading and replying quickly, but I think understand. Caching is available in github actions, but I've found that sometimes errors happen due to the cache not getting updated correctly.

 

Another way is to create docker image with everything and push it docker hub. Then pull that image and start a container in your CI workflow? But that has disadvantages too, obviously.

Link to comment
Share on other sites

50 minutes ago, andy5995 said:

Reading and replying quickly, but I think understand. Caching is available in github actions, but I've found that sometimes errors happen due to the cache not getting updated correctly.

Due to a long discussion in the team we have to stay away from Github and self host. We sometimes have issues on the CI too, but it's generally working.

51 minutes ago, andy5995 said:

Another way is to create docker image with everything and push it docker hub. Then pull that image and start a container in your CI workflow? But that has disadvantages too, obviously.

Can't really be pushing a 5.1GB image on docker, also only works for linux and not macOS nor windows as they need their specific tools and compilers.

  • Thanks 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...