Skip to content

Commit ef06239

Browse files
committed
Ziggy release 0.7.0 (2024-10-25)
1 parent 78729cb commit ef06239

378 files changed

Lines changed: 10788 additions & 12117 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.

CITATION.cff

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
cff-version: 1.2.0
22
message: "If you use this software in your research, please cite it using these metadata."
33
title: Ziggy
4-
version: v0.6.0
5-
date-released: "2024-07-26"
4+
version: v0.7.0
5+
date-released: "2024-10-25"
66
abstract: "Ziggy, a portable, scalable infrastructure for science data processing pipelines, is the child of the Transiting Exoplanet Survey Satellite (TESS) pipeline and the grandchild of the Kepler Pipeline."
77
authors:
88
- family-names: Tenenbaum

RELEASE-NOTES.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,49 @@
44

55
These are the release notes for Ziggy. In the change log below, we'll refer to our internal Jira key for our benefit. If the item is associated with a resolved GitHub issue or pull request, we'll add a link to that. Changes that are incompatible with previous versions are marked below. While the major version is 0, we will be making breaking changes when bumping the minor number. However, once we hit version 1.0.0, incompatible changes will only be made when bumping the major number.
66

7+
# v0.7.0: Halloween release
8+
9+
This release is coming out just before Halloween, and it's full of tricks and treats. Behind the scenes, we continued to buy down decades of technical debt. Are we finally getting close to paying off that loan? By eliminating the StateFile API (ZIGGY-465) and fixing ZIGGY-432, ZIGGY-454, and ZIGGY-478, the pipeline no longer stalls or crashes for mysterious reasons. We fixed a few UI annoyances like collapsing tree controls and Control-Click not working as expected on the Mac.
10+
11+
## New Features
12+
13+
1. Rename sub-task to subtask (ZIGGY-79)
14+
1. Use log4j2 conventions and features (ZIGGY-82)
15+
1. Provide means for clients/algorithms to add their software version to Ziggy's data accountability (ZIGGY-430)
16+
1. Fix Group design (ZIGGY-431)
17+
1. Refactor PipelineTask (ZIGGY-433)
18+
1. Limit console to operations (ZIGGY-441)
19+
1. Add PipelineInstanceIdOperations methods to PipelineInstanceOperations (ZIGGY-445)
20+
1. Support copying files to task directory without datastore (ZIGGY-446)
21+
1. Retrieve DatastoreRegexps from the database by name (ZIGGY-447)
22+
1. Locate consumed files used to produce a file (ZIGGY-448)
23+
1. Ensure importer can add and update module and pipeline definitions (ZIGGY-452)
24+
1. Write HDF5 files usable by Zowie (ZIGGY-455)
25+
1. Eliminate the need for programmatic appenders (ZIGGY-456)
26+
1. TaskMonitor doesn't change processing step from QUEUED to EXECUTING (ZIGGY-457)
27+
1. Add parameter retrieval to PipelineTaskOperations (ZIGGY-460)
28+
1. Check for new vs existing files in datastore (ZIGGY-461)
29+
1. Eliminate StateFile API (ZIGGY-465)
30+
31+
## Bug Fixes
32+
33+
1. Double-click resize is lost when table auto-update occurs (ZIGGY-297)
34+
1. Collapsing Parameter Library and Pipelines tree controls (ZIGGY-360)
35+
1. Can't halt SUBMITTED tasks (ZIGGY-424)
36+
1. Resume monitoring can't be stopped (ZIGGY-425)
37+
1. Race condition in pipeline workers (ZIGGY-432)
38+
1. Ziggy C++ Mex build tools set incorrect install name (ZIGGY-444)
39+
1. Warning alert clears error alert status (ZIGGY-450)
40+
1. Python distutils module removed from Python 3.12 (ZIGGY-451)
41+
1. Local processing crashes sporadically (ZIGGY-454)
42+
1. ZiggyQuery chunkedIn doesn't work (ZIGGY-462)
43+
1. Remote execution dialog can't parse numbers with commas (ZIGGY-463)
44+
1. Parameter API populates empty arrays (ZIGGY-468)
45+
1. Module parameter sets in HDF5 have incorrect field order values (ZIGGY-469)
46+
1. Worker never exits when subtask errors (ZIGGY-478)
47+
1. Control-Click clears selection on the Mac (ZIGGY-479)
48+
1. Exceptions when using pipeline instance filters (ZIGGY-489)
49+
750
# v0.6.0: You never have to wonder what Ae 4 / 3 / 0 means again
851

