-
Notifications
You must be signed in to change notification settings - Fork 1
Release Checklist
-
Add a quick announcement on the Slack channel one day before (optional)
-
Update dependencies if needed (swagger-core, swagger-parser versions...). (e.g. #4889). If you change this, please performs some tests to ensure that nothing is broken after the update.
-
Review milestones to ensure there are no outstanding issues/PRs that need to be urgently addressed before the release.
-
Check for merged PRs without milestone (Search query
is:pr is:merged no:milestone
- link). Each merged PR should have a milestone defined. -
Create the next milestone (e.g. 3.0.3 if the current version is 3.0.2-SNAPSHOT)
-
Update open PRs & issues of the current milestone (e.g. 3.0.2) to the next milestone (3.0.3), here are the steps:
- Go to the Milestones list
- Select the current milestone (
3.0.2
) - After the page loading completes (which show all issues and PR for the milestone
3.0.2
), click on the checkbox next to the "open" counter. - Click on the drop-down menu "Milestones" to change the milestones of these selected issues to
3.0.3
- (Repeat until all issues have been updated with the new milestones -- in case of multiple pages)
-
- Set the correct version by executing
bin/utils/release/release_version_update.sh
with the target version increment (major
,minor
,build
, orsnapshot
). Example:bin/utils/release/release_version_update.sh build
- mention the coming release in the docs.
bin/utils/release/release_version_update_docs.sh
accepts a version and the increment. Example:bin/utils/release/release_version_update_docs.sh 3.0.2 build
See commit 9056c1e5e3) - Verify or modify the updated values accordingly
- update root
README.md
: (e.g. 167b2f5, 1029b69)- Update the release table
- mention the last released version in Section "1.3 - Download JAR"
- update OpenAPI Generator Maven Plugin README (
modules/openapi-generator-maven-plugin/README.md
): mention the last release version in the xml snippet<version>..</version>
(e.g. 9c79297) - update version in the Maven Examples (
modules/openapi-generator-maven-plugin/examples/java-client.xml
,modules/openapi-generator-maven-plugin/examples/non-java-invalid-spec.xml
,modules/openapi-generator-maven-plugin/examples/non-java.xml
andmodules/openapi-generator-maven-plugin/examples/multi-module/java-client/pom.xml
) - update OpenAPI Generator Gradle Plugin README (
modules/openapi-generator-gradle-plugin/README.adoc
): mention the last release version in thedependencies
section. - update the Gradle Example Plugin README (
modules/openapi-generator-gradle-plugin/samples/local-spec/README.md
): update-PopenApiGeneratorVersion
in thebash
snippet
- update root
- Set the correct version by executing
- merge the "prepare release" PR
- git tag the merged commit
- publish the release notes
The CI (travis) will perform:
- push the JAR to maven repository (automatically done by the CI)
- push the Docker images to DockerHub.com (automatically done by the CI)
- add tag (e.g. 2.3.0) to docker image in Docker Hub (done automatically by CI)
- use the same format (e.g.
## General
) - for PRs related to generators, sort them alphabetically
Draft release in GitHub can be used for internal review with the team.
Check status of the tag build on travis CI.
Tests:
What to check:
- Check DockerHub:
- Check maven central:
- Run a small maven project using the
openapi-generator-maven-plugin
plugin: For examplemvn verify -f modules/openapi-generator-maven-plugin/examples/java-client.xml
(if you are at the root of the repository). - Run a small gradle project:
modules/openapi-generator-gradle-plugin/samples/local-spec
, according to theREADME.md
there, do some test with-PopenApiGeneratorVersion=<version>
- Run a small maven project using the
How to check:
- run
ruby ./bin/utils/release_checkout.rb 3.1.0
(example) and the result looks like the following:
Running checkout on OpenAPI Generator release 3.1.0
Checking homebrew forumla ... [OK]
Checking openapi-generator JAR ... [OK]
Checking openapi-generator-cli JAR ... [OK]
Checking openapi-generator-maven-plugin JAR ... [OK]
Checking openapi-generator-gradle-plugin JAR ... [OK]
Checking openapi-generator-online JAR ... [OK]
Checking openapi-generator-project pom.xml ... [OK]
Checking openapi-generator README.md ... [OK]
Checking openapi-generator-online docker ... [OK]
Checking openapi-generator-cli docker ... [OK]
(Note: the release checkout script may not catch every possible edge cases and will need further enhancement to take care of those situations)
-
File a PR "Prepare next snapshot version":
- update versions to next SNAPSHOT version (e.g. #285). Script
bin/utils/release/release_version_update.sh snapshot
can be used. Be careful this script may create changes that need to be reverted. Verify the output after running.
- update versions to next SNAPSHOT version (e.g. #285). Script
-
update Homebrew formula to use the latest version, e.g. https://github.com/Homebrew/homebrew-core/pull/29164/commits/21c808cf733d42581e1a4a096828c1996ca314e2
-
close the released milestone (see milestones view)
-
after the JAR has been published to the Maven repo, update "openapi-generator-cli"
- git clone https://github.com/OpenAPITools/openapi-generator-cli
- cd openapi-generator-cli
- npm login
- npm install
- Check https://search.maven.org/search?q=g:org.openapitools to ensure it's showing the released stable version
- npm version patch && npm run build:all && npm run publish
-
update online generator to use the latest stable version
- login to api.openapi-generator.tech
- download latest stable JAR
- restart the service
-
update sbt-openapi-generator to use the latest stable version
-
update generator-jhipster to use the latest stable version
-
Announcements:
- use Twitter account "oas_generator" to announce the new release
- Hacker News
- Slack workspace