Skip to content

Commit d98be20

Browse files
committed
Merge branch v0.6
Signed-off-by: Oleksandr Porunov <[email protected]>
2 parents 4d4157b + 7bc48de commit d98be20

File tree

9 files changed

+168
-54
lines changed

9 files changed

+168
-54
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# Copyright 2022 JanusGraph Authors
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
name: CI Release commit artifacts publish to `org.janusgraph.commit` groupId
16+
17+
on:
18+
push:
19+
branches:
20+
- master
21+
- v*
22+
23+
jobs:
24+
commit-publish:
25+
runs-on: ubuntu-20.04
26+
permissions:
27+
contents: read
28+
packages: write
29+
steps:
30+
- uses: actions/checkout@v3
31+
- uses: actions/cache@v3
32+
with:
33+
path: ~/.m2/repository
34+
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
35+
restore-keys: |
36+
${{ runner.os }}-maven-
37+
- uses: actions/setup-java@v3
38+
with:
39+
distribution: 'zulu'
40+
java-version: '8.0.312+7'
41+
java-package: jdk
42+
- name: Remove version SNAPSHOT suffix if exists
43+
run: mvn versions:set -DremoveSnapshot=true -DgenerateBackupPoms=false
44+
- name: Set JanusGraph version environment variable
45+
run: |
46+
export JG_VER="$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)-$(date '+%Y%m%d-%H%M%S').$(git rev-parse --short HEAD)"
47+
export JG_DESCRIPTION="Janusgraph commit release. Commit $(git rev-parse HEAD). Branch $(git rev-parse --abbrev-ref HEAD). Version $JG_VER."
48+
echo "JG_VER=${JG_VER}" >> $GITHUB_ENV
49+
echo "JG_DESCRIPTION=${JG_DESCRIPTION}" >> $GITHUB_ENV
50+
- name: Configure GPG Key
51+
run: |
52+
echo -n "$GPG_SIGNING_KEY" | base64 --decode | gpg --import
53+
env:
54+
GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }}
55+
- name: Set OSSR credentials
56+
run: |
57+
mkdir -p ~/.m2/
58+
echo "<settingsSecurity><master>$MASTER_PASSWORD</master></settingsSecurity>" > ~/.m2/settings-security.xml
59+
echo "<settings><servers><server><id>ossrh</id><username>$OSSRH_USERNAME</username><password>$OSSRH_PASSWORD</password></server></servers></settings>" > ~/.m2/settings.xml
60+
env:
61+
MASTER_PASSWORD: ${{ secrets.MASTER_PASSWORD }}
62+
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
63+
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
64+
- name: Replace groupId to commit groupId
65+
run: find ./ -type f -name "pom.xml" -exec sed -i "s/<groupId>org.janusgraph<\/groupId>/<groupId>org.janusgraph.commit<\/groupId>/g" {} \;
66+
- name: Setup unique version
67+
run: mvn versions:set -DnewVersion="$JG_VER" -DgenerateBackupPoms=false
68+
- name: Make JanusGraph JAR artifacts
69+
run: mvn clean install -Pjanusgraph-release -DskipTests=true
70+
- name: Deploy JanusGraph JAR artifacts into staging repository
71+
run: mvn deploy -Pjanusgraph-release,janusgraph-commit-release -DskipTests=true -DautoReleaseAfterClose=true -Ddescription="$JG_DESCRIPTION" -DstagingDescription="$JG_DESCRIPTION"

.github/workflows/ci-publish.yml renamed to .github/workflows/ci-publish-official.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
name: CI Release artifacts publish
15+
name: CI Release artifacts publish to `org.janusgraph` groupId
1616

