Commit graph

5,070 commits

Author SHA1 Message Date
8734b90f72
test: apply yapf formatting to test.py files
Yapf complains about spacing inconsistencies around assignment operators
in function calls, fix that.

Assisted-by: unsloth/Qwen3.6-35B-A3B-GGUF:IQ4_NL with pi.dev v0.80.2
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-07-04 07:35:17 +02:00
ad9c5b581a
lib.ProjectConf: Clean up temp files
The _load() helper in test/unit/python/jw/pkg/lib/ProjectConf/test.py
uses tempfile.NamedTemporaryFile(..., delete=False) but never removes
the created files. Each test call leaked a .conf file in /tmp.

Track all created paths in a _tmpfiles list and call _cleanup() at the
end of the test to unlink them.

Assisted-by: unsloth/Qwen3.6-35B-A3B-GGUF:IQ4_NL with pi.dev v0.80.2
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-07-04 07:35:06 +02:00
00b632d1cd
lib.Distro: Fix typo instaniate to instantiate
Two error messages in Distro.__init__() contain the typo 'instaniate'
instead of 'instantiate'. Fix the spelling.

Assisted-by: unsloth/Qwen3.6-35B-A3B-GGUF:IQ4_NL with pi.dev v0.80.2
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-07-04 07:29:11 +02:00
95a2d8a867
lib.DistroContext: Remove dead code from install()
Remove unused helper functions from install():
_matches_host_prefix(), _crop_host_prefix(), _crop_default_prefix(),
and _matches_default_prefix().

Assisted-by: unsloth/Qwen3.6-35B-A3B-GGUF:IQ4_NL with pi.dev v0.80.2
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-07-04 07:25:09 +02:00
a45af032f4
lib.CmdBuild.add_dep_tree(): Fix broken f-string
log() uses a regular string instead of an f-string, fix that.

Assisted-by: unsloth/Qwen3.6-35B-A3B-GGUF:IQ4_NL with pi.dev v0.80.2
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-07-04 07:23:54 +02:00
62803a4a1b
lib.Uri: Return 'file' scheme for local paths
The scheme property returns 'file://' for local paths instead of
'file', causing scheme_plus_authority to produce 'file://://' with a
triple slash.

Also fix the test to expect 'file' instead of 'file://'.

Assisted-by: unsloth/Qwen3.6-35B-A3B-GGUF:IQ4_NL with pi.dev v0.80.2
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-07-04 07:21:43 +02:00
7d8994bcfe
lib.CopyContext._run(): Fix infinite recursion
The CopyContext._run() calls await self._run(), which would create
infinite recursion raising RecursionError at runtime. Make it a pure
virtual.

Assisted-by: unsloth/Qwen3.6-35B-A3B-GGUF:IQ4_NL with pi.dev v0.80.2
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-07-04 07:13:27 +02:00
0020f4b976
Release 1.0.0-246@suse-tumbleweed/x86_64
All checks were successful
CI / Packaging - Kali Linux (push) Successful in 4m16s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 4m18s
CI / Packaging test (push) Successful in 0s
2026-07-02 23:28:31 +00:00
143369fb46
Release 1.0.0-246@kali-rolling/amd64
All checks were successful
CI / Packaging - Kali Linux (push) Successful in 4m21s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 4m26s
CI / Packaging test (push) Successful in 0s
Signed-off-by: janware DevOps <devops@janware.com>
2026-07-02 23:10:46 +00:00
aabfa293f3
Start version: 1.0.0-246
Signed-off-by: janware DevOps <devops@janware.com>
2026-07-02 23:09:40 +00:00
0c92d942ec
py-test.mk: Generate conftest.py
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 4m21s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 4m40s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 4m6s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 4m12s
CI / Packaging test (push) Successful in 0s
Generate a standard conftest.py, mostly for customizing pytest's
bombastic test header, which otherwise lets the more informative make
output look too pale in comparison.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-07-02 19:52:35 +02:00
52f34a915d
py-test.mk: Add file
Add a dedicated py-test.mk for running tests with pytest instead of
python.

