blob: dc8908eee07938528bd6092c17c408a7cde5ba09 [file] [view]
<!--
Licensed 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. See accompanying LICENSE file.
-->
# Deploying Releases/Snapshots
This document describes how to deploy releases and snapshots specifically for Apache Ratis.
For general information about Publishing Maven Artifacts at Apache, see
http://www.apache.org/dev/publishing-maven-artifacts.html
## Prerequisite
It requires *committer access* in order to deploy releases and snapshots.
## Environment Setup
To publish, use the following ```settings.xml``` file
(placed in ```~/.m2/settings.xml``` )
```
<settings>
<servers>
<server>
<id>apache.releases.https</id>
<username> <!-- YOUR APACHE LDAP USERNAME --> </username>
<password> <!-- YOUR APACHE LDAP PASSWORD (encrypted) --> </password>
</server>
<server>
<id>apache.snapshots.https</id>
<username> <!-- YOUR APACHE LDAP USERNAME --> </username>
<password> <!-- YOUR APACHE LDAP PASSWORD (encrypted) --> </password>
</server>
</servers>
</settings>
```
To use encrypted password, see
http://maven.apache.org/guides/mini/guide-encryption.html
For OpenPGP setup, see
http://www.apache.org/dev/openpgp.html
## How to Deploy
We use Apache Maven Deploy Plugin to deploy artifacts.
```bash
mvn deploy
(or)
mvn -s /my/path/settings.xml deploy
```
We also use release profile for building the release.
```
mvn install -Prelease -Papache-release
```
### Steps for Deploying a Snapshot
1. Test the artifacts locally.
1. Clean, shade and compile everything.
2. Run all tests.
2. Set snapshot version locally.
1. Get the last commit id ```<ABBREV_COMMIT_ID>```.
* ```git log --abbrev-commit --abbrev=7 --pretty=oneline | head -1```
2. Set the versions of local artifacts.
* ```mvn versions:set -DnewVersion=<VERSION>-<ABBREV_COMMIT_ID>-SNAPSHOT```
3. If everything works fine, run the following command to publish artifacts to Apache repository
* ```mvn deploy -DskipTests -DskipShade```
4. Verify the snapshot artifacts published in
* https://repository.apache.org/content/groups/snapshots/org/apache/ratis/
Finally, you may delete the ```pom.xml.versionsBackup``` files by
```bash
find . -name pom.xml.versionsBackup | xargs rm
```