Show page source of FileRelease_Guide #105584

[[PageNavi(NavigationList)]]

= ファイルリリースガイド

OSDNのファイルリリース機能を利用すると、プロジェクトで作成したソフトウェアを配布できます。

== ファイルリリースに関する用語

OSDNのファイルリリースシステムは以下のような階層構造で管理しています。まずはこれらの用語について説明します。

{{{
パッケージ
  |
  +-リリース
  |  :
  |  :
  +-リリース
       |
       +-ファイル
       |  :
       |  :
       +-ファイル
}}}

=== パッケージ

ファイルリリースの最も大きな単位で、ソフトウェアの名前などを付けます。ソフトウェア名とプロジェクト名が同一のプロジェクトが多いので、各プロジェクトにはデフォルトでプロジェクトUNIX名のパッケージを配置しています(名称はもちろん変更可能です)。

パッケージは、プロジェクトごとに複数もつことができます。例えばhelloというプロジェクトが「foo」というソフトウェアだけでなく「bar」というソフトウェアも開発している場合は「foo」と「bar」というパッケージを作成して管理するとわかりやすいでしょう。

=== リリース

各パッケージはリリースを複数もつことができます。

リリースは以下のものを含みます。

  * ファイル(複数可)
  * リリースノート(複数言語記述できます)
  * 更新履歴(複数言語で記述できます)

つまり、実際に配布する一連のファイルをまとめたものがリリースです。

例えば foo というプログラムの version 0.1 をリリースすることになったとします。その場合は パッケージ 「foo」 以下にリリース「0.1」を作成します。そして 実際の プログラム foo version 0.1 のファイルをそこにアップロードします。また、そのリリースがどういうものなのか(例えば、「最初のリリースです」とか「まだアルファ版です」といったこと)をリリースノートに、前回のリリースからの変更点を変更履歴に記述します。

作成されたリリースは一覧に掲載されますので 一般のユーザはそこからダウンロード可能になります。

== リリース方法

ファイルリリースができるのは、プロジェクト管理者とリリース管理者の権限を持っているユーザーです。

ファイルリリースは、次の順番で行うことになります。

 1. パッケージの作成
 2. リリースの作成(ファイルアップロード)

順番に見ていきましょう。

=== 1 パッケージの作成

プロジェクトが登録された時点で、プロジェクトのUNIX名と同名のパッケージは自動で作成されます。この名前で問題ない場合は、パッケージを新たに作成する必要はありませんので、次に進んでください。

パッケージを作成するには、プロジェクトのリリース一覧もしくはダウンロードの管理ページから「パッケージの追加」をクリックします。パッケージ名を入力し、公開範囲を選択します通常「公開」でいいはずです(公開範囲の詳細に関しては後述します)

=== 2 リリースの作成

パッケージを作成すると、そのパッケージに対してリリースを追加することができるようになります。同じくリリース一覧もしくはダウンロードの管理ページ上に表示されているリリースを作成したいパッケージ上の「リリースを追加」ボタンをクリックしてください。

リリースには以下の情報が設定できます。

 * リリース名
 * 公開範囲
 * リリースに含まれるファイル
 * リリースノート
 * 変更履歴

リリースには複数ファイルを追加することができます。また、それぞれのファイルに対して公開範囲を設定することができます。

(複数ファイルのアップロードに対応している)ブラウザからはファイルを複数同時にアップロードすることもできます。

また、ファイルのアップロードにFTPを利用することもできます。FTPでのアップロードを利用する場合は、
リリースの編集画面にあるFTPアップロードを利用するスイッチをonにしてください。FTP でのアップロードに
関する情報が表示されます。

なお、'''ファイルリリースでアップロードできる1ファイルのサイズの上限は2GBまで'''となっています。

リリースには「リリースノート」と「変更履歴」のドキュメントを付加しておくことができます。
付加するドキュメントは以下の方法から選択できます。

 * wiki フォーマットで記述する
    * リリースの編集ページにあるフォームからwikiフォーマットで入力してください
    * 各言語ごとに記述できます
 * ファイルの中身を表示する
    * アップロードしたファイルのうち、リリースノート/変更履歴のファイルとしてシステムが認識するファイル名を持ったファイルの中身を表示させることができます
    * リリースノートとして認識されるファイル名は「readme」「release」「releasenote」です(大文字小文字は区別されません)
    * 変更履歴として認識されるファイル名は「changes」「changelog」です(大文字小文字は区別されません)
    * 対応しているファイルフォーマットは text(拡張子なし もしくは.txt という拡張子がついているファイルはtextファイルとして扱います) と html (.htm もしくは .html を拡張子としてもつファイルは html として扱います)です
    * ファイル名のあと(拡張子の前)に ハイフンと言語名を指定することで言語ごとにことなるファイルを表示できます(例: README-ja.txt というファイルは日本語のリリースノートとして扱われます。なお ハイフンと言語名がないファイルは英語のファイルとして扱います)
    * ファイル内の文字コードは UTF-8 を想定しています(その他のコードで書かれたファイルは文字化けする可能性があります)
    * html に関しては一部のタグは無視されます
    * ファイル名が該当しても中身がテキストファイルでない場合は表示されません
    * 30kbytes を超える文章の場合は、それ以降は表示されません
    * ファイルの状態は「公開」である必要があります(限定公開/非公開のファイルの中身を利用することはできません)

アップロードしたファイルのなかに条件に合致するものがあるとリリースの編集UIにファイル名群が選択肢として表示されます。
ファイルの中身を表示したい場合にはそこから選択して適用してください(適用しないと更新されません。注意してください)
なお、ファイルの中身を表示するを選択して適用した場合には、フォームから入力したドキュメントの情報は削除されますので
ご注意ください。

