
Almost Everything We Do Will Be Open - jobvandervoort
https://about.gitlab.com/2015/08/03/almost-everything-we-do-is-now-open
======
skyraider
GitLab Enterprise user here. GitLab's open-source policy is one of the major
reasons we chose it (along with self-hosting and fairly modern, built-in
continuous integration), but the GitLab community could use some additional
design and documentation effort.

Things that almost make me want to switch back to GitHub:

\- GitLab is really hard to look at. All of our devs are having trouble
visually locating comments in diffs. We're always scrolling through the left-
side menu looking for the issues tab. It's hard to visually differentiate
between items like comments in merge requests. Our eyes just can't find and
follow things. Even BitBucket looks better.

\- GitLab-CI has poor documentation on runners, and a rather buggy test runner
registration process that doesn't provide any debugging output and produces
false positives quite often.

\- GitLab-CI has no unconditional cleanup directive, like CircleCI does... but
if you're re-using a test runner instead of tearing down the server each time,
unconditional cleanup is the one thing you need. And no, the Docker executor
doesn't solve this because we don't want to test our Docker containers inside
Docker.

\- CI is based on commit IDs. You can't run particular CI events on merge
requests. For example, this means no way to run integration tests on merge
requests.

\- Typography could be improved. When you're looking at the issues page all
day, this is quite noticeable.

\- Slack integration is not great; it dumps links to "GitLab Enterprise
Edition" instead of useful commit/changeset stuff like GitHub does.

If the community/GitLab can focus on putting on some of the design polish and
service integration polish that GitHub has, GitLab would be a total winner for
us, long-term.

~~~
jobvandervoort
Thanks for the feedback, we really appreciate it!

The quick reply to your comments is: we're working on almost all of it.

> \- GitLab is really hard to look at. All of our devs are having trouble
> visually locating comments in diffs. We're always scrolling through the
> left-side menu looking for the issues tab. It's hard to visually
> differentiate between items like comments in merge requests. Our eyes just
> can't find and follow things. Even BitBucket looks better.

We're working hard on this and focus more and more of our development capacity
to this.

> \- GitLab-CI has poor documentation on runners, and a rather buggy test
> runner registration process that doesn't provide any debugging output and
> produces false positives quite often.

There are a lot of improvements coming in this field. Especially the
integration and setup of runners is going to be easier. We're hoping to make
this a zero-step setup thing. Same with documentation. Our new GitLab CI
maintainer Kamil has been spending a lot of time on writing documentation.

> \- GitLab-CI has no unconditional cleanup directive, like CircleCI does...
> but if you're re-using a test runner instead of tearing down the server each
> time, unconditional cleanup is the one thing you need. And no, the Docker
> executor doesn't solve this because we don't want to test our Docker
> containers inside Docker.

This is interesting, I'm passing it onto Kamil.

> \- CI is based on commit IDs. You can't run particular CI events on merge
> requests. For example, this means no way to run integration tests on merge
> requests.

This is be interesting to look at. I'm not sure whether we have something like
this in the planning, but I'm taking note.

> \- Typography could be improved. When you're looking at the issues page all
> day, this is quite noticeable.

We're worried about adding page load by including typefaces. We might change
our minds on this. What OS are you using? Would Roboto work, for instance?

> \- Slack integration is not great; it dumps links to "GitLab Enterprise
> Edition" instead of useful commit/changeset stuff like GitHub does.

We welcome contributions to improve it. This is not a focus at the moment, but
considering the popularity of Slack, we can definitely have a look at this.

~~~
fraserharris
typefaces are cached by the browser. Done properly, you should see zero impact
on page load past the first load.

~~~
techpeace
+1

