You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by re...@apache.org on 2020/11/12 21:53:43 UTC

[uima-build-resources] branch UIMA-6298-Migrate-UIMA-Build-Resources-to-GitHub updated: [UIMA-6298] Migrate UIMA Build Resources to GitHub

This is an automated email from the ASF dual-hosted git repository.

rec pushed a commit to branch UIMA-6298-Migrate-UIMA-Build-Resources-to-GitHub
in repository https://gitbox.apache.org/repos/asf/uima-build-resources.git


The following commit(s) were added to refs/heads/UIMA-6298-Migrate-UIMA-Build-Resources-to-GitHub by this push:
     new 4d024ed  [UIMA-6298] Migrate UIMA Build Resources to GitHub
4d024ed is described below

commit 4d024ed9e5ae5f30c1b1be5794b751afd6fd256c
Author: Richard Eckart de Castilho <re...@apache.org>
AuthorDate: Thu Nov 12 22:53:07 2020 +0100

    [UIMA-6298] Migrate UIMA Build Resources to GitHub
    
    - Changed SCM from SVN to GIT
    - Added Jenkinsfile
    - Added .gitignore and .gitattributes
    - Added asl.yaml
    - Added GitHub pull requeest template
    - Added README.md
---
 .asf.yaml                        |  40 ++++++++++++++
 .gitattributes                   |  20 +++++++
 .github/PULL_REQUEST_TEMPLATE.md |  18 +++++++
 .gitignore                       |  12 +++++
 Jenkinsfile                      | 110 +++++++++++++++++++++++++++++++++++++++
 README.md                        |   7 +++
 pom.xml                          | 102 +++++++++++++++++-------------------
 7 files changed, 256 insertions(+), 53 deletions(-)

