feat(infra): rename packaging container to KNELCloudron-packaging and add TODO tracking

- Rename packaging container from tsys-cloudron-packaging to KNELCloudron-packaging
- Update image reference to git.knownelement.com/knel/knelcloudron-packaging:latest
- Add TODO.md with active tasks and backlog items
- Add todo-generate.sh and todo-update.sh helper scripts
- Update PackagingForCloudronWorkspace/README.md with workspace details
This commit is contained in:
2025-10-17 09:41:27 -05:00
parent 52439d8f37
commit 8d270bb289
7 changed files with 76 additions and 9 deletions

View File

@@ -69,14 +69,14 @@ The workspace contains ~56 upstream application repositories including:
### Using the Workspace ### Using the Workspace
1. **Source Access**: All upstream sources are available in `Docker/[appname]/` 1. **Source Access**: All upstream sources are available in `Docker/[appname]/`
2. **Development**: Use the `tsys-cloudron-packaging` container for all work 2. **Development**: Use the `KNELCloudron-packaging` container for all work
3. **Package Creation**: Create packages in separate temporary directories 3. **Package Creation**: Create packages in separate temporary directories
4. **Git Exclusion**: All upstream sources are gitignored to keep repository clean 4. **Git Exclusion**: All upstream sources are gitignored to keep repository clean
### Container Development ### Container Development
```bash ```bash
# Access development container # Access development container
docker exec -it tsys-cloudron-packaging bash docker exec -it KNELCloudron-packaging bash
# Navigate to workspace # Navigate to workspace
cd /workspace cd /workspace

11
TODO.md Normal file
View File

@@ -0,0 +1,11 @@
# TODO
## Active
- [x] Confirm packaging container/image rename (`scripts/packaging-up.sh`, `scripts/packaging-enter.sh`, `scripts/packaging-exec.sh`) by rebuilding under the `KNELCloudron-packaging` name and validating workflow scripts. (2025-10-17)
- [ ] Push updated base packaging image `git.knownelement.com/knel/knelcloudron-packaging:latest` to the registry once tested inside the container.
- [ ] Publish the curated shortlist of target FLOSS apps absent from the Cloudron store and agree on a packaging order.
- [ ] Add explicit documentation about the `KNELCloudron-` Docker artifact prefix in `README.md` and packaging templates.
## Backlog
- [ ] Explore automation to scaffold `CloudronManifest.json` files from upstream metadata within the packaging container.
- [ ] Prototype a containerized smoke-test harness for validating packaged apps via `scripts/packaging-exec.sh`.

View File

@@ -1,10 +1,9 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -euo pipefail set -euo pipefail
NAME=${PACKAGING_CONTAINER_NAME:-tsys-cloudron-packaging} NAME=${PACKAGING_CONTAINER_NAME:-KNELCloudron-packaging}
if ! docker ps --format '{{.Names}}' | grep -qx "$NAME"; then if ! docker ps --format '{{.Names}}' | grep -qx "$NAME"; then
scripts/packaging-up.sh >/dev/null scripts/packaging-up.sh >/dev/null
fi fi
exec docker exec -it "$NAME" bash exec docker exec -it "$NAME" bash

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -euo pipefail set -euo pipefail
NAME=${PACKAGING_CONTAINER_NAME:-tsys-cloudron-packaging} NAME=${PACKAGING_CONTAINER_NAME:-KNELCloudron-packaging}
if [[ $# -lt 1 ]]; then if [[ $# -lt 1 ]]; then
echo "Usage: scripts/packaging-exec.sh <command...>" >&2 echo "Usage: scripts/packaging-exec.sh <command...>" >&2
@@ -12,4 +12,3 @@ if ! docker ps --format '{{.Names}}' | grep -qx "$NAME"; then
fi fi
exec docker exec -it "$NAME" sh -lc "$*" exec docker exec -it "$NAME" sh -lc "$*"

View File

@@ -1,8 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -euo pipefail set -euo pipefail
NAME=${PACKAGING_CONTAINER_NAME:-tsys-cloudron-packaging} NAME=${PACKAGING_CONTAINER_NAME:-KNELCloudron-packaging}
IMAGE=${PACKAGING_IMAGE:-knel/packaging:latest} IMAGE=${PACKAGING_IMAGE:-git.knownelement.com/knel/knelcloudron-packaging:latest}
DOCKERFILE=${PACKAGING_DOCKERFILE:-docker/packaging/Dockerfile} DOCKERFILE=${PACKAGING_DOCKERFILE:-docker/packaging/Dockerfile}
if ! docker image inspect "$IMAGE" >/dev/null 2>&1; then if ! docker image inspect "$IMAGE" >/dev/null 2>&1; then
@@ -27,4 +27,3 @@ else
fi fi
echo "Packaging container ready: $NAME (image: $IMAGE)" echo "Packaging container ready: $NAME (image: $IMAGE)"

53
scripts/todo-generate.sh Executable file
View File

@@ -0,0 +1,53 @@
#!/usr/bin/env bash
set -euo pipefail
CLONE_SCRIPT="PackagingForCloudronWorkspace/UpstreamVendor-Clone.sh"
EXTRA_REPOS_FILE="PackagingForCloudronWorkspace/REPOS.txt"
if [[ ! -f "$CLONE_SCRIPT" ]]; then
echo "Missing $CLONE_SCRIPT" >&2
exit 1
fi
repo_lines=$(awk '/^https?:\/\//{print $0}' "$CLONE_SCRIPT" | sed 's/#.*$//' | sed -n '/^https:\/\//p')
if [[ -f "$EXTRA_REPOS_FILE" ]]; then
extra=$(sed -e 's/#.*$//' -e '/^\s*$/d' "$EXTRA_REPOS_FILE" | sed -n '/^https:\/\//p')
else
extra=""
fi
all_urls=$(printf "%s\n%s\n" "$repo_lines" "$extra" | sed 's/.git$//' | sort -u)
readarray -t urls <<< "$all_urls"
now=$(date -Is)
cat <<EOF
# TODO: Cloudron Packaging Backlog
Generated: $now
Legend:
- [ ] todo
- [x] scaffolded in repo (not necessarily validated)
Instructions:
- Regenerate this file: `scripts/todo-update.sh`
- All package work happens in containers (see README and AGENTS.md)
## Backlog
EOF
for url in "${urls[@]}"; do
org_repo=${url#*://*/}
org=$(echo "$org_repo" | awk -F/ '{print $1}')
name=$(echo "$org_repo" | awk -F/ '{print $2}')
# Guess CloudronPackages directory from repo name (TitleCase, strip -/_)
guess_dir=$(echo "$name" | sed -E 's/[-_]+/ /g' | awk '{for(i=1;i<=NF;i++){ $i=toupper(substr($i,1,1)) substr($i,2)}; gsub(/ /,""); print}')
status="[ ]"
if [[ -f "CloudronPackages/${guess_dir}/CloudronManifest.json" ]]; then
status="[x]"
fi
printf "- %s %s — %s/%s\n" "$status" "$name" "$org" "$name"
done

6
scripts/todo-update.sh Executable file
View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -euo pipefail
scripts/todo-generate.sh > TODO.md
echo "Updated TODO.md"