Skip to content

fix: 読めない・UTF-8 でないグローバル設定も警告して既定値を使う - #136

Merged
owayo merged 1 commit into
mainfrom
fix/issue-123-global-config-encoding
Nov 6, 2026
Merged

owayo merged 1 commit into
mainfrom
fix/issue-123-global-config-encoding

Conversation

@owayo

@owayo owayo commented Nov 6, 2026

Copy link
Copy Markdown
Owner

概要

グローバル設定ファイルが UTF-8 として読めない (例: Windows PowerShell 5.1 の > で書いた UTF-16) と、depup は警告を出さずにファイルを無視し、既定の設定で動いていました。age を既定より長くしていても、警告なしに既定の age で更新先を選んでいました。読み込みに失敗したとき (権限がないなど) も同じでした。解釈できないときと同じく警告します。

原因

global_config.rs の GlobalConfig::load_from は std::fs::read_to_string(path).ok()? で読み、読めない内容を「設定がない」と同じに扱っていました。TOML として解釈できないときは警告を出すのに、UTF-8 として読めないときと、読み込みに失敗したときは警告がありませんでした。

変更内容

  • 読み込みと解釈を GlobalConfig::read_from に分け、読み込めない・UTF-8 でない・TOML として解釈できないときは、どれも警告の文言を返す。load_from はこれまでどおり警告して組み込みの既定値を使う。UTF-8 でないときの警告には、UTF-8 で保存するよう書く。
  • docs/configuration (英語・日本語) と AGENTS.md に書いた。

検証

  • 回帰テスト: global_config::tests::unreadable_or_non_utf8_global_config_is_reported (UTF-16 の設定と、読み込めないパス (ディレクトリ) は警告の文言を返し、同じ内容の UTF-8 (BOM 付き) は読める。新しい関数を使うので、修正前のコードではコンパイルできない。修正前は read_to_string(...).ok()? が None を返し、警告なしに既定値を使っていた)
  • cargo fmt --all -- --check: pass
  • cargo clippy --locked --all-targets -- -D warnings: pass
  • cargo test --locked (Windows): pass

Closes #123

🤖 Generated with Claude Code

グローバル設定ファイルが UTF-8 として読めない (例: Windows PowerShell 5.1
の > で書いた UTF-16) と、depup は警告を出さずにファイルを無視し、既定の
設定で動いていた。age を既定より長くしていても、警告なしに既定の age で
更新先を選んでいた。読み込みに失敗したとき (権限がないなど) も同じだった。

global_config.rs の GlobalConfig::load_from は read_to_string(path).ok()? で
読み、読めない内容を「設定がない」と同じに扱っていた。TOML として解釈できない
ときは警告を出すのに、UTF-8 として読めないときと、読み込みに失敗したときは
警告がなかった。

- 読み込みと解釈を GlobalConfig::read_from に分け、読み込めない・UTF-8 で
  ない・TOML として解釈できないときは、どれも警告の文言を返す。load_from は
  これまでどおり警告して組み込みの既定値を使う。UTF-8 でないときの警告には、
  UTF-8 で保存するよう書く。
- docs/configuration (英語・日本語) と AGENTS.md に書いた。

テスト: UTF-16 の設定と、読み込めないパス (ディレクトリ) は警告の文言を返す
こと。同じ内容の UTF-8 (BOM 付き) は読めること。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@owayo owayo self-assigned this Nov 6, 2026
@coderabbitai

coderabbitai Bot commented Nov 6, 2026

Copy link
Copy Markdown

Important

  • Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 5f590827-03a5-49a2-8fe9-e12a6ea38333
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@owayo
owayo merged commit 9de4689 into main Nov 6, 2026
8 checks passed
@owayo
owayo deleted the fix/issue-123-global-config-encoding branch November 6, 2026 12:47
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.

グローバル設定が UTF-8 として読めないと、警告なしに既定の設定で動く

1 participant