features:
  top:
    - name: Multiple Assignees for Issues
      available_in: [starter, premium]
      documentation_link: 'https://docs.gitlab.com/ee/user/project/issues/issues_functionalities.html#3-1-multiple-assignees-ees-eep'
      documentation_text: "Learn more about multiple assignees for issues"
      description: |
        On GitLab, it is not uncommon to have issues that require the collaboration of multiple individuals.
        In the past it could be difficult to track the shared ownership of an issue, especially in organizations
        where the issue's contributors may not work together day to day. With this release, GitLab enables you to assign
        as many users as you want to a given issue. Every one of those assignees are first
        class citizens, and receive the same notifications as before. With this change,
        you can see multiple assignees in the issue list and on issue boards, and the
        assignees will all be able to track their association with the issue in their dashboard.
        <p>Note that as part of this change, the <code>assignee_id</code> parameter
        in the <a href="https://docs.gitlab.com/ee/api/issues.html">issues API</a>
        has been deprecated. The <code>assignee_ids</code> should be used instead.
        Also, the <code>assignee</code> object in the JSON response has been deprecated.
        The <code>assignees</code> array should be used instead.
        <p><img src="/images/9_2/multiple_assignees_for_issues.png" alt="Multiple Assignees For Issues" class="shadow">

# PRIMARY FEATURES
  primary:
    - name: Internationalized Cycle Analytics
      available_in: [core, starter, premium]
      webpage_url: '/features/cycle-analytics'
      documentation_text: "Learn more about Cycle Analytics"
      image_url: '/images/9_2/i18n.png'
      description: |
        Hola Mundo, Hallo Welt! We are incredibly excited to announce the start of
        our journey to internationalise GitLab and would love your support to make
        this happen as broadly and quickly as possible.
        <p>Starting in 9.2, we have added the framework and infrastructure to translate
        GitLab into any language. To validate our technology decisions, we've only
        translated a single page (Cycle Analytics) into Spanish and German. In 9.3
        and subsequent releases, we will continue to add more languages and more
        pages. If you want to help out, please take a look at our
        <a href="https://docs.gitlab.com/ee/development/i18n_guide.html">contributor Guidelines</a>.</p>
        <p>To change your language, visit your Settings page by clicking on yourself in the top right corner.</p>

    - name:  Pipeline Schedules
      available_in: [core, starter, premium]
      documentation_link: 'https://docs.gitlab.com/ee/user/project/pipelines/schedules.html'
      documentation_text: "Learn more about scheduling pipelines"
      image_url: '/images/9_2/scheduled_pipelines.png'
      description: |
        For most projects, developers want to have their GitLab CI/CD pipelines
        executed for every new commit, ensuring any changes are built, tested and
        deployed. In some cases however, a developer needs extra control and
        would instead like a pipeline to execute on a specific schedule.
        <p>Today with GitLab 9.2, pipelines can now be configured to run
        <a href="https://docs.gitlab.com/ee/user/project/pipelines/schedules.html">when and how often you need them to</a>.
        Generating daily or weekly builds, performing maintenance, or even
        validating external dependencies can be easily configured to run on your schedule.
        <p>This replaces the alpha UI for <a href="https://about.gitlab.com/blog/2017/04/22/gitlab-9-1-released/#scheduled-pipelines-triggers-ce-ees-eep">
        Scheduled Pipelines Triggers</a>.

    - name: Official GitLab installation on Kubernetes
      available_in: [core, starter, premium]
      gitlab_com: false
      documentation_link: 'http://docs.gitlab.com/ee/install/kubernetes/'
      documentation_text: "Learn more on installing GitLab using our Helm charts"
      image_url: '/images/9_2/helm_install.png'
      description: |
        We want to make GitLab the best cloud native development tool, so making it easy to get started on <a href="https://kubernetes.io/">Kubernetes</a> is important.
        With GitLab 9.2, we are proud to announce that we have released <a href="http://docs.gitlab.com/ee/install/kubernetes/">official GitLab Helm charts</a>.
        <p><a href="https://helm.sh/">Helm</a> is the official Kubernetes package management tool allowing users to easily deploy, upgrade, and configure apps in their clusters.
        GitLab and Kubernetes go great together with easy autoscaling CI, app autodeployments to your clusters and everything else shown in the <a href="https://youtu.be/PoBaY_rqeKA" target="_blank">Idea to Production video</a> - out of the box, minimal setup!

    - name: App Performance Feedback on Merge Requests
      available_in: [core, starter, premium]
      documentation_link: 'https://docs.gitlab.com/ee/user/project/integrations/prometheus.html#determining-the-performance-impact-of-a-merge'
      documentation_text: "Learn more on how the deployment memory usage on merge requests works"
      image_url: '/images/9_2/mr_memory.png'
      description: |
        For most companies, determining the performance impact of a specific
        merge can be a challenge. Often performance data is contained within a
        separate tool, which the development team may not even have access to.
        At GitLab we want to make sure developers get feedback on every change
        they ship, and we are taking a big step forward today with our Prometheus integration.
        <p>With GitLab 9.2, we now automatically
        display the change in memory consumption after a deploy directly on
        its merge request. This allows the developer to quickly and easily determine
        if there are any performance changes and investigate as soon as possible,
        all within their usual daily workflow. In future releases, we will <a href="https://gitlab.com/gitlab-org/gitlab-ce/issues/30434">analyze additional metrics</a> as well. Building responsive and delightful apps is everyone's responsibility!

    - name: Disaster Recovery Alpha Improvements
      available_in: [premium]
      gitlab_com: false
      documentation_link: 'https://docs.gitlab.com/ee/gitlab-geo/'
      documentation_text: "Learn more about GitLab Geo"
      image_url: '/images/9_2/geo_disaster_recovery_ui.png'
      description: |
        Since version 9.0, GitLab ships with support for Disaster
        Recovery in Alpha as part of GitLab Geo. We are committed to making
        Disaster Recovery better on every release, and GitLab 9.2 is no
        exception. Today we are improving the UX of the Disaster Recovery
        feature, with more obvious controls and more reporting on what's
        going on during the replication process.
        <p>Finally, we had also made improvements to the repositories
        synchronization mechanism, and now it is smart enough to resync
        broken repositories due to a failed sync or repositories that
        have been recently updated on the primary node but have been
        synced some time ago on the secondaries.

    - name: Auto-Refresh on Issue Titles and Descriptions
      available_in: [core, starter, premium]
      documentation_link: 'https://docs.gitlab.com/ee/user/project/issues/issues_functionalities.html'
      documentation_text: "Learn more about issues on GitLab"
      image_url: '/images/9_2/auto_updates_issue_page.gif'
      description: |
        The issue page in GitLab is a key area of collaboration, with you and
        your team constantly editing content. When viewing an issue page, the title and description
        now refresh automatically (in response to someone else changing it) to keep up with your workflows.
        The issue page itself doesn't reload. So you can simply leave a browser tab open to an issue you are 
        interested in, and you'll always be seeing the latest information. Even the browser tab title
        refreshes by itself.
        <p>We've also added a system note when an issue description is edited, so
        you can always scroll through the comment thread and see who made
        any changes, and when. Even adding comments now feels more responsive.
        And if you edit an existing comment, that comment will also be
        automatically refreshed on any other user's screen who happens to have the
        same issue open.

    - name: Remove Filter in Search Bar
      available_in: [core, starter, premium]
      documentation_link: 'https://docs.gitlab.com/ee/user/search/#issues-and-merge-requests-per-project'
      documentation_text: "Learn more about searching issues and merge requests"
      image_url: '/images/9_2/remove_filter.png'
      description: |
        You can now easily remove filters in the search bar for issues and merge
        requests with a simple mouse click.

        <p>We've also styled the labels within the filter bar to match the colors they have elsewhere.

    - name: Advanced search with Elasticsearch
      available_in: [starter, premium]
      documentation_link: 'https://docs.gitlab.com/ee/user/search/advanced_search_syntax.html'
      documentation_text: "Learn more about advanced search with Elasticsearch"
      image_url: '/images/9_2/elasticsearch.png'
      description: |
        We are bringing more advanced search capabilities leveraging Elasticsearch integration.
        Provided you have configured Elasticsearch, you can search for exact phrases using
        double quotes, search for content ignoring the order of search terms, match partial
        words, and other syntax. (Note that this applies to the search box in the top right
        corner throughout GitLab, and not the search bar inside issue lists and merge request lists.)

        <p>You can now also search globally across all wikis in your instance, again requiring
        and powered by Elasticsearch.

