Skip to content

Commit

Permalink
Undeprecate numeric rule tags (#1452)
Browse files Browse the repository at this point in the history
The reason behind the undeprecation is fairly simple: right now, it is
impossible to create a playbook that uses tags that will not trigger
any warnings on ansible-lint 4 or 5.

If we use numeric tags, ansible-lint >= 5 will complain. If we use
more descriptive tags, introduced in ansible-lint 5.0.0, ansible-lint
< 4 will complain about the errors we want to ignore.

This is especially important for collection authors that publish their
work on Ansible Galaxy. On each import, Ansible Galaxy runs
ansible-lint 4 over all of the roles. Those developers are, if they
want to have a clean import, forced to use an older version of ansible
lint, or have ansible-lint >= 5 complain about numeric tags.

Co-authored-by: Tadej Borovšak <tadej.borovsak@xlab.si>
  • Loading branch information
ssbarnea and Tadej Borovšak authored Mar 10, 2021
1 parent 4a94899 commit 857626b
Showing 1 changed file with 15 additions and 8 deletions.
23 changes: 15 additions & 8 deletions src/ansiblelint/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
reconfigure,
render_yaml,
)
from ansiblelint.config import options, used_old_tags
from ansiblelint.config import options
from ansiblelint.constants import ANSIBLE_MISSING_RC, EXIT_CONTROL_C_RC
from ansiblelint.file_utils import cwd
from ansiblelint.skip_utils import normalize_tag
Expand Down Expand Up @@ -131,13 +131,20 @@ def report_outcome(result: "LintResult", options, mark_as_success=False) -> int:
break
msg += "".join(sorted(entries))

for k, v in used_old_tags.items():
_logger.warning(
"Replaced deprecated tag '%s' with '%s' but it will become an "
"error in the future.",
k,
v,
)
# Do not deprecate the old tags just yet. Why? Because it is not currently feasible
# to migrate old tags to new tags. There are a lot of things out there that still
# use ansible-lint 4 (for example, Ansible Galaxy and Automation Hub imports). If we
# replace the old tags, those tools will report warnings. If we do not replace them,
# ansible-lint 5 will report warnings.
#
# We can do the deprecation once the ecosystem caught up at least a bit.
# for k, v in used_old_tags.items():
# _logger.warning(
# "Replaced deprecated tag '%s' with '%s' but it will become an "
# "error in the future.",
# k,
# v,
# )

if result.matches and not options.quiet:
console_stderr.print(
Expand Down

0 comments on commit 857626b

Please sign in to comment.