GitLab.org/GitLab: Release v9.3.0-ee
Name: GitLab
Owner: GitLab.org
Release: GitLab 9.3
Released: 2020-04-03
License: MIT
Release Assets:


#### [Premium](https://about.gitlab.com/pricing/premium/)


[GitLab Code Quality](https://docs.gitlab.com/ee/user/project/merge_requests/code_quality.html)
> It's hard to overstate the importance of proper code review. When reviewing changes, you will
> need to pay attention to code quality, implementation, formatting, etc. Even with amazing reviewers,
> consistency is impossible without the ability to measure quality.
>
> To speed up code review and to give you the ability to check, measure and improve code quality,
> we've built GitLab Code Quality. Code Quality will check your code and report changes in quality
> directly in merge requests. This means your code reviews are faster and you guarantee that you're not
> accumulating technical debt. Of course, if the quality of your code goes down,
> we will show you exactly where, so you can improve your code before merging.
[Multi-Project Pipeline Graphs](https://docs.gitlab.com/ee/ci/multi_project_pipelines.html#multi-project-pipeline-visualization-premium)
> Larger projects, especially those adopting [microservices architecture](/blog/2016/08/16/trends-in-version-control-land-microservices/),
> often have a set of interdependent components that form the complete product.
> It may be difficult for a developer to follow all the links between interconnected projects and understand why a specific pipeline has run,
> or if another project has been rebuild because of a commit in the current one.
>
> GitLab 9.3 is now able to display links for upstream and downstream projects directly on the pipeline graph,
> so developers can check the overall status of the entire chain in one single view.
> From now on, connections between different projects are clear and simple to follow, and they're automatically created with no extra effort
> when using `$CI_JOB_TOKEN` variable with triggers.
[Centralized Audit Log](https://docs.gitlab.com/ee/administration/audit_events.html#audit-log-admin-only) (self-managed only)
> Many companies have the need for audit and compliance across the
> entire development cycle. In GitLab 9.3 any system administrator has
> access to an improved, centralized Audit Log that includes all audit
> events from Groups, Projects, and user actions.
>
> The centralized Audit Log also includes the ability to filter events by
> type and name, so you can easily track down events by group, project or user.
[Conversational Development Index](https://docs.gitlab.com/ee/administration/analytics/dev_ops_report.html) (self-managed only)
> [Last September we announced](/blog/2016/09/14/gitlab-live-event-recap/)
> [Conversational Development (ConvDev)](http://conversationaldevelopment.com),
> an evolution of software methodology that accelerates your development lifecycle,
> from idea to production. By fully using GitLab's integrated platform of features,
> you can reduce that end-to-end cycle time.
>
> With GitLab 9.3, we are shipping the ConvDev
> Index to measure that feature usage. The ConvDev Index even compares your usage
> with other top-performers using GitLab, helping you identify which parts of your
> workflow you can further improve.
>
> In this first iteration, the metrics are only available to GitLab
> system administrators, aggregating data across your entire GitLab
> instance amongst active users.
[Protected Variables for Enhanced Pipelines Security](https://docs.gitlab.com/ee/ci/variables/#protected-secret-variables)
> Secret variables are very useful if you want to avoid external people to
> access private information for your project, but users that are able to modify the
> project could still get access to it.
> This might cause unintended people to affect production environments even if
> they have no write permissions to the `master` branch.
>
> In GitLab 9.3, **Protected Variables** introduce an **additional layer of security**
> to your sensitive information, such as deploy credentials.
> You can now mark a variable as "protected" when defining it in `Settings` -> `CI/CD Pipelines`, making it available only to jobs running on
> protected branches, therefore only authorized users can get access to it.
Repository Settings Made Simple
> Over time, the number of settings in GitLab has expanded as we've
> extended functionality and configuration options for projects and
> groups.
>
> In GitLab 9.3 we will [start to simplify the settings pages](https://gitlab.com/gitlab-org/gitlab-ce/issues/28451)
> by making the [Repository Settings](https://gitlab.com/gitlab-org/gitlab-ce/issues/30378)
> page a lot more readable.
>
> Settings will be better grouped and allow people to see an overview of
> all the settings available for a certain section.
[JIRA Settings Improvements](https://docs.gitlab.com/ee/integration/jira/)
> For JIRA users, we improved the JIRA integration settings in this release,
> making it easier to set up and test your connection from your GitLab project
> to a JIRA server instance. There is now also a separate Web URL field and
> a JIRA API URL. This is useful for when your JIRA instance is configured
> such that the JIRA REST API and the JIRA issues location do not share the
> same URL.
[Snippet Descriptions](https://docs.gitlab.com/ee/user/snippets.html)
> Snippets now have descriptions. This follows personal snippet comments, which
> were added in the [previous release](https://about.gitlab.com/releases/2017/05/22/gitlab-9-2-released/).
> Snippets are a great tool for quick and informal collaboration around code
> ideas. We're now bringing the power of issues and merge request collaboration
> to snippets too.
[Group Label Permissions](https://docs.gitlab.com/ee/user/permissions.html)
> The Reporter, Developer, Master, and Owner roles can now **create and edit**
> group labels. Previously, only Master and Owner roles could do this. This
> brings parity with permissions of project labels.
Performance Improvements
> We are continuing to make great strides improving the performance of
> GitLab in every release. Not only will this make individual instances
> of GitLab even faster, but will also greatly improve the performance
> of GitLab.com, an instance that has over 1 million users!
>
> In GitLab 9.3 we are continuing to make listing projects a lot faster
> and improving performance overall server performance by making changes
> to how we mirror repositories. Syntax highlighting on files will also
> be cached to improve overall performance and make viewing commits
> noticeably faster.
>
> There are [numerous other performance enhancements](https://gitlab.com/groups/gitlab-org/issues?scope=all&state=opened&utf8=%E2%9C%93&milestone_title=9.3&label_name%5B%5D=performance)
> in GitLab 9.3 that should not only make GitLab feel faster, but reduce
> overall impact on server infrastructure.
[Edit Issue Description Inline, Without Losing Context](https://docs.gitlab.com/ee/user/project/issues/index.html)
> The issue description serves as the single source of truth when teams
> collaborate on work and ideas are rapidly flowing in the issue comment
> thread. With this release, you now edit the issue description by clicking
> `Edit`, as before. But you remain on the same page, instead of going to a
> separate web form. Just make your changes inline, and click `Save changes`
> to persist the updates without refreshing the page. While editing, you can
> also easily scroll down on the page to review comments and even copy [GFM text](https://docs.gitlab.com/ee/user/markdown.html)
> and paste it back into the description.
[Bulk-Editing Issues Re-Design](https://docs.gitlab.com/ee/user/project/issues/index.html)
> We've made bulk editing issues even simpler and more intuitive in
> this latest release. We've leveraged the sidebar paradigm that already
> pervades GitLab. So users will feel right at home using a transient
> sidebar when updating multiple issues at once.
Issue Board Usability Improvements
> We recognize that teams use Issue Boards in a variety of ways. To make
> it usable for even more teams, we now have collapsible **Backlog** and
> **Closed** columns. We've also tweaked adding issues in a board.
> When you click the plus sign +` to add an issue to a list,
> it now appears at the top of the list automatically,
> which is really helpful for long lists.
[Search/Filter Bar Improvements](https://docs.gitlab.com/ee/user/search/)
> We continue to make incremental improvements to the search/filter bar. You
> can now view user avatars.
>
> Also, by clicking on a filter, it activates the dropdown,
> allowing you to change filters quickly.
[Internationalization of Project Home & Repository Files Pages](https://docs.gitlab.com/ee/development/i18n/index.html)
> In [GitLab 9.2](/releases/2017/05/22/gitlab-9-2-released/#internationalized-cycle-analytics)
> we started the process of
> [internationalization](https://gitlab.com/gitlab-org/gitlab-ce/issues/4012)
> with the Cycle Analytics page in German and Spanish. In GitLab 9.3 we
> are extending this to more frequently used pages such as the Project
> Home and Repository Files pages.
>
> The GitLab community are already starting to add more languages such as
> Chinese, Bulgarian, and Brazilian Portuguese. You can
> [follow the progress](https://gitlab.com/gitlab-org/gitlab-ce/issues/32951)
> and take a look at the
> [contributing guidelines](https://docs.gitlab.com/ee/development/i18n/index.html)
> to get involved.
[Improvements to GitLab Subgroups](https://docs.gitlab.com/ee/user/group/subgroups/)
> In GitLab 9.0 we [introduced Subgroups](/releases/2017/03/22/gitlab-9-0-released/#subgroups-ce-ee),
> allowing for more flexibility and management of groups and projects.
>
> We are continuing to improve this functionality in every release and in
> GitLab 9.3 we are making the discoverability and navigation of
> Subgroups a lot better. On the Groups page you can now see an
> expandable tree view of all subgroups and projects rather than having
> to navigate and explore them one page load at a time.
[Access private Container Registry images](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html)
> When you deploy your docker-based project, you need to pull your image
> every time the deployment environment needs to start them. Since the
> integrated [GitLab Container Registry](https://docs.gitlab.com/ee/user/packages/container_registry/index.html)
> is the natural choice to store your containers, in GitLab 9.3 you can
> use it to distribute them too!
>
> By creating a personal access token with the brand new `read_registry`
> scope, you have a persistent deploy token that could be used by external
> services, like Kubernetes, to access your images every time it's needed,
> without giving your full credentials or using a dummy user for this task.
Enhanced View for Repository Files
> When viewing files in your repository, some extra information is now
> automatically extracted and reported in the same page.
>
> Starting with GitLab 9.3, you can see if your `.gitlab-ci.yml` or
> `.gitlab/route-map.yml` are valid or not, and which are the parsing errors.
> `LICENSE` files are also analyzed, and the information about the specific
> license is easily accessible with a link for further details about it.
> Dependency management systems are also exposed to make it clear what the projects rely on.
System Note with Link to Change in Outdated Diff Discussion
> During merge request code review, we are constantly making code changes
> and commenting on those changes. It is often difficult to keep track. In
> particular, suppose we start commenting on a particular code line, and there
> are subsequent changes to that line. You may end up discussing something
> that has already changed.
>
> With this release, we added a system note to indicate that a line has already
> changed, so that when you are participating in comments with respect to a
> particular line, you know that it's already been changed, and can even see
> the change by clicking through.
Autolinking Package Names
> Ah, packages, those little gems (hah!) of wisdom wrapped up and ready for re-use.
> GitLab will now automatically detect and link packages in the file view,
> saving you valuable clicks every day. Neat, huh?
>
> #### This functionality will work for the following packages and languages:
>
> * `*.gemspec` (Ruby)
> * `package.json` (Node.js)
> * `composer.json` (PHP)
> * `Podfile` (Objective-C)
> * `*.podspec` (Objective-C)
> * `*.podspec.json` (Objective-C)
> * `Cartfile` (Objective-C)
> * `Godeps.json` (Go)
> * `requirements.txt` (Python)
Auto-cancel Redundant Pipelines Now Set to On for All Projects
> In order to benefit from the
> [automatic cancellation of redundant pipelines](https://about.gitlab.com/releases/2017/04/22/gitlab-9-1-released/#auto-cancel-redundant-pipelines-ce-ees-eep)
> and save a lot of time during your development process, GitLab 9.3 sets this behavior to on for all existing and new projects.
>
> If you really do want to disable it and keep redundant pipelines running, you can
> [tune the parameter](https://docs.gitlab.com/ee/ci/pipelines/settings.html#auto-cancel-pending-pipelines) to reflect your needs.
[API Support for Pipeline Schedules](https://docs.gitlab.com/ee/api/pipeline_schedules.html)
> In GitLab 9.2 we
> [released Pipeline Schedules](/releases/2017/05/22/gitlab-9-2-released/#pipeline-schedules)
> that can be configured and managed using the UI.
> Today with GitLab 9.3 we're also releasing calls
> to create and manage Pipeline Schedules through a set of APIs,
> in order to allow integration with other tools simple and effective.
Upcoming Nginx Upgrade
> As part of the upcoming GitLab 9.4 release,
> we will be upgrading the version of nginx included in our
> Omnibus packages to the new stable release, 1.12.
> Version 1.12 includes a number of improvements over the previous stable
> release, including the ability to
> [filter the log output](https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests/1585).
>
> This will be a transparent upgrade for users, however if you have added
> [your own customizations](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md#inserting-custom-nginx-settings-into-the-gitlab-server-block)
> to the nginx configuration, please ensure they continue to work with version 1.12.
[Performance Impact of Merge Requests now Quantified](https://docs.gitlab.com/ee/user/project/integrations/prometheus.html#determining-the-performance-impact-of-a-merge)
> With
> [GitLab 9.2](/releases/2017/05/22/gitlab-9-2-released/#app-performance-feedback-on-merge-requests)
> we added the ability to see the memory impact of a merge,
> by adding a sparkline to the Merge Request page. As part of GitLab 9.3 we are taking this
> further and now quantify the change in average memory usage for the 30 minutes before and after the merge.
>
> It is now easier than ever for developers to be cognizant of the impact they are
> having on service performance, by getting direct feedback within the tool they already use every day.
Debian 9 Support (self-managed only)
> Support is available for the recent release of [Debian 9](https://www.debian.org/News/2017/20170617). Official Omnibus packages for GitLab 9.3 can be downloaded from our
> [installation page](https://about.gitlab.com/install/).
[GitLab Runner 9.3](https://docs.gitlab.com/runner/)
> We're also releasing GitLab Runner 9.3 today!
>
> ##### Most interesting changes:
>
> * Add `GIT_CHECKOUT` variable which controls git checkout step ([merge request](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/585))
> * Add basic support for Volumes in Kubernetes executor ([merge request](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/516))
> * Add support for `cpus` option in Docker executor ([merge request](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/586))
> * Add support for `userns` option in Docker executor ([merge request](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/553))
> * Add requests backoff mechanism ([merge request](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/570))
> * Improve docker machine removal for Docker Machine executor ([merge request](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/582))
>
> List of all changes can be found in GitLab Runner's [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/blob/v9.3.0/CHANGELOG.md).
[GitLab Mattermost 3.10](https://docs.gitlab.com/omnibus/gitlab-mattermost/) (self-managed only)
> GitLab 9.3 includes [Mattermost 3.10](https://about.mattermost.com/mattermost-3-10), [an open source Slack-alternative](https://about.mattermost.com/) with new support for Turkish language, new keyboard shortcuts, and much more.
[Additional GitLab Service Metrics](https://docs.gitlab.com/ee/administration/monitoring/prometheus/gitlab_metrics.html) (self-managed only)
> GitLab 9.0 [introduced Prometheus monitoring](https://about.gitlab.com/releases/2017/03/22/gitlab-9-0-released/#monitoring-gitlab-with-prometheus) of the GitLab service, providing insight into Redis, PostgreSQL, and system performance.
>
> As part of GitLab 9.3 we have added experimental monitoring of our ruby code base, starting with a handful of metrics like pipeline status and user sign ins. We will continue to instrument additional areas of GitLab in subsequent releases.
[Omnibus Improvements](https://docs.gitlab.com/omnibus/) (self-managed only)
> The bundled Git and PostgreSQL packages have been updated. Git is now v2.13.0 and Postgres is v9.6.3.