# SECONDARY FEATURES
  secondary:
    - name: Create Merge Request from Issue
      available_in: [core, starter, premium]
      documentation_link: 'https://docs.gitlab.com/ee/user/project/issues/issues_functionalities.html#18-new-merge-request'
      documentation_text: "Learn more on how to create a merge request from an issue"
      image_url: '/images/9_2/create_new_merge_request.png'
      description: |
        With each iteration of GitLab, we strive to make going from idea
        to production faster and smoother.

        <p>This new small tweak allows you create a merge request
        right from the issue page, with GitLab creating the associated
        branch automatically in the background for you. It's especially
        useful when you want to make simple code commits right inside GitLab.

    - name: Select Individual Approvers for Merge Request Approvals
      available_in: [starter, premium]
      documentation_link: 'https://docs.gitlab.com/ee/user/project/merge_requests/merge_request_approvals.html#selecting-individual-approvers'
      documentation_text: "Learn more on configuring the merge request approvals"
      description: |
        Configuring merge request approvals allows for selecting individual
        approvers. The process is even easier, with the search now limited
        to project members and users in relevant groups (parent group or groups
        with access via a project share) in the project settings and the per
        merge request settings, so that you can easily identify relevant users.

    - name:  Comments for Personal Snippets
      available_in: [core, starter, premium]
      documentation_link: 'https://docs.gitlab.com/ee/user/snippets.html#comments'
      documentation_text: "Learn more about snippets"
      description: |
        Collaboration often happens in snippets, even personal snippets. With this
        release, you now have a comment thread for each personal snippet, just like project snippets.

    - name: Commenting in Outdated Diffs
      available_in: [core, starter, premium]
      documentation_link: 'https://docs.gitlab.com/ee/user/project/merge_requests/'
      documentation_text: "Learn more about merge requests"
      description: |
        With this release, you can now link directly to an outdated diff
        from the merge request discussion thread, allowing you to quickly
        refer to older commits during code development, collaboration, and
        review. You can even comment in that previous outdated diff as well.

        <p><img class="shadow" src="/images/9_2/outdated_diff_link.png" alt="Outdated diff link">
        <p><img class="shadow" src="/images/9_2/diff_comment.png" alt="Diff comment">

    - name: Rendered Code Preview
      available_in: [core, starter, premium]
      documentation_link:
      documentation_text:
      image_url: '/images/9_2/render_preview.png'
      image_noshadow: true
      description: |
        Many files, such as SVG & Markdown are displayed in GitLab's
        file view in their rendered form. Sometimes, it's much more useful
        to see the actual code. We've now added a handy little switch on the
        file view, which means you can now easily switch between the rendered
        preview and the raw code.

    - name: Deploys shown on Performance Dashboard
      available_in: [core, starter, premium]
      documentation_link: 'https://docs.gitlab.com/ee/ci/environments.html#monitoring-environments'
      documentation_text: "Learn more on monitoring environments"
      image_url: '/images/9_2/environment_deploy_tag.png'
      description: |
        When investigating a change in performance behavior, one of the first questions
        asked is always if there have been any changes to the environment. GitLab 9.2
        now quickly answers this question by showing all deployments to an environment
        directly on the monitoring dashboard. This allows easy correlation between any
        changes in performance and a new version of the app, all without leaving GitLab!

    - name: Terraform Support for GitLab Runner on Google Compute Engine
      available_in: [core, starter, premium]
      gitlab_com: false
      documentation_link: 'https://gitlab.com/gitlab-terraform/gce'
      documentation_text: "Visit our Terraform project"
      image_url:
      description: |
        As part of GitLab 9.1, we launched support for installing GitLab on GCE via
        <a href="https://www.hashicorp.com/">Hashicorp's</a> <a href="https://www.terraform.io/">Terraform</a>.
        With 9.2 we are also adding the ability to deploy GitLab Runner as well,
        allowing you to complete the idea to production cycle!

    - name: Manual Actions Respect Protected Branches
      available_in: [core, starter, premium]
      documentation_link:
      description: |
        <a href="https://docs.gitlab.com/ee/ci/yaml/#manual-actions">Manual actions</a>
        now require the same permissions as a repository write, allowing control over
        who can trigger them. For example, triggering a manual deploy job to production
        from the master branch can now be restricted to a narrower set of users with
        access to commit.

        <p>This is a very important item in the list of security enhancements
        we're bringing into GitLab in order to protect your deployment process,
        you can read more in <a href="https://gitlab.com/gitlab-org/gitlab-ce/issues/21911">this issue</a>.

    - name: Job Artifacts Preview in UI
      available_in: [core, starter, premium]
      documentation_link: 'https://docs.gitlab.com/ee/user/project/pipelines/job_artifacts.html#browsing-job-artifacts'
      documentation_text: "Learn more on browsing job artifacts"
      image_url: '/images/9_2/artifacts_preview.png'
      description: |
        Artifacts can be files of any kind, and you have access to them by browsing the archive directly from UI.
        GitLab 9.2 improves this capability further: now PDFs, images, videos and other formats can be previewed
        directly in the job artifacts browser without the need to download them.

    - name: Failed Jobs Tab allows you to access to a summary of all the failures quickly
      available_in: [core, starter, premium]
      documentation_link:
      image_url: '/images/9_2/failed_jobs_tab.png'
      description: |
        When you commit new code to a project with continuous integration configured you normally expect to see a green check:
        this tells you the pipeline succeeded and everything worked as expected.
        In the unfortunate case something went wrong, you might want to know exactly what has failed as quick as possible,
        but walking through multiple stages and jobs could be frustrating, expecially if your pipeline is very complex.
        <p>GitLab 9.2 introduces a new tab in the Pipeline view: you can now directly go to <code>Failed Jobs</code> and see
        the detailed list of jobs that were unsuccessful in one single place, having a big picture of the actual status.

    - name: Handling of Ambiguous Routes in Dynamic Paths
      available_in: [core, starter, premium]
      documentation_link: 'https://docs.gitlab.com/ee/user/group/subgroups/index.html#creating-a-subgroup'
      documentation_text: "Learn more on creating a subgroup"
      description: |
        <p>There are several paths that GitLab uses to access certain features. With the introduction of nested groups these features could become unavailable for projects or groups with names that conflict with these paths. For example: for a project called 'badges' the build and coverage status badges would become unavailable.
        <p>To avoid confusion, it is now no longer possible to create projects or groups with names that could clash with existing GitLab routes.
        <p>If you had any projects or groups named like one of these routes, they will have been automatically renamed during the upgrade. A project named <code>badges</code> would be renamed to <code>badges0</code>.</p>
        <p>Keep in mind that git-remotes would need to be updated locally as well. That can be done like this:</p>
        <pre><code>git remote set-url origin &lt;git@gitlab.com:the-updated-path/the-updated-name.git&gt;
        </code></pre>
        <p>The full list of reserved words can be found in the <a href="https://gitlab.com/gitlab-org/gitlab-ce/blob/master/app/validators/dynamic_path_validator.rb"><code>dynamic_path_validator.rb</code> file</a>. The list of existing projects and groups that were renamed in this release can be found in the <a href="https://gitlab.com/gitlab-org/gitlab-ce/blob/master/db/post_migrate/20170412174900_rename_reserved_dynamic_paths.rb">migration</a> that renamed them.</p>

    - name: Usage Ping
      available_in: [core, starter, premium] #MISSING
      gitlab_com: false
      documentation_link: 'https://docs.gitlab.com/ee/user/admin_area/settings/usage_statistics.html#usage-ping'
      documentation_text: "Learn more about usage ping"
      image_url:
      description: |
        <p>This release contains two changes to the usage ping: you can <a href="https://docs.gitlab.com/ee/user/admin_area/settings/usage_statistics.html#deactivate-the-usage-ping">now opt-out</a> of the usage ping through your configuration in <code>gitlab.rb</code>. This allows you to turn off the usage ping before having started GitLab. You were already able to opt-out through the administration panel and this remains the case.
        In addition, we now include the hostname in the usage ping, similar to the <a href="https://docs.gitlab.com/ee/user/admin_area/settings/usage_statistics.html#version-check">version check</a>. For more, see <a href="https://docs.gitlab.com/ee/user/admin_area/settings/usage_statistics.html#usage-ping">the documentation on the usage ping</a>.</p>

    - name: Deletion of branches after a merge request is merged is now on by default
      available_in: [core, starter, premium]
      documentation_link:
      image_url: '/images/9_2/branch-deletion.png'
      description: |
        Starting with GitLab 9.2, the deletion of the source branch in a merge
        request is selected by default. If you want to keep the branch around
        even when the merge request is merged, you'll have to uncheck the option
        from the merge request widget before merging.

    - name: Docker Registry Cleanup Tool
      available_in: [core, starter, premium]
      documentation_link:
      description: |
        We're glad to announce that an alpha version of our
        <a href="https://gitlab.com/gitlab-org/docker-distribution-pruner">Docker Container Registry maintenance tool</a>
        is available to the public. This tool analyzes the
        <a href="https://docs.gitlab.com/ee/user/project/container_registry.html">container registry</a>
        and prunes unreferenced versions of tags, manifests, and layers to reclaim storage space.
        <p>If you're enthusiastic to experiment with how it works,
        you're encouraged to test it out and report your feedback!

    - name: Artifacts are Restored after Cache Files in CI Jobs
      available_in: [core, starter, premium]
      documentation_link:
      description: |
        It may happen that someone, by mistake or by purpose, uses the same path in `.gitlab-ci.yml` for both `cache` and `artifacts` keywords,
        and this could cause that a stale cache might inadvertently override artifacts that are used across the pipeline.
        <p>Starting with this release, artifacts are always restored after the cache to ensure that even in edge cases you can always rely on them.

    - name: GitLab Runner 9.2
      available_in: [core, starter, premium] #MISSING
      documentation_link: 'https://docs.gitlab.com/runner/'
      documentation_text: "Learn more about GitLab Runner in our docs."
      image_url:
      description: |
        <p>We're also releasing GitLab Runner 9.2 today!
        <p><strong>Most interesting changes:</strong>
        <ul>
          <li>Support for TLS client authentication (<a href="https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/157">merge request</a>)</li>
          <li>PodLabels setting for Kubernetes executor configuration (<a href="https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/558">merge request</a>)</li>
          <li>Support for Kubernetes Service Account in Kubernetes executor configuration (<a href="https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/554">merge request</a>)</li>
        </ul>
        <p>List of all changes can be found in GitLab Runner's <a href="https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/blob/master/CHANGELOG.md">CHANGELOG</a>.</p>

    - name: Omnibus Improvements
      available_in: [core, starter, premium] #MISSING
      gitlab_com: false
      documentation_link:
      image_url:
      description: |
        <h4 id="gitlab-mattermost-3_9">GitLab Mattermost 3.9</h4>
        <p>GitLab 9.2 includes <a href="https://about.mattermost.com/mattermost-3-9">Mattermost 3.9</a>, <a href="https://about.mattermost.com/">an open source Slack-alternative</a>, which adds a new <a href="https://about.mattermost.com/community-applications/#privateApps">integrations directory</a>, Polish support, upgraded desktop apps with spellchecker, and much more.</p>
        <p>This version includes <a href="http://about.mattermost.com/security-updates/">security updates</a> and an upgrade is recommended.</p>
        <h4 id="gitlabregistry">GitLab Registry</h4>
        <p>The GitLab Container Registry has been updated from 2.4 to 2.6.1.</p>

    - name: Performance Improvements
      available_in: [core, starter, premium]
      performance_url: 'https://gitlab.com/gitlab-org/gitlab-ce/issues?scope=all&amp;utf8=%E2%9C%93&amp;state=closed&amp;label_name[]=performance&amp;milestone_title=9.2'
      description: |
        <p>With every release of GitLab we look to make significant improvements to the performance. In GitLab 9.2, the following areas should see visible improvement:</p>
        <ul>
          <li>Listing groups</li>
          <li>Listing projects</li>
          <li>Listing merge requests</li>
          <li>Listing milestones</li>
          <li>Push mirrors should no longer put pressure on filesystem and sidekiq queues</li>
        </ul>
        <p><a href="https://gitlab.com/gitlab-org/gitlab-ce/issues?scope=all&amp;utf8=%E2%9C%93&amp;state=closed&amp;label_name[]=performance&amp;milestone_title=9.2">Here is a full list</a> of performance improvements in GitLab 9.2.</p>

