Skip to content

Commit f57facd

Browse files
committed
[#193] Document maintenance mode and migration recommendation
Closes #193.
1 parent 7d0598e commit f57facd

File tree

2 files changed

+35
-24
lines changed

2 files changed

+35
-24
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,16 @@
33
## 0.30.0 - Unreleased
44

55
- Replace from old unsupported HTTP Builder to OkHttp 4 - [#188](https://github.com/Codearte/gradle-nexus-staging-plugin/pull/188) - PR by [anuraaga](https://github.com/anuraaga)
6+
- **Switch project development to maintenance mode** - see below
67
- Switch build to Gradle 6.8.3
78
- Remove deprecated since 0.8.0 `promoteRepository` and `closeAndPromoteRepository` tasks
89

910
**Backward compatibility note**. Due to the internal HTTP client library change, the plugin might start behaving slightly different in certain situations.
1011

12+
**PROJECT DEVELOPMENT SWITCHED TO THE MAINTENANCE MODE**. To make releasing to Maven Central even easier, I and Marc Phillip (the author of nexus-publish-plugin) combined forces to create a next generation, unified 2-in-1 plugin - [gradle-nexus-publish-plugin](https://github.com/gradle-nexus/publish-plugin/). It is a recommended solution, as our development effort will be put in that new plugin. See my [blog post](https://blog.solidsoft.pl/2021/02/26/unified-gradle-projects-releasing-to-maven-central-in-2021-migration-guide/) and the official [migration guide](https://github.com/gradle-nexus/publish-plugin/wiki/Migration-from-gradle_nexus_staging-plugin---nexus_publish-plugin-duo).
13+
14+
Thank you for over 5 years of releasing with my plugin!
15+
1116
## 0.22.0 - 2020-08-17
1217

1318
- Change default retrying time to 5 minutes - a value recommended by Sonatype (suggestion by [Mikhail Yakushin](https://github.com/driver733))

README.md

Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@ A gradle plugin providing tasks to close and promote/release staged repositories
88
[Sonatype OSSRH](http://central.sonatype.org/pages/ossrh-guide.html) (Open Source Software Repository Hosting) without the need to use Nexus GUI (to close and release
99
artifacts/repository).
1010

11+
## MAINTENANCE MODE
12+
13+
**IMPORTANT. To make releasing to Maven Central even easier, I and Marc Phillip (the author of nexus-publish-plugin) combined forces to create a next generation, unified, 2-in-1 plugin - [gradle-nexus-publish-plugin](https://github.com/gradle-nexus/publish-plugin/). It is a recommended solution, as our development effort will be put in that new plugin. See my [blog post](https://blog.solidsoft.pl/2021/02/26/unified-gradle-projects-releasing-to-maven-central-in-2021-migration-guide/) and the official [migration guide](https://github.com/gradle-nexus/publish-plugin/wiki/Migration-from-gradle_nexus_staging-plugin---nexus_publish-plugin-duo).**
14+
15+
Thank you for over 5 years of releasing with my plugin!
16+
1117
## Quick start
1218

1319
Add gradle-nexus-staging-plugin to the `buildscript` dependencies in your build.gradle file for root project:
@@ -34,8 +40,8 @@ Configure it:
3440
stagingProfileId = "yourStagingProfileId" //when not defined will be got from server using "packageGroup"
3541
}
3642

37-
After successful archives upload (with [`maven`](https://gradle.org/docs/current/userguide/maven_plugin.html),
38-
[`maven-publish`](https://gradle.org/docs/current/userguide/publishing_maven.html) or
43+
After successful archives upload (with [`maven`](https://gradle.org/docs/current/userguide/maven_plugin.html),
44+
[`maven-publish`](https://gradle.org/docs/current/userguide/publishing_maven.html) or
3945
[`nexus`](https://github.com/bmuschko/gradle-nexus-plugin/) plugin) to Sonatype OSSRH call:
4046

4147
./gradlew closeAndReleaseRepository
@@ -69,7 +75,7 @@ The plugin provides three main tasks:
6975
profile (possible old/broken repositories can be dropped with Nexus GUI)
7076
- `releaseRepository` - releases a closed repository (required to put artifacts to Maven Central aka The Central Repository)
7177
- `closeAndReleaseRepository` - closes and releases a repository (an equivalent to `closeRepository releaseRepository`)
72-
78+
7379
And one additional:
7480

7581
- `getStagingProfile` - gets and displays a staging profile id for a given package group. This is a diagnostic task to get the value and put it
@@ -98,7 +104,7 @@ one additional request is send to the Nexus server to determine the value using
98104
- `repositoryDescription` (optional) - staging repository description in close/release operations (see [#63](https://github.com/Codearte/gradle-nexus-staging-plugin/pull/63) for more information)
99105
- `stagingRepositoryId` (optional, since 0.20.0) - the explicitly created staging repository with artifacts to improve build reliability -
100106
requires external mechanism (e.g. [nexus-publish-plugin](https://github.com/marcphilipp/nexus-publish-plugin/)) to enhance a Gradle task
101-
to use it for uploading/publishing artifacts (see [#77](https://github.com/Codearte/gradle-nexus-staging-plugin/issues/77))
107+
to use it for uploading/publishing artifacts (see [#77](https://github.com/Codearte/gradle-nexus-staging-plugin/issues/77))
102108

103109
For the sensible configuration example see the plugin's own release [configuration](gradle/cdeliveryboy-release.gradle).
104110

@@ -125,8 +131,8 @@ drop them suing the UI and try again. This is quite common during the initial ex
125131
2. It takes some time to close and/or promote a staging repository in Nexus, especially with multiple artifacts. The plugin has a built-in retry
126132
mechanism, however, the default value can be too [low](https://github.com/Codearte/gradle-nexus-staging-plugin/issues/12), especially for
127133
the multiproject build. To confirm that enable logging at the info level in Gradle (using the `--info` or `-i` build parameter). You should see log
128-
messages similar to `Attempt 8/8 failed.`. If yes, increase the timeout using the `numberOfRetries` or `delayBetweenRetriesInMillis` configuration
129-
parameters.
134+
messages similar to `Attempt 8/8 failed.`. If yes, increase the timeout using the `numberOfRetries` or `delayBetweenRetriesInMillis` configuration
135+
parameters.
130136

131137
3. An another reason to get the aforementioned error is releasing more than one project using the same Nexus staging repository simultaneously
132138
(usually automatically from a Continuous Delivery pipeline from a Continuous Integration server). Unfortunately Gradle does not provide a mechanism
@@ -138,7 +144,7 @@ situation.
138144
4. You are releasing from Travis. See the next point.
139145

140146
### 2. Why my release build on Travis suddenly started to fail with `wrong number of received repositories...`'?
141-
147+
142148
If your Travis build started to fail around autumn 2018 it's probably a problem reported in [#76](https://github.com/Codearte/gradle-nexus-staging-plugin/issues/76).
143149
To cut a long story short:
144150
- Gradle does [not support](https://github.com/gradle/gradle/issues/5711) uploading/publishing to explicitly created staging repositories in Nexus
@@ -163,35 +169,35 @@ by nexus-publish-plugin (only `publish...` from `maven-publish`).
163169
The plugin is used by [hundreds of projects](https://github.com/search?q=io.codearte.nexus-staging&type=Code&utf8=%E2%9C%93) around the web.
164170

165171
Just to mention a few FOSS projects which leverage the plugin to automatize releasing and Continuous Delivery:
166-
[Frege](https://github.com/Frege/frege-interpreter),
167-
[Geb](https://github.com/geb/geb),
168-
[Grails](https://github.com/grails/grails-core),
169-
[Javers](https://github.com/javers/javers),
170-
[JSON Assert](https://github.com/marcingrzejszczak/jsonassert),
171-
[logback-android](https://github.com/tony19/logback-android),
172+
[Frege](https://github.com/Frege/frege-interpreter),
173+
[Geb](https://github.com/geb/geb),
174+
[Grails](https://github.com/grails/grails-core),
175+
[Javers](https://github.com/javers/javers),
176+
[JSON Assert](https://github.com/marcingrzejszczak/jsonassert),
177+
[logback-android](https://github.com/tony19/logback-android),
172178
[Micronaut](https://github.com/micronaut-projects/micronaut-aws),
173-
[mini2Dx](https://github.com/mini2Dx/minibus),
174-
[Nextflow](https://github.com/nextflow-io/nextflow) and
179+
[mini2Dx](https://github.com/mini2Dx/minibus),
180+
[Nextflow](https://github.com/nextflow-io/nextflow) and
175181
[TestNG](https://github.com/cbeust/testng).
176182

177183
The plugin is also used by the tools and the libraries created by various more or less known companies including:
178-
[Allegro](https://github.com/allegro/hermes),
179-
[Braintree](https://github.com/braintree/braintree_android),
180-
[Google](https://github.com/google/FreeBuilder),
181-
[IBM](https://github.com/IBM-UrbanCode/groovy-plugin-utils),
182-
[PayPal](https://github.com/paypal/PayPal-Java-SDK),
183-
[Schibsted Spain](https://github.com/scm-spain/karyon-rest-router),
184-
[TouK](https://github.com/TouK/bubble) and
184+
[Allegro](https://github.com/allegro/hermes),
185+
[Braintree](https://github.com/braintree/braintree_android),
186+
[Google](https://github.com/google/FreeBuilder),
187+
[IBM](https://github.com/IBM-UrbanCode/groovy-plugin-utils),
188+
[PayPal](https://github.com/paypal/PayPal-Java-SDK),
189+
[Schibsted Spain](https://github.com/scm-spain/karyon-rest-router),
190+
[TouK](https://github.com/TouK/bubble) and
185191
[Zalando](https://github.com/zalando-incubator/straw).
186192

187-
## Additional information
193+
## Additional information
188194

189195
[gradle-nexus-staging-plugin](https://github.com/Codearte/gradle-nexus-staging-plugin) was written by Marcin Zajączkowski
190196
with the help of the [contributors](https://github.com/Codearte/gradle-nexus-staging-plugin/graphs/contributors).
191197
The author can be contacted directly via email: `mszpak ATT wp DOTT pl`.
192198
There is also Marcin's blog available: [Solid Soft](http://blog.solidsoft.info) - working code is not enough.
193199

194-
The PoC leading to the initial version of the plugin was brought to life during one of the hackathons held at [Codearte](http://codearte.io/).
200+
The PoC leading to the initial version of the plugin was brought to life during one of the hackathons held at [Codearte](http://codearte.io/).
195201

196202
The first version of the project has been released in 2015 and the plugin seems to be quite stable. Nevertheless, documentation for the Nexus
197203
staging REST API and in addition Gradle support for uploading artifacts to selected Nexus staging repositories leaves much to be desired.

0 commit comments

Comments
 (0)