952
We fixed a confusing aspect of the user interface and a ton of bugs while we continued to buy down decades of technical debt. You can now halt tasks or instances from the command-line interface (CLI). We improved pipeline definitions by making datastore definitions more flexible and providing for user-specified data receipt unit of work (UOW) generators.

build.gradle

Lines changed: 6 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -124,64 +124,6 @@ java {
124124
withSourcesJar()
125125
}
126126

127-
test {
128-
systemProperty "java.library.path", "$outsideDir/lib"
129-
maxHeapSize = "1024m"
130-
131-
testLogging {
132-
events "failed", "skipped"
133-
}
134-
useJUnit {
135-
// If a code coverage report that incudes the integration tests is desired, then comment
136-
// out the IntegrationTestCategory line and uncomment the RunByNameTestCategory line. When
137-
// the JaCoCo issue described below is resolved, then delete this comment.
138-
// excludeCategories 'gov.nasa.ziggy.RunByNameTestCategory'
139-
excludeCategories 'gov.nasa.ziggy.IntegrationTestCategory'
140-
}
141-
142-
// Use "gradle -P traceTests test" to show test order.
143-
if (project.hasProperty("traceTests")) {
144-
afterTest { desc, result ->
145-
logger.quiet "${desc.className}.${desc.name}: ${result.resultType}"
146-
}
147-
}
148-
}
149-
150-
// Execute tests marked with @Category(IntegrationTestCategory.class).
151-
task integrationTest(type: Test) {
152-
systemProperty "log4j2.configurationFile", "$rootDir/etc/log4j2.xml"
153-
systemProperty "ziggy.logfile", "$buildDir/build.log"
154-
systemProperty "java.library.path", "$outsideDir/lib"
155-
156-
testLogging {
157-
events "failed", "skipped"
158-
}
159-
useJUnit {
160-
includeCategories 'gov.nasa.ziggy.IntegrationTestCategory'
161-
excludeCategories 'gov.nasa.ziggy.RunByNameTestCategory'
162-
}
163-
}
164-
165-
// Execute tests marked with @Category(RunByNameTestCategory.class).
166-
// These tests are typically run explicitly with the --tests option
167-
// since they don't play well with others. For example:
168-
// gradle runByNameTests --tests *RmiInterProcessCommunicationTest
169-
task runByNameTest(type: Test) {
170-
systemProperty "log4j2.configurationFile", "$rootDir/etc/log4j2.xml"
171-
systemProperty "ziggy.logfile", "$buildDir/build.log"
172-
systemProperty "java.library.path", "$outsideDir/lib"
173-
174-
useJUnit {
175-
includeCategories 'gov.nasa.ziggy.RunByNameTestCategory'
176-
}
177-
}
178-
179-
// Task specified by the Ziggy Software Management Plan (SMP) to run all tests.
180-
task testAll
181-
182-
testAll.dependsOn test, integrationTest
183-
check.dependsOn testAll
184-
185127
// To view code coverage, run the jacocoTestReport task and view the output in:
186128
// build/reports/jacoco/test/html/index.html.
187129
check.dependsOn jacocoTestReport
@@ -234,13 +176,18 @@ tasks.withType(com.github.spotbugs.snom.SpotBugsTask) {
234176
task copyOutsideLibs
235177
compileJava.dependsOn copyOutsideLibs
236178

179+
237180
// Apply Ziggy Gradle script plugins.
181+
182+
// A couple of the other scripts depend on integrationTest.
183+
apply from: "script-plugins/test.gradle"
184+
185+
// Most scripts in alphabetical order.
238186
apply from: "script-plugins/copy.gradle"
239187
apply from: "script-plugins/database-schemas.gradle"
240188
apply from: "script-plugins/eclipse.gradle"
241189
apply from: "script-plugins/hdf5.gradle"
242190
apply from: "script-plugins/misc.gradle"
243-
apply from: "script-plugins/test.gradle"
244191
apply from: "script-plugins/wrapper.gradle"
245192
apply from: "script-plugins/xml-schemas.gradle"
246193
apply from: "script-plugins/ziggy-libraries.gradle"

buildSrc/src/main/java/gov/nasa/ziggy/buildutil/Mcc.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ public Set<File> additionalFiles() {
124124

125125
@TaskAction
126126
public void action() {
127-
log.info(String.format("%s.action()\n", this.getClass().getSimpleName()));
127+
log.info("{}.action()", this.getClass().getSimpleName());
128128
File matlabHome = matlabHome();
129129

130130
File buildBinDir = new File(getProject().getBuildDir(), "bin");
@@ -150,9 +150,9 @@ public void action() {
150150
path += ".app";
151151
executable = new File(path);
152152
String message = String.format(
153-
"The outputExecutable, \"%s\", already exists and cannot be deleted\n", executable);
153+
"The outputExecutable, %s, already exists and cannot be deleted\n", executable);
154154
if (executable.exists()) {
155-
log.info(String.format("%s: already exists, delete it\n", executable));
155+
log.info("{} already exists, delete it", executable);
156156
if (executable.isDirectory()) {
157157
try {
158158
FileUtils.deleteDirectory(executable);
@@ -198,7 +198,7 @@ public void action() {
198198
processBuilder.environment()
199199
.put("MCC_DIR", getProject().getProjectDir().getCanonicalPath());
200200
} catch (IOException e) {
201-
log.error(String.format("Could not set MCC_DIR: %s", e.getMessage()), e);
201+
log.error("Could not set MCC_DIR: {}", e.getMessage(), e);
202202
}
203203
execProcess(processBuilder);
204204

buildSrc/src/main/java/gov/nasa/ziggy/buildutil/ZiggyCppMex.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ public void setMatlabPath() {
297297
Project project = getProject();
298298
if (project.hasProperty(MATLAB_PATH_PROJECT_PROPERTY)) {
299299
matlabPath = project.findProperty(MATLAB_PATH_PROJECT_PROPERTY).toString();
300-
log.info("MATLAB path set from project extra property: " + matlabPath);
300+
log.info("MATLAB path set from project extra property {}", matlabPath);
301301
}
302302
if (matlabPath == null) {
303303
String systemPath = System.getenv("PATH");
@@ -307,7 +307,7 @@ public void setMatlabPath() {
307307
String pathLower = path.toLowerCase();
308308
if (pathLower.contains("matlab") && path.endsWith("bin")) {
309309
matlabPath = path.substring(0, path.length() - 4);
310-
log.info("MATLAB path set from PATH environment variable: " + matlabPath);
310+
log.info("MATLAB path set from PATH environment variable {}", matlabPath);
311311
break;
312312
}
313313
}
@@ -317,7 +317,7 @@ public void setMatlabPath() {
317317
String matlabHome = System.getenv(MATLAB_PATH_ENV_VAR);
318318
if (matlabHome != null) {
319319
matlabPath = matlabHome;
320-
log.info("MATLAB path set from MATLAB_HOME environment variable: " + matlabPath);
320+
log.info("MATLAB path set from MATLAB_HOME environment variable {}", matlabPath);
321321
}
322322
}
323323
if (matlabPath == null) {

buildSrc/src/main/java/gov/nasa/ziggy/buildutil/ZiggyCppMexPojo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ public String generateMexCommand(File mexfile, File obj) {
256256
@Override
257257
public void action() {
258258

259-
log.info(String.format("%s.action()\n", this.getClass().getSimpleName()));
259+
log.info("{}.action()", this.getClass().getSimpleName());
260260

261261
// Start by performing the compilation
262262
compileAction();

buildSrc/src/main/java/gov/nasa/ziggy/buildutil/ZiggyCppPojo.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -240,8 +240,8 @@ private void populateSourceFiles(boolean warn) {
240240
fileListBuilder.append(file.getName());
241241
fileListBuilder.append(" ");
242242
}
243-
log.info("List of C/C++ files in directory " + sourceFilePaths + ": "
244-
+ fileListBuilder.toString());
243+
log.info("List of C/C++ files in directory {}: {}", sourceFilePaths,
244+
fileListBuilder.toString());
245245
}
246246
}
247247

@@ -490,7 +490,7 @@ protected DefaultExecutor getDefaultExecutor(File workingDirectory) {
490490
*/
491491
public void action() {
492492

493-
log.info(String.format("%s.action()\n", this.getClass().getSimpleName()));
493+
log.info("{}.action()", this.getClass().getSimpleName());
494494

495495
// compile the source files
496496
compileAction();
@@ -505,7 +505,7 @@ protected void compileAction() {
505505

506506
File objDir = objDir();
507507
if (!objDir.exists()) {
508-
log.info("mkdir: " + objDir.getAbsolutePath());
508+
log.info("Creating directory {}", objDir.getAbsolutePath());
509509
objDir.mkdirs();
510510
}
511511

@@ -551,7 +551,7 @@ protected void linkAction() {
551551
destDir = libDir();
552552
}
553553
if (!destDir.exists()) {
554-
log.info("mkdir: " + destDir.getAbsolutePath());
554+
log.info("Creating directory {}", destDir.getAbsolutePath());
555555
destDir.mkdirs();
556556
}
557557
try {

0 commit comments

Comments
 (0)