Skip to content

Commit d66067d

Browse files
committed
Merge branch 'release/4.6.0'
2 parents 64d153b + 35c3649 commit d66067d

File tree

214 files changed

+14105
-1734
lines changed

Some content is hidden

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

214 files changed

+14105
-1734
lines changed

.github/workflows/ci.yml

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
name: Continuous Integration process
2+
run-name: ${{ github.actor }} has launched CI process on ${{ github.ref_name }}
3+
on:
4+
push:
5+
branches:
6+
- "main"
7+
- "develop"
8+
pull_request:
9+
branches:
10+
- "main"
11+
- "develop"
12+
workflow_dispatch:
13+
14+
permissions:
15+
contents: read
16+
issues: read
17+
checks: write
18+
pull-requests: write
19+
20+
jobs:
21+
Continuous-Integration-Actions:
22+
runs-on: self-hosted
23+
24+
env:
25+
PACKAGE_TOKEN: ${{ secrets.JLS_TOKEN }}
26+
27+
steps:
28+
- name: Checkout sources
29+
id: ci-sources-checkout
30+
uses: actions/checkout@v4
31+
with:
32+
fetch-depth: 0
33+
34+
- name: Set up JDK 21
35+
id: ci-java-setup
36+
uses: actions/setup-java@v4
37+
with:
38+
java-version: 21
39+
distribution: 'temurin'
40+
41+
- name: Cache Gradle
42+
uses: actions/cache@v4
43+
with:
44+
path: |
45+
~/.gradle/caches
46+
~/.gradle/wrapper
47+
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties', '**/gradle.properties') }}
48+
restore-keys: |
49+
${{ runner.os }}-gradle-
50+
51+
- name: Gradle build
52+
id: ci-gradle-build
53+
run: ./gradlew clean assemble
54+
55+
- name: Gradle tests
56+
run: ./gradlew test
57+
58+
- name: Generate JaCoCo Coverage Report
59+
run: ./gradlew jacocoTestReport
60+
61+
- name: Add coverage to PR
62+
id: jacoco
63+
uses: madrapps/jacoco-report@v1.7.0
64+
with:
65+
paths: |
66+
**/build/reports/jacoco/test/jacocoTestReport.xml
67+
token: ${{ secrets.GITHUB_TOKEN }}
68+
min-coverage-overall: 40
69+
min-coverage-changed-files: 60
70+
update-comment: true
71+
72+
- name: Display Coverage info
73+
run: |
74+
echo "Total coverage ${{ steps.jacoco.outputs.coverage-overall }}"
75+
echo "Changed Files coverage ${{ steps.jacoco.outputs.coverage-changed-files }}"
76+
77+
- name: Publish Test Results
78+
uses: EnricoMi/publish-unit-test-result-action/linux@v2
79+
if: always()
80+
with:
81+
files: |
82+
build/test-results/**/*.xml
83+
84+
- name: Archive test artifacts
85+
if: failure()
86+
uses: actions/upload-artifact@v4
87+
with:
88+
name: Package
89+
path: |
90+
**/build/reports/
91+
**/build/test-results/
92+
93+
- name: Final Step
94+
id: ci-final-step
95+
run: |
96+
echo "This job's status is ${{ job.status }}."
97+
echo "Created jar file(s):"
98+
find ./build -name '*.jar'
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: Publish GitHub Release
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
ref:
7+
description: 'Tag to run workflow on'
8+
required: true
9+
push:
10+
tags:
11+
- "v*.*.*"
12+
13+
jobs:
14+
release:
15+
runs-on: ubuntu-latest
16+
permissions:
17+
contents: write
18+
19+
steps:
20+
- name: Checkout code
21+
uses: actions/checkout@v4
22+
with:
23+
ref: ${{ github.event.inputs.ref || github.ref_name }}
24+
25+
- name: Set up JDK 11
26+
uses: actions/setup-java@v4
27+
with:
28+
distribution: 'temurin'
29+
java-version: '11'
30+
cache: 'gradle'
31+
32+
- name: Cache Gradle
33+
uses: actions/cache@v4
34+
with:
35+
path: ~/.gradle/caches
36+
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
37+
restore-keys: |
38+
${{ runner.os }}-gradle-
39+
40+
- name: Build project
41+
run: ./gradlew build
42+
43+
- name: Extract Changelog for Release
44+
id: changelog
45+
run: |
46+
TAG_NAME="${GITHUB_REF##*/}"
47+
VERSION="${TAG_NAME#v}"
48+
sed -n "/## Version $VERSION/,/## Version/p" CHANGELOG.md | sed '1d;$d' | awk 'NF || p {print} {p = NF}' > release_notes.md
49+
env:
50+
GITHUB_REF: ${{ github.ref }}
51+
52+
- name: Create GitHub Release
53+
id: create_release
54+
uses: ncipollo/release-action@v1
55+
with:
56+
artifacts: "build/libs/*.jar"
57+
bodyFile: "release_notes.md"
58+
tag: ${{ github.ref_name }}
59+
name: "Release ${{ github.ref_name }}"
60+
draft: true
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Publish Maven Central
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*.*.*"
7+
workflow_dispatch:
8+
9+
jobs:
10+
release:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Checkout code
15+
uses: actions/checkout@v4
16+
17+
- name: Set up JDK 11
18+
uses: actions/setup-java@v4
19+
with:
20+
distribution: 'temurin'
21+
java-version: '11'
22+
cache: 'gradle'
23+
24+
- name: Cache Gradle
25+
uses: actions/cache@v4
26+
with:
27+
path: ~/.gradle/caches
28+
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
29+
restore-keys: |
30+
${{ runner.os }}-gradle-
31+
32+
- name: Build and publish to Sonatype (staging only)
33+
env:
34+
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
35+
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
36+
GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }}
37+
GPG_SIGNING_PASSPHRASE: ${{ secrets.GPG_SIGNING_PASSPHRASE }}
38+
run: ./gradlew publishToSonatype
39+
40+
- name: Manual Release Reminder
41+
run: echo "The artifacts have been staged on Sonatype. Please log in to Sonatype Nexus to close and release the staging repository manually."

