You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@turbine.apache.org by gk...@apache.org on 2021/12/09 16:27:26 UTC

[turbine-build] branch master created (now 1cbf019)

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

gk pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-build.git.


      at 1cbf019  Update README

This branch includes the following new commits:

     new bb62c70  First commit for Turbine Build
     new b897f80  add README
     new 1cbf019  Update README

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[turbine-build] 03/03: Update README

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-build.git

commit 1cbf0199acd57f897da3c115a66c24a5150c78db
Author: Georg Kallidis <gk...@cedis.fu-berlin.de>
AuthorDate: Thu Dec 9 17:26:06 2021 +0100

    Update README
---
 README.md | 13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)

diff --git a/README.md b/README.md
index 2f33f7d..6d57315 100644
--- a/README.md
+++ b/README.md
@@ -267,13 +267,9 @@ Find more information [here](https://cwiki.apache.org/confluence/display/INFRA/g
 
 - Generate the site in master branch and optionally save it somewhere
 
-**Single Module**
 
     mvn site
 
-**Multi Module**
-
-    mvn site site:stage
 
 - Save target/site or target/staging into another folder (target may be ignored, but to be sure)
 
@@ -281,7 +277,7 @@ Find more information [here](https://cwiki.apache.org/confluence/display/INFRA/g
 
     whoami: asf-site
 
-- Copy content of saved copy or target/site (single module), target/staging (multi module) to *the root of the branch*
+- Copy content of saved copy or target/site (single module) to *the root of the branch*
 
 - Commit and push (this triggers the site update, if not contact INFRA)
 
@@ -289,13 +285,6 @@ Find more information [here](https://cwiki.apache.org/confluence/display/INFRA/g
 
 The second steps are not yet tested with GIT repos (2021). Use instead the workflow above (using GIT commands). 
 
-**Multi Module**
-
-    mvn clean site site:stage
-    mvn scm-publish:publish-scm -Dscmpublish.dryRun=true
-
-**Single**
-
 Omit site:stage, which reqires site element definition in distributionManagement
 
     mvn site scm-publish:publish-scm -Dscmpublish.dryRun=true

[turbine-build] 02/03: add README

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-build.git

commit b897f801fe5ead3c1b50d620049913bb8c8a96d9
Author: Georg Kallidis <gk...@cedis.fu-berlin.de>
AuthorDate: Thu Dec 9 17:24:28 2021 +0100

    add README
---
 README.md | 319 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 319 insertions(+)

diff --git a/README.md b/README.md
new file mode 100644
index 0000000..2f33f7d
--- /dev/null
+++ b/README.md
@@ -0,0 +1,319 @@
+# [Apache T U R B I N E](https://turbine.apache.org/)
+
+Turbine Build is a collection of the main components provided as modules to build and deploy.
+
+## U S A G E 
+
+Apache Turbine components are:
+
+- Core: The Turbine Web Framework 
+- Parent: The Parent POM for all Turbine/Fulcrum components
+- Site: The Turbine Wrapper Site
+- Archetypes: The Turbien Archetype Generator Source
+
+You can find more here: [Apache Turbine](https://turbine.apache.org/).
+
+## B U I L D I N G
+
+You must have Maven 3.x
+
+Building the Turbine from GIT is very easy.  Turbine has been
+Maven-enabled.  Please refer to the Maven Getting Started document for
+instructions on building.  This document is available here:
+
+https://maven.apache.org/guides/getting-started/
+
+### GIT 
+
+Turbine Build does use (Git Submodules)[https://git-scm.com/book/en/v2/Git-Tools-Submodules].
+
+You could use git to checkout current trunk:
+
+     git clone --recurse-submodules https://github.com/apache/turbine-build.git 
+     
+If you did a normal clone you have to init the submodules from the root folder with
+
+    git submodule update --init --recursive
+    
+This will register and clone all submodules in one step.
+     
+Hint: To limit history e.g. to 10 commits add --depth 10.
+     
+To update all submodules: 
+
+     git pull --recurse-submodules 
+     
+or equivalently:
+
+    git submodule update --init --remote 
+    
+    git submodule sync
+    
+or:
+    git submodule foreach git pull
+     
+To init or merge and fast-forward a single module:
+
+    git submodule update --init --remote <module>
+    
+or later
+    
+    git submodule update --remote --merge <module>
+    
+or change into submodule
+
+    cd <submodule>
+    git checkout master
+    git pull
+    
+After having done this, check with
+
+    git status
+    
+and add the changed submodules (untracked contents, new commits" :
+
+    git add <submodule>
+    git commit "updated submodule <>"
+    
+## Documentation
+
+Turbine Core documenttion is found [here](https://turbine.apache.org/).
+
+## Requirements
+
+Turbine requires Java 8 (since v4). 
+  
+### Contributing
+
+Please feel free to contribute. We are always happy to encourage new committers to the project. 
+
+The Apache Software foundation requires that any contributor has signed the ICLA (Individual Contributor License Agreement).
+
+Find an overview, more information and how-tos [here](http://www.apache.org/licenses/contributor-agreements.html#clas).
+
+### Publishing Workflow
+
+#### Prerequisites
+
+Deploy jars
+ 
+    mvn deploy -Papache-release
+
+More Information:
+  - [Maven Component Reference](http://maven.apache.org/developers/website/deploy-component-reference-documentation.html)
+  - [Apache Release Publishing](https://infra.apache.org/publishing-maven-artifacts.html)
+  
+##### Steps
+
+
+1. Local Testing
+
+Verify gpg.homedir, gpg.useagent, gpg.passphrase. Check, if -Dgpg.useagent=false is needed,  see below comment to pinentry.
+You may need to add additional profiles, e.g. -Papache-release,java8 or add -Dgpg.passphrase=<xx> 
+
+    
+    mvn clean site install -Papache-release 
+  
+
+If dependency check is skipped by default, do mvn org.owasp:dependency-check-maven:check -Ddependency.check.skip=false
+Since Turbine Parent 8 security check is enabled by default.
+
+    mvn release:prepare -DdryRun=true -Papache-release -Dtag=<project.artifact>-<version>-candidate
+    
+Here the tag is already set.
+
+And finally:
+
+    mvn release:clean    
+
+2. Remote Testing
+
+
+As we using GIT as SCM, be sure that you execute the steps in the *master|trunk|main* branch as GIT commands are applied to the current branch.
+
+Find more Information in [Turbine Release Manual](https://cwiki.apache.org/confluence/display/TURBINE/Publishing+a+Release).
+
+If you have not set ssh-key or gpg authentication,  the tasks may require that you explicitely authenticate with -Dusername=<username> -Dpassword=<pw>. 
+
+
+Important: Success will be on the master build, the others are skipped.
+
+
+    mvn release:prepare -Papache-release -Dtag=<project.artifact>-<version>-candidate
+
+  
+3. Release Preparing
+
+If you get a 401 error on the upload to repository.apache.org, make sure
+that your mvn security settings are in place ~/.m2/settings.xml and ~/.m2/settings-security.xml 
+
+For more information on setting up security see the encryption guide:
+ - [GUIDE ENCRYPTION](http://maven.apache.org/guides/mini/guide-encryption.html).
+
+This performs an upload to https://repository.apache.org/#stagingRepositories
+
+Hint: Add -Dgpg.useagent=false helps, if running from a windows machine to avoid hanging while gpg plugin signing process 
+ .. this may happen, if you do not define the pinentry-program in gpg-agent.conf correctly ..
+
+    mvn release:perform
+  
+You could find more information here: [Book Reference Staging](http://www.sonatype.com/books/nexus-book/reference/staging.html)
+  
+4. Close the staging
+
+Login and close in Nexus Repo:
+
+ - [Staging](https://repository.apache.org/index.html#stagingRepositories)
+ 
+ More information available: [CLOSE STAGE](https://www.apache.org/dev/publishing-maven-artifacts.html#close-stage).
+ 
+ Fetch the URL for the tagged Repo from target/checkout with
+  
+    git pull --prune --tags
+    git tag -l 
+    git checkout <tag>
+    
+You will be in detached mode.    
+  
+5. Prepare Voting Information and Voting
+ 
+ ....
+  
+6. Either Promote / Publish or Drop and Restage
+
+  - [PROMOTE INFO](http://www.apache.org/dev/publishing-maven-artifacts.html#promote)
+  - [DROP INFO](http://www.apache.org/dev/publishing-maven-artifacts.html#drop)
+  
+6a Promote / Release
+
+- Release staged repository in nexus
+
+- Rename (replace) the GIT tag <xyz>-candidate to <xyz>. 
+Find more Information in [Turbine Release Manual](https://cwiki.apache.org/confluence/display/TURBINE/Publishing+a+Release).
+
+- Proceed with next step.
+
+  
+6b Revert
+
+- Drop "reverse merge" the release prepare. If backup files (from release:prepare) are still there:
+
+    mvn release:rollback
+
+which will delete the tag in git repo tag and revert to the pre-release state.
+
+Otherwise reset the commit in master in your checked out trunk/master/main branch 
+
+    git reflog
+    // find commit previous to release
+    git reset –hard <shacommit>
+    git commit "Reset RC to state previous RC due to <Message-ID>"
+    git push -f origin master
+
+and update master repo and delete the tag manually.
+
+    git push origin :refs/tags/<project.artifact>-<version>-candidate
+
+- Drop staged repository in nexus and start again with step 1.
+
+
+- Don't forget to refer to the failed vote Message-ID in the commit messages (git, nexus).
+
+ 
+7. Distribution 
+
+  - (http://www.apache.org/dev/release#upload-ci),
+  - http://www.apache.org/dev/release.html#host-GA and 
+  - http://www.apache.org/dev/release-publishing.html#distribution
+  
+  
+  - Update branch asf-site in Turbine component root: Copy files from target/staging to the root of branch asf-site and commit.
+  This will trigger (with .asf.yaml configuration) an update to the distribution site.
+  
+  - SVN checkout target distribution from https://dist.apache.org/repos/dist/release/turbine/<...>/<...>
+  - SVN checkout released source from https://svn.apache.org/repos/asf/turbine/<..>/tags/<..>
+  - Generate artifacts (check local repo and target for artifacts) from released version:
+ 
+Checkout the tagged released release and run:
+ 
+    mvn clean install package -Papache-release 
+
+ 
+Generate checksums with UNIX tool shasum (2022 at least sha512), Windows certutil or other tools and 
+copy artifacts and sha-files to dist source/binaries folder.
+
+If not all jars are included (assembly plugin _SHOULD_ run after jar generation), run a second time without clean.
+If no sha512 files are in the target folder, check local repo.
+      
+- SVN Add <binaries>, <sources> artifacts (jar/zip/tar.gz,asc,sha512 files) to target repo.
+- SVN Remove old releases binaries and sources 
+
+ After repos/dist is updated an automatic email will be generated, if no update of the release database is done:
+  
+ - [ADD TO TURBINE RELEASE APACHE](https://reporter.apache.org/addrelease.html?turbine)
+   
+
+ 8.  Stage the latest documentation 
+
+- [DEPLOY DOCU](http://maven.apache.org/developers/website/deploy-component-reference-documentation.html)
+
+## Git Checkout <tagged release version> source. Generate and Publish Site
+
+### Description of the process using asf-site branch using GIT commands
+
+Hint: If checking out the branch asf-site you find an .asf.yaml file, where the exact configuration is found, what happens after site generation.
+
+Find more information [here](https://cwiki.apache.org/confluence/display/INFRA/git+-+.asf.yaml+features).
+
+- Generate the site in master branch and optionally save it somewhere
+
+**Single Module**
+
+    mvn site
+
+**Multi Module**
+
+    mvn site site:stage
+
+- Save target/site or target/staging into another folder (target may be ignored, but to be sure)
+
+- checkout branch asf-site. Verify proper settings in .asf.yaml providing at least this line:
+
+    whoami: asf-site
+
+- Copy content of saved copy or target/site (single module), target/staging (multi module) to *the root of the branch*
+
+- Commit and push (this triggers the site update, if not contact INFRA)
+
+### ~~Maven Publishing~~
+
+The second steps are not yet tested with GIT repos (2021). Use instead the workflow above (using GIT commands). 
+
+**Multi Module**
+
+    mvn clean site site:stage
+    mvn scm-publish:publish-scm -Dscmpublish.dryRun=true
+
+**Single**
+
+Omit site:stage, which reqires site element definition in distributionManagement
+
+    mvn site scm-publish:publish-scm -Dscmpublish.dryRun=true
+    mvn clean site scm-publish:publish-scm -Dusername=<username> -Dpassword=<pw>
+
+### Deployment 
+   
+To deploy the site execute
+
+    mvn site-deploy
+
+IMPORTANT: You may have to clean up the checkoutDirectory of maven-scm-publish-plugin plugin after doing a dry run!
+This directory is configured in turbine-parent by default outside target folder:
+
+    turbine.site.cache: ${user.home}/turbine-sites
+    
+Check pom.xml configuration of properties.
+
+## License
+
+Apache Turbine Components are distributed under the [Apache License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html).

[turbine-build] 01/03: First commit for Turbine Build

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-build.git

commit bb62c709408b37420d9ff3fb42a409f904d0f54b
Author: Georg Kallidis <gk...@cedis.fu-berlin.de>
AuthorDate: Thu Dec 9 17:23:59 2021 +0100

    First commit for Turbine Build
---
 .gitignore  |   7 +++
 .gitmodules |  16 +++++
 Jenkinsfile | 189 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 archetypes  |   1 +
 core        |   1 +
 parent      |   1 +
 pom.xml     |  79 +++++++++++++++++++++++++
 site        |   1 +
 8 files changed, 295 insertions(+)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..6751970
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+target/
+*.log
+.classpath
+.project
+.idea/
+.settings/
+*~
\ No newline at end of file
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..90573cb
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,16 @@
+[submodule "site"]
+	path = site
+	url = https://gitbox.apache.org/repos/asf/turbine-site.git
+    branch = master
+[submodule "core"]
+	path = core
+	url = https://gitbox.apache.org/repos/asf/turbine-core.git
+    branch = trunk
+[submodule "parent"]
+	path = parent
+	url = https://gitbox.apache.org/repos/asf/turbine-parent.git
+    branch = master
+[submodule "archetypes"]
+	path = archetypes
+	url = https://gitbox.apache.org/repos/asf/turbine-archetypes.git
+    branch = master
diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 0000000..5ed8a06
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,189 @@
+#!groovy
+
+/*
+ * 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
+ *
+ *     https://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.
+ */
+
+// https://ci-builds.apache.org/pipeline-syntax/globals
+// https://www.jenkins.io/doc/pipeline/steps/workflow-basic-steps/
+// https://www.jenkins.io/doc/pipeline/examples/#maven-and-jdk-specific-version
+// https://cwiki.apache.org/confluence/display/INFRA/Jenkins+node+labels
+// https://cwiki.apache.org/confluence/display/INFRA/ASF+Cloudbees+Operations+Center
+ 
+// started with jena-site and gora
+
+// git-websites:
+// "Nodes that are reserved for ANY project that wants to build their website docs and
+// publish directly live (requires asf-site and pypubsub"
+// no git-websites label her using ubuntu
+
+// Jenkins build server used: https://builds.apache.org/ / ci-builds.apache.org
+
+// Fulcurm-Build has submodules, which are expcetd for this Jenkinsfile NOT to be fetched if cloning!
+// This is the default (do NOT provide git clone --recurse-submodules flag) and this is because
+// only the current submodule is initialized downstrema with git submodule update --init
+
+def AGENT_LABEL = env.AGENT_LABEL ?: 'ubuntu'
+
+def JDK_NAME = env.JDK_NAME ?: 'jdk_1.8_latest'
+def MVN_NAME = env.MVN_NAME ?: 'maven_3_latest'
+
+pipeline
+    {
+        agent
+            {
+                node {
+                    label AGENT_LABEL 
+                }
+            }
+        parameters
+            {
+                string(name: 'MULTI_MODULE', defaultValue: 'site', description: 'Run as site module (')
+                // no default
+                choice(name: 'TURBINE_COMPONENT', choices: ['','core', 'parent', 'site', 'archetypes'], description: 'Select Turbine component')
+                // default master
+                choice(name: 'SUB_MODULE_HEAD', choices: ['master', 'main','trunk'], description: 'The master/main/trunk branch of the Turbine component')
+                booleanParam(name: 'TEST_MODE', defaultValue: true, description: 'Run as Test Build or Deploy site for Component ')
+            }
+        tools
+            {
+                maven MVN_NAME
+                jdk JDK_NAME
+            }
+        environment
+            {
+                DEPLOY_BRANCH = 'asf-site'
+                STAGING_DIR = "target/${params.MULTI_MODULE}/"
+                // LANG = 'C.UTF-8'
+                // -B, --batch-mode Run in non-interactive (batch) mode
+                // -e, --error Produce execution error messages
+                // -fae, --fail-at-end Only fail the build afterwards; allow all non-impacted builds to continue
+                // -U,--update-snapshots                  Forces a check for missing
+                // -V, --show-version Display version information WITHOUT stopping build
+                // -ntp, --no-transfer-progress Do not display transfer progress when downloading or uploading
+                // surefire.useFile  Option to generate a file test report or just output the test report to the console. Default true
+                MAVEN_CLI_OPTS = "-B -V -U -e -fae -ntp -Dsurefire.useFile=false"
+                MAVEN_GOALS = "${params.MULTI_MODULE == 'site' ? 'clean site' : 'clean site site:stage'}"
+            }
+        stages
+            {
+            stage('Prepare')
+                {
+                    steps
+                        {
+                            // not --update as clone ise done without --recurse-submodules
+                            sh "git submodule update --init ${params.TURBINE_COMPONENT}"
+                            // branch will be detached head, need to checkout explicitely
+                            dir("${params.TURBINE_COMPONENT}")
+                                {
+                                    script
+                                        {
+                                            sh "pwd"
+                                            sh "git branch"
+                                            echo "${params.TURBINE_COMPONENT}: Checking out ${params.SUB_MODULE_HEAD}"
+                                            sh "git checkout ${params.SUB_MODULE_HEAD}"
+                                            env.CURRENT_BRANCH = sh(script: "git status --branch --porcelain | grep '##' | cut -c 4-", returnStdout: true).trim()
+                                            echo "CURRENT_BRANCH: ${env.CURRENT_BRANCH}"
+                                            // Capture last commit hash for final commit message
+                                            env.LAST_SHA = sh(script: 'git log -n 1 --pretty=format:%H', returnStdout: true).trim()
+                                            echo "LAST_SHA: ${env.LAST_SHA}"
+                                        }
+                                }
+                        }
+                }
+            stage('Build')
+                {
+                    when
+                        {
+                        expression { params.MULTI_MODULE == 'site' }
+                    }
+                    steps
+                        {
+                            dir("${params.TURBINE_COMPONENT}")
+                                {
+                                    sh "pwd"
+                                    // builds into target/site folder, this folder is expected to be preserved as it is used in next step
+                                    sh "mvn $MAVEN_CLI_OPTS $MAVEN_GOALS"
+                                }
+                        }
+                }
+            stage('Deploy')
+                {
+                    when
+                        {
+                        allOf {
+                            not {
+                                expression 
+                                    { 
+                                        params.TEST_MODE 
+                                    }
+                            }
+                           anyOf
+                            {
+                                expression
+                                    {
+                                        env.CURRENT_BRANCH ==~ /(?i)^(master|trunk|main).*?/
+                                    }
+                            }
+                        }
+                    }
+                    steps
+                        {
+                            dir("${params.TURBINE_COMPONENT}")
+                                {
+                                    script
+                                        {
+                                            sh "pwd"
+                                            // Checkout branch with current site content, target folder should be ignored!
+                                            sh "git checkout ${DEPLOY_BRANCH}"
+                                            // fetch only shallow
+                                            sh "git pull --depth=2 origin ${DEPLOY_BRANCH}"
+
+                                            def exists = fileExists '.gitignore'
+                                            if (exists)
+                                            {
+                                                echo "Turbine component ${params.TURBINE_COMPONENT}: .gitignore exists in branch ${DEPLOY_BRANCH}."
+                                            } else {
+                                                echo "Turbine component ${params.TURBINE_COMPONENT}: creating default .gitignore in branch ${DEPLOY_BRANCH}."
+                                                sh "echo 'target/' > .gitignore"
+                                                sh "git add .gitignore"
+                                                sh "git commit -m \"Added .gitignore\""
+                                            }
+                                            // Remove the content (files) of the root folder and subdirectories and replace it with the content of the STAGING_DIR folder
+                                            sh """
+git ls-files | grep -v "^\\." | xargs  rm -f
+"""
+                                            sh "cp -rf ./${STAGING_DIR}* ."
+                                            // Commit the changes to the target branch BRANCH_NAME, groovy allows to omit env. prefix, available in multibranch pipeline.
+                                            env.COMMIT_MESSAGE = "${params.TURBINE_COMPONENT}: Updated site in ${DEPLOY_BRANCH} from ${env.CURRENT_BRANCH} (${env.LAST_SHA}) from ${params.MULTI_MODULE} from ${BUILD_URL}"
+                                            sh "git add -A"
+                                            sh "git commit -m "${env.COMMIT_MESSAGE}" | true"
+                                            echo "${env.COMMIT_MESSAGE}"
+                                            // Push the generated content for deployment
+                                            sh "git push -u origin ${DEPLOY_BRANCH}"
+                                        }
+                                }
+                        }
+                }
+        }
+        post
+            {
+                always
+                    {
+                        deleteDir() /* clean up our workspace */
+                    }
+            }
+    }
diff --git a/archetypes b/archetypes
new file mode 160000
index 0000000..bb7336f
--- /dev/null
+++ b/archetypes
@@ -0,0 +1 @@
+Subproject commit bb7336f6848a5db063a6b87dffa872ebf5604c61
diff --git a/core b/core
new file mode 160000
index 0000000..48176a6
--- /dev/null
+++ b/core
@@ -0,0 +1 @@
+Subproject commit 48176a65cfa544bc9003f4ac727fe46934bcb7ca
diff --git a/parent b/parent
new file mode 160000
index 0000000..abccb58
--- /dev/null
+++ b/parent
@@ -0,0 +1 @@
+Subproject commit abccb58d832cf10ba7977714ff66319050d91616
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..0e6f133
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+
+   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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <artifactId>turbine-parent</artifactId>
+       <groupId>org.apache.turbine</groupId>
+       <version>9</version>
+  </parent>
+  <artifactId>turbine-build</artifactId>
+  <packaging>pom</packaging>
+  <version>1</version>
+  <name>Turbine Master Build</name>
+  <url>http://turbine.apache.org/fulcrum</url>
+  <inceptionYear>2001</inceptionYear>
+
+  <modules>  
+
+    <!-- turbine main endpoints  -->
+    
+    <module>core</module> 
+    <module>parent</module>    
+    <module>site</module>    
+    <module>archetypes</module>           
+
+  </modules>
+  
+    <scm>
+        <connection>scm:git:https://gitbox.apache.org/repos/asf/turbine-build.git</connection>
+        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/turbine-build.git</developerConnection>    
+        <url>https://github.com/apache/turbine-build/tree/${project.scm.tag}</url>
+        <tag>master</tag>
+    </scm>
+  
+  <build>
+     <pluginManagement>
+        <plugins>
+          <!-- run optionally
+                mvn org.owasp:dependency-check-maven:aggregate 
+                do not use it as reporting plugin, as it exposes file paths to artifacts 
+                check each possible vulnerability carefully, find more info about how to read, false positives et al. here: https://jeremylong.github.io/DependencyCheck/dependency-check-maven/plugin-info.html
+           -->
+            <plugin>
+              <groupId>org.owasp</groupId>
+              <artifactId>dependency-check-maven</artifactId>
+              <executions>
+                  <execution>
+                      <goals>
+                          <goal>check</goal>
+                      </goals>
+                  </execution>
+              </executions>
+              <!--configuration> 
+                 <suppressionFiles>true</suppressionFiles>
+              </configuration--> 
+            </plugin>
+          </plugins>
+     </pluginManagement>
+   </build>
+
+</project>
+
diff --git a/site b/site
new file mode 160000
index 0000000..28ede6f
--- /dev/null
+++ b/site
@@ -0,0 +1 @@
+Subproject commit 28ede6fe6380e29dcabc24ce89a61b52f098a442