Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 86 additions & 0 deletions docs/OldVersionArchives.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# 旧バージョンのドキュメントの復元ガイド

Ruby 3.0 より前の各バージョンについて、「公開済みアーカイブの再現」と
「そのバージョンの最も完全なドキュメントの復元」に使うソースの所在をまとめます。
`refm/` 削除(凍結ソースの撤去)後も、この対応表があれば git 履歴から復元できます。

## 背景

[CONTRIBUTING.md](../CONTRIBUTING.md) の「各バージョンの対応方針」により、
あるバージョンの記述は**その次のバージョンが EOL になった時点から削除してよい**
ことになっています(例: 2.1 が EOL になったとき、2.0.x 特有の記述は削除可)。
このため doctree の HEAD(および HEAD から変換した `manual/`)には、
古いバージョン固有の記述の多くが既に残っていません
(実測: `refm/api/src` 中の「1.8.7」への言及は、タグ 20150229 時点で 232、
1.8.7 アーカイブ生成時点の 2016-08-28 で 214、現在の HEAD では 5)。

また、EOL 時にはタグを打つ運用だったため、doctree には各 EOL 時点のタグが
残っています。これが「削除してよいとなった時点の直前」のスナップショットです。

## 公開アーカイブと保存物の所在

- 公開アーカイブ(HTML): [rurema/generated-documents](https://github.com/rurema/generated-documents)
の `html/ja/<version>/`(docs.ruby-lang.org/ja/ の配信元。全バージョン分が保存済み)
- BitClust データベース: 同リポジトリの `db/db-<version>`。
**2.4.0〜2.7.0 のみ保存されており、2.3.0 以前の db は保存されていない**

## バージョン別の対応表

### 公開アーカイブの再現(HTML の generated on 時点の doctree)

generated-documents の Import コミットに記録された生成日と、
その日の doctree master のコミット(日付からの近似):

| version | HTML 生成日 | db 生成日 | 当時の doctree(近似) |
|---------|------------|-----------|----------------------|
| 1.8.7 | 2016-08-28 | (db なし) | 3376ba3f1 (2016-08-27) |
| 1.9.3 | 2016-08-28 | (db なし) | 3376ba3f1 (2016-08-27) |
| 2.0.0 | 2016-08-28 | (db なし) | 3376ba3f1 (2016-08-27) |
| 2.1.0 | 2017-04-10 | (db なし) | 1e2310435 (2017-04-10) |
| 2.2.0 | 2018-09-15 | (db なし) | 0528a215e (2018-09-15) |
| 2.3.0 | 2019-08-17 | (db なし) | e8ade5b8c (2019-08-17) |
| 2.4.0 | 2020-04-12 | 2020-04-14 | 8d7458377 (2020-04-14) |
| 2.5.0 | 2022-06-14 | 2022-06-20 | b1d8b85fb (2022-06-13) |
| 2.6.0 | 2022-06-14 | 2022-06-20 | b1d8b85fb (2022-06-13) |
| 2.7.0 | 2023-12-21 | 2023-12-26 | 5ba48b74c (2023-12-26) |

- 生成日は generated-documents の
`Import shared/public/ja/<version> (generated on ...)` /
`Import db-<version> (generated on ...)` コミットより。
- 2.4.0〜2.7.0 は db 自体が保存されているので、通常は再ビルド不要です。

### 最も完全なドキュメントの復元(削除解禁前の最終タグ)

各バージョンの記述が「まだ削除されていないことが保証される」最後のスナップショット
(= 次のバージョンの EOL 時に打たれたタグ):

| version | 復元タグ | タグの意味 |
|---------|---------|-----------|
| 1.8.7 | `20150229` | 1.9.3 EOL 時点(これ以降 1.8.7 記述の削除可) |
| 1.9.3 | `20160229` | 2.0.0 EOL 時点 |
| 2.0.0 | `20170331` | 2.1 EOL 時点 |
| 2.1.0 | `20180331` | 2.2 EOL 時点 |
| 2.2.0 | `20190331` | 2.3 EOL 時点 |
| 2.3.0 | `20200331` | 2.4 EOL 時点 |

- **2.0.0〜2.3.0 は公開アーカイブの生成が削除解禁より前**なので、
公開アーカイブ ≒ 最も完全な状態です。
- **1.8.7 と 1.9.3 は公開アーカイブの生成(2016-08-28)が削除解禁より後**なので、
復元タグの方が公開アーカイブより情報が多い可能性があります
(前述の 232 → 214 の実測差)。

## 復元時の注意

- 旧時点の doctree(RRD ソース)を現在の bitclust でビルドできるとは限りません。
2026-07 のサルベージ検証では、HEAD の refm でも 1.8.7 ビルドは
`cgi/util.rd` の構造破損で失敗しました(当時から壊れていた可能性が高い)。
厳密な再現にはタグ/コミット近傍の時期の bitclust を使ってください。
- 旧時点のソースを Markdown に変換したい場合は、サルベージ対応後の bitclust の
`bin/rrd2md --graph --scope LO,HI` をスコープを合わせて使えます
(検証ツールも `--scope` 対応。bitclust の doc/markdown-operations.md 参照)。
ただし 2015〜2019 年時点の RRD には現在の変換器が想定しない記法が
残っている可能性があり、roundtrip 検証を必ず通してください。
- 現在の `manual/` は HEAD の refm から `--scope 1.8.7,4.2` で変換したもので、
「HEAD に残っている範囲の」全バージョン情報を含みます(rake の全対象版を
ビルド可能)。HEAD で削除済みの旧バージョン固有記述は含まないため、
それらが必要な場合にこのページの対応表を使います。
1 change: 1 addition & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
- [GitRepository](GitRepository.md) — Git リポジトリについて
- [HowToRelease](HowToRelease.md) — リリース手順(gem)
- [ReleasedProducts](ReleasedProducts.md) — リリースされたもの
- [OldVersionArchives](OldVersionArchives.md) — 旧バージョンのドキュメントの復元ガイド
- [ThirdPartyTools](ThirdPartyTools.md) — 外部の活用事例
- [License](License.md) — ライセンス
- [archive/](archive/) — 歴史的記録(凍結)
Expand Down