Skip to content

Commit 4110832

Browse files
committed
Ziggy release 0.10.0 (2025-10-29)
1 parent 6ba32c0 commit 4110832

177 files changed

Lines changed: 2886 additions & 2319 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.9.0
5-
date-released: "2025-04-10"
4+
version: v0.10.0
5+
date-released: "2025-10-29"
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: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,54 @@
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.10.0: Almost ready for 1.0.0
8+
9+
This version is being used to run the Transiting Exoplanet Survey Satellite (TESS) data analysis pipeline. That effort is currently in dry run in preparation for formal V&V.
10+
11+
The content of this release contains bug fixes and other improvements to get us to this point.
12+
13+
## New Features
14+
15+
1. Relax stringent pipeline configuration naming conventions (ZIGGY-258)
16+
1. Add java heap size control for before / after algorithm executor (ZIGGY-559)
17+
1. Adjust task request priorities (ZIGGY-560)
18+
1. Pipeline task priority in task request handlers is incorrect (ZIGGY-566)
19+
1. Add final subtask check to TaskMonitor (ZIGGY-568)
20+
1. Add action thread to ZiggyMessenger (ZIGGY-572)
21+
1. Remove node numbers from Edit pipeline dialog (ZIGGY-576)
22+
1. Improve performance of marshaling for new-data processing (ZIGGY-577)
23+
1. Move Supervisor PID file (ZIGGY-583)
24+
1. Allow 1-D HDF5 arrays to map to N-D Java fields (ZIGGY-584)
25+
1. Improvements to task restart API (ZIGGY-585)
26+
1. Move XmlSchemaExporter classes to command line (ZIGGY-589)
27+
1. Add index to pipeline instance in PipelineTask (ZIGGY-591)
28+
1. Delete ProtectedEntityInterceptor class (ZIGGY-596)
29+
1. Remove sandy bridge option for HECC (ZIGGY-601)
30+
1. Log "Subtask LOCKED" message only once (ZIGGY-607)
31+
32+
## Bug Fixes
33+
34+
1. The ziggy command does not perform property expansion (ZIGGY-235)
35+
1. Ziggy query to find consumed files runs too slowly (ZIGGY-548)
36+
1. Restart fails after marshaling failure (ZIGGY-558)
37+
1. Failures in remote execution management (ZIGGY-561)
38+
1. Untangle algorithm and worker heap size usage (ZIGGY-564)
39+
1. Pipeline step names cannot contain whitespace (ZIGGY-567)
40+
1. Task Information and Remote Execution commands throw exceptions (ZIGGY-570)
41+
1. ZiggyFileUtils error on nonexistent directory (ZIGGY-573)
42+
1. Resubmit tasks is unreliable (ZIGGY-574)
43+
1. Intermittent failures in ZiggyDatabaseRule (ZIGGY-575)
44+
1. Worker status panel displays wrong resources (ZIGGY-579)
45+
1. Resume current step doesn't update console (ZIGGY-580)
46+
1. Timeout hit viewing logs and log listings (ZIGGY-590)
47+
1. Edit pipelines dialog gives ConcurrentModificationException (ZIGGY-593)
48+
1. Ziggy's HDF5 installation refers to the outside directory (ZIGGY-597)
49+
1. Delete subtask lock files before resubmitting a task (ZIGGY-598)
50+
1. Double-check that all files are deleted before deleting a directory (ZIGGY-599)
51+
1. Create log directory for database on database start (ZIGGY-600)
52+
1. Speed up Instances Panel on console (ZIGGY-605)
53+
1. Supervisor crashes when orphaned remote jobs are present (ZIGGY-606)
54+
755
# v0.9.0: Getting ready for 1.0.0
856

957
Since this was our last chance to rename everything, we did so. The architecture has diverged over the decades, but we've made the names and architecture a lot more consistent in this release. You'll notice some of the changes in the XML elements in your pipeline definition (the Ziggy definitions are now in etc/ziggy.d); the rest are internal. In particular, rather than using "module" in a gazillion contexts, we've teased out the differences in separate names. The algorithms are now called "steps." When those steps are incorporated into a "pipeline," they are called "nodes." We no longer use module except in the context of Python modules.

build.gradle

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,6 @@ defaultTasks ':buildSrc:publish', 'publish', 'test'
2222
ext {
2323
// Location of third-party sources.
2424
outsideDir = "$rootDir/outside"
25-
26-
// The dependency group used for libraries from outside is called "outside".
27-
// This variable contains the directory that contains the libraries from
28-
// outside. Without the dependency group and the outside subdirectory,
29-
// consumers of the published module will get "null" errors.
30-
outsideGroupDir = "$buildDir/libs/outside"
31-
32-
// Name of the outside group, used in publishing artifacts.
33-
outsideGroup = "outside"
3425
}
3526

