Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 3.5.0 #17

Closed
wants to merge 20 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
0bffa5c
Update to version 3.5.0-SNAPSHOT and parent version 1.8.10-SNAPSHOT
Feb 2, 2024
63f6b28
Merge branch 'master' into dev
radiologics-kate Feb 16, 2024
ee189db
CS-963 change version to 1.8.11-SNAPSHOT
binzhang7101 Mar 7, 2024
baca76c
Copy immutable map to a mutable map in LaunchUi
johnflavin-fw Mar 8, 2024
7cec5d8
CS-964 Exclude bouncycastle in a targeted way so integration tests st…
johnflavin-fw Mar 12, 2024
3c5ec0f
CS-946 Fixing issue where Kubernetes PVC fields could all be set at o…
igauthier-flywheel Mar 20, 2024
95c24ab
CS-946 Fixing path translation overlap problems.
igauthier-flywheel Apr 3, 2024
eca1da2
CS-946 changelog
johnflavin-fw May 10, 2024
223acbd
CS-969 Pre-docker-client switch refactors (pull request #117)
johnflavin-fw May 28, 2024
973ec78
CS-970 Add CommandLaunchIntegrationTest.testCommandWithGenericResourc…
johnflavin-fw May 28, 2024
a8f4615
CS-968 Switch client library from docker-client to docker-java (pull …
johnflavin-fw May 31, 2024
02e2654
CS-968 Add more detail to changelog about docker library switch
johnflavin-fw May 31, 2024
e22f1ec
Update version to 3.5.0-RC-SNAPSHOT
johnflavin-fw May 31, 2024
5cef775
Add GitHub CI files (#16)
johnflavin Jun 5, 2024
a1e0326
Added to my own container to list of containers
jarrelscy Jan 4, 2020
8f6944e
Remove circleci and gitlab ci files
johnflavin Jun 5, 2024
0acf3eb
Update version to 3.5.0
johnflavin Jun 5, 2024
8b90d69
Update changelog
johnflavin Jun 5, 2024
7edfe17
Merge branch 'main' into releases/3.5.0-rc
johnflavin Jun 5, 2024
6588ec4
Merge branch 'develop' into releases/3.5.0-rc
johnflavin Jun 5, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 0 additions & 28 deletions .circleci/config.yml

This file was deleted.

8 changes: 8 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
version: 2
updates:
- package-ecosystem: "gradle"
directory: "/"
schedule:
interval: "weekly"
assignees:
- "johnflavin"
89 changes: 89 additions & 0 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle

name: Java CI with Gradle

on:
push:
branches: [ "main", "develop" ]
pull_request:
branches: [ "main", "develop" ]

jobs:
build:

runs-on: ubuntu-latest
permissions:
contents: read

steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '8'
distribution: 'corretto'

# Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies.
# See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md
- name: Setup Gradle
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0

- name: Build with Gradle Wrapper
run: ./gradlew fatJar
- uses: actions/upload-artifact@v4
with:
name: Package
path: build/libs

test:

runs-on: ubuntu-latest
permissions:
contents: read

steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '8'
distribution: 'corretto'

# Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies.
# See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md
- name: Setup Gradle
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0

- name: Build with Gradle Wrapper
run: ./gradlew test

- name: Upload test artifacts
run: mkdir staging && cp -r build/reports staging/ && cp -r build/test-results staging/
- uses: actions/upload-artifact@v4
with:
name: Test Results
path: staging

dependency-submission:

runs-on: ubuntu-latest
permissions:
contents: write

steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '8'
distribution: 'corretto'

# Generates and submits a dependency graph, enabling Dependabot Alerts for all project dependencies.
# See: https://github.com/gradle/actions/blob/main/dependency-submission/README.md
- name: Generate and submit dependency graph
uses: gradle/actions/dependency-submission@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0
21 changes: 0 additions & 21 deletions .gitlab-ci.yml

This file was deleted.

27 changes: 27 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,32 @@
# Changelog

## 3.5.0

* **Improvement** [CS-946][] Prevent setting mutually distinct k8s PVC mounting options
* **Bugfix** [CS-968][] Switch the docker API library we use from [docker-client][] to [docker-java][].
This should restore CS functionality on docker engine v25 and higher.

### A Note About Our Docker Library
Originally we used the [spotify/docker-client][] library to wrap the docker remote API in java method calls. They stopped updating that and put out their final release [v6.1.1][] in 2016.

We switched the Container Service to use a fork of that client, [dmandalidis/docker-client][] in CS version 3.0.0. Given that this was a fork of the client we already used, it was a simple drop-in replacement with no changes needed.

But that library maintainer did continue to make changes. In 2023 they released a major version upgrade, [v7.0.0][], which dropped support for Java 8. That is the version of Java we use in XNAT (at time of writing) so this change meant we weren't able to update our version of this library. That was fine for a while...
...Until version 25 of the docker engine, in which they made an API change which caused an error in the version we used of `docker-client`. The library (presumably) fixed their issue but we weren't able to use that fix because our version of the library was frozen by their decision to drop Java 8 support.

This forced us to switch our library from `docker-client` to [docker-java][]. This was not a drop-in replacement, and did require a migration. All the same docker API endpoints were supported in a 1:1 replacement—which took a little effort but was straightforward—except for one. The `docker-java` library did not support requesting `GenericResources` on a swarm service, which is the mechanism by which we allow commands to specify that they need a GPU. We opened a ticket reporting that lack of support (https://github.com/docker-java/docker-java/issues/2320), but at time of writing there has been no response. I created a fork (https://github.com/johnflavin/docker-java) and fixed the issue myself (https://github.com/docker-java/docker-java/pull/2327), but at time of writing that also has no response. I built a custom version of `docker-java` `3.4.0.1` and pushed that to the XNAT artifactory ([ext-release-local/com/github/docker-java][]).

Long story short, as of CS version `3.5.0` we depend on `docker-java` version `3.4.0.1` for our docker (and swarm) API support.

[CS-946]: https://radiologics.atlassian.net/browse/CS-946
[CS-968]: https://radiologics.atlassian.net/browse/CS-968
[spotify/docker-client]: https://github.com/spotify/docker-client
[v6.1.1]: https://github.com/spotify/docker-client/releases/tag/v6.1.1
[dmandalidis/docker-client]: https://github.com/dmandalidis/docker-client
[v7.0.0]: https://github.com/dmandalidis/docker-client/tree/v7.0.0
[docker-java]: https://github.com/docker-java/docker-java
[ext-release-local/com/github/docker-java]: https://nrgxnat.jfrog.io/ui/repos/tree/General/ext-release-local/com/github/docker-java

## 3.4.3
[Released](https://bitbucket.org/xnatdev/container-service/src/3.4.3/).

Expand Down
Loading
Loading