@Gitlab: The features are great but the interface setup is shocking. That whole video assumes you have a K-cluster going already, and is a maze of this-thing, that-thing, auth-thing, copy-thing, etc. Have you guys ever tried interviewing users who are new or maintaining a Gitlab instance over major version upgrades? It's painful.
The 'quick fix' for setup these days is supposed to be to use a docker image... but the docker image most people use is unofficial, the maintainer is swamped and has a policy of ignoring problems, and although it runs it doesn't work well with real IPs/DNS/SSL/etc. for common cases (eg. email setup silently fails for many and has for ages - see https://github.com/sameersbn/docker-gitlab/issues/596 and https://github.com/sameersbn/docker-gitlab/issues/1005 which I recently opened) and adds the docker-is-a-moving-target complexity issue to the potential user's stack.
Normally I am based in China. Given that Github access is not super fast or stable there, you guys have a great opportunity to take that market. I'd personally love to use Gitlab both for my own business and those I consult for, but I can't get past go with mail on real infrastructure, and experiences with upgrades to date have been terrible.
Just offering my own recent experiences as a point of reference.
Pardon me here, but I don't understand what you mean by "the docker image most people use is unofficial."
I was under the impression that everyone used the fully featured official docker image (https://hub.docker.com/r/gitlab/gitlab-ee/). We've been using this for over a year without issues now. Is there a reason you need the unofficial version? Does it do something different?
The image Cidan referred to was last pushed 5 hours ago when we released 8.15 and should always be up to date. For more information about our official docker images see https://docs.gitlab.com/omnibus/docker/README.html
I suspect that many of the upgrade problems you experienced can be solved by using an official image.
I agree that the demo video we show is limited to a specific Kubernetes installation (OpenShift self hosted). In 2017 we plan to make sure everyone can use it, for details see https://gitlab.com/gitlab-org/gitlab-ce/issues/25986
OK. I definitely remember running in to something that looked official but wasn't up to date (remotely) a few weeks ago. Perhaps it was this image, perhaps not. IIRC at the time I was judging only from the 'updated [time periods] ago' data in the docker hub webpages.
Mmm, I remember mishaps with updating but those were quite some time ago.
Anyway, if there is an urgent problem with those consider tweeting to @gitlabstatus to get our attention. I think it won't be needed since many people use them so we should be on top of them. The only package that is sometimes late is the non-docker package for the Raspberry Pi since it takes hours to build.
Thanks for the honest feedback, it's genuinely useful for improving the product.
Out of curiosity, why use the Docker image over our Omnibus package? Omnibus is generally what we recommend, but if that's not good enough we'd love to know how it can be improved.
Even if I trusted it not to munge other things (doubtful), IIRC omnibus does not support my distro (Gentoo), and setting up another distro I have to (remember to) maintain just to support one application does not appeal medium term versus using a popular docker image which has done that for me already in a pre-tested fashion and should handle maintenance smoother.
Basically I'm at this point: 'what's the easiest self-contained box to run and maintain', with conditions 'I have an IP but it's not dedicated (ports 22/80/443 unavailable)' and 'there may not be existing DNS/SSL for this server but I can set it up' and 'SMTP from this IP is not desired/desirable, but I have an existing offsite ISP allowing relay with credentials'. This doesn't strike me as particularly weird, except that in the latter case Google is not an option (GFW'd from China).
I don't think your concerns are founded, I just deployed GitLab for personal use on a virtual machine with the omnibus image (gitlab-ce:latest) and it worked flawlessly. And since they released an update today, to upgrade all I had to do was:
I tried the docker image for gitlab-ce just 2 days ago and had to exec bash into it and chmod a workhorse socket file to get it working. Glad they fixed it.
Great, I'm glad it worked for you. It didn't work for me and other people, as per the issues linked. When it doesn't work, there's no clearly defined debug path, and very little response.
Respectfully, it seems like you are using the wrong Docker image, and that's the source of your troubles. Others have commented similarly, and I think that you are too easily dismissing them.
The Sameer docker image used to be the only way to run GitLab with Docker but we don't recommend it and it is no longer listed on our installation page https://about.gitlab.com/installation/ to prevent confusion.
Omnibus makes a ton of assumptions about how many things you want bundled, as well as the monolithic configuration is daunting. I'd suggest breaking up into smaller containers for each service. No matter what container medium you choose, the philosophy of omnibus isn't something you want to 'containerize' as it is.
We run gitlab and the full config is 57 lines. A little more than half of those are comments or blank lines. This includes email and oauth. I would suggest not unbundling.
We recently revamped our in-house deployment process of GitLab, and while we are certainly addicted to Docker Kool-Aid, the Docker image for GitLab just didn't do it for us. This is a few months ago, so my specifics would be a little rusty, but I remember it simply not working, spam-logging errors that didn't help me, and personally I find Docker images that try to run many-multiple applications inside a non-preferred design anyway. Contrasting that, the Omnibus installation worked absolutely without a glitch, so we went with that. Loving GitLab, though!
I haven't tried omnibus but I'd vote for docker too after being spoilt by setting up and maintaining a Discourse instance. They've done an absolutely fantastic job in making installation and updates painless.
I love gitlab! We just deployed our review app deployment to Kubernetes (create a new subdomain in route53, create a new namespace in k8s, create all kubernetes manifests in that namespace, create ingress manifest, boom!).
Here's some thing I wish for gitlab:
1. On merge, run "stop_review" so that we don't end up with a lot of old review apps.
2. I wish you could take over https://github.com/sameersbn/docker-gitlab or offer something similar. I find it a little crazy that you have a single docker image for redis, gitlab, postgresql. There's multiple reason why we don't want to use this, but the simplest is: we already have mysql running (and feel no need to move to pgsql), and we already have experience in running redis.. I kinda like my containers to do 1 thing and 1 thing well.
1. Since the review apps is tied with a branch, as soon as branch is deleted the review app is stopped. This actually happening in above video. At the end you see the stopped review :)
2. You can use your own services. Sid did propose to use Helm package. If you look into Helm package sources you will see how they do it and following the same you get the same result on vanilla Docker.
Participate in an Interview on Experience with Different Git Tools
My name is Angela and I do researches on user experience for different Git tools on the market. I’m kicking off a round of discussions with people who use Git tools. Ideally, I’d like to talk to people that sit on a team of 3 or more.
If this is you, I would love to talk to you about your experience with <using> Git tools, or just some of the pain points that are keeping you up at night when doing your jobs. I’ll just need 30 mins of your time, and as a token of my thanks to those that participate, I’d like to offer a US$50 Amazon gift voucher.
If you’re interested, just shoot me an email with your availability over the next few weeks and we can set up a time to chat for 30 minutes. Please also include your timezone so we can schedule a suitable time (as I’m located in San Francisco). Hope to talk to you soon!
I'm curious how you guys build features for EE. Is it a completely separate Rails project you handle manually to keep base features in sync with the community edition?
EE is open source but requires a license. Do you just trust companies won't download the source code and run it. Do you have heartbeat code injected somewhere to ping servers that are running EE to homebase?
I'm thinking of starting a project, charge money but also open-source it. Curious what your strategies are, especially since the project is still greenfield.
>I'm curious how you guys build features for EE. Is it a completely separate Rails project you handle manually to keep base features in sync with the community edition?
It's the same codebase with some additional code. Every few days we merge CE into EE[1], which always ends up with some merge conflicts – though those are getting better as we learn to engineer around them – and its own problems, but it works pretty well. I think this is a great system, even with its drawbacks, if you want to keep the base product as FOSS. Just be aware of the problems you'll likely run into, and avoid implementing any EE-only features that will cause crazy merge conflicts.
>EE is open source but requires a license. Do you just trust companies won't download the source code and run it. Do you have heartbeat code injected somewhere to ping servers that are running EE to homebase?
It has a built-in system for uploading the license and verifying that the license covers the users of the instance. The license (as in the copyright license) says that users cannot use EE if they get around that. We don't have many cases of piracy as far as we know, and don't care too much. No major enterprise customer would realistically pirate software since that'd be a legal nightmare if they were caught.
>I'm thinking of starting a project, charge money but also open-source it. Curious what your strategies are, especially since the project is still greenfield.
Best of luck! It's awesome to see others try to go for this kind of model, I hope it works for you :)
Some others to look at: Sentry, Mattermost, and Code Climate.
yeah, the term I'd use is source available? anyway, I agree with the idea that "open source" is a dirty term, an attempt to subvert the free software movement. But that is a battle for another day.
Someone else put it better than I could:
> Likewise a Source Available is not necessarily Open Source, but Open Source is necessarily Source Available.
EE (Enterprise Edition) and CE (Community Edition) are two separate projects indeed. Before each release, CE is merged to EE manually.
We encourage you to start a project, try to monetize it and also open-source it. The benefits of open sourcing are huge. Take a look at some of blog posts about that:
Holy hell this is amazing! Gitlab all the way! You release often and there is always something awesome in there, I love reading your release notes.
One thing I find strangely lacking (seeing as you bundle it) is notifications from gitlab to mattermost when builds fail or issues/mrs are opened. Apparently I have to run some strange 3rd party application to process webhooks?
I'm not sure I understand why you're under the impression that you need a 3rd party application for that, as far as I know it's possible with just GitLab and Mattermost. If there are any confusing docs we need to improve I'd be happy to do so :)
As a paying gitlab ee customer, we love to use gitlab. I just have one gripe with review apps. We would really like you to open it up with an API.
Allowing us to create the infrastructure outside of gitlab-ci and setting the reviewapp url/domain etc using the API would be extremely valueable for us, as we are stepping off of the gitlab-ci, but would very much like the UI interface upgrades review apps provides.
We are stepping off of Gitlab CI because of:
* Only a single pipeline allowed per repository. We have a monorepo as we have a lot of small artifacts that make no sense to split out to multiple repo's and have to manage using gitsubmodules or having a separate code review process (we use merge requests a lot!)
* Gitlab-ci's "stages" and not allowing dependencies on cross-stage is not helpful
* No "skipped" status that can be supplied during the pipeline. E.g., we want to ignore changes to our documentation .
If you have specific functionality that is now only in the interface in an API we'd be glad to have a look. But it sounds like you want to replace functionality in .gitlab-ci.yml with an API, this would be hard.
Instead we would gladly word with you to make GitLab CI better so you can keep using it.
1. Single pipeline => I understand using a monorepo. But I don't understand yet why you need multiple pipelines. Does the pipeline work different depending on what file is updated?
3. Do you mean setting criteria for build skipping in .gitlab-ci.yml ? What would be an example criteria?
Since you are a paying customer feel free to work with our support team to have the features you need prioritized. We want everyone to be able to use GitLab CI.
Thanks for this feedback! At GitLab, we believe that work is never done, and we are always looking for things we can improve, in our CI solution as well! Let me address some of your concerns:
1. There is only one pipeline allowed at the moment (see issue about support for multiple pipelines: https://gitlab.com/gitlab-org/gitlab-ce/issues/22972), but you can use multiple builds / stages to usually achieve the same. We also plan to add ability to control status using exist code from the build (see https://gitlab.com/gitlab-org/gitlab-ce/issues/25738). You can also use our pipeline trigger API with environment variables to control what get executed.
2. That is true, we already did some backstage work to improve that. In the meantime it is possible to explicitly depend on builds from the previous stages to download all artifacts in subsequent jobs.
3. I'm not sure if I understand correctly, what you want to accomplish, but if `[ci skip]` is not enough, then status based on the exit code may be helpful as well.
Can you share what these items are? I have used GitLab quite a bit and GitHub just a little, and I so far have enjoyed using GitLab much more. I had a hard time finding my way around on GitHub.
The main parts I've used in both are creating Issues and Merge Requests, and in GitLab I've accepted them and managed teams/projects.
- On the main project page, the file list/table cells have too much padding. The same project's file list, with 22 files, on GitHub fits on my screen comfortably. On Gitlab, the whole table sits at 928px in height. Reducing the top/bottom padding in cells to 5px, without a loss in usability, yields a much nicer 708px height
- The two panels above the file list (the branch, and the latest commit) could be streamlined and merged
- Frankly, the whole area with the project name and the buttons below is incredibly and unnecessarily convoluted. Some important links are grayed, some others are not relevant for every project (e.g. I don't need a contribution guide for my private project)
Hi chmin, thanks a lot for your suggestion. We will look into it. Please feel free to open an issue regarding that if you want. We are also considering about the line length in a file so that people find it more friendly to read. https://gitlab.com/gitlab-org/gitlab-ce/issues/13680. Thanks again for your suggestion :-)
Are there notable projects or organizations moved to gitlab.com?
On top of my head I only know f-droid that is there. I use it for personal use and love it, would love if more projects moved away from github.com, especially open source.
Danger hosts their website with GitLab Pages[0], iTerm hosts their issue tracker there[1], the game Xonotic is hosted on GitLab.com[2], and then VLC[3] and GNU[4] both have their own instances of GitLab.
and at the present moment, they are still pretty far from being able to convince notable projects to leave github.com for gitlab.com The biggest issue right now, is there is a measurable difference between gitlab.com and github.com, which is, it's much slower.
GitLab is working on this and I have no doubt this will become a non-issue in the future, but they still have to deal with the fact that you can't compete with being "as good as". Even if gitlab.com becomes as good as github.com, they will still have a difficult time, to convince others to leave github.com for gitlab.com
I guess my point is, since github.com is the incumbent, the only way that gitlab.com can become the next place to collaborate, is they have to make it clear, that they are better than github.com They can't strive for equality, since you can't compete with "as good as".
Note that gitlab.com runs on GitLab EE, their commercial product, which is not FOSS. This is why the GNU project hosts their own instance of GitLab CE for themselves.
i think the killer feature of gitlab is still self-hosted instances. it makes it really hard to justify using github enterprise. as far as gitlab.com, i've toyed around with it on personal projects and it still has a very long way to go in terms of reliability and speed.
Wow, that is an amazing release. Seems you actually managed to complete your goal right before christmas! This whole year has been quite impressive, I can't wait to see what you will do in 2017.
Thanks! We are super happy to have completed our vision on Idea to production this year. We'll keep improving and innovating in 2017, you can count on that :-)
Actually, it's incredibly easy, especially in tandem with CentOS Atomic Host. Here's my setup at work I just deployed last month:
osm01-03 - OpenShift masters, don't run anything other than OpenShift services (Atomic host)
osn01-03 - OpenShift nodes, actually run the apps (Atomic host)
osnlb - Load balancer for the master (CentOS 7)
oss - NFS server providing storage for OpenShift docker images (CentOS 7)
On your storage node make sure /exports is on a separate filesystem with adequate storage to store your container images, it will be set up automatically from there.
Once you have these couple servers spun up (You can skip the multiple masters + load balancer if you don't care about HA, though I recommend it) from a CentOS box you want to deploy from make sure you push an SSH key out to all the servers for root access then run the following.
Walk through the installer, making sure you pick "OpenShift Origin" to install the upstream (non-commercial) build, say "container-based" for every atomic system you have, and tell it which are your HAProxy (load balancer) and Storage servers, plus what your default domain will be (I recommend using either a subdomain of your existing corporate domain, or buying a new one for openshift use). After you're done specifying your configuration it will generate an ansible playbook and stash it in ~/.config/openshift and start building your cluster out. Once it's done you just need to set up your DNS entries (whatever your master hostname is should point at your load balancer, then I recommend you add a wildcard DNS entry for whatever domain you chose and point it at all of your nodes). The last thing you'll need to do is configure authentication [1] as by default it will take any username/password combo, and setup the default builder images [2]
Sorry for the wall of text, I spent two days figuring this out myself - but after a month in production my team is loving OpenShift and we've already deployed three greenfield apps on it. It's getting a lot more love than I ever expected, and I'm already looking at needing to give my node VM's more resources. Feel free to email me at the address in my profile if you have any questions.
People mentioned that seeing the video made their jaw drop, they didn't expect such an integrated experience. I would like to know what people think, both good and bad. Currently the plan is to improve the idea to production experience every release to make sure everyone can replicate it https://gitlab.com/gitlab-org/gitlab-ce/issues/25986
I recently registered to try gitlab. I received unprecedented large amounts of spam from them daily with no unsubscribe button. I finally emailed them to stop the spam and they did but not completely I received more but had unsubscribe this time. Unsubscribed so lets see what happens. One more spam and I will close my account and never try them again
GitHub is great, does the job incredibly well, doesn't get in the way and have never been spammed (tip for you gitlab here).
[update] Please don't forget to downvote me for giving honest feedback :-)
Marketing stuff. And I am not against them marketing their features but it should have had an unsubscribe button and sent in moderation in my opinion.
Interesting that I get downvoted for giving honest feedback. I would have thought it would help them improve seeing how different marketing ideas impact their users.
Hey, I do marketing at GitLab, and this is definitely not something that should be happening. If you want to email me at mitchell [at] gitlab [.] com with the email that you signed up to our service with I'd love to look into why you were sent so many emails.
Hi, thank you for bringing this to our attention. If you wouldn't mind getting in touch with Mitchell (commented below) or myself at jennifer [at] gitlab [.] com, we can look at your particular situation.
To share a little background, our marketing automation system does have a limit to the number of emails a person can receive: max of 2 per day; 5 per seven days; and no limit to operational emails. Operational emails are things like a signup confirmation, EE trial license key & initial download instruction.
There are a certain periods of time that have the potential to create a "perfect storm" of emails to be sent/received in short succession.
Example of "perfect storm": If a person signs up for GitLab and download an EE trial the day or two before the bi-weekly newsletter email is sent, they could receive 3 operational emails and 1 marketing email in the first 24 hours.
Please let me know if you have additional questions or if I can explain something more clearly.
Thank you for your feedback. We work very hard not to bombard the community with messages and actively work to balance our marketing, information, education and operational emails.
The 5 emails per seven day limit is not something we expect to ever utilize but allows for flexibility in our communication strategy.
That's really strange; I received an email today, with the previous emails being on the 8th and on Nov. 22. What is the contents of the emails, and what address are they from? Are they duplicate emails? Sounds like someone impersonating GitLab.
All marketing their features and help to get started. Like I said nothing wrong with sending this kind of email just over a certain period in moderation.
The other features are awesome, but this is the one that will get us to upgrade right now! We use dozens of repositories, and it's been a pain to manually configure and update hooks.
This may be a silly question. How did Github manage to burn 66M a year while Gitlab manage to be open source, offer an Free GitLab.com Hosting and continue a Rapid pace of improvement in multiple domain?
They got fat and lazy. The competition wasn't there previously. Bitbucket, Gitorious etc just weren't up to scratch so Github was a defacto monopoly for cloud hosting of git repositories.
The gitlab came on the scene, shipped a Github replacement and then some. Is shipping features in 6 months faster than Github did over the past few years.
Github have woken up though and started shipping features again.
It's good to have competition. At least, for consumers.
Thanks for another update! I’ve been running gitlab-ce for over a year now for my sideprojects and random small backups. I don't use any of the more advanced features like ci, but the core has been really great to use.
For reference, i'm running gitlab-ce on a 2 core 2gb vm with 8gb disk and except for one out of memory error about 6 months ago it has been running great for a single user. For more serious use i'd give it way more resources, but for personal use it's humming along perfectly.
Thanks for posting, glad you're happy with the update.
2GB for a single user should be enough. To prevent the out of memory error since using the Omnibus package and configuring 1 or 2GB of swap space if you haven't done so already.
This is nice and all but what about page load times? It can have all the bells and whistles but if you have to wait a minute for just one page to load, it's unusable.
We've spent quite a bit of time this year improving performance, GitLab.com is still slower than it should be but it's a lot better now than it was in January. Self-hosted instances that meet the recommended specs are already fairly performant, though we're always working to improve things regardless.
As mentioned in the blog post, this release we decreased page size a lot (from 1800kb to 718kb for a given Merge Request).
Don't know exactly why you decided against moving to bare metal, but IMO you definitely should. We've got tremendous improvements moving to metal. I also can't recommend OVH enough. Best price on market plus great hardware and uptime. Technical support isn't the best but you shouldn't need it anyway.
I, personally, was apprehensive of going to bare metal for most of the reasons that Sid lists in the above message, and I think that making the app just _better_ is where we should focus before we try and run to pure hardware to solve the problem.
Thanks for the link. I understand the rationale, it's definitely not a simple decision, but if these improvements can be made at the application layer then by all means go for it.
This probably sounds like a strange comment/question, but one of the reasons I haven't moved over to gitlab is that I know that it is unlikely that I will every be a paying customer. I actually don't mind that much about the performance issues (because I really just want cloudy git storage), but I don't like to take something for free unless I know the person giving it really wants to give it...
So as strange as it sounds, are you happy with people like me moving to GitLab even though it may compound your performance problems?
Thanks for that. Your link was actually useful because I didn't realise that you do builds as well. It is entirely possible that at some point this will be useful to me, so maybe I will become a paying customer after all.
And if I can just say, the more actual services you add to your system (as opposed to SaaS features), the more likely I am to become a paying customer. For me, I really value free software. I'm not so interested in paying for proprietary SaaS features, and receiving free services. I'd much, much rather pay for services and use free software.
Whether you can build a business around customers like me, I don't know, but I just wanted to make sure that you know there are at least some of us out there.
Networking effects are serious stuff. If you use it, you’re more likely to recommend it to others—or for public stuff, others will see you using it—and then they’ll start using it. And some of them will pay.
Exactly, free users can create familiarity with your product and awareness of your brand. We have a section about how to overcome the network effects https://about.gitlab.com/strategy/#sequence
Plan meets final execution, love it guys and gals, great work yet again, we upgraded today without a hitch, within 30 minutes I had devs making positive comments in chat about the upgrade. Thank you again for all your hard work and the passion that drives that.
Thanks for leaving a comment Sam. Glad to hear the upgrade went smooth and people are happy. People that experience problems are more likely to let us know about it so we greatly appreciate your comment.
The downtime for upgrading is annoying. We're trying to get to a point where the database migrations don't require downtime. But the deploy of 8.15 caused 40 minutes of downtime, this is not acceptable. For the post-mortem please see https://dev.gitlab.org/gitlab/organization/issues/1082
Great stuff! One thing that's been broken for me for a while now: Raw links. I just get an empty response. It's kind of an important feature for me (and I'm sure others) so would love to see it fixed.
The 'quick fix' for setup these days is supposed to be to use a docker image... but the docker image most people use is unofficial, the maintainer is swamped and has a policy of ignoring problems, and although it runs it doesn't work well with real IPs/DNS/SSL/etc. for common cases (eg. email setup silently fails for many and has for ages - see https://github.com/sameersbn/docker-gitlab/issues/596 and https://github.com/sameersbn/docker-gitlab/issues/1005 which I recently opened) and adds the docker-is-a-moving-target complexity issue to the potential user's stack.
Normally I am based in China. Given that Github access is not super fast or stable there, you guys have a great opportunity to take that market. I'd personally love to use Gitlab both for my own business and those I consult for, but I can't get past go with mail on real infrastructure, and experiences with upgrades to date have been terrible.
Just offering my own recent experiences as a point of reference.