# MVP
mvp:
  fullname: Dosuken Shinya
  gitlab: dosuken123
  description: |
    Dosuken extended our <a href="http://docs.gitlab.com/ee/api/pipelines.html#list-project-pipelines">Pipelines API</a> by <a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9367">adding additional search attributes</a>. This is a huge improvement to our CI API, for example enabling queries to easily return the latest pipeline for a specific branch, as well as a host of other possibilities. Dosuken also made a great contribution last release, laying the foundation for <a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10133">scheduled pipelines</a>. Thanks Dosuken!

# COVER IMAGE LICENCE
cover_img:
  image_url: 'https://www.pexels.com/photo/body-of-water-beside-yellow-and-blue-hot-air-balloon-near-green-trees-during-day-time-35039/'
  licence: CC0
  licence_url: 'https://www.pexels.com/photo-license/'

# CTA BUTTONS
cta:
  - title: Join us for an upcoming event
    link: '/events/'

# UPGRADE BAROMETER
barometer:
  description: |
    <p>To upgrade to GitLab 9.2, no downtime is required.</p>
    <p>However we're also migrating data for CI jobs. If you have a significant number of jobs, this could take some time.
    <p>Starting with GitLab 9.1.0 it's possible to upgrade to a newer version of GitLab
    without having to take your GitLab instance offline. However, for this to work
    there are the following requirements:</p>
    <ol>
      <li>You can only upgrade 1 release at a time. For example, if 9.1.15 is the last
      release of 9.1 then you can safely upgrade from that version to 9.2.0.
      However, if you are running 9.1.14 you first need to upgrade to 9.1.15.</li>
      <li>You have to use <a href="https://docs.gitlab.com/ee/development/post_deployment_migrations.html">post-deployment migrations</a>.</li>
      <li>You are using PostgreSQL. If you are using MySQL you will still need downtime
      when upgrading.</li>
    </ol>
    <p>This applies to major, minor, and patch releases unless stated otherwise in a
    release post.</p>
    <p>A new version of our API was released in <a href="https://about.gitlab.com/blog/2017/03/22/gitlab-9-0-released/#api-v4">GitLab 9.0</a>.
    While existing calls to API v3 will continue to work until August 2017, we
    advise you to make any necessary changes to applications that use the v3 API.
    <a href="https://docs.gitlab.com/ee/api/v3_to_v4.html">Read the documentation</a> to learn
    more.</p>

# DEPRECATIONS
deprecations:
  - feature_name: Vendor support for Ubuntu 12.04 and OpenSUSE 13.2
    due: May 22nd, 2017.
    description: |
      Vendor support for Ubuntu 12.04 and OpenSUSE 13.2 has ended.
      GitLab will no longer provide support or packages for these platforms.
