の出力make dist
を GitHub Releases 経由で公開する
Autoconf および Automake で生成されたファイルをリポジトリに配置するという最初のオプションは、お勧めできません。生成されたファイルをソース管理に保存することは、ほとんど有益ではありません。この場合、特にすべての貢献者が同じバージョンの Autotools を使用しているわけではない場合、不必要で競合する可能性のある多くのコミットで履歴が汚染されます。3 番目のオプション (の出力をチェックインする) はmake dist
、最初のオプションとまったく同じ理由で悪い考えです。
2 番目のオプション (Autoconf と Automake を呼び出してconfigure
スクリプトを生成する「ブートストラップ」スクリプトを追加する) も悪い考えです。これは、Autotools が利用できないシステムを含め、システム間でソースを移植可能にするという Autotools の目的全体を無効にします! (誰かがルート アクセス権を持たず、GNU ビルド システムがインストールされていないマシンでソフトウェアをビルドしてインストールしようとした場合にどうなるか考えてみてください。ブートストラップ スクリプトは役に立ちません。最初に、Autotools と、場合によってはそのすべての依存関係をローカルにインストールする必要があります。)
Autotools を使用するコードをリリースする適切な方法は、 を使用して tarball を作成しmake dist
(またはmake distcheck
、これによりテストも実行され、他のサニティ チェックも実行されるため、より良い方法で)、この tarball をソース リポジトリ以外の場所に公開することです。
2013 年 4 月からの最初の質問では、GitHub がダウンロード ページを廃止したと述べています。ただし、2013 年 7 月に、GitHub は「リリース」機能を追加しました。この機能は、ソース タグを事前にパッケージ化するだけでなく、各リリースに任意のファイルを添付することもできます。したがって、GitHub では、リリース ページでmake dist
tarballを公開する必要があります(できれば、それらの分離された GnuPG 署名も公開する必要があります)。
基本的な手順
- リリースの準備ができたら、タグを付けて、そのタグを GitHub にプッシュします。
$ git tag 1.0 # Also use -s if desired
$ git push --tags
- Makefile を使用して tarball を生成します。
$ make dist # Alternatively, 'make distcheck'
- プロジェクトの GitHub ページにアクセスし、「リリース」リンクをたどります。
- プロジェクトのリリース ページが表示されます。初めてアクセスすると、タグのリストと、ソース ツリーから自動的に生成された tarball が
表示され
ます。[Draft a new release] ボタンをクリックします。
- 次に、リリースに関連付けられた Git タグと、オプションのタイトルと説明を入力するフォームが表示されます。この下には、「ここにドロップするか選択してバイナリを添付する」というラベルの付いたファイル セレクターもあります。これを使用して、手順 2 で作成した tarball をアップロードします (また、その分離された GnuPG 署名も含まれる場合があります)。
完了したら、「リリースを公開」ボタンを押します。
- プロジェクトのリリース ページに、添付ファイルの目立つダウンロード リンクを含むリリースが表示されます。
GitHub リリースを使用したくない場合は、前の回答で指摘したように、自分の Web サイトや FTP サイトなど、別の場所に tarball をアップロードする必要があります。プロジェクトからこのリポジトリへのリンクを追加してREADME.md
、ユーザーが見つけられるようにします。