8.15 release post
GitLab 8.15 is all about finishing the year with Idea to Production.
For this release post, we want to kick off with an update version of the idea to production video, showing only the part post-installation.
-
intro -
full video -
shortened, first part -
link to video moment in which we use auto-deploy
Later in the post, we will have the full video available.
Merge request reports
Activity
For mattermost, we've changed some default values to make it easier to configure chat commands. Now, custom commands are enabled by default, as well as overriding of the username and avatar when the results are posted. /cc @marin
Some noteworthy community contributions:
edit by Job: added; Thanks Sean!
Edited by 🚄 Job van der Voort 🚀@vsizov made our Bitbucket importer awesome!
@adamniedzielski is adding auto deploy, so let's mention it if it makes it!
@jneen and @brycepj added the ability to unapprove a merge request (EE only)!
assigned to @JobV
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by username-removed-443319
- Resolved by 🚄 Job van der Voort 🚀
25 And the hard work shouldn't even include setting up GitLab. [See below]() for 26 the full video, in which we install GitLab and ship a full app, from idea to 27 production, in under Y minutes. 28 29 This month's Most Valuable Person ([MVP](https://about.gitlab.com/mvp/)) is ***MVP_USER*** ***CONTRIBUTION_OF_MVP_USER***. 30 Thanks ***MVP_USER_FIRST_NAME***! 31 32 <!--more--> 33 34 ## Installing GitLab to deploying to Production in Y minutes 35 36 < FULL VIDEO> 37 38 ## Auto Deploy 39 40 > [Documentation link](link) - Resolved by 🚄 Job van der Voort 🚀
Web terminal and auto-deploy had a number of prerequisites, some of which may merit a separate mention.
New CI variables
-
$CI_ENVIRONMENT_NAME
- https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7983 -
$CI_ENVIRONMENT_SLUG
(as above) -
$CI_BUILD_REF_SLUG
- https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8072
via KubernetesService: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8107
$KUBE_URL
$KUBE_TOKEN
$KUBE_NAMESPACE
$KUBE_CA_PEM
These are all designed to make it easier to deploy to external services.
Introducing
$CI_ENVIRONMENT_NAME
and$CI_ENVIRONMENT_SLUG
took four database migrations, all of which require downtime, but they should be in the order of a few seconds at most.Edited by Nick Thomas-
@gitlab-com Hey everyone, here's your monthly ping to contribute to the blog post!
Please include relevant links and format your comment as markdown in a code block so I can easily c/p it!
- Resolved by 🚄 Job van der Voort 🚀
API
- Allow some Project API GET endpoints to be requested anonymously
- Allow Repositories & Files API GET endpoints to be requested anonymously
- Allow some Tag API GET endpoints to be requested anonymously
- Add scopes for personal access tokens and OAuth tokens
- Add ability to cherry pick a commit (community contribution)
- Add ability to unshare a project from a group (community contribution)
- Add ability to set
should_remove_source_branch
on merge requests (community contribution) - Add simple representation of group's projects (community contribution)
- Expose committer details for commits (community contribution)
- Expose merge status for branch API (community contribution)
- Expose personal snippets as /snippets (community contribution)
- Expose pipeline coverage
Platform
- Add support for Dockerfile templates
- Allow all alphanumeric characters in file names (community contribution)
- Don't display prompt to add SSH keys if SSH protocol is disabled (community contribution)
Other
- New
gitlab:workhorse:install
rake task
A small performance release this time as a bunch of changes went into 8.14 patch releases, and some of the changes below took quite some time:
## Performance Improvements GitLab CE: * Retrieving commit counts has been improved for certain cases:  * Polling intervals have been adjusted to reduce system load:  * Refreshing authorized projects is done in a smarter way to reduce database load:  * The most recent commit ID for a path is now cached:  GitLab EE: GitLab EE now ships with a command called `sidekiq-cluster`. This command can be used to start extra Sidekiq workers that process only a limited number of queues. This feature can be used to process queues that receive a lot of jobs, without it affecting other parts of Sidekiq. This was added in . This command is not yet used by Omnibus, our goal is to add this in 8.16.
Downtime:
For those not using post-deploy migrations I believe this release will require at least 30 minutes of downtime. Those using post-deployment migrations can probably reduce that down to 10 or-so minutes for large instances.
Edited by yorickpeterse-staging- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
Import Pull Requests and Comments from Bitbucket https://gitlab.com/gitlab-org/gitlab-ce/issues/19946
We are always happy when someone wants to migrate their projects to GitLab. GitLab lets you import projects from major Git hosts: GitHub, Bitbucket, Google Code, Fogbugz or a custom URL. Up to this point, importing a project from BitBucket only imported the git repository, as well as the issues. However, GitLab wouldn't import three other important parts of a project: wikis, pull requests and comments. Starting with 8.15, our Bitbucket importer will now import everything: git data, issues, pull requests, comments and wikis. That way, you will be able to work on your project solely on GitLab.
Edited by Régis Freyd (GitLab)User activities API - https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/962 (EE only)
Starting with 8.15, our Bitbucket importer will now import everything: git data, issues, pull requests and comments
And wiki!
@dimitrieh Should the 'stop staging' manual action have 'stop' icon? I'm pretty sure this is how it is implemented.
@vsizov thanks for the heads up, I've updated my comment
Snippets pages now follow the style of Issue and MR pages https://gitlab.com/gitlab-org/gitlab-ce/issues/19990
Better hover and active states for buttons https://gitlab.com/gitlab-org/gitlab-ce/issues/24145
@JobV I don't think those are changes that require screenshots, but let me know if you want me to generate some
Edited by Chris Peressini- Resolved by 🚄 Job van der Voort 🚀
UX Improvements
- GitLab switched to using system fonts! https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7545
- Smaller max-width for issues and merge requests container in order to provide a more readable line length. This is the first step for us to correct the huge line lengths you see throughout GitLab. Follow our meta issue as we continue to improve GitLab's line length.
- Uniquely style labels in order to differentiate them from buttons. We are continuing work on this to make our labels and status badges even more consistent in further iterations.
- Improve accessibility by adding a focus state to dropdown options
- Added hover states to our primary navigation and tabs throughout the site.
- Improved hover, focus, and active states for buttons https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7797
- Added hover states to collapsed items with the issues/mr's sidebar https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7777
Application lifecycle - Monitoring
Not released in 8.15 so maybe we don't want to include it in this post but we did start brainstorming ideas for completing the application lifecycle with monitoring. You can view the demo here: https://www.youtube.com/watch?v=NFPGtbQfL1A&feature=youtu.be
Current issues include:
- Monitoring Dashboard: https://gitlab.com/gitlab-org/gitlab-ce/issues/23841
- Deployboard: https://gitlab.com/gitlab-org/gitlab-ce/issues/21413
- Feature monitoring: https://gitlab.com/gitlab-org/gitlab-ce/issues/24254
Edited by Taurie Davis@filipa can you take a look at https://gitlab.com/gitlab-com/www-gitlab-com/merge_requests/4007#note_20302808 which is a comment on my comment at https://gitlab.com/gitlab-com/www-gitlab-com/merge_requests/4007#note_20302173
Did you implement the same (play) icon for stopping and starting environments?
example image
edit:saw that it worked fine
Edited by Dimitrie HoekstraNew direct link from pipelines list into builds https://gitlab.com/gitlab-org/gitlab-ce/issues/19703
## Remove approval from merge request For projects that have been configured to use merge request approvals, you can now remove your approval from a merge request, after you have approved it. So now if you notice a problem during code review or another reviewer points one out, you can remove your approval that you previously gave. This allows for even more collaboration since you can use both your approval and removal of it to give richer feedback to the author of a merge request. And you can be confident in approving merge requests, without worrying that you are stuck with it if new information arises. Note that you can only remove your own approval that you have already given. (You can't give a negative signal.) Also, once a merge request has the minimum number of approvals required, it is unlocked and ready to be merged (provided all the other necessary conditions are met). This is the same behavior as before.
mentioned in issue marketing#735 (closed)
@yorickpeterse can you elaborate on the downtime that is required? Link to post-deploy documentation and what exactly is being migrated?
@victorwu thanks! Next time, please include line breaks and a screenshot. People love screenshots.
@JobV Since my comment we have reduce downtime needs quite a bit by just removing some migrations as they were not strictly needed. What remains are migrations that:
- Columns with default values are added, this process may take some time depending on the number of rows in these tables
- Some indexes are added concurrently, which does not require downtime but may take some time to complete
- Nested groups support (I believe) is added in this release, which requires a bunch of database migrations. Some of these require downtime and can take quite some time to finish
- The environments table is cleaned up, and a new column is added with a generated default value (this could take some time depending on the number of environments)
In total around 15 minutes of downtime should be expected for larger instances.
@JobV updated scrolling gif
@JobV Sorting functionality by
name
,access level
,last joined
and so on for both Project and Group members https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7032- Resolved by Stan Hu
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7660 - Add diff hunks to notification emails
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
Our first Support MVP is Warren Postma for his contributions on the issue trackers, and the community forum and just generally being a great advocate of the product and the company.
@JobV there was some refactoring of routing and validation in this release:
- Invalid group names that worked before (like
name.git
) won't work anymore and will be renamed in migration - Project names becomes more restricted. You cant have project with name
blob
orissues
anymore. When visit project with such name you will get 404. I am working on renaming migration for it. Details at https://gitlab.com/gitlab-org/gitlab-ce/issues/25917
Edited by username-removed-444- Invalid group names that worked before (like
Thanks to our community contributor Michael Munch for his unending determination over the last six months to get this merged, with over 200 comments on the original MR and another 100 on the follow-up, we now have LaTeX support in comments! (gitlab-org/gitlab-ce!4638 / gitlab-org/gitlab-ce!8003)
Thanks also to the Khan Academy team for their open source KaTeX library.
See the docs for more information on how to use this.
Edited by username-removed-386624We added awesome empty states last release that didn't make it into the post! We are also continuing to add more and more so lets draw attention to them!
In order to improve our experience for users who are just getting started with GitLab, we're adding informative and fun empty states to many of our pages across the site! View our meta issue to see where we're placing new empty states and watch for new ones in the upcoming releases!
Edited by Taurie Davisadded 2 commits
added 2 commits
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
@JobV Runner changes:
## GitLab Runner We are also releasing GitLab Runner 1.9 today. Most interesting changes: - Add a retry mechanism to prevent failed clones in builds [!399](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/399) - Add Kubernete Node Selector [!328](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/328) - Push prebuilt images to dockerhub [!420](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/420) - Add path and share cache settings for S3 cache [!423](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/423) - Split prepare stage to be: prepare, git_clone, restore_cache, download_artifacts [!406](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/406) - Introduce docker.Client timeouts [!411](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/411) - Allow network-sourced variables to specify that they should be files [!413](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/413) - Fix docker hanging for docker-engine 1.12.4 [!415](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/415) - Add pprof HTTP endpoints to metrics server [!398](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/398) - Add a multiple prometheus metrics: [!401](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/401) To see the full list of all changes please read [the Runner's CHANGELOG file](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/blob/v1.9.0/CHANGELOG.md).
78 90 79 91 > [Documentation link](link) 80 92 81 ## Improved Bitbucket Importer 93 ## Improved BitBucket Importer - Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
added 2 commits
- Resolved by 🚄 Job van der Voort 🚀
@JobV : No features related to merge request approvals / removals will be released in 8.15.
Please disregard and do not include the earlier release description.
Details here: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/954
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
We are also shipping:
Easy Mattermost configuration
This allows you with a click of the button create Mattermost Slash Commands integration that make it possible to interact from within your Chat.
The MR is here: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8070.
@zj Can you link to documentation?
Slack Slash Commands
We are expanding support for Slack allowing you from now on to integrate ChatOps with your Slack instance.
@zj Can you link documentation?
Edited by Kamil Trzcińśki@ayufan Here are the docs on Mattermost: https://gitlab.com/help/project_services/mattermost_slash_commands.md
- Resolved by 🚄 Job van der Voort 🚀
- Resolved by 🚄 Job van der Voort 🚀
mentioned in commit c111c981
75 Working together with your container scheduler, GitLab happily spins up several 76 (dynamic) environments on request for your projects. Be that for review apps 77 or a staging or production environment. 78 Traditionally, getting direct access to these environments has been a little 79 painful. And that's a shame: it's very useful to quickly try something in a 80 live environment to debug a problem, or just to experiment. 81 82 With the web terminal, this has become extremely easy. Just visit the 83 environments page in your project and click on the terminal button. 84 GitLab will SSH into the instance for you and allow you to do anything 85 you would be able to do from your local instance. 86 87 {: .shadow} 88 89 In the demonstration at [5:18](https://youtu.be/m0nYHPue5RU?t=318) we show you 90 give you a quick peek at the web terminal. We can't wait to see how you'll 54 automatically deploy your application using Docker to your container scheduler. 55 The cool thing about this is that this immediately leverages Review Apps, 56 meaning you can see it working before even merging the merge request! 57 58  59 60 This is as close as you can get to one-click deploys, while exposing what 61 is happening and having all this version-controlled, ready 62 to collaborate and iterate on. 63 64 See [1:42](https://youtu.be/m0nYHPue5RU?t=102) in the video for a quick demo of 65 Auto Deploy, as it is available in GitLab 8.15. 66 67 For this first iteration, we ship Auto Deploy with a template for deploying to an external OpenShift cluster. We use [Herokuish](https://github.com/gliderlabs/herokuish) and Heroku Buildpacks to 68 package your application into a Docker Image that then is deployed to 69 Kubernetes on Openshift. We want to add support for more container 377 378 The current version of PostgreSQL we are packaging (9.2.18) is slowly 379 approaching its EOL. Due to the [PostgreSQL versioning policy](https://www.postgresql.org/support/versioning/), 380 upgrades between major releases require downtime and the use of the `pg_upgrade` tool. 381 382 For this purpose, we are packaging the newest available PostgreSQL version (9.6.1). 383 We are also introducing `gitlab-ctl pg-upgrade` tool which should make this 384 transition as painless as possible. 385 When upgrading to GitLab 8.14, this *action will not be run automatically*. 386 This will allow you to plan the database upgrade downtime. 387 388 After version 9.0 is released, we plan on setting the PostgreSQL version 9.6 as 389 default so please make sure that you plan your upgrade before that release. 390 We're expecting to ship GitLab 9.0 on or after February 22nd. 391 392 > [Read more about database upgrade in our docs](https://docs.gitlab.com/omnibus/maintenance/README.html#upgrade-postgresql-database) This link should go to https://docs.gitlab.com/omnibus/settings/database.html#upgrade-packaged-postgresql-server