GitLab 4.0 Released
blog.gitlabhq.com
blog.gitlabhq.com
What we removed in 4.0:
SQLite support (I like it but this database got locked
when several users use gitlab at once)
This is a pitty! I am sure there are many small teams where sqlite is totally sufficient.Have you been able to measure and determine the problems with sqlite more precisely? It would be interesting to see at which point (number of concurrent users) the problems occur. Also it just reads like some data accessing backend is not properly closing connection / file access, so blocking might be just a bug, not a sqlite limitation.
Did you read http://www.sqlite.org/lockingv3.html ?
I personally do like having such important infrastructure like bugtrackers as simple as possible, beeing able to setup anytime anywhere with sqlite backend is really a plus in changing environments.
This is feedback I heard from fellow developers as well.
I'm curious as to whether the maintainers are planning to simplify the list of dependencies and installation steps in the upcoming versions.
I hope to improve our Chef Cookbook for GitLab to the point where it can replace some of the scripts you need now.
Was there any particular part of the installation guide that we can improve in the near future?
(I run GitLab.com, offering GitLab as a service)
Let me apologise in advance for complaining on an open-source project instead of trying to contribute.
Anyway, my personal feelings were that some of the dependencies could have been avoided (or perhaps set to some default value), at least for the community edition that I'm supposed to get up and running on an existing server machine.
Some examples: * Requiring Python (for a Rails project!), * Asking me to create special system users for the processes, * Setting paths, keys and chmods manually (and not in some install.sh process), * Configuring a database and access to it (this could easily use a default setting that pro users could edit manually).
From the comments around here, I realize that maybe I looked at the project in the wrong way and it should be installed either as a standalone service or as a virtual machine. If that's the case, I think a short Readme or Install doc explaining that would be very helpful for most users.
You're welcome, no problem that you are raising your opinion about the installation process, feedback will help make things better. The Phython dependency was there for a reason but I don't see it in the current installation doc so that is progress. The special users are due to using Gitolite, it is better to give it a separate unix user. The database requirement is needed unless you use SQlite, but support for this was dropped in 4.0 (and support for PostgreSQL made a lot better) because of the locking of SQlite. For sure GitLab is meant to run on a server and not on your development machine, did you get another impression from the readme description ('code hosting application')? What did you think it did?
Since it was already a dedicated server machine (which we even use sometimes to host some small web apps), I thought I had my work cut out for me.
It was the amount of system work required (sudo-ing, chmod-ing, installing mysql because we only used postgres before, creating users) that made me give up eventually.
I want to give GitLab another try, so I'll see into using Vagrant for that. But I still believe some install scripts would be very much appreciated and help the project gain popularity.
Btw, re Python - I still see the paragraph "Make sure you have the right version of Python installed" on: https://github.com/gitlabhq/gitlabhq/blob/4-0-stable/doc/ins...
I would recommend against using the Vagrant image for production, it is meant for development.
For production you can use a CentOS cookbook https://github.com/atomic-penguin/cookbook-gitlab or an Ubuntu script https://github.com/gitlabhq/gitlab-recipes/blob/master/insta...
Welcome to the world of server software. I think everything web app I've ever installed required database configuration. I take it you've never installed Wordpress? Or Roundcube? Textmate? Gallery? OpenPhoto?
I agree that other parts of the installation are annoying (python2 link, which isn't standard [1]), but the configuring a DB is very par for the course.
The special system users part annoyed me at first, but I realized I'm creating ssh access for git and so in that light it makes a lot of sense to create a new user. On the plus side, gitolite lets you have a ton of users that can use ssh to get the code without having a user account for each one, so it's a win over the long haul.
[1] On my Debian system (should also work with Ubuntu) I solved this with:
sudo update-alternatives --install /usr/bin/python2 python /usr/bin/python2.7 7
This lets the package system know about the symlink instead of just putting some random symlink in a package-manager controlled directory.I really don't mean to disrespect but I think in the age of Rails and ORMs, these sort of tasks can be implemented even easier for the user and cleaner for the integrating apps.
That being said, I realise that GitLab relies heavily on some system-heavy dependencies (cough gitolite), and whoever wrote the installation guide is probably a system guy that didn't want to hide any of the details behind some automatic script. I just suggest that this should be the "Installation for Advanced Users" doc that's the alternative to some automated process.
[1] figuring this out made me feel very old.
Now I've only been developing web apps since 1997, and work every single day with GitHub. Evidently I'm just stupid.
Oh, I actually tried to find those things twice. Yesterday, and again today.
Are you guys even aware of your website's usability issues? What's with the mystery navigation?
Edit: don't bother giving me links. Fix these serious problems.
From a home user: well done on GitLab. I'm going to try out GitLab CI next, and see if I can replace my Bamboo server :).
If you have it set in your mind you'll use it, then it's a good installation process as any. But if you're trying to evaluate options you might just end up saying "fuck it, I'll just use github", or something like gitorious.
I've just spent the last 5 (five!) hours trying to setup GitLab, and I just don't get it to work. And I ain't no rookie either. This is the second time in about a year that I spent so much time trying to get this to work, and I'm about to give up on this project. I want this to work, and I want to use this, but this is insane.
I actually did a dist-upgrade from Lenny just to get this to work, and I made it through all the arcane steps (somehow) - but nothing. I can't get it to work. I can connect to GitLab, it redirects me to 'users/sign_in', and then it just crashes ('Killed', it says). Yup. Tough luck for me. That's five hours down the drain.
https://github.com/atomic-penguin/cookbook-gitlab
also this:
Also the setup instructions have everything prefixed with sudo, why they don't just say sudo su - user and do the rest as that user is beyond me. Half of the setup could just be a few sh scripts.
I'm about halfway through the setup, but this project won't see a lot of adoption given its insane dependency hell and installation tedium.
In many of the more security-conscious organizations, `sudo` is preferred over `su` because it leaves an audit trail. They could automate parts of that and perhaps they should, but the way they have it now shows you exactly which parts of your system you are modifying. It's a tradeoff; if they didn't, they'd have people scolding them for the install scripts wreaking havoc on their production systems.
In addition I have to type my password in each time I use sudo, also by policy thanks to things like PCI compliance.
You can show what parts of the system you are modifying, and provide scripts to automate it. They aren't mutually exclusive actions.
To anyone who is using this, how would you compare 4.0 to the current GitHub, in terms of UI/Features?
I'm thinking of moving from a third party host to GitLab. What should I be aware of?
GitHub has more features than GitLab. GitLab does have all the essentials to work as a team including merge requests and CI integration. Personally I think the GitLab interface is a bit less cluttered.
A list of things that are still missing from GitLab can be found on http://gitlab.uservoice.com/forums/176466-general
The highest votes items there (namespacing) just got added in GitLab 4.0
And the lead author Dmitriy had added many improvements each months for the last few months. Also the number of good pull requests is steadily increasing https://github.com/gitlabhq/gitlabhq/pulls?direction=desc...
If you want to run your own server you need to understand basic Unix systems operations. If you are comfortable with the installation guide than you should be fine https://github.com/gitlabhq/gitlabhq/blob/master/doc/install...
Looks fantastic though congrats.
Also, I have to admit it is a bit irritating that this is such a direct rip of github. The only real "feature" they're adding over github is getting everything github innovated without paying github.
For my company, however, Gitlab makes a lot of sense. We have a large number of small and close source client projects to manage. We don’t want to pay for file hosting, e.g. $50 a month for 50 repos, when each repo is tiny and we can easily and cheaply host them. GitHub Enterprise is also out of question, as it is not very affordable by a small company.
Cost factor aside, Gitlab does have advantages over GitHub. Legal requirement is one, and the ability to integrate with other tools in the company is also quite nice. Although this feature has not been implemented yet, I look forward to the ability for Gitlab to integrate with Jenkins and display build status.
I will continue to use GitHub for personal and open source projects. For client work, Gitlab will be the one I use.
I'm a student with practically no income, and I have about 50 repositories for my school and weekend projects. To use GitHub, I would have to pay them $100/mo.
So it now supports both MySQL and Postgres, even though MySQL is preferred. Does anyone know what that means for a Postgres guy like me? Does "MySQL is preferred" mean that it has known bugs on Postgres? Is it usable?
Right now all the tests are green on PostgreSQL https://travis-ci.org/gitlabhq/gitlabhq/jobs/3796920
Gitlab uses the idea of a notable to signify things that can be commented on. For git commits comments they store the git commit in the column which you need an explicit cast for in postgres
I think there is one other thing too. But this was when installed version 3 they may have changed this
You can also read more about it on the original support pull request https://github.com/gitlabhq/gitlabhq/pull/1666
An example, CS team have access to issues/wikis only while the dev team have unlimited access.
This is our only deal breaker with GitHub.
If you know of other git-based system/service that does this, please let me know.
Thanks!