Skip to content

Commit b401fb4

Browse files
bump version to 4.5.0 (#137)
* bump version to 4.5.0 * fixes issue with pipeline publishing non-snapshot builds * adds test cases
1 parent 3a3ff1b commit b401fb4

32 files changed

Lines changed: 1993 additions & 851 deletions

.editorconfig

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
end_of_line = lf
6+
indent_size = 4
7+
indent_style = space
8+
insert_final_newline = true
9+
trim_trailing_whitespace = true
10+
11+
[*.kt]
12+
max_line_length = off

.github/workflows/build.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,15 @@ jobs:
2626
server-url: https://repo1.maven.org/maven2
2727
server-username: MAVEN_USERNAME
2828
server-password: MAVEN_PASSWORD
29+
- name: Verify version is a SNAPSHOT
30+
run: |
31+
VERSION=$(./mvnw help:evaluate -Dexpression=project.version -q -DforceStdout)
32+
echo "Project version: $VERSION"
33+
if [[ "$VERSION" != *-SNAPSHOT ]]; then
34+
echo "ERROR: Refusing to deploy non-SNAPSHOT version '$VERSION'. Bump the version to a -SNAPSHOT before merging to master."
35+
exit 1
36+
fi
37+
shell: bash
2938
- name: Publish snapshot
3039
run: ./mvnw --batch-mode -no-transfer-progress --update-snapshots deploy -Ppackage
3140
env:

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ docpath.txt
99

1010
*.log
1111
*.log.*
12+
LOG_FILE_IS_UNDEFINED
1213
.idea
1314
*.iml
1415
*.vsix

CHANGELOG.md

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,30 @@
22

33
## v4.5.0
44

5-
Date: 2026-04-08
5+
Date: 2026-04-15
6+
7+
### Execute CQL
8+
9+
Adds a JSON-RPC–based Execute CQL command (`org.opencds.cqf.cql.ls.executeCql`) that
10+
replaces the previous CLI-based approach.
11+
12+
* Accepts a structured `ExecuteCqlRequest` with per-library FHIR model paths, terminology URI,
13+
context, and user-defined parameters
14+
* Evaluates all test cases for a library in a single batch (compile once, evaluate per patient)
15+
* `CqlEvaluator` — new evaluator that builds a shared engine per batch and runs each patient context
16+
* `DelegatingRepository` — mutable repository wrapper that swaps the patient bundle between evaluations
17+
* `ExecuteCqlCommandContribution` — registers the command and dispatches to `CqlEvaluator`
18+
* Removed `CliCommand` and `CqlCommand` (picocli CLI) — no longer needed
19+
* Returns structured JSON: expression results, server-side logs, and used-default-parameter metadata
20+
21+
### Compilation Cache + Surgical Invalidation
22+
23+
* `CqlCompilationManager` now caches compiled `CqlCompiler` results per source URI
24+
* Reverse dependency index tracks which URIs depend on each library identifier
25+
* `invalidate(uri)` evicts the URI and all dependents from the cache
26+
* `DiagnosticsService.didChangeWatchedFiles` triggers surgical invalidation on `.cql` file changes
27+
* `IgStandardRepository` adds a `typeResourceCache` — caches directory scans per resource
28+
type/compartment combination, eliminating redundant filesystem walks across patients in a batch
629

730
### Module Consolidation
831

ls/server/pom.xml

Lines changed: 9 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<parent>
1313
<groupId>org.opencds.cqf.cql.ls</groupId>
1414
<artifactId>cql-ls</artifactId>
15-
<version>4.5.0-SNAPSHOT</version>
15+
<version>4.5.0</version>
1616
<relativePath>../../pom.xml</relativePath>
1717
</parent>
1818

@@ -88,11 +88,6 @@
8888
<artifactId>eventbus-java</artifactId>
8989
</dependency>
9090

91-
<dependency>
92-
<groupId>info.picocli</groupId>
93-
<artifactId>picocli</artifactId>
94-
</dependency>
95-
9691
<!-- Generated annotation -->
9792
<dependency>
9893
<groupId>jakarta.annotation</groupId>
@@ -153,31 +148,17 @@
153148
</execution>
154149
</executions>
155150
</plugin>
151+
<!-- All source is Kotlin; checkstyle is a Java linter and has no work to do here. -->
152+
<plugin>
153+
<groupId>org.apache.maven.plugins</groupId>
154+
<artifactId>maven-checkstyle-plugin</artifactId>
155+
<configuration>
156+
<skip>true</skip>
157+
</configuration>
158+
</plugin>
156159
</plugins>
157160
<pluginManagement>
158161
<plugins>
159-
<plugin>
160-
<groupId>org.jetbrains.kotlin</groupId>
161-
<artifactId>kotlin-maven-plugin</artifactId>
162-
<executions>
163-
<execution>
164-
<id>kapt</id>
165-
<goals><goal>kapt</goal></goals>
166-
<configuration>
167-
<sourceDirs>
168-
<sourceDir>${project.basedir}/src/main/kotlin</sourceDir>
169-
</sourceDirs>
170-
<annotationProcessorPaths>
171-
<annotationProcessorPath>
172-
<groupId>info.picocli</groupId>
173-
<artifactId>picocli-codegen</artifactId>
174-
<version>${picocli.version}</version>
175-
</annotationProcessorPath>
176-
</annotationProcessorPaths>
177-
</configuration>
178-
</execution>
179-
</executions>
180-
</plugin>
181162
<plugin>
182163
<groupId>org.apache.maven.plugins</groupId>
183164
<artifactId>maven-compiler-plugin</artifactId>
@@ -192,13 +173,6 @@
192173
<arg>-Werror</arg>
193174
<arg>-implicit:none</arg>
194175
</compilerArgs>
195-
<annotationProcessorPaths>
196-
<path>
197-
<groupId>info.picocli</groupId>
198-
<artifactId>picocli-codegen</artifactId>
199-
<version>${picocli.version}</version>
200-
</path>
201-
</annotationProcessorPaths>
202176
</configuration>
203177
</plugin>
204178
</plugins>

ls/server/src/main/kotlin/org/opencds/cqf/cql/ls/server/command/CliCommand.kt

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

0 commit comments

Comments
 (0)