features:
  top:
    - name: Image Discussions
      available_in: [core, starter, premium]
      documentation_link: 'https://docs.gitlab.com/ee/user/discussions/#image-discussions'
      reporter: victorwu
      issue_url: 'https://gitlab.com/gitlab-org/gitlab-ce/issues/18608'
      description: |
        Everyone can contribute to GitLab, and with this release, we are helping
        interaction designers, visual designers, digital designers, graphic artists,
        frontend developers, or just anyone who works with images collaborate better.

        With discussions, you can now click a specific location
        of an image (within a commit or a merge request), and start a discussion with
        respect to that place in the image. You can even have multiple discussions
        specifying different areas of an image.

        Resolvability in the merge request
        diff view works the same as before, so once a discussion is settled, simply
        resolve it!

        ![Image discussions](/images/10_1/image_discussions.png){:.shadow}

  primary:
    - name: Lock Discussions
      available_in: [core, starter, premium]
      documentation_link: 'https://docs.gitlab.com/ee/user/discussions/#lock-discussions'
      documentation_text: "Read through the documentation on locking discussions"
      image_url: '/images/10_1/lock_discussion.png'
      reporter: victorwu
      issue_url: 'https://gitlab.com/gitlab-org/gitlab-ce/issues/18608'
      description: |
        In this release, we are introducing a moderation feature to lock down
        continued discussion in an issue or merge request. This is useful when
        there is abuse or spam or you simply want to direct users to a different
        place in GitLab (another issue, for example) for continued feedback and
        collaboration. A project member with master access (or higher) has
        permissions to lock and unlock them. When an issue or merge request is locked,
        only project members can create new comments or edit existing ones.

    - name: Merge Requests Across Forks
      available_in: [core, starter, premium]
      documentation_link: 'https://docs.gitlab.com/ee/user/project/merge_requests/'
      documentation_text: "Read through the documentation on Merge Requests"
      image_url: '/images/10_1/create-merge-request-across-forks.png'
      reporter: mydigitalself
      issue_url: 'https://gitlab.com/gitlab-org/gitlab-ce/issues/20097'
      description: |
        Forks and merge requests are a great alternative to branch-based workflows as they
        enable any developer to create an alternative copy of the repository rather than committing
        changes directly against the primary codebase.

        However, this means that it can make it harder for multiple people to work on the same
        code at the same time as the forks are isolated.

        With GitLab 10.1, you can now create merge requests between forks of a canonical repository.

        This makes working together on forks now much simpler, allowing multiple developers to easily review and merge
        across forks, bringing the code together before sending a merge request back to the canonical
        repository.

    - name: LDAP Group Sync Filters
      available_in: [premium]
      gitlab_com: false
      documentation_link: 'https://docs.gitlab.com/ee/administration/auth/ldap-ee.html#group-sync'
      documentation_text: "Read through the documentation on GitLab LDAP Group Sync"
      image_url: '/images/10_1/ldap_filters.png'
      reporter: mydigitalself
      issue_url: 'https://gitlab.com/gitlab-org/gitlab-ee/issues/3188'
      description: |
        As part of our growing Enterprise authentication capabilities, GitLab 10.1
        supports the ability to synchronize LDAP groups to GitLab based on filters,
        including _user attributes_.

        For larger and more complex LDAP implementations there may be additional metadata
        in LDAP to infer permissions, roles, or types of users. By leveraging group filters, GitLab makes it easier
        to perform more user management capabilities directly from LDAP.

        GitLab EES already allows basic synchronization of LDAP groups to GitLab groups. This is great functionality for basic
        LDAP integration, but means that your LDAP structure needs to effectively mirror GitLab's group structure.

        The introduction of LDAP Group Sync Filters in GitLab EEP means that your existing LDAP structures
        and attributes can be utilized in a more powerful way to manage your GitLab permissions.

    - name: Reject Unsigned Commits
      available_in: [premium]
      documentation_link: 'https://docs.gitlab.com/ee/push_rules/push_rules.html#enabling-push-rules'
      documentation_text: "Read through the documentation on GitLab Push Rules"
      image_url: '/images/10_1/reject_unsigned_commits.png'
      reporter: mydigitalself
      issue_url: 'https://gitlab.com/gitlab-org/gitlab-ee/issues/3285'
      description: |
        Controlling and verifying identities are a key component to GitLab's Enterprise
        authentication features. GitLab 10.1 introduces two new mechanisms to enforce
        user identity management whilst committing code.

        Authors may be verified through [GPG](https://docs.gitlab.com/ee/user/project/repository/gpg_signed_commits/) integration [introduced in GitLab 9.5](/blog/2017/08/22/gitlab-9-5-released/).
        With GitLab Enterprise Edition Premium it is now possible to enforce verification and reject
        any commits that are unsigned using push rules.

    - name: Easily Create Kubernetes Clusters on GKE (Beta)
      available_in: [core, starter, premium]
      documentation_link: 'https://docs.gitlab.com/ee/user/project/clusters/index.html'
      documentation_text: "Read through the documentation on GKE clusters"
      image_url: '/images/10_1/kubernetes_cluster_creation.png'
      reporter: bikebilly
      issue_url: 'https://gitlab.com/gitlab-org/gitlab-ce/issues/35954'
      description: |
        Every application needs a home and in case of web apps or microservices, it can be a
        [Kubernetes cluster](https://kubernetes.io/) that can also deploy
        [Review Apps](https://docs.gitlab.com/ee/ci/review_apps/) during the development cycle.
        But setting up a cluster properly is not an easy task, and developers should focus on
        writing the code, rather than setting up the infrastructure.

        That's why, in GitLab 10.1, we add the ability to connect your Google Account to your projects and to
        create a brand new Kubernetes cluster on [Google Container Engine (GKE)](https://cloud.google.com/container-engine/)
        just by enabling the services for your account and specifying a few parameters.
        The cluster is immediately ready to use and can be leveraged, among others, by
        [Auto DevOps](https://docs.gitlab.com/ee/topics/autodevops/) to have your apps live.

    - name: Online View of HTML Artifacts
      available_in: [core, starter, premium]
      documentation_link: 'https://docs.gitlab.com/ee/user/project/pipelines/job_artifacts.html#browsing-job-artifacts'
      documentation_text: "Read through the documentation on browsing HTML artifacts"
      image_url: '/images/10_1/html_artifacts_browser.png'
      reporter: bikebilly
      issue_url: 'https://gitlab.com/gitlab-org/gitlab-ce/issues/34102'
      description: |
        As many projects rely on GitLab for automated testing, developers also need to access the test results
        in order to fully benefit of the feedback. This is just an example of how important it is to render HTML reports
        and make them accessible in an easy way.

        With GitLab 10.1, we introduce the online visualization of HTML files created by pipelines for public projects,
        just one click away from the artifacts browser view.
        Your test reports, code quality and coverage information are now very simple
        to access directly from your browser, with no need to download them locally.

  secondary:
    - name: Signing Commits with GPG Subkeys
      available_in: [core, starter, premium]
      documentation_link: 'https://docs.gitlab.com/ee/user/project/repository/gpg_signed_commits/index.html'
      reporter: mydigitalself
      issue_url: 'https://gitlab.com/gitlab-org/gitlab-ce/issues/36829'
      description: |
        GPG integration was [introduced in GitLab 9.5](https://about.gitlab.com/blog/2017/08/22/gitlab-9-5-released/#gpg-commit-verification).
        allowing you to sign commits to verify your identity. Many people use verified subkeys to sign
        commits, and this is now supported and displayed as verified in GitLab 10.1.

    - name: Improved New Project Page
      available_in: [core, starter, premium]
      documentation_link: 'https://docs.gitlab.com/ee/gitlab-basics/create-project.html'
      documentation_text: 'Read through the documentation on creating projects in GitLab'
      image_url: '/images/10_1/new_project.png'
      reporter: jramsay
      issue_url: 'https://gitlab.com/gitlab-org/gitlab-ce/issues/37399'
      description: |
        Creating a [project](https://docs.gitlab.com/ee/user/project/#project-39-s-features)
        is the first step when getting started with GitLab,
        and we've improved the _New Project_ page to make this simpler. Now it's
        easier to take advantage of Project Templates ([introduced in GitLab 9.5](https://about.gitlab.com/blog/2017/08/22/gitlab-9-5-released/#project-templates)) to create
        a project with a working example code and pre-configured CI,
        create a blank project, or import an existing project from elsewhere.

    - name: Manage Milestones with Developer Permissions
      available_in: [core, starter, premium]
      documentation_link: 'https://docs.gitlab.com/ee/user/permissions.html'
      documentation_text: "Read through the documentation on GitLab Permissions"
      reporter: victorwu
      issue_url: 'https://gitlab.com/gitlab-org/gitlab-ce/issues/32215'
      description: |
        The developer role can now create, edit, and delete both project milestones
        and group milestones. Managing milestones is a software delivery team activity,
        so we wanted to extend that flexibility and responsibility to the users with Developer
        access in GitLab.

    - name: Improved Internationalization
      available_in: [core, starter, premium]
      documentation_link: 'https://docs.gitlab.com/ee/development/i18n/index.html'
      documentation_text: 'Read through the documentation on translating GitLab'
      reporter: jramsay
      issue_url: 'https://gitlab.com/gitlab-org/gitlab-ce/issues/4012'
      description: |
        As part of our ongoing effort to internationalize GitLab, we have now externalised
        strings in the Branches, Group and Wiki pages allowing our translation community to add
        more languages and strings to GitLab.

        If you are interested in contributing to GitLab's Internationalization efforts, we welcome
        you to join our [translation community](https://docs.gitlab.com/ee/development/i18n/index.html).

    - name: Improved Admin Audit Log
      available_in: [premium]
      gitlab_com: false
      documentation_link: 'https://docs.gitlab.com/ee/administration/audit_events.html#audit-log-admin-only'
      documentation_text: "Read through the documentation on Admin Audit Logs"
      reporter: mydigitalself
      issue_url: 'https://gitlab.com/gitlab-org/gitlab-ee/issues/1370'
      description: |
        Knowing what happens inside your GitLab instance is an important aspect of many auditing
        requirements.

        GitLab EES (Enterprise Edition Starter) has basic Audit Event capability where each group or repository has
        a simple log of events that have taken place.

        The Admin Audit Log was [introduced in GitLab 9.3](https://about.gitlab.com/blog/2017/06/22/gitlab-9-3-released/#centralized-audit-log),
        allowing administrators to access a centralized log of events from
        Groups, Projects, and user actions. New user actions have been added to
        the central audit log in GitLab 10.1:

          - Add or remove email addresses
          - Password change and forgotten password
          - Login failure
          - Adding SSH keys and granting oAuth access

    - name: Semi-linear History and Fast-forward Merge Requests in CE
      available_in: [core, starter, premium]
      documentation_link: 'https://docs.gitlab.com/ee/user/project/merge_requests/'
      documentation_text: "Read through the documentation on Merge Requests"
      reporter: victorwu
      issue_url: 'https://gitlab.com/gitlab-org/gitlab-ce/issues/20076'
      description: |
        While engaging with the GitLab community, lots of folks have told us that even
        in small teams, they want flexibility when choosing a merge method. With
        this release, we are taking
        [semi-linear history](https://docs.gitlab.com/ee/user/project/merge_requests/#semi-linear-history-merge-requests)
        and [fast-forward merge requests](https://docs.gitlab.com/ee/user/project/merge_requests/#fast-forward-merge-requests)
        from GitLab Enterprise Editions into GitLab Community Edition (CE),
        so that all users can enjoy them.

    - name: Name of GitLab Users in Slack Notifications
      available_in: [core, starter, premium]
      documentation_link: 'https://docs.gitlab.com/ee/user/project/integrations/slack.html'
      documentation_text: "Read through the documentation on GitLab-Slack integration"
      reporter: victorwu
      issue_url: 'https://gitlab.com/gitlab-org/gitlab-ce/issues/38865'
      description: |
        Prior to GitLab 10.1, Slack notifications included only the GitLab username.
        In this release, the full name is displayed as well. The new format is
        `First Last (username)`.

    - name: "New keyword for Automatically Closing Issues"
      available_in: [core, starter, premium]
      documentation_link: 'https://docs.gitlab.com/ee/user/project/issues/automatic_issue_closing.html#default-closing-pattern-value'
      documentation_text: "Read through the documentation on Automatic Issue Closing patterns"
      reporter: victorwu
      issue_url: 'https://gitlab.com/gitlab-org/gitlab-ce/issues/38424'
      description: |
        You can now use a new keyword, `implements` (and its variants), in a commit message
        or merge request description to signal automatically closing an issue. This joins the existing
        keywords such as `closes`, `fixes`, and `resolves` (and their variants).

    - name: Secondary Email Confirmation
      available_in: [core, starter, premium]
      documentation_link: 'https://docs.gitlab.com/ee/security/user_email_confirmation.html'
      reporter: mydigitalself
      issue_url: 'https://gitlab.com/gitlab-org/gitlab-ce/issues/37385'
      description: |
        For improved security, GitLab is able to enforce email confirmation on sign up.

        This functionality is now extended to additional emails that are added to the user
        account, ensuring that all email addresses added to user profiles are confirmed.

    - name: Omnibus Improvements
      available_in: [core, starter, premium]
      gitlab_com: false
      documentation_link: 'https://docs.gitlab.com/omnibus/'
      documentation_text: "Read through the documentation on Omnibus GitLab"
      reporter: joshlambert
      description: |
        - Postgres has been updated to 9.6.5.
        - Prometheus has been updated to 1.7.2, along with Postgres exporter 0.2.3 and Redis exporter 0.12.2.
        - Additional Postgres settings are now configurable within `gitlab.rb`: `effective_io_concurrency`, `max_worker_processes`, `max_parallel_workers_per_gather`, `log_lock_waits`, `track_io_timing`, and `deadlock_timeout`.
        - [Roles have been added](https://docs.gitlab.com/omnibus/roles/) to streamline configuration of GitLab in highly available installations.
        
    - name: GitLab Mattermost 4.2
      available_in: [core, starter, premium]
      gitlab_com: false
      documentation_link: 'https://docs.gitlab.com/omnibus/gitlab-mattermost/'
      documentation_text: "Read through the documentation on GitLab Mattermost"
      reporter: joshlambert
      description: |
        GitLab 10.1 includes [Mattermost 4.2](https://about.mattermost.com/blog/mattermost-4-2/), an open source Slack-alternative whose 4.2 release includes interactive message buttons to simplify complex workflows, plus much more. This version includes security updates and an upgrade is recommended.

        Mattermost 4.2 was also included in GitLab 10.0. Anyone on GitLab 10.0 or later should have the patch already.

    - name: GitLab Geo Improvements
      available_in: [premium]
      gitlab_com: false
      documentation_link: 'https://docs.gitlab.com/ee/gitlab-geo/'
      documentation_text: "Read through the documentation on GitLab Geo"
      reporter: jramsay
      description: |
        Notable changes shipped with GitLab 10.1:

        - Improved repository sync performance supports larger GitLab instances ([#3453](https://gitlab.com/gitlab-org/gitlab-ee/issues/3453))
        - Improved handling of repository sync failures to prevent the queue
          from becoming clogged with permanently failing tasks ([#3259](https://gitlab.com/gitlab-org/gitlab-ee/issues/3259))
        - Added migration path to hash-based storage format introduced in GitLab 10.0 ([#3118](https://gitlab.com/gitlab-org/gitlab-ee/issues/3118))
        - Attachments on personal snippets are now synced ([#3644](https://gitlab.com/gitlab-org/gitlab-ee/issues/3644))
        - After upgrading to 10.1, [attachments will be re-synced](https://docs.gitlab.com/ee/gitlab-geo/updating_the_geo_nodes.html#upgrading-to-gitlab-10-0) due to a bug

        See the [full list of changes](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests?scope=all&utf8=%E2%9C%93&state=merged&label_name[]=Geo&milestone_title=10.1).

    - name: Performance Improvements
      available_in: [core, starter, premium]
      performance_url: 'https://gitlab.com/groups/gitlab-org/issues?scope=all&utf8=%E2%9C%93&state=closed&label_name[]=performance&milestone_title=10.1'
      documentation_text: "See all the performance improvements in GitLab 10.1"
      reporter: mydigitalself
      issue_url: 'https://gitlab.com/groups/gitlab-org/issues?scope=all&utf8=%E2%9C%93&state=closed&label_name[]=performance&milestone_title=10.1'
      description: |
        Performance is an important part of GitLab, allowing GitLab to scale to hundreds of
        thousands of users.

        GitLab 10.1 includes 20 performance improvements, including faster viewing of merge
        requests, faster importing from GitHub and general initial page load improvements.
        The Container Registry page is now paginated, making it much faster. Project search from the
        toolbar has been optimized as has viewing projects and issues. The Rebase button
        is now also significantly faster.

    - name: GitLab Runner 10.1
      available_in: [core, starter, premium]
      documentation_link: 'https://docs.gitlab.com/runner'
      documentation_text: "Read through the documentation on GitLab Runner"
      reporter: nolith
      description: |
        We're also releasing GitLab Runner 10.1 today! GitLab Runner is the open source project
        that is used to run your CI/CD jobs and send the results back to GitLab.

        #### Most interesting changes:

        * EmptyDir support for kubernetes volumes ([merge request](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/660))
        * Construct git remote URL based on configuration ([merge request](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/698))
        * Set git SSL information only for GitLab host ([merge request](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/687))

        List of all changes can be found in GitLab Runner's [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/v10.1.0/CHANGELOG.md).

mvp:
  fullname: Vitaliy Klachkov
  gitlab: blackst0ne
  description: |
    With an amazing [23 contributions](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests?scope=all&utf8=%E2%9C%93&state=merged&label_name[]=Community%20Contribution&milestone_title=10.1&author_username=blackst0ne)
    for GitLab 10.1, Vitaliy Klachkov is the MVP for this release! He's been
    contributing to GitLab for quite some time now and is a member of the
    [core team](/community/core-team/). From API and UI additions to improving our test
    suite (18 merge requests!), Vitaliy has rightfully earned a place to the
    monthly MVP stand.

    Thank you Vitaliy for your contributions!

cover_img:
  image_url: 'https://unsplash.com/photos/z1L6VcqLZgc'
  licence: Unsplash free license
  licence_url: 'https://unsplash.com/license'

barometer:
  reporter:
  description: |
    To upgrade to GitLab 10.1 from the latest 10.0 version, no downtime is required.

    To upgrade without downtime, please consult the
    [documentation on downtimeless upgrades](https://docs.gitlab.com/ee/update/README.html#upgrading-without-downtime).

    You can check the status of background migrations by running this command
    from the Rails console: `Sidekiq::Queue.new('background_migration').size`.

deprecations:
  - feature_name: 'The <code>gitlab</code> Helm chart'
    due: Dec 22nd, 2017.
    reporter: joshlambert
    description: |
      The [`gitlab` Helm chart](https://docs.gitlab.com/ee/install/kubernetes/gitlab_chart.html)
      is deprecated, and will be replaced by the new
      [cloud native GitLab chart](https://gitlab.com/gitlab-org/omnibus-gitlab/issues/2420).
       We are planning for an initial beta release of this new chart in 10.3.

      A migration will be required to move from the current deprecated chart,
      to the new cloud native GitLab chart.
  - feature_name: Mattermost Configuration Changes
    due: GitLab 11.0
    reporter: joshlambert
    description: |
      With the release of GitLab 11.0, the number of Mattermost configuration options supported within
      `gitlab.rb` will be reduced. We will continue to support the
      [core configuration settings](http://docs.gitlab.com/omnibus/gitlab-mattermost/#upgrading-gitlab-mattermost-from-versions-prior-to-11-0)
      necessary to run Mattermost, and set up the integration with GitLab. Going forward, other
      configuration settings should be set
      directly within the Mattermost console, or [passed as environment variables](http://docs.gitlab.com/omnibus/gitlab-mattermost/#upgrading-gitlab-mattermost-from-versions-prior-to-11-0).


      Presently with two applications attempting to write to the same config file, changes can be lost. 
