英文:
how to invalidate toxenv
问题
我有一些 tox 项目,在 install-deps 阶段处理一些 protobuf 并输出一些 *pb.py
编解码器(作为配置中 install_command
选项执行的自定义脚本)。当我更新工作区(并且更新了 protobuf 文件)时,我希望以某种方式标记 toxenv 为无效状态,这样它将在稍后的 tox
调用中 无需传递 -r, --recreate
标志 而重新创建。我可以将这样的操作添加到执行环境更新的脚本中。有什么方法可以做到吗?
我正在使用一些较旧的 tox - 3.14
英文:
I have some tox project that processes some protobuf in the install-deps phase and outputs some *pb.py
codecs (custom script executed as install_command
option in the config). When I'm updating my workspace (and the protobuf files are updated), i would like to somehow mark the toxenv as invalid - so that it would get recreated without the need of passing -r, --recreate
flags to some later tox
call. I could add such action the the script that does the env update. Any idea on how to do it?
i'm using some older tox - 3.14
答案1
得分: 0
以下是您要翻译的内容:
"turns out its described quite verbosly in the doc:
https://tox.wiki/en/3.14.6/example/general.html?highlight=recreate#dependency-changes-and-tracking
> Here’s what traits we track at the moment for each steps:
> * virtual environment trait is tied to the python path the basepython resolves too (if this config changes, the virtual environment will be recreated),
> * deps sections changes (meaning any string-level change for the entries, note requirement file content changes are not tracked),
> * library dependencies are tracked at extras level (because there’s no Python API to enquire about the actual dependencies in a non-tool specific way, e.g. setuptools has one way, flit something else, and poetry another).
Also from what i looked into tox code, here are the attributes that are checked
https://tox.wiki/en/3.14.6/_modules/tox/venv.html?highlight=matches_with_reason
base_resolved_python_sha256
base_resolved_python_path
tox_version
sitepackages
usedevelop
alwayscopy
Apart from that, the first and most obvious way is to simply remove the <toxworkdir>
dir on the env update. Other possibility can be to remove/rename the <toxenvdir>/.tox-config1
file."
英文:
turns out its described quite verbosly in the doc:
https://tox.wiki/en/3.14.6/example/general.html?highlight=recreate#dependency-changes-and-tracking
> Here’s what traits we track at the moment for each steps:
> * virtual environment trait is tied to the python path the basepython resolves too (if this config changes, the virtual environment will be recreated),
> * deps sections changes (meaning any string-level change for the entries, note requirement file content changes are not tracked),
> * library dependencies are tracked at extras level (because there’s no Python API to enquire about the actual dependencies in a non-tool specific way, e.g. setuptools has one way, flit something else, and poetry another).
Also from what i looked into tox code, here are the attributes that are checked
https://tox.wiki/en/3.14.6/_modules/tox/venv.html?highlight=matches_with_reason
base_resolved_python_sha256
base_resolved_python_path
tox_version
sitepackages
usedevelop
alwayscopy
Apart from that, the first and most obvious way is to simply remove the <toxworkdir>
dir on the env update. Other possibility can be to remove/rename the <toxenvdir>/.tox-config1
file.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论