CrossRoad

XRを中心とした技術ブログ。 Check also "English" category.

ソースコードを1000年保存する「GitHub Archive Program」の概要を調べてみました

昨日くらいから「GitHub Action Program」という言葉をTwitterで見るようになりました。どんなものかちゃんと見てなかったのですが、自分のGithub プロフィールをみたら自分も対象になっていました。

よい機会なので、Github Archive Programとは何か、どんなコードが対象になるのかなどを調べてみました。

1. GitHub Archive Programとは?

以下で紹介されています。

archiveprogram.github.com

簡単にいうと、OSSを少なくとも1000年先まで残すためのプロジェクトです。2020/2/2時点のパブリックリポジトリをpiqlFilm (digital photosensitive archival film) というデジタルフィルムに保存して、ノルウェーのSvalbard (スヴァールバル)諸島に保管したそうです。

GitHub公式ブログでは、2020/7/16の記事で保存が完了したことが報告されています。

github.blog

一部抜粋します。

Our mission is to preserve open source software for future generations by storing your code in an archive built to last a thousand years.
On February 2, 2020, we took a snapshot of all active public repositories on GitHub to archive in the vault. Over the last several months, our archive partners Piql, wrote 21TB of repository data to 186 reels of piqlFilm (digital photosensitive archival film).

2. どんなGitHubリポジトリが保存されたのか?

3種類のどれかです。

・2019/11/13から2020/2/20までのpublicリポジトリでコミットが1つ以上のもの

・2019/2/3から2020/2/21つ以上のstarがついたリポジトリ

・250個以上のstarがついたリポジトリ(期間制限なし)

he snapshot will include every repo with any commits between the announcement at GitHub Universe on November 13th and 02/02/2020, every repo with at least 1 star and any commits from the year before the snapshot (02/03/2019 - 02/02/2020), and every repo with at least 250 stars.

引用元:GitHub Archive Program | The GitHub Archive Program will safely story every public GitHub repo for 1,000 years in the Arctic World Archive in Svalbard, Norway.

なお、保存対象はHEADのみ、100KB以上のバイナリーは原則削除です(ただし、保存容量やstarの数などで変わるかもとのこと)。

The snapshot will consist of the HEAD of the default branch of each repository, minus any binaries larger than 100KB in size—depending on available space, repos with more stars may retain binaries. Each repository will be packaged as a single TAR file. For greater data density and integrity, most of the data will be stored QR-encoded, and compressed.

引用元:GitHub Archive Program | The GitHub Archive Program will safely story every public GitHub repo for 1,000 years in the Arctic World Archive in Svalbard, Norway.

3. GitHub Archive Programの対象になっているかを確認するには?

GitHubにログインして、プロフィールを開きます。

GitHub profile of lime2018 as of 17/7/2020

このように、(1)、(2)の順番に選択してProfileを開きます。自分のリポジトリがGitHub Archive Programの対象になっている場合、(3)にそのことが表示されます。

You have a new badge!
You contributed code to the 2020 GitHub Archive Program and now have a badge for it. Thank you for being part of the program!

また、"Arctic Code Vault Contributor"にマウスカーソルを近づけると、どんなリポジトリがアーカイブ対象であるかがわかります。

An example of Arctic Code Vault Contributor repositories

私の場合、Babylon.js Documentationと、Babylon-vrm-loaderは自分のリポジトリではありませんが少しcontributeしたことがあります。どうやらcontributeしたリポジトリが条件を満たした場合でも対象になるようですね。

bjs_pwa_exampleは、自分のオリジナルです。Webブラウザで動くBabylon.jsでつくったVRアプリのコードを、PWA (Progressive Web Apps) を使ってオフライン起動できるプログラムです。

4. GitHubモバイルアプリには特に表示されず、メールは来ない

これはGitHubの公式ブログからは見つけられなかったのですが、少なくとも私のプロフィール設定ではモバイルアプリには通知は表示されてませんでした。また、とくにメールも来ていませんでした。

5. おわりに

私のContributionは色々なOSSに比べると決して大きくないですが、それでも1000年後に何かの役に立てるかもしれないと思うとちょっとうれしいですね。