mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
django_manage: deprecate venv creation when missing (#5405)
* deprecate venv creation when missing * add changelog fragment * fix sanity checks * Update changelogs/fragments/5404-django-manage-venv-deprecation.yml Co-authored-by: Felix Fontein <felix@fontein.de> * Update plugins/modules/web_infrastructure/django_manage.py Co-authored-by: Felix Fontein <felix@fontein.de> * Update plugins/modules/web_infrastructure/django_manage.py Co-authored-by: Felix Fontein <felix@fontein.de> * minor change to help future removal of feature Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
parent
baa8bd52ab
commit
f5ca03047d
2 changed files with 32 additions and 2 deletions
|
@ -0,0 +1,5 @@
|
||||||
|
deprecated_features:
|
||||||
|
- >-
|
||||||
|
django_manage - the behavior of "creating the virtual environment when missing"
|
||||||
|
is being deprecated and will be removed in community.general version 9.0.0
|
||||||
|
(https://github.com/ansible-collections/community.general/pull/5405).
|
|
@ -123,15 +123,28 @@ options:
|
||||||
type: str
|
type: str
|
||||||
required: false
|
required: false
|
||||||
aliases: [test_runner]
|
aliases: [test_runner]
|
||||||
|
ack_venv_creation_deprecation:
|
||||||
|
description:
|
||||||
|
- >-
|
||||||
|
When a I(virtualenv) is set but the virtual environment does not exist, the current behavior is
|
||||||
|
to create a new virtual environment. That behavior is deprecated and if that case happens it will
|
||||||
|
generate a deprecation warning. Set this flag to C(true) to suppress the deprecation warning.
|
||||||
|
- Please note that you will receive no further warning about this being removed until the module
|
||||||
|
will start failing in such cases from community.general 9.0.0 on.
|
||||||
|
type: bool
|
||||||
|
version_added: 5.8.0
|
||||||
|
|
||||||
notes:
|
notes:
|
||||||
- >
|
- >
|
||||||
B(ATTENTION - DEPRECATION): Support for Django releases older than 4.1 will be removed in
|
B(ATTENTION - DEPRECATION): Support for Django releases older than 4.1 will be removed in
|
||||||
community.general version 9.0.0 (estimated to be released in May 2024).
|
community.general version 9.0.0 (estimated to be released in May 2024).
|
||||||
Please notice that Django 4.1 requires Python 3.8 or greater.
|
Please notice that Django 4.1 requires Python 3.8 or greater.
|
||||||
- C(virtualenv) (U(http://www.virtualenv.org)) must be installed on the remote host if the I(virtualenv) parameter
|
- C(virtualenv) (U(http://www.virtualenv.org)) must be installed on the remote host if the I(virtualenv) parameter
|
||||||
is specified.
|
is specified. This requirement is deprecated and will be removed in community.general version 9.0.0.
|
||||||
- This module will create a virtualenv if the I(virtualenv) parameter is specified and a virtual environment does not already
|
- This module will create a virtualenv if the I(virtualenv) parameter is specified and a virtual environment does not already
|
||||||
exist at the given location.
|
exist at the given location. This behavior is deprecated and will be removed in community.general version 9.0.0.
|
||||||
|
- The parameter I(virtualenv) will remain in use, but it will require the specified virtualenv to exist.
|
||||||
|
The recommended way to create one in Ansible is by using M(ansible.builtin.pip).
|
||||||
- This module assumes English error messages for the C(createcachetable) command to detect table existence,
|
- This module assumes English error messages for the C(createcachetable) command to detect table existence,
|
||||||
unfortunately.
|
unfortunately.
|
||||||
- To be able to use the C(migrate) command with django versions < 1.7, you must have C(south) installed and added
|
- To be able to use the C(migrate) command with django versions < 1.7, you must have C(south) installed and added
|
||||||
|
@ -213,6 +226,17 @@ def _ensure_virtualenv(module):
|
||||||
activate = os.path.join(vbin, 'activate')
|
activate = os.path.join(vbin, 'activate')
|
||||||
|
|
||||||
if not os.path.exists(activate):
|
if not os.path.exists(activate):
|
||||||
|
# In version 9.0.0, if the venv is not found, it should fail_json() here.
|
||||||
|
if not module.params['ack_venv_creation_deprecation']:
|
||||||
|
module.deprecate(
|
||||||
|
'The behavior of "creating the virtual environment when missing" is being '
|
||||||
|
'deprecated and will be removed in community.general version 9.0.0. '
|
||||||
|
'Set the module parameter `ack_venv_creation_deprecation: true` to '
|
||||||
|
'prevent this message from showing up when creating a virtualenv.',
|
||||||
|
version='9.0.0',
|
||||||
|
collection_name='community.general',
|
||||||
|
)
|
||||||
|
|
||||||
virtualenv = module.get_bin_path('virtualenv', True)
|
virtualenv = module.get_bin_path('virtualenv', True)
|
||||||
vcmd = [virtualenv, venv_param]
|
vcmd = [virtualenv, venv_param]
|
||||||
rc, out_venv, err_venv = module.run_command(vcmd)
|
rc, out_venv, err_venv = module.run_command(vcmd)
|
||||||
|
@ -302,6 +326,7 @@ def main():
|
||||||
skip=dict(type='bool'),
|
skip=dict(type='bool'),
|
||||||
merge=dict(type='bool'),
|
merge=dict(type='bool'),
|
||||||
link=dict(type='bool'),
|
link=dict(type='bool'),
|
||||||
|
ack_venv_creation_deprecation=dict(type='bool'),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue