mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Add validation test for new copyright (#32919)
* Update validation test for new copyright Ensure new modules without the new copyright header fail validation Ensure existing modules without copyright in top 20 lines fail * Add documentation of 108 error Create label in developing modules documentation so that the validation page can point to it * Ensure new style copyright header passes test!
This commit is contained in:
parent
a130549ead
commit
5f29cd5e60
3 changed files with 17 additions and 5 deletions
|
@ -30,6 +30,7 @@ All modules must have the following sections defined in this order:
|
|||
If you look at some existing older modules, you may find imports at the bottom of the file. Do not copy that idiom into new modules as it is a historical oddity due to how modules used to be combined with libraries. Over time we're moving the imports to be in their proper place.
|
||||
|
||||
|
||||
.. _copyright:
|
||||
|
||||
Copyright
|
||||
----------------------
|
||||
|
|
|
@ -69,6 +69,7 @@ Errors
|
|||
106 Import found before documentation variables. All imports must appear below
|
||||
``DOCUMENTATION``/``EXAMPLES``/``RETURN``/``ANSIBLE_METADATA``
|
||||
107 Imports should be directly below ``DOCUMENTATION``/``EXAMPLES``/``RETURN``/``ANSIBLE_METADATA``
|
||||
108 GPLv3 license header should be the :ref:`short form <copyright>` for new modules
|
||||
..
|
||||
--------- -------------------
|
||||
**2xx** **Imports**
|
||||
|
|
|
@ -375,14 +375,24 @@ class ModuleValidator(Validator):
|
|||
msg='sys.exit() call found. Should be exit_json/fail_json'
|
||||
)
|
||||
|
||||
def _check_for_gpl3_header(self):
|
||||
if ('GNU General Public License' not in self.text and
|
||||
'version 3' not in self.text):
|
||||
def _check_gpl3_header(self):
|
||||
header = '\n'.join(self.text.split('\n')[:20])
|
||||
if ('GNU General Public License' not in header or
|
||||
('version 3' not in header and 'v3.0' not in header)):
|
||||
self.reporter.error(
|
||||
path=self.object_path,
|
||||
code=105,
|
||||
msg='GPLv3 license header not found'
|
||||
msg='GPLv3 license header not found in the first 20 lines of the module'
|
||||
)
|
||||
elif self._is_new_module():
|
||||
if len([line for line in header
|
||||
if 'GNU General Public License' in line]) > 1:
|
||||
self.reporter.error(
|
||||
path=self.object_path,
|
||||
code=108,
|
||||
msg='Found old style GPLv3 license header: '
|
||||
'https://docs.ansible.com/ansible/devel/dev_guide/developing_modules_documenting.html#copyright'
|
||||
)
|
||||
|
||||
def _check_for_tabs(self):
|
||||
for line_no, line in enumerate(self.text.splitlines()):
|
||||
|
@ -1118,7 +1128,7 @@ class ModuleValidator(Validator):
|
|||
self._validate_ps_replacers()
|
||||
self._find_ps_docs_py_file()
|
||||
|
||||
self._check_for_gpl3_header()
|
||||
self._check_gpl3_header()
|
||||
if not self._just_docs():
|
||||
self._check_interpreter(powershell=self._powershell_module())
|
||||
self._check_type_instead_of_isinstance(
|
||||
|
|
Loading…
Reference in a new issue