Skip to content

Commit 0e2c4ab

Browse files
committed
Add release operations documentation
1 parent 1997c37 commit 0e2c4ab

File tree

4 files changed

+63
-1
lines changed

4 files changed

+63
-1
lines changed

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ For other basic project information and best practices, please refer to the temp
2020

2121
## Contact
2222

23-
Let's work together to make this project better!
23+
Let's work together to make this project better!
2424

2525
If you have any questions or suggestions, feel free to open an issue or contact the maintainers via GitHub.
2626
Write the issue in English to share it with many people.

RELEASE_OPERATIONS.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# Release Operations for Doma Tools for IntelliJ
2+
3+
This document describes the steps required to perform a release.
4+
5+
## Overview
6+
7+
The release process for this project is automated and consists of several stages, all managed on GitHub:
8+
9+
1. **Automatic Changelog and Release Draft Updates**
10+
- Every time a pull request (PR) is merged into `main`, GitHub Actions automatically updates `CHANGELOG.md` and the release draft.
11+
- A working branch named `doc/changelog-update-x.x.x` is created for updating `CHANGELOG.md`, and a draft pull request titled `Changelog update - x.x.x` is opened.
12+
- This pull request is force-pushed and updated with each new PR merged into `main`, reflecting the latest changes and release version.
13+
14+
2. **Release Note Publication and Marketplace Upload**
15+
- When a release note is published on GitHub, the [GitHub Actions workflow `release`](.github/workflows/release.yml) is triggered.
16+
- This workflow automatically uploads the latest version to the JetBrains Marketplace.
17+
18+
For other instructions on the Marketplace, please refer to the [official documentation](https://plugins.jetbrains.com/docs/marketplace/publishing-and-listing-your-plugin.html)
19+
20+
## Files Updated for Version Changes
21+
22+
Every time a pull request (PR) is merged into `main`, the following files are updated automatically:
23+
24+
- [`PluginUtil.kt`](src/main/kotlin/org/domaframework/doma/intellij/common/util/PluginUtil.kt)
25+
- [`logback.xml`](src/main/resources/logback.xml)
26+
- [`logback-test.xml`](src/main/resources/logback-test.xml)
27+
- [`gradle.properties`](gradle.properties)
28+
29+
## Release Procedure
30+
31+
1. **Confirm all required PRs are merged into `main`.**
32+
2. **Check the contents of [CHANGELOG.md](CHANGELOG.md) and the GitHub release draft**
33+
- Ensure that all necessary PRs are listed in both the updated `CHANGELOG.md` (from the draft pull request `Changelog update - x.x.x`) and the GitHub release draft.
34+
- Note: Documentation update PRs are not included in `CHANGELOG.md`.
35+
3. **Mark the draft pull request `Changelog update - x.x.x` as "Ready for Review"**
36+
- If the build action passes, merge the pull request.
37+
![ReadyForReview.png](images/ReadyForReview.png)
38+
4. **Publish the release on GitHub**
39+
- Open the release draft at [GitHub Releases](https://github.com/domaframework/doma-tools-for-intellij/releases).
40+
- Check "Set as the latest release" and click "Publish Release".
41+
![PublishRelease.png](images/PublishRelease.png)
42+
5. **After the [release action](.github/workflows/release.yml) completes, confirm the latest version is available on the JetBrains Marketplace.**
43+
6. **After the release, a draft for the next pre-release version is automatically created, and a commit is made to the `main` branch to set the next pre-release version.**
44+
45+
## Manual Release Procedure (if GitHub Actions fails)
46+
47+
If there is a problem with GitHub Actions and the automatic release fails, follow the steps below to perform a manual release:
48+
49+
1. Pull the latest changes to ensure your local `main` branch is up to date.
50+
2. Confirm that the version in each file matches the intended release version.
51+
- Files to check:
52+
- `PluginUtil.kt`
53+
- `logback.xml`
54+
- `logback-test.xml`
55+
- `gradle.properties`
56+
3. Run the Gradle task `buildPlugin` to build the plugin. ``` ./gradlew buildPlugin```
57+
4. Upload the generated zip file`build/distributions` from the JetBrains Marketplace management screen.
58+
- generated zip file: `build/distributions/Doma Tools for IntelliJ-x.x.x.zip`
59+
60+
If you modified the version in step 2, be sure to reflect those changes in the remote branch after the release (after fixing any issues with GitHub Actions).
61+
62+
---

images/PublishRelease.png

21.1 KB
Loading

images/ReadyForReview.png

22.3 KB
Loading

0 commit comments

Comments
 (0)