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/10 13:55:24 UTC

[uima-parent-pom] 01/01: [UIMA-6293] Migrate UIMA Parent POM to GitHub

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

rec pushed a commit to branch feature/UIMA-6293-Migrate-UIMA-Parent-POM-to-GitHub
in repository https://gitbox.apache.org/repos/asf/uima-parent-pom.git

commit 3292f436050d017c6b7e3e34bf5eed5b411b69a2
Author: Richard Eckart de Castilho <re...@apache.org>
AuthorDate: Tue Nov 10 14:55:23 2020 +0100

    [UIMA-6293] Migrate UIMA Parent POM to GitHub
    
    - Added Jenkinsfile
    - Updated README
    - Added ASF.yaml
    - Added git configuration files
    - Added pull-request template
---
 .asf.yaml                        |  40 ++++++++++++++
 .gitattributes                   |  20 +++++++
 .github/PULL_REQUEST_TEMPLATE.md |  18 +++++++
 .gitignore                       |  12 +++++
 Jenkinsfile                      | 110 +++++++++++++++++++++++++++++++++++++++
 README.md                        |   5 ++
 README.txt                       |  12 -----
 7 files changed, 205 insertions(+), 12 deletions(-)

diff --git a/.asf.yaml b/.asf.yaml
new file mode 100644
index 0000000..7b182c0
--- /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 Parent POM"
+  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..87e16d0
--- /dev/null
+++ b/README.md
@@ -0,0 +1,5 @@
+Apache UIMA Parent POM
+----------------------
+
+This project contains the top-level Maven Parent POM for the Apache UIMA projects. The parent POMs
+in the various sub-projects of Apache UIMA inherit from it.
\ No newline at end of file
diff --git a/README.txt b/README.txt
deleted file mode 100644
index 51909d0..0000000
--- a/README.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Building from SVN Checkout:
----------------------------
-
-Download and install Maven 3, and Java 1.8, if needed.
-
-Go into the parent-pom directory, and issue the maven command:
-
-   mvn clean install
-   
-A list of issues fixed is in issuesFixed/jira-report.html, in the source-release distr.
-It's a file generated during the release, and is not in SVN.
-