Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
11 commits
Select commit Hold shift + click to select a range
9f85ef0
feat(installer): OS ごとの前提条件スクリプトを追加し、Windows の入口と改行の固定、手動の完全導入 CI を整え…
Yusuke-KOMIYAMA Nov 9, 2026
161dd74
fix(installer): Ubuntu arm64 実機で見つかった QEMU の異常終了・ember の待ち時間不足・Playwr…
Yusuke-KOMIYAMA Nov 10, 2026
5e15b30
fix(installer): Linux で scan が終了 51 になる二件(ZAP の書き込み権限、Semgrep のエンジン異常…
Yusuke-KOMIYAMA Nov 10, 2026
30e2c60
docs(demo): Ubuntu 24.04 arm64 VM でのコア導入記録 DEMO-21 を完成させ、一つのコマンドが終了 0…
Yusuke-KOMIYAMA Nov 10, 2026
9a0bfc0
fix(installer): 共有フォルダからホストの資格情報が見える VM では install-ubuntu.sh を終了 10 で…
Yusuke-KOMIYAMA Nov 10, 2026
34217d1
docs(demo): DEMO-21 に db upgrade の Linux での初実行と受入 12/12 を記録し、ホームの mou…
Yusuke-KOMIYAMA Nov 10, 2026
87d6bcd
fix(installer): ZAP の作業ディレクトリの 0777 に理由つきの nosemgrep を付け、Semgrep p/de…
Yusuke-KOMIYAMA Nov 10, 2026
c2607e6
docs(installer): CI のワークフローを workflow スコープ待ちとして分け、先に入れる範囲を文書に示す
Yusuke-KOMIYAMA Nov 10, 2026
237387f
fix(installer): PR #44 レビュー r1 の三件(mount 名の復号、WSL の実体パス、ZAP の親の権限境界)に…
Yusuke-KOMIYAMA Nov 10, 2026
f789be9
fix(installer): PR #44 レビュー r2 の二件(mount 名の末尾改行、報告の FIFO で止まる open)に対応する
Yusuke-KOMIYAMA Nov 10, 2026
68524d0
docs(review): PR #44 のレビュー r3 の記録を追加
Yusuke-KOMIYAMA Nov 10, 2026
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
16 changes: 16 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Files that run inside Linux (the shell, WSL2, or a container) must keep LF line endings even when the
# repository is cloned on Windows with core.autocrlf=true: a CRLF shebang fails before install.sh's own
# CRLF guard can run (ADR-08). The list is explicit on purpose: `* text=auto` would rewrite legacy guide
# files that are CRLF in the index.
*.sh text eol=lf
*.bash text eol=lf
Dockerfile text eol=lf
Dockerfile.* text eol=lf
docker-compose*.yml text eol=lf
installer/**/*.py text eol=lf
installer/grdm_dev/messages.tsv text eol=lf
installer/grdm_dev/templates/** text eol=lf
installer/images/** text eol=lf
installer/pyproject.toml text eol=lf
manifest/** text eol=lf
tools/**/*.py text eol=lf
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

**Jump:** [English](#english) · [日本語](#japanese)

- Version / 版: 0.3 — 2026-11-10. **Learned:** a decision index goes stale one record at a time, so each new ADR is added to the root list in the same commit (ADR-08). / 決定の索引は一件ずつ古くなるので、新しい ADR は同じコミットでルートの一覧に加える(ADR-08)。
- Version / 版: 0.2 — 2026-11-06. **Learned:** a glossary term is only explained for the reader when its note and REF-01 link sit at the first prose use, counting lower-case and plural forms, so first-use notes with links were added in both halves (SPEC-06 §3). / 用語注と REF-01 へのリンクは、小文字や複数形も含めた本文の初出に置かなければ読者に届かないと分かったため、英和両方の初出にリンク付きの用語注を補った(SPEC-06 §3)。
- Version / 版: 0.1 — 2026-11-05
- Normative for: `README.md`
Expand Down Expand Up @@ -83,6 +84,7 @@ Each record explains one choice. Repository (a folder that remembers every chang
- [ADR-05 Test IdP for Shibboleth](docs/decisions/ADR-05_Test_IdP_for_Shibboleth.md) - Test IdP for Shibboleth / Shibboleth 用テスト IdP
- [ADR-06 Wiki Frontend Overlay](docs/decisions/ADR-06_Wiki_Frontend_Overlay.md) - Wiki frontend overlay / Wiki フロントエンドのオーバーレイ
- [ADR-07 Native Builds of EOL Middleware](docs/decisions/ADR-07_Native_Builds_of_EOL_Middleware.md) - Native builds of EOL middleware / EOL ミドルウェアのネイティブビルド
- [ADR-08 Per-OS Installer Entry Points](docs/decisions/ADR-08_Per_OS_Installer_Entry_Points.md) - Per-OS installer entry points / OS ごとのインストーラーの入口

#### References / 参考資料

Expand Down Expand Up @@ -181,6 +183,7 @@ graph TD
- [ADR-05 Shibboleth 用テスト IdP](docs/decisions/ADR-05_Test_IdP_for_Shibboleth.md) - Test IdP for Shibboleth / Shibboleth 用テスト IdP
- [ADR-06 Wiki フロントエンドのオーバーレイ](docs/decisions/ADR-06_Wiki_Frontend_Overlay.md) - Wiki frontend overlay / Wiki フロントエンドのオーバーレイ
- [ADR-07 EOL ミドルウェアのネイティブビルド](docs/decisions/ADR-07_Native_Builds_of_EOL_Middleware.md) - Native builds of EOL middleware / EOL ミドルウェアのネイティブビルド
- [ADR-08 OS ごとのインストーラーの入口](docs/decisions/ADR-08_Per_OS_Installer_Entry_Points.md) - Per-OS installer entry points / OS ごとのインストーラーの入口

#### 参考資料

Expand Down
151 changes: 151 additions & 0 deletions docs/decisions/ADR-08_Per_OS_Installer_Entry_Points.md

Large diffs are not rendered by default.

13 changes: 7 additions & 6 deletions docs/decisions/README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
# Decision Records / 決定の記録

> **Summary:** Documents explaining why we chose one way and not another: integration repository placement, network model, staged security gate, AI autonomy and roles, the test IdP, the wiki-frontend overlay, native builds of EOL middleware, PostgreSQL 18 with its data upgrade, and the retirement of Elasticsearch 2 and MongoDB. Each record captures the context, options considered, and final decision.
> **概要:** なぜその道を選び、ほかを選ばなかったかを説明する文書:統合リポジトリの置き場、ネットワーク方式、セキュリティ門の段階化、AI の自律度と役割、テスト IdP、wiki-frontend のオーバーレイ、EOL ミドルウェアのネイティブビルド、PostgreSQL 18 とデータの更新、Elasticsearch 2 と MongoDB の退役。各記録は文脈、検討した選択肢、最終決定を捉えます。
> **Summary:** Documents explaining why we chose one way and not another: integration repository placement, network model, staged security gate, AI autonomy and roles, the test IdP, the wiki-frontend overlay, native builds of EOL middleware, per-OS installer entry points, PostgreSQL 18 with its data upgrade, and the retirement of Elasticsearch 2 and MongoDB. Each record captures the context, options considered, and final decision.
> **概要:** なぜその道を選び、ほかを選ばなかったかを説明する文書:統合リポジトリの置き場、ネットワーク方式、セキュリティ門の段階化、AI の自律度と役割、テスト IdP、wiki-frontend のオーバーレイ、EOL ミドルウェアのネイティブビルド、OS ごとのインストーラーの入口、PostgreSQL 18 とデータの更新、Elasticsearch 2 と MongoDB の退役。各記録は文脈、検討した選択肢、最終決定を捉えます。

**Jump:** [English](#english) · [日本語](#japanese)

- Version / 版: 0.5 — 2026-11-10. **Learned:** a data-tier change is two records, not one: the PostgreSQL move is proposed with its proof (ADR-12), while the removal of Elasticsearch 2 and MongoDB still needs owner choices (ADR-13); ADR-08 to ADR-11 stay reserved or planned for records on other branches. / データ層の変更は一つでなく二つの記録になる。PostgreSQL の移行は証明つきで提案し(ADR-12)、Elasticsearch 2 と MongoDB の撤去はまだ所有者の選択を要する(ADR-13)。ADR-08〜ADR-11 は他のブランチの記録のために予約・予定のまま残す。
- Version / 版: 0.6 — 2026-11-10. **Learned:** a rule like "never needs sudo" has to name what it covers, so giving hosts a bootstrap became an architecture decision (ADR-08) instead of an exception nobody records. / 「sudo を必要としない」のような規則は対象を名指ししなければならない。ホストを準備する段を設けることは、誰も記録しない例外ではなく設計判断(ADR-08)になった。
0.5 — 2026-11-10. **Learned:** a data-tier change is two records, not one: the PostgreSQL move is proposed with its proof (ADR-12), while the removal of Elasticsearch 2 and MongoDB still needs owner choices (ADR-13); ADR-08 to ADR-11 stay reserved or planned for records on other branches. / データ層の変更は一つでなく二つの記録になる。PostgreSQL の移行は証明つきで提案し(ADR-12)、Elasticsearch 2 と MongoDB の撤去はまだ所有者の選択を要する(ADR-13)。ADR-08〜ADR-11 は他のブランチの記録のために予約・予定のまま残す。
0.4 — 2026-11-06. **Learned:** a cold start turned an emulation cost into an architecture decision (ADR-07): EOL amd64-only middleware is built natively. / コールドスタートがエミュレーションのコストを設計判断(ADR-07)に変えた。amd64 のみの EOL ミドルウェアはネイティブで組む。
0.3 — 2026-11-06. **Learned:** a repository that cannot be built alone because its Dockerfile belongs to another tree is an architecture decision (overlay, not service) and needs its own record (ADR-06). / Dockerfile が別の木に属していて単独で組めないリポジトリは、サービスでなくオーバーレイという設計上の決定であり、独自の記録(ADR-06)が要ると分かった。
0.2 — 2026-11-06. **Learned:** a test fixture that logs people in is an architecture choice like any other service, so it needs its own record (ADR-05) rather than a note in a template. / 人をログインさせる試験用の部品も他のサービスと同じ設計上の選択であり、テンプレートの注記ではなく独自の記録(ADR-05)が要ると分かった。
0.1 — 2026-11-05. **Learned:** writing decisions as records turned subjective choices into objective, reviewable documents that explain the reasoning behind each rule. / 決定を記録として残すことで、主観的な選択を客観的でレビュー可能な文書にし、各ルールの背後にある推論を説明できるようになったと分かった。
- Normative for: [ADR-01 Integration Repository Placement](./ADR-01_Integration_Repository_Placement.md) through [ADR-07 Native Builds of EOL Middleware](./ADR-07_Native_Builds_of_EOL_Middleware.md), and [ADR-12 PostgreSQL 18 and Data Directory Upgrade](./ADR-12_PostgreSQL_18_and_Data_Directory_Upgrade.md) and [ADR-13 Retiring Elasticsearch 2 and MongoDB](./ADR-13_Retiring_Elasticsearch_2_and_MongoDB.md); ADR-08 to ADR-11 are reserved or planned.
- Normative for: [ADR-01 Integration Repository Placement](./ADR-01_Integration_Repository_Placement.md) through [ADR-08 Per-OS Installer Entry Points](./ADR-08_Per_OS_Installer_Entry_Points.md), and [ADR-12 PostgreSQL 18 and Data Directory Upgrade](./ADR-12_PostgreSQL_18_and_Data_Directory_Upgrade.md) and [ADR-13 Retiring Elasticsearch 2 and MongoDB](./ADR-13_Retiring_Elasticsearch_2_and_MongoDB.md); ADR-08 to ADR-11 are reserved or planned.
- Related: [../README.md](../README.md) · [policy/](../policy/README.md) · [spec/](../spec/README.md) · [reference/REF-01_Glossary.md](./../reference/REF-01_Glossary.md)

---
Expand All @@ -33,14 +34,14 @@ A *decision record* (ADR) explains why we chose one way and not another. This fo
| ADR-05 | [ADR-05_Test_IdP_for_Shibboleth.md](./ADR-05_Test_IdP_for_Shibboleth.md) | Bundled test IdP for `--auth shibboleth`: our own SimpleSAMLphp image on `php:8.3-apache`, mock attributes prefixed `mock-`. |
| ADR-06 | [ADR-06_Wiki_Frontend_Overlay.md](./ADR-06_Wiki_Frontend_Overlay.md) | wiki-frontend is an overlay of osf.io (`overlay_of`): a bundle-builder image from the merged tree, tagged `<osf_sha12>-<wiki_sha12>`, run once by `wiki_assets` into the volume `wiki_static`; no `wiki` server. |
| ADR-07 | [ADR-07_Native_Builds_of_EOL_Middleware.md](./ADR-07_Native_Builds_of_EOL_Middleware.md) | EOL middleware that only ships amd64 images is built natively for both architectures from the official artefact on a digest-pinned base (`image_build`, MC-15); first Elasticsearch 2.4.6, which took 38 minutes to start under emulation and 5 seconds natively (real install run 19). | Proposed 2026-11-06 |
| ADR-08 | [ADR-08_Per_OS_Installer_Entry_Points.md](./ADR-08_Per_OS_Installer_Entry_Points.md) | Thin, consent-based prerequisite scripts for Ubuntu, macOS and Windows that all end at `install.sh`; `sudo` is allowed there only. | Proposed 2026-11-10 |
| ADR-12 | [ADR-12_PostgreSQL_18_and_Data_Directory_Upgrade.md](./ADR-12_PostgreSQL_18_and_Data_Directory_Upgrade.md) | PostgreSQL 9.6 → 18.6 (digest-pinned); md5 host auth until CAS has a SCRAM-capable JDBC driver; `grdm-dev db upgrade` dumps and restores with verification and keeps the old directory, `db rollback` puts it back, `up` refuses a mismatched major (exit 15). Status: Proposed. |
| ADR-13 | [ADR-13_Retiring_Elasticsearch_2_and_MongoDB.md](./ADR-13_Retiring_Elasticsearch_2_and_MongoDB.md) | Measured: osf.io search does not run on ES 6.8 or OpenSearch; search off needs a ~50-line patch; mongo serves only sharejs, whose file-page co-editing is what retirement removes. Retirement steps; owner decisions of 2026-11-10: ES 8 port with full-text search, file-page editor on y-websocket. Status: Proposed. |

Reserved or planned numbers (no record in this tree yet):

| Number | Topic |
|---|---|
| ADR-08 | Reserved: Per-OS Installer Entry Points (on a separate branch) |
| ADR-09 | Planned: repository branching strategy |
| ADR-10 | Planned: tool version policy (Docker, Python, Node.js) |
| ADR-11 | Planned: open source license compatibility |
Expand Down Expand Up @@ -82,14 +83,14 @@ flowchart TD
| ADR-05 | [ADR-05_Test_IdP_for_Shibboleth.md](./ADR-05_Test_IdP_for_Shibboleth.md) | `--auth shibboleth` 用の同梱テスト IdP:`php:8.3-apache` 上の自前 SimpleSAMLphp イメージ、`mock-` 接頭辞の模擬属性。 |
| ADR-06 | [ADR-06_Wiki_Frontend_Overlay.md](./ADR-06_Wiki_Frontend_Overlay.md) | wiki-frontend は osf.io のオーバーレイ(`overlay_of`):重ねた木から束を組むイメージ(タグ `<osf の sha12>-<wiki の sha12>`)を `wiki_assets` が一度動かしてボリューム `wiki_static` へ写す。`wiki` サーバは無い。 |
| ADR-07 | [ADR-07_Native_Builds_of_EOL_Middleware.md](./ADR-07_Native_Builds_of_EOL_Middleware.md) | amd64 のイメージしか無い EOL ミドルウェアは、公式成果物からダイジェスト固定のベース上に両アーキテクチャ向けにネイティブで組む(`image_build`、MC-15)。まず Elasticsearch 2.4.6。エミュレーションでは起動に 38 分、ネイティブでは 5 秒(実機第 19 回)。 | 提案 2026-11-06 |
| ADR-08 | [ADR-08_Per_OS_Installer_Entry_Points.md](./ADR-08_Per_OS_Installer_Entry_Points.md) | Ubuntu・macOS・Windows の同意に基づく薄い前提条件スクリプト。どれも `install.sh` で終わる。`sudo` はここだけで認める。 | 提案 2026-11-10 |
| ADR-12 | [ADR-12_PostgreSQL_18_and_Data_Directory_Upgrade.md](./ADR-12_PostgreSQL_18_and_Data_Directory_Upgrade.md) | PostgreSQL 9.6 → 18.6(ダイジェスト固定)。CAS が SCRAM に対応した JDBC ドライバーを持つまでホスト認証は md5。`grdm-dev db upgrade` は照合つきでダンプと復元を行い旧ディレクトリを残し、`db rollback` はそれを戻し、`up` は版の不一致を拒む(終了 15)。ステータス: 提案中。 |
| ADR-13 | [ADR-13_Retiring_Elasticsearch_2_and_MongoDB.md](./ADR-13_Retiring_Elasticsearch_2_and_MongoDB.md) | 測定: osf.io の検索は ES 6.8 でも OpenSearch でも動かない。検索を切るには約 50 行のパッチが要る。mongo は sharejs にしか使われず、退役で失うのはそのファイルページの共同編集である。退役の手順。2026-11-10 の所有者の判断: 全文検索を保つ ES 8 への移植、ファイルページのエディタの y-websocket への移行。ステータス: 提案中。 |

予約済み・予定の番号(この木にはまだ記録が無い):

| 番号 | トピック |
|---|---|
| ADR-08 | 予約: OS ごとのインストーラーの入口(別ブランチ) |
| ADR-09 | 予定: リポジトリのブランチ戦略 |
| ADR-10 | 予定: 道具版方針(Docker、Python、Node.js) |
| ADR-11 | 予定: オープンソースライセンスの互換性 |
Expand Down
Loading
Loading