diff --git a/.asf.yaml b/.asf.yaml
new file mode 100644
index 0000000..b58f16c
--- /dev/null
+++ b/.asf.yaml
@@ -0,0 +1,40 @@
+#   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.
+github:
+  description: "Apache UIMA Build Resources"
+  homepage: https://uima.apache.org
+notifications:
+    commits:      commits@uima.apache.org
+    issues:       dev@uima.apache.org
+    pullrequests: dev@uima.apache.org
+    jira_options: link label
+github:
+  features:
+    # Enable wiki for documentation
+    wiki: false
+    # Enable issue management
+    issues: false
+    # Enable projects for project management boards
+    projects: false
+  enabled_merge_buttons:
+    # enable squash button:
+    squash:  true
+    # enable merge button:
+    merge:   true
+    # disable rebase button:
+    rebase:  false
+    
\ No newline at end of file
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..e708bb1
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,20 @@
+# Set the default behavior, in case people don't have core.autocrlf set.
+#   means that files that GIT determines to be text files, will be 
+#     converted from CRLF -> LF upon being added to the repo, and
+#     converted from LF -> LF or CRLF when checked out (depending on the platform, I think)
+* text=auto
+
+# Make sure that these files are treated as binary so that newlines are preserved.
+#   overrides GIT's determination if a file is text or not
+*.bin binary
+*.dump binary
+*.xcas binary
+*.xmi binary
+#  next is probably the default
+*.pdf binary
+
+# These files cannot have crlf, must have just lf
+# The "text" by itself says these files must be line-ending-conversion controlled on check-in / out
+#   The internal repo form for these is always lf, 
+#   The eol=lf means on check-out do nothing, and on check-in, if the file has crlf, convert to lf
+*.sh text eol=lf
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 0000000..be60b81
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,18 @@
+**JIRA Ticket:** https://issues.apache.org/jira/browse/UIMA-XXXX
+
+**What's in the PR**
+* ...
+
+**How to test manually**
+* ...
+
+**Automatic testing**
+* [ ] *PR adds/updates unit tests*
+
+**Documentation**
+* [ ] *PR adds/updates documentation*
+
+**Organizational**
+- [ ] *PR includes new dependencies.* Only dependencies under [approved licenses](http://www.apache.org/legal/resolved.html#category-a) are allowed.
+      LICENSE and NOTICE files in the respective modules where dependencies have been added as
+      well as in the project root have been updated.
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..043d64d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,12 @@
+.classpath
+.project
+.settings
+target
+META-INF
+checkpoint_synchPoint.xml
+checkpoint_synchPoint.xml.prev
+checkpoint.dat
+checkpoint.dat.prev
+api-change-report
+.factorypath
+issuesFixed
diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 0000000..cc06c8b
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,110 @@
+// 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.
+  
+pipeline {
+  agent any
+  
+  tools { 
+    maven 'maven_latest' 
+    jdk 'jdk_11_latest' 
+  }
+
+  options {
+    buildDiscarder(logRotator(
+      numToKeepStr: '25', 
+      artifactNumToKeepStr: '5'
+    ))
+    
+    // Seems not to be working reliably yet: https://issues.jenkins-ci.org/browse/JENKINS-48556
+    // timestamps()
+  }
+  
+  parameters {
+    string(
+      name: 'extraMavenArguments',
+      defaultValue: "",
+      description: "Extra arguments to be passed to maven (for testing)")
+  }
+
+  stages {
+    // Display information about the build environemnt. This can be useful for debugging
+    // build issues.
+    stage("Build info") {
+      steps {
+        echo '=== Environment variables ==='
+        script {
+          if (isUnix()) {
+            sh 'printenv'
+          }
+          else {
+            bat 'set'
+          }
+        }
+      }
+    }
+        
+    // Perform a merge request build. This is a conditional stage executed with the GitLab
+    // sources plugin triggers a build for a merge request. To avoid conflicts with other
+    // builds, this stage should not deploy artifacts to the Maven repository server and
+    // also not install them locally.
+    stage("Pull request build") {
+      when { branch 'PR-*' }
+    
+      steps {
+        script {
+          currentBuild.description = 'Triggered by: <a href="' + CHANGE_URL + '">' + BRANCH_NAME +
+            ': ' + env.CHANGE_BRANCH + '</a> (' +  env.CHANGE_AUTHOR_DISPLAY_NAME + ')'
+        }
+
+        withMaven() {
+          sh script: 'mvn ' +
+            params.extraMavenArguments +
+            ' -U -Dmaven.test.failure.ignore=true clean verify'
+        }
+        
+        script {
+          def mavenConsoleIssues = scanForIssues tool: mavenConsole()
+          def javaIssues = scanForIssues tool: java()
+          def javaDocIssues = scanForIssues tool: javaDoc()
+          publishIssues issues: [mavenConsoleIssues, javaIssues, javaDocIssues]
+        }
+      }
+    }
+    
+    // Perform a SNAPSHOT build of a main branch. This stage is typically executed after a
+    // merge request has been merged. On success, it deploys the generated artifacts to the
+    // Maven repository server.
+    stage("SNAPSHOT build") {
+      when { branch pattern: "master|master-v2", comparator: "REGEXP" }
+      
+      steps {
+        withMaven() {
+          sh script: 'mvn ' +
+            params.extraMavenArguments +
+            ' -U -Dmaven.test.failure.ignore=true clean deploy'
+        }
+        
+        script {
+          def mavenConsoleIssues = scanForIssues tool: mavenConsole()
+          def javaIssues = scanForIssues tool: java()
+          def javaDocIssues = scanForIssues tool: javaDoc()
+          publishIssues issues: [mavenConsoleIssues, javaIssues, javaDocIssues]
+        }
+      }
+    }
+  }
+}
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..0d1559e
--- /dev/null
+++ b/README.md
@@ -0,0 +1,7 @@
+[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.apache.uima/uima-build-resources/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.apache.uima/uima-build-resources/)
+
+Apache UIMA Build Resources
+---------------------------
+
+This repository contains the resources used for the Maven-based build processes of the Apache 
+UIMA projects.
diff --git a/pom.xml b/pom.xml
index 4ff05c8..edd73c6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,107 +1,103 @@
 <!--
 
-    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.
+  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.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
     <groupId>org.apache.uima</groupId>
     <artifactId>parent-pom</artifactId>
     <version>6</version>
-    <relativePath>../parent-pom</relativePath>
+    <relativePath/>
   </parent>
-  
+
   <artifactId>uima-build-resources</artifactId>
   <version>6-SNAPSHOT</version>
-  
+
   <name>Apache UIMA ${project.artifactId}</name>
   <description>This Jar contains resources
     referred to by maven coordinates,
     needed during building
   </description>
- 
+
   <inceptionYear>2010</inceptionYear>
-  
+
   <scm>
     <connection>
-      scm:svn:http://svn.apache.org/repos/asf/uima/build/trunk/uima-build-resources
+      scm:git:https://github.com/apache/uima-build-resources
     </connection>
     <developerConnection>
-      scm:svn:https://svn.apache.org/repos/asf/uima/build/trunk/uima-build-resources
+      scm:git:https://github.com/apache/uima-build-resources
     </developerConnection>
     <url>
-      http://svn.apache.org/viewvc/uima/build/trunk/uima-build-resources
+      https://github.com/apache/uima-build-resources/tree/master
     </url>
   </scm>
-      
+
   <properties>
-    <jiraVersion>12321548</jiraVersion>  
+    <jiraVersion>12321548</jiraVersion>
     <uimaWebsiteUrl>http://uima.apache.org</uimaWebsiteUrl>
     <uimaWebsiteDistributionUrl>scp://people.apache.org/www/uima.apache.org/</uimaWebsiteDistributionUrl>
   </properties>
 
   <build>
-    
     <plugins>
-      
-      <!-- Call the Bundle goal for the remote-resources plugin -->          
+      <!-- Call the Bundle goal for the remote-resources plugin -->
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-remote-resources-plugin</artifactId>
-        <executions>      
+        <executions>
           <execution>
-            <goals><goal>bundle</goal></goals>
+            <goals>
+              <goal>bundle</goal>
+            </goals>
           </execution>
         </executions>
       </plugin>
-                            
-    </plugins>     
-    
+    </plugins>
   </build>
-  
+
   <profiles>
     <profile>
       <id>apache-release</id>
- 
       <properties>
         <sourceReleaseAssemblyDescriptor>source-release</sourceReleaseAssemblyDescriptor>
       </properties>
       <build>
         <plugins>
-        
-          <!-- use "standard" source-release assembly -->         
-	        <plugin>
-	          <artifactId>maven-changes-plugin</artifactId>
-	          <executions>
-	            <execution>
-	              <id>default-cli</id>
-	              <configuration>
-	                <fixVersionIds>${jiraVersion}</fixVersionIds>
-	                <sortColumnNames>Status, Key, Type</sortColumnNames>
-	              </configuration>
-	            </execution>
-	          </executions>
-	        </plugin>     
+          <!-- use "standard" source-release assembly -->
+          <plugin>
+            <artifactId>maven-changes-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>default-cli</id>
+                <configuration>
+                  <fixVersionIds>${jiraVersion}</fixVersionIds>
+                  <sortColumnNames>Status, Key, Type</sortColumnNames>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
         </plugins>
       </build>
     </profile>
-    
   </profiles>
-
 </project>
\ No newline at end of file