feat: support for reuse_venv option#730
Conversation
|
@theacodes We're excited to get to use this feature, was wondering if you were able to review or your thoughts? Thanks! |
|
@FollowTheProcess Would you be willing to review this MR? Thanks. |
|
i only looked on the user docs and i'm wondering:
thanks for the feature implementation! |
|
the prose about the feature and its usage is fine, but as a user i think the section would aso benefit from a summary such as #488 (comment) or a table. |
24f7c39 to
0085e2b
Compare
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
|
|
| # sessions marked True will always be reused unless never is specified | ||
| self.func.reuse_venv is True | ||
| and self.global_config.reuse_venv != "never", | ||
| # session marked False will never be reused unless always is specified |
There was a problem hiding this comment.
This comment doesn't relate to the code below
There was a problem hiding this comment.
I tried to clarify this function with even more documentation here 715bc9a, let me know if it's better.
| ), | ||
| group=options.groups["environment"], | ||
| help="Reuse existing virtualenvs instead of recreating them.", | ||
| help="This is an alias for '--reuse-venv=yes|no'.", |
There was a problem hiding this comment.
I'd love to see this called out in the docs as well
There was a problem hiding this comment.
It should be in the docs, near the end of this statement in config.rst:
* ``nox.options.reuse_existing_virtualenvs`` is equivalent to specifying :ref:--reuse-existing-virtualenvs . You can force this off by specifying ``--no-reuse-existing-virtualenvs`` during invocation. Alias of ``nox.options.reuse_venv``.
There was a problem hiding this comment.
The docs should state explicitly that --reuse-venv=yes is equivalent to --reuse-existing-virtualenvs.
I'm happy for this to land as-is though. We probably want to deprecate the longer version anyway.
(OT: It might also be a nice improvement to allow specifying --reuse-venv without a value, defaulting to yes.)
There was a problem hiding this comment.
Agree, I didn't explicitly deprecate it on this PR but it can be done so in a follow up one. When that happens I think it makes sense to augment --reuse-venv (or add --reuse/--no-reuse like @henryiii prefers) to default to yes when specified. Note -r is a valid shorthand for --reuse-venv=yes since it's a shorcut to --reuse-existing-virtualenvs .
|
Personally I like the more explicit |
…virtualenvs is alias to --reuse-venv=yes|no in usage.rst
## [0.0.20](v0.0.19...v0.0.20) (2024-03-04) ### Chores * **deps:** bump wntrblm/nox from 2023.04.22 to 2024.03.02 ([#57](#57)) ([d177375](d177375)), closes [wntrblm/nox#762](wntrblm/nox#762) [wntrblm/nox#787](wntrblm/nox#787) [wntrblm/nox#730](wntrblm/nox#730) [wntrblm/nox#780](wntrblm/nox#780) [wntrblm/nox#770](wntrblm/nox#770) [wntrblm/nox#707](wntrblm/nox#707) [wntrblm/nox#687](wntrblm/nox#687) [wntrblm/nox#756](wntrblm/nox#756) [wntrblm/nox#652](wntrblm/nox#652) [wntrblm/nox#712](wntrblm/nox#712) [wntrblm/nox#781](wntrblm/nox#781) [wntrblm/nox#786](wntrblm/nox#786) [wntrblm/nox#684](wntrblm/nox#684) [wntrblm/nox#723](wntrblm/nox#723) [wntrblm/nox#725](wntrblm/nox#725) [wntrblm/nox#714](wntrblm/nox#714) [wntrblm/nox#715](wntrblm/nox#715) [wntrblm/nox#696](wntrblm/nox#696) [wntrblm/nox#774](wntrblm/nox#774) [wntrblm/nox#782](wntrblm/nox#782) [wntrblm/nox#722](wntrblm/nox#722) [wntrblm/nox#724](wntrblm/nox#724) [wntrblm/nox#721](wntrblm/nox#721) [wntrblm/nox#744](wntrblm/nox#744) [wntrblm/nox#738](wntrblm/nox#738) [wntrblm/nox#762](wntrblm/nox#762) [wntrblm/nox#787](wntrblm/nox#787) [wntrblm/nox#730](wntrblm/nox#730) [wntrblm/nox#780](wntrblm/nox#780) [wntrblm/nox#770](wntrblm/nox#770) [wntrblm/nox#707](wntrblm/nox#707) [wntrblm/nox#687](wntrblm/nox#687) [wntrblm/nox#756](wntrblm/nox#756) [wntrblm/nox#652](wntrblm/nox#652) [wntrblm/nox#712](wntrblm/nox#712) [wntrblm/nox#781](wntrblm/nox#781) [wntrblm/nox#786](wntrblm/nox#786) [wntrblm/nox#684](wntrblm/nox#684) [wntrblm/nox#723](wntrblm/nox#723) [wntrblm/nox#725](wntrblm/nox#725) [wntrblm/nox#714](wntrblm/nox#714) [wntrblm/nox#715](wntrblm/nox#715) [wntrblm/nox#696](wntrblm/nox#696) [wntrblm/nox#774](wntrblm/nox#774) [wntrblm/nox#782](wntrblm/nox#782) [wntrblm/nox#722](wntrblm/nox#722) [wntrblm/nox#724](wntrblm/nox#724) [wntrblm/nox#721](wntrblm/nox#721) [wntrblm/nox#744](wntrblm/nox#744) [#789](https://github.com/msclock/sphinx-deployment/issues/789) [#787](https://github.com/msclock/sphinx-deployment/issues/787) [#786](https://github.com/msclock/sphinx-deployment/issues/786) [#781](https://github.com/msclock/sphinx-deployment/issues/781) [#784](https://github.com/msclock/sphinx-deployment/issues/784) [#780](https://github.com/msclock/sphinx-deployment/issues/780) [#730](https://github.com/msclock/sphinx-deployment/issues/730) [#782](https://github.com/msclock/sphinx-deployment/issues/782) [#783](https://github.com/msclock/sphinx-deployment/issues/783) [#762](https://github.com/msclock/sphinx-deployment/issues/762) ### CI * set proper permission for preview job ([#56](#56)) ([d65e8a1](d65e8a1))
Closes #488
This PR introduces a new option
reuse_venvat the CLI and nox.options level as discussed in #488. It takes 4 possible values, namelyno,yes,never, andalwaysas discussed in the issue.The code that evaluates if a venv should be reused has been switched to use this new option, and backwards compatiblity with
reuse_existing_virtualenvsis kept using appropriatefinalizer_funcandmerge_funcon_options.py.I've added tests to test new functionality as well do backwards compatibility checks and hopefully 🤞 updated the docs properly. I also added a new fixture
generate_noxfile_optionsthat helps with more dynamic configuration ofresources/noxfile_options.pyused in the tests to reduce boilerplate.