3627
repositories {
@@ -78,8 +69,9 @@ dependencies {
7869
implementation 'commons-beanutils:commons-beanutils:1.10.+'
7970

8071
// Libraries built outside.
81-
implementation 'outside:jarhdf5:1.14.+'
82-
implementation 'outside:wrapper:3.5.+'
72+
// Add these to the copyLibs' exclude list; otherwise, the
73+
// libraries will get zeroed out when the task runs.
74+
implementation fileTree("$buildDir/libs") {include "jarhdf5-*.jar", "wrapper-*.jar"}
8375

8476
// Needed to run unit tests and at runtime.
8577
implementation 'org.hsqldb:hsqldb:2.7.+'
@@ -174,27 +166,23 @@ tasks.withType(com.github.spotbugs.snom.SpotBugsTask) {
174166
}
175167
}
176168

177-
// Outside build files should copy their jars to $outsideGroupDir and
178-
// then make copyOutsideLibs depend on the task that performs that copy.
179-
// This is used to publish the outside jars.
169+
// Outside build files should install their jars in $buildDir/libs and
170+
// then make copyOutsideLibs depend on the task that installs the jars.
180171
task copyOutsideLibs
181172
compileJava.dependsOn copyOutsideLibs
182173

183-
184174
// Apply Ziggy Gradle script plugins.
185175

186-
// A couple of the other scripts depend on integrationTest.
187-
apply from: "script-plugins/test.gradle"
188-
189176
// Most scripts in alphabetical order.
177+
// The test.gradle file is out of order since a couple of the other
178+
// scripts depend on integrationTest.
190179
apply from: "script-plugins/copy.gradle"
180+
apply from: "script-plugins/test.gradle"
191181
apply from: "script-plugins/database-schemas.gradle"
192182
apply from: "script-plugins/eclipse.gradle"
193183
apply from: "script-plugins/hdf5.gradle"
194184
apply from: "script-plugins/misc.gradle"
185+
apply from: "script-plugins/publish.gradle"
195186
apply from: "script-plugins/wrapper.gradle"
196187
apply from: "script-plugins/xml-schemas.gradle"
197188
apply from: "script-plugins/ziggy-libraries.gradle"
198-
199-
// Depends on versions set in hdf5.gradle and wrapper.gradle and copyBuildSrc from copy.gradle.
200-
apply from: "script-plugins/publish.gradle"

doc/legal/NASA-Corporate-CLA.pdf

115 KB
Binary file not shown.

doc/legal/NASA-Individual-CLA.pdf

110 KB
Binary file not shown.
-3.38 KB
Loading

doc/user-manual/pipeline-algorithms.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,18 @@ As you can see, there are three attributes to a `step` element.
3636

3737
This is pretty much what it sounds like. This is the unique name that you will use in your pipelines to define the order in which pipeline steps are executed.
3838

39+
###### Can I Include Whitespace in the Step Name?
40+
41+
Short answer: you can, but you probably shouldn't.
42+
43+
Longer answer:
44+
45+
At runtime, the step name is used to create names for log files and for the task directory. Neither of these use-cases can tolerate whitespace because they interact with file systems that can take a dim view of whitespace in a file name. In order to match the round peg of a step name with whitespace into the square hole of the file system's expectations, all whitespace in the step name is replaced with underscore characters when creating the log files and task directories. Hence, your step name of "my step" will become "my_step" in the context of log files and task directories.
46+
47+
This is already annoying enough, but it gets worse if you want to write some sort of script that loops over log files or over task directories to do post-processing on your pipeline results. At that point you'd need to remember to use the name with underscores rather than the original name of the pipeline step.
48+
49+
Anyway, don't use whitespace in a step name if you have any way to avoid it.
50+
3951
##### `file` Attribute
4052

4153
This is the file that Ziggy will use to execute the pipeline step. This is actually an optional attribute. If you don't specify a `file`, Ziggy will look for an executable file that has the step's `name` attribute as the file name.

doc/user-manual/running-pipeline.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ generate-manifest gov.nasa.ziggy.data.management.Manifest
3333
hsqlgui org.hsqldb.util.DatabaseManagerSwing
3434
import-pipelines gov.nasa.ziggy.pipeline.definition.importer.PipelineDefinitionCli
3535
metrics gov.nasa.ziggy.metrics.report.MetricsCli
36+
property-value gov.nasa.ziggy.services.config.ZiggyConfiguration
3637
perf-report gov.nasa.ziggy.metrics.report.PerformanceReport
3738
update-pipelines gov.nasa.ziggy.pipeline.definition.importer.PipelineDefinitionCli
3839
$

etc/log4j2.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,14 @@
5858
-->
5959

6060
<!--
61-
To view SQL, uncomment the following, set the console's ThresholdFilter level to "DEBUG",
61+
To view SQL, first uncomment the following logger.
62+
To view output in Eclipse, set the console's ThresholdFilter level to "DEBUG",
6263
and add the following VM arguments to your run configuration in Eclipse.
6364
-Dlog4j2.configurationFile=etc/log4j2.xml -Dhibernate.show_sql=true -Dhibernate.format_sql=true -Dhibernate.use_sql_comments=true
65+
To view output in the supervisor log, set the "gov.nasa.ziggy" logger above to debug and append
66+
the hibernate property settings above to the ziggy.default.jvm.args property in ziggy.properties.
67+
To view output in the worker log, set the "gov.nasa.ziggy" logger above to debug and uncomment
68+
the hibernate property settings above in TaskRequestHandler.commandLine().
6469
<Logger name="org.hibernate.SQL" level="debug"/>
6570
-->
6671

etc/ziggy.d/hecc-environment.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
<remoteEnvironment name="HECC" description="HECC" batchSystem="pbs" costUnit="SBU"
88
queueTimeMetricsClass="gov.nasa.ziggy.module.remote.NasQueueTimeMetrics">
9-
<architecture name="san" description="Sandy Bridge" cores="16" ramGigabytes="32" cost="0.47"/>
109
<architecture name="ivy" description="Ivy Bridge" cores="20" ramGigabytes="64" cost="0.66"/>
1110
<architecture name="has" description="Haswell" cores="24" ramGigabytes="128" cost="0.8"/>
1211
<architecture name="bro" description="Broadwell" cores="28" ramGigabytes="128" cost="1.0"/>

0 commit comments

Comments
 (0)