diff options
author | Volodymyr Vysotskyi <vvovyk@gmail.com> | 2018-04-23 11:38:39 +0300 |
---|---|---|
committer | Volodymyr Vysotskyi <vvovyk@gmail.com> | 2018-08-28 20:04:25 +0300 |
commit | 44e63bd0deda72af726f51e0ff78fc2b636c64eb (patch) | |
tree | 6729d28338ead5c071a1c23f2cbcabe1e340387f /docs | |
parent | d8f9fb6a5cf22a01fa3f48bd40e7dbeb3cb6e4e4 (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.md | 62 |
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. |