Skip to content

Commit 488b201

Browse files
committed
Merge branch 'release/2.10.0'
2 parents 98ece9c + ad6ada5 commit 488b201

68 files changed

Lines changed: 3273 additions & 288 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/dependabot.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ updates:
77
day: "monday"
88
time: "06:00"
99
timezone: "Etc/UTC"
10+
ignore:
11+
# due to https://github.com/fabriciorby/maven-surefire-junit5-tree-reporter/issues/68
12+
- dependency-name: "org.apache.maven.plugins:maven-surefire-plugin"
13+
versions: ["3.5.4", "3.5.5"]
1014
groups:
1115
java-test-dependencies:
1216
patterns:
@@ -19,6 +23,7 @@ updates:
1923
- "org.apache.maven.plugins:*"
2024
- "org.jacoco:jacoco-maven-plugin"
2125
- "org.owasp:dependency-check-maven"
26+
- "org.sonatype.central:central-publishing-maven-plugin"
2227
- "me.fabriciorby:maven-surefire-junit5-tree-reporter"
2328
java-production-dependencies:
2429
patterns:
@@ -27,11 +32,12 @@ updates:
2732
- "org.apache.maven.plugins:*"
2833
- "org.jacoco:jacoco-maven-plugin"
2934
- "org.owasp:dependency-check-maven"
35+
- "org.sonatype.central:central-publishing-maven-plugin"
36+
- "me.fabriciorby:maven-surefire-junit5-tree-reporter"
3037
- "org.junit.jupiter:*"
3138
- "org.mockito:*"
3239
- "org.hamcrest:*"
3340
- "com.google.jimfs:jimfs"
34-
- "me.fabriciorby:maven-surefire-junit5-tree-reporter"
3541

3642

3743
- package-ecosystem: "github-actions"

.github/workflows/build.yml

