diff --git a/distro/debian/dms/_service b/distro/debian/dms/_service
index da4c4ff9..0fe92cd4 100644
--- a/distro/debian/dms/_service
+++ b/distro/debian/dms/_service
@@ -3,19 +3,19 @@
https
github.com
- /AvengeMedia/DankMaterialShell/archive/refs/tags/v1.0.3.tar.gz
+ /AvengeMedia/DankMaterialShell/archive/refs/tags/v1.2.3.tar.gz
dms-source.tar.gz
https
github.com
- /AvengeMedia/DankMaterialShell/releases/download/v1.0.3/dms-distropkg-amd64.gz
+ /AvengeMedia/DankMaterialShell/releases/download/v1.2.3/dms-distropkg-amd64.gz
https
github.com
- /AvengeMedia/DankMaterialShell/releases/download/v1.0.3/dms-distropkg-arm64.gz
+ /AvengeMedia/DankMaterialShell/releases/download/v1.2.3/dms-distropkg-arm64.gz
diff --git a/distro/debian/dms/debian/changelog b/distro/debian/dms/debian/changelog
index 3f4d4c87..ee8c089b 100644
--- a/distro/debian/dms/debian/changelog
+++ b/distro/debian/dms/debian/changelog
@@ -1,4 +1,4 @@
-dms (1.0.3db1) unstable; urgency=medium
+dms (1.2.3db1) stable; urgency=medium
* Update to v1.0.3 stable release
diff --git a/distro/opensuse/_service b/distro/opensuse/_service
deleted file mode 100644
index fbafa613..00000000
--- a/distro/opensuse/_service
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
- git
- https://github.com/AvengeMedia/DankMaterialShell.git
- master
- dms-git-source
-
-
- *.tar
- gz
-
-
-
diff --git a/distro/opensuse/dms.spec b/distro/opensuse/dms.spec
index e8d8da8e..5edbd330 100644
--- a/distro/opensuse/dms.spec
+++ b/distro/opensuse/dms.spec
@@ -3,7 +3,7 @@
%global debug_package %{nil}
Name: dms
-Version: 1.0.3
+Version: 1.2.3
Release: 1%{?dist}
Summary: DankMaterialShell - Material 3 inspired shell for Wayland compositors
diff --git a/distro/scripts/obs-upload.sh b/distro/scripts/obs-upload.sh
index 28ad329e..006debe0 100755
--- a/distro/scripts/obs-upload.sh
+++ b/distro/scripts/obs-upload.sh
@@ -147,6 +147,48 @@ check_obs_version_exists() {
return 1
}
+update_debian_dms_service() {
+ local service_path="$1"
+ if [[ -z "$service_path" || ! -f "$service_path" ]]; then
+ return 0
+ fi
+ if [[ -z "$CHANGELOG_VERSION" ]]; then
+ return 0
+ fi
+
+ # Extract base version (e.g., 1.2.3 from 1.2.3db3 or 1.2.3-1)
+ local base_version
+ base_version=$(echo "$CHANGELOG_VERSION" | sed -E 's/^([0-9]+(\.[0-9]+)*).*/\1/')
+ if [[ -z "$base_version" ]]; then
+ return 0
+ fi
+
+ sed -i "s|/archive/refs/tags/v[0-9][^\"]*\.tar\.gz|/archive/refs/tags/v${base_version}.tar.gz|" "$service_path"
+ sed -i "s|/releases/download/v[0-9][^\"]*/dms-distropkg-amd64\.gz|/releases/download/v${base_version}/dms-distropkg-amd64.gz|" "$service_path"
+ sed -i "s|/releases/download/v[0-9][^\"]*/dms-distropkg-arm64\.gz|/releases/download/v${base_version}/dms-distropkg-arm64.gz|" "$service_path"
+}
+
+update_opensuse_git_spec() {
+ local spec_path="$1"
+ if [[ -z "$spec_path" || ! -f "$spec_path" ]]; then
+ return 0
+ fi
+ if [[ -n "$CHANGELOG_VERSION" ]]; then
+ echo " Updating OpenSUSE spec to version $CHANGELOG_VERSION"
+ sed -i "s/^Version:.*/Version: $CHANGELOG_VERSION/" "$spec_path"
+
+ # Update changelog in spec file
+ DATE_STR=$(date "+%a %b %d %Y")
+ LOCAL_SPEC_HEAD=$(sed -n '1,/%changelog/{ /%changelog/d; p }' "$spec_path")
+ {
+ echo "$LOCAL_SPEC_HEAD"
+ echo "%changelog"
+ echo "* $DATE_STR Avenge Media - ${CHANGELOG_VERSION}-1"
+ echo "- Git snapshot (commit $COMMIT_COUNT: $COMMIT_HASH)"
+ } > "$spec_path"
+ fi
+}
+
# Handle "all" option
if [[ "$PACKAGE" == "all" ]]; then
echo "==> Uploading all packages"
@@ -263,7 +305,10 @@ if [[ -d "distro/debian/$PACKAGE/debian" ]]; then
if [[ "$PACKAGE" == *"-git" ]]; then
COMMIT_HASH=$(git rev-parse --short=8 HEAD)
COMMIT_COUNT=$(git rev-list --count HEAD)
- BASE_VERSION=$(grep -oP '^Version:\s+\K[0-9.]+' distro/opensuse/dms.spec | head -1 || echo "1.0.2")
+ BASE_VERSION=$(git describe --tags --abbrev=0 2>/dev/null | sed 's/^v//' || true)
+ if [[ -z "$BASE_VERSION" ]]; then
+ BASE_VERSION=$(grep -oP '^Version:\s+\K[0-9.]+' distro/opensuse/dms.spec | head -1 || echo "1.0.2")
+ fi
CHANGELOG_VERSION="${BASE_VERSION}+git${COMMIT_COUNT}.${COMMIT_HASH}"
echo " - Generated git snapshot version: $CHANGELOG_VERSION"
else
@@ -284,6 +329,11 @@ if [[ -d "distro/debian/$PACKAGE/debian" ]]; then
echo " - Applied rebuild suffix: $CHANGELOG_VERSION"
fi
+ # Keep Debian dms _service in sync with changelog version
+ if [[ "$PACKAGE" == "dms" ]] && [[ -f "distro/debian/$PACKAGE/_service" ]]; then
+ update_debian_dms_service "distro/debian/$PACKAGE/_service"
+ fi
+
# Check if this version already exists in OBS
if [[ -n "$CHANGELOG_VERSION" ]]; then
if [[ -z "$REBUILD_RELEASE" ]]; then
@@ -327,6 +377,10 @@ if [[ "$UPLOAD_OPENSUSE" == true ]] && [[ -f "distro/opensuse/$PACKAGE.spec" ]];
echo " - Copying $PACKAGE.spec for OpenSUSE"
cp "distro/opensuse/$PACKAGE.spec" "$WORK_DIR/"
+ if [[ "$PACKAGE" == *"-git" ]] && [[ -n "$CHANGELOG_VERSION" ]]; then
+ update_opensuse_git_spec "$WORK_DIR/$PACKAGE.spec"
+ fi
+
if [[ -f "$WORK_DIR/.osc/$PACKAGE.spec" ]]; then
NEW_VERSION=$(grep "^Version:" "$WORK_DIR/$PACKAGE.spec" | awk '{print $2}' | head -1)
NEW_RELEASE=$(grep "^Release:" "$WORK_DIR/$PACKAGE.spec" | sed 's/^Release:[[:space:]]*//' | sed 's/%{?dist}//' | head -1)
@@ -607,11 +661,7 @@ if [[ "$UPLOAD_DEBIAN" == true ]] && [[ -d "distro/debian/$PACKAGE/debian" ]]; t
case "$PACKAGE" in
dms)
- if [[ -n "$CHANGELOG_VERSION" ]]; then
- DMS_VERSION="$CHANGELOG_VERSION"
- else
- DMS_VERSION=$(grep "^Version:" "$REPO_ROOT/distro/opensuse/$PACKAGE.spec" | sed 's/^Version:[[:space:]]*//' | head -1)
- fi
+ DMS_VERSION=$(grep "^Version:" "$REPO_ROOT/distro/opensuse/$PACKAGE.spec" | sed 's/^Version:[[:space:]]*//' | head -1)
EXPECTED_DIR="DankMaterialShell-${DMS_VERSION}"
echo " Creating $SOURCE0 (directory: $EXPECTED_DIR)"
cp -r "$SOURCE_DIR" "$EXPECTED_DIR"
@@ -662,18 +712,7 @@ if [[ "$UPLOAD_DEBIAN" == true ]] && [[ -d "distro/debian/$PACKAGE/debian" ]]; t
# Copy and update OpenSUSE spec file with the correct version (for -git packages)
cp "distro/opensuse/$PACKAGE.spec" "$WORK_DIR/"
if [[ "$PACKAGE" == *"-git" ]] && [[ -n "$CHANGELOG_VERSION" ]]; then
- echo " Updating OpenSUSE spec to version $CHANGELOG_VERSION"
- sed -i "s/^Version:.*/Version: $CHANGELOG_VERSION/" "$WORK_DIR/$PACKAGE.spec"
-
- # Update changelog in spec file
- DATE_STR=$(date "+%a %b %d %Y")
- LOCAL_SPEC_HEAD=$(sed -n '1,/%changelog/{ /%changelog/d; p }' "$WORK_DIR/$PACKAGE.spec")
- {
- echo "$LOCAL_SPEC_HEAD"
- echo "%changelog"
- echo "* $DATE_STR Avenge Media - ${CHANGELOG_VERSION}-1"
- echo "- Git snapshot (commit $COMMIT_COUNT: $COMMIT_HASH)"
- } > "$WORK_DIR/$PACKAGE.spec"
+ update_opensuse_git_spec "$WORK_DIR/$PACKAGE.spec"
fi
fi
@@ -853,6 +892,15 @@ if [[ -n "$OBS_FILES" ]]; then
((DELETED_COUNT++)) || true
fi
done
+
+ # Remove service-generated download_url artifacts so new ones are created
+ for old_file in $(echo "$OBS_FILES" | grep -oP '(?<=name=")_service:download_url:[^"]+(?=")' || true); do
+ echo " - Deleting old service artifact: $old_file"
+ if osc api -X DELETE "/source/$OBS_PROJECT/$PACKAGE/$old_file" 2>/dev/null; then
+ ((DELETED_COUNT++)) || true
+ fi
+ done
+
if [[ $DELETED_COUNT -gt 0 ]]; then
echo " ✓ Deleted $DELETED_COUNT old tarball(s) from server"
else
@@ -885,6 +933,10 @@ find . -maxdepth 1 -type f \( -name "*.dsc" -o -name "*.spec" \) -exec grep -l "
rm -f "$conflicted_file"
done
+if [[ "$UPLOAD_DEBIAN" == false ]]; then
+ rm -f ./*.dsc ./*.dsc.* ./*.spec.* ./*.mine ./*.new ./*.orig _service 2>/dev/null || true
+fi
+
# Ensure we're STILL in WORK_DIR before running osc commands
cd "$WORK_DIR" || {
echo "ERROR: Cannot cd to WORK_DIR: $WORK_DIR"
diff --git a/quickshell/CLAUDE.md b/quickshell/AGENTS.md
similarity index 99%
rename from quickshell/CLAUDE.md
rename to quickshell/AGENTS.md
index ffcb33ca..732622ea 100644
--- a/quickshell/CLAUDE.md
+++ b/quickshell/AGENTS.md
@@ -1,6 +1,6 @@
-# CLAUDE.md
+# AGENTS.md
-This file provides guidance to AI coding assistants (Claude Code, Gemini, ChatGPT, etc.) when working with code in this repository.
+This file provides guidance to AI coding assistants.
## AI Guidance