== 公開範囲に関して

パッケージ/リリース/ファイル にはそれぞれ「公開範囲」を設定することができます。公開範囲の設定は以下のような
意味を持ちます

 * '''公開''': 誰でもアクセスできる状態です(通常はこれを設定します)
 * '''限定公開''': (プロジェクト管理者/ファイルリリース管理者以外が閲覧した場合) リストに表示されなくなります。ただし、アクセスするURLを知っている場合は誰でも直接アクセスすることが可能です。例えば、一般公開前にプロジェクトメンバーにURLを連絡してなにかミスがないか事前に確認してもらってから公開するといった用途に使うことを想定しています
 * '''非公開''': プロジェクト管理者/ファイルリリース管理者以外は閲覧ができない状態です(URLを知っていてもアクセスできません)

パッケージ/リリース/ファイルそれぞれに個別に公開範囲を設定できますが、それぞれの実際の公開範囲はより上位のもの(リリースであれば パッケージ、ファイルであればそのファイルを含んでいるリリースとパッケージ)の影響を受けます。

例えば、リリースを公開に設定していても そのリリースを含んでいるパッケージが限定公開だった場合 そのリリースは一覧にはリストされません。

== 優先ダウンロード

ファイルリリース一覧やプロジェクトトップページなどに表示される優先ダウンロードを設定することができます。例えば、その時点での安定版のファイルを指定しておくことでそれが目立つ形で表示されるためそのファイルをユーザに優先的にダウンロードさせることができるようになります。

優先ダウンロードはファイルの種類ごとに1つずつ指定できます。

== システム要件

リリースしたプログラムなどの動作条件を記述できるシステム要件を設定できます。システム要件はプロジェクト全体で1つ (複数の言語で)記述できます。

== 各リリースファイルのURL

公開された各パッケージ、リリース、リリースファイルを指すURLは下記のようになります。

 * パッケージURL:!https://osdn.jp/projects/(プロジェクト名)/releases/(パッケージid)
 * リリースURL:!https://osdn.jp/projects/(プロジェクト名)/releases/(リリースid) 
 * リリースファイルURL:!https://osdn.jp/projects/(プロジェクト名)/downloads/(リリースid)/(ファイル名)/

プロジェクトWebなどからユーザをダウンロードへ誘導する場合、上記のリリースもしくはリリースファイルの形式のURLで告知することになります。ミラーサーバーを指定する幾つかの形式のURLも存在しますが、歴史的にもそれらのURLに永続性はありませんので、なるべく使用しないようにしてください。なお、パッケージidやリリースidは単なる数字の羅列であり、プロジェクト側でダウンロードURLを告知する際に不便な場合があります。そのため、パッケージ/リリース/リリースファイルを指すURLには下記のような簡略化した形式のURLが用意されています。

 * 簡略パッケージURL: !https://osdn.jp/pkg/(プロジェクト名)/(パッケージ名)
 * 簡略リリースURL: !https://osdn.jp/rel/(プロジェクト名)/(リリース名)
 * 簡略リリースURL(パッケージ名を明示): !https://osdn.jp/rel/(プロジェクト名)/(パッケージ名)/(リリース名)
 * 簡略リリースファイルURL:!https://osdn.jp/dl/(プロジェクト名)/(ファイル名)

一つのプロジェクト内に同一の名前のパッケージ/リリースファイルが存在することがありますが、そのようなパッケージ名/リリース名/ファイル名で上記の形式を使用した場合、新しい方のリリースファイルを指すURLとなります。

また、リリースに関しては複数のパッケージに同一のリリース名が存在するような場合があると思いますが(例えば、あるプロジェクトに パッケージA と
パッケージBが存在していて、ともに1.0というリリースを持っているといいったケース)、その場合は前述の簡略リリースURLの2つめのように、
パッケージ名を明示することで どのパッケージのどのリリースなのかを明示することもできるようになっています。

Tera Term 4.90を例として示すと、下記のようなURLを公開のアナウンス用として使用することができます。それぞれ都合の良いURLを使い分けてください。

 * パッケージURL: https://osdn.jp/projects/ttssh2/releases/p7801
 * 簡略パッケージURL: [https://osdn.jp/pkg/ttssh2/Tera%20Term https://osdn.jp/pkg/ttssh2/Tera Term]
 * リリースURL:https://osdn.jp/projects/ttssh2/releases/64798
 * 簡略リリースURL: https://osdn.jp/rel/ttssh2/4.90
 * 簡略リリースURL(パッケージを明示): [https://osdn.jp/rel/ttssh2/Tera%20Term/4.90 https://osdn.jp/rel/ttssh2/Tera Term/4.90]
 * exeファイルのダウンロードURL:https://osdn.jp/projects/ttssh2/downloads/64798/teraterm-4.90.exe/
 * exeファイルの簡略化URL:https://osdn.jp/dl/ttssh2/teraterm-4.90.exe


== 直接ダウンロード

現在、wget、curl、libwww-perl、!PowerShellからのリリースファイルURLへのアクセスがあった場合、htmlページを経由することなく直接ファイルのダウンロードが開始されます。


== Web UI以外からのファイルリリースのアップロード

OSDNの[/projects/osdn-codes/wiki/APIGuide REST API]を利用してファイルリリースのアップロードや編集作業を行うこともできます。また、このAPIを利用して実装された[/projects/osdn-codes/wiki/CommandLineInterface コマンドラインツール]も用意されています。このコマンドラインツールを使えば、簡単なコマンドでローカル側のファイルツリーをOSDN側のリリースファイルのツリーへ反映させることができます。

[[PageNavi(NavigationList)]]