aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorVolodymyr Vysotskyi <vvovyk@gmail.com>2018-04-23 11:38:39 +0300
committerVolodymyr Vysotskyi <vvovyk@gmail.com>2018-08-28 20:04:25 +0300
commit44e63bd0deda72af726f51e0ff78fc2b636c64eb (patch)
tree6729d28338ead5c071a1c23f2cbcabe1e340387f /docs
parentd8f9fb6a5cf22a01fa3f48bd40e7dbeb3cb6e4e4 (diff)
DRILL-6422: Update guava to 23.0 and shade it
- Fix compilation errors for new version of Guava. - Remove usage of deprecated API - Shade guava and add dependencies to the shaded version - Ban unshaded package - Introduce drill-shaded module and move guava-shaded under it - Add methods to convert shaded guava lists to the unshaded ones - Add instruction for publishing artifacts to the Apache repository
Diffstat (limited to 'docs')
-rw-r--r--docs/dev/UpgradeGuava.md62
1 files changed, 62 insertions, 0 deletions
diff --git a/docs/dev/UpgradeGuava.md b/docs/dev/UpgradeGuava.md
new file mode 100644
index 000000000..5a0a44af4
--- /dev/null
+++ b/docs/dev/UpgradeGuava.md
@@ -0,0 +1,62 @@
+# How to upgrade Guava in Drill
+
+To avoid conflicts with the version of Guava used by Drill and versions used by other dependencies, Guava was shaded.
+
+## Update shaded version of guava
+
+* Set the new version of Guava to `guava.version` property and to the version of the artifact in
+`drill-shaded/drill-shaded-guava/pom.xml` file.
+* Set the same new version of Guava to `shaded.guava.version` property in the root `pom.xml` file.
+* Build `drill-shaded-guava` module.
+* Try to build Drill and resolve compile errors if required.
+* When all errors are resolved and all tests are passed, push shaded artifacts to the Apache repository.
+* After artifacts became available, changes may be merged.
+
+# How to publish artifacts to the Apache repository
+
+## Prerequisites
+
+Only PMC members have an access for pushing artifacts to the Apache repository.
+
+Setup your development env according to [this instruction](http://www.apache.org/dev/publishing-maven-artifacts.html#dev-env).
+
+Set passphrase variable without putting it into shell history:
+
+`read -s GPG_PASSPHRASE`
+
+## Deploy artifacts with signatures to the staging repository
+
+Change directory to `drill/drill-shaded/drill-shaded-guava`.
+
+* For the case when `maven-gpg-plugin` plugin wasn’t added to the `pom.xml`, run
+
+`mvn clean verify gpg:sign install:install deploy:deploy -Darguments="-Dgpg.passphrase=${GPG_PASSPHRASE} -Dgpg.keyname=${GPG_KEY_ID}"`
+
+* For the case of configured `maven-gpg-plugin` plugin, run
+
+`mvn deploy -Darguments="-Dgpg.passphrase=${GPG_PASSPHRASE} -Dgpg.keyname=${GPG_KEY_ID}"`
+
+## Visit [repository.apache.org](https://repository.apache.org/#stagingRepositories)
+
+* Log in using your Apache credentials
+* Select uploaded staging repository
+* Check that all required `jar` and `pom` files are uploaded
+* Verify that every `jar` and `pom` file has a corresponding signature file (*.asc)
+
+If something went wrong, press `Drop` to remove the staging repository.
+
+## Close staging repository
+
+Select uploaded staging repository and press `Close` button.
+
+Verify that all checks are passed and staging repository was closed. Otherwise, drop staging repository and fix errors.
+
+## Publish artifacts to the Apache repository
+
+Select uploaded staging repository and press `Release` button.
+
+## Check that artifacts were deployed
+
+Find deployed artifacts at [repository.apache.org](https://repository.apache.org/content/groups/public/org/apache/drill/)
+
+Artifacts will become available within 24 hours.