From bc1d047359c46b146b0a41a5012ce120cb56ba3d Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 14 Oct 2024 22:14:23 +0200 Subject: [PATCH 01/60] actions/synchronize --- spcd/actions/synchronize/action.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 spcd/actions/synchronize/action.yaml diff --git a/spcd/actions/synchronize/action.yaml b/spcd/actions/synchronize/action.yaml new file mode 100644 index 0000000..5b07c73 --- /dev/null +++ b/spcd/actions/synchronize/action.yaml @@ -0,0 +1,8 @@ +inputs: + source: + default: out + required: false +runs: + using: composite + steps: + - run: echo "${INPUT_SOURCE}" From 52835704bfd1fa8f2486ea88c5cec045ab4614d1 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 14 Oct 2024 22:18:47 +0200 Subject: [PATCH 02/60] sync/context --- spcd/actions/synchronize/action.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spcd/actions/synchronize/action.yaml b/spcd/actions/synchronize/action.yaml index 5b07c73..a74a2e7 100644 --- a/spcd/actions/synchronize/action.yaml +++ b/spcd/actions/synchronize/action.yaml @@ -5,4 +5,5 @@ inputs: runs: using: composite steps: - - run: echo "${INPUT_SOURCE}" + - run: echo "synchronize" + - run: echo " source: ${INPUT_SOURCE}" From 3e494bc354bf6fa01bd75a6d47119d64c14c805e Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 14 Oct 2024 22:43:07 +0200 Subject: [PATCH 03/60] act --- spcd/__init__.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/spcd/__init__.py b/spcd/__init__.py index 4b9b6a5..41b6927 100644 --- a/spcd/__init__.py +++ b/spcd/__init__.py @@ -44,6 +44,16 @@ def clone_project_branch() -> None: ) +def install_actions(path: Path) -> None: + """Make actions usable in workflows. + + :param path: entry point file + :type path: Path + """ + step("Install actions") + Path("act").symlink_to(path.parent / "actions") + + def install_commands(path: Path) -> None: """Make commands callable in the operating system. @@ -113,6 +123,7 @@ def main(main_file: Path) -> None: list_environment_variables() clone_project_branch() set_ssh() + install_actions(main_file) install_commands(main_file) install_python_packages() else: From 9cb23cfff14524cdf7d20daf5742108560971611 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 14 Oct 2024 22:55:39 +0200 Subject: [PATCH 04/60] source,target --- spcd/__init__.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/spcd/__init__.py b/spcd/__init__.py index 41b6927..da7f3c8 100644 --- a/spcd/__init__.py +++ b/spcd/__init__.py @@ -51,7 +51,11 @@ def install_actions(path: Path) -> None: :type path: Path """ step("Install actions") - Path("act").symlink_to(path.parent / "actions") + source = Path("act") + target = path.parent / "actions" + log.info(source) + log.info(actions) + source.symlink_to(target) def install_commands(path: Path) -> None: From 3f41f0c6b164e9fe868f7fb3c428cd51afba9d52 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 14 Oct 2024 22:58:43 +0200 Subject: [PATCH 05/60] target --- spcd/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spcd/__init__.py b/spcd/__init__.py index da7f3c8..3e62498 100644 --- a/spcd/__init__.py +++ b/spcd/__init__.py @@ -54,7 +54,7 @@ def install_actions(path: Path) -> None: source = Path("act") target = path.parent / "actions" log.info(source) - log.info(actions) + log.info(target) source.symlink_to(target) From 2ddbc2d090be6124116b9da8d35d1333eb414e54 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 14 Oct 2024 23:03:12 +0200 Subject: [PATCH 06/60] project.root --- spcd/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spcd/__init__.py b/spcd/__init__.py index 3e62498..be81eb2 100644 --- a/spcd/__init__.py +++ b/spcd/__init__.py @@ -51,7 +51,7 @@ def install_actions(path: Path) -> None: :type path: Path """ step("Install actions") - source = Path("act") + source = Path(project.root) / "act" target = path.parent / "actions" log.info(source) log.info(target) From dbb27ac0ef855318c6a191cb6163b482140470d0 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 14 Oct 2024 23:27:57 +0200 Subject: [PATCH 07/60] browse/target,source --- spcd/__init__.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/spcd/__init__.py b/spcd/__init__.py index be81eb2..8010df9 100644 --- a/spcd/__init__.py +++ b/spcd/__init__.py @@ -51,11 +51,14 @@ def install_actions(path: Path) -> None: :type path: Path """ step("Install actions") - source = Path(project.root) / "act" + source = project.root / "act" target = path.parent / "actions" log.info(source) log.info(target) + browse(target) + browse(project.root) source.symlink_to(target) + browse(project.root) def install_commands(path: Path) -> None: From 3001e6ec30cb14eef11dafddf66f3d36000e9285 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 14 Oct 2024 23:41:31 +0200 Subject: [PATCH 08/60] mkdir --- spcd/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spcd/__init__.py b/spcd/__init__.py index 8010df9..3666d8a 100644 --- a/spcd/__init__.py +++ b/spcd/__init__.py @@ -57,7 +57,8 @@ def install_actions(path: Path) -> None: log.info(target) browse(target) browse(project.root) - source.symlink_to(target) + # source.symlink_to(target) + fs.make_directory(source) browse(project.root) From 12f235af81adf5c6cd9157d0fcefe198d9c621f3 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 14 Oct 2024 23:49:02 +0200 Subject: [PATCH 09/60] ls --- spcd/__init__.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/spcd/__init__.py b/spcd/__init__.py index 3666d8a..f6a73aa 100644 --- a/spcd/__init__.py +++ b/spcd/__init__.py @@ -55,11 +55,8 @@ def install_actions(path: Path) -> None: target = path.parent / "actions" log.info(source) log.info(target) - browse(target) - browse(project.root) - # source.symlink_to(target) - fs.make_directory(source) - browse(project.root) + source.symlink_to(target) + run("ls", "-l") def install_commands(path: Path) -> None: From 192692ec8a980dd772d960e931230f9bc5c23aca Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Tue, 15 Oct 2024 08:34:48 +0200 Subject: [PATCH 10/60] read,write --- spcd/__init__.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/spcd/__init__.py b/spcd/__init__.py index f6a73aa..c2bf4b0 100644 --- a/spcd/__init__.py +++ b/spcd/__init__.py @@ -51,12 +51,18 @@ def install_actions(path: Path) -> None: :type path: Path """ step("Install actions") - source = project.root / "act" - target = path.parent / "actions" - log.info(source) - log.info(target) - source.symlink_to(target) - run("ls", "-l") + name = "action.yaml" + source = path.parent / "actions" + target = project.root / "act" + for action in [ + "synchronize", + ]: + log.info(action) + r = source / action / name + w = target / action + fs.make_directory(w) + w = w / name + fs.write(w, fs.read_file_text(r)) def install_commands(path: Path) -> None: From f9c8cbc59ef6049337ea5d32a3a2405c0076131e Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Tue, 15 Oct 2024 08:38:57 +0200 Subject: [PATCH 11/60] =?UTF-8?q?=E2=88=92mapping?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spcd/actions/synchronize/action.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/spcd/actions/synchronize/action.yaml b/spcd/actions/synchronize/action.yaml index a74a2e7..15aaf68 100644 --- a/spcd/actions/synchronize/action.yaml +++ b/spcd/actions/synchronize/action.yaml @@ -6,4 +6,3 @@ runs: using: composite steps: - run: echo "synchronize" - - run: echo " source: ${INPUT_SOURCE}" From 588bf5c6c4010b1bb301a7f4e9b07fca3aaa10db Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Tue, 15 Oct 2024 19:41:40 +0200 Subject: [PATCH 12/60] actions/synchronize --- spcd/__init__.py | 19 +++++++++----- spcd/act.py | 38 ++++++++++++++++++++++++++++ spcd/actions/synchronize/action.yaml | 2 +- 3 files changed, 51 insertions(+), 8 deletions(-) create mode 100644 spcd/act.py diff --git a/spcd/__init__.py b/spcd/__init__.py index c2bf4b0..ad58e1d 100644 --- a/spcd/__init__.py +++ b/spcd/__init__.py @@ -10,7 +10,7 @@ from rwx import fs from rwx.log import stream as log from rwx.ps import run -from spcd import cmd +from spcd import act, cmd from spcd.ci import project, projects from spcd.shell import env from spcd.util import browse, cat, split, step @@ -131,12 +131,17 @@ def main(main_file: Path) -> None: path, *arguments = sys.argv name = Path(path).name if name == "__main__.py": - list_environment_variables() - clone_project_branch() - set_ssh() - install_actions(main_file) - install_commands(main_file) - install_python_packages() + if arguments: + name, *arguments = arguments + f = getattr(act, name) + f(*arguments) + else: + list_environment_variables() + clone_project_branch() + set_ssh() + install_actions(main_file) + install_commands(main_file) + install_python_packages() else: f = getattr(cmd, name.replace("-", "_")) f(*arguments) diff --git a/spcd/act.py b/spcd/act.py new file mode 100644 index 0000000..87e9fe1 --- /dev/null +++ b/spcd/act.py @@ -0,0 +1,38 @@ +"""Actions available for workflows.""" + +import os +from pathlib import Path + +from rwx import ps + +from spcd.ci import project, projects +from spcd.shell import env + + +def synchronize( + source: str | None = None, target: str | None = None +) -> None: + """Synchronize output towards a target. + + :param source: where to deploy from + :type source: str | None + :param target: where to deploy to + :type target: str | None + """ + if not target: + user = "cd" + host = env.SPCD_PROJECT_PATH + root = ( + Path(os.sep) / user / projects.group / project.name / project.branch + ) + target = f"{user}@{host}:{root}" + if not source: + source = "out" + ps.run( + "rsync", + "--archive", + "--delete-before", + "--verbose", + f"{source}/", + f"{target}/", + ) diff --git a/spcd/actions/synchronize/action.yaml b/spcd/actions/synchronize/action.yaml index 15aaf68..46526be 100644 --- a/spcd/actions/synchronize/action.yaml +++ b/spcd/actions/synchronize/action.yaml @@ -5,4 +5,4 @@ inputs: runs: using: composite steps: - - run: echo "synchronize" + - run: python3 -m "spcd" "synchronize" From 44423ef2ee46ae8cf964fbf0acdf6d8f25fc451f Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Tue, 15 Oct 2024 21:49:29 +0200 Subject: [PATCH 13/60] act/vpy --- spcd/__init__.py | 27 ++++++++++++++++----------- spcd/actions/synchronize/action.yaml | 8 -------- 2 files changed, 16 insertions(+), 19 deletions(-) delete mode 100644 spcd/actions/synchronize/action.yaml diff --git a/spcd/__init__.py b/spcd/__init__.py index ad58e1d..eccad81 100644 --- a/spcd/__init__.py +++ b/spcd/__init__.py @@ -52,17 +52,22 @@ def install_actions(path: Path) -> None: """ step("Install actions") name = "action.yaml" - source = path.parent / "actions" - target = project.root / "act" - for action in [ - "synchronize", - ]: - log.info(action) - r = source / action / name - w = target / action - fs.make_directory(w) - w = w / name - fs.write(w, fs.read_file_text(r)) + root = project.root / "act" + vpy = Path(env.SPCD_PYTHON_VENV_BINARIES) / "python" + action = "synchronize" + log.info(action) + directory = root / action + fs.make_directory(directory) + fs.write(directory / name, f"""\ +inputs: + source: + default: out + required: false +runs: + using: composite + steps: + - run: "{vpy}" -m spcd synchronize +""") def install_commands(path: Path) -> None: diff --git a/spcd/actions/synchronize/action.yaml b/spcd/actions/synchronize/action.yaml deleted file mode 100644 index 46526be..0000000 --- a/spcd/actions/synchronize/action.yaml +++ /dev/null @@ -1,8 +0,0 @@ -inputs: - source: - default: out - required: false -runs: - using: composite - steps: - - run: python3 -m "spcd" "synchronize" From a4c2272b2f5c1b0e7f4b4b0de1825df596048eac Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Tue, 15 Oct 2024 21:56:46 +0200 Subject: [PATCH 14/60] cat --- spcd/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/spcd/__init__.py b/spcd/__init__.py index eccad81..09dd3fb 100644 --- a/spcd/__init__.py +++ b/spcd/__init__.py @@ -68,6 +68,7 @@ runs: steps: - run: "{vpy}" -m spcd synchronize """) + cat(directory / name) def install_commands(path: Path) -> None: From c481b2168c726c40e707c2e8c0b91dfaec90b18d Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Tue, 15 Oct 2024 22:11:32 +0200 Subject: [PATCH 15/60] unquote --- spcd/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spcd/__init__.py b/spcd/__init__.py index 09dd3fb..2064a3d 100644 --- a/spcd/__init__.py +++ b/spcd/__init__.py @@ -66,7 +66,7 @@ inputs: runs: using: composite steps: - - run: "{vpy}" -m spcd synchronize + - run: {vpy} -m spcd synchronize """) cat(directory / name) From 924e44a9d9fad576cc81d82e8febff462ef6784f Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sun, 20 Oct 2024 18:50:50 +0200 Subject: [PATCH 16/60] lint --- spcd/act.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/spcd/act.py b/spcd/act.py index 87e9fe1..8153867 100644 --- a/spcd/act.py +++ b/spcd/act.py @@ -9,9 +9,7 @@ from spcd.ci import project, projects from spcd.shell import env -def synchronize( - source: str | None = None, target: str | None = None -) -> None: +def synchronize(source: str | None = None, target: str | None = None) -> None: """Synchronize output towards a target. :param source: where to deploy from From 886fcf3673aadca4d64361f0078d5b752c6d4c62 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sun, 20 Oct 2024 18:52:16 +0200 Subject: [PATCH 17/60] action --- spcd/__init__.py | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/spcd/__init__.py b/spcd/__init__.py index 2064a3d..cf40de2 100644 --- a/spcd/__init__.py +++ b/spcd/__init__.py @@ -44,7 +44,7 @@ def clone_project_branch() -> None: ) -def install_actions(path: Path) -> None: +def install_actions() -> None: """Make actions usable in workflows. :param path: entry point file @@ -54,21 +54,34 @@ def install_actions(path: Path) -> None: name = "action.yaml" root = project.root / "act" vpy = Path(env.SPCD_PYTHON_VENV_BINARIES) / "python" - action = "synchronize" - log.info(action) - directory = root / action - fs.make_directory(directory) - fs.write(directory / name, f"""\ + for action in ["action", "synchronize"]: + log.info(action) + directory = root / action + fs.make_directory(directory) + match action: + case "action": + yaml = """\ +inputs: + arg-1: + required: true + arg_2: + required: true +""" + case "synchronize": + yaml = """\ inputs: source: default: out required: false +""" + yaml = f"""{yaml}\ runs: using: composite steps: - - run: {vpy} -m spcd synchronize -""") - cat(directory / name) + - run: {vpy} -m spcd {action} +""" + fs.write(directory / name, yaml) + cat(directory / name) def install_commands(path: Path) -> None: From c77674afa4519f681bf8512e1ce994c95f346f42 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sun, 20 Oct 2024 18:54:47 +0200 Subject: [PATCH 18/60] inputs --- spcd/__init__.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/spcd/__init__.py b/spcd/__init__.py index cf40de2..c67180d 100644 --- a/spcd/__init__.py +++ b/spcd/__init__.py @@ -60,26 +60,25 @@ def install_actions() -> None: fs.make_directory(directory) match action: case "action": - yaml = """\ -inputs: + inputs = """\ arg-1: required: true arg_2: required: true """ case "synchronize": - yaml = """\ -inputs: + inputs = """\ source: default: out required: false """ - yaml = f"""{yaml}\ + yaml = f"""\ runs: using: composite steps: - run: {vpy} -m spcd {action} -""" +inputs: +{inputs}""" fs.write(directory / name, yaml) cat(directory / name) From c7c0d7c7d7fc7abacc8d929d23ce6e743e664efa Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sun, 20 Oct 2024 19:12:47 +0200 Subject: [PATCH 19/60] action --- spcd/act.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/spcd/act.py b/spcd/act.py index 8153867..68ea759 100644 --- a/spcd/act.py +++ b/spcd/act.py @@ -4,11 +4,20 @@ import os from pathlib import Path from rwx import ps +from rwx.log import stream as log from spcd.ci import project, projects from spcd.shell import env +def action() -> None: + """Display action inputs.""" + prefix = "" + for variable, value in sorted(projects.environment.items()): + if variable.startswith(prefix): + log.info("%s = %s", variable, value) + + def synchronize(source: str | None = None, target: str | None = None) -> None: """Synchronize output towards a target. From aeeb047b36ac0b2c26d60d07ef9c41799132f35e Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sun, 20 Oct 2024 19:58:18 +0200 Subject: [PATCH 20/60] fix --- spcd/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spcd/__init__.py b/spcd/__init__.py index c67180d..20b9600 100644 --- a/spcd/__init__.py +++ b/spcd/__init__.py @@ -157,7 +157,7 @@ def main(main_file: Path) -> None: list_environment_variables() clone_project_branch() set_ssh() - install_actions(main_file) + install_actions() install_commands(main_file) install_python_packages() else: From 6046ebe44176f67b4f1b346687e031b73e3ad43f Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sun, 20 Oct 2024 20:11:09 +0200 Subject: [PATCH 21/60] prefix --- spcd/act.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spcd/act.py b/spcd/act.py index 68ea759..203528e 100644 --- a/spcd/act.py +++ b/spcd/act.py @@ -12,7 +12,7 @@ from spcd.shell import env def action() -> None: """Display action inputs.""" - prefix = "" + prefix = "INPUT_" for variable, value in sorted(projects.environment.items()): if variable.startswith(prefix): log.info("%s = %s", variable, value) From 493f50bdd0626a72027e0473029ba8ae7a7ee111 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sun, 20 Oct 2024 20:32:33 +0200 Subject: [PATCH 22/60] arg3 --- spcd/__init__.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spcd/__init__.py b/spcd/__init__.py index 20b9600..c7622ed 100644 --- a/spcd/__init__.py +++ b/spcd/__init__.py @@ -61,10 +61,12 @@ def install_actions() -> None: match action: case "action": inputs = """\ - arg-1: + arg_1: required: true arg_2: required: true + arg_3: + required: true """ case "synchronize": inputs = """\ From eb8fd0b651a9e27418e3739c005450e6d5e9efc0 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sun, 20 Oct 2024 22:53:31 +0200 Subject: [PATCH 23/60] ruff/format --- spcd/cmd.py | 1 + 1 file changed, 1 insertion(+) diff --git a/spcd/cmd.py b/spcd/cmd.py index 188d191..12f4dc2 100644 --- a/spcd/cmd.py +++ b/spcd/cmd.py @@ -27,6 +27,7 @@ def spcd_build_project() -> None: def spcd_check_project() -> None: """Check the project for anything wrong.""" ps.run("ruff", "check") + ps.run("ruff", "format", "--diff") def spcd_synchronize( From aff3a8180a032e686a36327a98ec2e5f12afea8f Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 21 Oct 2024 14:54:39 +0200 Subject: [PATCH 24/60] useless --- spcd/__init__.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/spcd/__init__.py b/spcd/__init__.py index c7622ed..3bfe67a 100644 --- a/spcd/__init__.py +++ b/spcd/__init__.py @@ -45,11 +45,7 @@ def clone_project_branch() -> None: def install_actions() -> None: - """Make actions usable in workflows. - - :param path: entry point file - :type path: Path - """ + """Make actions usable in workflows.""" step("Install actions") name = "action.yaml" root = project.root / "act" From 7dc9f06e47d65fba3ed42f2735ca920e917e2847 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 21 Oct 2024 14:55:43 +0200 Subject: [PATCH 25/60] parse_inputs --- spcd/act.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/spcd/act.py b/spcd/act.py index 203528e..625e7fc 100644 --- a/spcd/act.py +++ b/spcd/act.py @@ -1,6 +1,7 @@ """Actions available for workflows.""" import os +from ast import literal_eval from pathlib import Path from rwx import ps @@ -9,15 +10,29 @@ from rwx.log import stream as log from spcd.ci import project, projects from spcd.shell import env +PREFIX = "INPUT_" + def action() -> None: """Display action inputs.""" - prefix = "INPUT_" for variable, value in sorted(projects.environment.items()): - if variable.startswith(prefix): + if variable.startswith(PREFIX): log.info("%s = %s", variable, value) +def parse_inputs() -> dict[str, object]: + """Parse inputs as a dictionary. + + :return: name & value pairs + :rtype: dict[str, object] + """ + d = {} + for variable, value in sorted(projects.environment.items()): + if variable.startswith(PREFIX): + d[variable] = literal_eval(value) + return d + + def synchronize(source: str | None = None, target: str | None = None) -> None: """Synchronize output towards a target. From e6d631994e599555ba66576c62bed6756b6b40d4 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 21 Oct 2024 14:58:34 +0200 Subject: [PATCH 26/60] action --- spcd/act.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/spcd/act.py b/spcd/act.py index 625e7fc..5b7c3c2 100644 --- a/spcd/act.py +++ b/spcd/act.py @@ -15,9 +15,8 @@ PREFIX = "INPUT_" def action() -> None: """Display action inputs.""" - for variable, value in sorted(projects.environment.items()): - if variable.startswith(PREFIX): - log.info("%s = %s", variable, value) + for variable, value in parse_inputs().items(): + log.info("%s = %s", variable, value) def parse_inputs() -> dict[str, object]: From 776421884bb4c19eeae4491111adf1d95137ac1c Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 21 Oct 2024 15:19:39 +0200 Subject: [PATCH 27/60] removeprefix --- spcd/act.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spcd/act.py b/spcd/act.py index 5b7c3c2..3f6a003 100644 --- a/spcd/act.py +++ b/spcd/act.py @@ -28,7 +28,7 @@ def parse_inputs() -> dict[str, object]: d = {} for variable, value in sorted(projects.environment.items()): if variable.startswith(PREFIX): - d[variable] = literal_eval(value) + d[variable.removeprefix(PREFIX)] = literal_eval(value) return d From ff7c6b17d8c7115647f65297a85fa3e865a1beb4 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 21 Oct 2024 15:59:45 +0200 Subject: [PATCH 28/60] lower,valueerror --- spcd/act.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/spcd/act.py b/spcd/act.py index 3f6a003..cc98572 100644 --- a/spcd/act.py +++ b/spcd/act.py @@ -28,7 +28,11 @@ def parse_inputs() -> dict[str, object]: d = {} for variable, value in sorted(projects.environment.items()): if variable.startswith(PREFIX): - d[variable.removeprefix(PREFIX)] = literal_eval(value) + name = variable.removeprefix(PREFIX).lower() + try: + d[name] = literal_eval(value) + except ValueError: + d[name] = value return d From a0c36dba7c4c86c92039bfbee4994f0c436db241 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 21 Oct 2024 16:07:33 +0200 Subject: [PATCH 29/60] log --- spcd/act.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/spcd/act.py b/spcd/act.py index cc98572..b740c20 100644 --- a/spcd/act.py +++ b/spcd/act.py @@ -29,10 +29,8 @@ def parse_inputs() -> dict[str, object]: for variable, value in sorted(projects.environment.items()): if variable.startswith(PREFIX): name = variable.removeprefix(PREFIX).lower() - try: - d[name] = literal_eval(value) - except ValueError: - d[name] = value + log.info(name) + d[name] = literal_eval(value) return d From ef00f4aa9774717f1d8e153d4ed1c087b6f6c689 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 21 Oct 2024 17:25:39 +0200 Subject: [PATCH 30/60] inputs --- spcd/act.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spcd/act.py b/spcd/act.py index b740c20..f341558 100644 --- a/spcd/act.py +++ b/spcd/act.py @@ -25,13 +25,13 @@ def parse_inputs() -> dict[str, object]: :return: name & value pairs :rtype: dict[str, object] """ - d = {} + inputs = {} for variable, value in sorted(projects.environment.items()): if variable.startswith(PREFIX): + log.info(variable) name = variable.removeprefix(PREFIX).lower() - log.info(name) - d[name] = literal_eval(value) - return d + inputs[name] = literal_eval(value) + return inputs def synchronize(source: str | None = None, target: str | None = None) -> None: From 5112abf37e118fd2d58d5bd5755161064b579574 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 21 Oct 2024 22:05:25 +0200 Subject: [PATCH 31/60] =?UTF-8?q?=E2=88=92log?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spcd/act.py | 1 - 1 file changed, 1 deletion(-) diff --git a/spcd/act.py b/spcd/act.py index f341558..005d9a9 100644 --- a/spcd/act.py +++ b/spcd/act.py @@ -28,7 +28,6 @@ def parse_inputs() -> dict[str, object]: inputs = {} for variable, value in sorted(projects.environment.items()): if variable.startswith(PREFIX): - log.info(variable) name = variable.removeprefix(PREFIX).lower() inputs[name] = literal_eval(value) return inputs From 9b735fe55648c44fdeee2e8486fe4ca2f5eec6fa Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 21 Oct 2024 22:13:12 +0200 Subject: [PATCH 32/60] 4 --- spcd/__init__.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spcd/__init__.py b/spcd/__init__.py index 3bfe67a..7d3c059 100644 --- a/spcd/__init__.py +++ b/spcd/__init__.py @@ -63,6 +63,8 @@ def install_actions() -> None: required: true arg_3: required: true + arg_4: + required: true """ case "synchronize": inputs = """\ From 8e48406c81ac33a8e7a61ab34fba848f29ef5930 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 21 Oct 2024 22:17:32 +0200 Subject: [PATCH 33/60] default --- spcd/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spcd/__init__.py b/spcd/__init__.py index 7d3c059..f2756fb 100644 --- a/spcd/__init__.py +++ b/spcd/__init__.py @@ -64,7 +64,8 @@ def install_actions() -> None: arg_3: required: true arg_4: - required: true + default: placeholder + required: false """ case "synchronize": inputs = """\ From 07398c07abbfc455ec5444cca1e3074cfa021d7d Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 21 Oct 2024 22:20:14 +0200 Subject: [PATCH 34/60] quote --- spcd/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spcd/__init__.py b/spcd/__init__.py index f2756fb..0323224 100644 --- a/spcd/__init__.py +++ b/spcd/__init__.py @@ -64,7 +64,7 @@ def install_actions() -> None: arg_3: required: true arg_4: - default: placeholder + default: "placeholder" required: false """ case "synchronize": From 8f6b4772a211416ba09620e8133c3ba9708741f8 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 21 Oct 2024 22:22:48 +0200 Subject: [PATCH 35/60] double --- spcd/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spcd/__init__.py b/spcd/__init__.py index 0323224..01bda37 100644 --- a/spcd/__init__.py +++ b/spcd/__init__.py @@ -64,7 +64,7 @@ def install_actions() -> None: arg_3: required: true arg_4: - default: "placeholder" + default: '"placeholder"' required: false """ case "synchronize": From beadc87c941f3ff3b1223ac8561b676b3e042d3e Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 21 Oct 2024 22:31:16 +0200 Subject: [PATCH 36/60] =?UTF-8?q?default=E2=88=92required?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spcd/__init__.py | 1 - 1 file changed, 1 deletion(-) diff --git a/spcd/__init__.py b/spcd/__init__.py index 01bda37..f3beb30 100644 --- a/spcd/__init__.py +++ b/spcd/__init__.py @@ -65,7 +65,6 @@ def install_actions() -> None: required: true arg_4: default: '"placeholder"' - required: false """ case "synchronize": inputs = """\ From 7f5b6ebbf9451a9134df726c769e55b3d729cf2a Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Thu, 7 Nov 2024 22:34:26 +0100 Subject: [PATCH 37/60] readme/managed --- readme.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 0728687..2c66f57 100644 --- a/readme.md +++ b/readme.md @@ -54,9 +54,10 @@ Picture it… * [X] installing Git to clone * [X] this project * [X] its parent framework -* [X] installing both Python +* [X] installing Python * [X] system environment * [X] virtual environment + * [ ] managed version * [X] generating a Python module to switch context #### Python From f1f3503c95bb07044063ca78e8d6899ea7108330 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Fri, 8 Nov 2024 04:59:10 +0100 Subject: [PATCH 38/60] system/latest,previous --- readme.md | 34 ++++++++++------------------------ 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/readme.md b/readme.md index 2c66f57..35ee7b4 100644 --- a/readme.md +++ b/readme.md @@ -96,30 +96,16 @@ Handle project workflows in a unified way: * [ ] SourceHut * whatever the Operating System container - * [X] Alma - * [X] 9 - * [X] 8 - * [X] Alpine - * [X] 3.20 - * [X] 3.19 - * [X] Arch - * [X] 20240818 (.0.255804) - * [X] 20240101 (.0.204074) - * [X] Debian - * [X] Bookworm (12) - * [ ] Bullseye (11) - * [X] Fedora - * [X] 40 - * [X] 39 - * [ ] OpenSUSE - * [ ] 15.6 - * [ ] 15.5 - * [X] Rocky - * [X] 9 - * [X] 8 - * [X] Ubuntu - * [X] Noble (24.04) - * [ ] Jammy (22.04) +| System | Latest | Previous | +|:---------|:---------------------------|:---------------------------| +| Alma | * [X] 9 | * [X] 8 | +| Alpine | * [X] 3.20 | * [X] 3.19 | +| Arch | * [X] 20240818 (.0.255804) | * [X] 20240101 (.0.204074) | +| Debian | * [X] Bookworm (12) | * [ ] Bullseye (11) | +| Fedora | * [X] 40 | * [X] 39 | +| OpenSUSE | * [ ] 15.6 | * [ ] 15.5 | +| Rocky | * [X] 9 | * [X] 8 | +| Ubuntu | * [X] Noble (24.04) | * [ ] Jammy (22.04) | ### Environment variables From ba636d5fc720783f1908027f4d6a75fe95be67b0 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Fri, 8 Nov 2024 10:27:30 +0100 Subject: [PATCH 39/60] ffmpeg --- readme.md | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/readme.md b/readme.md index 35ee7b4..059c6ee 100644 --- a/readme.md +++ b/readme.md @@ -137,31 +137,31 @@ Handle project workflows in a unified way: #### Latest -| os | https | up ca | python | graphviz | plantuml | shellcheck | shunit | shfmt | gource | ffmpeg | -|:----------------|---|---|------------:|------:|-----------:|------:|------:|-----:|-----:|-------:| -| Arch 20240818 | ☑ | ☑ | 3.12 | 12.0 | 1.2023.13 | 0.10 | 2.1.8 | 3.8 | 0.54 | 7.0.2 | -| Alpine 3.20 | ☑ | ☐ | 3.12 | 9.0 | 1.2024.4 | 0.10 | 2.1.8 | 3.8 | 0.54 | 6.1.1 | -| Fedora 40 | ☑ | ☑ | 3.12 → 3.13 | 9.0 | 1.2024.6 | 0.9 | 2.1.6 | 3.7 | 0.55 | 6.1.2 | -| Debian Bookworm | ☐ | ☐ | 3.11 | 2.42 | 1.2020.2 | 0.9 | 2.1.8 | 3.6 | 0.54 | 5.1.6 | -| OpenSUSE 15.6 | ☐ | ☑ | 3.6 → 3.12 | 2.48 | 1.2020.9 | 0.8 | 2.1.6 | 3.5 | 0.54 | 4.4.4 | -| Ubuntu Noble | ☐ | ☐ | 3.12 | u2.42 | u1.2020.2 | u0.9 | 2.1.8 | u3.8 | 0.54 | 6.1.1 | -| Alma / Rocky 9 | ☑ | ☑ | 3.9 → 3.12 | 2.44 | e1.2024.6 | e0.8 | | | | e5.1.4 | +| os | https | up ca | python | ffmpeg | graphviz | plantuml | shellcheck | shunit | shfmt | gource | +|:----------------|---|---|------------:|-------:|------:|-----------:|------:|------:|-----:|-----:| +| Arch 20240818 | ☑ | ☑ | 3.12 | 7.0.2 | 12.0 | 1.2023.13 | 0.10 | 2.1.8 | 3.8 | 0.54 | +| Alpine 3.20 | ☑ | ☐ | 3.12 | 6.1.1 | 9.0 | 1.2024.4 | 0.10 | 2.1.8 | 3.8 | 0.54 | +| Fedora 40 | ☑ | ☑ | 3.12 → 3.13 | 6.1.2 | 9.0 | 1.2024.6 | 0.9 | 2.1.6 | 3.7 | 0.55 | +| Debian Bookworm | ☐ | ☐ | 3.11 | 5.1.6 | 2.42 | 1.2020.2 | 0.9 | 2.1.8 | 3.6 | 0.54 | +| OpenSUSE 15.6 | ☐ | ☑ | 3.6 → 3.12 | 4.4.4 | 2.48 | 1.2020.9 | 0.8 | 2.1.6 | 3.5 | 0.54 | +| Ubuntu Noble | ☐ | ☐ | 3.12 | 6.1.1 | u2.42 | u1.2020.2 | u0.9 | 2.1.8 | u3.8 | 0.54 | +| Alma / Rocky 9 | ☑ | ☑ | 3.9 → 3.12 | e5.1.4 | 2.44 | e1.2024.6 | e0.8 | | | | #### Previous -| os | https | up ca | python | graphviz | plantuml | shellcheck | shunit | shfmt | gource | ffmpeg | -|:----------------|---|---|------------:|------:|-----------:|------:|------:|-----:|-----:|-------:| -| Alpine 3.19 | ☑ | ☐ | 3.11 | 9.0 | 1.2023.12 | 0.9 | 2.1.8 | 3.7 | 0.54 | 6.1.1 | -| Fedora 39 | ☑ | ☑ | 3.12 → 3.13 | 8.1 | 1.2024.6 | 0.9 | 2.1.6 | 3.5 | 0.55 | 6.1.1 | -| OpenSUSE 15.5 | ☐ | ☑ | 3.6 → 3.11 | 2.48 | 1.2020.9 | 0.8 | 2.1.6 | 3.5 | 0.54 | 4.4.4 | -| Alma / Rocky 8 | ☑ | ☑ | 3.6 → 3.12 | 2.40 | e1.2024.6 | e0.6 | | | | | +| os | https | up ca | python | ffmpeg | graphviz | plantuml | shellcheck | shunit | shfmt | gource | +|:----------------|---|---|------------:|-------:|------:|-----------:|------:|------:|-----:|-----:| +| Alpine 3.19 | ☑ | ☐ | 3.11 | 6.1.1 | 9.0 | 1.2023.12 | 0.9 | 2.1.8 | 3.7 | 0.54 | +| Fedora 39 | ☑ | ☑ | 3.12 → 3.13 | 6.1.1 | 8.1 | 1.2024.6 | 0.9 | 2.1.6 | 3.5 | 0.55 | +| OpenSUSE 15.5 | ☐ | ☑ | 3.6 → 3.11 | 4.4.4 | 2.48 | 1.2020.9 | 0.8 | 2.1.6 | 3.5 | 0.54 | +| Alma / Rocky 8 | ☑ | ☑ | 3.6 → 3.12 | | 2.40 | e1.2024.6 | e0.6 | | | | #### Older Python -| os | https | up ca | python | graphviz | plantuml | shellcheck | shunit | shfmt | gource | ffmpeg | -|:----------------|---|---|------------:|------:|-----------:|------:|------:|-----:|-----:|-------:| -| Ubuntu Jammy | ☐ | ☐ | 3.10 | u2.42 | u1.2020.2 | u0.8 | 2.1.6 | u3.4 | 0.51 | 4.4.2 | -| Debian Bullseye | ☐ | ☐ | 3.9 | 2.42 | 1.2020.2 | 0.7 | 2.1.6 | | 0.51 | 4.3.7 | +| os | https | up ca | python | ffmpeg | graphviz | plantuml | shellcheck | shunit | shfmt | gource | +|:----------------|---|---|------------:|-------:|------:|-----------:|------:|------:|-----:|-----:| +| Ubuntu Jammy | ☐ | ☐ | 3.10 | 4.4.2 | u2.42 | u1.2020.2 | u0.8 | 2.1.6 | u3.4 | 0.51 | +| Debian Bullseye | ☐ | ☐ | 3.9 | 4.3.7 | 2.42 | 1.2020.2 | 0.7 | 2.1.6 | | 0.51 | --- From ca175d805a30f42386e5572805d531cf1231a22d Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Fri, 8 Nov 2024 10:33:20 +0100 Subject: [PATCH 40/60] gource --- readme.md | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/readme.md b/readme.md index 059c6ee..f043b8c 100644 --- a/readme.md +++ b/readme.md @@ -137,31 +137,31 @@ Handle project workflows in a unified way: #### Latest -| os | https | up ca | python | ffmpeg | graphviz | plantuml | shellcheck | shunit | shfmt | gource | -|:----------------|---|---|------------:|-------:|------:|-----------:|------:|------:|-----:|-----:| -| Arch 20240818 | ☑ | ☑ | 3.12 | 7.0.2 | 12.0 | 1.2023.13 | 0.10 | 2.1.8 | 3.8 | 0.54 | -| Alpine 3.20 | ☑ | ☐ | 3.12 | 6.1.1 | 9.0 | 1.2024.4 | 0.10 | 2.1.8 | 3.8 | 0.54 | -| Fedora 40 | ☑ | ☑ | 3.12 → 3.13 | 6.1.2 | 9.0 | 1.2024.6 | 0.9 | 2.1.6 | 3.7 | 0.55 | -| Debian Bookworm | ☐ | ☐ | 3.11 | 5.1.6 | 2.42 | 1.2020.2 | 0.9 | 2.1.8 | 3.6 | 0.54 | -| OpenSUSE 15.6 | ☐ | ☑ | 3.6 → 3.12 | 4.4.4 | 2.48 | 1.2020.9 | 0.8 | 2.1.6 | 3.5 | 0.54 | -| Ubuntu Noble | ☐ | ☐ | 3.12 | 6.1.1 | u2.42 | u1.2020.2 | u0.9 | 2.1.8 | u3.8 | 0.54 | -| Alma / Rocky 9 | ☑ | ☑ | 3.9 → 3.12 | e5.1.4 | 2.44 | e1.2024.6 | e0.8 | | | | +| os | https | up ca | python | ffmpeg | gource | graphviz | plantuml | shellcheck | shunit | shfmt | +|:----------------|---|---|------------:|-------:|-----:|------:|-----------:|------:|------:|-----:| +| Arch 20240818 | ☑ | ☑ | 3.12 | 7.0.2 | 0.54 | 12.0 | 1.2023.13 | 0.10 | 2.1.8 | 3.8 | +| Alpine 3.20 | ☑ | ☐ | 3.12 | 6.1.1 | 0.54 | 9.0 | 1.2024.4 | 0.10 | 2.1.8 | 3.8 | +| Fedora 40 | ☑ | ☑ | 3.12 → 3.13 | 6.1.2 | 0.55 | 9.0 | 1.2024.6 | 0.9 | 2.1.6 | 3.7 | +| Debian Bookworm | ☐ | ☐ | 3.11 | 5.1.6 | 0.54 | 2.42 | 1.2020.2 | 0.9 | 2.1.8 | 3.6 | +| OpenSUSE 15.6 | ☐ | ☑ | 3.6 → 3.12 | 4.4.4 | 0.54 | 2.48 | 1.2020.9 | 0.8 | 2.1.6 | 3.5 | +| Ubuntu Noble | ☐ | ☐ | 3.12 | 6.1.1 | 0.54 | u2.42 | u1.2020.2 | u0.9 | 2.1.8 | u3.8 | +| Alma / Rocky 9 | ☑ | ☑ | 3.9 → 3.12 | e5.1.4 | | 2.44 | e1.2024.6 | e0.8 | | | #### Previous -| os | https | up ca | python | ffmpeg | graphviz | plantuml | shellcheck | shunit | shfmt | gource | -|:----------------|---|---|------------:|-------:|------:|-----------:|------:|------:|-----:|-----:| -| Alpine 3.19 | ☑ | ☐ | 3.11 | 6.1.1 | 9.0 | 1.2023.12 | 0.9 | 2.1.8 | 3.7 | 0.54 | -| Fedora 39 | ☑ | ☑ | 3.12 → 3.13 | 6.1.1 | 8.1 | 1.2024.6 | 0.9 | 2.1.6 | 3.5 | 0.55 | -| OpenSUSE 15.5 | ☐ | ☑ | 3.6 → 3.11 | 4.4.4 | 2.48 | 1.2020.9 | 0.8 | 2.1.6 | 3.5 | 0.54 | -| Alma / Rocky 8 | ☑ | ☑ | 3.6 → 3.12 | | 2.40 | e1.2024.6 | e0.6 | | | | +| os | https | up ca | python | ffmpeg | gource | graphviz | plantuml | shellcheck | shunit | shfmt | +|:----------------|---|---|------------:|-------:|-----:|------:|-----------:|------:|------:|-----:| +| Alpine 3.19 | ☑ | ☐ | 3.11 | 6.1.1 | 0.54 | 9.0 | 1.2023.12 | 0.9 | 2.1.8 | 3.7 | +| Fedora 39 | ☑ | ☑ | 3.12 → 3.13 | 6.1.1 | 0.55 | 8.1 | 1.2024.6 | 0.9 | 2.1.6 | 3.5 | +| OpenSUSE 15.5 | ☐ | ☑ | 3.6 → 3.11 | 4.4.4 | 0.54 | 2.48 | 1.2020.9 | 0.8 | 2.1.6 | 3.5 | +| Alma / Rocky 8 | ☑ | ☑ | 3.6 → 3.12 | | | 2.40 | e1.2024.6 | e0.6 | | | #### Older Python -| os | https | up ca | python | ffmpeg | graphviz | plantuml | shellcheck | shunit | shfmt | gource | -|:----------------|---|---|------------:|-------:|------:|-----------:|------:|------:|-----:|-----:| -| Ubuntu Jammy | ☐ | ☐ | 3.10 | 4.4.2 | u2.42 | u1.2020.2 | u0.8 | 2.1.6 | u3.4 | 0.51 | -| Debian Bullseye | ☐ | ☐ | 3.9 | 4.3.7 | 2.42 | 1.2020.2 | 0.7 | 2.1.6 | | 0.51 | +| os | https | up ca | python | ffmpeg | gource | graphviz | plantuml | shellcheck | shunit | shfmt | +|:----------------|---|---|------------:|-------:|-----:|------:|-----------:|------:|------:|-----:| +| Ubuntu Jammy | ☐ | ☐ | 3.10 | 4.4.2 | 0.51 | u2.42 | u1.2020.2 | u0.8 | 2.1.6 | u3.4 | +| Debian Bullseye | ☐ | ☐ | 3.9 | 4.3.7 | 0.51 | 2.42 | 1.2020.2 | 0.7 | 2.1.6 | | --- From 64ec49dbc7fee0003620da1f5420fda2482afd3d Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Fri, 8 Nov 2024 10:40:29 +0100 Subject: [PATCH 41/60] shfmt --- readme.md | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/readme.md b/readme.md index f043b8c..f0504a3 100644 --- a/readme.md +++ b/readme.md @@ -137,31 +137,31 @@ Handle project workflows in a unified way: #### Latest -| os | https | up ca | python | ffmpeg | gource | graphviz | plantuml | shellcheck | shunit | shfmt | -|:----------------|---|---|------------:|-------:|-----:|------:|-----------:|------:|------:|-----:| -| Arch 20240818 | ☑ | ☑ | 3.12 | 7.0.2 | 0.54 | 12.0 | 1.2023.13 | 0.10 | 2.1.8 | 3.8 | -| Alpine 3.20 | ☑ | ☐ | 3.12 | 6.1.1 | 0.54 | 9.0 | 1.2024.4 | 0.10 | 2.1.8 | 3.8 | -| Fedora 40 | ☑ | ☑ | 3.12 → 3.13 | 6.1.2 | 0.55 | 9.0 | 1.2024.6 | 0.9 | 2.1.6 | 3.7 | -| Debian Bookworm | ☐ | ☐ | 3.11 | 5.1.6 | 0.54 | 2.42 | 1.2020.2 | 0.9 | 2.1.8 | 3.6 | -| OpenSUSE 15.6 | ☐ | ☑ | 3.6 → 3.12 | 4.4.4 | 0.54 | 2.48 | 1.2020.9 | 0.8 | 2.1.6 | 3.5 | -| Ubuntu Noble | ☐ | ☐ | 3.12 | 6.1.1 | 0.54 | u2.42 | u1.2020.2 | u0.9 | 2.1.8 | u3.8 | -| Alma / Rocky 9 | ☑ | ☑ | 3.9 → 3.12 | e5.1.4 | | 2.44 | e1.2024.6 | e0.8 | | | +| os | https | up ca | python | ffmpeg | gource | graphviz | plantuml | shellcheck | shfmt | shunit | +|:----------------|---|---|------------:|-------:|-----:|------:|-----------:|------:|-----:|------:| +| Arch 20240818 | ☑ | ☑ | 3.12 | 7.0.2 | 0.54 | 12.0 | 1.2023.13 | 0.10 | 3.8 | 2.1.8 | +| Alpine 3.20 | ☑ | ☐ | 3.12 | 6.1.1 | 0.54 | 9.0 | 1.2024.4 | 0.10 | 3.8 | 2.1.8 | +| Fedora 40 | ☑ | ☑ | 3.12 → 3.13 | 6.1.2 | 0.55 | 9.0 | 1.2024.6 | 0.9 | 3.7 | 2.1.6 | +| Debian Bookworm | ☐ | ☐ | 3.11 | 5.1.6 | 0.54 | 2.42 | 1.2020.2 | 0.9 | 3.6 | 2.1.8 | +| OpenSUSE 15.6 | ☐ | ☑ | 3.6 → 3.12 | 4.4.4 | 0.54 | 2.48 | 1.2020.9 | 0.8 | 3.5 | 2.1.6 | +| Ubuntu Noble | ☐ | ☐ | 3.12 | 6.1.1 | 0.54 | u2.42 | u1.2020.2 | u0.9 | u3.8 | 2.1.8 | +| Alma / Rocky 9 | ☑ | ☑ | 3.9 → 3.12 | e5.1.4 | | 2.44 | e1.2024.6 | e0.8 | | | #### Previous -| os | https | up ca | python | ffmpeg | gource | graphviz | plantuml | shellcheck | shunit | shfmt | -|:----------------|---|---|------------:|-------:|-----:|------:|-----------:|------:|------:|-----:| -| Alpine 3.19 | ☑ | ☐ | 3.11 | 6.1.1 | 0.54 | 9.0 | 1.2023.12 | 0.9 | 2.1.8 | 3.7 | -| Fedora 39 | ☑ | ☑ | 3.12 → 3.13 | 6.1.1 | 0.55 | 8.1 | 1.2024.6 | 0.9 | 2.1.6 | 3.5 | -| OpenSUSE 15.5 | ☐ | ☑ | 3.6 → 3.11 | 4.4.4 | 0.54 | 2.48 | 1.2020.9 | 0.8 | 2.1.6 | 3.5 | -| Alma / Rocky 8 | ☑ | ☑ | 3.6 → 3.12 | | | 2.40 | e1.2024.6 | e0.6 | | | +| os | https | up ca | python | ffmpeg | gource | graphviz | plantuml | shellcheck | shfmt | shunit | +|:----------------|---|---|------------:|-------:|-----:|------:|-----------:|------:|-----:|------:| +| Alpine 3.19 | ☑ | ☐ | 3.11 | 6.1.1 | 0.54 | 9.0 | 1.2023.12 | 0.9 | 3.7 | 2.1.8 | +| Fedora 39 | ☑ | ☑ | 3.12 → 3.13 | 6.1.1 | 0.55 | 8.1 | 1.2024.6 | 0.9 | 3.5 | 2.1.6 | +| OpenSUSE 15.5 | ☐ | ☑ | 3.6 → 3.11 | 4.4.4 | 0.54 | 2.48 | 1.2020.9 | 0.8 | 3.5 | 2.1.6 | +| Alma / Rocky 8 | ☑ | ☑ | 3.6 → 3.12 | | | 2.40 | e1.2024.6 | e0.6 | | | #### Older Python -| os | https | up ca | python | ffmpeg | gource | graphviz | plantuml | shellcheck | shunit | shfmt | -|:----------------|---|---|------------:|-------:|-----:|------:|-----------:|------:|------:|-----:| -| Ubuntu Jammy | ☐ | ☐ | 3.10 | 4.4.2 | 0.51 | u2.42 | u1.2020.2 | u0.8 | 2.1.6 | u3.4 | -| Debian Bullseye | ☐ | ☐ | 3.9 | 4.3.7 | 0.51 | 2.42 | 1.2020.2 | 0.7 | 2.1.6 | | +| os | https | up ca | python | ffmpeg | gource | graphviz | plantuml | shellcheck | shfmt | shunit | +|:----------------|---|---|------------:|-------:|-----:|------:|-----------:|------:|-----:|------:| +| Ubuntu Jammy | ☐ | ☐ | 3.10 | 4.4.2 | 0.51 | u2.42 | u1.2020.2 | u0.8 | u3.4 | 2.1.6 | +| Debian Bullseye | ☐ | ☐ | 3.9 | 4.3.7 | 0.51 | 2.42 | 1.2020.2 | 0.7 | | 2.1.6 | --- From eae12292c353e431ebdbab354082be111fd95a21 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Tue, 12 Nov 2024 12:53:06 +0100 Subject: [PATCH 42/60] readme/guix --- readme.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index f0504a3..4254943 100644 --- a/readme.md +++ b/readme.md @@ -277,5 +277,7 @@ Handle project workflows in a unified way: * rpm fusion * tex * translate to french -* try to support nix +* try to support + * guix + * nix * uv From dcbb88b423fc22dbc99170e4580ce100243b305a Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Fri, 29 Nov 2024 16:19:27 +0100 Subject: [PATCH 43/60] =?UTF-8?q?=E2=88=92shebang?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spcd/bootstrap.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/spcd/bootstrap.sh b/spcd/bootstrap.sh index b9b1702..a4f05d2 100644 --- a/spcd/bootstrap.sh +++ b/spcd/bootstrap.sh @@ -1,5 +1,3 @@ -#! /usr/bin/env sh - # ╭───────────────╮ # │ __ = internal │ # ╰───────────────╯ From 128c2ef986a998162f550c6252fbf48811c87220 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sat, 22 Feb 2025 23:17:22 +0100 Subject: [PATCH 44/60] qrencode --- spcd/bootstrap.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spcd/bootstrap.sh b/spcd/bootstrap.sh index a4f05d2..f64e855 100644 --- a/spcd/bootstrap.sh +++ b/spcd/bootstrap.sh @@ -815,6 +815,9 @@ spcd_f_pkg() { # plantuml spcd_step "PlantUML" spcd_f_pm_pkg_install "plantuml" + # qrencode + spcd_step "QRencode" + spcd_f_pm_pkg_install "qrencode" # rsync spcd_step "Rsync" spcd_f_pm_pkg_install "rsync" From dfd4219191bfcfd9954c81f064276f21222ce060 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sat, 22 Feb 2025 23:47:16 +0100 Subject: [PATCH 45/60] lint --- pyproject.toml | 2 +- spcd/__init__.py | 10 +++++----- spcd/act.py | 2 ++ spcd/cmd.py | 17 +++++++++-------- 4 files changed, 17 insertions(+), 14 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 103539a..1436be7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,7 +18,7 @@ dependencies = ["rwx"] description = "Shell to Python Continuous Deployment" dynamic = ["version"] keywords = [] -license-files = { paths = ["license.md"] } +license-files = ["license.md"] name = "spcd" readme = "readme.md" requires-python = ">= 3.11" diff --git a/spcd/__init__.py b/spcd/__init__.py index f3beb30..effbd50 100644 --- a/spcd/__init__.py +++ b/spcd/__init__.py @@ -16,6 +16,7 @@ from spcd.shell import env from spcd.util import browse, cat, split, step COMMANDS_PREFIX = "spcd-" +ENTRY_POINT = "__main__.py" def clone_project_branch() -> None: @@ -50,7 +51,7 @@ def install_actions() -> None: name = "action.yaml" root = project.root / "act" vpy = Path(env.SPCD_PYTHON_VENV_BINARIES) / "python" - for action in ["action", "synchronize"]: + for action in ("action", "synchronize"): log.info(action) directory = root / action fs.make_directory(directory) @@ -91,12 +92,12 @@ def install_commands(path: Path) -> None: """ step("Install commands") user = Path("/usr/local/bin") - for command in [ + for command in ( "browse-workspace", "build-project", "check-project", "synchronize", - ]: + ): log.info(command) (user / f"{COMMANDS_PREFIX}{command}").symlink_to(path) @@ -147,8 +148,7 @@ def main(main_file: Path) -> None: if env.SPCD_PYTHON_VENV_BINARIES not in paths: environ["PATH"] = pathsep.join([env.SPCD_PYTHON_VENV_BINARIES, *paths]) path, *arguments = sys.argv - name = Path(path).name - if name == "__main__.py": + if (name := Path(path).name) == ENTRY_POINT: if arguments: name, *arguments = arguments f = getattr(act, name) diff --git a/spcd/act.py b/spcd/act.py index 005d9a9..7886bbe 100644 --- a/spcd/act.py +++ b/spcd/act.py @@ -1,5 +1,7 @@ """Actions available for workflows.""" +from __future__ import annotations + import os from ast import literal_eval from pathlib import Path diff --git a/spcd/cmd.py b/spcd/cmd.py index 12f4dc2..37b44b7 100644 --- a/spcd/cmd.py +++ b/spcd/cmd.py @@ -1,6 +1,8 @@ """Commands available for workflows.""" -import os +from __future__ import annotations + +from os import sep from pathlib import Path from rwx import ps @@ -17,7 +19,7 @@ def spcd_browse_workspace() -> None: def spcd_build_project() -> None: """Perform the actual building process.""" - for extension in ["py", "sh"]: + for extension in ("py", "sh"): path = project.root / f"build.{extension}" if path.exists(): ps.run(str(path)) @@ -31,7 +33,8 @@ def spcd_check_project() -> None: def spcd_synchronize( - source: str | None = None, target: str | None = None + source: str | None = None, + target: str | None = None, ) -> None: """Synchronize output towards a target. @@ -43,9 +46,7 @@ def spcd_synchronize( if not target: user = "cd" host = env.SPCD_PROJECT_PATH - root = ( - Path(os.sep) / user / projects.group / project.name / project.branch - ) + root = Path(sep) / user / projects.group / project.name / project.branch target = f"{user}@{host}:{root}" if not source: source = "out" @@ -54,6 +55,6 @@ def spcd_synchronize( "--archive", "--delete-before", "--verbose", - f"{source}/", - f"{target}/", + f"{source}{sep}", + f"{target}{sep}", ) From 849d1ef1bf5c97a1e54e765e741680c7f363286a Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sun, 23 Feb 2025 00:03:14 +0100 Subject: [PATCH 46/60] ruff/check,format --- spcd/cmd.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/spcd/cmd.py b/spcd/cmd.py index 37b44b7..ad09f8f 100644 --- a/spcd/cmd.py +++ b/spcd/cmd.py @@ -28,8 +28,20 @@ def spcd_build_project() -> None: def spcd_check_project() -> None: """Check the project for anything wrong.""" - ps.run("ruff", "check") - ps.run("ruff", "format", "--diff") + ps.run( + "ruff", + "check", + ("--ignore", "D203,D213"), + "--isolated", + ("--select", "ALL"), + ) + ps.run( + "ruff", + "format", + "--diff", + "--isolated", + ("--line-length", "80"), + ) def spcd_synchronize( From c427cf60ce942719f6ef459ba99e7f8bccce202b Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sun, 23 Feb 2025 00:04:11 +0100 Subject: [PATCH 47/60] mv --- spcd/{cmd.py => command.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename spcd/{cmd.py => command.py} (100%) diff --git a/spcd/cmd.py b/spcd/command.py similarity index 100% rename from spcd/cmd.py rename to spcd/command.py From c940dab9b55f8c2f2980b30db16173852f4b61ea Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sun, 23 Feb 2025 00:07:15 +0100 Subject: [PATCH 48/60] commands --- spcd/__init__.py | 4 ++-- spcd/{command.py => commands.py} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename spcd/{command.py => commands.py} (100%) diff --git a/spcd/__init__.py b/spcd/__init__.py index effbd50..31cd594 100644 --- a/spcd/__init__.py +++ b/spcd/__init__.py @@ -10,7 +10,7 @@ from rwx import fs from rwx.log import stream as log from rwx.ps import run -from spcd import act, cmd +from spcd import act, commands from spcd.ci import project, projects from spcd.shell import env from spcd.util import browse, cat, split, step @@ -161,7 +161,7 @@ def main(main_file: Path) -> None: install_commands(main_file) install_python_packages() else: - f = getattr(cmd, name.replace("-", "_")) + f = getattr(commands, name.replace("-", "_")) f(*arguments) diff --git a/spcd/command.py b/spcd/commands.py similarity index 100% rename from spcd/command.py rename to spcd/commands.py From fc2fb7581b328af64ad245d34102f29051dde99e Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 14 Apr 2025 11:15:34 +0200 Subject: [PATCH 49/60] refs/archive --- readme.md | 7 ++----- spcd/bootstrap.sh | 1 + 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/readme.md b/readme.md index 4254943..552f13d 100644 --- a/readme.md +++ b/readme.md @@ -116,6 +116,7 @@ Handle project workflows in a unified way: | SPCD_GIT_RWX | RWX Git repository | rwx | | SPCD_GIT_SHUNIT | ShUnit Git repository | shunit2 | | SPCD_GIT_SPCD | SPCD Git repository | spcd | +| SPCD_REF_ARCHIVE | Archive deployment ref | old | | SPCD_REF_FEATURE | Feature deployment ref | f | | SPCD_REF_RELEASE | Release deployment ref | main | | SPCD_REF_STAGING | Staging deployment ref | dev | @@ -167,14 +168,10 @@ Handle project workflows in a unified way: ## Who -### By +### Author * [Marc Beninca](https://marc.beninca.link) -### For - -* People feeling the need to aim for consistency in the CI / CD universe - --- ## Where diff --git a/spcd/bootstrap.sh b/spcd/bootstrap.sh index f64e855..6ed579a 100644 --- a/spcd/bootstrap.sh +++ b/spcd/bootstrap.sh @@ -384,6 +384,7 @@ spcd_e_default() { [ -n "${SPCD_GIT_SHUNIT}" ] || SPCD_GIT_SHUNIT="shunit2" + [ -n "${SPCD_REF_ARCHIVE}" ] || SPCD_REF_ARCHIVE="old" [ -n "${SPCD_REF_FEATURE}" ] || SPCD_REF_FEATURE="f" [ -n "${SPCD_REF_RELEASE}" ] || SPCD_REF_RELEASE="main" [ -n "${SPCD_REF_STAGING}" ] || SPCD_REF_STAGING="dev" From fd505e93e689cdad0f267ae198a2b9b5ae7f4b22 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sat, 19 Apr 2025 23:06:02 +0200 Subject: [PATCH 50/60] refs/archive --- spcd/bootstrap.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spcd/bootstrap.sh b/spcd/bootstrap.sh index 6ed579a..246a4f9 100644 --- a/spcd/bootstrap.sh +++ b/spcd/bootstrap.sh @@ -512,7 +512,8 @@ ${SPCD_PROJECT_ROOT}$(basename "${GITHUB_SERVER_URL}")" fi # check project variables case "${SPCD_PROJECT_BRANCH}" in - "${SPCD_REF_RELEASE}" | \ + "${SPCD_REF_ARCHIVE}" | \ + "${SPCD_REF_RELEASE}" | \ "${SPCD_REF_STAGING}" | \ "${SPCD_REF_FEATURE}") ;; *) spcd_error_ci "SPCD_PROJECT_BRANCH" ;; From 2670bec22ed6946d08fa5991735451c106268f28 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sun, 25 May 2025 16:51:16 +0200 Subject: [PATCH 51/60] tex --- spcd/bootstrap.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/spcd/bootstrap.sh b/spcd/bootstrap.sh index 246a4f9..e098586 100644 --- a/spcd/bootstrap.sh +++ b/spcd/bootstrap.sh @@ -843,6 +843,15 @@ spcd_f_pkg() { ;; *) spcd_f_pm_pkg_install "shfmt" ;; esac + # tex + spcd_step "TeX" + case "${SPCD_OS_ID}" in + "${SPCD_OS_DEBIAN}") + spcd_f_pm_pkg_install "texlive-xetex" + ;; + # TODO other operating systems + *) ;; + esac spcd_step_out } From d703770f7191d04935a2c6a3de61188a84b2e8b2 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sun, 25 May 2025 16:59:33 +0200 Subject: [PATCH 52/60] runs-on --- .forgejo/workflows/alt.yaml | 8 ++++++++ .forgejo/workflows/main.yaml | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/.forgejo/workflows/alt.yaml b/.forgejo/workflows/alt.yaml index 8a11c4b..ef1faa4 100644 --- a/.forgejo/workflows/alt.yaml +++ b/.forgejo/workflows/alt.yaml @@ -2,6 +2,7 @@ on: [push] jobs: alpine: + runs-on: ubuntu-latest container: image: ${{vars.DOCKER}}alpine:3.19 steps: @@ -16,6 +17,7 @@ jobs: - run: spcd-browse-workspace debian: + runs-on: ubuntu-latest needs: alpine if: failure() || success() container: @@ -32,6 +34,7 @@ jobs: - run: spcd-browse-workspace ubuntu: + runs-on: ubuntu-latest needs: debian if: failure() || success() container: @@ -48,6 +51,7 @@ jobs: - run: spcd-browse-workspace arch: + runs-on: ubuntu-latest needs: ubuntu if: failure() || success() container: @@ -64,6 +68,7 @@ jobs: - run: spcd-browse-workspace opensuse: + runs-on: ubuntu-latest needs: arch if: failure() || success() container: @@ -80,6 +85,7 @@ jobs: - run: spcd-browse-workspace fedora: + runs-on: ubuntu-latest needs: opensuse if: failure() || success() container: @@ -96,6 +102,7 @@ jobs: - run: spcd-browse-workspace alma: + runs-on: ubuntu-latest needs: fedora if: failure() || success() container: @@ -112,6 +119,7 @@ jobs: - run: spcd-browse-workspace rocky: + runs-on: ubuntu-latest needs: alma if: failure() || success() container: diff --git a/.forgejo/workflows/main.yaml b/.forgejo/workflows/main.yaml index 45b1978..05b6e0a 100644 --- a/.forgejo/workflows/main.yaml +++ b/.forgejo/workflows/main.yaml @@ -2,6 +2,7 @@ on: [push] jobs: alpine: + runs-on: ubuntu-latest container: image: ${{vars.DOCKER}}alpine:3.20 steps: @@ -16,6 +17,7 @@ jobs: - run: spcd-browse-workspace debian: + runs-on: ubuntu-latest needs: alpine if: failure() || success() container: @@ -35,6 +37,7 @@ jobs: - run: spcd-synchronize ubuntu: + runs-on: ubuntu-latest needs: debian if: failure() || success() container: @@ -51,6 +54,7 @@ jobs: - run: spcd-browse-workspace arch: + runs-on: ubuntu-latest needs: ubuntu if: failure() || success() container: @@ -67,6 +71,7 @@ jobs: - run: spcd-browse-workspace opensuse: + runs-on: ubuntu-latest needs: arch if: failure() || success() container: @@ -83,6 +88,7 @@ jobs: - run: spcd-browse-workspace fedora: + runs-on: ubuntu-latest needs: opensuse if: failure() || success() container: @@ -99,6 +105,7 @@ jobs: - run: spcd-browse-workspace alma: + runs-on: ubuntu-latest needs: fedora if: failure() || success() container: @@ -115,6 +122,7 @@ jobs: - run: spcd-browse-workspace rocky: + runs-on: ubuntu-latest needs: alma if: failure() || success() container: From 101e3cf22000653a869db88f66c3b7e1edf49871 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sun, 25 May 2025 17:16:24 +0200 Subject: [PATCH 53/60] tex/fr --- spcd/bootstrap.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/spcd/bootstrap.sh b/spcd/bootstrap.sh index e098586..560e19e 100644 --- a/spcd/bootstrap.sh +++ b/spcd/bootstrap.sh @@ -848,6 +848,7 @@ spcd_f_pkg() { case "${SPCD_OS_ID}" in "${SPCD_OS_DEBIAN}") spcd_f_pm_pkg_install "texlive-xetex" + spcd_f_pm_pkg_install "texlive-lang-french" ;; # TODO other operating systems *) ;; From dae283892c7a03b17c7e39f4e03fadb2c1c9c136 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sun, 25 May 2025 17:32:27 +0200 Subject: [PATCH 54/60] tex/plain-generic --- spcd/bootstrap.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/spcd/bootstrap.sh b/spcd/bootstrap.sh index 560e19e..00b7a82 100644 --- a/spcd/bootstrap.sh +++ b/spcd/bootstrap.sh @@ -849,6 +849,7 @@ spcd_f_pkg() { "${SPCD_OS_DEBIAN}") spcd_f_pm_pkg_install "texlive-xetex" spcd_f_pm_pkg_install "texlive-lang-french" + spcd_f_pm_pkg_install "texlive-plain-generic" ;; # TODO other operating systems *) ;; From f9567f68bad38d9249bd2f520dc21e6320f65f23 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sun, 25 May 2025 17:45:08 +0200 Subject: [PATCH 55/60] tex/bibtex-extra --- spcd/bootstrap.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/spcd/bootstrap.sh b/spcd/bootstrap.sh index 00b7a82..56918ae 100644 --- a/spcd/bootstrap.sh +++ b/spcd/bootstrap.sh @@ -850,6 +850,7 @@ spcd_f_pkg() { spcd_f_pm_pkg_install "texlive-xetex" spcd_f_pm_pkg_install "texlive-lang-french" spcd_f_pm_pkg_install "texlive-plain-generic" + spcd_f_pm_pkg_install "texlive-bibtex-extra" ;; # TODO other operating systems *) ;; From 399bd1960e8f6a2c00678b6dc371900d68ec596d Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sun, 25 May 2025 17:54:06 +0200 Subject: [PATCH 56/60] tex/fonts-recommended --- spcd/bootstrap.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/spcd/bootstrap.sh b/spcd/bootstrap.sh index 56918ae..23f1551 100644 --- a/spcd/bootstrap.sh +++ b/spcd/bootstrap.sh @@ -851,6 +851,7 @@ spcd_f_pkg() { spcd_f_pm_pkg_install "texlive-lang-french" spcd_f_pm_pkg_install "texlive-plain-generic" spcd_f_pm_pkg_install "texlive-bibtex-extra" + spcd_f_pm_pkg_install "texlive-fonts-recommended" ;; # TODO other operating systems *) ;; From 1045053b32513877fbbc78367a357d07b8c3b80e Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sun, 25 May 2025 18:13:03 +0200 Subject: [PATCH 57/60] biber --- spcd/bootstrap.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/spcd/bootstrap.sh b/spcd/bootstrap.sh index 23f1551..66d2386 100644 --- a/spcd/bootstrap.sh +++ b/spcd/bootstrap.sh @@ -852,6 +852,7 @@ spcd_f_pkg() { spcd_f_pm_pkg_install "texlive-plain-generic" spcd_f_pm_pkg_install "texlive-bibtex-extra" spcd_f_pm_pkg_install "texlive-fonts-recommended" + spcd_f_pm_pkg_install "biber" ;; # TODO other operating systems *) ;; From 7ebbedc136a9e5e8dddd393197e49da8a0553592 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sun, 25 May 2025 18:28:30 +0200 Subject: [PATCH 58/60] gpg --- spcd/bootstrap.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/spcd/bootstrap.sh b/spcd/bootstrap.sh index 66d2386..4a07cbc 100644 --- a/spcd/bootstrap.sh +++ b/spcd/bootstrap.sh @@ -796,6 +796,15 @@ spcd_f_pkg() { "${SPCD_OS_ALMA}" | "${SPCD_OS_ROCKY}") ;; *) spcd_f_pm_pkg_install "gource" ;; esac + # gpg + spcd_step "GnuPG" + case "${SPCD_OS_ID}" in + "${SPCD_OS_DEBIAN}") + spcd_f_pm_pkg_install "gpg" + ;; + # TODO other operating systems + *) ;; + esac # graphviz spcd_step "GraphViz" spcd_f_pm_pkg_install "graphviz" From b6e8dfbec648e79770f83c15ec6c508adfc074be Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sun, 8 Jun 2025 00:02:43 +0200 Subject: [PATCH 59/60] pyyaml --- spcd/bootstrap.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/spcd/bootstrap.sh b/spcd/bootstrap.sh index 4a07cbc..3ce4993 100644 --- a/spcd/bootstrap.sh +++ b/spcd/bootstrap.sh @@ -1405,6 +1405,7 @@ index-url = ${SPCD_URL_PYTHON}/simple spcd_step "Activate" export PATH="${SPCD_PYTHON_VENV_BINARIES}:${PATH}" export VIRTUAL_ENV="${SPCD_PYTHON_VENV}" + pip install "PyYAML" spcd_step_out } From 4ba599b2fe69d24d9581e761fdc211ab8fc23d60 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sun, 8 Jun 2025 01:41:31 +0200 Subject: [PATCH 60/60] render --- spcd/commands.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spcd/commands.py b/spcd/commands.py index ad09f8f..cc1a944 100644 --- a/spcd/commands.py +++ b/spcd/commands.py @@ -20,7 +20,7 @@ def spcd_browse_workspace() -> None: def spcd_build_project() -> None: """Perform the actual building process.""" for extension in ("py", "sh"): - path = project.root / f"build.{extension}" + path = project.root / f"render.{extension}" if path.exists(): ps.run(str(path)) break