どこがどれくらい自動化できそうか。
理想
- ソースコードを書く
upload
的なコマンドを打つ
これで以下の結果が得られる。
あとは以下のようにソースコード取得やパッケージのインストール&更新をする。
git clone {repo_url} pip uninstall {package_name} pip install {package_name} pip install -U {package_name}
ついでに単体テスト実行までやってくれたらいいのだが。そこまで自動化してくれたらいいな。
現実
以下は自動化できない。
- コミットメッセージ
- 名前、説明、デモ、特徴、必須環境、使い方、注意、ライセンス選択
- SemVer
希望
以下なら設定ファイルでデフォルト値を指定しておけば済む。変更頻度が少ないから。
また、ディレクトリやファイルのテンプレートを用意しておけば大部分を省略できる。
これらの名前や一部を置換できるようにすれば自動化できる。
妥協
自動化できないところは以下の方針で半自動化する。
- 入力の労力を最小化する
- 設定ファイルにあるデフォルト値を使う
- 入力UIを用意する
- 入力値をできるだけ絞り込む
- 入力の候補値を用意する
- バリデートする
- 入力値をできるだけ絞り込む
- データは一元管理する
- 同じ内容を複数ヶ所に入力するようなことはしない
- たとえば
version
は以下のすべてで共通値を使う(1度の入力で各所に反映)__init__.py
setup.py
git tag
CHANGELOG.md
- たとえば
- 同じ内容を複数ヶ所に入力するようなことはしない
- 考えることを最小化する
所感
こんなツールあったらいいのになぁ。誰か作ってくれないかなぁ。
対象環境
- Raspbierry pi 4 Model B
- Raspbian buster 10.0 2019-09-26 ※
- bash 5.0.3(1)-release
$ uname -a Linux raspberrypi 4.19.75-v7l+ #1270 SMP Tue Sep 24 18:51:41 BST 2019 armv7l GNU/Linux