Repository navigation
#236 を実装する(スプリント m8c) - #479
Merged
Merged
Conversation
pyright・typescript-language-server・typescript 5・intelephense を root で /opt/language-servers へ入れ、3 つのコマンドだけを PATH に出す。base の tsc と npm のグローバル領域は変えない。版の固定と 3 つのイメージの一致を静的な検査で縛る。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
general・php・php85 の派生イメージに言語サーバを専用の置き場で入れるようにしました(#236)。あわせて CHANGELOG に記載し、Dockerfile の記述を確かめるテストを足しています。
利用者向けの変化
移行の手順
変更の要点
containers/general/Dockerfile・containers/php/Dockerfile・containers/php85/Dockerfileに言語サーバを専用の置き場へ入れる手順を足したCHANGELOG.mdに派生イメージの言語サーバを記載したtest_language_servers_dockerfile.pyを新しく加えたテスト
issues/issue-236-design.mdに名前の出るテスト 1 件がすべて HEAD にある設計と違う点
#236 派生イメージの言語サーバ
設計(
issues/issue-236-design.md)のとおり、general・php・php85の Dockerfile に、npm install --prefix /opt/language-serversでpyright@1.1.414・typescript-language-server@6.0.2・typescript@5.9.3・intelephense@1.18.5を root で入れるRUNを足した。binに 3 つのコマンドの symlink を置き、ENV PATHの先頭に足している。Serena の uv のキャッシュは温めない(設計の決定 4 の (b))。containers/base/とほかの派生イメージは変えていない。設計と違えたところ:
RUNの最後に/opt/language-servers/bin/typescript-language-server --versionを足した。建てるときに symlink と依存の解決が壊れていれば、そこでビルドが止まるdocs/glossary/glossary.json・docs/glossary.md)は設計の PR で反映済みだった。glossary.py render --checkとcheck --diff mainが通ったため、この PR では変えていない手で確かめたこと(arm64、Docker Desktop の containerd のイメージストア、既存の
devbase-base:latest(2bf59f6453c6)の使い捨てのコンテナ。イメージは建てていない)docker run --rm --user root --entrypoint bashで、generalの Dockerfile から取り出したRUNを実行した後、ubuntuで確かめた:command -vが/opt/language-servers/bin/の下の 3 つのパスを返したpyright-langserver --stdio・intelephense --stdio・typescript-language-server --stdioが、initializeに対してresult.capabilitiesを持つ応答を返した(TypeScript は応答の前にUsing Typescript version (bundled) 5.9.3 from path "/opt/language-servers/node_modules/typescript/lib/tsserver.js"と知らせた)node_modules/typescript/package.jsonは/opt/language-servers/node_modules/typescriptで版は 5.9.3。lib/tsserver.jsがあったtsc --versionはVersion 7.0.2。npm のグローバル領域のtypescriptは 7.0.2 のままubuntuから/opt/language-serversは書けない。/root/.npmは残らないdu -sbx /opt/language-serversは 147,936,811 バイト(上限 350,000,000 以下)静的な検査(
tests/containers/test_language_servers_dockerfile.py、19 件)が、typescript@^5・typescript@7.0.2・1 つのイメージだけ違うpyrightの版・intelephenseの欠け・ENV PATHの欠け・-g・/root/.npmを消さない・tscの symlink・USER ubuntuに戻さない・UV_CACHE_DIRを足す、のそれぞれで落ちることを確かめた。全体の
env -u DEVBASE_ROOT uv run --locked pytest tests/ -qは 4343 passed / 31 skipped。ruff(E9,F63,F7,F82)は通った。固有の語の検査は語の一覧がこの端末に無く飛ばされた。マージ前の手動確認(建てて確かめる。conductor が行う)
devbase-base:latestの上にgeneral・php・php85を作業用のタグで建てる(php・php85はcomposer:latestの取得がキーチェーンで止まり得る)docker run --rm --entrypoint bash <イメージ> -c '...'で確かめる(設計の決定 6)check。binaryとtypescript_major_5の欠けが出ない)du -sbx /)を変更の前と後で測り、端末とイメージストアをここに書く残した事項
UV_CACHE_DIR・serena-agentが無いこと)と設計の決定 4 で満たすモード: standard / 通した工程: 実装 → 完了判定 → Pull Request
🤖 Generated with Claude Code