[VOTE] Release Apache Log4j 3.0.0-beta2 RC1
This is a vote to release the Apache Log4j 3.0.0-beta2. Website: https://logging.staged.apache.org/log4j/3.x/ GitHub: https://github.com/apache/logging-log4j2 Commit: 086db24a04f905b40649666aafe3bb4778a75291 Distribution: https://dist.apache.org/repos/dist/dev/logging/log4j Nexus: https://repository.apache.org/content/repositories/orgapachelogging-1259 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. Countdown: https://www.timeanddate.com/countdown/generic?iso=20240221T0807&p0=1440&font=cursive == Verification instructions The following environment is required to verify the build: * any UNIX OS, * JDK 17 Short verification procedure: # Download distribution wget --recursive --no-parent --cut-dirs=5 --no-host-directories \ https://dist.apache.org/repos/dist/dev/logging/log4j/ # Verify hashes sha512sum -c *sha512 # Verify signatures for sig in *asc; do gpg --verify $sig; done # Prepare build environment: unzip -d src apache-log4j-3.0.0-beta2-src.zip && cd src umask 0022 # Run build and verification ./mvnw clean verify artifact:compare -Prelease \ -Dreference.repo=https://repository.apache.org/content/repositories/orgapachelogging-1258 == Release Notes This release provides a continuation of the modularisation process of Log4j Core. The following features were moved to separate artifacts: * The async logger feature was moved to `log4j-async-logger` and it was upgraded to use LMAX Disruptor 4.x. The async appender is still available by default in `log4j-core`. * The YAML configuration is available now in `log4j-config-yaml`. * The Java properties configuration was removed and replaced with a similar format based on `jackson-dataformat-properties` in a new `log4j-config-properties` artifact. Other features were removed: * Jetty 9.x users are encouraged to migrate to Jetty 10.x or later and replace `log4j-appserver` with `log4j-slf4j2-impl`. * Tomcat JULI support will be available from a third-party (cf. https://github.com/copernik-eu/log4j-plugins). * Apache Commons Logging users are encouraged to upgrade `commons-logging` to version 1.3.0 or later and remove `log4j-jcl`. * Support for the XML layout was dropped. * Support for JMX was dropped and will be replaced with a more recent technology. === Added * Add and update DSLs for setting up dependency injection for test and non-test code. (#2147) * Add a `ConfigurationExtension` mechanism to allow third-party JARs to extend the `` element. * Add a new properties configuration factory based on `jackson-dataformat-properties`. === Changed * Change the order of evaluation of `FormattedMessage` formatters. Messages are evaluated using `java.util.Format` only if they don't comply to the `java.text.MessageFormat` or `ParameterizedMessage` format. (#1223) * Split off async logger support into a new `log4j-async-logger` module. * Split off YAML configuration into a new `log4j-config-yaml` module. === Fixed * Rewrote message parameter formatter with improved escape handling (#1626) * The MongoDb4 appender now supports long values to configure `collectionSize` (#1747) * Mark `JdkMapAdapterStringMap` as frozen if map is immutable. (#2098) * Fix regression in `JdkMapAdapterStringMap` performance. (#2238) * Prevents ClassCastException when trying to assign a SimpleLoggerContext to a core LoggerContext (LOG4J2-1921) * Possible NullPointerException in MongoDb4DocumentObject, MongoDbDocumentObject, DefaultNoSqlObject. (LOG4J2-3392) * Fix NPE in `CloseableThreadContext`. (#1426) * Fix NPE in `RollingFileManager`. (#1645) * Fix `log4j-spring-cloud-config-client` dependencies to include only those required. (2157) * Workaround a Coursier/Ivy dependency resolution bug affecting `log4j-slf4j-impl` and `log4j-mongodb3`. (#2065) === Removed * Removed legacy `2.x` properties configuration factory. * Remove `DefaultLogEventFactory` * Remove `log4j-appserver` module (#2257) * Remove `org.apache.logging.log4j.core.parser` and related packages. (#2154) * Remove `log4j-jcl` module (#2257) * Removed JMX support. * Remove `log4j-layout-jackson` module (#2198) * Remove `log4j-layout-jackson-xml` module (#2198) * Remove `log4j2.enable.threadlocals` property (#2105) === Updated * Update `apache/logging-parent` to version `` (#2191) * Update `com.fasterxml.jackson:jackson-bom` to version `2.16.1` (#2127) * Update `commons-codec:commons-codec` to version `1.16.1` (#2276) * Update `io.netty:netty-bom` to version `4.1.107.Final` (#2283) * Update `org.apache.logging:logging-parent` to version `10.6.0` (#2193) * Update `org.apache.tomcat:tomcat-juli` to version `10.1.18` (#2176) * Update `org.eclipse.jetty:jetty-bom` to versi
Re: [VOTE] Release Apache Log4j 3.0.0-beta2 RC1
+1 Note that the verification instructions below or the distro process or both need changes because the wget and all commands get EVERYTHING and work on EVERYTHING, which in this case means that BOTH release candidates for 2.23.0 and 3.0.0-beta2 are downloaded and instructions work on both at the same time, obviously not the intent. Over at Commons, we account for this use case by using the version in the distro folder, so, for example, here you'd RC in https://dist.apache.org/repos/dist/dev/logging/log4j/3.0.0-beta2, not https://dist.apache.org/repos/dist/dev/logging/log4j - Tested src zip file - ASC OK - SHA512 OK - mvn clean verify OK Using: openjdk version "17.0.9" 2023-10-17 OpenJDK Runtime Environment Homebrew (build 17.0.9+0) OpenJDK 64-Bit Server VM Homebrew (build 17.0.9+0, mixed mode, sharing) Apache Maven 3.9.6 (bc0240f3c744dd6b6ec2920b3cd08dcc295161ae) Maven home: /usr/local/Cellar/maven/3.9.6/libexec Java version: 17.0.9, vendor: Homebrew, runtime: /usr/local/Cellar/openjdk@17/17.0.9/libexec/openjdk.jdk/Contents/Home Default locale: en_US, platform encoding: UTF-8 OS name: "mac os x", version: "14.3.1", arch: "x86_64", family: "mac" Darwin 23.3.0 Darwin Kernel Version 23.3.0: Wed Dec 20 21:28:58 PST 2023; root:xnu-10002.81.5~7/RELEASE_X86_64 x86_64 Gary On Sun, Feb 18, 2024 at 8:07 AM Piotr P. Karwasz wrote: > > This is a vote to release the Apache Log4j 3.0.0-beta2. > > Website: https://logging.staged.apache.org/log4j/3.x/ > GitHub: https://github.com/apache/logging-log4j2 > Commit: 086db24a04f905b40649666aafe3bb4778a75291 > Distribution: https://dist.apache.org/repos/dist/dev/logging/log4j > Nexus: > https://repository.apache.org/content/repositories/orgapachelogging-1259 > 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. > > Countdown: > https://www.timeanddate.com/countdown/generic?iso=20240221T0807&p0=1440&font=cursive > > == Verification instructions > > The following environment is required to verify the build: > * any UNIX OS, > * JDK 17 > > Short verification procedure: > > # Download distribution > wget --recursive --no-parent --cut-dirs=5 --no-host-directories \ > https://dist.apache.org/repos/dist/dev/logging/log4j/ > # Verify hashes > sha512sum -c *sha512 > # Verify signatures > for sig in *asc; do gpg --verify $sig; done > # Prepare build environment: > unzip -d src apache-log4j-3.0.0-beta2-src.zip && cd src > umask 0022 > # Run build and verification > ./mvnw clean verify artifact:compare -Prelease \ > -Dreference.repo=https://repository.apache.org/content/repositories/orgapachelogging-1258 > > == Release Notes > > This release provides a continuation of the modularisation process of > Log4j Core. > The following features were moved to separate artifacts: > > * The async logger feature was moved to `log4j-async-logger` and it > was upgraded to use LMAX Disruptor 4.x. > The async appender is still available by default in `log4j-core`. > * The YAML configuration is available now in `log4j-config-yaml`. > * The Java properties configuration was removed and replaced with a > similar format based on `jackson-dataformat-properties` in a new > `log4j-config-properties` artifact. > > Other features were removed: > > * Jetty 9.x users are encouraged to migrate to Jetty 10.x or later and > replace `log4j-appserver` with `log4j-slf4j2-impl`. > * Tomcat JULI support will be available from a third-party (cf. > https://github.com/copernik-eu/log4j-plugins). > * Apache Commons Logging users are encouraged to upgrade > `commons-logging` to version 1.3.0 or later and remove `log4j-jcl`. > * Support for the XML layout was dropped. > * Support for JMX was dropped and will be replaced with a more recent > technology. > > === Added > > * Add and update DSLs for setting up dependency injection for test and > non-test code. (#2147) > * Add a `ConfigurationExtension` mechanism to allow third-party JARs > to extend the `` element. > * Add a new properties configuration factory based on > `jackson-dataformat-properties`. > > === Changed > > * Change the order of evaluation of `FormattedMessage` formatters. > Messages are evaluated using `java.util.Format` only if they don't > comply to the `java.text.MessageFormat` or `ParameterizedMessage` > format. (#1223) > * Split off async logger support into a new `log4j-async-logger` module. > * Split off YAML configuration into a new `log4j-config-yaml` module. > > === Fixed > > * Rewrote message parameter formatter with improved escape handling (#1626) > * The MongoDb4 appender now supports long values to configure > `collectionSize` (#1747) > * Mark `JdkMapAdapterStringMap`
Distribution location was: [VOTE] Release Apache Log4j 3.0.0-beta2 RC1
Hi Gary, On Sun, 18 Feb 2024 at 15:12, Gary Gregory wrote: > Note that the verification instructions below or the distro process or > both need changes because the wget and all commands get EVERYTHING and > work on EVERYTHING, which in this case means that BOTH release > candidates for 2.23.0 and 3.0.0-beta2 are downloaded and instructions > work on both at the same time, obviously not the intent. > > Over at Commons, we account for this use case by using the version in > the distro folder, so, for example, here you'd RC in > https://dist.apache.org/repos/dist/dev/logging/log4j/3.0.0-beta2, not > https://dist.apache.org/repos/dist/dev/logging/log4j +1 for version specific folders. You didn't notice it but the CI removed the 2.23.0 distribution files, when it committed 3.0.0-beta2. How exactly does `dist.apache.org` work with `archive.apache.org`? Will it still work with directories like `/log4j/3.0.0-beta2/`? Piotr
Re: Distribution location was: [VOTE] Release Apache Log4j 3.0.0-beta2 RC1
Just navigate to https://archive.apache.org/dist/logging/ and take a look. Note that under log4j you will find version directories. Under log4j-audit you will not find directories. Basically it is however they get added to https://dist.apache.org/repos/dist/dev/logging/. It is just a mirror of what gets committed there. I would suggest it makes sense to use version directories on a project that has lots of releases. For consistency it would make sense to do that everywhere but that ship has already sailed for existing projects. Ralph > On Feb 18, 2024, at 10:09 AM, Piotr P. Karwasz > wrote: > > Hi Gary, > > On Sun, 18 Feb 2024 at 15:12, Gary Gregory wrote: >> Note that the verification instructions below or the distro process or >> both need changes because the wget and all commands get EVERYTHING and >> work on EVERYTHING, which in this case means that BOTH release >> candidates for 2.23.0 and 3.0.0-beta2 are downloaded and instructions >> work on both at the same time, obviously not the intent. >> >> Over at Commons, we account for this use case by using the version in >> the distro folder, so, for example, here you'd RC in >> https://dist.apache.org/repos/dist/dev/logging/log4j/3.0.0-beta2, not >> https://dist.apache.org/repos/dist/dev/logging/log4j > > +1 for version specific folders. > > You didn't notice it but the CI removed the 2.23.0 distribution files, > when it committed 3.0.0-beta2. > > How exactly does `dist.apache.org` work with `archive.apache.org`? > Will it still work with directories like `/log4j/3.0.0-beta2/`? > > Piotr
Re: Distribution location was: [VOTE] Release Apache Log4j 3.0.0-beta2 RC1
Hi Ralph, On Mon, 19 Feb 2024 at 05:03, Ralph Goers wrote: > > Just navigate to https://archive.apache.org/dist/logging/ and take a look. > Note that under log4j you will find version directories. Under log4j-audit > you will not find directories. Basically it is however they get added to > https://dist.apache.org/repos/dist/dev/logging/. It is just a mirror of what > gets committed there. Thanks for the explanation. I didn't notice that https://dist.apache.org/repos/dist/release/logging/ and https://dist.apache.org/repos/dist/dev/logging/ has a different directory structure: the former has directories like /log4j/2.22.1, the latter only /log4j. Therefore we probably just need to upload the RCs to `/dist/dev/logging/log4j/2.x` and `/dist/dev/logging/log4j/3.x`. The release manager will then move them to the appropriate folder in `/dist/release/logging/log4j`. Piotr
Re: [VOTE] Release Apache Log4j 2.23.0 RC1
+1 On Sat, Feb 17, 2024 at 2:15 PM Piotr P. Karwasz wrote: > This is a vote to release the Apache Log4j 2.23.0. > > Website: https://logging.staged.apache.org/log4j/2.x/ > GitHub: https://github.com/apache/logging-log4j2 > Commit: 73da9013314ba8afe459baf52f3360ca1a2df51f > Distribution: https://dist.apache.org/repos/dist/dev/logging/log4j > Nexus: > https://repository.apache.org/content/repositories/orgapachelogging-1258 > 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. > > Countdown: > https://www.timeanddate.com/countdown/generic?iso=20240220T1315&p0=1440&font=cursive > > == Verification instructions > > The following environment is required to verify the build: > * any UNIX OS, > * JDK 17 > > Short verification procedure: > > # Download distribution > wget --recursive --no-parent --cut-dirs=5 --no-host-directories > https://dist.apache.org/repos/dist/dev/logging/log4j/ > # Verify hashes > sha512-sum -c *sha512 > # Verify signatures > for sig in *asc; do gpg --verify $sig; done > # Prepare build environment: > unzip -d src apache-log4j-2.23.0-src.zip && cd src > umask 0022 > # Run build and verification > ./mvnw clean verify -Prelease > -Dreference.repo= > https://repository.apache.org/content/repositories/orgapachelogging-1258 > > == Release Notes > > This release adds support for LMAX Disruptor 4.x and several > performance and bug fixes. > > In order to maintain compatibility with JRE 8, support for LMAX > Disruptor 3.x is maintained. > > === Added > > * Added support for LMAX Disruptor 4.x (#1821) > > === Changed > > * Simplify BND configuration after upgrade from version `6.4.1` to `7.0.0` > > === Deprecated > > * Deprecate the configuration attribute `verbose` (i.e., > ` (#2226) > * Deprecated the `RingBufferLogEventHandler` class for removal from > the public API in 3.x > > === Fixed > > * Fix regression in `JdkMapAdapterStringMap` performance. (#2238) > * Fix the behavior of `Logger#setLevel` and `Logger#getLevel` in the > Log4j 1.2 bridge. (#2282) > * Fix the behavior of `CoreLogger#getLevel` and `CoreLogger#setLevel` > in the `log4j-jul` module. (#2282) > * Allow deserialization of all arrays of allowed classes. > (https://issues.apache.org/jira/browse/LOG4J2-3680[LOG4J2-3680]) > * Allow the node to appear in any position in the > configuration element. > * Fix forgotten `threadName` field in `RingBufferLogEvent#clear()` (#2234) > * Fix `StringBuilder` cache corruption on recursive access > * Fixed use of `SecurityManager` in `LoaderUtil` where > `AccessController::doPrivileged` should only be invoked when a > `SecurityManager` is installed. Some runtimes do not seem to have this > method available. (#2129) > * Fix `log4j-spring-cloud-config-client` dependencies to include only > those required. (#2157) > * Fix typo in Kubernetes `clientKeyData` configuration property. > > === Updated > > * Update `com.fasterxml.jackson:jackson-bom` to version `2.16.1` (#2126) > * Update `commons-codec:commons-codec` to version `1.16.1` (#2277) > * Update `io.netty:netty-bom` to version `4.1.107.Final` (#2284) > * Update `org.apache.logging:logging-parent` to version `10.6.0` (#2197) > * Update `org.eclipse.jetty:jetty-bom` to version `9.4.54.v20240208` > (#2287) > * Update `org.jctools:jctools-core` to version `4.0.3` (#2270) > * Update `org.springframework:spring-framework-bom` to version `5.3.32` > (#2293) > * Update `org.zeromq:jeromq` to version `0.6.0` (#2271) > > Piotr >
Re: [VOTE] Release Apache Log4j 3.0.0-beta2 RC1
+1 On Sun, Feb 18, 2024 at 9:06 AM Piotr P. Karwasz wrote: > This is a vote to release the Apache Log4j 3.0.0-beta2. > > Website: https://logging.staged.apache.org/log4j/3.x/ > GitHub: https://github.com/apache/logging-log4j2 > Commit: 086db24a04f905b40649666aafe3bb4778a75291 > Distribution: https://dist.apache.org/repos/dist/dev/logging/log4j > Nexus: > https://repository.apache.org/content/repositories/orgapachelogging-1259 > 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. > > Countdown: > https://www.timeanddate.com/countdown/generic?iso=20240221T0807&p0=1440&font=cursive > > == Verification instructions > > The following environment is required to verify the build: > * any UNIX OS, > * JDK 17 > > Short verification procedure: > > # Download distribution > wget --recursive --no-parent --cut-dirs=5 --no-host-directories \ > https://dist.apache.org/repos/dist/dev/logging/log4j/ > # Verify hashes > sha512sum -c *sha512 > # Verify signatures > for sig in *asc; do gpg --verify $sig; done > # Prepare build environment: > unzip -d src apache-log4j-3.0.0-beta2-src.zip && cd src > umask 0022 > # Run build and verification > ./mvnw clean verify artifact:compare -Prelease \ > -Dreference.repo= > https://repository.apache.org/content/repositories/orgapachelogging-1258 > > == Release Notes > > This release provides a continuation of the modularisation process of > Log4j Core. > The following features were moved to separate artifacts: > > * The async logger feature was moved to `log4j-async-logger` and it > was upgraded to use LMAX Disruptor 4.x. > The async appender is still available by default in `log4j-core`. > * The YAML configuration is available now in `log4j-config-yaml`. > * The Java properties configuration was removed and replaced with a > similar format based on `jackson-dataformat-properties` in a new > `log4j-config-properties` artifact. > > Other features were removed: > > * Jetty 9.x users are encouraged to migrate to Jetty 10.x or later and > replace `log4j-appserver` with `log4j-slf4j2-impl`. > * Tomcat JULI support will be available from a third-party (cf. > https://github.com/copernik-eu/log4j-plugins). > * Apache Commons Logging users are encouraged to upgrade > `commons-logging` to version 1.3.0 or later and remove `log4j-jcl`. > * Support for the XML layout was dropped. > * Support for JMX was dropped and will be replaced with a more recent > technology. > > === Added > > * Add and update DSLs for setting up dependency injection for test and > non-test code. (#2147) > * Add a `ConfigurationExtension` mechanism to allow third-party JARs > to extend the `` element. > * Add a new properties configuration factory based on > `jackson-dataformat-properties`. > > === Changed > > * Change the order of evaluation of `FormattedMessage` formatters. > Messages are evaluated using `java.util.Format` only if they don't > comply to the `java.text.MessageFormat` or `ParameterizedMessage` > format. (#1223) > * Split off async logger support into a new `log4j-async-logger` module. > * Split off YAML configuration into a new `log4j-config-yaml` module. > > === Fixed > > * Rewrote message parameter formatter with improved escape handling (#1626) > * The MongoDb4 appender now supports long values to configure > `collectionSize` (#1747) > * Mark `JdkMapAdapterStringMap` as frozen if map is immutable. (#2098) > * Fix regression in `JdkMapAdapterStringMap` performance. (#2238) > * Prevents ClassCastException when trying to assign a > SimpleLoggerContext to a core LoggerContext (LOG4J2-1921) > * Possible NullPointerException in MongoDb4DocumentObject, > MongoDbDocumentObject, DefaultNoSqlObject. (LOG4J2-3392) > * Fix NPE in `CloseableThreadContext`. (#1426) > * Fix NPE in `RollingFileManager`. (#1645) > * Fix `log4j-spring-cloud-config-client` dependencies to include only > those required. (2157) > * Workaround a Coursier/Ivy dependency resolution bug affecting > `log4j-slf4j-impl` and `log4j-mongodb3`. (#2065) > > === Removed > > * Removed legacy `2.x` properties configuration factory. > * Remove `DefaultLogEventFactory` > * Remove `log4j-appserver` module (#2257) > * Remove `org.apache.logging.log4j.core.parser` and related packages. > (#2154) > * Remove `log4j-jcl` module (#2257) > * Removed JMX support. > * Remove `log4j-layout-jackson` module (#2198) > * Remove `log4j-layout-jackson-xml` module (#2198) > * Remove `log4j2.enable.threadlocals` property (#2105) > > === Updated > > * Update `apache/logging-parent` to version `` (#2191) > * Update `com.fasterxml.jackson:jackson-bom` to version `2.16.1` (#2127) > * Update `commons-codec:commons-