Skip to content

Commit 3cd78f1

Browse files
committed
Merge branch 'release/1.8.0'
2 parents 7dbc64f + a38dc82 commit 3cd78f1

24 files changed

+1033
-106
lines changed

.github/workflows/build.yml

Lines changed: 94 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,117 @@ on:
33
push:
44
pull_request_target:
55
types: [labeled]
6+
7+
env:
8+
JAVA_VERSION: 25
9+
610
jobs:
711
build:
812
name: Build and Test
913
runs-on: ubuntu-latest
10-
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
14+
permissions:
15+
id-token: write # Required for the attestations step
16+
attestations: write # Required for the attestations step
1117
steps:
12-
- uses: actions/checkout@v5
13-
- uses: actions/setup-java@v5
18+
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
19+
- uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0
1420
with:
1521
distribution: 'temurin'
16-
java-version: 21
22+
java-version: ${{ env.JAVA_VERSION }}
1723
cache: 'maven'
1824
- name: Ensure to use tagged version
1925
if: startsWith(github.ref, 'refs/tags/')
2026
run: mvn versions:set --file ./pom.xml -DnewVersion=${GITHUB_REF##*/}
2127
- name: Build and Test
22-
id: buildAndTest
23-
run: mvn -B clean install
24-
- uses: actions/upload-artifact@v4
28+
run: mvn -B verify --no-transfer-progress
29+
- name: Attest
30+
if: startsWith(github.ref, 'refs/tags/')
31+
uses: actions/attest-build-provenance@96278af6caaf10aea03fd8d33a09a777ca52d62f # v3.2.0
32+
with:
33+
subject-path: |
34+
target/*.jar
35+
target/*.pom
36+
- uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
2537
with:
2638
name: artifacts
2739
path: target/*.jar
28-
- name: Create Release
29-
uses: softprops/action-gh-release@v2
40+
41+
deploy-central:
42+
name: Deploy to Maven Central
43+
runs-on: ubuntu-latest
44+
permissions: {}
45+
needs: [build]
46+
if: github.repository_owner == 'cryptomator' && (startsWith(github.ref, 'refs/tags/') || contains(github.event.head_commit.message, '[deploy]'))
47+
steps:
48+
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
49+
- uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0
50+
with:
51+
distribution: 'temurin'
52+
java-version: ${{ env.JAVA_VERSION }}
53+
cache: 'maven'
54+
server-id: central
55+
server-username: MAVEN_CENTRAL_USERNAME
56+
server-password: MAVEN_CENTRAL_PASSWORD
57+
- name: Ensure to use tagged version
3058
if: startsWith(github.ref, 'refs/tags/')
59+
run: mvn versions:set --file ./pom.xml -DnewVersion=${GITHUB_REF##*/}
60+
- name: Verify project version is -SNAPSHOT
61+
if: startsWith(github.ref, 'refs/tags/') == false
62+
run: |
63+
PROJECT_VERSION=$(mvn help:evaluate "-Dexpression=project.version" -q -DforceStdout)
64+
test "${PROJECT_VERSION: -9}" = "-SNAPSHOT"
65+
- name: Deploy to Maven Central
66+
run: mvn deploy -B -DskipTests -Psign,deploy-central --no-transfer-progress
67+
env:
68+
MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
69+
MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
70+
MAVEN_GPG_PASSPHRASE: ${{ secrets.RELEASES_GPG_PASSPHRASE }}
71+
MAVEN_GPG_KEY: ${{ secrets.RELEASES_GPG_PRIVATE_KEY }} # Value of the GPG private key to import
72+
MAVEN_GPG_KEY_FINGERPRINT: ${{ vars.RELEASES_GPG_KEY_FINGERPRINT }}
73+
74+
deploy-github:
75+
name: Deploy to GitHub Packages
76+
runs-on: ubuntu-latest
77+
permissions:
78+
packages: write # Required for the deploy to GitHub Packages step
79+
needs: [build]
80+
if: github.repository_owner == 'cryptomator' && (startsWith(github.ref, 'refs/tags/') || contains(github.event.head_commit.message, '[deploy]'))
81+
steps:
82+
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
83+
- uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0
84+
with:
85+
java-version: ${{ env.JAVA_VERSION }}
86+
distribution: 'temurin'
87+
cache: 'maven'
88+
- name: Ensure to use tagged version
89+
if: startsWith(github.ref, 'refs/tags/')
90+
run: mvn versions:set --file ./pom.xml -DnewVersion=${GITHUB_REF##*/}
91+
- name: Verify project version is -SNAPSHOT
92+
if: startsWith(github.ref, 'refs/tags/') == false
93+
run: |
94+
PROJECT_VERSION=$(mvn help:evaluate "-Dexpression=project.version" -q -DforceStdout)
95+
test "${PROJECT_VERSION: -9}" = "-SNAPSHOT"
96+
- name: Deploy to GitHub Packages
97+
run: mvn deploy -B -DskipTests -Psign,deploy-github --no-transfer-progress
98+
env:
99+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
100+
MAVEN_GPG_PASSPHRASE: ${{ secrets.RELEASES_GPG_PASSPHRASE }}
101+
MAVEN_GPG_KEY: ${{ secrets.RELEASES_GPG_PRIVATE_KEY }} # Value of the GPG private key to import
102+
MAVEN_GPG_KEY_FINGERPRINT: ${{ vars.RELEASES_GPG_KEY_FINGERPRINT }}
103+
104+
release:
105+
name: Release
106+
runs-on: ubuntu-latest
107+
permissions:
108+
contents: write # Required for the release step
109+
needs: [deploy-central, deploy-github]
110+
if: startsWith(github.ref, 'refs/tags/')
111+
steps:
112+
- name: Create Release
113+
uses: softprops/action-gh-release@6da8fa9354ddfdc4aeace5fc48d7f679b5214090 # v2.4.1
31114
with:
32115
prerelease: true
33116
token: ${{ secrets.CRYPTOBOT_RELEASE_TOKEN }}
34117
generate_release_notes: true
118+
body: |
119+
For a list of all notable changes, read the [changelog](/CHANGELOG.md).

.github/workflows/codeql-analysis.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,19 @@ jobs:
1616
# dependeabot has on push events only read-only access, but codeql requires write access
1717
if: ${{ !(github.actor == 'dependabot[bot]' && contains(fromJSON('["push"]'), github.event_name)) }}
1818
steps:
19-
- uses: actions/checkout@v5
19+
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
2020
with:
2121
fetch-depth: 2
22-
- uses: actions/setup-java@v5
22+
- uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0
2323
with:
2424
distribution: 'temurin'
25-
java-version: 21
25+
java-version: 25
2626
cache: 'maven'
2727
- name: Initialize CodeQL
28-
uses: github/codeql-action/init@v3
28+
uses: github/codeql-action/init@0d579ffd059c29b07949a3cce3983f0780820c98 # v4.32.6
2929
with:
3030
languages: java
3131
- name: Build
3232
run: mvn -B compile
3333
- name: Perform CodeQL Analysis
34-
uses: github/codeql-action/analyze@v3
34+
uses: github/codeql-action/analyze@0d579ffd059c29b07949a3cce3983f0780820c98 # v4.32.6

.github/workflows/publish-central.yml

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

.github/workflows/publish-github.yml

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

.idea/misc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

CHANGELOG.md

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,21 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
77
The changelog starts with version 1.7.0.
88
Changes to prior versions can be found on the [Github release page](https://github.com/cryptomator/integrations-api/releases).
99

10-
## [1.7.0] - 2025-09-17
10+
11+
## [1.8.0](https://github.com/cryptomator/integrations-api/releases/1.8.0) - 2026-03-12
12+
13+
### Added
14+
* Experimental [Update API](https://github.com/cryptomator/integrations-api/blob/a522f36cf45884127e2431dd18222391669d5992/src/main/java/org/cryptomator/integrations/update/UpdateMechanism.java) (#72)
15+
16+
### Fixed
17+
* Fixed plugin loading/discovery active even if pluginDir property is not set ([#86](https://github.com/cryptomator/integrations-api/pull/86))
1118

1219
### Changed
20+
* **[BREAKING]** Updated required build JDK to 25 ([#73](https://github.com/cryptomator/integrations-api/pull/73))
21+
* Pin version of GitHub actions in CI ([#87](https://github.com/cryptomator/integrations-api/pull/87))
1322

23+
24+
## [1.7.0](https://github.com/cryptomator/integrations-api/releases/tag/1.7.0) - 2025-09-17
25+
26+
### Changed
1427
* **[BREAKING]** Updated required build JDK to 21 (a88fa29d9cc05a0e39ab15420517d0f25cff6f35)

pom.xml

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<modelVersion>4.0.0</modelVersion>
66
<groupId>org.cryptomator</groupId>
77
<artifactId>integrations-api</artifactId>
8-
<version>1.7.0</version>
8+
<version>1.8.0-beta1</version>
99

1010
<name>Cryptomator Integrations API</name>
1111
<description>Defines optional service interfaces that may be used by Cryptomator</description>
@@ -27,22 +27,23 @@
2727

2828
<properties>
2929
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
30-
<jdk.version>21</jdk.version>
30+
<jdk.version>25</jdk.version>
3131

3232
<slf4j.version>2.0.17</slf4j.version>
33-
<jetbrains-annotation.version>26.0.2-1</jetbrains-annotation.version>
33+
<jackson.version>2.21.1</jackson.version>
34+
<jetbrains-annotation.version>26.1.0</jetbrains-annotation.version>
3435

3536
<!-- Test dependencies -->
36-
<junit.version>5.13.4</junit.version>
37-
<mockito.version>5.19.0</mockito.version>
37+
<junit.version>6.0.1</junit.version>
38+
<mockito.version>5.21.0</mockito.version>
3839

3940
<!-- Build dependencies -->
40-
<mvn-compiler.version>3.14.0</mvn-compiler.version>
41-
<mvn-source.version>3.3.1</mvn-source.version>
42-
<mvn-surefire.version>3.5.4</mvn-surefire.version>
43-
<mvn-javadoc.version>3.11.3</mvn-javadoc.version>
41+
<mvn-compiler.version>3.15.0</mvn-compiler.version>
42+
<mvn-source.version>3.4.0</mvn-source.version>
43+
<mvn-surefire.version>3.5.5</mvn-surefire.version>
44+
<mvn-javadoc.version>3.12.0</mvn-javadoc.version>
4445
<mvn-gpg.version>3.2.8</mvn-gpg.version>
45-
<central-publishing.version>0.8.0</central-publishing.version>
46+
<central-publishing.version>0.10.0</central-publishing.version>
4647
</properties>
4748

4849
<licenses>
@@ -59,6 +60,11 @@
5960
<artifactId>slf4j-api</artifactId>
6061
<version>${slf4j.version}</version>
6162
</dependency>
63+
<dependency>
64+
<groupId>com.fasterxml.jackson.core</groupId>
65+
<artifactId>jackson-databind</artifactId>
66+
<version>${jackson.version}</version>
67+
</dependency>
6268

6369
<dependency>
6470
<groupId>org.jetbrains</groupId>
@@ -126,7 +132,7 @@
126132
</executions>
127133
<configuration>
128134
<quiet>true</quiet>
129-
<release>21</release>
135+
<release>25</release>
130136
<tags>
131137
<!-- workaround for "unknown tag: implNote", see https://blog.codefx.org/java/new-javadoc-tags/#Maven -->
132138
<tag>

src/main/java/module-info.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,14 @@
66
import org.cryptomator.integrations.keychain.KeychainAccessProvider;
77
import org.cryptomator.integrations.tray.TrayIntegrationProvider;
88
import org.cryptomator.integrations.uiappearance.UiAppearanceProvider;
9+
import org.cryptomator.integrations.update.UpdateMechanism;
910

1011

1112
module org.cryptomator.integrations.api {
1213
requires static org.jetbrains.annotations;
1314
requires org.slf4j;
15+
requires com.fasterxml.jackson.databind;
16+
requires java.net.http;
1417

1518
exports org.cryptomator.integrations.autostart;
1619
exports org.cryptomator.integrations.common;
@@ -20,6 +23,7 @@
2023
exports org.cryptomator.integrations.tray;
2124
exports org.cryptomator.integrations.uiappearance;
2225
exports org.cryptomator.integrations.quickaccess;
26+
exports org.cryptomator.integrations.update;
2327

2428
uses AutoStartProvider;
2529
uses KeychainAccessProvider;
@@ -29,4 +33,5 @@
2933
uses TrayMenuController;
3034
uses UiAppearanceProvider;
3135
uses QuickAccessService;
36+
uses UpdateMechanism;
3237
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package org.cryptomator.integrations;
2+
3+
import java.util.ResourceBundle;
4+
5+
public enum Localization {
6+
INSTANCE;
7+
8+
private final ResourceBundle resourceBundle = ResourceBundle.getBundle("IntegrationsApi");
9+
10+
public static ResourceBundle get() {
11+
return INSTANCE.resourceBundle;
12+
}
13+
14+
}

0 commit comments

Comments
 (0)