Skip to content

chore: 公開パッケージに不要なファイルが含まれているため .pubignore を整理する #17

Description

@LibraryLibrarian

概要

dart pub publish --dry-run で確認したところ、ビルド成果物・ログ・IDE ファイル・生成済みドキュメント・flutter create 時のアプリ雛形など、ライブラリ利用者に不要なものが公開パッケージに含まれている。圧縮後のアーカイブサイズは 3 MB。

原因

pub の仕様上、.pubignore が存在するディレクトリでは .gitignore が参照されなくなる。ルートに .pubignore があるため、ルートの .gitignore による除外がすべて無効化されている状態。

現在の .pubignoreexample/.dart_tool/example/build/、IDE ファイル、OS ファイルしか列挙しておらず、.gitignore が担っていた除外が抜け落ちている。実際 build/.gitignore:152 に記載があるにもかかわらず公開対象に入っている。

含まれているもの(抜粋)

パス 実サイズ 備考
assets/demo_thumb.gif 3.5 MB README のデモ GIF。README は raw.githubusercontent.com の絶対 URL で参照しており、パッケージ内のファイルは使われていない。pubspec.yamlflutter: にも assets: 宣言はなく、lib/ からの参照もない
doc/ 2.1 MB 生成済み dartdoc の HTML。pub.dev は独自に API ドキュメントを生成するため不要
android/ 816 KB flutter create 時のアプリ雛形。pubspec.yamlflutter: plugin: の宣言がなくプラグインとしては機能していない(android/app/src/main/kotlin/com/example/misskey_auth/MainActivity.kt など、パッケージ名も com.example のまま)
ios/ 712 KB 同上。ios/Runner/ 一式が含まれる
build/ 312 KB ビルド成果物。.gitignore 済みだが公開されている
custom_lint.log 12 KB ログファイル。同上
pages/ 8 KB GitHub Pages 用コンテンツ。gh-pages ブランチへデプロイされるもので、パッケージには不要
misskey_auth.iml < 1 KB IntelliJ のモジュールファイル

example/ については、pub.dev の Example タブに使われるため example/lib/example/pubspec.yaml は残したい。一方で example/android/example/ios/ のプラットフォーム雛形は不要。

対応内容(案)

  • .pubignore を書き直し、上記を除外する
  • example/lib/pubspec.yaml を残しつつ、プラットフォーム雛形(android/ios/)を除外
  • ルートの android/ios/ について、リポジトリ自体から削除するか .pubignore での除外に留めるかを判断する(プラグインとして機能していないため、削除しても利用者への影響はないはず)
  • dart pub publish --dry-run でファイル一覧とアーカイブサイズを確認
  • CI の publish-dry-run ジョブが通ることを確認

補足

example/.gitignore の 6 行目 Icon[] が不正なパターンで、dry-run 実行時に以下の警告が出る。あわせて直しておきたい。

example/.gitignore had invalid pattern Icon[].
Pattern "Icon[]" had an invalid `[a-b]` style character range

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions