Skip to content

Commit 78bf9e6

Browse files
committed
Add release operations documentation
1 parent 1997c37 commit 78bf9e6

File tree

4 files changed

+65
-10
lines changed

4 files changed

+65
-10
lines changed

CONTRIBUTING.md

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,19 @@ For other basic project information and best practices, please refer to the temp
1616

1717
## Reporting Issues
1818

19-
- Use the [GitHub Issues page](https://github.com/domaframework/doma-tools-for-intellij/issues) to report bugs or request features.
19+
Use the [GitHub Issues page](https://github.com/domaframework/doma-tools-for-intellij/issues) to report bugs or request features.
20+
Write the issue in English to share it with many people.
2021

2122
## Contact
2223

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

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

2828
## Prerequisites
2929

30-
- **JDK 17**
31-
- **Git** (Install Git and configure your GitHub access)
30+
- Install **Git** and configure your GitHub access
31+
- Install **JDK 17**
3232

3333
## Recommended IntelliJ IDEA Plugins
3434

@@ -67,11 +67,6 @@ You can install these plugins from `File > Settings > Plugins` in IntelliJ IDEA.
6767
```sh
6868
./gradlew build
6969
```
70-
- To generate a plugin zip file for local installation, run:
71-
```sh
72-
./gradlew buildPlugin
73-
```
74-
The zip file will be created in the `build/distributions` directory and can be installed locally in IntelliJ IDEA.
7570

7671
5. **Run/Debug the Plugin**
7772
- Use the Gradle task `runIde` to launch a sandboxed IntelliJ instance:

RELEASE_OPERATIONS.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
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+
---

images/PublishRelease.png

21.1 KB
Loading

images/ReadyForReview.png

22.3 KB
Loading

0 commit comments

Comments
 (0)