.github/workflows/sphinx-prod.yml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: "Sphinx: Render production docs"
2+
run-name: ${{ github.actor }} has launched CI process on ${{ github.ref_name }}
3+
4+
on:
5+
push:
6+
branches:
7+
- "main"
8+
workflow_dispatch:
9+
10+
permissions:
11+
contents: write
12+
13+
jobs:
14+
Continuous-Integration-Actions:
15+
runs-on: self-hosted
16+
17+
env:
18+
PACKAGE_TOKEN: ${{ secrets.JLS_TOKEN }}
19+
20+
steps:
21+
- name: Checkout repository
22+
uses: actions/checkout@v4
23+
with:
24+
ref: main
25+
26+
- name: Check existing tags before fetch
27+
run: git tag --sort=-v:refname || echo "No tags found"
28+
29+
- name: Delete all local tags to avoid conflicts
30+
run: git tag -d $(git tag) || echo "No tags to delete"
31+
32+
- name: Fetch updated tags
33+
run: git fetch --prune --tags --force
34+
35+
- name: Check tags after fetch
36+
run: git tag --sort=-v:refname || echo "No tags found after fetch"
37+
38+
- name: Build Sphinx documentation with multiversion
39+
run: |
40+
set -x # Enable debug mode
41+
source /builds/miniconda3/etc/profile.d/conda.sh
42+
conda activate corese-core-documentation
43+
44+
sphinx-multiversion docs/source build/html -D exhale_args.containmentFolder="\${sourcedir}/java_api"
45+
46+
chmod +x docs/switcher_generator.sh
47+
./docs/switcher_generator.sh build/html/switcher.json build/html/index.html
48+
set +x # Disable debug mode
49+
50+
- name: Deploy to GitHub Pages
51+
uses: peaceiris/actions-gh-pages@v3
52+
with:
53+
github_token: ${{ secrets.GITHUB_TOKEN }}
54+
publish_dir: ./build/html
55+
keep_files: true

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,3 +79,4 @@ target/
7979

8080
# Other build directories and generated files
8181
/bin/
82+
/qodana.yaml