The commit introduces a new variable PYTHON_RUNNER, which is then
used by py-run.mk to do it's usual thing. Running pytest is similar
enough to running Python programs to keep the rest of the machinery
and prevent redundancy from creeping in.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-07-02 19:52:35 +02:00
ac54a7bca6
make: Make target "test" depend on target "all"
Every directory should have a test target, and the test target should
depend on all so that all files are generated that might be needed
for testing. This commit fixes some missing targets, and adds some
missing dependencies.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-07-02 19:52:35 +02:00
48b7df3b78
Release 1.0.0-245@suse-tumbleweed/x86_64
All checks were successful
CI / Packaging - Kali Linux (push) Successful in 4m7s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 4m20s
CI / Packaging test (push) Successful in 0s
2026-06-30 23:33:33 +00:00
1a2ed46f04
Release 1.0.0-245@kali-rolling/amd64
All checks were successful
CI / Packaging - Kali Linux (push) Successful in 4m0s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 4m33s
CI / Packaging test (push) Successful in 0s
Signed-off-by: janware DevOps <devops@janware.com>
2026-06-30 23:12:21 +00:00
2691f90b35
Start version: 1.0.0-245
Signed-off-by: janware DevOps <devops@janware.com>
2026-06-30 23:11:15 +00:00
a2a4312f5b
App.get_values(): Filter out empty split results
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 4m20s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 4m29s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 4m0s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 4m14s
CI / Packaging test (push) Successful in 0s
get_values() splits comma-separated values and strips whitespace but
does not filter out empty strings. A value like "a, b, " produces
['a', 'b', ''], with an empty string at the end. This empty string
propagates to callers like CmdRequiredOsPkg.py and pollutes output.
Add a filter for non-empty stripped values.

Assisted-by: unsloth/Qwen3.6-35B-A3B-GGUF:IQ4_NL and pi.dev
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-30 15:07:42 +02:00
42f064de89
App.get_value(): Fix FileNotFoundError regression
The refactored __get_project_conf() raises FileNotFoundError when
project.conf does not exist, whereas the original read_value()
returns None. This causes get_value() to crash for projects with
missing or incomplete project.conf files.

Catch FileNotFoundError in __get_project_conf() and return None to
restore original behavior. Remove redundant @cache from
__read_project_conf() since __get_project_conf() already provides
caching.

Assisted-by: unsloth/Qwen3.6-35B-A3B-GGUF:IQ4_NL and pi.dev
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-30 15:07:24 +02:00
24d67a5ec0
App: Return cycle path from find_circular_deps()
The __find_circular_deps() and find_circular_deps() methods now
return list[str] instead of bool. On a cycle, the path builds up the
dependency chain in __find_circular_deps_recursive(), and
__find_circular_deps() appends the closing project to complete the
cycle. An empty list means no cycle found.

CmdDep prints the cycle as 'a -> b -> c -> a' instead of a generic
message.

Assisted-by: unsloth/Qwen3.6-35B-A3B-GGUF:IQ4_NL and pi.dev
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-30 15:06:11 +02:00
fdae5ad122
App.get_value(): Remove redundant fd.close()
The fd.close() call inside the `with open(...) as fd:` block is
redundant because the file handle is managed by the context manager.
Remove it.

Assisted-by: unsloth/Qwen3.6-35B-A3B-GGUF:IQ4_NL and pi.dev
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-30 14:44:34 +02:00
09e41df0ed
App.__proj_dir(): Use configurable ___opt_root
Replace the hardcoded /opt in __proj_dir() with a configurable ___opt_root
member, consistent with how __projs_root is configured.

Assisted-by: unsloth/Qwen3.6-35B-A3B-GGUF:IQ4_NL and pi.dev
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-30 14:44:32 +02:00
59a0e2ada8
App.find_dir/__find_dir(): Fix mutable default args
Mutable default arguments (list) cause unexpected shared state
between calls. Use None as default and initialise to [] inside the
function body.

