forked from phoedos/pmd
Merge pull request #4746 from adangel:build-improvements
[ci] Build improvements #4746
This commit is contained in:
45
.ci/build.sh
45
.ci/build.sh
@ -36,7 +36,7 @@ function build() {
|
|||||||
|
|
||||||
if pmd_ci_utils_is_fork_or_pull_request; then
|
if pmd_ci_utils_is_fork_or_pull_request; then
|
||||||
pmd_ci_log_group_start "Build with mvnw"
|
pmd_ci_log_group_start "Build with mvnw"
|
||||||
./mvnw clean install -Pcli-dist --show-version --errors --batch-mode "${PMD_MAVEN_EXTRA_OPTS[@]}"
|
./mvnw clean install --show-version --errors --batch-mode "${PMD_MAVEN_EXTRA_OPTS[@]}"
|
||||||
pmd_ci_log_group_end
|
pmd_ci_log_group_end
|
||||||
|
|
||||||
# Execute danger and dogfood only for pull requests in our own repository
|
# Execute danger and dogfood only for pull requests in our own repository
|
||||||
@ -70,7 +70,7 @@ function build() {
|
|||||||
|
|
||||||
if [ "$(pmd_ci_utils_get_os)" != "linux" ]; then
|
if [ "$(pmd_ci_utils_get_os)" != "linux" ]; then
|
||||||
pmd_ci_log_group_start "Build with mvnw"
|
pmd_ci_log_group_start "Build with mvnw"
|
||||||
./mvnw clean verify -Pcli-dist --show-version --errors --batch-mode "${PMD_MAVEN_EXTRA_OPTS[@]}"
|
./mvnw clean verify --show-version --errors --batch-mode "${PMD_MAVEN_EXTRA_OPTS[@]}"
|
||||||
pmd_ci_log_group_end
|
pmd_ci_log_group_end
|
||||||
|
|
||||||
pmd_ci_log_info "Stopping build here, because os is not linux"
|
pmd_ci_log_info "Stopping build here, because os is not linux"
|
||||||
@ -87,7 +87,7 @@ function build() {
|
|||||||
|
|
||||||
if [ "${PMD_CI_BRANCH}" = "experimental-apex-parser" ]; then
|
if [ "${PMD_CI_BRANCH}" = "experimental-apex-parser" ]; then
|
||||||
pmd_ci_log_group_start "Build with mvnw"
|
pmd_ci_log_group_start "Build with mvnw"
|
||||||
./mvnw clean install -Pcli-dist --show-version --errors --batch-mode "${PMD_MAVEN_EXTRA_OPTS[@]}"
|
./mvnw clean install --show-version --errors --batch-mode "${PMD_MAVEN_EXTRA_OPTS[@]}"
|
||||||
pmd_ci_log_group_end
|
pmd_ci_log_group_end
|
||||||
|
|
||||||
pmd_ci_log_group_start "Creating new baseline for regression tester"
|
pmd_ci_log_group_start "Creating new baseline for regression tester"
|
||||||
@ -107,7 +107,7 @@ function build() {
|
|||||||
pmd_ci_log_group_end
|
pmd_ci_log_group_end
|
||||||
|
|
||||||
# release is published only for the case b) pmd-cli/pmd-dist release
|
# release is published only for the case b) pmd-cli/pmd-dist release
|
||||||
if pmd_ci_maven_isReleaseBuild && [[ "${PMD_CI_TAG}" == *-dist ]]; then
|
if pmd_ci_maven_isReleaseBuild && [ "${BUILD_CLI_DIST_ONLY}" = "true" ]; then
|
||||||
pmd_ci_log_group_start "Publishing Release"
|
pmd_ci_log_group_start "Publishing Release"
|
||||||
pmd_ci_gh_releases_publishRelease "$GH_RELEASE"
|
pmd_ci_gh_releases_publishRelease "$GH_RELEASE"
|
||||||
pmd_ci_sourceforge_selectDefault "${PMD_CI_MAVEN_PROJECT_VERSION}"
|
pmd_ci_sourceforge_selectDefault "${PMD_CI_MAVEN_PROJECT_VERSION}"
|
||||||
@ -117,7 +117,7 @@ function build() {
|
|||||||
|
|
||||||
# create a baseline for snapshot builds (when pmd-dist is built)
|
# create a baseline for snapshot builds (when pmd-dist is built)
|
||||||
# or for release builds for case b) when pmd-cli/pmd-dist is released
|
# or for release builds for case b) when pmd-cli/pmd-dist is released
|
||||||
if pmd_ci_maven_isSnapshotBuild || [[ "${PMD_CI_TAG}" == *-dist ]]; then
|
if pmd_ci_maven_isSnapshotBuild || [ "${BUILD_CLI_DIST_ONLY}" = "true" ]; then
|
||||||
pmd_ci_log_group_start "Creating new baseline for regression tester"
|
pmd_ci_log_group_start "Creating new baseline for regression tester"
|
||||||
regression_tester_setup_ci
|
regression_tester_setup_ci
|
||||||
regression_tester_uploadBaseline
|
regression_tester_uploadBaseline
|
||||||
@ -141,7 +141,7 @@ function build() {
|
|||||||
-Dpmd.skip \
|
-Dpmd.skip \
|
||||||
--show-version --errors --batch-mode \
|
--show-version --errors --batch-mode \
|
||||||
clean package \
|
clean package \
|
||||||
sonar:sonar -Dsonar.login="${SONAR_TOKEN}" -Psonar,cli-dist
|
sonar:sonar -Dsonar.login="${SONAR_TOKEN}" -Psonar
|
||||||
pmd_ci_log_success "New sonar results: https://sonarcloud.io/dashboard?id=net.sourceforge.pmd%3Apmd"
|
pmd_ci_log_success "New sonar results: https://sonarcloud.io/dashboard?id=net.sourceforge.pmd%3Apmd"
|
||||||
pmd_ci_log_group_end
|
pmd_ci_log_group_end
|
||||||
|
|
||||||
@ -157,7 +157,7 @@ function build() {
|
|||||||
-DrepoToken="${COVERALLS_REPO_TOKEN}" \
|
-DrepoToken="${COVERALLS_REPO_TOKEN}" \
|
||||||
--show-version --errors --batch-mode \
|
--show-version --errors --batch-mode \
|
||||||
clean package jacoco:report \
|
clean package jacoco:report \
|
||||||
coveralls:report -Pcoveralls,cli-dist
|
coveralls:report -Pcoveralls
|
||||||
pmd_ci_log_success "New coveralls result: https://coveralls.io/github/pmd/pmd"
|
pmd_ci_log_success "New coveralls result: https://coveralls.io/github/pmd/pmd"
|
||||||
pmd_ci_log_group_end
|
pmd_ci_log_group_end
|
||||||
fi
|
fi
|
||||||
@ -185,16 +185,16 @@ function pmd_ci_build_run() {
|
|||||||
mvn_profiles="${mvn_profiles},pmd-release"
|
mvn_profiles="${mvn_profiles},pmd-release"
|
||||||
|
|
||||||
# There are two possible (release) builds:
|
# There are two possible (release) builds:
|
||||||
if [[ "${PMD_CI_TAG}" != *-dist ]]; then
|
if [ "${BUILD_CLI_DIST_ONLY}" = "false" ]; then
|
||||||
# a) pmd-core and languages modules
|
# a) everything without pmd-cli and pmd-dist
|
||||||
./mvnw clean deploy -P"${mvn_profiles}",'!cli-dist' --show-version --errors --batch-mode "${PMD_MAVEN_EXTRA_OPTS[@]}"
|
./mvnw clean deploy -P"${mvn_profiles}" -Dskip-cli-dist --show-version --errors --batch-mode "${PMD_MAVEN_EXTRA_OPTS[@]}"
|
||||||
else
|
else
|
||||||
# b) pmd-cli and pmd-dist
|
# b) only pmd-cli and pmd-dist
|
||||||
./mvnw clean deploy -P"${mvn_profiles},cli-dist" -pl pmd-cli,pmd-dist --show-version --errors --batch-mode "${PMD_MAVEN_EXTRA_OPTS[@]}"
|
./mvnw clean deploy -P"${mvn_profiles}" -pl pmd-cli,pmd-dist --show-version --errors --batch-mode "${PMD_MAVEN_EXTRA_OPTS[@]}"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
pmd_ci_log_info "This is a snapshot build"
|
pmd_ci_log_info "This is a snapshot build"
|
||||||
./mvnw clean deploy -P"${mvn_profiles},cli-dist" --show-version --errors --batch-mode "${PMD_MAVEN_EXTRA_OPTS[@]}"
|
./mvnw clean deploy -P"${mvn_profiles}" --show-version --errors --batch-mode "${PMD_MAVEN_EXTRA_OPTS[@]}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -214,15 +214,15 @@ function pmd_ci_deploy_build_artifacts() {
|
|||||||
pmd_ci_sourceforge_uploadFile "pmd/${PMD_CI_MAVEN_PROJECT_VERSION}" "pmd-dist/target/pmd-${PMD_CI_MAVEN_PROJECT_VERSION}-cyclonedx.json"
|
pmd_ci_sourceforge_uploadFile "pmd/${PMD_CI_MAVEN_PROJECT_VERSION}" "pmd-dist/target/pmd-${PMD_CI_MAVEN_PROJECT_VERSION}-cyclonedx.json"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# release build case a): only pmd-core and language modules released
|
# release build case a): everything without pmd-cli and pmd-dist is released
|
||||||
if pmd_ci_maven_isReleaseBuild && [[ "${PMD_CI_TAG}" != *-dist ]]; then
|
if pmd_ci_maven_isReleaseBuild && [ "${BUILD_CLI_DIST_ONLY}" = "false" ]; then
|
||||||
# create a draft github release
|
# create a draft github release
|
||||||
pmd_ci_gh_releases_createDraftRelease "${PMD_CI_TAG}" "$(git rev-list -n 1 "${PMD_CI_TAG}")"
|
pmd_ci_gh_releases_createDraftRelease "${PMD_CI_TAG}" "$(git rev-list -n 1 "${PMD_CI_TAG}")"
|
||||||
GH_RELEASE="$RESULT"
|
GH_RELEASE="$RESULT"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# release build case b): pmd-cli and pmd-dist are released
|
# release build case b): only pmd-cli and pmd-dist are released
|
||||||
if pmd_ci_maven_isReleaseBuild && [[ "${PMD_CI_TAG}" == *-dist ]]; then
|
if pmd_ci_maven_isReleaseBuild && [ "${BUILD_CLI_DIST_ONLY}" = "true" ]; then
|
||||||
# Deploy to sourceforge files https://sourceforge.net/projects/pmd/files/pmd/
|
# Deploy to sourceforge files https://sourceforge.net/projects/pmd/files/pmd/
|
||||||
pmd_ci_sourceforge_uploadFile "pmd/${PMD_CI_MAVEN_PROJECT_VERSION}" "pmd-dist/target/pmd-dist-${PMD_CI_MAVEN_PROJECT_VERSION}-bin.zip"
|
pmd_ci_sourceforge_uploadFile "pmd/${PMD_CI_MAVEN_PROJECT_VERSION}" "pmd-dist/target/pmd-dist-${PMD_CI_MAVEN_PROJECT_VERSION}-bin.zip"
|
||||||
pmd_ci_sourceforge_uploadFile "pmd/${PMD_CI_MAVEN_PROJECT_VERSION}" "pmd-dist/target/pmd-dist-${PMD_CI_MAVEN_PROJECT_VERSION}-src.zip"
|
pmd_ci_sourceforge_uploadFile "pmd/${PMD_CI_MAVEN_PROJECT_VERSION}" "pmd-dist/target/pmd-dist-${PMD_CI_MAVEN_PROJECT_VERSION}-src.zip"
|
||||||
@ -254,7 +254,7 @@ function pmd_ci_build_and_upload_doc() {
|
|||||||
pmd_doc_create_archive
|
pmd_doc_create_archive
|
||||||
|
|
||||||
pmd_ci_sourceforge_uploadFile "pmd/${PMD_CI_MAVEN_PROJECT_VERSION}" "docs/pmd-dist-${PMD_CI_MAVEN_PROJECT_VERSION}-doc.zip"
|
pmd_ci_sourceforge_uploadFile "pmd/${PMD_CI_MAVEN_PROJECT_VERSION}" "docs/pmd-dist-${PMD_CI_MAVEN_PROJECT_VERSION}-doc.zip"
|
||||||
if pmd_ci_maven_isReleaseBuild && [[ "${PMD_CI_TAG}" != *-dist ]]; then
|
if pmd_ci_maven_isReleaseBuild && [ "${BUILD_CLI_DIST_ONLY}" = "false" ]; then
|
||||||
pmd_ci_gh_releases_uploadAsset "$GH_RELEASE" "docs/pmd-dist-${PMD_CI_MAVEN_PROJECT_VERSION}-doc.zip"
|
pmd_ci_gh_releases_uploadAsset "$GH_RELEASE" "docs/pmd-dist-${PMD_CI_MAVEN_PROJECT_VERSION}-doc.zip"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -263,7 +263,7 @@ function pmd_ci_build_and_upload_doc() {
|
|||||||
# Deploy javadoc to https://docs.pmd-code.org/apidocs/*/${PMD_CI_MAVEN_PROJECT_VERSION}/
|
# Deploy javadoc to https://docs.pmd-code.org/apidocs/*/${PMD_CI_MAVEN_PROJECT_VERSION}/
|
||||||
pmd_code_uploadJavadoc "${PMD_CI_MAVEN_PROJECT_VERSION}" "$(pwd)"
|
pmd_code_uploadJavadoc "${PMD_CI_MAVEN_PROJECT_VERSION}" "$(pwd)"
|
||||||
|
|
||||||
if pmd_ci_maven_isSnapshotBuild || [[ "${PMD_CI_TAG}" != *-dist ]]; then
|
if pmd_ci_maven_isSnapshotBuild || [ "${BUILD_CLI_DIST_ONLY}" = "false" ]; then
|
||||||
# render release notes
|
# render release notes
|
||||||
# updating github release text
|
# updating github release text
|
||||||
rm -f .bundle/config
|
rm -f .bundle/config
|
||||||
@ -289,7 +289,7 @@ function pmd_ci_build_and_upload_doc() {
|
|||||||
pmd_ci_sourceforge_rsyncSnapshotDocumentation "${PMD_CI_MAVEN_PROJECT_VERSION}" "snapshot"
|
pmd_ci_sourceforge_rsyncSnapshotDocumentation "${PMD_CI_MAVEN_PROJECT_VERSION}" "snapshot"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if pmd_ci_maven_isReleaseBuild && [[ "${PMD_CI_TAG}" != *-dist ]]; then
|
if pmd_ci_maven_isReleaseBuild && [ "${BUILD_CLI_DIST_ONLY}" = "false" ]; then
|
||||||
# documentation is already uploaded to https://docs.pmd-code.org/pmd-doc-${PMD_CI_MAVEN_PROJECT_VERSION}
|
# documentation is already uploaded to https://docs.pmd-code.org/pmd-doc-${PMD_CI_MAVEN_PROJECT_VERSION}
|
||||||
# we only need to setup symlinks for the released version
|
# we only need to setup symlinks for the released version
|
||||||
pmd_code_createSymlink "${PMD_CI_MAVEN_PROJECT_VERSION}" "latest"
|
pmd_code_createSymlink "${PMD_CI_MAVEN_PROJECT_VERSION}" "latest"
|
||||||
@ -321,16 +321,15 @@ ${rendered_release_notes}"
|
|||||||
#
|
#
|
||||||
function pmd_ci_dogfood() {
|
function pmd_ci_dogfood() {
|
||||||
local mpmdVersion=()
|
local mpmdVersion=()
|
||||||
./mvnw versions:set -DnewVersion="${PMD_CI_MAVEN_PROJECT_VERSION}-dogfood" -DgenerateBackupPoms=false -Pcli-dist
|
./mvnw versions:set -DnewVersion="${PMD_CI_MAVEN_PROJECT_VERSION}-dogfood" -DgenerateBackupPoms=false
|
||||||
sed -i 's/<version>[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}.*<\/version>\( *<!-- pmd.dogfood.version -->\)/<version>'"${PMD_CI_MAVEN_PROJECT_VERSION}"'<\/version>\1/' pom.xml
|
sed -i 's/<version>[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}.*<\/version>\( *<!-- pmd.dogfood.version -->\)/<version>'"${PMD_CI_MAVEN_PROJECT_VERSION}"'<\/version>\1/' pom.xml
|
||||||
./mvnw verify --show-version --errors --batch-mode "${PMD_MAVEN_EXTRA_OPTS[@]}" \
|
./mvnw verify --show-version --errors --batch-mode "${PMD_MAVEN_EXTRA_OPTS[@]}" \
|
||||||
-Pcli-dist \
|
|
||||||
"${mpmdVersion[@]}" \
|
"${mpmdVersion[@]}" \
|
||||||
-DskipTests \
|
-DskipTests \
|
||||||
-Dmaven.javadoc.skip=true \
|
-Dmaven.javadoc.skip=true \
|
||||||
-Dmaven.source.skip=true \
|
-Dmaven.source.skip=true \
|
||||||
-Dcheckstyle.skip=true
|
-Dcheckstyle.skip=true
|
||||||
./mvnw versions:set -DnewVersion="${PMD_CI_MAVEN_PROJECT_VERSION}" -DgenerateBackupPoms=false -Pcli-dist
|
./mvnw versions:set -DnewVersion="${PMD_CI_MAVEN_PROJECT_VERSION}" -DgenerateBackupPoms=false
|
||||||
git checkout -- pom.xml
|
git checkout -- pom.xml
|
||||||
}
|
}
|
||||||
|
|
||||||
|
7
.github/workflows/build.yml
vendored
7
.github/workflows/build.yml
vendored
@ -14,6 +14,12 @@ on:
|
|||||||
# build it monthly: At 04:00 on day-of-month 1.
|
# build it monthly: At 04:00 on day-of-month 1.
|
||||||
- cron: '0 4 1 * *'
|
- cron: '0 4 1 * *'
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
build_cli_dist_only:
|
||||||
|
description: "Build only modules cli and dist"
|
||||||
|
required: true
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read # to fetch code (actions/checkout)
|
contents: read # to fetch code (actions/checkout)
|
||||||
@ -68,6 +74,7 @@ jobs:
|
|||||||
run: .ci/build.sh
|
run: .ci/build.sh
|
||||||
shell: bash
|
shell: bash
|
||||||
env:
|
env:
|
||||||
|
BUILD_CLI_DIST_ONLY: ${{ inputs.build_cli_dist_only }}
|
||||||
PMD_CI_SECRET_PASSPHRASE: ${{ secrets.PMD_CI_SECRET_PASSPHRASE }}
|
PMD_CI_SECRET_PASSPHRASE: ${{ secrets.PMD_CI_SECRET_PASSPHRASE }}
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
- name: Workaround actions/upload-artifact#176
|
- name: Workaround actions/upload-artifact#176
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# abort the script on the first failing sub command
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# Make sure, everything is English...
|
# Make sure, everything is English...
|
||||||
@ -165,13 +167,32 @@ git commit -a -m "Prepare pmd release ${RELEASE_VERSION}"
|
|||||||
fi
|
fi
|
||||||
)
|
)
|
||||||
|
|
||||||
./mvnw -B release:clean release:prepare \
|
# check that there are no uncommitted changes
|
||||||
-Dtag="pmd_releases/${RELEASE_VERSION}" \
|
UNCOMMITTED_CHANGES=$(git status --short --untracked-files=no)
|
||||||
-DreleaseVersion="${RELEASE_VERSION}" \
|
if [ -n "${UNCOMMITTED_CHANGES}" ]; then
|
||||||
-DdevelopmentVersion="${DEVELOPMENT_VERSION}" \
|
echo "There are uncommitted changes:"
|
||||||
-DscmCommentPrefix="[release] " \
|
echo "${UNCOMMITTED_CHANGES}"
|
||||||
-Darguments='-Pgenerate-rule-docs,!cli-dist' \
|
exit 1
|
||||||
'-Pgenerate-rule-docs,!cli-dist'
|
fi
|
||||||
|
# check that there are no SNAPSHOT dependencies -> done by the enforcer plugin, see enforce-no-snapshots
|
||||||
|
echo "Change version in the POMs to ${RELEASE_VERSION} and update build timestamp"
|
||||||
|
./mvnw --quiet versions:set -DnewVersion="${RELEASE_VERSION}" -DgenerateBackupPoms=false -DupdateBuildOutputTimestampPolicy=always
|
||||||
|
echo "Transform the SCM information in the POM"
|
||||||
|
sed -i "s|<tag>.\+</tag>|<tag>pmd_releases/${RELEASE_VERSION}</tag>|" pom.xml
|
||||||
|
echo "Run the project tests against the changed POMs to confirm everything is in running order (skipping cli and dist)"
|
||||||
|
./mvnw clean verify -Dskip-cli-dist -Pgenerate-rule-docs
|
||||||
|
echo "Commit and create tag"
|
||||||
|
git commit -a -m "[release] prepare release pmd_releases/${RELEASE_VERSION}"
|
||||||
|
git tag -m "[release] copy for tag pmd_releases/${RELEASE_VERSION}" "pmd_releases/${RELEASE_VERSION}"
|
||||||
|
echo "Update POMs to set the new development version ${DEVELOPMENT_VERSION}"
|
||||||
|
./mvnw --quiet versions:set -DnewVersion="${DEVELOPMENT_VERSION}" -DgenerateBackupPoms=false -DupdateBuildOutputTimestampPolicy=never
|
||||||
|
sed -i "s|<tag>.\+</tag>|<tag>HEAD</tag>|" pom.xml
|
||||||
|
echo "Commit"
|
||||||
|
git commit -a -m "[release] prepare for next development iteration"
|
||||||
|
echo "Push branch and tag pmd_releases/${RELEASE_VERSION}"
|
||||||
|
git push origin "${CURRENT_BRANCH}"
|
||||||
|
git push origin tag "pmd_releases/${RELEASE_VERSION}"
|
||||||
|
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "Tag has been pushed.... now check github actions: <https://github.com/pmd/pmd/actions>"
|
echo "Tag has been pushed.... now check github actions: <https://github.com/pmd/pmd/actions>"
|
||||||
@ -232,9 +253,8 @@ This is a {{ site.pmd.release_type }} release.
|
|||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
git commit -a -m "Prepare next development version [skip ci]"
|
git commit -a -m "[release] Prepare next development version [skip ci]"
|
||||||
git push origin "${CURRENT_BRANCH}"
|
git push origin "${CURRENT_BRANCH}"
|
||||||
./mvnw -B release:clean
|
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo
|
echo
|
||||||
@ -248,28 +268,19 @@ echo "<https://github.com/pmd/pmd-designer/blob/master/releasing.md>"
|
|||||||
echo
|
echo
|
||||||
echo "Press enter to continue when pmd-designer is available in maven-central..."
|
echo "Press enter to continue when pmd-designer is available in maven-central..."
|
||||||
echo "<https://repo.maven.apache.org/maven2/net/sourceforge/pmd/pmd-ui/maven-metadata.xml>."
|
echo "<https://repo.maven.apache.org/maven2/net/sourceforge/pmd/pmd-ui/maven-metadata.xml>."
|
||||||
|
echo
|
||||||
|
echo "Note: If there is no new pmd-designer release needed, you can directly proceed."
|
||||||
read -r
|
read -r
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "Continuing with release of pmd-cli and pmd-dist..."
|
echo "Continuing with release of pmd-cli and pmd-dist..."
|
||||||
git checkout "pmd_releases/${RELEASE_VERSION}"
|
|
||||||
./mvnw versions:update-parent -DparentVersion="${RELEASE_VERSION}" -DskipResolution=true -DgenerateBackupPoms=false -pl pmd-cli,pmd-dist
|
|
||||||
git add pmd-cli/pom.xml pmd-dist/pom.xml
|
|
||||||
git commit -m "[release] prepare release pmd_releases/${RELEASE_VERSION}-dist"
|
|
||||||
git tag -m "[release] copy for tag pmd_releases/${RELEASE_VERSION}-dist" "pmd_releases/${RELEASE_VERSION}-dist"
|
|
||||||
git push origin tag "pmd_releases/${RELEASE_VERSION}-dist"
|
|
||||||
git checkout master
|
|
||||||
# make sure parent reference is correct
|
|
||||||
./mvnw versions:update-parent -DparentVersion="${DEVELOPMENT_VERSION}" -DskipResolution=true -DgenerateBackupPoms=false -pl pmd-cli,pmd-dist
|
|
||||||
git add pmd-cli/pom.xml pmd-dist/pom.xml
|
|
||||||
changes=$(git status --porcelain 2>/dev/null | grep -c -E "^[AMDRC]" || true)
|
|
||||||
if [ "$changes" -gt 0 ]; then
|
|
||||||
git commit -m "Prepare next development version [skip ci]"
|
|
||||||
git push origin "${CURRENT_BRANCH}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "Second tag 'pmd_releases/${RELEASE_VERSION}-dist' has been pushed ... now check github actions: <https://github.com/pmd/pmd/actions>"
|
echo "Go to <https://github.com/pmd/pmd/actions/workflows/build.yml> and manually trigger a new build"
|
||||||
|
echo "from tag 'pmd_releases/${RELEASE_VERSION}' and with option 'Build only modules cli and dist' checked."
|
||||||
|
echo
|
||||||
|
echo "This triggers the second stage release and eventually publishes the release on GitHub."
|
||||||
|
echo
|
||||||
|
echo "Now check github actions: <https://github.com/pmd/pmd/actions>"
|
||||||
echo
|
echo
|
||||||
echo
|
echo
|
||||||
echo "Verify the new release on github: <https://github.com/pmd/pmd/releases/tag/pmd_releases/${RELEASE_VERSION}>"
|
echo "Verify the new release on github: <https://github.com/pmd/pmd/releases/tag/pmd_releases/${RELEASE_VERSION}>"
|
||||||
@ -297,5 +308,3 @@ echo "------------------------------------------"
|
|||||||
echo "Done."
|
echo "Done."
|
||||||
echo "------------------------------------------"
|
echo "------------------------------------------"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,24 +9,28 @@ This page describes the current status of the release process.
|
|||||||
|
|
||||||
Since 6.30.0, the automated release process is using [Github Actions](https://github.com/pmd/pmd/actions).
|
Since 6.30.0, the automated release process is using [Github Actions](https://github.com/pmd/pmd/actions).
|
||||||
|
|
||||||
However, there are still a few steps, that need manual examination.
|
Since 7.0.0-rc4, the release happens in two phases: First pmd-core with all the languages are released.
|
||||||
|
This allows to release then pmd-designer or any other project, that just depends on pmd-core and the
|
||||||
|
languages. And in the second phase, pmd-cli and pmd-dist are released. These include e.g. pmd-designer.
|
||||||
|
|
||||||
|
While the release is mostly automated, there are still a few steps, that need manual examination.
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
This page gives an overview which tasks are automated to do a full release of PMD. This knowledge is
|
This page gives an overview which tasks are automated to do a full release of PMD. This knowledge is
|
||||||
required in order to verify that the release was successful or in case the automated process fails for
|
required in order to verify that the release was successful or in case the automated process fails for
|
||||||
some reason. Then individual steps need to be executed manually. Because the build is reproducible, these
|
some reason. Then individual steps need to be executed manually. Because the build is reproducible, these
|
||||||
steps can be repeated again if the same tag is used.
|
steps can be repeated if the same tag is used.
|
||||||
|
|
||||||
There is one special case in this project: The release of PMD is done in two steps:
|
There is one special case in this project: As outlined above, the release of PMD consists of two phases or parts:
|
||||||
1. All modules except pmd-cli and pmd-dist are released. That means, pmd-core and all the language modules
|
1. All modules except pmd-cli and pmd-dist are released. That means, pmd-core and all the language modules
|
||||||
are released. This is, so that these libs can be used by pmd-designer to create a new release.
|
are released. This is, so that these libs can be used by pmd-designer to create a new release.
|
||||||
2. pmd-cli and pmd-dist are released afterwards. Both depend on pmd-designer, and this two-step release
|
2. pmd-cli and pmd-dist are released after that. Both depend on pmd-designer, and this two-step release
|
||||||
process is used for now to break the cycling release dependency.
|
process is used for now to break the cycling release dependency.
|
||||||
|
|
||||||
The three main steps are:
|
The three main steps are:
|
||||||
|
|
||||||
* Preparations (which creates the tags) - use `do-release.sh` for that
|
* Preparations (which sets the versions and creates the tags) - use `do-release.sh` for that
|
||||||
* The actual release (which is automated) - GitHub Actions will build the tags when they have been pushed.
|
* The actual release (which is automated) - GitHub Actions will build the tags when they have been pushed.
|
||||||
* Prepare the next release (make sure the current main branch is ready for further development)
|
* Prepare the next release (make sure the current main branch is ready for further development)
|
||||||
|
|
||||||
@ -57,9 +61,9 @@ Also make sure, that the repo "pmd.github.io" is locally up-to-date and has no l
|
|||||||
Before the release, you need to verify the release notes: Does it contain all the relevant changes for the
|
Before the release, you need to verify the release notes: Does it contain all the relevant changes for the
|
||||||
release? Is it formatted properly? Are there any typos? Does it render properly?
|
release? Is it formatted properly? Are there any typos? Does it render properly?
|
||||||
|
|
||||||
As the release notes are part of the source code, it is not simple to change it afterwards. While the source
|
As the release notes are part of the source code, it is not that simple to change it afterward. While the source
|
||||||
code for a tag cannot be changed anymore, the published release notes on the github releases pages or the
|
code for a tag cannot be changed anymore, the published release notes on the GitHub Releases pages or the
|
||||||
new posts can be changed afterwards (although that's an entirely manual process).
|
news posts can be changed afterward (although that's an entirely manual process).
|
||||||
|
|
||||||
You can find the release notes here: `docs/pages/release_notes.md`.
|
You can find the release notes here: `docs/pages/release_notes.md`.
|
||||||
|
|
||||||
@ -86,7 +90,12 @@ Add the new rules as comments to the quickstart rulesets:
|
|||||||
|
|
||||||
The designer lives at [pmd/pmd-designer](https://github.com/pmd/pmd-designer).
|
The designer lives at [pmd/pmd-designer](https://github.com/pmd/pmd-designer).
|
||||||
Update property `pmd-designer.version` in **pom.xml** to reference the new version, that will be released
|
Update property `pmd-designer.version` in **pom.xml** to reference the new version, that will be released
|
||||||
shortly. Note: This version does at the moment not exist.
|
shortly. Note: This version does at the moment not exist. That means, that a full build of the sources
|
||||||
|
will currently fail. That's why the first phase of the release will build only pmd-core and languages but
|
||||||
|
not pmd-cli and pmd-dist.
|
||||||
|
|
||||||
|
In case, there is no need for a new pmd-designer version, we could stick to the latest already available version.
|
||||||
|
Then we can skip the release of pmd-designer and immediately start the second phase of the release.
|
||||||
|
|
||||||
Starting with PMD 6.23.0 we'll provide small statistics for every release. This needs to be added
|
Starting with PMD 6.23.0 we'll provide small statistics for every release. This needs to be added
|
||||||
to the release notes as the last section. To count the closed issues and pull requests, the milestone
|
to the release notes as the last section. To count the closed issues and pull requests, the milestone
|
||||||
@ -115,7 +124,7 @@ Check in all (version) changes to branch master or any other branch, from which
|
|||||||
|
|
||||||
### The Homepage
|
### The Homepage
|
||||||
|
|
||||||
The github repo `pmd.github.io` hosts the homepage for [https://pmd.github.io](https://pmd.github.io).
|
The GitHub repo `pmd.github.io` hosts the homepage for [https://pmd.github.io](https://pmd.github.io).
|
||||||
All the following tasks are to be done in this repo.
|
All the following tasks are to be done in this repo.
|
||||||
|
|
||||||
The new version needs to be entered into `_config.yml`, e.g.:
|
The new version needs to be entered into `_config.yml`, e.g.:
|
||||||
@ -132,7 +141,22 @@ in this list, so remove the oldest version.
|
|||||||
Then create a new page for the new release, e.g. `_posts/2021-04-24-PMD-6.34.0.md` and copy
|
Then create a new page for the new release, e.g. `_posts/2021-04-24-PMD-6.34.0.md` and copy
|
||||||
the release notes into this page. This will appear under the news section.
|
the release notes into this page. This will appear under the news section.
|
||||||
|
|
||||||
Check in all (version) changes to branch master:
|
Note: The release notes typically contain some Jekyll macros for linking to the rule pages. These macros won't
|
||||||
|
work in a plain markdown version. Therefore, you need to render the release notes first:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# install bundles needed for rendering release notes
|
||||||
|
bundle config set --local path vendor/bundle
|
||||||
|
bundle config set --local with release_notes_preprocessing
|
||||||
|
bundle install
|
||||||
|
|
||||||
|
RELEASE_NOTES_POST="_posts/$(date -u +%Y-%m-%d)-PMD-${RELEASE_VERSION}.md"
|
||||||
|
echo "Generating ../pmd.github.io/${RELEASE_NOTES_POST}..."
|
||||||
|
NEW_RELEASE_NOTES=$(bundle exec docs/render_release_notes.rb docs/pages/release_notes.md | tail -n +6)
|
||||||
|
cat > "../pmd.github.io/${RELEASE_NOTES_POST}" <<EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
Check in all (version, blog post) changes to branch master:
|
||||||
|
|
||||||
$ git commit -a -m "Prepare pmd release <version>"
|
$ git commit -a -m "Prepare pmd release <version>"
|
||||||
$ git push
|
$ git push
|
||||||
@ -140,33 +164,45 @@ Check in all (version) changes to branch master:
|
|||||||
|
|
||||||
## The actual release
|
## The actual release
|
||||||
|
|
||||||
The actual release starts with one last local command: calling **maven-release-plugin**.
|
The actual release is done by changing the versions, creating a tag and pushing this tag. Previously this was done
|
||||||
|
by calling _maven-release-plugin_, but these steps are done without the plugin to have more control. And since we
|
||||||
|
might reference a not yet released pmd-designer version, the test-build will fail.
|
||||||
|
|
||||||
This plugin changes the version by basically removing the "-SNAPSHOT" suffix, builds the changed project
|
We first change the version of PMD and all modules by basically removing the "-SNAPSHOT" suffix, building the changed
|
||||||
locally, commits the version change, creates
|
project locally with tests (and with skipping pmd-cli and pmd-dist) in order to be sure, everything is in working
|
||||||
a new tag from this commit, changes the version of the project to the next snapshot, commits this change
|
order. Then the version changes are committed and a new release tag is created. Then, the versions are changed to
|
||||||
and pushes everything.
|
the next snapshot. As last step, everything is pushed.
|
||||||
|
|
||||||
`RELEASE_VERSION` is the version of the release. It is reused for the tag. `DEVELOPMENT_VERSION` is the
|
`RELEASE_VERSION` is the version of the release. It is reused for the tag. `DEVELOPMENT_VERSION` is the
|
||||||
next snapshot version after the release.
|
next snapshot version after the release. Skipping the builds of pmd-cli and pmd-dist is done by setting
|
||||||
|
the property `skip-cli-dist`.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
RELEASE_VERSION=6.34.0
|
RELEASE_VERSION=6.34.0
|
||||||
DEVELOPMENT_VERSION=6.35.0-SNAPSHOT
|
DEVELOPMENT_VERSION=6.35.0-SNAPSHOT
|
||||||
./mvnw -B release:clean release:prepare \
|
# Change version in the POMs to ${RELEASE_VERSION} and update build timestamp
|
||||||
-Dtag="pmd_releases/${RELEASE_VERSION}" \
|
./mvnw --quiet versions:set -DnewVersion="${RELEASE_VERSION}" -DgenerateBackupPoms=false -DupdateBuildOutputTimestampPolicy=always
|
||||||
-DreleaseVersion="${RELEASE_VERSION}" \
|
# Transform the SCM information in the POM
|
||||||
-DdevelopmentVersion="${DEVELOPMENT_VERSION}" \
|
sed -i "s|<tag>.\+</tag>|<tag>pmd_releases/${RELEASE_VERSION}</tag>|" pom.xml
|
||||||
-DscmCommentPrefix="[release] " \
|
# Run the project tests against the changed POMs to confirm everything is in running order (skipping cli and dist)
|
||||||
-Darguments='-Pgenerate-rule-docs,!cli-dist' \
|
./mvnw clean verify -Dskip-cli-dist -Pgenerate-rule-docs
|
||||||
'-Pgenerate-rule-docs,!cli-dist'
|
# Commit and create tag
|
||||||
|
git commit -a -m "[release] prepare release pmd_releases/${RELEASE_VERSION}"
|
||||||
|
git tag -m "[release] copy for tag pmd_releases/${RELEASE_VERSION}" "pmd_releases/${RELEASE_VERSION}"
|
||||||
|
# Update POMs to set the new development version ${DEVELOPMENT_VERSION}
|
||||||
|
./mvnw --quiet versions:set -DnewVersion="${DEVELOPMENT_VERSION}" -DgenerateBackupPoms=false -DupdateBuildOutputTimestampPolicy=never
|
||||||
|
sed -i "s|<tag>.\+</tag>|<tag>HEAD</tag>|" pom.xml
|
||||||
|
git commit -a -m "[release] prepare for next development iteration"
|
||||||
|
# Push branch and tag pmd_releases/${RELEASE_VERSION}
|
||||||
|
git push origin "${CURRENT_BRANCH}"
|
||||||
|
git push origin tag "pmd_releases/${RELEASE_VERSION}"
|
||||||
```
|
```
|
||||||
|
|
||||||
Once the maven plugin has pushed the tag, github actions will start and build a new version from this tag. Since
|
Once we have pushed the tag, GitHub Actions take over and build a new version from this tag. Since
|
||||||
it is a tag build and a released version build, the build script will do a couple of additional stuff.
|
it is a tag build and a release version (version without SNAPSHOT), the build script will do a couple of additional stuff.
|
||||||
This is all automated in `.ci/build.sh`.
|
This is all automated in `.ci/build.sh`.
|
||||||
|
|
||||||
Note: The profile "cli-dist" is deactivated, so this release command doesn't include pmd-cli and pmd-dist.
|
Note: The property "skip-cli-dist" is activated, so this release command doesn't include pmd-cli and pmd-dist.
|
||||||
They will be released separately after pmd-designer is released. Since pmd-dist is not included in this first
|
They will be released separately after pmd-designer is released. Since pmd-dist is not included in this first
|
||||||
step, no binaries are created yet.
|
step, no binaries are created yet.
|
||||||
|
|
||||||
@ -174,13 +210,15 @@ Here is, what happens:
|
|||||||
|
|
||||||
* Deploy and release the build to maven central, so that it can be downloaded from
|
* Deploy and release the build to maven central, so that it can be downloaded from
|
||||||
<https://repo.maven.apache.org/maven2/net/sourceforge/pmd/pmd/>. This is done automatically, if
|
<https://repo.maven.apache.org/maven2/net/sourceforge/pmd/pmd/>. This is done automatically, if
|
||||||
all unit tests pass and the build doesn't fail for any other reason.
|
the build doesn't fail for any reason. Note, that unit tests are not executed anymore, since they have been
|
||||||
The plugin [nexus-staging-maven-plugin](https://github.com/sonatype/nexus-maven-plugins/tree/master/staging/maven-plugin) is used for that.
|
run already locally before pushing the tag.
|
||||||
|
The plugin [nexus-staging-maven-plugin](https://github.com/sonatype/nexus-maven-plugins/tree/master/staging/maven-plugin)
|
||||||
|
is used to upload and publish the artifacts to maven central.
|
||||||
* Create a draft release on GitHub and upload the release notes from `docs/pages/release_notes.md`.
|
* Create a draft release on GitHub and upload the release notes from `docs/pages/release_notes.md`.
|
||||||
Note: During the process, the release is a draft mode and not visible yet.
|
Note: During the process, the release is a draft mode and not visible yet.
|
||||||
At the end of the process, the release will be published.
|
At the end of the process, the release will be published.
|
||||||
* Render the documentation in `docs/` with `bundle exec jekyll build` and create a zip file from it.
|
* Render the documentation in `docs/` with `bundle exec jekyll build` and create a zip file from it.
|
||||||
* Upload the doc zip file to the current github release under <https://github.com/pmd/pmd/releases> and
|
* Upload the doc zip file to the current (draft) GitHub Release under <https://github.com/pmd/pmd/releases> and
|
||||||
to <https://sourceforge.net/projects/pmd/files/pmd/>.
|
to <https://sourceforge.net/projects/pmd/files/pmd/>.
|
||||||
* Upload the documentation to <https://docs.pmd-code.org>, e.g. <https://docs.pmd-code.org/pmd-doc-6.34.0/> and
|
* Upload the documentation to <https://docs.pmd-code.org>, e.g. <https://docs.pmd-code.org/pmd-doc-6.34.0/> and
|
||||||
create a symlink, so that <https://docs.pmd-code.org/latest/> points to the new version.
|
create a symlink, so that <https://docs.pmd-code.org/latest/> points to the new version.
|
||||||
@ -196,40 +234,21 @@ Here is, what happens:
|
|||||||
<https://pmd.sourceforge.io/pmd-6.34.0/>. All previously copied versions are listed
|
<https://pmd.sourceforge.io/pmd-6.34.0/>. All previously copied versions are listed
|
||||||
under <https://pmd.sourceforge.io/archive.phtml>.
|
under <https://pmd.sourceforge.io/archive.phtml>.
|
||||||
|
|
||||||
The release on github actions currently takes about 30-45 minutes. Once this is done, you
|
The release on GitHub Actions currently takes about 30-45 minutes. Once this is done, you
|
||||||
can proceed with releasing pmd designer, see <https://github.com/pmd/pmd-designer/blob/master/releasing.md>.
|
can proceed with releasing pmd designer, see <https://github.com/pmd/pmd-designer/blob/master/releasing.md>.
|
||||||
Make sure to release the version, you have used earlier for the property `pmd-designer.version`.
|
Make sure to release the version, you have used earlier for the property `pmd-designer.version`.
|
||||||
|
|
||||||
Once the pmd-designer release is done, you can proceed with part 2. We'll checkout the release tag, add
|
Once the pmd-designer release is done, you can proceed with part 2. This is simply triggering manually
|
||||||
a new commit with the changed versions for pmd-cli and pmd-dist on top of it and create a new tag:
|
a build on GitHub Actions: <https://github.com/pmd/pmd/actions/workflows/build.yml> from the same tag again, but
|
||||||
|
with the parameter "build_cli_dist_only" set to "true". With this parameter, the script `.ci/build.sh` will
|
||||||
|
perform the following steps:
|
||||||
|
|
||||||
```shell
|
* Build only modules pmd-cli and pmd-dist (via maven parameter `-pl pmd-cli,pmd-dist`).
|
||||||
git checkout "pmd_releases/${RELEASE_VERSION}"
|
* Upload the new binaries to the existing draft GitHub Release under <https://github.com/pmd/pmd/releases>.
|
||||||
./mvnw versions:update-parent -DparentVersion="${RELEASE_VERSION}" -DskipResolution=true -DgenerateBackupPoms=false -pl pmd-cli,pmd-dist
|
|
||||||
git add pmd-cli/pom.xml pmd-dist/pom.xml
|
|
||||||
git commit -m "[release] prepare release pmd_releases/${RELEASE_VERSION}-dist"
|
|
||||||
git tag -m "[release] copy for tag pmd_releases/${RELEASE_VERSION}-dist" "pmd_releases/${RELEASE_VERSION}-dist"
|
|
||||||
git push origin tag "pmd_releases/${RELEASE_VERSION}-dist"
|
|
||||||
git checkout master
|
|
||||||
# make sure parent reference is correct
|
|
||||||
./mvnw versions:update-parent -DparentVersion="${DEVELOPMENT_VERSION}" -DskipResolution=true -DgenerateBackupPoms=false -pl pmd-cli,pmd-dist
|
|
||||||
git add pmd-cli/pom.xml pmd-dist/pom.xml
|
|
||||||
git commit -m "Prepare next development version [skip ci]"
|
|
||||||
git push origin "${CURRENT_BRANCH}"
|
|
||||||
```
|
|
||||||
|
|
||||||
Since pmd-cli/pmd-dist were not part of the first maven-release-plugin call, we might need to fix the parent references
|
|
||||||
manually to set to the new development version.
|
|
||||||
|
|
||||||
The new created tag ends with the suffix `-dist`, and this is used as a marker for the GitHub action. The same build
|
|
||||||
script `.ci/build.sh` is executed, but now, it does the following steps:
|
|
||||||
|
|
||||||
* Build only modules pmd-cli and pmd-dist
|
|
||||||
* Upload the new binaries to the existing draft release under <https://github.com/pmd/pmd/releases>.
|
|
||||||
* Upload the new binaries additionally to sourceforge, so that they can be downloaded from
|
* Upload the new binaries additionally to sourceforge, so that they can be downloaded from
|
||||||
<https://sourceforge.net/projects/pmd/files/pmd/>, including the release notes.
|
<https://sourceforge.net/projects/pmd/files/pmd/>.
|
||||||
* After all this is done, the release on github (<https://github.com/pmd/pmd/releases>) is published
|
* After all this is done, the release on GitHub (<https://github.com/pmd/pmd/releases>) is published
|
||||||
and the news post on sourceforge (https://sourceforge.net/p/pmd/news/> is published as well.
|
and the news post on sourceforge <https://sourceforge.net/p/pmd/news/> is published as well.
|
||||||
* The new binary at <https://sourceforge.net/projects/pmd/files/pmd/> is
|
* The new binary at <https://sourceforge.net/projects/pmd/files/pmd/> is
|
||||||
selected as the new default for PMD.
|
selected as the new default for PMD.
|
||||||
* As a last step, a new baseline for the [regression tester](https://github.com/pmd/pmd-regression-tester)
|
* As a last step, a new baseline for the [regression tester](https://github.com/pmd/pmd-regression-tester)
|
||||||
@ -326,7 +345,7 @@ This is a {{ site.pmd.release_type }} release.
|
|||||||
{%endraw%}
|
{%endraw%}
|
||||||
|
|
||||||
|
|
||||||
Finally commit and push the changes:
|
Finally, commit and push the changes:
|
||||||
|
|
||||||
$ git commit -m "Prepare next development version"
|
$ git commit -m "Prepare next development version"
|
||||||
$ git push origin master
|
$ git push origin master
|
||||||
|
@ -118,6 +118,7 @@ in the Migration Guide.
|
|||||||
* [#4699](https://github.com/pmd/pmd/pull/4699): Make PMD buildable with java 21
|
* [#4699](https://github.com/pmd/pmd/pull/4699): Make PMD buildable with java 21
|
||||||
* [#4586](https://github.com/pmd/pmd/pull/4586): Use explicit encoding in ruleset xml files
|
* [#4586](https://github.com/pmd/pmd/pull/4586): Use explicit encoding in ruleset xml files
|
||||||
* [#4642](https://github.com/pmd/pmd/issues/4642): Update regression tests with Java 21 language features
|
* [#4642](https://github.com/pmd/pmd/issues/4642): Update regression tests with Java 21 language features
|
||||||
|
* [#4736](https://github.com/pmd/pmd/issues/4736): \[ci] Improve build procedure
|
||||||
* [#4741](https://github.com/pmd/pmd/pull/4741): Add pmd-compat6 module for maven-pmd-plugin
|
* [#4741](https://github.com/pmd/pmd/pull/4741): Add pmd-compat6 module for maven-pmd-plugin
|
||||||
* [#4749](https://github.com/pmd/pmd/pull/4749): Fixes NoSuchMethodError on processing errors in pmd-compat6
|
* [#4749](https://github.com/pmd/pmd/pull/4749): Fixes NoSuchMethodError on processing errors in pmd-compat6
|
||||||
* apex-performance
|
* apex-performance
|
||||||
@ -526,6 +527,7 @@ See also [Detailed Release Notes for PMD 7]({{ baseurl }}pmd_release_notes_pmd7.
|
|||||||
* [#4642](https://github.com/pmd/pmd/issues/4642): Update regression tests with Java 21 language features
|
* [#4642](https://github.com/pmd/pmd/issues/4642): Update regression tests with Java 21 language features
|
||||||
* [#4691](https://github.com/pmd/pmd/issues/4691): \[CVEs] Critical and High CEVs reported on PMD and PMD dependencies
|
* [#4691](https://github.com/pmd/pmd/issues/4691): \[CVEs] Critical and High CEVs reported on PMD and PMD dependencies
|
||||||
* [#4699](https://github.com/pmd/pmd/pull/4699): Make PMD buildable with java 21
|
* [#4699](https://github.com/pmd/pmd/pull/4699): Make PMD buildable with java 21
|
||||||
|
* [#4736](https://github.com/pmd/pmd/issues/4736): \[ci] Improve build procedure
|
||||||
* [#4741](https://github.com/pmd/pmd/pull/4741): Add pmd-compat6 module for maven-pmd-plugin
|
* [#4741](https://github.com/pmd/pmd/pull/4741): Add pmd-compat6 module for maven-pmd-plugin
|
||||||
* [#4749](https://github.com/pmd/pmd/pull/4749): Fixes NoSuchMethodError on processing errors in pmd-compat6
|
* [#4749](https://github.com/pmd/pmd/pull/4749): Fixes NoSuchMethodError on processing errors in pmd-compat6
|
||||||
* ant
|
* ant
|
||||||
|
6
pom.xml
6
pom.xml
@ -1180,9 +1180,11 @@
|
|||||||
</profile>
|
</profile>
|
||||||
|
|
||||||
<profile>
|
<profile>
|
||||||
<id>cli-dist</id>
|
<id>cli-dist-modules</id>
|
||||||
<activation>
|
<activation>
|
||||||
<activeByDefault>true</activeByDefault>
|
<property>
|
||||||
|
<name>!skip-cli-dist</name>
|
||||||
|
</property>
|
||||||
</activation>
|
</activation>
|
||||||
<modules>
|
<modules>
|
||||||
<module>pmd-cli</module>
|
<module>pmd-cli</module>
|
||||||
|
Reference in New Issue
Block a user