Enforce the release is performed only from RHEL 6.5 or equivalent
Motivation: Netty must be released from RHEL 6.5 x86_64 or compatible so that: 1) we ship x86_64 version of epoll transport officially, and 2) we ensure the ABI compatibility with older GLIBC versions. The shared library built on a distribution with newer GLIBC will not run on older distributions. Modifications: - When 'release' profile is active, perform an additional check using maven-enforcer-plugin so that 'mvn release:*' fails when running on non-RHEL6.5. This rule is active only when releasing, so a user should not be affected. - Simplify maven-release-plugin configuration by removing redundant profiles such as 'linux'. 'linux' is automatically activated when releasing because we now enforce the release occurs on linux-x86_64. - Remove the no-osgi profile, which is unused - Remove the reference to 'sonatype-oss-release' profile in all/pom.xml, because we always specify 'release' profile when releasing - Rename the profile 'linux-native' to 'linux' for brevity - Upgrade oss-parent and maven-enforcer-plugin Result: No one can make a mistake to release Netty on an environment that can produce incompatible or missing native library.
This commit is contained in:
parent
df93b35027
commit
a566164b98
@ -41,12 +41,6 @@
|
||||
<quickbuild>false</quickbuild>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>sonatype-oss-release</id>
|
||||
<properties>
|
||||
<quickbuild>false</quickbuild>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>release</id>
|
||||
<properties>
|
||||
@ -94,7 +88,7 @@
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>linux-native</id>
|
||||
<id>linux</id>
|
||||
<activation>
|
||||
<os>
|
||||
<family>linux</family>
|
||||
|
70
pom.xml
70
pom.xml
@ -20,7 +20,7 @@
|
||||
<parent>
|
||||
<groupId>org.sonatype.oss</groupId>
|
||||
<artifactId>oss-parent</artifactId>
|
||||
<version>7</version>
|
||||
<version>9</version>
|
||||
</parent>
|
||||
|
||||
<groupId>io.netty</groupId>
|
||||
@ -122,7 +122,7 @@
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>linux-native</id>
|
||||
<id>linux</id>
|
||||
<activation>
|
||||
<os>
|
||||
<family>linux</family>
|
||||
@ -132,6 +132,53 @@
|
||||
<module>transport-native-epoll</module>
|
||||
</modules>
|
||||
</profile>
|
||||
<!--
|
||||
Netty must be released from RHEL 6.5 x86_64 or compatible so that:
|
||||
|
||||
1) we ship x86_64 version of epoll transport officially, and
|
||||
2) we ensure the ABI compatibility with older GLIBC versions.
|
||||
|
||||
The shared library built on a distribution with newer GLIBC
|
||||
will not run on older distributions.
|
||||
-->
|
||||
<profile>
|
||||
<id>release</id>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-enforcer-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>enforce-release-environment</id>
|
||||
<goals>
|
||||
<goal>enforce</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<rules>
|
||||
<requireProperty>
|
||||
<regexMessage>
|
||||
Release process must be performed on linux-x86_64.
|
||||
</regexMessage>
|
||||
<property>os.detected.classifier</property>
|
||||
<regex>^linux-x86_64$</regex>
|
||||
</requireProperty>
|
||||
<requireFilesContent>
|
||||
<message>
|
||||
Release process must be performed on RHEL 6.5 or its derivatives.
|
||||
</message>
|
||||
<files>
|
||||
<file>/etc/redhat-release</file>
|
||||
</files>
|
||||
<content>release 6.5</content>
|
||||
</requireFilesContent>
|
||||
</rules>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
||||
<properties>
|
||||
@ -190,14 +237,14 @@
|
||||
<scope>compile</scope>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- SPDY Example - completely optional -->
|
||||
<dependency>
|
||||
<groupId>org.eclipse.jetty.npn</groupId>
|
||||
<artifactId>npn-api</artifactId>
|
||||
<version>1.1.0.v20120525</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>com.google.protobuf</groupId>
|
||||
<artifactId>protobuf-java</artifactId>
|
||||
@ -373,7 +420,6 @@
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-enforcer-plugin</artifactId>
|
||||
<version>1.3</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>enforce-tools</id>
|
||||
@ -581,7 +627,7 @@
|
||||
<version>2.4.2</version>
|
||||
<configuration>
|
||||
<useReleaseProfile>false</useReleaseProfile>
|
||||
<arguments>-P release,sonatype-oss-release,full,no-osgi,linux-native</arguments>
|
||||
<arguments>-P release,sonatype-oss-release,full</arguments>
|
||||
<autoVersionSubmodules>true</autoVersionSubmodules>
|
||||
<allowTimestampedSnapshots>false</allowTimestampedSnapshots>
|
||||
<tagNameFormat>netty-@{project.version}</tagNameFormat>
|
||||
@ -737,6 +783,18 @@
|
||||
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-enforcer-plugin</artifactId>
|
||||
<version>1.3.1</version>
|
||||
<dependencies>
|
||||
<!-- Provides the 'requireFilesContent' enforcer rule. -->
|
||||
<dependency>
|
||||
<groupId>com.ceilfors.maven.plugin</groupId>
|
||||
<artifactId>enforcer-rules</artifactId>
|
||||
<version>1.1.0</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</plugin>
|
||||
<!-- keep surefire and failsafe in sync -->
|
||||
<plugin>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
|
Loading…
Reference in New Issue
Block a user