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>
|
<quickbuild>false</quickbuild>
|
||||||
</properties>
|
</properties>
|
||||||
</profile>
|
</profile>
|
||||||
<profile>
|
|
||||||
<id>sonatype-oss-release</id>
|
|
||||||
<properties>
|
|
||||||
<quickbuild>false</quickbuild>
|
|
||||||
</properties>
|
|
||||||
</profile>
|
|
||||||
<profile>
|
<profile>
|
||||||
<id>release</id>
|
<id>release</id>
|
||||||
<properties>
|
<properties>
|
||||||
@ -94,7 +88,7 @@
|
|||||||
</build>
|
</build>
|
||||||
</profile>
|
</profile>
|
||||||
<profile>
|
<profile>
|
||||||
<id>linux-native</id>
|
<id>linux</id>
|
||||||
<activation>
|
<activation>
|
||||||
<os>
|
<os>
|
||||||
<family>linux</family>
|
<family>linux</family>
|
||||||
|
70
pom.xml
70
pom.xml
@ -20,7 +20,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.sonatype.oss</groupId>
|
<groupId>org.sonatype.oss</groupId>
|
||||||
<artifactId>oss-parent</artifactId>
|
<artifactId>oss-parent</artifactId>
|
||||||
<version>7</version>
|
<version>9</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<groupId>io.netty</groupId>
|
<groupId>io.netty</groupId>
|
||||||
@ -122,7 +122,7 @@
|
|||||||
</properties>
|
</properties>
|
||||||
</profile>
|
</profile>
|
||||||
<profile>
|
<profile>
|
||||||
<id>linux-native</id>
|
<id>linux</id>
|
||||||
<activation>
|
<activation>
|
||||||
<os>
|
<os>
|
||||||
<family>linux</family>
|
<family>linux</family>
|
||||||
@ -132,6 +132,53 @@
|
|||||||
<module>transport-native-epoll</module>
|
<module>transport-native-epoll</module>
|
||||||
</modules>
|
</modules>
|
||||||
</profile>
|
</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>
|
</profiles>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
@ -190,14 +237,14 @@
|
|||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
<optional>true</optional>
|
<optional>true</optional>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- SPDY Example - completely optional -->
|
<!-- SPDY Example - completely optional -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.eclipse.jetty.npn</groupId>
|
<groupId>org.eclipse.jetty.npn</groupId>
|
||||||
<artifactId>npn-api</artifactId>
|
<artifactId>npn-api</artifactId>
|
||||||
<version>1.1.0.v20120525</version>
|
<version>1.1.0.v20120525</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.google.protobuf</groupId>
|
<groupId>com.google.protobuf</groupId>
|
||||||
<artifactId>protobuf-java</artifactId>
|
<artifactId>protobuf-java</artifactId>
|
||||||
@ -373,7 +420,6 @@
|
|||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
<artifactId>maven-enforcer-plugin</artifactId>
|
<artifactId>maven-enforcer-plugin</artifactId>
|
||||||
<version>1.3</version>
|
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
<execution>
|
||||||
<id>enforce-tools</id>
|
<id>enforce-tools</id>
|
||||||
@ -581,7 +627,7 @@
|
|||||||
<version>2.4.2</version>
|
<version>2.4.2</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<useReleaseProfile>false</useReleaseProfile>
|
<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>
|
<autoVersionSubmodules>true</autoVersionSubmodules>
|
||||||
<allowTimestampedSnapshots>false</allowTimestampedSnapshots>
|
<allowTimestampedSnapshots>false</allowTimestampedSnapshots>
|
||||||
<tagNameFormat>netty-@{project.version}</tagNameFormat>
|
<tagNameFormat>netty-@{project.version}</tagNameFormat>
|
||||||
@ -737,6 +783,18 @@
|
|||||||
|
|
||||||
<pluginManagement>
|
<pluginManagement>
|
||||||
<plugins>
|
<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 -->
|
<!-- keep surefire and failsafe in sync -->
|
||||||
<plugin>
|
<plugin>
|
||||||
<artifactId>maven-surefire-plugin</artifactId>
|
<artifactId>maven-surefire-plugin</artifactId>
|
||||||
|
Loading…
Reference in New Issue
Block a user