Looking at this thread here, Gitlab seems to be much more open about their development than Github, and has a real sense of community, yet Github (still) remains the popular option, despite their more community-hostile traditional board-meeting decision process.
Is there a gradual shift in the FOSS community towards Gitlab (which in all honesty would make more sense), or am I just seeing the enthusiast in this thread?
Github's shortcomings only really came to the fore in the last couple of months, due to a combination of factors. GitLab is working hard to exploit the current window of opportunity to make waves. I'm slightly surprised BitBucket is not doing the same, but their Atlassian masters seem more interested in pushing irrelevant features at the moment (like SSO across products I don't care about).
It's too early to talk about a shift away from GH, but increased variety in the ecosystem can only be a good thing, compared to the dangers of a GH monoculture... especially considering git migrations are literally just one push to a new origin.
That's a poor strategy. All developers start out as free software developers, then gain employment. I persuaded my work to purchase Gitlab EE licenses, due to ease of use and it's excellent features & support. I can't imagine I'd say the same of Atlassian products.
You'd be in the minority. Correct me if I'm wrong, but I'd bet you're at a small company where a low-level employee's opinion was taken into account when making the decision of which product to use for 10-50 people.
In medium to large sized companies, Atlassian will usually win out when you have a CTO that manages 100+ developers. Enterprises really like to stick with the "safe bet", where there are expensive licenses and dedicated account managers from the service provider.
Jira in particular is extremely popular with the modern addiction to Agile. Once you're on Jira, you just start to fall onto connecting all the related products like Confluence for wiki and Bitbucket Server (formerly Stash) for git. I'm not saying it's the best thing to just ignore all other offerings, but in my experience CTOs do exactly that and just go straight to Atlassian for everything.
Basically, if your company is using Exchange... expect to be forced onto Atlassian. Welcome to the enterprise.
I've used plenty of other options- we even ran an internal GitLab instance prior to moving to BitBucket at my last company. Atlassian's suite of products are a safe bet because they're generally good products.
I like the GitLab feature set more than BitBucket but when I went started my own company it was generally cheaper for my team of 5-8 to use hosted JIRA, BitBucket, and Confluence then it would be for me to pay AWS/Rackspace/Azure/Digital Ocean to run the F/OSS equivalents in our cloud environment. BitBucket integrates just fine with Jenkins and the new Project organization was much needed.
We may someday move to GitLab or something else, but there isn't anything wrong with choosing Atlassian in any way. It's not like they're an Oracle/SAP type company that just abuses their customers and has awful products.
Great to hear you're using JIRA, Bitbucket and Confluence together. How is the integration between the tools? It's definitely a use case we're hearing more often where teams need more than just storing and working on code.
They're getting better. BitBucket and JIRA work together quite well. With "Smart Commits" in the JIRA hosted version that allow us to move a ticket's status, comment on it, log time, or just show activity towards a ticket via Git commit messages. I use the heck out of it and the team is following quickly behind.
JIRA follows the feature branching workflow pretty well, so if you branch from dev/master with the ticket number as the start of the branch name you can click through to that branch straight from JIRA, which is generally pretty nice.
Confluence isn't nearly as tightly integrated with either. There are some reports, widgets, and stuff you can grab out of JIRA and make some dashboard type reports. Nothing special- we use Confluence to document architecture, deployment procedures, etc. We're definitely not Confluence power users.
It's so funny that this is the way it's become, as Atlassian grew up being the cheaper, simpler alternative to extremely expensive, super opaque, ultra closed source systems like Clear Case. I remember a time when Atlassian actually raised the prices of Jira's top level of support and service because enterprise CTOs were confused by such a low price point.
Ten years ago I made exactly this migration for a SaaS shop's helpdesk & dev team. At the time JIRA was easily the best value & most customisable solution for integrated ticket tracking. I learned Java & Groovy to write extensions for it. It wasn't just CTO/CIO friendly, JIRA really was the great choice at the time in both UX and ease of implementation. Especially if you'd been bogged down hacking RT or GNATS or permanently scarred by anything from Rational.
What I realised is that eventually they're all ad-hoc, informally-specified, bug-ridden, slow implementation of a workflow engine and metadata service. Your choice is mainly of the interface and domain-specific layering violations.
Troll-friendly soundbite: Atlassian is the new Rational.
> All developers start out as free software developers, then gain employment.
I don't think that's true. Some people never get involved in free software even as a hobby. Some people get apprenticeships and learn to program from scratch on the job.
Or, strange as it may seem, they learn how to write software from a four-year college degree. And colleges are notoriously bad at teaching so much as source control, let alone what source control options are there, how to use a bug tracker, etc. (Which makes sense, because you don't strictly need source control if you aren't collaborating heavily, and you don't need a bug tracker if you have a single development week-by-week.)
Seriously... My favorite was in a lower level DB class we had to write, basically, a small PHP app connected to MySQL. On the first day of class the instructor stressed this class was about databases, not PHP, and would basically just cover getting a connection going and the rest was up to us. I think having been doing development and getting paid for it via 'internships' at various companies when I was younger really made me a better, but angrier student in my college CS days. On the one hand, I needed zero time to get up to speed on C, C++, Java, and PHP syntax so I could focus on the algorithms and other topics being taught. But I doing so it became very clear that I was going to the real world and most of this stuff wasn't coming with me.
I agree there is something to be said for bottom-up marketing, but asserting that "all developers start out as free software developers" is completely untrue. In fact, I'd guess that people who actually develop free/OSS software are far outnumbered by those who don't.
We tested Bitbucket Server when it was still called Stash, and compared it to Gitlab at the time.
- Merge requests/code review in Gitlab is much better, whereas with Atlassian they recommend purchasing another product
- Integrated Wiki, whereas Atlassian they recommended Confluence
- The UI is absolutely terrible, even now the Bitbucket front-page where it dumps you when logged in is a disorganised mess and I can never find what I am looking for
- Speed, Gitlab running on my own server is MUCH faster, compared to Stash
- There was no way to easily add code snippets to be shared with the rest of the team, ala Snippets.
- Integration with the rest of the Atlassian toolset was so-so, and left a lot to be desired honestly.
- Statistics and information about the code and who is contributing and everything along those lines, makes for pretty graphs that make higher ups happy.
- Bitbucket doesn't currently have a view within the web interface for how many commits have been made to a project. People like numbers, and watching them grow!
- I have to reiterate, the UI is absolutely terrible in Bitbucket/Stash.
And the real killer is that I can get Gitlab CE and never pay you guys a dime, I've in the past helped out in the Github issues with debugging, and I can be part of the community. The only feature from EE that I need is the ability to use LDAP groups to define what users can and can't access various repositories, and the company I work for can afford to help pay for Gitlab's future to stick around!
I'm guessing Atlassian frequently goes after those sort of enterprises were the decisions are made by management with little input from the actual end-users of the product.
> I'm slightly surprised BitBucket is not doing the same, but their Atlassian masters seem more interested in pushing irrelevant features at the moment
Yeah, I fear Bitbucket will always be shackled to the rest of the Atlassian product line, and never really allowed to innovate much.
Hey, Kelvin from Atlassian here. We are pretty flat out ourselves improving both Bitbucket Cloud and Server. I can see how SSO isn't terribly important if Bitbucket is the only one of our products you use, but it's critical for our customers who co-own Bitbucket and JIRA (or Confluence, or HipChat, etc.). It was a fairly massive undertaking: retrofitting auth across our portfolio of products took some serious engineering effort. But we've still managed to squeeze a few fairly large releases out recently shipping features such as smart mirroring, Git LFS, and clustering - and have some other great stuff in the pipeline.
Any chance BitBucket has a public roadmap? I'm a user because of your free private repos, I hope to grow into a paid user this year. Thanks for all that you do!
Great to hear! Not quite, but we try to keep relevant feature requests on jira.atlassian.com (for Server) and https://bitbucket.org/site/master/issues (for Cloud) as up to date with progress as we can.
Honestly, I don't know why you didn't have SSO years and years ago. You encourage crosslinking between products that have distinct session lifetimes, I feel like I spend all day typing in my password again.
(Also, can you take the fucking 'remember me on this machine' button away? It's a cruel, cruel tease. It has not worked a single time on 4 different installations I've had accounts on over the years)
Did LFS support ship just for self-hosted? I was searching for a home for a few private repos days ago and #11204 showed LFS as still unsupported for hosted BitBucket.
Yup, I am aware of that thanks to my obsessive reading of HN :-) But I was just pointing out that it's not easy as switching a git origin in case you want to move to something else other than GitLab.
GitLab has a ton of strengths, but still has large weaknesses in the area: gitlab.com implementation and design.
gitlab.com is the public 'demo' version which people compare to github. It's missing a few key items that would make it appealing to open source developers (and that I'd like to see them prioritize.) E.g.:
* Site search. It's been broken for months or possibly years. (Response time > 45 secs., Relevancy is miscalculated: "gitlab" itself does not appear in the search results.)
* Repo / project discovery and social features are extremely primitive.
Yeah, that was the page that convinced me I should try to join. But,
"A note on the technical interview: As part of our interviewing process, you may be asked to pick an issue from the GitLab CE issue tracker, and code ‘live’ with the interviewer there to talk with and collaborate with. We do this because we believe that it is the best way for you to see what the work is really like, and for our interviewer to see how you think, code, and collaborate." Actually, it's the opposite of how to find out how I think and code.
Do you have a profile on GitLab.com, GitHub or Bitbucket?
No.
What (open source) project that you built or contributed to are you particularly proud of / passionate about?
None.
Were you referred by a current GitLab team member?
No.
I once discovered that one of the most effective developers in the world would've had similar answers.
We give you something real to work on but we'll be in a Google Hangout to discuss it with you: "As part of our interviewing process, you may be asked to pick an issue from the GitLab CE issue tracker, and code ‘live’ with the interviewer there to talk with and collaborate with."
For an in-house installation, it would also be useful to have an editable front page of some sort. Here, you could publish notable projects, or perhaps the ones most sought after. It would also be a channel for news, faqs, etc.
Totally agree on the project discovery bit. Noticed the same thing when I played with it. I added a couple tickets to try and encourage them to fix it.
That will definitely hurt the FOSS community adopting them, but they're becoming very appealing for private projects. At work I use BitBucket, but GitLab now has better looking Issues, and with built-in CI it's becoming hard for me to resist switching.
1. Free software needs free tools (I did not consider GitHub or Bitbucket at all).
2. Excellent team management and access control.
3. Excellent integration of their CI in the interface, with ability to run own build servers ("runners", in their jargon). This is critical, because setting up the toolchain needed to build takes some time, and I can use the beefy hardware I already have, without having to setup jenkins.
4. Lovely UI.
The only real alternative in this space without setting up custom infrastructure is Savannah.
Or, if willing to compromise on principles, GitHub, which has a lot of incremental downgrades compared to GitLab.
I can't tell if there is a real shift, I would say no. GitHub, in a lot of people, is synonymous to Git. GitLab is superior in a lot of ways, more feature, open source, very open as you pointed out. Their pricing model supports free private repos. Not sure what it would take to really make people reconsider GitHub as the default goto place to host OSS repos.
GitLab is great, but it's kind of a copycat project. Nothing wrong with that, it's just there really isn't a compelling reason to join beyond "less-predatory pricing".
And the people who care about that use private repos, not OSS.
It'ss quite bad for my company. We have to pay per repo and we like to create quite a lot of small libs and microservices. I'd like to have a option of per user payment.
Very similar here. My startup is 3 years old with ~10-15 developers, but we make many small repos -- about 150 in that amount of time.
Even though it's not tons of code, GitHub's pricing breaks down horribly in this case. I think that that in the long run many startups will move to embrace GitLab in the early days for price if nothing else.
Suppose you are a web agency. Every single project for every single client should be version-controlled, right? But that tends to quickly add up when using GitHub - about a dollar per project per month.
So, if my company finishes 30 projects per year, we'd be paying $360/year to GitHub for what is essentially "storing a backup". And if we do this every year, that's $1000/year within 3 years.
Not to mention that for "Organizations" the prices are doubled. For some reason. So... $2000/year?
Right now the same job is done by a $5/mo linode, with the prospects of upgrading to $10/mo.
For example, a lot of people complain about issues on GitHub. GitLab handles those much better, that could be a compelling reason to move, but somehow it doesn't seem to be enough.
Private repo can be useful for early stage of OSS projects.
Agreed though that it still feels too much like a clone of GitHub. The UI for example is way to close to the original.
Having used both there's more than enough in either that's bad to justify a switch to the other if you really want to. I personally prefer github's warts to gitlab's. In particular, I find that general site navigation on gitlab is quite tedious and it rarely centres useful information first. But that is very much a qualitative and not a quantitative complaint.
The main thing I find extra useful on gitlab is the ability to mark a MR as a WIP.
Glad you like our WIP function. Do you maybe have any suggestions how we can make navigation better and/or examples of pages where you are missing information?
The decision of what does and doesn't go in the sidebar is very non-intuitive (sometimes what I want is in the sidebar but sometimes it's in the main page). For example, in groups and user profiles you can find the list of projects in the main body of the page (and it's not visible immediately). Why is it not in the sidebar if you have a sidebar? And then the ordering is also a bit weird -- I don't think many people would consider the order in GitLab to be "in order of importance" or even "regular use". And why can't I see the set of files in the repo when I first open it? This is something I feel GitHub does better -- things are much faster to access and IMO much more intuitive.
> The decision of what does and doesn't go in the sidebar is very non-intuitive
We try to put top level navigation into sidebar and everything else in the main page. For example navigation to `Projects` is in sidebar however tabs to switch between starred projects or personal projects is in main body.
> For example, in groups and user profiles you can find the list of projects in the main body of the page (and it's not visible immediately). Why is it not in the sidebar if you have a sidebar?
> And then the ordering is also a bit weird -- I don't think many people would consider the order in GitLab to be "in order of importance" or even "regular use"
Ordering of projects is either by last activity or alphabetically. But in any case there is usually a dropdown in UI to sort by other criteria.
> And why can't I see the set of files in the repo when I first open it?
You can set what to see first at https://gitlab.com/profile/preferences page. We believe README is something people would like to see first we allow users to set different default page based on their preferences.
P.S. Thank you very much for your feedback. It will help us make GitLab UI more intuitive.
It's not about the number of approvers (just one), but more the approver knowing that the submitter is done making revisions. Usually after the first merge request, we do code review then wait for revisions, that's when the tag happens.
Now this would be awesome:
> We’re thinking about more improvements to the Merge Request Approvals, the main improvement being automatic suggestions for reviewers, based on the history of the changed files in the merge request. For instance, if Jane worked a lot on a certain class and you submit a change to that class, Jane gets suggested to approve your merge request.
Today we are using the self-hosted community edition though.
I believe every Techstars batch does a tools survey across batch companies (at least R/GA Techstars in NYC did) then emails everyone the summary with bar charts.
The one I have is mostly about analytics, sales, and support tools, and unfortunately repository hosting wasn't a question asked. I also wish they would make this data source public so others could see shifts early -- for example the wave from HipChat to Slack would have been very visible.
Perhaps StackShare might be the closest open source of similar data.
Personally, I have moved away from Github because I'm finding Gitlab Flow to be more useful. It enables collaborators to have a kind of Gerrit/Critic work-flow to review potential merges without having another system to integrate.
The biggest feature that Github provides is its popularity as a central meeting ground for project discovery and collaboration. Some people are only looking for git hosting and don't care about the community aspect, so they could jump ship to Bitbucket or Gitlab.
In that respect, if you're looking for a social network to keep in contact with a general group of people, Facebook is the way to go, and not the myriad of smaller sized social networks. If you're only looking for communication with a small group of people who haven't committed to anything, then you could jump ship to Google+ or whatever. Size of community is the salient feature, not the app.
Facebook is not for me. Msybe its because most of mine freinds are party people. I feel very isolated. I rarely go on it and I find github the only social network I really care about. I feel as though its not really that social though since I only get to talk to people when I bring something to eat the table. Big node repos +1s, the I barely use the follow feature despite having access to some of the most prolific programmers of my time. I want a social programming network. No idea what it looks like, but github has definitely helped curb the isolated feeling. I havent played around with gitlab enough but Im sure it has more potential
Is there a gradual shift in the FOSS community towards Gitlab (which in all honesty would make more sense), or am I just seeing the enthusiast in this thread?