2020年のオープンソース活動の振り返り記事です。

今までの振り返り。

2020年のGitHubのPublicなContributionsは7000~9000ぐらいを推移していました。

2020 Contributions

最近はPrivateリポジトリをメモやブックマーク管理などでも使うようになったので、Private比率は増えてPrivateなContributionsは13400でした。

データの取得には次のツールを使いました。

GitHub Full Longest StreakはこわれちゃったのでLongest Streakはわからないですが、Privateの方を含めると全部埋まってたので多分6年ぐらいコミットが続いていそうです。

Issue/PR

  • PR: 372
    • 去年: 412
  • Issue: 379
    • 去年: 275

PRは少し減っていて、Issueはすごい増えている。 今年はPull Requestを受け取ることが多かったからなのかもしれない。(あと去年はJavaScript Primerのコミットが多かったのかも)

作ったリポジトリ

https://github.com/search?q=user%3Aazu+user%3Aefcl+user%3Ajser+user%3Aalmin+user%3Atextlint+user%3Atextlint-ja+user%3Atextlint-rule+user%3AJXA-userland+user%3Ajs-primer+user%3Aecmascript-daily+user%3Aasciidwango+user%3Asecretlint+user%3Ahonkit+created%3A2020-01-01..2021-01-01+is%3Apublic&type=Repositories

  • 2020: 111
  • 2019: 81
  • 2018: 69
  • 2017: 95

作ったリポジトリが多くなっているのは、ゴミっぽいものでもリポジトリを作ってpushしておく習慣がついてきたからかもしれない。 次の記事でも似たことを書いていた

そのままローカルのゴミ箱に捨てるよりはGitHubに捨てる ゴミ箱に捨ててしまうと記憶からも無くなってしまう

あと今年はGitHub ActionsGitHub Packagesですごい遊んだ気がするので、この検証リポジトリが大量にある気がする。

作ったもの

何を作っていたのかを振り返る。

長いの主要なものを並べると

.phoenix.js はこんなイメージ。appNamesはアプリ名に合わせる

tile

mumemo

mumemo

HackerNewsに載った翌日ぐらいのHonkit

HackerNewsに載った翌日ぐらいのHonkit

HonKitを作った直接的な理由は次のIssueを解決したかったからだと思う。


その他

JSPrimer

始まりはもう5年前だけど、JavaScript Primer - 迷わないための入門書 #jsprimerを書籍として出版した。

9月にはES2020に対応したメジャーアップデートも出した(ES2020が出版後に正式リリースなので)。

まだ、Issueは色々あるので、興味ある人はコラボレータになってください。

GitHub Sponsors

去年末にGitHub Sponsorsの募集を始めた。

去年末時点で30人ぐらいの方に支援してもらって、今は57 sponsorsなので2倍程度に増えています。 サポートありがとうございます!

また、初めてOrganizationからのスポンサーをしてもらった

JSer.info

来月で10周年。

一足早く500回は更新したので、JSer.infoのslackを作ったりした。(気軽にコメントとかURL貼っていくと良い気がします)

JSer.infoの少し前に開始して参考にしてたJavaScript Weekly#519で、JSer.infoは#520なので更新回数は追い越してしまっていた。

細かい話は10年の記事でも書きそうな気がするけどhubmemoでJSer.infoを再実装してみながら、何があると上手く回るんだろなーと考えている。

まとめ

GitHub

今年はGitHubでものすごい遊んだ気がする。 特にGitHub Actionsはmissuehubmemoでもかなり使い込んでみている。

GitHub APIもだいぶさわったのでGraphQLもサンプルコード探さなくてもかけるようになった。

オープンソース

タイトルをOSSからオープンソースに変更したのは、Softwareじゃないこともオープンソースでやることが増えているというのもあります。

- 今年のOSS活動振り返り @ {year}
+ 今年のオープンソース活動振り返り @ {year}"

JavaScript Primerとかのオープンソースな書籍なのだけど、文章になると新しく機能追加みたいなPRは一気に減る気がする。

どちらもオープンソースには変わりないので、Issueで手を上げてもらえればassignして、Pull Requestを出してもらってレビューするのは同じ。 JavaScript Promiseの本ももっと追加したい話があるので、その辺に興味ある人は手を上げてもらえれば一緒に作っていける。

文章だけじゃなくてデザインとかも同じことができるので、個人的にはOSSというよりはオープンソースって言葉を使うようになった。

📝 厳密な定義的な話というよりは、感覚的にそう言った方が合う感じがしてきたので言い方をかえてみた

セキュリティ

ちょこちょこ脆弱性の調査とかツールとかセキュリティ周りの実証コードを書いたりしてた。

実際に脆弱性診断(する側)をやったり、セキュリティ的な問題を修正とか、方針を考えたりしてた。

一つ興味深い方法として、今は世の中に毎日インシデント情報が出ているので、それを自分のサービスなどでは同じ問題がおきないかを調べて、起きるなら何か足りていないかをまとめると色々わかって面白い。(その場で直せないやつだと思うので、振り返る場でどうするかを改めて決める) また、ちょっとずつやらないといけない話でもあるので、粒度のバランスがとりやすいので良いのかもしれない。(なんかフレームワークとしてありそう)

パフォーマンス

パフォーマンスの分析と修正とかも色々やった。

パフォーマンスとかセキュリティどっちも継続し続ける問題。 特にパフォーマンスは1つの修正で解決することを期待しがちなので、最後までちゃんとやりきることが重要と感じた。 最近は逆にプラクティスが溢れているので、それを一つとってきても解決しない問題はたくさんあると思った。

今いろんなデータが取れるので見えるデータを追いかけたなるけど、ちゃんと削りながら目標の方向を修正していく必要があるなーと思った。 ただし、ずっと終わらない問題は修正する側もつかれるので、分かりやすい目標設定もしておくとその目標を解決中に根本原因を発見できることがある。

WikipediaのHuman performance metricsという話が面白かった。 実際に今年あったパフォーマンスの問題も最後は使ってる人が「パフォーマンスがよくなっと」いう話をしているの見て解決という扱いにした。

開発

新しいプロジェクトに参加して開発をしてた。

FrontendOps的なCIの設定、TypeScriptの設定/移行、Node.js 14(LTS)へのアップデート、webpack 5へのアップデートなどをやった。

TypeScriptはProject Referencesを実際に使ったりしていた。

中途半端にJavaScriptが残っていてTypeScriptへの移行もやっていた。 この時に、SlackのTypeScriptの移行みたいな作業用のスレッドを作って、そこでちょっとずつ進捗を出すと他の人もやってくれたりするので便利だった。 実際には、JavaScriptが一部残っていても実害はほとんどないのだけど(allowJsもある)、残ってるのはあんまり触れないコードだったりする。 そういう残ってるものはあとで直すと面倒なことが起きやすいので、少しずつでもやったほうがいいよねって感じの意識付けも含んでいる気がする。

FrontendOps(最近はDivOpsって言おうプロジェクトがあるけどこれはどうなんだろ)だけじゃなくて、UIからサーバの実装とか絵としてのデザイン以外はだいたいやった気がする。

パフォーマンスとセキュリティもプロジェクトの外から言ってもあんまり効果は出ない気がするので、 プロジェクトの中と外の両方から取り入れていくと、最終的な着地地点が見えやすいと思った。

その他

最近はイラストの勉強をしているけど、今までやったことなかった分野なので知らないことばかりだったりする。 でも構造が見えてくると面白い。