Lines changed: 133 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,43 @@ 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
14+
permissions:
15+
contents: read
16+
id-token: write # OIDC token for the attestations step
17+
attestations: write # Required for the attestations step
18+
artifact-metadata: write # Required for the attestations step
19+
outputs:
20+
sha256: ${{ steps.checksums.outputs.sha256 }}
1021
steps:
11-
- uses: actions/checkout@v4
22+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
1223
with:
13-
fetch-depth: 0
14-
show-progress: false
15-
- uses: actions/setup-java@v4
24+
fetch-depth: 0 # deep fetch for better sonarcloud analysis
25+
show-progress: false
26+
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
1627
with:
17-
java-version: 21
1828
distribution: 'temurin'
29+
java-version: ${{ env.JAVA_VERSION }}
1930
cache: 'maven'
2031
- name: Cache SonarCloud packages
21-
uses: actions/cache@v4
32+
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
2233
with:
2334
path: ~/.sonar/cache
2435
key: ${{ runner.os }}-sonar
2536
restore-keys: ${{ runner.os }}-sonar
2637
- name: Ensure to use tagged version
2738
if: startsWith(github.ref, 'refs/tags/')
28-
run: mvn -B versions:set --file ./pom.xml -DnewVersion=${GITHUB_REF##*/}
39+
run: ./mvnw versions:set --file ./pom.xml -DnewVersion=${GITHUB_REF##*/}
2940
- name: Build and Test
3041
run: >
31-
mvn -B verify
42+
./mvnw -B verify --no-transfer-progress
3243
jacoco:report
3344
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
3445
-Pcoverage
@@ -38,14 +49,123 @@ jobs:
3849
env:
3950
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
4051
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
41-
- uses: actions/upload-artifact@v4
52+
- name: Calculate Checksums
53+
id: checksums
54+
run: |
55+
{
56+
echo 'sha256<<EOF'
57+
shasum -a256 target/*.jar
58+
echo EOF
59+
} >> $GITHUB_OUTPUT
60+
- name: Attest
61+
if: startsWith(github.ref, 'refs/tags/')
62+
uses: actions/attest@59d89421af93a897026c735860bf21b6eb4f7b26 # v4.1.0
63+
with:
64+
subject-path: |
65+
target/*.jar
66+
target/*.pom
67+
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
4268
with:
4369
name: artifacts
44-
path: target/*.jar
45-
- name: Create release
70+
path: |
71+
target/*.jar
72+
73+
74+
deploy-central:
75+
name: Deploy to Maven Central
76+
runs-on: ubuntu-latest
77+
permissions:
78+
id-token: write # OIDC token for sigstore signing
79+
contents: read # Required for sigstore signing
80+
needs: [build]
81+
if: github.repository_owner == 'cryptomator' && (startsWith(github.ref, 'refs/tags/') || contains(github.event.head_commit.message, '[deploy]'))
82+
steps:
83+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
84+
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
85+
with:
86+
distribution: 'temurin'
87+
java-version: ${{ env.JAVA_VERSION }}
88+
cache: 'maven'
89+
server-id: central
90+
server-username: MAVEN_CENTRAL_USERNAME
91+
server-password: MAVEN_CENTRAL_PASSWORD
92+
- name: Enforce to use tagged version
4693
if: startsWith(github.ref, 'refs/tags/')
47-
uses: softprops/action-gh-release@v2
94+
run: ./mvnw versions:set -B -DnewVersion="${GITHUB_REF##*/}"
95+
- name: Verify project version is -SNAPSHOT
96+
if: startsWith(github.ref, 'refs/tags/') == false
97+
run: |
98+
PROJECT_VERSION=$(./mvnw help:evaluate "-Dexpression=project.version" -q -DforceStdout)
99+
test "${PROJECT_VERSION: -9}" = "-SNAPSHOT"
100+
- name: Deploy to Maven Central
101+
run: ./mvnw deploy -B -DskipTests -Psign,deploy-central --no-transfer-progress
102+
env:
103+
MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
104+
MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
105+
MAVEN_GPG_PASSPHRASE: ${{ secrets.RELEASES_GPG_PASSPHRASE }}
106+
MAVEN_GPG_KEY: ${{ secrets.RELEASES_GPG_PRIVATE_KEY }} # Value of the GPG private key to import
107+
MAVEN_GPG_KEY_FINGERPRINT: ${{ vars.RELEASES_GPG_KEY_FINGERPRINT }}
108+
109+
deploy-github:
110+
name: Deploy to GitHub Packages
111+
runs-on: ubuntu-latest
112+
permissions:
113+
packages: write # Required for the deploy to GitHub Packages step
114+
id-token: write # OIDC token for sigstore signing
115+
contents: read # Required for sigstore signing
116+
needs: [build]
117+
if: github.repository_owner == 'cryptomator' && (startsWith(github.ref, 'refs/tags/') || contains(github.event.head_commit.message, '[deploy]'))
118+
steps:
119+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
120+
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
48121
with:
122+
java-version: ${{ env.JAVA_VERSION }}
123+
distribution: 'temurin'
124+
cache: 'maven'
125+
- name: Enforce to use tagged version
126+
if: startsWith(github.ref, 'refs/tags/')
127+
run: ./mvnw versions:set -B -DnewVersion="${GITHUB_REF##*/}"
128+
- name: Verify project version is -SNAPSHOT
129+
if: startsWith(github.ref, 'refs/tags/') == false
130+
run: |
131+
PROJECT_VERSION=$(./mvnw help:evaluate "-Dexpression=project.version" -q -DforceStdout)
132+
test "${PROJECT_VERSION: -9}" = "-SNAPSHOT"
133+
- name: Deploy to GitHub Packages
134+
run: ./mvnw deploy -B -DskipTests -Psign,deploy-github --no-transfer-progress
135+
env:
136+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
137+
MAVEN_GPG_PASSPHRASE: ${{ secrets.RELEASES_GPG_PASSPHRASE }}
138+
MAVEN_GPG_KEY: ${{ secrets.RELEASES_GPG_PRIVATE_KEY }} # Value of the GPG private key to import
139+
MAVEN_GPG_KEY_FINGERPRINT: ${{ vars.RELEASES_GPG_KEY_FINGERPRINT }}
140+
141+
release:
142+
name: Release
143+
runs-on: ubuntu-latest
144+
permissions:
145+
contents: write # Required for the release step
146+
needs: [build, deploy-central, deploy-github]
147+
if: startsWith(github.ref, 'refs/tags/')
148+
steps:
149+
- name: Create Release
150+
uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0
151+
with:
152+
prerelease: true
49153
token: ${{ secrets.CRYPTOBOT_RELEASE_TOKEN }}
50154
generate_release_notes: true
51-
prerelease: true
155+
body: |-
156+
### Changelog
157+
For a list of all notable changes, read the [changelog](/CHANGELOG.md).
158+
159+
### Maven Coordinates
160+
```xml
161+
<dependency>
162+
<groupId>org.cryptomator</groupId>
163+
<artifactId>cryptofs</artifactId>
164+
<version>${{ github.ref_name }}</version>
165+
</dependency>
166+
```
167+
168+
### Artifact Checksums
169+
```txt
170+
${{ needs.build.outputs.sha256 }}
171+
```

.github/workflows/codeql-analysis.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,20 @@ 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@v4
19+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
2020
with:
2121
fetch-depth: 2
2222
show-progress: false
23-
- uses: actions/setup-java@v4
23+
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
2424
with:
25-
java-version: 21
25+
java-version: 25
2626
distribution: 'temurin'
2727
cache: 'maven'
2828
- name: Initialize CodeQL
29-
uses: github/codeql-action/init@v3
29+
uses: github/codeql-action/init@c793b717bc78562f491db7b0e93a3a178b099162 # v4.32.5
3030
with:
3131
languages: java
3232
- name: Build
33-
run: mvn -B install -DskipTests
33+
run: ./mvnw -B install -DskipTests
3434
- name: Perform CodeQL Analysis
35-
uses: github/codeql-action/analyze@v3
35+
uses: github/codeql-action/analyze@c793b717bc78562f491db7b0e93a3a178b099162 # v4.32.5

.github/workflows/dependency-check.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,19 @@ on:
55
push:
66
branches:
77
- 'release/**'
8+
- 'hotfix/**'
89
workflow_dispatch:
910

1011

1112
jobs:
1213
check-dependencies:
13-
uses: skymatic/workflows/.github/workflows/run-dependency-check.yml@v1
14+
uses: skymatic/workflows/.github/workflows/run-dependency-check.yml@957d3c2c08c56855fdac41e5afb9a7aca8c30dd9 # v3.0.3
1415
with:
1516
runner-os: 'ubuntu-latest'
1617
java-distribution: 'temurin'
17-
java-version: 21
18+
java-version: 25
1819
secrets:
1920
nvd-api-key: ${{ secrets.NVD_API_KEY }}
20-
slack-webhook-url: ${{ secrets.SLACK_WEBHOOK_URL }}
21+
ossindex-username: ${{ secrets.OSSINDEX_USERNAME }}
22+
ossindex-token: ${{ secrets.OSSINDEX_API_TOKEN }}
23+
slack-webhook-url: ${{ secrets.SLACK_WEBHOOK_CRYPTOMATOR_DESKTOP }}

.github/workflows/publish-central.yml

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

.github/workflows/publish-github.yml

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

.idea/codeStyles/Project.xml

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

.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.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
wrapperVersion=3.3.4
2+
distributionType=only-script
3+
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.12/apache-maven-3.9.12-bin.zip
4+
distributionSha256Sum=305773a68d6ddfd413df58c82b3f8050e89778e777f3a745c8e5b8cbea4018ef

CHANGELOG.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6+
7+
The changelog starts with version 2.10.0.
8+
Changes to prior versions can be found on the [GitHub release page](https://github.com/cryptomator/cryptofs/releases).
9+
10+
## [2.10.0](https://github.com/cryptomator/cryptofs/releases/tag/2.10.0) - 2026-03-05
11+
12+
### Added
13+
* Files-in-Use: Optional feature to indicate for external parties if an encrypted file is currently opened by this filesystem ([#312](https://github.com/cryptomator/cryptofs/pull/312), [#338](https://github.com/cryptomator/cryptofs/pull/338))
14+
* Changelog file
15+
16+
### Changed
17+
* Use JDK 25 for build (bf26d6c9cd15a2489126ee0409a8ec9eca59da0c)
18+
* Pin external ci actions ([#320](https://github.com/cryptomator/cryptofs/pull/320))
19+
* Use Maven wrapper ([#341](https://github.com/cryptomator/cryptofs/pull/341))
20+
* Updated dependencies:
21+
* `com.github.ben-manes.caffeine:caffeine` from 3.2.0 to 3.2.3 ([#323](https://github.com/cryptomator/cryptofs/pull/323))
22+
* `org.cryptomator:cryptolib` from 2.2.1 to 2.2.2
23+
* `com.auth0:java-jwt` from 4.5.0 to 4.5.1
24+
* Removed dependencies:
25+
* `com.google.guava:guava`
26+
27+
### Fixed
28+
* Replacing internal path class `CryptoPath` with strings in `FilesystemEvent`s ([#319](https://github.com/cryptomator/cryptofs/pull/319))
29+
* Make DOS file attribute class immutable ([#305](https://github.com/cryptomator/cryptofs/pull/305))

0 commit comments

Comments
 (0)