Skip to content

Commit

Permalink
Bump logging-parent to 10.0.0 and adapt sources and CI
Browse files Browse the repository at this point in the history
  • Loading branch information
vy committed Sep 13, 2023
1 parent ed92652 commit 6533d5b
Show file tree
Hide file tree
Showing 42 changed files with 868 additions and 946 deletions.
25 changes: 6 additions & 19 deletions .asf.yaml
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# 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 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
# the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
# 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.
#

# `.asf.yaml` documentation: https://cwiki.apache.org/confluence/display/INFRA/Git+-+.asf.yaml+features

Expand All @@ -32,18 +34,3 @@ github:
protected_branches:
main:
required_signatures: true
# Attempt to make the auto-generated github emails more easily readable in email clients.
custom_subjects:
new_pr: "[PR] {title} ({repository})"
close_pr: "Re: [PR] {title} ({repository})"
comment_pr: "Re: [PR] {title} ({repository})"
diffcomment: "Re: [PR] {title} ({repository})"
merge_pr: "Re: [PR] {title} ({repository})"
new_issue: "[I] {title} ({repository})"
comment_issue: "Re: [I] {title} ({repository})"
close_issue: "Re: [I] {title} ({repository})"
catchall: "[GH] {title} ({repository})"
notifications:
commits: [email protected]
issues: [email protected]
pullrequests: [email protected]
66 changes: 66 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# 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
#
# https://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.

# Configuration here must match the one for Spotless in `pom.xml`!

root = true

[*]
indent_size = 4
ij_continuation_indent_size = 8
indent_style = space
trim_trailing_whitespace = true

# `ij_any_use_relative_indents = true` is deliberately left out since it messes up the indentation in ternary operator usages

# Split some things over multiple lines to keep lines short
ij_any_call_parameters_wrap = on_every_item
ij_any_method_parameters_wrap = on_every_item
ij_any_method_call_chain_wrap = on_every_item

# Don't align with the first line to avoid single-line changes having an impact in the rest of the code
ij_any_align_multiline_parameters_in_calls = false
ij_any_align_multiline_parameters = false
ij_any_align_multiline_chained_methods = false

# Only use `import *` when importing 5 or more
ij_java_names_count_to_use_import_on_demand = 5
ij_java_class_count_to_use_import_on_demand = 5

# Order imports
# `*` denotes any packages except explicitly specified ones
# `|` denotes a blank line
# `$` denotes the prefix for static packages
# `**` means including subpackages
ij_java_imports_layout = java.**, |, javax.**, |, org.apache.logging.**, |, *, |, $java.**, |, $javax.**, |, $org.apache.logging.**, |, $*

# Force curly braces
ij_any_for_brace_force = always
ij_any_if_brace_force = always
ij_any_do_while_brace_force = always
ij_any_while_brace_force = always

# Don't align parameters and exceptions in javadoc based on the longest names to avoid single-line changes having an impact in the rest of the code
ij_java_doc_align_param_comments = false
ij_java_doc_align_exception_comments = false

[*.{xml,xsd,properties,yml,yaml,json}]
indent_size = 2

[*.{md,adoc}]
indent_size = 2
ij_any_wrap_long_lines = false
# The `no` value doesn't work in IntelliJ IDEA so a big number does the trick as well in most cases:
max_line_length = 9999
34 changes: 20 additions & 14 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,14 +1,20 @@
##
# Every file recognized as text should use LF
* text=auto eol=lf
# These are checked by Spotless
*.java text eol=lf
*.properties text eol=lf
*.xml text eol=lf
*.yaml text eol=lf
*.yml text eol=lf
# Maven Wrapper need LF line endings
/.mvn/wrapper/maven-wrapper.properties eol=lf
# Maven Wrapper scripts
/mvnw text eol=lf
/mvnw.cmd text eol=crlf
# 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.

# Checked by Spotless (LF line endings)
*.java text eol=lf
*.xml text eol=lf
*.yaml text eol=lf
*.yml text eol=lf
File renamed without changes.
102 changes: 102 additions & 0 deletions .github/generate-email.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
#!/bin/bash
#
# 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.
#

SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)

stderr() {
echo "$*" 1>&2
}

fail_for_invalid_args() {
stderr "Invalid arguments!"
stderr "Expected arguments: <vote|announce> <version> <commitId>"
exit 1
}

# Check arguments
[ $# -ne 3 ] && fail_for_invalid_args

# Constants
PROJECT_NAME="Apache Log4j Transformation Tools"
PROJECT_REPO="https://github.com/apache/logging-log4j-transform"
PROJECT_DIST_DIR="https://dist.apache.org/repos/dist/dev/logging/log4j-transform"
PROJECT_VERSION="$2"
COMMIT_ID="$3"

# Check release notes file
RELEASE_NOTES_FILE="$SCRIPT_DIR/../target/release-notes/$PROJECT_VERSION.md"
[ -f "$RELEASE_NOTES_FILE" ] || {
stderr "Couldn't find release notes file: $RELEASE_NOTES_FILE"
exit 1
}

dump_release_notes() {
awk "f{print} /^# $PROJECT_VERSION/{f=1}" "$RELEASE_NOTES_FILE"
}

case $1 in

vote)
cat <<EOF
To: [email protected]
Title: [VOTE] Release $PROJECT_NAME $PROJECT_VERSION
This is a vote to release the $PROJECT_NAME $PROJECT_VERSION.
Source repository: $PROJECT_REPO
Commit: $COMMIT_ID
Distribution: $PROJECT_DIST_DIR
Nexus: https://repository.apache.org/content/repositories/orgapachelogging-1113
Signing key: 0x077e8893a6dcc33dd4a4d5b256e73ba9a0b592d0
Please download, test, and cast your votes on this mailing list.
[ ] +1, release the artifacts
[ ] -1, don't release, because...
This vote is open for 72 hours and will pass unless getting a
net negative vote count. All votes are welcome and we encourage
everyone to test the release, but only the Logging Services PMC
votes are officially counted. At least 3 +1 votes and more
positive than negative votes are required.
# Release Notes
EOF
dump_release_notes
;;

announce)
cat <<EOF
To: [email protected], [email protected]
Title: [ANNOUNCE] $PROJECT_NAME $PROJECT_VERSION released
${PROJECT_NAME}[1] team is pleased to announce the $PROJECT_VERSION
release. This project contains tools for binary postprocessing of
projects that use the Apache Log4j API. For further information
(support, download, etc.) see the project website[1].
[1] $PROJECT_REPO
# Release Notes
EOF
dump_release_notes
;;

*) fail_for_invalid_args

esac
63 changes: 63 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
#
# 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.
#

name: build

on:
push:
# Avoid workflow run for _merged_ `dependabot` PRs.
# They were (hopefully!) already tested in PR-triggered workflow.
branches-ignore:
- "dependabot/**"
paths-ignore:
- "**.adoc"
- "**.md"
- "**.txt"
pull_request:
paths-ignore:
- "**.adoc"
- "**.md"
- "**.txt"

permissions: read-all

jobs:

build:
uses: apache/logging-parent/.github/workflows/build-reusable.yaml@main
# Write permissions to allow merge of `dependabot` PRs
permissions:
contents: write
pull-requests: write

deploy-snapshot:
needs: build
if: github.repository == 'apache/logging-log4j-transform' && github.ref == 'refs/heads/main'
uses: apache/logging-parent/.github/workflows/deploy-snapshot-reusable.yaml@main
secrets: inherit

deploy-release:
needs: build
if: github.repository == 'apache/logging-log4j-transform' && startsWith(github.ref, 'refs/heads/release/')
uses: apache/logging-parent/.github/workflows/deploy-release-reusable.yaml@main
secrets: inherit
# Write permissions to allow the Maven `revision` property update, changelog release, etc.
permissions:
contents: write
with:
project-name: log4j-transform
distribution-attachment-count: 4
Loading

0 comments on commit 6533d5b

Please sign in to comment.