Skip to content

Commit 08b5ee8

Browse files
Automatic releasing (#25)
1 parent 2fd0bbf commit 08b5ee8

File tree

10 files changed

+138
-75
lines changed

10 files changed

+138
-75
lines changed

.github/dependabot.yml

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,25 @@
11
version: 2
22
updates:
3-
- package-ecosystem: gradle
4-
directory: "/"
5-
schedule:
6-
interval: daily
7-
open-pull-requests-limit: 10
8-
# Specify labels for pull requests
9-
labels:
10-
- "Type: Dependency Upgrade"
11-
- "Priority 1: Must"
12-
# Add reviewers
13-
reviewers:
14-
- "Morlack"
3+
- package-ecosystem: gradle
4+
directory: "/"
5+
schedule:
6+
interval: daily
7+
open-pull-requests-limit: 10
8+
# Specify labels for pull requests
9+
labels:
10+
- "Type: Dependency Upgrade"
11+
- "Priority 1: Must"
12+
# Add reviewers
13+
reviewers:
14+
- "Morlack"
15+
- package-ecosystem: "github-actions"
16+
directory: "/"
17+
schedule:
18+
# Check for updates to GitHub Actions every weekday
19+
interval: "daily"
20+
labels:
21+
- "Type: Dependency Upgrade"
22+
- "Priority 1: Must"
23+
# Add reviewers
24+
reviewers:
25+
- "Morlack"

.github/workflows/pluginverifier.yml

Lines changed: 0 additions & 30 deletions
This file was deleted.

.github/workflows/publish.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Publish
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
tags:
7+
- "v*"
8+
jobs:
9+
build:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v2
13+
- name: Set up JDK 11
14+
uses: actions/setup-java@v2
15+
with:
16+
java-version: '11'
17+
distribution: 'zulu'
18+
19+
- name: Verify plugin
20+
uses: gradle/gradle-build-action@v1
21+
with:
22+
arguments: runPluginVerifier
23+
24+
- name: Publish plugin
25+
uses: gradle/gradle-build-action@v1
26+
with:
27+
arguments: publishPlugin
28+
env: # Or as an environment variable
29+
PUBLISH_TOKEN: ${{ secrets.PUBLISH_TOKEN }}
30+
PRIVATE_KEY_PASSWORD: ${{ secrets.PRIVATE_KEY_PASSWORD }}
31+
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
32+
CERTIFICATE_CHAIN: ${{ secrets.CERTIFICATE_CHAIN }}

.github/workflows/test.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: Test
2+
3+
on:
4+
workflow_dispatch:
5+
pull_request:
6+
push:
7+
branches:
8+
- master
9+
- main
10+
jobs:
11+
build:
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: actions/checkout@v2
15+
- name: Set up JDK 11
16+
uses: actions/setup-java@v2
17+
with:
18+
java-version: '11'
19+
distribution: 'zulu'
20+
21+
- name: Validate Gradle wrapper
22+
uses: gradle/wrapper-validation-action@v1
23+
24+
- name: Verify plugin
25+
uses: gradle/gradle-build-action@v1
26+
with:
27+
arguments: runPluginVerifier
28+
concurrency:
29+
group: ${{github.workflow}}-${{github.head_ref || github.run_id }}
30+
cancel-in-progress: true

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
### Fixed
88

99
- Fix popup on deadline manager methods when there are qualified references as arguments. Fixes #16
10+
- Fix empty inspection description in inspection window. Fixes #21
1011
- The correct icon is now shown for publishers in line marker popup. Fixes #18
1112

1213
### Changed

README.md

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
Axon Framework IntelliJ Plugin
22
===================================
3+
<!-- Plugin description -->
4+
Supports developers while writing applications using [Axon Framework](https://axoniq.io/product-overview/axon-framework) version 4.x.
35

4-
Supports developers while writing applications using [Axon Framework](https://axoniq.io/).
5-
6-
Axon Framework helps build scalable, extensible and maintainable applications by supporting developers apply the Command Query
7-
Responsibility Separation (CQRS) architectural pattern.
6+
Axon Framework helps build scalable, extensible, and maintainable applications by supporting developers to apply Domain-Driven Design (DDD),
7+
Command-Query Responsibility Separation (CQRS), and Event Sourcing (ES). The framework provides a message-driven architecture with dedicated
8+
command, event, and query messages, to support these paradigms.
89

910
The plugin provides the following features:
1011

@@ -13,9 +14,11 @@ The plugin provides the following features:
1314
- Marks methods used by Axon Framework as used, such as annotated methods
1415
- Easy access to the reference guide (ctrl+shift+a and type axon)
1516

16-
If you have a feature request, or want to report a bug, please report this at
17-
our [Github issue tracker](https://github.com/AxonFramework/IdeaPlugin/issues). For questions on Axon Framework usage, or about the plugin,
18-
please visit our [Discuss](https://discuss.axoniq.io/)
17+
If you have a feature request or want to report a bug, please report this at
18+
our [Github issue tracker](https://github.com/AxonFramework/IdeaPlugin/issues).
19+
20+
For questions on Axon Framework usage, or about the plugin, please visit our [Discuss](https://discuss.axoniq.io/).
21+
<!-- Plugin description end -->
1922

2023
## Usage
2124

@@ -29,7 +32,18 @@ annotations it recognizes. You can click on the icons on the left of the sourcec
2932

3033
## Local development
3134

32-
You can run an IntelliJ instance with the plugin locally with `./gradlew runIde`. This will bootstrap a clean instance
33-
and load the plugin. While the instance is running, you can run `./gradlew buildPlugin` for a hot reload of the plugin.
35+
You can run an IntelliJ instance with the plugin locally with `./gradlew runIde`. This will bootstrap a clean instance and load the plugin.
36+
While the instance is running, you can run `./gradlew buildPlugin` for a hot reload of the plugin.
3437

3538
To check compatibility with the most common IntelliJ versions run `./gradlew runPluginVerifier`.
39+
40+
## Development process
41+
42+
- Features are developed on branches
43+
- The pull request should contain a changelog entry added to the "Unreleased" section
44+
- When ready for release, `CHANGELOG.md` and `gradle.properties` are updated with the new version
45+
- A tag is created with name `vx.x.x` on that commit and pushed. Github Actions will automatically publish that version
46+
47+
There are no minor release branches, since we don't need patch versions on older versions of the plugin. Users will always update to the
48+
latest version and will ignore earlier patches, so the `master` branch is leading.
49+

build.gradle.kts

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
1+
/*
2+
* Copyright (c) 2022. Axon Framework
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
import org.jetbrains.changelog.markdownToHTML
118
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
219

320
fun properties(key: String) = project.findProperty(key).toString()
@@ -70,7 +87,15 @@ tasks {
7087

7188
// Extract the <!-- Plugin description --> section from README.md and provide for the plugin's manifest
7289
pluginDescription.set(
73-
""
90+
projectDir.resolve("README.md").readText().lines().run {
91+
val start = "<!-- Plugin description -->"
92+
val end = "<!-- Plugin description end -->"
93+
94+
if (!containsAll(listOf(start, end))) {
95+
throw GradleException("Plugin description section not found in README.md:\n$start ... $end")
96+
}
97+
subList(indexOf(start) + 1, indexOf(end))
98+
}.joinToString("\n").run { markdownToHTML(this) }
7499
)
75100

76101
// Get the latest available change notes from the changelog file

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
pluginGroup=io.axoniq.ide.intellij
2121
pluginName=Axon Framework
22-
pluginVersion=0.5.0
22+
pluginVersion=0.5.1
2323

2424
# See https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html
2525
# for insight into build numbers and IntelliJ Platform versions.

src/main/kotlin/org/axonframework/intellij/ide/plugin/inspections/aggregate/JavaAggregateIdInspection.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class JavaAggregateIdInspection : AbstractBaseJavaLocalInspectionTool() {
3737
isOnTheFly: Boolean
3838
): Array<ProblemDescriptor>? {
3939
if (!aClass.isAggregate()) {
40-
return emptyArray()
40+
return null
4141
}
4242
val isMissingFieldWithAnnotation = aClass.fields.none { field -> field.isAnnotated(AxonAnnotation.ENTITY_ID) }
4343
if (isMissingFieldWithAnnotation) {
@@ -51,7 +51,7 @@ class JavaAggregateIdInspection : AbstractBaseJavaLocalInspectionTool() {
5151
)
5252
)
5353
}
54-
return emptyArray()
54+
return null
5555
}
5656

5757
override fun getStaticDescription(): String {

src/main/resources/META-INF/plugin.xml

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -20,26 +20,6 @@
2020
<version>${project.version}</version>
2121
<vendor url="https://axoniq.io/">AxonIQ</vendor>
2222

23-
<description>
24-
<![CDATA[
25-
Supports developers while writing applications using <a href="https://axoniq.io/product-overview/axon-framework">Axon Framework</a> version 4.x.<br/><br/>
26-
27-
Axon Framework helps build scalable, extensible, and maintainable applications by supporting developers to apply Domain-Driven Design (DDD), Command-Query Responsibility Separation (CQRS),
28-
and Event Sourcing (ES). The framework provides a message-driven architecture with dedicated command, event, and query messages, to support these paradigms.<br/><br/>
29-
30-
The plugin provides the following features:
31-
<ul>
32-
<li>Line markers to visualize commands, events, queries and deadlines</li>
33-
<li>Several inspections on code structure that is required for Axon Framework</li>
34-
<li>Marks methods used by Axon Framework as used, such as annotated methods</li>
35-
<li>Easy access to the reference guide (ctrl+shift+a and type axon)
36-
</ul>
37-
38-
If you have a feature request or want to report a bug, please report this at our <a href="https://github.com/AxonFramework/IdeaPlugin/issues">Github issue tracker</a>.<br/>
39-
For questions on Axon Framework usage, or about the plugin, please visit our <a href="https://discuss.axoniq.io/">Discuss</a>.
40-
]]>
41-
</description>
42-
4323
<depends>com.intellij.modules.platform</depends>
4424
<depends>com.intellij.modules.java</depends>
4525
<depends>org.jetbrains.kotlin</depends>

0 commit comments

Comments
 (0)