1717
on:
1818
push:
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# Snapshot releases
2+
3+
In addition to official JanusGraph releases, JanusGraph publishes
4+
releases for each commit. The commit releases allow users to use latest
5+
JanusGraph features without relying on official JanusGraph releases.
6+
- Official JanusGraph releases are better tested and usually come with finalized
7+
changes which signals that the used features are most likely to be stable for long term.
8+
- Commit releases are not manually verified but instead verified by main CI tests as
9+
well as scheduled full CI tests (once per week). New features in commit releases are not
10+
guaranteed to be compatible between commits. Thus, you may expect more breaking changes between
11+
commit releases and official releases.
12+
13+
## Maven repository artifacts
14+
15+
Both official and commit release are deployed to Sonatype OSS and are available in Sonatype Maven Central Repository
16+
under different group ids.
17+
18+
Official JanusGraph releases have the next groupId: `org.janusgraph`.
19+
Dependencies example:
20+
```xml tab='Maven'
21+
<dependency>
22+
<groupId>org.janusgraph</groupId>
23+
<artifactId>janusgraph-core</artifactId>
24+
<version>0.6.2</version>
25+
</dependency>
26+
```
27+
28+
```groovy tab='Gradle'
29+
compile "org.janusgraph:janusgraph-core:0.6.2"
30+
```
31+
32+
Commit JanusGraph releases have the next groupId: `org.janusgraph.commit`.
33+
Artifact id for commit releases have the next format: `FOLLOWING_VERSION-DATE-TIME.COMMIT`.
34+
- `FOLLOWING_VERSION` is the upcoming official version to be used after release is finalized (i.e. `0.6.3` if the current latest release is `0.6.2`).
35+
- `DATE` - date of the commit release in `yyyyMMdd` format.
36+
- `TIME` - time of the commit release in `HHmmss` format.
37+
- `COMMIT` - short commit hash of the commit used in the release.
38+
39+
Dependencies example:
40+
```xml tab='Maven'
41+
<dependency>
42+
<groupId>org.janusgraph.commit</groupId>
43+
<artifactId>janusgraph-core</artifactId>
44+
<version>0.6.3-20221207-100250.39839b810</version>
45+
</dependency>
46+
```
47+
48+
```groovy tab='Gradle'
49+
compile "org.janusgraph.commit:janusgraph-core:0.6.3-20221207-100250.39839b810"
50+
```
51+
52+
## JanusGraph distribution builds
53+
54+
In addition to distribution builds provided for each official JanusGraph release, snapshot distribution builds are
55+
provided for all commits.
56+
57+
!!! info
58+
GitHub allows to download distribution builds only for authenticated GitHub users.
59+
60+
To access the distribution build bundle for any commit, please open the commit you are interested in and select its
61+
`CI Release` details. For example:
62+
![](github_release_ci.png)
63+
64+
When `CI Release` page is opened for a specific commit, open summary and download the attached to `Artifacts` section
65+
file named `distribution-builds`. This will download `distribution-builds.zip` archive containing all distribution builds.
66+
![](github_distribution_builds.png)
67+
68+
!!! warning
69+
Old snapshot distribution builds are expiring in GitHub due to timing and memory limits. It's not guaranteed that
70+
the snapshot distribution build downloaded yesterday is available today. We encourage to use either official release
71+
distribution builds or newer snapshot distribution builds.
72+
73+
If you see expired distribution builds or don't see any distribution builds for a specific commit, it means that it isn't
74+
available to be downloaded anymore. Thus, the distribution builds from newer commits should be used.
75+
![](github_expired_distribution_builds.png)
170 KB
Loading
25 KB
Loading
277 KB
Loading

docs/development.md

Lines changed: 0 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -156,59 +156,6 @@ To build JanusGraph you need [git](http://git-scm.com/) and
156156
Note, that running the comprehensive test suite requires a
157157
significant amount of of time (&gt; 1 hour).
158158

159-
### Depending on JanusGraph Snapshots
160-
161-
For developing against the most current version of JanusGraph, depend on
162-
JanusGraph snapshot releases. Note, that these releases are development
163-
releases and therefore unstable and likely to change. Unless one is
164-
interested in the most recent development status of JanusGraph, we
165-
recommend to use the stable JanusGraph release instead.
166-
167-
=== "Maven"
168-
```xml
169-
<dependency>
170-
<groupId>org.janusgraph</groupId>
171-
<artifactId>janusgraph-core</artifactId>
172-
<version>{{ snapshot_version }}</version>
173-
</dependency>
174-
```
175-
176-
=== "Gradle"
177-
```groovy
178-
compile "org.janusgraph:janusgraph-core:{{ snapshot_version }}"
179-
```
180-
181-
Check the [master branch](https://github.com/JanusGraph/janusgraph/tree/master) for the
182-
most current release version. SNAPSHOTs will be available through the
183-
[Sonatype repository](https://oss.sonatype.org/content/repositories/snapshots/org/janusgraph/).
184-
185-
When adding this dependency, be sure to add the following repository to build file:
186-
187-
=== "Maven"
188-
```xml
189-
<repository>
190-
<id>ossrh</id>
191-
<name>Sonatype Nexus Snapshots</name>
192-
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
193-
<releases>
194-
<enabled>false</enabled>
195-
</releases>
196-
<snapshots>
197-
<enabled>true</enabled>
198-
</snapshots>
199-
</repository>
200-
```
201-
202-
=== "Gradle"
203-
```groovy
204-
maven {
205-
url "https://oss.sonatype.org/content/repositories/snapshots"
206-
mavenContent {
207-
snapshotsOnly()
208-
}
209-
}
210-
```
211-
212159
### FAQs
213160

214161
**Maven build causes dozens of "\[WARNING\] We have a duplicate…"

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,7 @@ nav:
161161
- JanusGraph Bus: advanced-topics/janusgraph-bus.md
162162
- ExecutorService: advanced-topics/executor-service.md
163163
- Technical Limitations: advanced-topics/technical-limitations.md
164+
- Snapshot Releases: advanced-topics/commit-releases.md
164165
- Common Questions: common-questions.md
165166
- Development: development.md
166167
- Changelog: changelog.md

pom.xml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1518,6 +1518,26 @@
15181518
</build>
15191519
</profile>
15201520

1521+
<profile>
1522+
<id>janusgraph-commit-release</id>
1523+
<build>
1524+
<plugins>
1525+
<plugin>
1526+
<groupId>org.sonatype.plugins</groupId>
1527+
<artifactId>nexus-staging-maven-plugin</artifactId>
1528+
<version>1.6.13</version>
1529+
<extensions>true</extensions>
1530+
<configuration>
1531+
<!-- The Base URL of Nexus instance where we want to stage -->
1532+
<nexusUrl>https://oss.sonatype.org</nexusUrl>
1533+
<!-- The server "id" element from settings to use authentication from -->
1534+
<serverId>ossrh</serverId>
1535+
</configuration>
1536+
</plugin>
1537+
</plugins>
1538+
</build>
1539+
</profile>
1540+
15211541
<profile>
15221542
<id>coverage</id>
15231543
<properties>

0 commit comments

Comments
 (0)