News for hackers. Stuff that matters.
Re:GitLab Master Plan by PaulRobinson on Tuesday September 13, 2016 @07:54AM (#12487244)
It's interesting to me how much effort is being spent on adding tools like issue tracking, build pipelines, deploy management, etc. vs just providing good hooks for standalone tools that do all those things.

We have discussions about Jenkins vs Concourse, where to keep ansible vault passwords, should documentation live in Github wiki or in Confluence (apparently "tech" documentation in the form, "business" documentation in the latter - what if it's both? Who decides?), and so on.

There is something nice about being able to go to a single place and saying "OK, it's all here in this box". Github has made inroads with some of this stuff, but not quite enough. Gitlab could try and do all this, but then people will moan ("I prefer JIRA/Trello/whatever").

Most of the pain around developer/business workflow around us at the moment actually comes down to the fact that nobody has _really_ thought about providing a great unified UX for all of this.

Part of the concern is people want to be "flexible". No, dictate, just make sure what you dictate is a better solution to what people have.

If GitLab get it right, github could be a minor player (unless they keep up) in a few years time.

Re:GitLab Master Plan by sytse on Tuesday September 13, 2016 @10:44AM (#12488676)
I used to think that a collection of standalone tools was better and that we should focus on code hosting and review. When Dmitriy started with GitLab CI I was dismissive but of course as the author he could do as he pleased. It turned out that having a CI tool that closely works together with the main product was a better experience, especially behind the firewall/single-tenant/on-premises.

Then Dmitriy and Kamil (our CI lead) proposed integrating the CI coordinated into GitLab the main program instead of a standalone Ruby on Rails app. Again I was sceptical. But this has been a great success.

We have all the API's (webhooks, commit status API, etc.) to integrate well with Jenkins (and we'll make sure that we'll always play well with that, JIRA, Slack, and others). But having everything in one interface and one datastore makes for a much better user experience.

We've since doubled-down on this strategy. Bringing the entire software development lifecycle under one roof https://about.gitlab.com/direction/#scope During the webinar we'll show a demo video of how these components will soon work together. We think it is an amazing experience and everyone on our team is focussed to get it right.

Re:GitLab Master Plan by scrollaway on Tuesday September 13, 2016 @11:23AM (#12489046)
This stuff sounds incredibly exciting.

Replacing Jenkins has been... a frustrating experience met with nothing but hollow shells of services. We want to self-host, we want something that can deploy our code, we want to be able to write arbitrary jobs not tied to specific github projects.

The Jenkins ecosystem is atrociously bad. Don't get me wrong, it's incredibly active, but it promotes a "just make a plugin for everything" attitude which results in things like, plugins to echo this or that, plugins to do a million things better done from the shell, etc. On top of that, the Jenkins UI is just... bad. It's ugly and it's a UX disaster. I could go on.

Yet, there's nothing better than Jenkins out there right now. Drone claims to want to replace Jenkins, but doesn't even have support for arbitrary jobs. I'd love more recommendations.

This is why, a while back here on HN, I asked if I could pick up the Gitlab job runner in golang and slap a different web UI on top of it that manages the jobs. This doesn't appear to be possible but I see the value in such a runner existing. Running the jobs is a critical component of such tools.

I just finished setting up a complete pipeline for a new business with my cofounder: Jenkins was a big pain point. Terraform was a pain point. Ansible was a pain point. Getting a vault solution set up and done right was a massive pain point. We've been striving to make things as simple as possible for developers so I wish you the absolute best of luck in what you're doing, I'm continuously impressed with Gitlab.

Email me if you have questions Sytse, I'd love to give more feedback -- email on my profile.

Re:GitLab Master Plan by sytse on Tuesday September 13, 2016 @12:03PM (#12489520)
We don't like plugins because they are a bad user experience, make it hard to upgrade, and make it hard to improve the product. We rather see people contribute features to GitLab itself including tests. This way we can make sure they are nicely integrated in the UI and that they still work when we release a new version of GitLab. This allows users to upgrade with confidence and it allows us to make major changes to GitLab.

I'm not sure what you use case it but GitLab CI is pretty extensive and I hope it has everything you need. Please let me know if there is anything missing. If you want to host your code somewhere else you can still use remote mirroring to have GitLab do the deploy.

The GitLab Runner is a simple piece of software on purpose. This allows us to port it to many platforms. All the logic is in GitLab itself so it is easy to provide a lot of feedback about the status in the UI.

Re:GitLab Master Plan by scrollaway on Tuesday September 13, 2016 @02:39PM (#12491068)
The problem with Gitlab CI, last I looked at it, was the inability to untie it from gitlab and run+self host it standalone. Has this changed?
Re:GitLab Master Plan by sytse on Tuesday September 13, 2016 @04:44PM (#12492064)
The only way to use GitLab CI is as part of GitLab. By doing this we could deeply integrate it into the interface of GitLab and make it a better user experience. If you host your code anywhere else you can use remote mirroring (EE/.com only) to use GitLab CI.
Re:GitLab Master Plan by scrollaway on Tuesday September 13, 2016 @05:02PM (#12492203)
You can't make it replace Jenkins if it can't do arbitrary jobs. I'm talking jobs without even a repository behind them.

The idea of a runner that tests every commit on a repo is super useful. But Jenkins goes one step further by being essentially an arbitrary shell command runner. I use it for example as a CNC for running cleanup jobs, cronjobs etc.

Re:GitLab Master Plan by sytse on Tuesday September 13, 2016 @06:50PM (#12492881)
Maybe the repository can contain the code of the cleanup jobs?
Re:GitLab Master Plan by scrollaway on Tuesday September 13, 2016 @07:55PM (#12493224)
This is shoehorning something into a model that doesn't fit it :/

For example, on Jenkins right now, we have a job which can trigger a bunch of load tests against our website. We can run this job indefinitely, give it arguments, it'll even run a local web server. By default, the job only runs the load test for ~10 mins.

The job is run periodically. When it fails, we get emails. After it completes, regardless of failure, it triggers a "cleanup" job which deletes the loadtest-related data from the website.

This is what I mean with "arbitrary jobs". I think it's absolutely fair to consider them out of scope, but if you want to replace Jenkins, this is what you're going up against.

Re:GitLab Master Plan by sytse on Tuesday September 13, 2016 @08:07PM (#12493285)
Thanks for sharing your use case. I think that code of the cleanup job can be in the same repo as the load test itself. Would that be a fit for you? Of course the load test code can have the testing code of the application as a dependency.

Maybe you prefer the load testing code in the same repo as the application. In that case it should be two jobs that are triggered periodically I think.

I think what GitLab CI still needs is periodic jobs https://gitlab.com/gitlab-org/gitlab-ce/issues/2989 (right now the workaround is sending a build trigger for an external task).

Re:GitLab Master Plan by aalbertson on Wednesday September 14, 2016 @01:22AM (#12494404)
no, it does not fit the bill. It needs truly arbitrary job running.

I want to be able to just drop in some arbitrary command (e.g. df -h /some/build/agent/dir/ | grep 99%) that would not be worth it to me to write a script, commit it to git, get that deployed and running.

In fact, I AM a fan of this being in git, but the example I'd use is an improvement on TeamCity, where you can configure your job and project configurations to "commit to git" so that you can easily restore when you need to rebuild a server or reload a previous version.

Sooooo many use cases for arbitrary jobs. Many of which may be short lived, but want them automated in some way.

(speaking as a sysadmin/eng/devops/cloud dude)

Re:GitLab Master Plan by scrollaway on Tuesday September 13, 2016 @08:30PM (#12493410)
Can Gitlab CI do manual triggers yet? (Drone can't, last time I checked, and that was a huge turnoff)

The "code" in this case really lives in the Jenkins database, as it's a shell snippet. Admittedly I'm not a fan of this. However, since you're a FOSS company as well, you may have hit the case where you want to separate the code for your infrastructure from the code you're releasing in the general repository, but still build off master.

This is where Jenkins' model is quite good. I strongly dislike that it's so hard for Jenkins' metadata to be versioned in proper git repositories, but the separation of the actual code, and the CI-related code is great.

Re:GitLab Master Plan by sytse on Tuesday September 13, 2016 @08:47PM (#12493473)
Manual build triggers for GitLab CI are possible with https://docs.gitlab.com/ce/ci/triggers/README.html

In my taste the shell snippet that is infrastructure specific should like in a small repository. An example of that for us is https://gitlab.com/gitlab-com/runbooks (although that is more process since we try to keep the code generic).

Re:GitLab Master Plan by avtar on Tuesday September 13, 2016 @04:04PM (#12491730)
I would love it if Gitlab CI went back to being a separate product. I'll use Gitlab for my own projects but ones that I work on with others are challenging to migrate. And creating mirrors on Gitlab of repositories hosted elsewhere to make use of CI/CD features doesn't sound ideal.
Re:GitLab Master Plan by sytse on Tuesday September 13, 2016 @04:45PM (#12492071)
I agree it is not ideal but it should work pretty smoothly, have you tried https://docs.gitlab.com/ee/workflow/repository_mirroring.htm... ?
Re:GitLab Master Plan by avtar on Tuesday September 13, 2016 @04:56PM (#12492157)
I understand why your different offerings are bundled together, I appreciate how your team tends to reach out to users in public forums such as this one, and I'm a fan of the quality of your work, but quoting from the page you linked to:

"any commits should be pushed to the upstream repository, and will end up in the GitLab repository automatically within an hour, or when a forced update is initiated."

"Wait up to an hour for things to happen" isn't a great story to pitch to team members :/ I'm also talking about at least twenty different repositories. I'll most likely have to continue using Jenkins for those projects but I look forward to using Gitlab CI on weekends.

Re:GitLab Master Plan by sytse on Tuesday September 13, 2016 @06:52PM (#12492895)
I thought this time was configurable if you run your own installation of GitLab EE. I agree that for GitLab.com the delay of an hour can be a problem. Maybe we can solve that by adding webhooks?
Re:GitLab Master Plan by avtar on Tuesday September 13, 2016 @07:24PM (#12493060)
Yes, webhooks would be preferable over polling.
Re:GitLab Master Plan by sytse on Tuesday September 13, 2016 @08:51PM (#12493490)
Cool, I created a feature proposal for this https://gitlab.com/gitlab-org/gitlab-ce/issues/22139
Re:GitLab Master Plan by avtar on Tuesday September 13, 2016 @11:25PM (#12494052)
Awesome, thanks!
Re:GitLab Master Plan by kbrownlees on Tuesday September 13, 2016 @04:58PM (#12492167)
The new version of drone (0.5) is much better imho, although it is still in beta so can be a bit frustrating at times. They have relaxed a bunch of the constraints and removed alot of the magic. Plus plugins are alot easier to write now.

(Not involved, just a happy user)

Re:GitLab Master Plan by stock_toaster on Tuesday September 13, 2016 @08:36PM (#12493431)

  > I'd love more recommendations.
I have been using buildkite lately, and it has worked rather well. You run the agent on your own hardware, and buildkite itself just acts as a coordinator and log collector.
Re:GitLab Master Plan by contingencies on Wednesday September 14, 2016 @01:37AM (#12494459)
Give me a rolling upgrade AWS/Rackspace/wherever (I choose) private hosted version of Gitlab with everything just working for under or equal to Github's USD$25/month and you have my business. Do a bulk deal, get some custom instances, lower the overheads. IMHO the pain of Gitlab (which I've used ~2008-now?) has always been unfamiliarity, UI obtuseness (recently vastly improved) and maintainability. Kill those - you're well on the way to doing so - and you'll gain market share quickly. You can even sell stuff like storage space, redundancy and global POPs as real time deployable add-on packages.
Re:GitLab Master Plan by brodock on Thursday September 15, 2016 @01:06PM (#12507841)
Did you know about https://githost.io/ ? It's managed by GitLab Inc and it's the closest you get from "Insert your credit card here, and hit a button" to get your own GitLab instance.
Re:GitLab Master Plan by contingencies on Thursday September 15, 2016 @09:13PM (#12511239)
Hey wow that's just what I wanted! Only issue is it's $10 a month more than Github for the base setup, $15 extra for CI, while carrying hardware/storage limitations versus Github. https://githost.io/#pricing
Re:GitLab Master Plan by theunquietone on Tuesday September 13, 2016 @07:57AM (#12487276)
Hey Paul - All great notes. We believe in a single solution from idea to production. More about that here: https://about.gitlab.com/direction/#scope

We hope to make it easy to go to a single place for everything needed for development from issue boards, CI, analytics, etc. The unified UX for this tool is key and we are hiring a great team to support that goal.

Later today we're having a live event to talk more about that vision and answer questions. https://page.gitlab.com/20160913_unveilingmasterplan_landing...

Again, love the notes and how you're thinking about this. Happy we are aligned!

Edit: Sorry! Removed the signature. Habit :)

Re:GitLab Master Plan by mikepurvis on Tuesday September 13, 2016 @08:20AM (#12487441)
Makes for a tough pitch at an established shop with existing tools already in place.
Re:GitLab Master Plan by sytse on Tuesday September 13, 2016 @09:00PM (#12493537)
We want to play nice with established tools and give people the option to use them.

We have:

1. Extensive JIRA integration (and we're working on improving this) https://docs.gitlab.com/ee/project_services/jira.html

2. Jenkins support https://docs.gitlab.com/ee/integration/jenkins.html via our commit status API https://docs.gitlab.com/ee/api/commits.html

3. Slack integration https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/proj... and we're working on a Slack bot https://gitlab.com/gitlab-org/gitlab-ce/issues/20799

We realize that we should allow other tools to integrate well and want to open up as much as we can via API's.

Re:GitLab Master Plan by theunquietone on Tuesday September 13, 2016 @08:35AM (#12487562)
We hope to create tools and resources to make that pitch and migration easier. Out of curiosity, what tools are you currently using?

We think it'll be a piece by piece migration versus all at once. In a perfect world, we have a tool for an all at once migration but perhaps that will come with time.

Re:GitLab Master Plan by mbreese on Tuesday September 13, 2016 @09:44AM (#12488131)
The problem with that approach is that you're limited by the quality of your weakest tool. Code review might be a strength, but if your CI tool is weak, that's what you'll be judged on. Integrations are a way to allow you to focus on what you do best and effectively outsource the rest. Ideally, the integration hooks would be well integrated, but I don't see an upside in trying to make a monolithic app in this market.
Re:GitLab Master Plan by jobvandervoort on Tuesday September 13, 2016 @10:15AM (#12488414)
GitLab allows you to integrate with your existing tools if you please or require. But if you're fine using our tools (which are awesome, if you'd ask me), setup and cost will be zero.
Re:GitLab Master Plan by cryptos on Tuesday September 13, 2016 @10:30AM (#12488536)
I agree. It is essentially the same vision like the old ALM tools had. They were beaten by better more specialized tools following the unix philosophy: do one thing and do it well.
Re:GitLab Master Plan by mikepurvis on Tuesday September 13, 2016 @10:24AM (#12488487)
Apart from GitLab, we're mostly on Atlassian, and pretty strongly committed to JIRA and Confluence.

The CI solution in GitLab is inadequate for our needs; we require the flexibility and extensibility of Jenkins.

The review tool in GitLab has some significant gaps compared with standalone tools like ReviewBoard, and even compared with the one built into Bitbucket. It also has some baffling UX decisions, like the thumb/emoji buttons and the approve/merge buttons which appear in the exact same location as each other. Seriously, just scrap what you have and copy Bitbucket's review interface.

Re:GitLab Master Plan by mordocai on Tuesday September 13, 2016 @11:25AM (#12489078)
I'm not a gitlab employee or anything, but I'm curious: How is gitlab CI not flexible enough for you?

I mean, it basically just runs arbitrary docker containers. From my mostly amateur (when it comes to this, i'm a professional developer but I don't manage our CI system directly) point of view it seems like the gitlab CI is more flexible than jenkins not less.

Re:GitLab Master Plan by mikepurvis on Tuesday September 13, 2016 @01:52PM (#12490645)
The strong coupling between repos and CI jobs is a huge obstacle— for a multi-repo codebase, you need to have triggers that are outside of "a new commit has been pushed".

The reporting is a big problem too— Jenkins has plugins which format and report on JUnit-style reports, including displaying images or other assets generated by tests.

Configuration. The config needing to be committed to the repo is an issue. For many use cases including ours, it's way better to have the CI configuration stored centrally somewhere, and deployed using Jenkins Job Builder (or the various other similar tools which exist for Jenkins).

Executor control. Jenkins lets you do things like put N slots on a buildslave and then have a job occupy M of them, as well as controlling what jobs can run where, and what the priority of different jobs is. This is critical for ensuring overall sanity and efficiency in the pipeline.

Jenkins isn't perfect, but it happens to be a better fit for our needs, and these four factors are all a big part of that.

Re:GitLab Master Plan by sytse on Tuesday September 13, 2016 @05:15PM (#12492331)
For multiple projects you can use build triggers https://docs.gitlab.com/ce/ci/triggers/README.html

We're considering parsing JUnit style tests https://gitlab.com/gitlab-org/gitlab-ce/issues/22098

We think storing the configuration in the repository makes it easier to collaborate on it (new branch is tested in the new way, master in the old way). Can you share your use case for this?

You can specify how many jobs you want GitLab Runner to run. It can even spin up more VMs automatically if you want that. You can bind jobs to runners with labels and specific runners https://docs.gitlab.com/ee/ci/runners/README.html

Re:GitLab Master Plan by mikepurvis on Tuesday September 13, 2016 @06:00PM (#12492624)
Our use-case is perhaps a bit unique, but ROS has a federated development model, meaning literally hundreds of repos. See the following file which maps repos to package names and versions:

https://github.com/ros/rosdistro/blob/master/indigo/distribu...

These get generated into thousands of jobs: http://build.ros.org/view/All/

It would be totally unrealistic to rev job configurations by making commits into the individual repos (and in the public open source case, actually impossible— the maintainers of that community build infrastructure don't have write access to many of the repos— it's equivalent to a Debian distro using DSC files to grab tarballs).

Re:GitLab Master Plan by sytse on Tuesday September 13, 2016 @06:49PM (#12492877)
Thanks for the use case and the links. I must admit I never saw a 14234 line yaml configuration file before.

The jobs page is not loading for me right now.

I think that in general developers and the build engineers should both have commit access. But I see your dilemma and think we need to have a conversation to see what the possibilities are.

Re:GitLab Master Plan by Snappy on Tuesday September 13, 2016 @11:52PM (#12494140)
Great feedback, thanks!

This isn't exactly what you asked for, but we're seriously considering letting you "include" CI configuration from a central location.

https://gitlab.com/gitlab-org/gitlab-ce/issues/20868

Re:GitLab Master Plan by elygre on Tuesday September 13, 2016 @03:05PM (#12491269)
As one example, GitLab CI does not have a good story with handling unit test failures from e.g. gradle.

You can choose to keep the build output from a failed build, which you can download as a zip file, unpack locally, and look at the reports. This user experience makes test reports mostly useless.

At the same time, they have test coverage badges, where test output is parsed to provide coverage. To me, that's really weird: You don't get proper access to test failures, but lots of work into test coverage.

(I have no knowledge of this, but I suspect that being a Ruby-shop, they have little experience with working with java projects, and therefore don't really understand how the toolchain works. This is all guesswork, though).

In the end, we cannot give up Jenkins. We need to know the result of our tests, and see the test output!

Re:GitLab Master Plan by sytse on Tuesday September 13, 2016 @06:43PM (#12492853)
I totally agree that we can do better showing test output and we're working on that in https://gitlab.com/gitlab-org/gitlab-ce/issues/22098
Re:GitLab Master Plan by sytse on Tuesday September 13, 2016 @12:08PM (#12489585)
As you indicated we hope that GitLab CI covers all use cases but we're always interested in learning things we can improve.
Re:GitLab Master Plan by elygre on Tuesday September 13, 2016 @03:06PM (#12491274)
I added a comment to the parent, regarding test reporting. It's a showstopper for us.
Re:GitLab Master Plan by mitchty on Tuesday September 13, 2016 @04:07PM (#12491761)
Just running docker containers is basically a show stopper for certain use cases. Not every use case can even fit into a docker container. E.g. testing kernel modules.
Re:GitLab Master Plan by sytse on Tuesday September 13, 2016 @08:08PM (#12493296)
Totally agree that not everything works on Docker. GitLab Runner works great on metal (Linux, OSX, Windows, RPi, etc.), no need to use Docker.
Re:GitLab Master Plan by merb on Tuesday September 13, 2016 @03:17PM (#12491345)
most people probably miss JUnit-style reports.
Re:GitLab Master Plan by sytse on Tuesday September 13, 2016 @08:09PM (#12493303)
Yep, see https://gitlab.com/gitlab-org/gitlab-ce/issues/22098 for the feature proposal.
Re:GitLab Master Plan by Roritharr on Tuesday September 13, 2016 @09:46AM (#12488150)
We've just opted for GitLab EE, the True-Up Licensing Model won us over, but also the promise of a working Jira Integration. That's still very limited and a pita to setup, even harder when you use atlassians hosted Jira. I don't want to buy GitLab Licenses for non-developers, especially as our Jira is connected to Zendesk, something which doesn't make sense to connect directly to GitLab.
Re:GitLab Master Plan by sytse on Tuesday September 13, 2016 @11:13AM (#12488960)
We already have an extensive JIRA integration https://docs.gitlab.com/ee/project_services/jira.html But I agree we can do better. If something is unclear please email support@ our company domain to get help.

But I agree with your comment that we should extend the scope of the integration and make it work better with hosted JIRA. Our VP of Engineering is assigning someone to this task. Feel free to email stan@ company domain with a link to this comment and with what you need so we can have an engineer look into it.

Many companies use JIRA and it should work great with GitLab.

Re:GitLab Master Plan by omnibrain on Tuesday September 13, 2016 @08:40AM (#12487594)
But it's a great pitch for a shop with limited ressources that currently has nothing.
Re:GitLab Master Plan by sytse on Tuesday September 13, 2016 @12:07PM (#12489570)
We want to play nice with existing tools. For example we're spending a lot of time improving our JIRA integration https://docs.gitlab.com/ee/project_services/jira.html

Most of our new users use only part of GitLab's functionality and we want to support that use case with extensive integrations and APIs.

Re:GitLab Master Plan by harbottle on Thursday September 15, 2016 @04:56AM (#12504449)
Hey Sid, have you seen this: https://github.com/dka23/gitlab-github-proxy. I packaged it up and I already use it successfully with GitLab EE on-site: https://gitlab.com/harbottle/glghproxy-packager

The approach of including a GitHub -> GitLab API translation layer would allow GitLab to integrate with any application that can use GitHub. I've added this info to this ticket: https://gitlab.com/gitlab-org/gitlab-ce/issues/20418#note_15...

Big fan of GitLab btw, keep up the good work!

Re:GitLab Master Plan by Grangar on Tuesday September 13, 2016 @10:14AM (#12488398)
We're currently moving to the Atlassian stack, from Bitbucket to Jira to Confluence. I really want to switch over to Gitlab reading this but the sunk cost is too huge already...
Re:GitLab Master Plan by dkn on Tuesday September 13, 2016 @03:15PM (#12491332)
Doesn't that kind of lend itself towards the walled garden philosophy?

Is there functionality being built-in to integrate with Gitlab instead of being forced to use everything Gitlab has to offer?

Re:GitLab Master Plan by sytse on Tuesday September 13, 2016 @09:03PM (#12493552)
We want to be open to other applications, I've elaborated on this in https://news.ycombinator.com/item?id=12493537
Re:GitLab Master Plan by shawnee_ on Tuesday September 13, 2016 @08:35AM (#12487563)
"Please don't sign comments; they're already signed with your username. If other users want to learn more about you, they can click on it to see your profile. "

Applies to job title, too. Yes, even at companies who are special enough to get millions of dollars from VCs.

source: "In Comments" https://news.ycombinator.com/newsguidelines.html

Re:GitLab Master Plan by vmasto on Tuesday September 13, 2016 @08:47AM (#12487658)
Every rule has its exceptions. Sometimes it's nice to be able to quickly verify that the person answering a very specific comment about a specific company works at that company by avoiding the initial confusion or having to click anything. Let's not be overscrupulous.
Re:GitLab Master Plan by thedufer on Tuesday September 13, 2016 @08:46AM (#12487653)
I think it's important to take the bigger picture into account here. Letting us know who she is was a key part of that comment, since it's immediately relevant to the content.
Re:GitLab Master Plan by solatic on Tuesday September 13, 2016 @10:23AM (#12488482)
The market will show that all-in-one box solutions are the best solutions for new companies.

When you're a new startup and you're trying to race to an MVP and being default-alive, what do you really want to do? Do you really want to spend time getting all of your ALM and build pipeline and production environments up and running? Or do you want to start iterating on business features as quickly as possible?

The truth is that providing 80% of the features is going to be good enough for 80% of new companies. When companies figure out that they need one of the 20% of the features that are missing, they can then migrate to get the feature that they positively identified a need for. Putting in much more effort in the beginning for ALM/pipeline/environment features you may not even need is a form of premature optimization.

Re:GitLab Master Plan by sytse on Tuesday September 13, 2016 @12:05PM (#12489548)
We both see the value of all-in-one solutions for new companies. I think that for existing companies there is a comparable amount of value. All-in-one solutions make it easier to switch to a new team and be effective immediately. And it allows for company wide processes and tools.

The 20% missing features can be added via API's (we're trying to add API's for everything people need https://docs.gitlab.com/ce/api/ ). Or even better, by having people contribute code to the project itself.

Re:GitLab Master Plan by bobbyi_settv on Tuesday September 13, 2016 @10:46AM (#12488696)
> nobody has _really_ thought about providing a great unified UX for all of this.

Isn't the Stash-Jira-Bamboo-Confluence stack a unified UX for doing all of this (source control, pull requests, deployment, docs, issue tracker, build pipeline, etc)?

It may not be a great UX, but can we at least give Atlassian credit from probably having thought about it having a great UX?

Re:GitLab Master Plan by nathan_f77 on Tuesday September 13, 2016 @05:21PM (#12492378)
That's funny, because you're right, and Atlassian has an enormous head start. And it's hard to explain why I like GitLab so much more.

I used the entire Atlassian suite for 3 years at my first web development gig, when I started over 7 years ago. I just have all these memories of things being ugly, slow, and hard to customize. Although I had a mostly positive experience with Confluence. Bamboo was just not nice to use. BitBucket does most of the same things, but it just didn't feel nice to use. Maybe it's the UI, or the dark blue theme. Maybe it's purely psychological, like GitHub was the place where all the cool developers hang out, and BitBucket is the corporate nerd who just wants to fit in so they give away all their private repos for free. So I dumped my private, personal stuff on BitBucket, until GitLab came along.

And honestly, up until the last few months, I actually really disliked GitLab. I kind of saw them as just rip-offs who were blatantly copying GitHub, and stealing their customers. But then I realized that GitHub hasn't really done anything interesting for years and years, while GitLab is working on all these awesome features and integrating things that GitHub should have been doing years ago. So now my opinion is that GitHub had their chance, and they blew. GitLab is the new cool place to host your code.

Re:GitLab Master Plan by technomancy on Tuesday September 13, 2016 @09:47PM (#12493722)
> And it's hard to explain why I like GitLab so much more.

In my case having the Atlassian all tools look the same seems to have backfired; every time I go to BitBucket it makes me think of Jira, which makes me cringe and wish I were on a different web site.

Re:GitLab Master Plan by Snappy on Tuesday September 13, 2016 @11:42PM (#12494115)
Wow, thanks for the kind words. GitLab has grown a LOT in the last year or so.
Re:GitLab Master Plan by spdustin on Tuesday September 13, 2016 @03:28PM (#12491423)
If only they had applied that "forward thinking" to upgrades. It's one of the reasons we're leaving them behind.

We use GitLab for both internal and client project code, including their runners to run limiting on code (for example) so web based edits/commits can be checked with the same rules we may run locally. Love it.

We use GitLab wikis to replace Confluence (which had replaced Evernote because, well, I couldn't trust them any more). We sometimes use Gollum locally because sometimes a UI around editing pages is helpful, though I sure wish prose.io connected to GitLab. I'd also like to see GitLab switch to Kramdown for Markdown rendering (there's an issue open for that already) and actually use the Gollum gem to render the pages, so that we can use the various partials that Gollum supports when it's serving up a wiki.

Once time tracking lands in GitLab, our (admittedly) basic usage of Jira can be replaced, since we're already using guest/reporter accounts for customers to report all issues on any custom dev project we do for them. We'd like to see that on-boarding process (for our clients who we intend to use Issues) go a little more smoothly, and I'm working on a written spec for proposed improvements, and I'm comfortable enough with their code base to take a whack at writing it.

If it's not dev work (e.g. a general SharePoint support contract), we just use a new HelpScout mailbox with a custom email address for the client. That email address is just an alias that forwards to the primary HelpScout mailbox, where a workflow rule moves it to the client's specific HelpScout mailbox. Nice thing is that HelpScout's Slack trigger doesn't fire until after the email is moved, so notifications also go to the channel we use to discuss that customer's issues.

If Mattermost got bundled with their hosted offering, that'd be killer.

We're using their free hosted service, and so I'm reticent to ask for these sorts of changes by opening issues unless I want to at least attempt to contribute the code for it. I'm unsure how some of that would work out in their multi-tenant environment, but I still plan to dig into it.

GitLab is good stuff. I've been deeply impressed by their agility and responsiveness to their customers. If anyone is on the fence, there's no cost to check out early all of their features.

Re:GitLab Master Plan by sytse on Tuesday September 13, 2016 @09:23PM (#12493618)
Awesome to hear you use GitLab CI for both internal and client project code. Thanks for using the wiki. I would love to see the move to Kramdown too https://gitlab.com/gitlab-org/gitlab-ce/issues/18552

I think we use the Gollum gem for rendering but that many of the features need to be enabled individually https://gitlab.com/gitlab-org/gitlab-ce/issues/2073

I'm very excited about the first iteration of time tracking that will hopefully land next month https://gitlab.com/gitlab-org/gitlab-ee/issues/985

We're looking into hosting Mattermost ourselves, but it will be a couple of months before we have the access controls right I think.

Thanks for all your kind words.

Re:GitLab Master Plan by Snappy on Tuesday September 13, 2016 @11:38PM (#12494103)
> We're using their free hosted service, and so I'm reticent to ask for these sorts of changes by opening issues unless I want to at least attempt to contribute the code for it.

Please feel free to open issues anyway. We love hearing directly from users and always want to improve the product, even if you don't pay for it or contribute code. :)

Re:GitLab Master Plan by user5994461 on Tuesday September 13, 2016 @03:20PM (#12491357)
And you can add the Jetbrains stack on top of that: Teamcity + Youtrack + upsource + IntelliJ.

The jetbrains stack VS The atlassian stack. A long standing competition between the best tools in the world.

Re:GitLab Master Plan by snuxoll on Tuesday September 13, 2016 @09:02PM (#12493551)
We still use TFS at work for issue and code management (mainly due to inertia and it being included with our Visual Studio licenses) but TeamCity easily blows every other CI tool I've used out of the water - we love it and the sane pricing.
Re:GitLab Master Plan by flukus on Tuesday September 13, 2016 @10:51PM (#12493951)
I like Team City, but a CI server should just be a tool to check out code and call your build scripts. The choice of CI shouldn't matter much.
Re:GitLab Master Plan by user5994461 on Wednesday September 14, 2016 @04:49PM (#12501087)
The CI choice is important. There are many features that must come from the CI:

- Support downloading the code from various repo (GIT, SVN...)

- Option to start build from scratch or keep the state from the previous build

- Integrate with your user accounts (LDAP, Google Auth...)

- Good and stable API [jenkins API is a complete mess]

- Storing and retrieving build artifacts

- Bisecting

- Running batch of builds / parametrized builds

- Graphing and statistics (build durations, build failures, ...)

- Backup system for the configuration of the CI master (must be scriptable)

- High availability: Either support a pair of CI master with active/passive, or support scaling horizontally with many active masters (this is critical for > 1000 dev companies with many many projects)

- Build in monitoring in the CI master itself (e.g. manage the space taken by projects and artifacts) with a notifications when things are going critical.

...

Re:GitLab Master Plan by flukus on Wednesday September 14, 2016 @06:07PM (#12501610)
> Support downloading the code from various repo (GIT, SVN...)

Is there a CI server that can't handle this? Worst case you can do a checkout from the command line.

> Option to start build from scratch or keep the state from the previous build

This should be part of the build script. "make clean build" or "make build".

>Integrate with your user accounts (LDAP, Google Auth...)

Not sure whatthe case for this is, but the authorization can be passed to the build script anyway.

> Good and stable API [jenkins API is a complete mess]

What do you need the api for?

> Storing and retrieving build artifacts

Again, better off being a feature of the build script.

> Bisecting

This is a job for humans.

>Running batch of builds / parametrized builds

Doesn't every CI server have this?

> Graphing and statistics (build durations, build failures, ...)

This is really not important.

> Backup system for the configuration of the CI master (must be scriptable)

Why is this part of the CI server and not a general backup system?

> High availability: Either support a pair of CI master with active/passive, or support scaling horizontally with many active masters (this is critical for > 1000 dev companies with many many projects)

This really isn't important. The CI server being out for a few hours will not bring down the company. If you have that many projects then there is no problem with having multiple build servers.

>Build in monitoring in the CI master itself (e.g. manage the space taken by projects and artifacts) with a notifications when things are going critical.

Like the backups, this should be part of a general OS monitoring, no need to complicate the CI server.

Re:GitLab Master Plan by user5994461 on Thursday September 15, 2016 @06:05PM (#12510225)
>> Support downloading the code from various repo (GIT, SVN...)

>Is there a CI server that can't handle this? Worst case you can do a checkout from the command line.

It's common NOW. It's been a problem for a very long time. The transition to the git era took a while and didn't happen smoothly.

I didn't check, but there may be some of the SaaS services being bound to specific repo services.

>> Option to start build from scratch or keep the state from the previous build

> This should be part of the build script. "make clean build" or "make build".

A script can't "rm -rf ." at the start of the build or it destroys itself ;)

A script could "rm -rf ." at the end of the build... except when the build fails midway, leaving the machine in an inconsistent state.

>>Integrate with your user accounts (LDAP, Google Auth...)

>Not sure whatthe case for this is, but the authorization can be passed to the build script anyway.

I am not talking about build. I am talking about people signing in to the web ui with some sort of user accounts.

>> Good and stable API [jenkins API is a complete mess]

>What do you need the api for?

To add/remove slaves programmatically. To trigger builds and get build status. Among other things.

>> Storing and retrieving build artifacts

>Again, better off being a feature of the build script.

The CI SHOULD have a feature to store artifacts or upload to ftp/ssh/s3. (other)

There is no excuse for not supporting common use case. It's better to have CI's dev program it right once, than having one million user each baking their own buggy scripts.

>> Bisecting

>This is a job for humans.

WTF. The job of a human is not to click 20 times through the interface only to enter the git hash of 20 commits.

Just gimme a button "build last N commits" or "build commit between X date and Y date"

>>Running batch of builds / parametrized builds (had matrix build in mind specifically)

>Doesn't every CI server have this?

As a matter of fact: No, they don't.

(I was also surprised to discover that in the wild).

>> Graphing and statistics (build durations, build failures, ...)

>This is really not important.

It is important. We NEED to check the evolution of the build duration.

>> Backup system for the configuration of the CI master (must be scriptable)

>Why is this part of the CI server and not a general backup system?

It is the responsibility of one's system that the system is backable.

If all the configuration of the CI is a "conf.xml". It's okay, I can just copy that file.

If all CI master is a mess of thousands of directories and files, where the master node configuration and the build configurations and the past build info are intertwined. I am forced to backup everything together, which may be 100 GB of data.

If the past builds and current configurations are referencing each other with unique GUID and numbers, in a way that ANY file missing might cause the jenkins server to not boot... I am fucked, especially so because there is no way to backup atomically 100 GB of data across 100000 files and directories while builds are running.

> This really isn't important. The CI server being out for a few hours will not bring down the company. If you have that many projects then there is no problem with having multiple build servers.

Given your arguments of all things being useless. You seem to be working in a very small company or not have worked professionally at all.

Please try to envision a real company: When the CI system breaks, there are 100 people who are interrupted and they will be partially unable to work until it is fixed.

By The Way: It's easier to maintain and manage one big system. By splitting one CI pipeline into 10 CI, you just created 9 SPOF and you just increased the failure rate dramatically.

>>Build in monitoring in the CI master itself (e.g. manage the space taken by projects and artifacts) with a notifications when things are going critical.

>Like the backups, this should be part of a general OS monitoring, no need to complicate the CI server

It is the responsibility of one's system that the system is reliable.

First) CI servers have disk space issues. I expect a sensible way to find out what projects/builds are taking and the ability to clean it up. [a monitoring system will give full disk alert, it doesn't understand the CI internal organization]

Second) If the dev are not retarded, they can put a notification for everyone to see when the disk is at 99% instead of writing the last % and crashing... only to never reboot again because it corrupted itself in the process.

Re:GitLab Master Plan by aalbertson on Wednesday September 14, 2016 @01:28AM (#12494424)
All I can say is....L.O.L....

Go compare keyboard shortcuts between all these services and you'll quickly change your mind.

Re:GitLab Master Plan by draw_down on Wednesday September 14, 2016 @10:05AM (#12496948)
They're just so bad at making tools usable. I don't know why. Stash was SO frustrating when I had to use it at my last job.
Re:GitLab Master Plan by gumby on Tuesday September 13, 2016 @09:01AM (#12487774)
> It's interesting to me how much effort is being spent on adding tools ... vs just providing good hooks for standalone tools that do all those things.

This is very important. From the GL's PoV an integrated suite sounds great because the integration is easier and you can capture more of the value chain. But not only is it a barrier to adoption, if successful it squeezes out innovation. The whole point of open source is user benefit, right?

Re:GitLab Master Plan by jobvandervoort on Tuesday September 13, 2016 @09:38AM (#12488059)
Why is it a barrier to adoption? Our intend is to make it easy and possible to use only part of GitLab, whilst integrating with your other tools.

The integration with our own tools will always be better, because we can do things that'd be hard with external tools, but if you want to use something else for anything, it'll work with GitLab.

Re:GitLab Master Plan by gumby on Tuesday September 13, 2016 @10:08AM (#12488342)
> Our intend is to make it easy and possible to use only part of GitLab, whilst integrating with your other tools. ... if you want to use something else for anything, it'll work with GitLab.

If that's your intent then my statement is not operative, great. But your other public statements imply (to my reading) the opposite of what you say in your comment. For example, from the announcement:

> We prefer to offer an integrated set of tools instead of a network of services or offering plugins for the following reasons:

and some comments from your colleague theunquietone: > We believe in a single solution from idea to production.

and when someone commented "Makes for a tough pitch at an established shop" he replied: "We hope to create tools and resources to make that pitch and migration easier."

It's early days so you have time to clarify/refine your story.

Re:GitLab Master Plan by lloeki on Tuesday September 13, 2016 @10:19AM (#12488446)
There are hooks, services, and OAuth2 support, as well as the API, which internally we leverage to extend GitLab or integrate with other products, kind of the way GitLab CI did before it was merged.

Come to think of it, services like Travis CI could integrate with gitlab.com easily (if they wanted to do so).

Re:GitLab Master Plan by jobvandervoort on Tuesday September 13, 2016 @10:19AM (#12488437)
Our goal is to ship a single tool that will work for (almost) everyone. We believe that this will be a better experience and allow for deeper integration, besides cost, setup and maintenance advantages.

That said, we don't expect to be able to replace every single tool one might use -such as internal tools-, therefore we make it possible to integrate with GitLab easily and have an API that covers everything.

Examples of this are plenty. For instance, we build our commit status API to support our own CI system, but immediately also published the public API that allows any other CI to make use of this and offer similar integration in GitLab (in that case, you'll still have to switch between apps, which we believe can be better - hence our goal).

Re:GitLab Master Plan by jamie_ca on Tuesday September 13, 2016 @11:19AM (#12489018)
At work, the worst thing we've done this year from a product management standpoint is migrate from Github Issues to JIRA.

It was done for the right reason: to have a single place for all our work (JIRA for feature planning/sprint planning/dev+qa tracking, Confluence for documentation) but it's been hobbled because we still need github to coordinate code review + merges.

The better solution would have been to stay with Github and use Huboard or something to layer on the swimlane sprint planny stuff, but keep _all_ our info in GH Issues.

Moving entirely to Gitlab in a year or so once things have matured would be a great win for us, I'm sure.

Re:GitLab Master Plan by phonon on Tuesday September 13, 2016 @02:21PM (#12490912)
Why not move to Bitbucket (cloud or server) too?
Re:GitLab Master Plan by therealmarv on Tuesday September 13, 2016 @10:49AM (#12488732)
Is not whole Atlassians business a unified toolset for all of this? I would not say that nobody actually tried to be that one place... I only seeing GitLab beeing the best open source solution without making a big risk with vendor lock in. And they are also cheaper than their competitors (github, Atlassian etc.) when you want to do private team development.
Re:GitLab Master Plan by kazagistar on Tuesday September 13, 2016 @11:00AM (#12488847)
I wouldn't say Atlassian has worked to make a great unified UX. I mean, they tried, but using their products makes it painfully clear that they just glued togeather a bunch of disparate projects. For example, each product supports different markup languages (or none at all) with different editor buttons and shortcuts and so on. Even the github ecosystem feels more integrated, because everyone just follows the broad strokes of what github does with its UX and integrates with it.
Re:GitLab Master Plan by aalbertson on Wednesday September 14, 2016 @01:33AM (#12494440)
...and keyboard shortcuts....don't forget about those!
Re:GitLab Master Plan by chrisseaton on Tuesday September 13, 2016 @02:55PM (#12491187)
I feel like every Atlassian product has a totally different Markdown syntax for no good reason. That makes it feel very non-unified.
Re:GitLab Master Plan by josh64 on Tuesday September 13, 2016 @08:28PM (#12493400)
If they support markdown at all... (I'm looking at you, hipchat).
Re:GitLab Master Plan by therealmarv on Monday September 19, 2016 @03:11AM (#12529542)
this is the number reason for me for using Slack. Although their Markdown support is also not perfect.
Re:GitLab Master Plan by ryanackley on Tuesday September 13, 2016 @10:34AM (#12488578)
Way easier said than done :)

As someone who has been doing product development their entire career, I have found there to be an economy of focus in a software company when it comes to product development. I think it's a great vision for Gitlab but it's risky because it splits their focus into like 6 beams. The major players in the market (Atlassian, GitHub) already have this vision and they are there already pretty much.

The market wants flexibility in their tools in spite of what people on HN tell you. Atlassian has tools for every lifecycle stage but people still mix and match with other tools. Github is missing a few of these stages but I'm sure they are hard at work filling in the blanks. I know people who use GitHub and JIRA together even though GitHub has it's own issue tracker.

Re:GitLab Master Plan by sytse on Tuesday September 13, 2016 @09:31PM (#12493649)
I agree it would be risky to go on this path. So when Dmitriy wanted to make CI years ago I told him to keep the main thing the main thing. Why reinvent the CI wheel, our efforts were better spent making our Jenkins integration better. But I didn't stop him.

And what I learned was that we were able to do CI and make it a better product that what was on the market. That was counterintuitive for me.

But we've since seen the benefits of integrating CI, CD, issue boards, and a docker container registry. We still have lots of work to do integrating Mattermost, Koding, Cog, Prometheus. But we're convinced we can do a better job.

If you look at what we shipped last month I hope you can see the rate of improvement https://about.gitlab.com/2016/08/22/gitlab-8-11-released/

And to make sure we have enough capacity going forward we hire remotely, use open source collaboration processes, and just raised more capital.

Re:GitLab Master Plan by flukus on Tuesday September 13, 2016 @09:06PM (#12493563)
> Most of the pain around developer/business workflow around us at the moment actually comes down to the fact that nobody has _really_ thought about providing a great unified UX for all of this.

Microsoft did with TFS. That was enough to convince me it's a terrible idea.

Re:GitLab Master Plan by setheron on Tuesday September 13, 2016 @02:31PM (#12491002)
This is close to what phabricator (https://www.phacility.com/) does and personally I dislike it.

I like bringing the right tool from the job rather than the massive hodgepod mega site

Re:GitLab Master Plan by MaulingMonkey on Tuesday September 13, 2016 @02:38PM (#12491061)
A massive hodgepod of plugins and separately created and admined accounts is frequently just as much of a pain, IME.

I like having both options so I can go with whichever option hurts less.

Re:GitLab Master Plan by joneholland on Tuesday September 13, 2016 @11:12AM (#12488958)
Counterpoint is team foundation server that aspires to do everything and does a terrible job at all of it
Re:GitLab Master Plan by vtbassmatt on Tuesday September 13, 2016 @12:06PM (#12489551)
Would you elaborate on the terrible job we do?
Re:GitLab Master Plan by joneholland on Tuesday September 13, 2016 @09:05PM (#12493558)
Are you serious?

TFS is such a bad product that most teams at Microsoft don't use it.

You use XAML to configure builds.

The source control system still uses a locking workflow.

The issue tracker managed to be under powered and over complex at the same time.

I had to suffer through it at two previous jobs. Never again.

Re:GitLab Master Plan by flukus on Wednesday September 14, 2016 @03:27AM (#12494796)
Take a look at the competition. There is no single part of TFS that isn't done much better elsewhere.

The only reason it still exists as a product is because of Microsofts sales force, not it's own qualities.

Re:GitLab Master Plan by u02sgb on Wednesday September 14, 2016 @10:10AM (#12496990)
File editing/locking/merging isn't great, particularly if we've got Excel in our Source Control. We can either have everyone lock files or everyone merge. You can't merge Excel files so it means everyone has to lock or we store Excel elsewhere.

Unix Client is flaky and inconsistent and doesn't get much love.

I can't put a version number into a file so I can see in Prod what version the code is.

I could go on.