CHANGELOG.md

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
<!-- markdownlint-disable MD024 -->
2+
# Corese Changelog
3+
4+
## Version 4.6.0 – 2025-04-11
5+
6+
### Added
7+
8+
- Added script installers for Linux, macOS, and Windows platforms.
9+
- Added verbose query visualization in `query-remote` command.
10+
- Added deployment of the documentation site at [corese-stack.github.io/corese-command](https://corese-stack.github.io/corese-command).
11+
- Added new `canonicalize` command to canonicalize RDF files in formats like `rdfc-1.0`.
12+
13+
### Changed
14+
15+
- Renamed commands for consistency:
16+
- `sparql``query`
17+
- `shacl``validate`
18+
- `remote-sparql``query-remote`
19+
- Updated completion candidate colors from pale pink to magenta for better visibility on white backgrounds.
20+
- Updated Corese-Core dependency to version `4.6.3`.
21+
- Changed `--no-owl-import` to `--owl-import` across all commands for clarity.
22+
- The option now explicitly enables `owl:imports` (default is `false`).
23+
24+
### Fixed
25+
26+
- Fixed Windows bug related to incorrect line endings.
27+
- Fixed issue with missing `.` when automatically adding file extensions on export.
28+
- Fixed JSON-LD serializer bug on Windows.
29+
30+
### Removed
31+
32+
- Removed redirection options from the `query-remote` command.
33+
34+
## Version 4.5.0 – 2023-12-14
35+
36+
### Added
37+
38+
- Added new sub-command `shacl` to validate RDF graphs against SHACL shapes.
39+
- Added new sub-command `remote-sparql` to execute SPARQL queries on remote endpoints (see [issue #135](https://github.com/Wimmics/corese/issues/135)).
40+
- Added verbose option.
41+
- Added support for property files.
42+
- Added `-no-owl-import` option (see [issue #134](https://github.com/Wimmics/corese/issues/134)).
43+
- Added output formats `N-Triples` and `N-Quads` to the `convert` sub-command.
44+
45+
### Changed
46+
47+
- Moved hint messages to the standard error stream.
48+
- Moved error messages to the standard error stream (see [issues #141](https://github.com/Wimmics/corese/issues/141) and [#142](https://github.com/Wimmics/corese/issues/142)).
49+
50+
### Fixed
51+
52+
- Fixed Trig serialization to escape special characters (see [issue #151](https://github.com/Wimmics/corese/issues/151)).
53+
- Fixed federated queries with `PREFIX` statements failing under certain conditions (see [issue #140](https://github.com/Wimmics/corese/issues/140)).
54+
55+
## Version 4.4.1 – 2023-07-25
56+
57+
### Added
58+
59+
- Added URL support as an input file for `convert` and `sparql` sub-commands.
60+
- Added standard input support as an input file for `sparql` and `convert` sub-commands.
61+
- Added standard output support as an output file for `sparql` and `convert` sub-commands.
62+
- Added multiple files support as input for the `sparql` sub-command.
63+
- Added directory and recursive directory support as input for the `sparql` sub-command.
64+
- Added support for all types of queries (SELECT, CONSTRUCT, ASK, DESCRIBE, INSERT, DELETE, INSERT WHERE, DELETE WHERE) in the `sparql` sub-command.
65+
- Added user choice for result format in the `sparql` sub-command.
66+
- Added Markdown output format for the `sparql` sub-command.
67+
- Added MIME type support as a format name.
68+
- Added configuration to disable `owl:imports` auto-import.
69+
70+
### Changed
71+
72+
- Refactored `convert` and `sparql` sub-commands.
73+
- Renamed format names for more consistency.
74+
75+
### Removed
76+
77+
- Removed `owlProfile` and `ldscript` sub-commands (to be reintroduced in a future release after refactoring).
78+
79+
### Fixed
80+
81+
- Fixed warning: `sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.`
82+
83+
### Security
84+
85+
- Updated `json` from `20180813` to `20230227` in `/sparql` (see [Pull Request #123](https://github.com/Wimmics/corese/pull/123)).
86+
- Updated `json` from `20180813` to `20230227` in `/corese-test` (see [Pull Request #124](https://github.com/Wimmics/corese/pull/124)).
87+
- Updated `guava` from `31.1-jre` to `32.0.0-jre` in `/corese-jena` (see [Pull Request #128](https://github.com/Wimmics/corese/pull/128)).
88+
89+
## Version 4.4.0 – 2023-03-30
90+
91+
### Added
92+
93+
- **Corese-Command**: Initial beta release of the Corese-Command line application.
94+
> **Note**: The interface and commands are subject to change in future versions.
95+
96+
- **Options**:
97+
- `-h`, `--help`: Display help message and exit.
98+
- `-V`, `--version`: Print version information and exit.
99+
100+
- **Commands**:
101+
- `convert`: Allows conversion of RDF files between different serialization formats (e.g., Turtle, RDF/XML, JSON-LD).
102+
- `sparql`: Enables execution of SPARQL queries directly from the command line.
103+
- `owlProfile`: Checks RDF data against OWL profiles to ensure compatibility.

0 commit comments

Comments
 (0)