Assisted-by: unsloth/Qwen3.6-35B-A3B-GGUF:IQ4_NL and pi.dev
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-30 14:44:29 +02:00
a61a55c696
App: Remove dead None check in __read_dep_graph()
get_project_refs() always returns a list[str], never None. The `if
deps is None: continue` check in __read_dep_graph() is dead code,
remove it.

Assisted-by: unsloth/Qwen3.6-35B-A3B-GGUF:IQ4_NL and pi.dev
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-30 14:44:26 +02:00
83d6f4b2df
App.__find_circular_deps(): Move __flip_dep_graph() out
The __flip_dep_graph(graph) call sits inside the while loop and
performs redundant graph flipping on every iteration. Hoist it
outside to compute once and reuse the result.

Assisted-by: unsloth/Qwen3.6-35B-A3B-GGUF:IQ4_NL and pi.dev
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-30 14:44:23 +02:00
9fa617cfc8
App.get_section(): Remove method
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 4m24s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 5m5s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 3m59s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 4m12s
CI / Packaging test (push) Successful in 0s
Remove App.get_section() which parses raw file sections by scanning for
section headers and accumulating lines. This method is no longer needed
since ProjectConf now handles all config file parsing.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-30 12:46:51 +02:00
9c8a09d696
App: Use ProjectConf
Refactor App to use the new ProjectConf module for parsing
make/project.conf files.

This commit

  - removes the inline ad-hoc read_value() method and its nested
    helper functions, replacing them with ProjectConf's
    get_str_or_none() API.

  - introduces two cached helper methods (__read_project_conf() and
    __get_project_conf()) to read and cache ProjectConf instances per
    project.

  - updates get_value() to delegate to ProjectConf and moves the
    proj_dir lookup to only run in the version branch where it is
    needed.

  - updates the topdir init to use __read_project_conf() with a
    FileNotFoundError catch for optional config files.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-30 12:46:48 +02:00
Jan Lindemann
2ca66e34ba
test: ProjectConf: Add unit tests
Add unit tests for the new ProjectConf module covering:

  - Basic string and list value retrieval (get_str(), get_str_or_none(),
    get_list(), get_list_or_none())
  - Quoted values with preserved spaces and comment delimiters
  - Inline comments outside quotes
  - Comma-separated lists with quoted commas
  - Line continuations
  - Multiple sections
  - Error cases: empty key, missing key/section, malformed sections,
    unfinished continuations, unclosed quotes
  - Error class is a subclass of ValueError

Also include a Makefile for running tests via `make test`.

