Skip to content

[GRDM-60339] CIの健全化#27

Merged
ikfj merged 10 commits into
RCOSDP:masterfrom
yacchin1205:fix/chardet
Jul 9, 2026
Merged

[GRDM-60339] CIの健全化#27
ikfj merged 10 commits into
RCOSDP:masterfrom
yacchin1205:fix/chardet

Conversation

@yacchin1205

@yacchin1205 yacchin1205 commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

CIを健全化するPRです。環境の経年変化に起因するテスト失敗を、upstream (jupyterhub/repo2docker) で解消済みの問題のcherry-pickおよびfork固有処理の修正により解消します。

1. chardet 6.x の非互換 (unit / venv / external の失敗)

2026年3月頃にリリースされた chardet 6.x で chardet.universaldetector という小文字モジュール経由のアクセスが廃止され、utils.pyopen_guess_encodingAttributeError で失敗するようになりました。

後者は upstream では pyproject.toml の依存変更を含みますが、本forkは setup.py で依存を管理しているため、その部分のみ setup.py への変更として解決しています。なお、同趣旨のPRとして #24 がありましたが、upstreamコミットのcherry-pickで対応する方針としたため、本PRで置き換えます。

2. figshare のURL正規表現 (unit の失敗)

3. DESCRIPTION型リポジトリのビルド失敗 (r の失敗)

DESCRIPTIONファイルを持つリポジトリのインストールは devtools::install_local(getwd()) で行われていますが、devtoolsは依存パッケージが多く、デフォルトのR (4.2.1) と最新のCRANスナップショットの組み合わせではPositのバイナリ提供が終了しているためソースビルドに落ち、依存の curl パッケージ等のビルド失敗によりdevtools自体がインストールされず、ビルドが失敗します(tests/r/r-rspm-description-file)。

upstreamは devtools::install_local の廃止(deprecated)対応としてこの経路を依存ゼロの remotes ベースに変更済みのため、該当コミットをcherry-pickします。

途中でpakを経由しているのはupstreamの試行の経緯をそのまま保持しているためで、最終状態は「基本インストールに remotes を追加し、DESCRIPTIONのインストールを remotes::install_local() で行う」となります。upstreamのCIでは同一のテストfixtureがこの構成でpassしています。

4. CS-rstudio-grdm インストールの GitHub API 依存の除去 (r の失敗・fork固有)

CS-rstudio-grdm のインストールに使用している remotes::install_github は api.github.com を無認証で参照するため、レートリミットによりビルドが確率的に失敗します(CIランナーの共有IPでは高頻度)。API を参照しない GitHub アーカイブ tarball からの取得 (remotes::install_url) に変更し、あわせてインストール結果の検証 (stopifnot) を追加してインストール失敗が確実にビルドエラーとして顕在化するようにしました。これは #25remotes::install_github 化した処理の改善です。

動作確認

  • ローカルで tests/unit/test_utils.py 37件、tests/unit/contentproviders/test_figshare.py 14件、tests/unit/test_r.py 9件のパスを確認済み
  • tests/r/r-rspm-description-file に対する生成Dockerfileが upstream と同一のインストールコマンドになることを確認済み
  • CS-rstudio-grdm の tarball インストールについては、ローカルDocker環境で remotes のブートストラップ→依存解決 (jsonlite)→rdmaddins のインストールまでを実行し、RStudio の Addins メニューに「Sync to RDM」が表示される(Addinが有効化される)ことをブラウザ上で確認済み

🤖 Generated with Claude Code

minrk added 3 commits July 8, 2026 08:41
import from public api, not implementation module
software is a valid category

this is fragile and other categories can also fail
@yacchin1205 yacchin1205 changed the title [GRDM-58288] chardetをcharset-normalizerに置換 (upstreamのcherry-pick) [GRDM-58288] chardet・figshareに起因するCI失敗の修正 (upstreamのcherry-pick) Jul 8, 2026
@yacchin1205 yacchin1205 changed the title [GRDM-58288] chardet・figshareに起因するCI失敗の修正 (upstreamのcherry-pick) [GRDM-60339] CIの健全化 (upstreamのcherry-pick) Jul 8, 2026
rgaiacs and others added 6 commits July 8, 2026 11:03
devtools::install_local has been deprecated
can't seem to _prevent_ writing cache
it leaves files in /tmp/ and ~/.cache/R/pkgcache/
pak doesn't work if caches are cleaned
… limits

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@yacchin1205 yacchin1205 changed the title [GRDM-60339] CIの健全化 (upstreamのcherry-pick) [GRDM-60339] CIの健全化 Jul 8, 2026
@yacchin1205 yacchin1205 marked this pull request as ready for review July 8, 2026 05:44
@yacchin1205 yacchin1205 requested a review from ikfj July 8, 2026 05:44
@ikfj ikfj merged commit 2ffc7bd into RCOSDP:master Jul 9, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants