13 ms·
GitLab 8.15 Released
- jobvandervoort 10y agoAs always, we're here for any questions and welcome feedback and other comments.
- sytse 10y agoPeople mentioned that seeing the video made their jaw drop, they didn't expect such an integrated experience. I would like to know what people think, both good and bad. Currently the plan is to improve the idea to production experience every release to make sure everyone can replicate it https://gitlab.com/gitlab-org/gitlab-ce/issues/25986 https://gitlab.com/gitlab-org/gitlab-ce/issues/25986
- deleted 10y ago[deleted]
- chmln 10y agoI'd usually refrain from "+1" style comments, but you guys rock! Its great to finally see some improvements in the interface, but its still rather far from being as user-friendly as GitHub. I've got some very specific aspects in mind. Are contributions to Gitlab's interface accepted?
- connorshea 10y agoWe'd strongly recommend that you open an issue to discuss it first, but yeah, of course they are! :)
- no_protocol 10y agoCan you share what these items are? I have used GitLab quite a bit and GitHub just a little, and I so far have enjoyed using GitLab much more. I had a hard time finding my way around on GitHub. The main parts I've used in both are creating Issues and Merge Requests, and in GitLab I've accepted them and managed teams/projects.
- chmln 10y agoSure, some things off the top of my head: - On the main project page, the file list/table cells have too much padding. The same project's file list, with 22 files, on GitHub fits on my screen comfortably. On Gitlab, the whole table sits at 928px in height. Reducing the top/bottom padding in cells to 5px, without a loss in usability, yields a much nicer 708px height - The two panels above the file list (the branch, and the latest commit) could be streamlined and merged - Frankly, the whole area with the project name and the buttons below is incredibly and unnecessarily convoluted. Some important links are grayed, some others are not relevant for every project (e.g. I don't need a contribution guide for my private project) - A lot of links are indistinguishable from text
- nmrony 10y agoHi chmin, thanks a lot for your suggestion. We will look into it. Please feel free to open an issue regarding that if you want. We are also considering about the line length in a file so that people find it more friendly to read. https://gitlab.com/gitlab-org/gitlab-ce/issues/13680 https://gitlab.com/gitlab-org/gitlab-ce/issues/13680. Thanks again for your suggestion :-)
- robinhood 10y agoThanks for your comment! Contributions of any kind are always appreciated. We have a guide about contributing [0] that will help you in the process. You can also create an issue [1] to let other people participate to your suggestions if you like. [0]: https://about.gitlab.com/contributing/ https://about.gitlab.com/contributing/ [1]: https://gitlab.com/gitlab-org/gitlab-ce/issues/new https://gitlab.com/gitlab-org/gitlab-ce/issues/new
- orf 10y agoHoly hell this is amazing! Gitlab all the way! You release often and there is always something awesome in there, I love reading your release notes. One thing I find strangely lacking (seeing as you bundle it) is notifications from gitlab to mattermost when builds fail or issues/mrs are opened. Apparently I have to run some strange 3rd party application to process webhooks?
- connorshea 10y agoI'm not sure I understand why you're under the impression that you need a 3rd party application for that, as far as I know it's possible with just GitLab and Mattermost. If there are any confusing docs we need to improve I'd be happy to do so :) Build failures can be sent to Mattermost using our Pipeline webhooks described here: http://docs.gitlab.com/ce/web_hooks/web_hooks.html#pipeline-events http://docs.gitlab.com/ce/web_hooks/web_hooks.html#pipeline-... And then the Incoming Webhooks in Mattermost described here: https://docs.mattermost.com/developer/webhooks-incoming.html https://docs.mattermost.com/developer/webhooks-incoming.html
- exstudent2 10y agoGreat stuff! One thing that's been broken for me for a while now: Raw links. I just get an empty response. It's kind of an important feature for me (and I'm sure others) so would love to see it fixed.
- robinhood 10y agoI don't understand what you mean by that. Can you create an issue about it [0] so we can discuss it and fix the problem (if applicable)? Thanks! [0]: https://gitlab.com/gitlab-org/gitlab-ce/issues https://gitlab.com/gitlab-org/gitlab-ce/issues
- exstudent2 10y agoWhen you're viewing a source code file, there are links to Raw, Blame, History, Permalink... The Raw link is broken (for me). I can create an issue.
- robinhood 10y agoYes, please do file an issue with what you encounter, because I can't reproduce it.
- brodock 10y agocan you please create an issue and/or paste the issue here?
- ylere 10y agoWow, that is an amazing release. Seems you actually managed to complete your goal right before christmas! This whole year has been quite impressive, I can't wait to see what you will do in 2017.
- robinhood 10y agoThanks! We are super happy to have completed our vision on Idea to production this year. We'll keep improving and innovating in 2017, you can count on that :-)
- sytse 10y agoOne of the things we'll do is to make sure everyone can replicate the idea to production flow, see https://gitlab.com/gitlab-org/gitlab-ce/issues/25986 https://gitlab.com/gitlab-org/gitlab-ce/issues/25986 I'm also excited about adding Prometheus monitoring for apps you deploy https://www.youtube.com/watch?v=NFPGtbQfL1A https://www.youtube.com/watch?v=NFPGtbQfL1A
- contingencies 10y ago@Gitlab: The features are great but the interface setup is shocking. That whole video assumes you have a K-cluster going already, and is a maze of this-thing, that-thing, auth-thing, copy-thing, etc. Have you guys ever tried interviewing users who are new or maintaining a Gitlab instance over major version upgrades? It's painful. The 'quick fix' for setup these days is supposed to be to use a docker image... but the docker image most people use is unofficial, the maintainer is swamped and has a policy of ignoring problems, and although it runs it doesn't work well with real IPs/DNS/SSL/etc. for common cases (eg. email setup silently fails for many and has for ages - see https://github.com/sameersbn/docker-gitlab/issues/596 https://github.com/sameersbn/docker-gitlab/issues/596 and https://github.com/sameersbn/docker-gitlab/issues/1005 https://github.com/sameersbn/docker-gitlab/issues/1005 which I recently opened) and adds the docker-is-a-moving-target complexity issue to the potential user's stack. Normally I am based in China. Given that Github access is not super fast or stable there, you guys have a great opportunity to take that market. I'd personally love to use Gitlab both for my own business and those I consult for, but I can't get past go with mail on real infrastructure, and experiences with upgrades to date have been terrible. Just offering my own recent experiences as a point of reference.
- connorshea 10y agoThanks for the honest feedback, it's genuinely useful for improving the product. Out of curiosity, why use the Docker image over our Omnibus package? Omnibus is generally what we recommend, but if that's not good enough we'd love to know how it can be improved.
- contingencies 10y agoEven if I trusted it not to munge other things (doubtful), IIRC omnibus does not support my distro (Gentoo), and setting up another distro I have to (remember to) maintain just to support one application does not appeal medium term versus using a popular docker image which has done that for me already in a pre-tested fashion and should handle maintenance smoother. Basically I'm at this point: 'what's the easiest self-contained box to run and maintain', with conditions 'I have an IP but it's not dedicated (ports 22/80/443 unavailable)' and 'there may not be existing DNS/SSL for this server but I can set it up' and 'SMTP from this IP is not desired/desirable, but I have an existing offsite ISP allowing relay with credentials'. This doesn't strike me as particularly weird, except that in the latter case Google is not an option (GFW'd from China).
- sergiotapia 10y agoI'm curious how you guys build features for EE. Is it a completely separate Rails project you handle manually to keep base features in sync with the community edition? EE is open source but requires a license. Do you just trust companies won't download the source code and run it. Do you have heartbeat code injected somewhere to ping servers that are running EE to homebase? I'm thinking of starting a project, charge money but also open-source it. Curious what your strategies are, especially since the project is still greenfield. Thanks!
- robinhood 10y agoEE (Enterprise Edition) and CE (Community Edition) are two separate projects indeed. Before each release, CE is merged to EE manually. We encourage you to start a project, try to monetize it and also open-source it. The benefits of open sourcing are huge. Take a look at some of blog posts about that: [0]: https://about.gitlab.com/2016/07/08/7-myths-about-open-source/ https://about.gitlab.com/2016/07/08/7-myths-about-open-sourc... [1]: https://about.gitlab.com/2016/07/07/trends-version-control-innersourcing/ https://about.gitlab.com/2016/07/07/trends-version-control-i...
- connorshea 10y ago>I'm curious how you guys build features for EE. Is it a completely separate Rails project you handle manually to keep base features in sync with the community edition? It's the same codebase with some additional code. Every few days we merge CE into EE[1], which always ends up with some merge conflicts – though those are getting better as we learn to engineer around them – and its own problems, but it works pretty well. I think this is a great system, even with its drawbacks, if you want to keep the base product as FOSS. Just be aware of the problems you'll likely run into, and avoid implementing any EE-only features that will cause crazy merge conflicts. >EE is open source but requires a license. Do you just trust companies won't download the source code and run it. Do you have heartbeat code injected somewhere to ping servers that are running EE to homebase? It has a built-in system for uploading the license and verifying that the license covers the users of the instance. The license (as in the copyright license) says that users cannot use EE if they get around that. We don't have many cases of piracy as far as we know, and don't care too much. No major enterprise customer would realistically pirate software since that'd be a legal nightmare if they were caught. >I'm thinking of starting a project, charge money but also open-source it. Curious what your strategies are, especially since the project is still greenfield. Best of luck! It's awesome to see others try to go for this kind of model, I hope it works for you :) Some others to look at: Sentry, Mattermost, and Code Climate. [1]: Example of a CE-to-EE merge request: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/991 https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/991
- wernerb 10y agoAs a paying gitlab ee customer, we love to use gitlab. I just have one gripe with review apps. We would really like you to open it up with an API. Allowing us to create the infrastructure outside of gitlab-ci and setting the reviewapp url/domain etc using the API would be extremely valueable for us, as we are stepping off of the gitlab-ci, but would very much like the UI interface upgrades review apps provides. We are stepping off of Gitlab CI because of: * Only a single pipeline allowed per repository. We have a monorepo as we have a lot of small artifacts that make no sense to split out to multiple repo's and have to manage using gitsubmodules or having a separate code review process (we use merge requests a lot!) * Gitlab-ci's "stages" and not allowing dependencies on cross-stage is not helpful * No "skipped" status that can be supplied during the pipeline. E.g., we want to ignore changes to our documentation .
- sytse 10y agoIf you have specific functionality that is now only in the interface in an API we'd be glad to have a look. But it sounds like you want to replace functionality in .gitlab-ci.yml with an API, this would be hard. Instead we would gladly word with you to make GitLab CI better so you can keep using it. 1. Single pipeline => I understand using a monorepo. But I don't understand yet why you need multiple pipelines. Does the pipeline work different depending on what file is updated? 2. Do you mean cross project pipelines? https://gitlab.com/gitlab-org/gitlab-ee/issues/933 https://gitlab.com/gitlab-org/gitlab-ee/issues/933 3. Do you mean setting criteria for build skipping in .gitlab-ci.yml ? What would be an example criteria? Since you are a paying customer feel free to work with our support team to have the features you need prioritized. We want everyone to be able to use GitLab CI.
- grzesiekb 10y agoThanks for this feedback! At GitLab, we believe that work is never done, and we are always looking for things we can improve, in our CI solution as well! Let me address some of your concerns: 1. There is only one pipeline allowed at the moment (see issue about support for multiple pipelines: https://gitlab.com/gitlab-org/gitlab-ce/issues/22972 https://gitlab.com/gitlab-org/gitlab-ce/issues/22972), but you can use multiple builds / stages to usually achieve the same. We also plan to add ability to control status using exist code from the build (see https://gitlab.com/gitlab-org/gitlab-ce/issues/25738 https://gitlab.com/gitlab-org/gitlab-ce/issues/25738). You can also use our pipeline trigger API with environment variables to control what get executed. 2. That is true, we already did some backstage work to improve that. In the meantime it is possible to explicitly depend on builds from the previous stages to download all artifacts in subsequent jobs. 3. I'm not sure if I understand correctly, what you want to accomplish, but if `[ci skip]` is not enough, then status based on the exit code may be helpful as well.
- Walkman 10y agoThis is nice and all but what about page load times? It can have all the bells and whistles but if you have to wait a minute for just one page to load, it's unusable.
- connorshea 10y agoWe've spent quite a bit of time this year improving performance, GitLab.com is still slower than it should be but it's a lot better now than it was in January. Self-hosted instances that meet the recommended specs are already fairly performant, though we're always working to improve things regardless. As mentioned in the blog post, this release we decreased page size a lot (from 1800kb to 718kb for a given Merge Request). We're also working on moving to our own infrastructure, the reasoning behind that move is described here: https://about.gitlab.com/2016/11/10/why-choose-bare-metal/ https://about.gitlab.com/2016/11/10/why-choose-bare-metal/ EDIT: Strike that, we've decided against moving to bare metal for now due to the complexity. I somehow missed that decision.
- napsterbr 10y agoDon't know exactly why you decided against moving to bare metal, but IMO you definitely should. We've got tremendous improvements moving to metal. I also can't recommend OVH enough. Best price on market plus great hardware and uptime. Technical support isn't the best but you shouldn't need it anyway.
- lbotos 10y agoI also work at GitLab on a non-infra team. Here is Sid's explanation: https://gitlab.com/gitlab-com/infrastructure/issues/727#note_20044060 https://gitlab.com/gitlab-com/infrastructure/issues/727#note... I, personally, was apprehensive of going to bare metal for most of the reasons that Sid lists in the above message, and I think that making the app just _better_ is where we should focus before we try and run to pure hardware to solve the problem.
- napsterbr 10y ago
- hackerboos 10y agoI love how easy the integration with Openshift is. Does anyone have any resources to get a Openshift Kubernetes cluster setup?
- snuxoll 10y agoActually, it's incredibly easy, especially in tandem with CentOS Atomic Host. Here's my setup at work I just deployed last month: osm01-03 - OpenShift masters, don't run anything other than OpenShift services (Atomic host) osn01-03 - OpenShift nodes, actually run the apps (Atomic host) osnlb - Load balancer for the master (CentOS 7) oss - NFS server providing storage for OpenShift docker images (CentOS 7) On your storage node make sure /exports is on a separate filesystem with adequate storage to store your container images, it will be set up automatically from there. Once you have these couple servers spun up (You can skip the multiple masters + load balancer if you don't care about HA, though I recommend it) from a CentOS box you want to deploy from make sure you push an SSH key out to all the servers for root access then run the following. yum install centos-release-openshift-origin yum --enablerepo=centos-openshift-origin-testing install atomic-openshift-utils atomic-openshift-installer install Walk through the installer, making sure you pick "OpenShift Origin" to install the upstream (non-commercial) build, say "container-based" for every atomic system you have, and tell it which are your HAProxy (load balancer) and Storage servers, plus what your default domain will be (I recommend using either a subdomain of your existing corporate domain, or buying a new one for openshift use). After you're done specifying your configuration it will generate an ansible playbook and stash it in ~/.config/openshift and start building your cluster out. Once it's done you just need to set up your DNS entries (whatever your master hostname is should point at your load balancer, then I recommend you add a wildcard DNS entry for whatever domain you chose and point it at all of your nodes). The last thing you'll need to do is configure authentication [1] as by default it will take any username/password combo, and setup the default builder images [2] [1]: https://docs.openshift.com/enterprise/3.0/admin_guide/configuring_authentication.html https://docs.openshift.com/enterprise/3.0/admin_guide/config... [2]: https://docs.openshift.com/enterprise/3.0/install_config/install/first_steps.html#creating-image-streams-for-openshift-images https://docs.openshift.com/enterprise/3.0/install_config/ins... Sorry for the wall of text, I spent two days figuring this out myself - but after a month in production my team is loving OpenShift and we've already deployed three greenfield apps on it. It's getting a lot more love than I ever expected, and I'm already looking at needing to give my node VM's more resources. Feel free to email me at the address in my profile if you have any questions.
- softinio 10y agoI recently registered to try gitlab. I received unprecedented large amounts of spam from them daily with no unsubscribe button. I finally emailed them to stop the spam and they did but not completely I received more but had unsubscribe this time. Unsubscribed so lets see what happens. One more spam and I will close my account and never try them again GitHub is great, does the job incredibly well, doesn't get in the way and have never been spammed (tip for you gitlab here). [update] Please don't forget to downvote me for giving honest feedback :-)
- kaishiro 10y agoI'm curious what kind of spam you were receiving. I'm not sure I've ever received unsolicited email from them.
- softinio 10y agoMarketing stuff. And I am not against them marketing their features but it should have had an unsubscribe button and sent in moderation in my opinion. Interesting that I get downvoted for giving honest feedback. I would have thought it would help them improve seeing how different marketing ideas impact their users.
- kaishiro 10y agoGotcha - interesting. Just as another anecdote - I signed up ~8 months ago and have never received any non-transactional (marketing) emails.
- corobo 10y ago> Interesting that I get downvoted for giving honest feedback My hunch is the "GitHub is great" line, it feels a bit unnecessary and somewhat shill-y.
- jasonkratz 10y agoOr maybe downvoted because they do have an unsubscribe link? Every email I receive from GitLab has an unsubscribe link at the bottom.
- angry-hacker 10y agoAre there notable projects or organizations moved to gitlab.com? On top of my head I only know f-droid that is there. I use it for personal use and love it, would love if more projects moved away from github.com, especially open source.
- sdesol 10y agoI talked about GitLab and how they can compete against GitHub in this past comment https://news.ycombinator.com/item?id=11155293 https://news.ycombinator.com/item?id=11155293 and at the present moment, they are still pretty far from being able to convince notable projects to leave github.com for gitlab.com The biggest issue right now, is there is a measurable difference between gitlab.com and github.com, which is, it's much slower. GitLab is working on this and I have no doubt this will become a non-issue in the future, but they still have to deal with the fact that you can't compete with being "as good as". Even if gitlab.com becomes as good as github.com, they will still have a difficult time, to convince others to leave github.com for gitlab.com I guess my point is, since github.com is the incumbent, the only way that gitlab.com can become the next place to collaborate, is they have to make it clear, that they are better than github.com They can't strive for equality, since you can't compete with "as good as".
- Vinnl 10y agoIf they get to "as good as", they have the advantage of being open source. This could convince _some_ projects.
- daxelrod 10y agoNote that gitlab.com runs on GitLab EE, their commercial product, which is not FOSS. This is why the GNU project hosts their own instance of GitLab CE for themselves.
- connorshea 10y agoDanger hosts their website with GitLab Pages[0], iTerm hosts their issue tracker there[1], the game Xonotic is hosted on GitLab.com[2], and then VLC[3] and GNU[4] both have their own instances of GitLab. [0]: https://gitlab.com/danger-systems/danger.systems https://gitlab.com/danger-systems/danger.systems [1]: https://gitlab.com/gnachman/iterm2/issues https://gitlab.com/gnachman/iterm2/issues [2]: https://gitlab.com/groups/xonotic https://gitlab.com/groups/xonotic [3]: https://code.videolan.org/videolan/VLCKit https://code.videolan.org/videolan/VLCKit [4]: https://git.gnu.io/explore/projects https://git.gnu.io/explore/projects
- maktouch 10y agoI love gitlab! We just deployed our review app deployment to Kubernetes (create a new subdomain in route53, create a new namespace in k8s, create all kubernetes manifests in that namespace, create ingress manifest, boom!). Here's some thing I wish for gitlab: 1. On merge, run "stop_review" so that we don't end up with a lot of old review apps. 2. I wish you could take over https://github.com/sameersbn/docker-gitlab https://github.com/sameersbn/docker-gitlab or offer something similar. I find it a little crazy that you have a single docker image for redis, gitlab, postgresql. There's multiple reason why we don't want to use this, but the simplest is: we already have mysql running (and feel no need to move to pgsql), and we already have experience in running redis.. I kinda like my containers to do 1 thing and 1 thing well. Merry Christmas, thanks for this patch!
- sytse 10y agoGlad to hear you love GitLab and are using the review apps https://about.gitlab.com/features/review-apps/ https://about.gitlab.com/features/review-apps/ Thanks for the wish list! 1. Automatically stopping the review on merge makes a lot of sense. The issue for that is in https://gitlab.com/gitlab-org/gitlab-ce/issues/22191 https://gitlab.com/gitlab-org/gitlab-ce/issues/22191 and it got added to 8.13 if I'm not mistaken https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6669 https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6669 2. As you know we already have official docker images with https://docs.gitlab.com/omnibus/docker/ https://docs.gitlab.com/omnibus/docker/ so we won't take over Sameer his work. If you want to have separate containers for the datastores (totally a good idea) I recommend you use the Helm Chart https://github.com/kubernetes/charts/tree/master/stable/gitlab-ce https://github.com/kubernetes/charts/tree/master/stable/gitl... It has separate containers for Redis and PostgreSQL https://github.com/kubernetes/charts/blob/master/stable/gitlab-ce/requirements.lock https://github.com/kubernetes/charts/blob/master/stable/gitl...
- ayufan 10y agoHi maktouch, 1. Since the review apps is tied with a branch, as soon as branch is deleted the review app is stopped. This actually happening in above video. At the end you see the stopped review :) 2. You can use your own services. Sid did propose to use Helm package. If you look into Helm package sources you will see how they do it and following the same you get the same result on vanilla Docker. Kamil, GitLab CI Lead
- icebraining 10y agoOh man, oh man, global hooks! Thank you! The other features are awesome, but this is the one that will get us to upgrade right now! We use dozens of repositories, and it's been a pain to manually configure and update hooks.
- sytse 10y agoGlad to hear that, and thanks for posting. Happy holidays!
- mrmondo 10y agoPlan meets final execution, love it guys and gals, great work yet again, we upgraded today without a hitch, within 30 minutes I had devs making positive comments in chat about the upgrade. Thank you again for all your hard work and the passion that drives that.
- sytse 10y agoThanks for leaving a comment Sam. Glad to hear the upgrade went smooth and people are happy. People that experience problems are more likely to let us know about it so we greatly appreciate your comment.
- tscs37 10y agoI love the work that GitLab is doing, though I'm personally using Gogs/Gitea since it's much much less resource consuming.
- ksec 10y agoThis may be a silly question. How did Github manage to burn 66M a year while Gitlab manage to be open source, offer an Free GitLab.com Hosting and continue a Rapid pace of improvement in multiple domain?
- jsrjenkins 10y agoProbably by concentrating more on the product than on politics.
- hackerboos 10y agoThey got fat and lazy. The competition wasn't there previously. Bitbucket, Gitorious etc just weren't up to scratch so Github was a defacto monopoly for cloud hosting of git repositories. The gitlab came on the scene, shipped a Github replacement and then some. Is shipping features in 6 months faster than Github did over the past few years. Github have woken up though and started shipping features again. It's good to have competition. At least, for consumers.
- anhtran 10y agoGitlab has too many downtimes for upgrading. When I got a failed push I was saying: Oh gitlab has a new version... :meh:
- sytse 10y agoThe downtime for upgrading is annoying. We're trying to get to a point where the database migrations don't require downtime. But the deploy of 8.15 caused 40 minutes of downtime, this is not acceptable. For the post-mortem please see https://dev.gitlab.org/gitlab/organization/issues/1082 https://dev.gitlab.org/gitlab/organization/issues/1082
- sytse 10y agoOops, that is not a public link. I've made adjustments to our handbook to move it to GitLab.com so it can be public https://gitlab.com/gitlab-com/www-gitlab-com/commit/7fc274a195b389c6442061494e41d3e7daf6357f https://gitlab.com/gitlab-com/www-gitlab-com/commit/7fc274a1...
- mrmondo 10y agoWe have a great deal of repos on our GitLab private server and even a major upgrade only results in 2 minutes or so of downtime. What spec hardware are you running this on?
- sytse 10y agoI think this user meant the downtime on GitLab.com for upgrades. Self hosted installations indeed should be fast.
- bartvanH 10y agoThanks for another update! I’ve been running gitlab-ce for over a year now for my sideprojects and random small backups. I don't use any of the more advanced features like ci, but the core has been really great to use. For reference, i'm running gitlab-ce on a 2 core 2gb vm with 8gb disk and except for one out of memory error about 6 months ago it has been running great for a single user. For more serious use i'd give it way more resources, but for personal use it's humming along perfectly.
- sytse 10y agoThanks for posting, glad you're happy with the update. 2GB for a single user should be enough. To prevent the out of memory error since using the Omnibus package and configuring 1 or 2GB of swap space if you haven't done so already.
- imcoconut 10y agoDamn, Gitlab always crushing it.
- guomanmin 10y agoParticipate in an Interview on Experience with Different Git Tools My name is Angela and I do researches on user experience for different Git tools on the market. I’m kicking off a round of discussions with people who use Git tools. Ideally, I’d like to talk to people that sit on a team of 3 or more. If this is you, I would love to talk to you about your experience with <using> Git tools, or just some of the pain points that are keeping you up at night when doing your jobs. I’ll just need 30 mins of your time, and as a token of my thanks to those that participate, I’d like to offer a US$50 Amazon gift voucher. If you’re interested, just shoot me an email with your availability over the next few weeks and we can set up a time to chat for 30 minutes. Please also include your timezone so we can schedule a suitable time (as I’m located in San Francisco). Hope to talk to you soon! Cheers, Angela Guo 378496625@qq.com