 ----
 Publishing the Documentation
 ----
~~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.

Publishing the Documentation

  The documentation should be published after a release has been tagged.

  There are two separate sites to publish:

    * the plugins reference

    * the main documentation site

  This is done with commands within the release checkout. First, from the
  <<<plugins>>> directory:

+----+
mvn site site:stage scm-publish:publish-scm
+----+

  Then, from the <<<site>>> directory:

+----+
mvn site-deploy
+----+

  <Note:> It's important to do them in this order so that the generic plugins index page will get overwritten by the
          correct one in the docs for this version.