Assisted-by: unsloth/Qwen3.6-35B-A3B-GGUF:IQ4_NL and pi.dev
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-30 12:46:42 +02:00
24558f2b58
lib.ProjectConf: Add module
Introduce ProjectConf module to cleanly parse make/project.conf ini-like
configuration files. The new class supports:

  - ini-style sections with header comments
  - Key-value pairs with backslash line continuation
  - Quoted values preserving spaces and comment delimiters (#) inside
  - Inline comments outside of quotes
  - Comma-separated list values with quoted commas
  - Cached section parsing to avoid re-parsing the same section
  - .get_section() to return an entire section unparsed

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-30 12:46:36 +02:00
bb228f1929
App: Replace @lru_cache() with @cache
Replace the @functools.lru_cache(maxsize=None) decorator with
@functools.cache throughout App. functools.cache is a shorthand for
functools.lru_cache(maxsize=None) introduced in Python 3.9 and is
more concise and readable with identical behaviour.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-30 12:46:28 +02:00
3eb2904958
purge-stale-projects.sh: Fix getopt regression
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 4m22s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 4m28s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 4m0s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 4m20s
CI / Packaging test (push) Successful in 0s
The last commit passes "$*" to getopt in purge-stale-projects.sh,
which is nonsense. Fix that.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-30 07:36:15 +02:00
77c746571a
scripts: Fix shellcheck errors
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 4m23s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 4m30s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 4m2s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 4m6s
CI / Packaging test (push) Successful in 0s
Fix shellcheck SC2068 (unquoted array expansions), SC2145 (mixed
string/array arguments), SC2328 (redirection in command
substitution), SC2173 (untrapable signals), and SC2148 (missing
shebang) errors across 14 script files.

Also configure scripts/Makefile with --severity=error so that only
errors (not warnings or notes) cause check failures. To be tightened
by follow-up commits.

Assisted-by: unsloth/Qwen3.6-35B-A3B-GGUF:IQ4_NL and pi.dev
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-29 17:52:24 +02:00
e75e308fd0
Release 1.0.0-244@suse-tumbleweed/x86_64
All checks were successful
CI / Packaging - Kali Linux (push) Successful in 3m51s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 4m3s
CI / Packaging test (push) Successful in 0s
2026-06-25 23:26:19 +00:00
d8a1e634cf
Release 1.0.0-244@kali-rolling/amd64
All checks were successful
CI / Packaging - Kali Linux (push) Successful in 4m17s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 4m12s
CI / Packaging test (push) Successful in 0s
Signed-off-by: janware DevOps <devops@janware.com>
2026-06-25 23:10:04 +00:00
0178486667
Start version: 1.0.0-244
Signed-off-by: janware DevOps <devops@janware.com>
2026-06-25 23:09:03 +00:00
78f57c7547
jw.pkg.lib.Result: Add unit test
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 4m28s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 4m10s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 3m43s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m58s
CI / Packaging test (push) Successful in 0s
Add a unit test for the Result class covering:

  - stdout/stderr property access with various status values
  - None output handling and exception behavior
  - Encoding and strip_output property setters
  - cmd and wd setters
  - summary, summarize, and __repr__ behavior
  - matches_error pattern matching

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-25 20:57:22 +02:00
f4d40efc05
test: Move unit tests below jw/pkg
Move the unit test hierarchy to below test/unit/python/jw/pkg.
Nesting the subdirectories so deeply might be overly careful, but it
may as well be not - maybe in the future installable test packages
are going to be generated and need simple ways to install without
stepping onto each other's toes. If not, it's easier to cut two
directory components out than having to reorganize possibly
incoherent paths grown over multiple packages.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-25 20:57:05 +02:00
c94916d7de
jw.pkg.lib.Uri: Add unit test
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 3m48s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 4m29s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 4m7s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 4m14s
CI / Packaging test (push) Successful in 0s
The Uri class provides URL parsing and manipulation utilities used
throughout jw-pkg. Add a unit test covering URL parsing, credential
handling, path manipulation, and safe string formatting.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-25 19:08:02 +02:00
45f8e8cc89
test + python-tools.sh: Fix toplevel "make all" fallout
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 4m14s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 4m20s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 3m45s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m52s
CI / Packaging test (push) Successful in 0s
After a pipeline change, CI now runs "make all" in a repo's root,
which uncovers two problems:

1. The help integration test only succeeded as long CI didn't run
   "make all" before "make test". That way, the checked out
   repository lacked the generated __init__.py files needed for some
   modular subcommands to be fully loaded, and hence, the test should
   have failed. The entire machinery only worked because the
   subcommands in question are not not essential to building jw-pkg
   itself: "secrets" and "posix". So, this commit adapts the help
   integration test to the new reality.

2. Regarding python-tools.sh: Commit 55060486 satisfies yapf in some
   places of the source code, but in others not anylonger.  So patch
   python-tools.sh's newline handling again.

While not thematically similar, both fixes get baked into one commit
to satisfy the requirement that every single commit needs to pass
"make clean all check test" individually.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-25 18:28:36 +02:00
5506048614
python-tools.sh: Fix missing newline after imports
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 4m42s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 5m11s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 4m12s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 4m15s
CI / Packaging test (push) Successful in 0s
Commit 4e347683 removed a tralining newline after imports. Yapf
doesn't like that, so revert that change.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-25 16:44:35 +02:00
efc5bc1c60
test: Add subdirectory with integration test
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 3m38s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 3m39s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 4m21s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 4m32s
CI / Packaging test (push) Successful in 0s
Add a test/integration subdirectory as a location for integration
tests. The first tests that are added are unproblematic in that they
don't need superuser privileges to run:

  - help: Recursively check if jw-pkg.py's help messages are unchanged

  - packages ls: Check if the bash package exists and contains

      /usr/bin/bash
      /usr/bin/bashbug

Let's see how that fares in CI.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-25 14:40:53 +02:00
03325ab7f5
test-jw-pkg.mk: Add file
Add include file to provide some definitions for a first integration
test suite. It provides the shared make variables, most notably
TEST_CMD_LINE as handy default for running jw-pkg.py.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-25 14:38:22 +02:00
2c7edc9d44
profile|std-targets.mk: Add empty test target
Recursive make fails in scripts/usr-bin when driven through jw-pkg.
Add empty test targets to remedy that.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-25 14:37:02 +02:00
50da3a6f31
rules.mk: Remove debug $(info) for EXE_SH
The debug line "$(info EXE_SH=>$(EXE_SH)<)" was left in during
development. Remove it.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-25 14:36:55 +02:00
a4bc6f2a7f
cmds.CmdPkg: Rename pkg -> packages
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 3m35s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 3m57s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 3m11s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m39s
CI / Packaging test (push) Successful in 0s
Relabel the toplevel command CmdPkg from "pkg" to "packages", because
it rolls off the tounge much more nicely. Keep "pkg" as an alias for
compatibilty.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-25 09:50:19 +02:00
3b0f7727a7
lib.Cmd.AbstractCmd.aliases: Add property
Add a property aliases to AbstractCmd in prepeparation for commands
to bear multiple names / abbreviations / aliases.

The App.add_cmds_to_parser() function uses parse_known_args() to
determine which subcommand was invoked, then conditionally registers
nested subcommands. The lookup dictionary (scs) contains only
canonical names, not aliases, so add them too, otherwise using the
alias instead of the canonical name causes the lookup to fail and
nested subcommands to never be registered.

Fix: Register each alias in scs pointing to the same SubCommand
object, and deduplicate with id(sc) when iterating in all=True mode
to avoid infinite recursion on help output.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-25 09:50:19 +02:00
4e347683ef
python-tools.sh: Fix __all__ format violation
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 3m9s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 3m20s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 3m9s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m20s
CI / Packaging test (push) Successful in 0s
Make python-tools.sh generate empty __all__ as [] on one line instead
of multi-line format, and remove trailing blank line.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-25 09:50:15 +02:00
9d78eac696
Release 1.0.0-243@suse-tumbleweed/x86_64
All checks were successful
CI / Packaging - Kali Linux (push) Successful in 3m16s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m49s
CI / Packaging test (push) Successful in 0s
2026-06-24 23:33:33 +00:00
f14b7be1f2
Release 1.0.0-243@kali-rolling/amd64
All checks were successful
CI / Packaging - Kali Linux (push) Successful in 3m55s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m17s
CI / Packaging test (push) Successful in 0s
Signed-off-by: janware DevOps <devops@janware.com>
2026-06-24 23:10:31 +00:00
fb0a59c607
Start version: 1.0.0-243
Signed-off-by: janware DevOps <devops@janware.com>
2026-06-24 23:09:33 +00:00
3aecb6c685
rules.mk: Add targets to check shell syntax
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 3m3s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 3m33s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 3m9s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m23s
CI / Packaging test (push) Successful in 0s
Add the target sh-syntax-check, which triggers bash syntax linting
with shellcheck This commit stops short of making target all depend
on it, because the fallout is impressive.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-24 21:52:35 +02:00