ホスティング

最終更新日:2024-11-24 | ページの編集

所要時間: 10分

概要

質問

  • バージョン管理リポジトリはどこでホストすればよいでしょうか?

目的

  • 科学研究のホスティングのためのさまざまなオプションについて説明します。

ライセンスを選択した後、作業を公開したいグループにとってのもう1つの大きな課題は、コードやデータをどこでホストするかです。
1つのオプションは、研究室、学部、または大学がサーバーを提供し、アカウントやバックアップなどを管理することです。
この方法の主な利点は、誰が何を所有しているかが明確になることです。
特に、ヒトを対象とする実験に関するデータや特許出願に使用される可能性がある機密性の高い題材の場合に重要です。
一方、主な欠点は、サービスの提供コストとその存続期間です。
10年を費やしてデータを収集した科学者は、さらに10年後もそのデータが利用可能であることを確認したいと考えますが、それは学術インフラに資金提供されるほとんどの助成金の存続期間を超えています。

もう1つのオプションは、自分でドメインを購入し、それをホストするためにインターネットサービスプロバイダー(ISP)に料金を支払うことです。
これにより、個人またはグループによる制御が強化され、ある機関から別の機関に移動するときに発生する可能性のある問題を回避できます。ただし、この方法は上記のオプションや以下のオプションよりもセットアップに多くの時間と労力を必要とします。

3つ目のオプションは、GitHubGitLab、またはBitBucket のようなパブリックホスティングサービスを利用することです。
これらの各サービスは、コードリポジトリを作成、閲覧、編集できるWebインターフェイスを提供します。
また、イシュートラッキング、Wikiページ、メール通知、コードレビューなど、コミュニケーションやプロジェクト管理ツールも備えています。
これらのサービスは規模の経済とネットワーク効果の恩恵を受けています。1つの大規模なサービスを適切に運営する方が、多くの小規模なサービスを同じ基準で運営するよりも簡単です。また、コラボレーションが容易になります。
人気のあるサービスを使用することで、既にそのサービスを使用しているコミュニティとプロジェクトをつなげることができます。

たとえば、Software Carpentry は GitHub 上にあります
このページのソースコードもここにあります。GitHub アカウントを持っていれば、誰でもこのテキストに変更を提案することができます。

GitHub リポジトリは、Zenodoと連携してリリースに DOI を割り当てることも可能です。
たとえば、10.5281/zenodo.7908089 は、このGit入門書に「ミントされた」DOIです。

大規模で確立されたサービスを利用すると、強力なツールを迅速に利用できる場合もあります。
その1つが継続的インテグレーション(CI)です。CIは、コードがコミットされたりプルリクエストが送信されたりするたびにソフトウェアのビルドやテストを自動で実行します。
オンラインホスティングサービスとの直接統合により、この情報がすべてのプルリクエストに表示され、コードの整合性と品質基準の維持に役立ちます。
CIは自分でホストする場合でも利用可能ですが、オンラインサービスを使用する場合よりも設定や保守の手間が大きくなります。
さらに、こうしたツールはオープンソースプロジェクトには無料で提供されることが多く、プライベートリポジトリの場合は有料で利用可能です。

組織的な制約

科学において共有は理想ですが、多くの組織が共有に制限を設けています。
たとえば、特許出願が可能な知的財産を保護するためです。
こうした制約に直面した場合、その根本的な動機について問い合わせたり、特定のプロジェクトや分野に例外を求めたり、より広範囲にわたってオープンサイエンスを支援するための制度改革を推進することが有益な場合があります。

自分の作品を公開できますか?

自分の作品を公開リポジトリでオープンにホストできるかどうかを確認してください。
これを単独で行うことができますか、それとも所属機関の誰かの許可が必要ですか?
もし許可が必要なら、それは誰ですか?

自分の作品をどこで共有できますか?

あなたの所属機関には、論文、データ、ソフトウェアを共有するためのリポジトリがありますか?
所属機関のリポジトリは、arXiVfigshareGitHub、またはGitLabのようなサービスとどう異なりますか?

まとめ

  • プロジェクトは大学のサーバー、個人ドメイン、またはパブリックホスティングサービスでホストできます。
  • 知的財産や機密情報の保存に関する規則は、コードやデータがホストされる場所にかかわらず適用されます。