mirror of
https://github.com/Alfresco/alfresco-sdk.git
synced 2026-09-16 18:13:23 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c74abe93e3 | ||
|
|
47971b0ad4 | ||
|
|
8fe7e1ecbc | ||
|
|
2496408ad4 | ||
|
|
573e317e01 | ||
|
|
4737496272 | ||
|
|
7d69fb289f | ||
|
|
a1827ed550 |
+35
-11
@@ -25,7 +25,7 @@ jobs:
|
||||
pre_commit:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/pre-commit@v8.16.0
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/pre-commit@v12.11.0
|
||||
|
||||
veracode_sca:
|
||||
name: "Veracode - Source Clear Scan (SCA)"
|
||||
@@ -35,11 +35,11 @@ jobs:
|
||||
github.event_name == 'pull_request'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.16.0
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.16.0
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v12.11.0
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v12.11.0
|
||||
- name: "Clean-up SNAPSHOT artifacts"
|
||||
run: find "${HOME}/.m2/repository/" -type d -name "*-SNAPSHOT*" | xargs -r -l rm -rf
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/veracode@v8.16.0
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/veracode@v12.11.0
|
||||
continue-on-error: true
|
||||
with:
|
||||
srcclr-api-token: ${{ secrets.SRCCLR_API_TOKEN }}
|
||||
@@ -54,7 +54,7 @@ jobs:
|
||||
-B -q -e -fae -V -DinstallAtEnd=true -U
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.16.0
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v12.11.0
|
||||
- name: "Build"
|
||||
run: mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V
|
||||
- name: "Verify"
|
||||
@@ -150,8 +150,8 @@ jobs:
|
||||
suite: -Pcommunity-71-tests
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.16.0
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.16.0
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v12.11.0
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v12.11.0
|
||||
with:
|
||||
java-version: ${{ matrix.java-version }}
|
||||
- name: "Login to Docker Hub"
|
||||
@@ -168,16 +168,40 @@ jobs:
|
||||
- name: "Build"
|
||||
run: mvn clean install -B ${{ matrix.suite }}
|
||||
|
||||
publish:
|
||||
name: "Publish artifacts"
|
||||
check_version:
|
||||
name: "Check version"
|
||||
runs-on: ubuntu-latest
|
||||
needs: [tests]
|
||||
if: >
|
||||
contains(github.event.head_commit.message, '[publish]')
|
||||
outputs:
|
||||
is_ga: ${{ steps.publish_version.outputs.is_ga }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v8.16.0
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v8.16.0
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v12.11.0
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v12.11.0
|
||||
- name: "Check version"
|
||||
id: publish_version
|
||||
run: |
|
||||
VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
|
||||
if [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
||||
echo "is_ga=true" >> $GITHUB_OUTPUT
|
||||
echo "GA version detected: $VERSION"
|
||||
else
|
||||
echo "is_ga=false" >> $GITHUB_OUTPUT
|
||||
echo "Non GA version detected: $VERSION"
|
||||
fi
|
||||
|
||||
publish:
|
||||
name: "Publish artifacts"
|
||||
runs-on: ubuntu-latest
|
||||
needs: [tests, check_version]
|
||||
if: >
|
||||
contains(github.event.head_commit.message, '[publish]') && needs.check_version.outputs.is_ga == 'true'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v12.11.0
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v12.11.0
|
||||
- name: "Build"
|
||||
run: mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V
|
||||
- name: Set up Maven Central credentials
|
||||
|
||||
@@ -14,6 +14,7 @@ This project is released under the [Apache License, Version 2.0](http://www.apac
|
||||
If you are an Enterprise customer check the [Support](#alfresco-enterprise-customers-and-partners-support) section.
|
||||
|
||||
## News
|
||||
- 2025-07: Alfresco SDK 4.12.0 released
|
||||
- 2025-03: Alfresco SDK 4.11.0 released
|
||||
- 2024-11: Alfresco SDK 4.10.0 released
|
||||
- 2024-08: Alfresco SDK 4.9.0 released
|
||||
@@ -81,7 +82,7 @@ the `alfresco.log` file has also been moved to a more appropriate location (Tomc
|
||||
|
||||
In Q4 2020, Alfresco Platform has undergone a major structural refactoring.
|
||||
|
||||
Depending on the Platform version desired, you might need to use SDK 4.1, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9 or SDK 4.10 instead of SDK 4.11.0.
|
||||
Depending on the Platform version desired, you might need to use SDK 4.1, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 4.10 or SDK 4.11 instead of SDK 4.12.0.
|
||||
|
||||
- For Enterprise and Community versions of 7.x, SDK 4.4 or higher must be used
|
||||
- For Enterprise versions of 6.0.x, 6.1.x, 6.2.x newer than November 2020, SDK 4.3 must be used
|
||||
@@ -98,26 +99,27 @@ It's also important to remember that:
|
||||
To get started with **Alfresco SDK 4.9.x** (latest) visit the [Alfresco Documentation](docs/README.md).
|
||||
|
||||
#### Documentation about Previous Versions
|
||||
| SDK Version | Alfresco Enterprise Version | Alfresco Community Version | Documentation |
|
||||
|---------------|:------------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| SDK 4.11.0 | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.1.x/ 23.2.x / 23.3.x / 23.4.x / 25.1.x | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.2.x / 23.3.x / 23.4.x / 25.1.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.10 | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.1.x/ 23.2.x / 23.3.x / 23.4.x | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.2.x / 23.3.x / 23.4.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.9 | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.1.x/ 23.2.x / 23.3.x | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.2.x / 23.3.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.8 | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.1.x/ 23.2.x | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.2.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.7 | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.1.x | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.1.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.6 | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.5 | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.4 | Alfresco 7.0.x / 7.1.x / 7.2.x | Alfresco 7.0.x / 7.1.x / 7.2.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.3 | Alfresco 6.0.x / 6.1.x / 6.2.x / 7.0.x / 7.1.x | Alfresco 7.0.x / 7.1.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.2 | Alfresco 6.0.x / 6.1.x / 6.2.x / 7.0.x | Alfresco 7.0.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.1 | Alfresco 6.0.x / 6.1.x / 6.2.x | Alfresco 6.0.x / 6.1.x / 6.2.x | https://github.com/Alfresco/alfresco-sdk/blob/sdk-4.1/docs/README.md |
|
||||
| SDK 4.0 | Alfresco 6.0.x / 6.1.x | Alfresco 6.0.x / 6.1.x | https://github.com/Alfresco/alfresco-sdk/blob/sdk-4.0/docs/README.md |
|
||||
| SDK 3.1 | Alfresco 5.2.x | Alfresco 5.2.x | http://docs.alfresco.com/5.2/concepts/sdk-intro.html |
|
||||
| SDK 3.0 | Alfresco 5.2.x | Alfresco 5.2.x | http://docs.alfresco.com/5.2/concepts/sdk-intro.html |
|
||||
| SDK 2.2 | Alfresco 5.1.x | Alfresco 5.1.x | https://docs.alfresco.com/5.1/concepts/alfresco-sdk-intro.html |
|
||||
| SDK 2.1 | Alfresco 5.0.1 | Alfresco 5.0.d | https://docs.alfresco.com/sdk2.1/concepts/alfresco-sdk-intro.html |
|
||||
| SDK 2.0 | Alfresco 5.0.0 | Alfresco 5.0.c | https://docs.alfresco.com/sdk2.0/concepts/alfresco-sdk-intro.html |
|
||||
| SDK 1.1.1 | Alfresco 4.2.x | Alfresco 4.2.x | https://docs.alfresco.com/4.2/concepts/dev-extensions-maven-sdk-intro.html |
|
||||
| SDK Version | Alfresco Enterprise Version | Alfresco Community Version | Documentation |
|
||||
|-------------|:---------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| SDK 4.12.0 | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.1.x/ 23.2.x / 23.3.x / 23.4.x / 25.1.x / 25.2.x | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.1.x/ 23.2.x / 23.3.x / 23.4.x / 25.1.x / 25.2.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.11.0 | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.1.x/ 23.2.x / 23.3.x / 23.4.x / 25.1.x | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.2.x / 23.3.x / 23.4.x / 25.1.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.10 | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.1.x/ 23.2.x / 23.3.x / 23.4.x | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.2.x / 23.3.x / 23.4.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.9 | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.1.x/ 23.2.x / 23.3.x | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.2.x / 23.3.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.8 | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.1.x/ 23.2.x | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.2.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.7 | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.1.x | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.1.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.6 | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.5 | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.4 | Alfresco 7.0.x / 7.1.x / 7.2.x | Alfresco 7.0.x / 7.1.x / 7.2.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.3 | Alfresco 6.0.x / 6.1.x / 6.2.x / 7.0.x / 7.1.x | Alfresco 7.0.x / 7.1.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.2 | Alfresco 6.0.x / 6.1.x / 6.2.x / 7.0.x | Alfresco 7.0.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.1 | Alfresco 6.0.x / 6.1.x / 6.2.x | Alfresco 6.0.x / 6.1.x / 6.2.x | https://github.com/Alfresco/alfresco-sdk/blob/sdk-4.1/docs/README.md |
|
||||
| SDK 4.0 | Alfresco 6.0.x / 6.1.x | Alfresco 6.0.x / 6.1.x | https://github.com/Alfresco/alfresco-sdk/blob/sdk-4.0/docs/README.md |
|
||||
| SDK 3.1 | Alfresco 5.2.x | Alfresco 5.2.x | http://docs.alfresco.com/5.2/concepts/sdk-intro.html |
|
||||
| SDK 3.0 | Alfresco 5.2.x | Alfresco 5.2.x | http://docs.alfresco.com/5.2/concepts/sdk-intro.html |
|
||||
| SDK 2.2 | Alfresco 5.1.x | Alfresco 5.1.x | https://docs.alfresco.com/5.1/concepts/alfresco-sdk-intro.html |
|
||||
| SDK 2.1 | Alfresco 5.0.1 | Alfresco 5.0.d | https://docs.alfresco.com/sdk2.1/concepts/alfresco-sdk-intro.html |
|
||||
| SDK 2.0 | Alfresco 5.0.0 | Alfresco 5.0.c | https://docs.alfresco.com/sdk2.0/concepts/alfresco-sdk-intro.html |
|
||||
| SDK 1.1.1 | Alfresco 4.2.x | Alfresco 4.2.x | https://docs.alfresco.com/4.2/concepts/dev-extensions-maven-sdk-intro.html |
|
||||
|
||||
## Reporting Issues and Community Support
|
||||
Report issues (and contribute!) [here](https://github.com/Alfresco/alfresco-sdk/issues?milestone=1&state=open) or join us on the [IRC Channel](http://chat.alfresco.com/).
|
||||
@@ -165,15 +167,16 @@ To test new unreleased (unsupported) features, you can use the following snippet
|
||||
## For Developers that want to contribute to the SDK
|
||||
See the [Developers Wiki page](https://github.com/Alfresco/alfresco-sdk/wiki/Developer-Wiki).
|
||||
|
||||
## Publishing the release on Maven Central
|
||||
- Manually change the version from SNAPSHOT to final (eg. when releasing SDK 4.11.0, replacing all the occurrences of 4.11.0-SNAPSHOT with 4.11.0)
|
||||
## Creating a Release
|
||||
|
||||
- Commit and push changes to GitHub with the commit message [publish], then it will automatically publish your artifacts to maven central
|
||||
For detailed instructions on how to create a release of the Alfresco SDK, please see the [RELEASE.md](RELEASE.md) documentation.
|
||||
|
||||
At this point, we need to manually proceed with the remaining steps:
|
||||
### Quick Reference
|
||||
|
||||
1- Manually create a release tag on GitHub
|
||||
The release process involves:
|
||||
1. Update version from SNAPSHOT to final (e.g., `4.12.0-SNAPSHOT` → `4.12.0`)
|
||||
2. Commit with message `[publish]` to trigger automated publishing to Maven Central
|
||||
3. Create a GitHub release tag (e.g., `sdk-4.12.0`) with release notes
|
||||
4. Update version to next SNAPSHOT (e.g., `4.12.0` → `4.13.0-SNAPSHOT`)
|
||||
|
||||
2- Manually change the version from final to next SNAPSHOT (eg. replacing all the occurrences of 4.11.0 with 4.12.0-SNAPSHOT (in pom.xml, not in READMEs - if not needed)
|
||||
|
||||
3- Commit and push on GitHub
|
||||
See [RELEASE.md](RELEASE.md) for complete details, prerequisites, and troubleshooting.
|
||||
|
||||
+203
@@ -0,0 +1,203 @@
|
||||
# Alfresco SDK Release Process
|
||||
|
||||
This document describes the process for creating a new release of the Alfresco SDK.
|
||||
|
||||
## Overview
|
||||
|
||||
The Alfresco SDK uses a semi-automated release process that combines:
|
||||
- Manual version changes in the POM files
|
||||
- Automated publishing to Maven Central via GitHub Actions
|
||||
- Manual creation of GitHub release tags
|
||||
- Manual version bump to the next SNAPSHOT
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before starting a release, ensure you have:
|
||||
|
||||
1. **Permissions**: Write access to the Alfresco/alfresco-sdk repository
|
||||
2. **All tests passing**: The CI pipeline should be green on the master branch
|
||||
3. **Credentials configured** (for maintainers):
|
||||
- Maven Central credentials (OSS Sonatype)
|
||||
- GPG signing key for artifact signing
|
||||
- These are configured as GitHub secrets:
|
||||
- `OSS_SONATYPE_USERNAME`
|
||||
- `OSS_SONATYPE_PASSWORD`
|
||||
- `GPG_SIGNING_PRIVATE_KEY`
|
||||
- `GPG_SIGNING_PASSPHRASE`
|
||||
|
||||
## Release Steps
|
||||
|
||||
### Step 1: Update Version from SNAPSHOT to Release
|
||||
|
||||
1. **Update the version** in all `pom.xml` files from SNAPSHOT to the final release version.
|
||||
|
||||
Example: When releasing SDK 4.12.0, replace all occurrences of `4.12.0-SNAPSHOT` with `4.12.0`
|
||||
|
||||
Files to update:
|
||||
- `/pom.xml` (root aggregator)
|
||||
- `/modules/alfresco-rad/pom.xml`
|
||||
- `/plugins/alfresco-maven-plugin/pom.xml`
|
||||
- `/archetypes/alfresco-platform-jar-archetype/pom.xml`
|
||||
- `/archetypes/alfresco-share-jar-archetype/pom.xml`
|
||||
- `/archetypes/alfresco-allinone-archetype/pom.xml`
|
||||
- `/archetypes/archetypes-it/pom.xml`
|
||||
|
||||
You can use this command to find all pom.xml files that need updating:
|
||||
```bash
|
||||
find . -name "pom.xml" -not -path "*/target/*" -not -path "*/.git/*"
|
||||
```
|
||||
|
||||
2. **Commit the changes** with the commit message `[publish]`
|
||||
|
||||
The `[publish]` keyword is important as it triggers the GitHub Actions release workflow.
|
||||
|
||||
```bash
|
||||
git add .
|
||||
git commit -m "[publish] Release version 4.12.0"
|
||||
git push origin master
|
||||
```
|
||||
|
||||
### Step 2: Automated Publishing
|
||||
|
||||
Once you push the commit with `[publish]` in the message:
|
||||
|
||||
1. The **GitHub Actions CI workflow** (`.github/workflows/ci.yml`) will automatically:
|
||||
- Run all tests to ensure everything passes
|
||||
- Check if the version is a GA (General Availability) release (format: `X.Y.Z`)
|
||||
- If it's a GA version:
|
||||
- Build the artifacts
|
||||
- Sign them with GPG
|
||||
- Publish to Maven Central using the `central-publishing-maven-plugin`
|
||||
|
||||
2. **Monitor the workflow**:
|
||||
- Go to: https://github.com/Alfresco/alfresco-sdk/actions
|
||||
- Check the "Alfresco SDK CI" workflow
|
||||
- Ensure all jobs complete successfully, especially the "Publish artifacts" job
|
||||
|
||||
3. **Verify publication**:
|
||||
- Check Maven Central: https://repo1.maven.org/maven2/org/alfresco/maven/
|
||||
- Note: It may take a few minutes for artifacts to appear on Maven Central after publication
|
||||
|
||||
### Step 3: Create GitHub Release Tag
|
||||
|
||||
After successful publication to Maven Central:
|
||||
|
||||
1. **Navigate to GitHub Releases**:
|
||||
- Go to: https://github.com/Alfresco/alfresco-sdk/releases
|
||||
|
||||
2. **Create a new release**:
|
||||
- Click "Draft a new release"
|
||||
- Tag version: Use the format `sdk-X.Y.Z` (e.g., `sdk-4.12.0`)
|
||||
- Target: `master` branch
|
||||
- Release title: `Alfresco SDK X.Y.Z` (e.g., `Alfresco SDK 4.12.0`)
|
||||
|
||||
3. **Write release notes**:
|
||||
- Include a summary of new features, improvements, and bug fixes
|
||||
- Reference important pull requests and issues
|
||||
- Mention supported Alfresco versions
|
||||
- Include any breaking changes or upgrade notes
|
||||
|
||||
4. **Publish the release**
|
||||
|
||||
### Step 4: Bump Version to Next SNAPSHOT
|
||||
|
||||
After creating the GitHub release:
|
||||
|
||||
1. **Update version** to the next SNAPSHOT version in all `pom.xml` files
|
||||
|
||||
Example: After releasing 4.12.0, update to `4.13.0-SNAPSHOT`
|
||||
|
||||
Note: Only update `pom.xml` files, not README documentation (unless the documentation needs updating for other reasons)
|
||||
|
||||
2. **Commit and push**:
|
||||
```bash
|
||||
git add .
|
||||
git commit -m "Bump version to 4.13.0-SNAPSHOT"
|
||||
git push origin master
|
||||
```
|
||||
|
||||
### Step 5: Update Documentation (if needed)
|
||||
|
||||
If the release requires documentation updates:
|
||||
|
||||
1. Update the **News** section in `README.md` with the new release
|
||||
2. Update the **Documentation about Previous Versions** table if necessary
|
||||
3. Update any other relevant documentation
|
||||
|
||||
## Release Checklist
|
||||
|
||||
Use this checklist when performing a release:
|
||||
|
||||
- [ ] All tests are passing on master branch
|
||||
- [ ] Version updated from SNAPSHOT to release version in all pom.xml files
|
||||
- [ ] Committed and pushed with `[publish]` message
|
||||
- [ ] GitHub Actions workflow completed successfully
|
||||
- [ ] Artifacts verified on Maven Central
|
||||
- [ ] GitHub release tag created (`sdk-X.Y.Z`)
|
||||
- [ ] Release notes published on GitHub
|
||||
- [ ] Version bumped to next SNAPSHOT in all pom.xml files
|
||||
- [ ] Documentation updated (if necessary)
|
||||
|
||||
## Understanding the CI/CD Pipeline
|
||||
|
||||
The release automation is defined in `.github/workflows/ci.yml`:
|
||||
|
||||
### Key Workflow Jobs:
|
||||
|
||||
1. **pre_commit**: Runs pre-commit checks
|
||||
2. **build**: Builds the application and runs verification
|
||||
3. **tests**: Runs integration tests against multiple Alfresco versions
|
||||
4. **check_version**: Triggered when commit message contains `[publish]`
|
||||
- Validates if version is a GA release (X.Y.Z format)
|
||||
- Non-GA versions (like SNAPSHOT, RC, etc.) are not published
|
||||
5. **publish**: Triggered after successful tests when version is GA
|
||||
- Builds artifacts with source and javadoc
|
||||
- Signs artifacts with GPG
|
||||
- Publishes to Maven Central using Central Publishing Maven Plugin
|
||||
|
||||
### Maven Profile: `sdk-release`
|
||||
|
||||
The release process uses the `sdk-release` Maven profile defined in the root `pom.xml`, which configures:
|
||||
|
||||
- **central-publishing-maven-plugin**: For publishing to Maven Central
|
||||
- **maven-source-plugin**: Attaches source JARs
|
||||
- **maven-javadoc-plugin**: Attaches Javadoc JARs
|
||||
- **maven-gpg-plugin**: Signs artifacts
|
||||
- **maven-release-plugin**: Release management
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Release workflow not triggering
|
||||
|
||||
- Ensure commit message contains `[publish]`
|
||||
- Check that version in pom.xml is in GA format (X.Y.Z, no SNAPSHOT, RC, etc.)
|
||||
- Verify all tests pass
|
||||
|
||||
### GPG signing failures
|
||||
|
||||
- Check that `GPG_SIGNING_PRIVATE_KEY` and `GPG_SIGNING_PASSPHRASE` secrets are correctly configured
|
||||
- Ensure GPG key is valid and not expired
|
||||
|
||||
### Maven Central publication failures
|
||||
|
||||
- Verify `OSS_SONATYPE_USERNAME` and `OSS_SONATYPE_PASSWORD` credentials are valid
|
||||
- Check that artifacts meet Maven Central requirements (sources, javadocs, POM metadata)
|
||||
- Review the Central Publishing Maven Plugin documentation for requirements
|
||||
|
||||
### Version conflicts
|
||||
|
||||
- Ensure all module pom.xml files have consistent version numbers
|
||||
- Verify parent version references match
|
||||
|
||||
## Additional Resources
|
||||
|
||||
- [Maven Central Publishing](https://central.sonatype.org/publish/)
|
||||
- [Central Publishing Maven Plugin](https://central.sonatype.org/publish/publish-portal-maven/)
|
||||
- [GPG Signing](https://central.sonatype.org/publish/requirements/gpg/)
|
||||
- [Alfresco SDK Developer Wiki](https://github.com/Alfresco/alfresco-sdk/wiki/Developer-Wiki)
|
||||
|
||||
## Contact
|
||||
|
||||
For questions about the release process:
|
||||
- Open an issue on [GitHub](https://github.com/Alfresco/alfresco-sdk/issues)
|
||||
- Contact the Alfresco SDK maintainers
|
||||
@@ -11,7 +11,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco.maven</groupId>
|
||||
<artifactId>alfresco-sdk-aggregator</artifactId>
|
||||
<version>4.13.0-A1</version>
|
||||
<version>4.14.0-A1</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
@@ -54,4 +54,4 @@
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
||||
</project>
|
||||
|
||||
+3
-3
@@ -5,8 +5,8 @@
|
||||
<groupId>${groupId}</groupId>
|
||||
<artifactId>${artifactId}</artifactId>
|
||||
<version>${version}</version>
|
||||
<name>AIO - SDK 4.13.0-A1</name>
|
||||
<description>All-In-One (AIO) project for SDK 4.13.0-A1</description>
|
||||
<name>AIO - SDK 4.14.0-A1</name>
|
||||
<description>All-In-One (AIO) project for SDK 4.14.0-A1</description>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<prerequisites>
|
||||
@@ -487,4 +487,4 @@
|
||||
</snapshots>
|
||||
</pluginRepository>
|
||||
</pluginRepositories>
|
||||
</project>
|
||||
</project>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco.maven</groupId>
|
||||
<artifactId>alfresco-sdk-aggregator</artifactId>
|
||||
<version>4.13.0-A1</version>
|
||||
<version>4.14.0-A1</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
@@ -55,4 +55,4 @@
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
||||
</project>
|
||||
|
||||
+3
-3
@@ -206,8 +206,8 @@ logger.alfresco-repo-workflow.name=org.alfresco.repo.workflow
|
||||
logger.alfresco-repo-workflow.level=info
|
||||
|
||||
# CIFS server debugging
|
||||
logger.alfresco-smb.protocol.name=org.alfresco.smb.protocol
|
||||
logger.alfresco-smb.protocol.level=error
|
||||
logger.alfresco-smb-protocol.name=org.alfresco.smb.protocol
|
||||
logger.alfresco-smb-protocol.level=error
|
||||
|
||||
# FTP server debugging
|
||||
logger.alfresco-ftp-protocol.name=org.alfresco.ftp.protocol
|
||||
@@ -385,7 +385,7 @@ logger.alfresco-repo-content-metadata-AbstractMappingMetadataExtracter.level=war
|
||||
logger.apache-pdfbox-pdmodel-font-PDSimpleFont.name=org.apache.pdfbox.pdmodel.font.PDSimpleFont
|
||||
logger.apache-pdfbox-pdmodel-font-PDSimpleFont.level=fatal
|
||||
logger.apache-pdfbox-pdmodel-font-PDFont.name=org.apache.pdfbox.pdmodel.font.PDFont
|
||||
logger.apache-pdfbox-pdmodel-font-PDFont=fatal
|
||||
logger.apache-pdfbox-pdmodel-font-PDFont.level=fatal
|
||||
logger.apache-pdfbox-pdmodel-font-PDCIDFont.name=org.apache.pdfbox.pdmodel.font.PDCIDFont
|
||||
logger.apache-pdfbox-pdmodel-font-PDCIDFont.level=fatal
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco.maven</groupId>
|
||||
<artifactId>alfresco-sdk-aggregator</artifactId>
|
||||
<version>4.13.0-A1</version>
|
||||
<version>4.14.0-A1</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
@@ -57,4 +57,4 @@
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
||||
</project>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco.maven</groupId>
|
||||
<artifactId>alfresco-sdk-aggregator</artifactId>
|
||||
<version>4.13.0-A1</version>
|
||||
<version>4.14.0-A1</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
@@ -84,4 +84,4 @@
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
</project>
|
||||
|
||||
@@ -118,7 +118,7 @@ Choose archetype:
|
||||
* `org.alfresco.maven.archetype:alfresco-platform-jar-archetype`
|
||||
* `org.alfresco.maven.archetype:alfresco-share-jar-archetype`
|
||||
|
||||
3. Choose the latest version, such as 4.11.0.
|
||||
3. Choose the latest version, such as 4.12.0.
|
||||
|
||||
```
|
||||
Choose org.alfresco.maven.archetype:alfresco-allinone-archetype version:
|
||||
@@ -146,6 +146,7 @@ Choose org.alfresco.maven.archetype:alfresco-allinone-archetype version:
|
||||
22: 4.9.0
|
||||
23: 4.10.0
|
||||
24: 4.11.0
|
||||
25: 4.12.0
|
||||
```
|
||||
|
||||
4. Next you will be prompted for additional values, like groupId, artifactId, and package, as shown below:
|
||||
@@ -174,7 +175,7 @@ If everything has been configured correctly, you should see something similar to
|
||||
|
||||
```
|
||||
[INFO] ----------------------------------------------------------------------------
|
||||
[INFO] Using following parameters for creating project from Archetype: alfresco-allinone-archetype:4.11.0
|
||||
[INFO] Using following parameters for creating project from Archetype: alfresco-allinone-archetype:4.12.0
|
||||
[INFO] ----------------------------------------------------------------------------
|
||||
[INFO] Parameter: groupId, Value: com.acme
|
||||
[INFO] Parameter: artifactId, Value: my-all-in-one
|
||||
|
||||
+3
-3
@@ -10,7 +10,7 @@ Alfresco Share 6.
|
||||
|
||||
This was a mayor release oriented to support Alfresco 6, so it is not compatible with previous versions of the SDK.
|
||||
|
||||
Alfresco SDK 4.11.0 extends the support to Alfresco 25.1.
|
||||
Alfresco SDK 4.12.0 extends the support to Alfresco 25.2.
|
||||
Use an older SDK version for Alfresco 6.
|
||||
|
||||
## Embracing containers and Docker
|
||||
@@ -64,9 +64,9 @@ environment can be more similar to a real one, including whatever other service
|
||||
|
||||
Alfresco SDK 4.1 provides support for Alfresco 6.2.x.
|
||||
|
||||
## Support for Alfresco 7.0.x, 7.1.x, 7.2.x, 7.3.x, 7.4.x. 23.1.x, 23.2.x, 23.3.x, 23.4.x and 25.1.x
|
||||
## Support for Alfresco 7.0.x, 7.1.x, 7.2.x, 7.3.x, 7.4.x. 23.1.x, 23.2.x, 23.3.x, 23.4.x, 25.1.x and 25.2.x
|
||||
|
||||
Alfresco SDK 4.11.0 provides support for Alfresco 7.0.x, 7.1.x, 7.2.x, 7.3.x, 7.4.x, 23.1.x, 23.2.x, 23.3.x, 23.4.x and 25.1.x
|
||||
Alfresco SDK 4.12.0 provides support for Alfresco 7.0.x, 7.1.x, 7.2.x, 7.3.x, 7.4.x, 23.1.x, 23.2.x, 23.3.x, 23.4.x, 25.1.x and 25.2.x.
|
||||
|
||||
## Support for Java 17
|
||||
[Java 17](https://openjdk.java.net/projects/jdk/17/) is the latest stable long term (8 year support) version after Java 11. Alfresco 7.3.x already offers
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco.maven</groupId>
|
||||
<artifactId>alfresco-sdk-aggregator</artifactId>
|
||||
<version>4.13.0-A1</version>
|
||||
<version>4.14.0-A1</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
@@ -49,4 +49,4 @@
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
</project>
|
||||
</project>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco.maven</groupId>
|
||||
<artifactId>alfresco-sdk-aggregator</artifactId>
|
||||
<version>4.13.0-A1</version>
|
||||
<version>4.14.0-A1</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
<dependency>
|
||||
<groupId>org.codehaus.plexus</groupId>
|
||||
<artifactId>plexus-archiver</artifactId>
|
||||
<version>4.10.0</version>
|
||||
<version>4.11.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
@@ -135,9 +135,9 @@
|
||||
<version>0.6.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-lang</groupId>
|
||||
<artifactId>commons-lang</artifactId>
|
||||
<version>2.6</version>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
<version>3.18.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.twdata.maven</groupId>
|
||||
@@ -167,4 +167,4 @@
|
||||
</plugins>
|
||||
</reporting>
|
||||
|
||||
</project>
|
||||
</project>
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@
|
||||
*/
|
||||
package org.alfresco.maven.plugin;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.net.telnet.TelnetClient;
|
||||
import org.apache.http.HttpHost;
|
||||
import org.apache.http.HttpStatus;
|
||||
|
||||
+1
-1
@@ -20,7 +20,7 @@ package org.alfresco.maven.plugin;
|
||||
import org.alfresco.maven.plugin.config.ModuleDependency;
|
||||
import org.alfresco.maven.plugin.config.TomcatDependency;
|
||||
import org.alfresco.maven.plugin.config.TomcatWebapp;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@
|
||||
|
||||
package org.alfresco.maven.plugin.config;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.alfresco.maven</groupId>
|
||||
<artifactId>alfresco-sdk-aggregator</artifactId>
|
||||
<version>4.13.0-A1</version>
|
||||
<version>4.14.0-A1</version>
|
||||
<name>Alfresco SDK</name>
|
||||
<description>This aggregator Project builds all modules required for the Alfresco SDK</description>
|
||||
<packaging>pom</packaging>
|
||||
@@ -30,7 +30,7 @@
|
||||
<connection>scm:git:${scm.url.base}.git</connection>
|
||||
<developerConnection>scm:git:${scm.url.base}</developerConnection>
|
||||
<url>${scm.url.base}</url>
|
||||
<tag>alfresco-sdk-aggregator-4.13.0-A1</tag>
|
||||
<tag>alfresco-sdk-aggregator-${project.version}</tag>
|
||||
</scm>
|
||||
|
||||
<!-- All the modules of the Alfresco SDK -->
|
||||
@@ -56,9 +56,9 @@
|
||||
<alfresco.sdk.tests.exclude>*/*-enterprise*/*</alfresco.sdk.tests.exclude>
|
||||
|
||||
<alfresco.bomDependency.artifactId>acs-community-packaging</alfresco.bomDependency.artifactId>
|
||||
<alfresco.platform.version>25.2.0</alfresco.platform.version>
|
||||
<alfresco.platform.version>25.3.0-A.15</alfresco.platform.version>
|
||||
<alfresco.platform.docker.user>alfresco</alfresco.platform.docker.user>
|
||||
<alfresco.share.docker.version>25.2.0</alfresco.share.docker.version>
|
||||
<alfresco.share.docker.version>25.3.0-A.15</alfresco.share.docker.version>
|
||||
<!--
|
||||
The following value is now obtained by looking at the
|
||||
- alfresco-community-share.version (eg. https://github.com/Alfresco/acs-community-packaging/blob/25.1.0/pom.xml#L17)
|
||||
@@ -66,7 +66,7 @@
|
||||
- alfresco-enterprise-share.version (eg. https://github.com/Alfresco/acs-packaging/blob/25.1.0/pom.xml#L18)
|
||||
for the GitHub Tag related to the above Docker version.
|
||||
-->
|
||||
<alfresco.share.version>25.2.0.46</alfresco.share.version>
|
||||
<alfresco.share.version>25.3.0.36</alfresco.share.version>
|
||||
<alfresco.platform.docker.image>alfresco/alfresco-content-repository-community</alfresco.platform.docker.image>
|
||||
<alfresco.share.docker.image>alfresco/alfresco-share</alfresco.share.docker.image>
|
||||
<keystore.settings>
|
||||
@@ -711,4 +711,4 @@
|
||||
<timezone>+1</timezone>
|
||||
</contributor>
|
||||
</contributors>
|
||||
</project>
|
||||
</project>
|
||||
|
||||
Reference in New Issue
Block a user