Add the gifn-apply test tool
Add a tool that checks out the repositories mentioned in
a git-if-needed patch series, runs gif-it-needed, and performs
some checks on its operation. This tool will eventually be used in
a Zuul test job for this repository.
Change-Id: Id02fb7c21f5ab34d9639bf845fcc3961d929b13b
diff --git a/tools/git-if-needed/pyproject.toml b/tools/git-if-needed/pyproject.toml
new file mode 100644
index 0000000..894660d
--- /dev/null
+++ b/tools/git-if-needed/pyproject.toml
@@ -0,0 +1,71 @@
+# SPDX-FileCopyrightText: StorPool <support@storpool.com>
+# SPDX-License-Identifier: BSD-2-Clause
+
+[build-system]
+requires = ["setuptools >= 61", "wheel"]
+build-backend = "setuptools.build_meta"
+
+[project]
+name = "gifn_apply"
+version = "0.1.0"
+description = "Functional tests for the git-if-needed tool"
+readme = "python/README.md"
+requires-python = ">= 3.8"
+
+[[project.authors]]
+name = "StorPool"
+email = "support@storpool.com"
+
+[project.scripts]
+gifn_apply = "gifn_apply.__main__:main"
+
+[tool.setuptools]
+zip-safe = true
+package-dir = {"" = "python"}
+packages = ["gifn_apply"]
+
+[tool.black]
+line-length = 100
+
+[tool.mypy]
+strict = true
+python_version = "3.8"
+
+[tool.pylint]
+py-version = "3.8"
+load-plugins = [
+ "pylint.extensions.bad_builtin",
+ "pylint.extensions.broad_try_clause",
+ "pylint.extensions.check_elif",
+ "pylint.extensions.code_style",
+ "pylint.extensions.comparetozero",
+ "pylint.extensions.comparison_placement",
+ "pylint.extensions.confusing_elif",
+ "pylint.extensions.consider_refactoring_into_while_condition",
+ "pylint.extensions.consider_ternary_expression",
+ "pylint.extensions.dict_init_mutate",
+ "pylint.extensions.docparams",
+ "pylint.extensions.docstyle",
+ "pylint.extensions.dunder",
+ # "pylint.extensions.empty_comment", # the license text triggers this
+ "pylint.extensions.emptystring",
+ "pylint.extensions.eq_without_hash",
+ "pylint.extensions.for_any_all",
+ "pylint.extensions.magic_value",
+ "pylint.extensions.mccabe",
+ "pylint.extensions.no_self_use",
+ "pylint.extensions.overlapping_exceptions",
+ "pylint.extensions.private_import",
+ "pylint.extensions.redefined_loop_name",
+ "pylint.extensions.redefined_variable_type",
+ "pylint.extensions.set_membership",
+ "pylint.extensions.typing",
+ "pylint.extensions.while_used",
+]
+disable = [
+ # Clarity
+ "consider-using-assignment-expr",
+]
+
+[tool.test-stages]
+stages = ["ruff and not @manual", "@check and not @manual", "@tests and not @manual"]