This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to branch issue/SLING-8307-prep
in repository https://gitbox.apache.org/repos/asf/sling-ide-tooling.git


The following commit(s) were added to refs/heads/issue/SLING-8307-prep by this 
push:
     new 9abefe72 SLING-8307 - Update the Eclipse tooling release process after 
the restructuring and code signing changes
9abefe72 is described below

commit 9abefe722a1c6e61aa3e1b35b17b6a3e6a261b65
Author: Robert Munteanu <[email protected]>
AuthorDate: Fri Sep 19 16:08:49 2025 +0200

    SLING-8307 - Update the Eclipse tooling release process after the 
restructuring and code signing changes
    
    Add a Makefile that automates the release process.
---
 .gitignore |  2 ++
 Makefile   | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 85 insertions(+)

diff --git a/.gitignore b/.gitignore
index d139621c..5a771917 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,3 +20,5 @@ jcr.log
 atlassian-ide-plugin.xml
 derby.log
 bin
+
+/dist-staging/
diff --git a/Makefile b/Makefile
new file mode 100644
index 00000000..e07d6bda
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,83 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+ifndef RELEASE_VERSION
+$(error RELEASE_VERSION is not set)
+endif
+
+ifndef NEXT_VERSION
+$(error NEXT_VERSION is not set)
+endif
+
+SVN_DIST_ROOT=https://dist.apache.org/repos/dist/dev/sling/ide-tooling
+M2_REPO=$(HOME)/.m2/repository
+P2UPDATE_PATH=$(M2_REPO)/org/apache/sling/ide/org.apache.sling.ide.p2update/$(RELEASE_VERSION)
+SOURCE_BUNDLE_PATH=$(M2_REPO)/org/apache/sling/ide/org.apache.sling.ide.source-bundle/$(RELEASE_VERSION)
+P2UPDATE_FILE=org.apache.sling.ide.p2update-$(RELEASE_VERSION).zip
+SOURCE_BUNDLE_FILE=org.apache.sling.ide.source-bundle-$(RELEASE_VERSION).zip
+STAGING_DIR=dist-staging/$(RELEASE_VERSION)
+
+release: check-gpg release-shared release-eclipse prepare-dist-dir 
upload-to-dist-dev
+.PHONY=release
+
+# ensure that GPG signing will work in batch mode
+check-gpg:
+       gpg --sign README.md
+       rm -f README.md.gpg
+.PHONY=check-gpg
+
+release-shared:
+       cd shared && mvn --batch-mode release:prepare release:perform 
-DreleaseVersion=$(RELEASE_VERSION) -DdevelopmentVersion=$(NEXT_VERSION) 
-Dtag=sling-ide-tooling-shared-$(RELEASE_VERSION)
+
+.PHONY=release-shared
+
+release-eclipse:
+       cd eclipse && mvn --batch-mode versions:set-property 
-DgenerateBackupPoms=false -Dproperty=sling-ide.shared-deps.version 
-DnewVersion=$(RELEASE_VERSION) && git add pom.xml && git commit -m 
'chore(deps): set shared-deps version to $(RELEASE_VERSION) for release'
+       cd eclipse && mvn --batch-mode release:prepare release:perform 
-DreleaseVersion=$(RELEASE_VERSION) -DdevelopmentVersion=$(NEXT_VERSION) 
-Dtag=sling-ide-tooling-eclipse-$(RELEASE_VERSION)
+       cd eclipse && mvn --batch-mode versions:set-property 
-DgenerateBackupPoms=false -Dproperty=sling-ide.shared-deps.version 
-DnewVersion=$(NEXT_VERSION) && git add pom.xml && git commit -m 'chore(deps): 
set shared-deps version to $(NEXT_VERSION) after the release'
+
+.PHONY=release-eclipse
+
+prepare-dist-dir:
+       rm -rf $(STAGING_DIR)
+       mkdir -p $(STAGING_DIR)
+       cp $(P2UPDATE_PATH)/$(P2UPDATE_FILE) $(STAGING_DIR)/
+       cp $(SOURCE_BUNDLE_PATH)/$(SOURCE_BUNDLE_FILE) $(STAGING_DIR)/
+       cp $(P2UPDATE_PATH)/$(P2UPDATE_FILE).asc $(STAGING_DIR)/
+       cp $(SOURCE_BUNDLE_PATH)/$(SOURCE_BUNDLE_FILE).asc $(STAGING_DIR)/
+       cd $(STAGING_DIR) && for f in $(P2UPDATE_FILE) $(SOURCE_BUNDLE_FILE); 
do \
+               openssl dgst -sha512 -r $$f | awk '{print $$1"  "$$2}' > 
$$f.sha512; \
+               openssl dgst -sha1 -r $$f | awk '{print $$1"  "$$2}' > 
$$f.sha1; \
+               openssl dgst -md5 -r $$f | awk '{print $$1"  "$$2}' > $$f.md5; \
+       done
+
+.PHONE=prepare-dist-dir
+
+upload-to-dist-dev:
+       @if svn ls $(SVN_DIST_ROOT)/$(RELEASE_VERSION) >/dev/null 2>&1; then \
+               echo "ERROR: Release version $(RELEASE_VERSION) already exists 
at $(SVN_DIST_ROOT)/$(RELEASE_VERSION)"; exit 1; \
+       else \
+               echo "SVN destination does not exist yet, proceeding with 
import"; \
+       fi
+       svn import -m "Uploading Sling IDE Tooling $(RELEASE_VERSION) release 
artifacts" $(STAGING_DIR) $(SVN_DIST_ROOT)/$(RELEASE_VERSION)
+
+.PHONY=upload-to-dist-dev
+
+clean-dist-staging:
+       rm -rf dist-staging
+
+.PHONY=clean-dist-staging

Reply via email to