Errbot 6.0.0の更新内容整理
Pythonの
Errbot 6 is out!https://t.co/HxlfXegZxK
— gbin (@gbin) 2019年3月24日
いろんな
前提
Pythonのバージョン
$ diff errbot-5.2.0/setup.py errbot-6.0.0/setup.py
24c24
< PY35_OR_GREATER = py_version >= (3, 5)
---
> PY37_OR_GREATER = py_version >= (3, 7)
28,29c28,29
< if py_version < (3, 4):
< raise RuntimeError('Errbot requires Python 3.4 or later')
---
> if py_version < (3, 6):
> raise RuntimeError('Errbot requires Python 3.6 or later')
49,51c46,47
< if not PY35_OR_GREATER:
< deps += ['typing', ] # backward compatibility for 3.3 and 3.4
<
---
> if not PY37_OR_GREATER:
> deps += ['dataclasses'] # backward compatibility for 3.3->3.6 for dataclasses
今回の
依存ライブラリ
$ diff errbot-5.2.0/setup.py errbot-6.0.0/setup.py
35,36c35
< 'bottle',
< 'rocket-errbot',
---
> 'flask',
41,42c40
< 'yapsy>=1.11', # new contract for plugin instantiation
< 'markdown', # rendering stuff
---
> 'markdown<3.0', # rendering stuff, 3.0+ deprecates 'safe()'
46d43
< 'dnspython3',
全体
Webhookに
使っていた Webアプリケーションの ベースが、 Bottleから Flaskへ 変更 Pluginの
管理を 行う PluginManagerが、 yapsyの 依存を 脱却
コアの
差分の概要を眺める
diff -r errbot-5.2.0 errbot-6.0.0
を
f-string採用、
loggerへの ログ渡し方などの 文字列表現の 整理 現状の
コーディング規約への 統一 (関数定義時の 仮引数まわり) Logger作成時の
名前指定が、 文字列固定から __name__
へ
ぼーっと
errbot/bootstrap.py
errbot/core_plugins/webserver.py
errbot/plugin_manager.py
errbot/repo_manager.py
目につく変更ピックアップ
errbot/bootstrap.py
setup_bot
に
全体
errbot/core_plugins/webserver.py
Bottle + Rocket
がFlask
へactivate
内での
Before: Webserverは
Rocketの インスタンスを 管理するだけで、 Rocket起動時に 内部で スレッドを 管理 After: Webserverプラグインが
スレッドを 管理して、 スレッド内で Flaskサーバーを 起動
実態と
errbot/plugin_manager.py
プラグイン管理が
Webserverの
また、
errbot/repo_manager.py
check_dependenceis()
関数が、plugin_manager.py
から
変更の影響は?
最古のjp-weather
が
結構
まとめ
普段
アルファバージ