背景
バグを発見したので、せっかくなので Contribute しようとしたところ、
- 非同期処理への水平展開
- 計算量の少ない方法の逆提案
をされたけど、なんとか Merge まで行きついた記録。目出度い
はじまりは以下
やったこと
- Reviewer の提案の理解
- 何をすべきか?
- 提案の取り込み
- 水平展開
- どうすればいいのか?
- Fork 先で、追加編集して commit すれば、pull request に反映されそう
- 何をすべきか?
- ということで変更
- 編集。まぁ、これは簡単
- おそるおそるコミット
- 無事、Pull Request にて、commit が反映され、自動 task が走り出した。
- ただ・・squash しておくべきなのかが不安だったので、正直に書いておく
- あとは、以前と同じく reviewer の反応を待つことする
- 失敗と修正
- commit 内容が test にて format error になっていた。
- Codespace で使えるか試したらいけそうだったので、black で format して commit
- これで OK かと思ったら・・
- Reviewr から 括弧は意味変わっちゃうので要らないよって提案がきた。
-
Black
の format について、version が違うんじゃないか?
という突っ込み - guidline を読んだ際によくわかってなかったけれど、以下のようにやるって話だったらしい。改めて tox.ini を確認してみたら、black の version も指定してあった。tox について理解不足が恥ずかしい
pip install tox
tox run -e black -c ../../../eng/tox/tox.ini --root . -- azure- 相対アドレスから考えて、以下まで移動してから実行したらいい感じに直った
cd sdk/identity/azure-identity
- 相対アドレスから考えて、以下まで移動してから実行したらいい感じに直った
- ってことで、再度 commit して、自動タスク待ち
- 無事タスクも全部通ったので、再度 review 待つことにする
- Reviewer からの反応待ち
-
LGTM
ってことで、無事完了
-
Commit Suggestion
は、提案を受け入れて Commit する機能
当初の案と、提案とで、padding がどう変わるか?
確かに、余分な padding を避けるためには、+4 は不要だった
途中、括弧つけちゃってたのは、浅はかすぎた・・
len(base64_meta_data) | padding_needed = -(len(base64_meta_data) % 4) | padding_needed = -len(base64_meta_data) % 4 | base |
---|---|---|---|
0 | 0 | 0 | 4 |
1 | -1 | 3 | 3 |
2 | -2 | 2 | 2 |
3 | -3 | 1 | 1 |
4 | 0 | 0 | 4 |
import pandas as pd
lengths = range(11) # This will create a range from 0 to 10
results = []
for length in lengths:
expr1 = -(length % 4)
expr2 = -length % 4
results.append((length, expr1, expr2))
df = pd.DataFrame(results, columns=["len(base64_meta_data)", "padding_needed = -(len(base64_meta_data) % 4)", "padding_needed = -len(base64_meta_data) % 4"])
print(df)
あとがき
初めての事ばかりだったが、やっぱりやったことないことをするのは刺激があっていいですね。
悩んだ時は、楽な道を避けるのが一番ですな。