GitLab 10.0 リリース

# GitLab 10.0 リリース

今年の 3 月に [GitLab 9.0 リリース](https://qiita.com/masakura/items/762e48aa876397c3e3c5) という記事を投稿したばかりなんですが、もう 10.0 です。メジャーリリースに合わせて、[ホームページ](https://about.gitlab.com/)もリニューアルされています。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/103982/1cacf897-8125-7ec4-e236-6db9f065a09c.png)


[9.0 が 2017/3](https://about.gitlab.com/2017/03/22/gitlab-9-0-released/)、[8.0 が 2015/9](https://about.gitlab.com/2015/09/22/gitlab-8-0-released/)、[7.0 が 2014/6](https://about.gitlab.com/2014/06/22/gitlab-7-dot-0-released/) と、おおよそ 15 ヶ月くらいでメジャーアップデートだったんですが、半年のメジャーアップデートで面食らっています。

メジャーリリースということでかなり変更が入っていますのでアップデートをする前に一度、リリースノートを読んだ方がいいと思います。


## お知らせ
### GitLab.com サブスクリプションと機能
5/1 から始まった GitLab.com の有料プランですが、無料プランでも EE の機能が使えたりしてて、どういうことだろう? と思っていたのですが、9/1 から本来あるべき姿に変わったようです。

* 無償プランでも public プロジェクトはすべての有料機能が使えます。OSS の支援をするため、だそうです。
* 9/1 以前に作成したアカウントやグループは、一年間限定で有料機能が使えます。

9/1 以前にアカウントを作られた方は、一年後に使えなくなる機能が出てくるので要注意です!

でも、public プロジェクトなら全機能使えるのは (私みたいに、機能調査をしている人にとって) いいですね。まあ、調べているうちに有料機能が欲しくてほしくてたまらなくなるのですが...


### GitLab Meetup Fukuoka #1 開催
私は鹿児島ということで、今年から開催されている GitLab Meetup Tokyo に遊びに行けずに悔しい思いをしておりました。[GitLab Meetup Fukuoka #1](https://gitlab-jp.connpass.com/event/64349/) が 9/19 (火) にさくらインターネット福岡オフィスにて開催されることになり、喜び勇んで行ってきました!

* [GitLab Mattermost](https://qiita.com/masakura/items/a31026d807b46394a91b) by masakura
* [GitHub to GitLab 〜よりよいCI/CD環境を求めて〜](https://speakerdeck.com/player/6886556bd75a4bfeb85d8d73920844dc#) by Kazumichi Yamamoto 
* [いまからDockerで始めるGitLab CE](https://speakerdeck.com/player/25eb3bf345034d6095392fdef25cd274#) by morita92hiro
* [SVNとGitを同期した話~Subgit~](https://speakerdeck.com/player/724eb8e425694fd282fd696b62f629dc#) by skycat_me
* [LT エラートラッキングツール Faultline](https://slideship.com/users/@sinofseven/presentations/2017/08/BAAKzxJpYRiRFDPYUZ1C2b/) by 夏目祐樹

鹿児島だと、GitLab を活用していたり、Docker やそのほかもろもろを使っている人になかなか会えないのですが、そういった方々と交流ができてとても楽しかったです。というか、みなさんすごいですね。

![20170919_185759.jpg](https://qiita-image-store.s3.amazonaws.com/0/103982/6beaa442-c250-5cdd-67d6-57986ef95089.jpeg)

当日の様子は [togetter](https://togetter.com/li/1152689) でどうぞ!


## This month's Most Valuable Person MVP is Hiroyuki Sato
今月の MVP (最も貴重な人?) に Hiroyuki Sato さんが選ばれました!

Sato さんは 10.0 で実装された、Issue をリアクションでフィルターできる機能のマージリクエストを提出し、採用されました。

詳しくは[GitLabにコントリビュートすると一流エンジニアからRailsのコードレビューをしてもらえる話](http://hiroponz.hateblo.jp/entry/2017/08/25/071232)を読んでいただけるといいと思います。

[https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12962/](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12962/) を見ると、29 個のディスカッション (レビュー) と 36 回のコミットを経て採用されたようです。

10/02 追記:

[【PR】GitLab 10.0のMVPに選ばれました](http://hiroponz.hateblo.jp/entry/2017/09/25/105821)が投稿されました! GitLab の概要や MVP とはなにか? などが書かれています。


## 変更点
今月は始まるまでが長いですね。ということで、気になる今月の変更点です。


### [Auto DevOps](https://about.gitlab.com/2017/09/22/gitlab-10-0-released/#auto-devops)
Auto Deploy に変わる Auto DevOps です。

GitLab は CI/CD の機能を通じて、ビルド・コード検査・テスト・ステージング・デプロイ・モニタリング・カナリーデプロイなどなど、さまざまなことができます。これをほぼ無設定でできるようになるのが Auto DevOps です。

[![Idea to Production](http://img.youtube.com/vi/AgKc_KUQEtE/0.jpg)](https://www.youtube.com/watch?v=AgKc_KUQEtE)

動画を見た方が早いですね!

ところで、この Auto DevOps は `.gitlab-ci.yml` がなくても動くんですが、Auto-DevOps テンプレートを使って吐き出すことができます。400 行くらいありますので、読み応え抜群ですね!

> Auto DevOps is currently in Beta and is not recommended for production use just yet.

ベータなのでプロダクションではまだ使わないでね! だそうです。

### [Group Issue Boards (EEP Only)](https://about.gitlab.com/2017/09/22/gitlab-10-0-released/#group-issue-boards)
カンバン機能の Issue Boards のグループ版です。複数のプロジェクトをまとめてカンバンで管理できます。

でも、EEP でしか使えないんですよね... ものすごく欲しいのですが...

> With this release we are proud to ship our most requested feature, GitLab’s Group-level Issue Boards!

最もリクエストの多かった機能だそうです。


### [New User Experience](https://about.gitlab.com/2017/09/22/gitlab-10-0-released/#new-user-experience)

少し前からテストを続けていた新しいナビゲーションがデフォルトになりました。9.5 からも洗練されていて、かなり使いやすくなっています。合わせて、アイコンも一新されています。

おかげで、何がどこにあるのかよくわからなくなった... でも、昔のごちゃごちゃしているのよりはすごくいいと思います!

![image.png](https://qiita-image-store.s3.amazonaws.com/0/103982/b178c584-d63b-d514-95e6-b215d197e12b.png)

色が変えられます!


### [Protected GitLab Runners](https://about.gitlab.com/2017/09/22/gitlab-10-0-released/#protected-gitlab-runners)
ここ数ヶ月 CI 周りをセキュアにするための変更の一環のようです。

Protected Branch/Tag 専用の Runner を構築できます。デプロイや署名用の秘密鍵をインストールしたマシンを Protected Runners に登録しておけば、リリースタグの時だけ使うとかができます。~~`master` ブランチでは使われませんので、不用意に秘密鍵などが漏れる可能性を減らすことができます。~~

誤解を招く表現でしたので追記。

本番系にデプロイするための秘密鍵や iOS のプロダクションビルド用の秘密鍵などを Runner にインストールしておくと、悪意のある開発者に簡単に取得されてしまいます。Protected Runner は Protected Branch/Tag でのみ使われますので、レビュアーがきちんとレビューしている前提ではありますが、秘密鍵などを奪われてしまう可能性が低くなります。


### [SSH Key Length Restrictions](https://about.gitlab.com/2017/09/22/gitlab-10-0-released/#ssh-key-length-restrictions)
短い長さの、弱い SSH キーを無効にすることができるようになりました。


### [GitLab Runner 10.0](https://about.gitlab.com/2017/09/22/gitlab-10-0-released/#gitlab-runner-10.0)
GitLab Runner もあわせて 10.0 になりました! デフォルトで、登録したプロジェクト専用になります

リポジトリが https://gitlab.com/gitlab-org/gitlab-runner に変更され、パッケージ名も gitlab-runner に変更になりました。

[Install GitLab Runner](https://docs.gitlab.com/runner/#install-gitlab-runner) を確認してください。

Ubuntu の場合ですが、以下のようにすることで古い gitlab-ci-multi-runner の削除と gitlab-runner のインストールができました。

```
$ curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
$ sudo apt-get install gitlab-runner
```

`apt-get upgrade` では 9.5.0 -> 10.0 にはアップグレードされないので注意してください。


### [Simplified Project Permissions ](https://about.gitlab.com/2017/09/22/gitlab-10-0-released/#simplified-project-permissions)
プロジェクトのパーミッション設定画面がすごくわかりやすくなりました!

![image.png](https://qiita-image-store.s3.amazonaws.com/0/103982/60bb65cf-1727-9251-5ba9-2f05831dcf53.png)


### [Access GitLab Commits and Branches in JIRA Development Panel](https://about.gitlab.com/2017/09/22/gitlab-10-0-released/#access-gitlab-commits-and-branches-in-jira-development-panel) (EEP Only)
GitLab のコミットやブランチへのリンクが JIRA の方に表示されるようになったようです。


### [Time Tracking for Issues CSV Export](https://about.gitlab.com/2017/09/22/gitlab-10-0-released/#time-tracking-for-issues-csv-export) (EES/EEP Only)
GitLab は Issue の予定作業時間と実作業時間を記録できるのですが、これを Issue CSV Export に出力されるようになりました。

[Time Tracking](https://docs.gitlab.com/ce/workflow/time_tracking.html) って、CE でも入力はできるんですが、表示される場所が少なすぎていまいち使いにくいんですよね。今後に期待ですね。


### [Filter by Reactions](https://about.gitlab.com/2017/09/22/gitlab-10-0-released/#filter-by-reactions)
Sato さんが MVP に選ばれた理由の機能です。

自分がリアクション (:+1: とか) をした Issue をフィルターできます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/103982/4b77d2f7-c0aa-6e33-28e0-9d1b7d1dea0d.png)

よく、この機能欲しいって思ってた Issue が行方不明になるんですが、結構便利ですね!


### [Weekly View for Cycle Analytics](https://about.gitlab.com/2017/09/22/gitlab-10-0-released/#weekly-view-for-cycle-analytics)
Cycle Analytics が一週間分でも見れるようになりました!

Cycle Analytics については[以前調べたんですが、](https://qiita.com/masakura/items/ec359f93ab04ba6c13c6)いまいち使いにくくて... 便利に使ってるよ! っていう人がいたら教えてほしいです。


### [Merge Request Inherits Issue Milestone and Labels](https://about.gitlab.com/2017/09/22/gitlab-10-0-released/#merge-request-inherits-issue-milestone-and-labels)
Issue 画面にある `Create Merge Request` ボタンで Merge Request を作った時に、ラベル・マイルストーンがそのままコピーされるようになりました。

地味に便利! なんですけど、ソースブランチから Merge Request 作るときはダメみたいです。("Issue 番号"-ほげほげ とかしてもだめでした)


## 注意点
10.0 だから大きく変わったというよりは、メジャーバージョンアップなのでいろいろ変えようという感じに見えます。詳しくは [Deprecations](https://about.gitlab.com/2017/09/22/gitlab-10-0-released/#release-deprecations) をご覧ください。


### [PostgreSQL 9.2 のサポート停止](https://about.gitlab.com/2017/09/22/gitlab-10-0-released/#postgresql-9.2-support)
ほとんどの方は Omnibus Package をそのまま利用しているでしょうからあまり関係はないと思いますが、PostgreSQL 9.2 での動作はサポートされなくなりました。

何も気にしなくていい Omnibus Package 万歳!


### [API V3 廃止](https://about.gitlab.com/2017/09/22/gitlab-10-0-released/#api-v3)
GitLab API V4 の登場で以前より廃止告知があった、GitLab API V3 が廃止になりました。と思いきや、まだ使っている人が多そうなので、廃止は 11.0 まで延期するそうです。

11.0 っていつだろう...


### [Koding Integration 廃止](https://about.gitlab.com/2017/09/22/gitlab-10-0-released/#koding-integration)
[Koding](https://www.koding.com/) という、ウェブブラウザーで使える開発環境がありまして。GitLab はこれとの連携することができました。Koding には [OSS の実装](https://github.com/koding)もあり、個人的には期待していたのですが、11.0 で廃止となります。

その代わり、Visual Studio Code のエディター部分の [Monaco Editor](https://microsoft.github.io/monaco-editor/) が GitLab に取り込まれ、複数のファイルを同時に修正できるようになります。

Koding が持っている、アプリの実行のための IaaS の部分はなくなりましたけど、GitLab 上で高機能なエディターが使えるということでちょっと楽しみです。


### [Keyword 'types' in '.gitlab-ci.yml' 廃止](https://about.gitlab.com/2017/09/22/gitlab-10-0-released/#auto-deploy)
GitLab CI でパイプラインができるようになった初期のころは `types` を使ってたようですが、`stages` に置き換えられました。この `types` が使えなくなります。`stages` に書き換えるだけで動くはずです。


### [Auto Deploy 廃止](https://about.gitlab.com/2017/09/22/gitlab-10-0-released/#auto-deploy)
年末に廃止になるようです。というか、もっとすごい Auto DevOps が入ったので、こっちはやめるよってことらしいです。


### [Runner's 'docker-ssh' and 'docker-ssh+machine' executors 廃止](https://about.gitlab.com/2017/09/22/gitlab-10-0-released/#runner%27s-%27docker-ssh%27-and-%27docker-ssh+machine%27-executors)
GitLab Runner は Executor というものを使って、ビルド用のマシンにアクセスし、ビルドをします。Docker だったり、SSH だったり、Parallels だったり、いろいろあるのですが、`docker-ssh` と `docker-ssh+machine` が来年廃止になります。

`docker-ssh` よりも `docker` が、`docker-ssh+machine` よりも `docker+machine` の方が便利なので、使っている人はあまりいないと思います。


### [TLSv1 no Longer Accepted by Default](https://about.gitlab.com/2017/09/22/gitlab-10-0-released/#tlsv1-no-longer-accepted-by-default) (追記)
@tnir さんよりコメントにて指摘がありましたので追記します。

**すでに**ですが、TLSv1 のサポートが廃止されました。Omnibus Package で SSL を有効にしている方が対象だと思われます。

古い Android の標準ブラウザーは TLSv1 しか使えません。ですが、ほとんどの場合、Chrome や Firefox をインストールするだけでいいはじです。

古い Android で Cordova などの WebView を使って GitLab にアクセスすると問題が出そうですね。

[wikipedia ウェブブラウザにおけるTLS/SSLの対応状況の変化](https://ja.wikipedia.org/wiki/Template:%E3%82%A6%E3%82%A7%E3%83%96%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8BTLS/SSL%E3%81%AE%E5%AF%BE%E5%BF%9C%E7%8A%B6%E6%B3%81%E3%81%AE%E5%A4%89%E5%8C%96)


## 最後に
9.x までは [GitLab Direction](https://about.gitlab.com/direction/) を見れば次のリリースはこんな機能がってあったのですが、`next 2-3 months` に変わりました。ので 10.1 かどうかはわかりませんが、期待できそうなのをいくつか。

* [Board refresh dynamically](https://gitlab.com/gitlab-org/gitlab-ce/issues/24478) リアルタイムで Boards が使えるようになると、離れた場所でのカンバンができますね!
* [Subissues](https://gitlab.com/gitlab-org/gitlab-ee/issues/2036) EEP のみですが、Issue のネストが欲しい方はいっぱいいそう

個人的に待ち望んでいるのは [Create official Grafana dashboards](https://gitlab.com/gitlab-org/gitlab-ce/issues/35062) です。10.0 のリリースには間に合わなかったようで、10.1 に入るようで、楽しみです。

来月も楽しみですね。