普段使っているオープンソースソフトウェアのプロジェクトルートにあるドットファイル(.gitignore等)を覗いてみたら色々と発見があったので、面白かったものを以下に書いてみます。
GitLab (Community Edition)
Ruby on Rails製のGitホスティングサービス
まず.gitlab/
だけでなく、最大の競合であるはずの .github/
ディレクトリもあります。なぜでしょうか?
d1506ebe · Commits · GitLab.org / GitLab Community Edition · GitLab より引用
This adds templates for Issues/Pull Requests in a
.github
directory. These only effect issues/PRs opened in the GitHub mirror of the GitLab project. As we're shutting these down, I thought it'd be good to direct users/contributors to open issues/contribute code in the "correct" project.
「GitHubのミラーリポジトリではなく、GitLabにある正規のリポジトリを見てね」という文言をテンプレートに出すために追加されているようです。独特な使い方ですね。
.gitlab-ci.yml
にCIの設定があります。GitLab自体のプロジェクトのため、当然GitLabの機能がフル活用されています。
.codeclimate.yml
で ESLintとRubocopを動かしているようでしたが、ESLintは依存性の関係でenabled: false
になっていました。
.flayignore
は、静的コード解析 seattlerb/flayの設定ファイルのようです。
ソースコード管理ツールのソースコードだけあってか、品質担保系はちゃんとしていますね。
他には .babelrc
, .csscomb.json
, .haml-lint.yml
などフロントエンドの設定ファイルが続きます。.foreman
, .ruby-version
といったRuby系のファイルもあります。
.pkgr.yml
というのは https://packager.io の設定ファイルでしょうか?よく分かりませんでした。
Sentry (ON-PREMISE Version)
Python製イベントログ収集ツール
Visual Studio Codeの設定ファイルである.vscode/
というディレクトリがリポジトリに入っています。これは物議を醸しそうな一品ですが、プルリク を読む限り大した議論もなく入ったようです。素晴らしいですね。
.tx/
は、翻訳プラットフォームTransifexの設定ファイルのようです。実際に https://www.transifex.com/getsentry/sentry/ で翻訳状況を確認できます。
.prettierrc
は、JavaScript等のフォーマッタPrettierの設定ファイルです。
あと.travis.yml
があるのでTravisCIが回っているようですね。
.eslintrc
, .babelrc
, .storybook
などがフロントエンド系。.isort.cfg
はPython系の設定ファイルです。
Redash (Open Source Self hosted Version)
Python製BIツール
.editorconfig.yml
というファイルが入っています。EditorConfigは、異なるエディタ間で共通の設定を使う事ができるツールのようです。
参考: どんなエディタでもEditorConfigを使ってコードの統一性を高める - Qiita
.vscode/
を突っ込んだ某プロジェクトとは異なり、平和的なプロジェクトですね。
なお .gitignore
には .vscode
が含まれていました。
Microsoft ACS Engine
Azure Container Service (ACS)のOSS版。Go製。
Azure Container Service (AKS)ではなく、Azure Container Service (ACS)。
Microsoft製のリポジトリですが、こちらも.vscode
は.gitignore
に入っています。
Metabase
Clojure製のBIツール
ClojureのビルドツールであるLeiningenの設定ファイルが含まれています。
フロントエンド系は.babelrc
, .eslintrc
に加えて、Facebook製の静的型付けJavaScriptであるFlowの設定ファイル.flowconfig
があります。選定言語から開発者の好みが見えそうですね。
またエディタ設定ファイルとして.editorconfig
があるので平和的リポジトリかと思いきや、.dir-locals.el
というEmacs設定ファイルも入っています。これはどうやらα版の時代にMaster Pushされたようです。
まとめ
- ドットファイルはプロジェクトコードへの依存が浅いので、どんなプロジェクトでも参考にできる点が多い
- EditorConfigやTransifexなど、ファイル名を調べるだけでも知らないツールやサービスが見つかったりする
-
.vscode/
は、リポジトリに入れるか.gitignore
に入れるかで割れる