Also worth checking out: [https://www.filamentgroup.com/lab/font-
events.html](https://www.filamentgroup.com/lab/font-events.html)

------
codegeek
Good timing. Recently installed Gitlab Community edition on DigitalOcean (one
click install) and so far loving it.

Some issues:

\- Does it have a default task management tool or we need to integrate a 3rd
party ? Couldn't find it in the forums yet

\- The UI is a bit clunky in terms of navigation. For example, being able to
move from the homepage level to specific project back and forth is a bit
confusing. Would love a re-design of UI.

EDIT:

Lot of feedback that I can give. So far:

\- Make it easy to navigate between index page and specific groups/projects.
May be on login to index, just show a dashboard with all groups/projects that
I am part of. If Admin, then show me additional options like what you have in
"Admin Area" menu. Here is one idea. Just show all menu options in the left
sidebar and split it like:

    
    
        - Home
    
        - Groups
    
            - Projects
    
              - Project 1
    
                - all menus that shows up for projects
    
        - Admin Area
    
          - Profile Settings
    
          - Users
    
          - Mail Settings
    

\- User profile management is not that good for admins. For example, just
yesterday one of my developers got locked out and I could not reset his access
via the UI. I had to go in the config files to update the lockout timestamp.

\- Also for new users, as admin I want the control to add them as verified
user already. Currently I don't think that options is there in UI unless we
fiddle with the code.

\- For email driver, a simple form in UI will be nice to have. For example, if
I want to use Mandrill, give me that option in the UI.

Bottomline is that even though we are developers, we don't want to change the
.rb files for Gitlab and instead focus on an easy UI.

~~~
jobvandervoort
Happy to hear!

> Does it have a default task management tool or we need to integrate a 3rd
> party ? Couldn't find it in the forums yet

You can use Issues, which comes in every project and can be linked all
throughout your GitLab instance. They also integrate with merge requests and
can be used 'Kanban' style by using milestones. See our own for GitLab's
issues: [https://gitlab.com/gitlab-org/gitlab-
ce/issues](https://gitlab.com/gitlab-org/gitlab-ce/issues)

You can also integrate many of the popular systems, such as JIRA, Asana,
Trello.

> The UI is a bit clunky in terms of navigation. For example, being able to
> move from the homepage level to specific project back and forth is a bit
> confusing. Would love a re-design of UI.

We're working very hard on this. The coming release will add more context to
the menu and we're looking to improve it further both in terms of design, as
well as UX.

It'd be great if you could share us your thoughts on how we can improve this.

~~~
oblio
Some proofreading issues related to the CI webpage
([https://about.gitlab.com/gitlab-ci/](https://about.gitlab.com/gitlab-ci/)).
). They're minor and easy to fix but I think they would help regarding sales:

-> Multi-platform since you can execute __s __builds on Unix, Windows and OSX.

-> Stable because the GitLab CI is on a different machine tha __t __(n) the ones that perform builds.

Also the whole phrasing is a bit weird, I'd change it to:

 __Key feature: __description.

The way it is now those phrases seem a little clunky and unnatural.

A totally separate issue, what are the limitations for the CI stuff? Build per
day/per OS/whatever?

~~~
jobvandervoort
Thanks, fixed here: [https://gitlab.com/gitlab-com/www-gitlab-
com/commit/a70f6693...](https://gitlab.com/gitlab-com/www-gitlab-
com/commit/a70f66938bedb3fb15caab2f0cdb04918eb0b99d)

Regarding limitations: at this point there are no limitations.

------
_pmf_
It's hard to compete against GitHub. I hope they will get some traction so we
have an alternative to GitHub once it gets bought by MS (and becomes the next
SourceForge).

~~~
nadams
Why would Microsoft buy github? They have their own.

~~~
kasbah
Why did Google buy YouTube when they have Google Video?

~~~
hk__2
YouTube was <1 year old when it was bought; GitHub is 7 years old.

~~~
whisdol
Nitpick: YouTube was 1.5 years old (founded in February 2005, deal finalized
in November 2006)[0].

I just looked that up because I really thought YouTube had been around longer
before Google acquired it. That's interesting to learn, so thanks for pointing
that out.

[0]
[https://en.wikipedia.org/wiki/YouTube](https://en.wikipedia.org/wiki/YouTube)

------
zxcvcxz
Decided to switch to gitlab when I realized github refused to release their
tools on Linux even though according to stackoverflow statistics Linux users
make up over 20% of programmers, matching the number of OS X programmers.

It's unfortunate that they make a living off open source software created by a
lead Linux developer but they act like Linux doesn't even exist.

Not a big deal though, the userbase on github is worse than facebook or 9gag.

Gitlab isn't much better than github when it comes to openess, but it seems to
be the best alternative so far.

~~~
klapinat0r
Which tools are you talking about?

~~~
aidenn0
I assume they're talking about
[https://mac.github.com/](https://mac.github.com/)

~~~
klapinat0r
Ah, thank you.

------
dudul
Nice. I really like GitLab. Made the move after GitHub started focusing on
social justice instead of technology (plus I was tired of the hypocrisy of
them making money from OS while keeping all their sources close), and I don't
regret it.

~~~
jobvandervoort
Great! Anything you miss, coming from GitHub?

~~~
dudul
Not really for now.

The only thing, which doesn't really depend on you I assume :), is I wish
GitLab was used more often as an authentication mechanism by other services. I
don't know if GitLab is actually an OpenID provider or if it's just because
it's not popular enough yet.

~~~
jobvandervoort
Great!

GitLab can be an OAuth provider since version 7.7 [0]. I think it takes a
while for this to be adopted by other services.

Any advice or help improving this situation is welcome.

[0]: [https://about.gitlab.com/2015/01/22/gitlab-7-7-and-
ci-5-4-re...](https://about.gitlab.com/2015/01/22/gitlab-7-7-and-
ci-5-4-released/)

------
philtar
I apologize in advance for my short sighted question as I don't really know
much about gitlab but my question is: does this mean anything for large file
support in the community edition? I find it surprising there are no free
solutions for large binary files other than perforce. Compared to most tools
indie game devs use, perforce is a dinosaur.

~~~
jordigh

        I find it surprising there are no free solutions for large binary
        files other than perforce.
    

There's in fact lots of tooling in Mercurial to handle this precise problem,
as well as gigantic repos. Mercurial's extensibility with these scaling
problems, in fact, is why Facebook has chosen it. If you're not married to
git, try checking out Facebook's Mercurial extensions.

~~~
philtar
What web interface supports LargeFiles?

------
jobvandervoort
As always, if anyone has any questions, we're here.

~~~
scrollaway
Well done guys. I've been thinking about _completely open_ models for a while
now; we have a similar model at work (on FOSS as well).

I'm a hardcore Github fan but I'm really impressed with what you've all been
doing. The more I see your work, the more I want to switch.

~~~
jobvandervoort
That's great to hear.

You can give it a try / use it for free at GitLab.com (public and private).

We would love to hear what hardcore GitHub fans like you miss in GitLab. We
want to be better.

~~~
scrollaway
I'm not sure you can fix it unfortunately but the number 1 thing I would miss
is _the community_. I work with a lot of open source projects and the
consistency and speed at which I can file bugs, fork repositories and pretty
much do _anything_ is really important, and the access to all the github users
is a major part of that.

\--

OK, this post was going to be some minor thoughts but turned into actual
UX/dev feedback. Take from that what you will and keep in mind I haven't used
Gitlab much at all.

What makes Github great:

\- Ease of sharing a project. They got "social coding" 100% right.

\- Filing an issue can take under 5 seconds.

\- The UI is just great, slick, super responsive, everything updates without
refreshing.

\- Syntax highlighting is amazing. Syntax HL in diffs!

\- Github profiles are great. For a lot of devs, github is a CV, keep that in
mind.

\- gh-pages/jekyll integration kicks ass.

\- Referencing and auto-closing issues

\- webhooks, IRC bots

\--

Here are some killer features not present on Github that would make me very
seriously consider switching some large projects:

\- Mailing list support. Think Discourse/Groupserver/Google Groups -> A UI
that doesn't suck, easy to enable for any project or organization, one click
to subscribe/unsubscribe with your account

\- Issue tracker's lack of features is both good and bad. Good for the speed
at which issues are filed, but sometimes you really do need some extra
features. (Marking as dupe; Making as "fixed" when an autocommit missed it;
etc). Shouldn't go the bugzilla route and create meta-work, though.

\- Proper support for mirroring repositories (two-way mirrors?)

\- Improved IRC integration; eg. bots that watch over bug links / "Take a look
at #1234" and spit out URLs and bug titles.

\- Sign in with persona. :)

\--

Where github simply falls short, and misc annoyances I have with it:

\- Organizations/permissions. They said they're working on that.

\- Gists could be improved and integrated with issues (cf. attachments). BTW I
absolutely love gist, does GL have something like that?

\- SSL support for gh-pages on custom domains is lacking.

\- "Clean commit log" workflows aren't well supported. Rebasing messes with
the commit ordering in PRs.

\- Issue references in commit messages are great but when force-pushed several
times, they spam the issues. No way to delete those messages.

\- Comments on PRs disappearing. I haven't thought about proper ways to
improve the PR review workflow on GH, but I know it can be improved.

\- The contributions graph algorithm doesn't deal well with "mass push"
outliers (see what I mean:
[https://github.com/jleclanche/](https://github.com/jleclanche/))

\- The "PRs are issues" legacy still shows itself, they moved away from it
though.

\- I constantly have to clean projects I forked for a single issue.

\- Wikis are cool but kinda lackluster. No way to inter-link pages.

\- It's closed source!

\--

UX thoughts on gitlab.com, the site (about.gitlab.com):

\- No way to see an actual repository, what Gitlab looks like. Github has a
similar issue but at least has an "explore" link. I feel like the "features"
screenshots should be on the homepage. There's plenty room if you
squish/remove the corp/press logos and twitter spam.

\- Video at the bottom is completely out of place. Looking at it, it has 55k
views, that's really nothing. This contradicts my previous note but I didn't
even notice it at first since it was so low.

\- The page is fairly slow to load (~2 seconds). It's also huge. I really
think there's just too much on it. Do you really need testimonies there?

\- Top of the page is overall excellent.

[https://about.gitlab.com/better-than-
github/](https://about.gitlab.com/better-than-github/)

\- Love the link to that page being present, since it's the first question I'm
asking myself. Dropping points on lack of graphics (examples/screenshots)

-> What caught my eye on that page: Attachments in issues. WIP protection is neat but gimmicky. Builtin CI kicks ass! I don't know what Innersourcing means. Maybe "unlimited p/p repositories" should be first? This is a long list, consider reordering some things.

I'm short on sleep, so feel free to follow up with me by email (it's listed on
my profile) if you'd like.

~~~
hk__2
> SSL support for gh-pages on custom domains is lacking

How could they do that? You’re responsible for your own domain, you have to
buy an SSL certificate by yourself.

~~~
teddyh
Just wait until November.
([https://letsencrypt.org/](https://letsencrypt.org/))

------
nhumrich
Just saw that gitlab now offers free hosting, you only pay for support (only
if you want it). Do enough people really pay for support in order to keep
gitlab from going under? Free software is one thing, but free hosting? It just
blows my mind how they can offer such a thing.

~~~
jobvandervoort
We do not make substantial money with GitLab.com.

It gives us the possibility to run GitLab on a very large scale. This helps us
finding performance and scaling issues that otherwise would go unseen. In
short, it allows us to make GitLab even better.

~~~
drinchev
If this is really the case and your business model is aligned with this,
there's nothing else to say, except "Congratulations!".

I didn't know that this can go so well for end-users in such a competitive
environment. I hope I hear more arguments like these from other tech
companies.

How do you call this model? I guess freemium doesn't match with how you make
the benefit out of the website.

~~~
sytse
I guess it is freemium because most larger organizations at some point want to
go on-premises (for security, legal, flexibility or other reasons) and opt for
GitLab EE at that point.

------
r0naa
I am moving my stuff to a self-hosted GitLab.

If you are interested in knowing why:

\- I personally find it a little bit irritating that Github wants to promote
"open-source/free-software", but haven't open sourced their own tools/product.

\- I was disappointed by the way Github handled some internal problems

\- I don't trust Github anymore; I want to be in control of my data.

~~~
krupan
"they/them" refers to someone other than gitlab?

~~~
r0naa
Thank you for pointing that out! they was referring to Github.

------
btashton
I set up gitlab internally a couple years ago and it has been a pleasure. One
big thing I fight is we have a lot of micro services that we want to have the
same label set for and would like to manage against the same milestones. It
would be really nice if label sets and milestones could be created for a
group.

~~~
sytse
Feel free to contribute that feature. I would love to create a milestone for
all projects in a group in one go. Please be aware that if you name the
project milestones the same you can use them to aggregate issues across
multiple project in one view.

------
avinassh
How does the licensing works? Can anyone explain me? [0]

> This software and associated documentation files (the "Software") can only
> be used with a valid GitLab subscription for the correct number of users.
> You are free to modify this Software and publish patches. It is forbidden to
> copy, merge, publish, distribute, sublicense, and/or sell copies of the
> Software.

Isn't the third line contradicting with the fourth or have I misunderstood?

[0] - [https://gitlab.com/gitlab-org/gitlab-
ee/blob/master/LICENSE](https://gitlab.com/gitlab-org/gitlab-
ee/blob/master/LICENSE)

~~~
superuser2
A patch - literally a file generated by "diff" \- only incidentally contains
the original code, mostly your new functions and modifications. So you can't
distrbute a patched version of the software, only the patch itself.

~~~
sytse
Exactly, that is how I meant that.

------
brugidou
As a Gitlab CE user and part of a large company using Gerrit for code reviews
I am really surprised that Gitlab does not try to emulate a bit more the
various enterprise grade Gerrit features available such as full side-by-side
diffs with key shortcuts, review history to easily see what changed since the
last time you reviewed the merge request (even with rebased commits), +1/+2
rules, custom plugins available... Etc.

I know that Gitlab EE has some features like the merge request rebase, but I
don't know how a large company using gerrit could be convinced to switch to
reviews in Gitlab

~~~
sytse
We would love to add features like that. We have side-by-side diffs and
shortcuts, but maybe not what you want. New commits are shown in the
discussion (doesn't work with rebasing). You can have approvers for merge
requests [https://about.gitlab.com/2015/06/16/feature-highlight-
approv...](https://about.gitlab.com/2015/06/16/feature-highlight-approve-
merge-request/) and we support project services
[http://doc.gitlab.com/ce/integration/README.html](http://doc.gitlab.com/ce/integration/README.html)

Anyway, I'm sure that there are still things missing and you are very welcome
to add them to CE or EE. We had large companies switch from Gerrit but we hope
to keep adding features that people currently miss.

------
mrmondo
We've been enjoying GitLab for quite some time now, but I have to say with
every new release they always seem to break something critical for us, there
seems to be far too many regressions and many of them are not communicated
evening with their paying customers - for example the latest one that's been
causing us grief: [https://gitlab.com/gitlab-org/gitlab-
ce/issues/1974](https://gitlab.com/gitlab-org/gitlab-ce/issues/1974)

~~~
odonnellryan
Not to be rude, but isn't their software open source? Can't you try and patch
it yourself?

~~~
oblio
If I've read his post correctly he's a paying customer. Surely that has to
count for something :)

~~~
mrmondo
As well as logging that ticket publicly in case anyone had a contribution to
fix the issue gitlab was contacted through the paid subscribers channel and
their response was that they would follow it up on that public issue. I don't
have an issue with that so let's wait and see A) what the fix is and more
importantly B) what lessons were learnt from the regression.

------
ojanik
Coincidentally, I just installed GitLab to try it out for our small team to
replace BitBucket + Jira. And while its more than capable filling Bitbucket
shoes the issues subsystem is probably worse than github's and nowhere near
flexible as jira.

Most notably: Missing more sophisticated workflows. Search for issues using
multiple labels. Search for issues across multiple projects.

We would also love to be able to do simple time tracking against issues.

Is there no reasonably priced product out there that would fit our (rather
simple) needs?

~~~
audessuscest
I agree, we're using gitlab too and the only problem is the lack of ticket
system feature (due date/alert reminder, multiple people assignment, advanced
filters, simple markdown text editor for client, time tracking, edit default
label for all project,...) otherwise we hightly recommend it.

~~~
sytse
Thanks, we're looking some of these but we want to keep it light and easy to
use at the same time. Please be aware that some scrum tools also integrate
with GitLab [https://about.gitlab.com/applications/#scrum-
boards](https://about.gitlab.com/applications/#scrum-boards)

------
mesozoic
Add a search that isn't terrible and you'll solve most every complaint I have
and hear from others about Gitlab.

~~~
sytse
What search are you talking about, in the issues or in the code?

------
ausjke
Still using Redmine for self-hosting here, Gitlab is too heavy for small
teams. Thought about trying Phabricator but then its various components with
strange names stopped me from trying, plus it seems clunky for small team too.

~~~
jobvandervoort
What makes you feel GitLab is too heavy for small teams?

In terms of load, it can run on a Raspberry Pi.

~~~
ausjke
CPU

    
    
        1 core works for under 100 users but the responsiveness might suffer
        2 cores is the recommended number of cores and supports up to 100 users
        4 cores supports about 1,000 users
        8 cores supports up to 10,000 users
    

Memory

    
    
        512MB is too little memory, GitLab will be very slow and you will need 250MB of swap
        768MB is the minimal memory size but we advise against this
        1GB supports up to 100 users (with individual repositories under 250MB, otherwise git memory usage necessitates using swap space)
        2GB is the recommended memory size and supports up to 1,000 users
        4GB supports up to 10,000 users

~~~
sytse
It runs on a RPi2 [https://about.gitlab.com/2015/04/21/gitlab-on-raspberry-
pi-2...](https://about.gitlab.com/2015/04/21/gitlab-on-raspberry-pi-2/)

------
chriswarbo
Since gitlab closed gitorious.org, I've switched to serving all of my repos as
static files generated from git2html, and accepting patches by email. Once
burned...

~~~
sytse
Just for your information, we had a 'one-click' import from Gitorious to
GitLab.com. It will come online again after the internet archive work is done.

------
aardshark
So if customers want to contribute to fixes for issues they raise, is there a
an easy way for them to do that without revealing who they are?

~~~
jobvandervoort
Yes. All our customers have a direct line to our support. We ask them to raise
issues there, not on the public issue tracker.

------
kevinSuttle
If only this post was written by GitHub.

------
swah
Everything should be open. Its almost immoral to sell software nowadays. No
wonder so many people are flying to mobile...

------
athoik
What about security issues?

Those will be in public too? Or you should contact by email when you have a
security issue.

~~~
dewey
"Sensitive issues, such as security issues with GitLab, will still be handled
internally. We’ll create tracking issues for these on the public issue
trackers that don’t contain exploitable information."

------
davexunit
This article uses a bit of openwashing to make "publicly viewable source code"
seem "open". It's not. It's proprietary.

~~~
jobvandervoort
It is, we don't intent to be vague about this. I hadn't heard of the term
openwashing, but I understand the criticism.

See also our license for our proprietary GitLab Enterprise Edition:
[https://gitlab.com/gitlab-org/gitlab-
ee/blob/master/LICENSE](https://gitlab.com/gitlab-org/gitlab-
ee/blob/master/LICENSE)

And the license for our open source GitLab Community Edition (MIT Expat):
[https://gitlab.com/gitlab-org/gitlab-
ce/blob/master/LICENSE](https://gitlab.com/gitlab-org/gitlab-
ce/blob/master/LICENSE)

~~~
nightcracker
Well, you are. Let me read to you the definition of Open Source:

> Open source software is software that can be freely used, changed, and
> shared (in modified or unmodified form) by anyone.

~~~
scrollaway
Great, the age-old debate on what is and isn't open source vs free software.
We really needed that in here.

Y'all need to stop whining about the irrelevant when companies like these are
doing literally everything else right. It's pretty damn ungrateful.

~~~
mikegerwitz
It's far from irrelevant. Free software advocates are clear: proprietary
software is unacceptable, in any form, for any reason.

It has nothing to do with being ungrateful. We express our appreciation when
software is liberated, or when developers/companies are working toward it. But
it does not change the fundamental philosophy.

~~~
scrollaway
Except of course CE is free software, and this all stems from GP
misinterpreting a very-well-worded _source available_ note.

------
vezzy-fnord
Announcement itself is fine. The way you contrast "open" with "proprietary" is
a bit jarring. It should be free versus proprietary, but if you find that
undesirable, then just go with open/closed.

EDIT: Quite predictably, I got downvoted for asking people to use proper
terminology and for promoting free software.

~~~
nanny
People just hate when you correct their semantics, don't take it personally.
Many people also don't know the difference between free and open. Here's a
popular article by RMS which explains the difference:
[http://www.gnu.org/philosophy/open-source-misses-the-
point.e...](http://www.gnu.org/philosophy/open-source-misses-the-
point.en.html)

~~~
animefan
That ship has sailed. Today, "open source" means "free" in Stallman's
terminology. Asking people to use nonstandard terminology in order to promote
a particular viewpoint is not reasonable.

