Commit abfdd28
## Summary
- Register `JavaTimeModule` and disable `WRITE_DATES_AS_TIMESTAMPS` on
the `ObjectMapper` used by `writeMapToPackage`, so
`java.time.OffsetDateTime` (returned by Nextflow 24.10+
`WorkflowMetadata.toMap()` for `start`/`complete`) serializes as
ISO-8601 strings.
- Add `jackson-datatype-jsr310:2.19.0` dependency to match the existing
`jackson-databind` version.
- Restore working test input package (`nf-core-gallery` was deleted;
switched to `udp-spec/nf-quilt/source`).
- Bump version to 0.9.2.
## Why
Without the module registered, `toJson` threw `Java 8 date/time type
java.time.OffsetDateTime not supported by default`. The exception was
caught in `writeMapToPackage`, so the pipeline appeared to finish — but
`nf-quilt/config.json`, `params.json`, and `workflow.json` were never
written, producing packages with degraded metadata.
Closes #321
## Test plan
- [x] Pipeline run produces all three JSONs in the published package —
verified at
`s3://udp-spec/nf-quilt/dest-0.9.2/nf-quilt/{config,params,workflow}.json`
- [x] `start`/`complete` in `workflow.json` are ISO-8601 strings (e.g.
`2026-04-29T08:09:29.334938-07:00`), not epoch decimals
- [x] Existing test suite passes — all 10 CI jobs green
(Linux/macOS/Windows × JDK 17/19/21) against pinned `NXF_VER=24.10.3`
🤖 Generated with [Claude Code](https://claude.com/claude-code)
<!-- greptile_comment -->
<h3>Greptile Summary</h3>
This PR fixes a Jackson serialization failure for
`java.time.OffsetDateTime` values returned by Nextflow 24.10+ workflow
metadata, which silently prevented `config.json`, `params.json`, and
`workflow.json` from being written to published packages. The fix
registers `JavaTimeModule` and disables `WRITE_DATES_AS_TIMESTAMPS` on
the static `ObjectMapper`, adds the matching
`jackson-datatype-jsr310:2.19.0` dependency, adds a targeted regression
test, updates the test input package reference, and bumps the version to
0.9.2.
<h3>Confidence Score: 5/5</h3>
Safe to merge — the fix is correct, well-tested, and self-contained with
no side effects on existing serialization behaviour.
All changes are focused and correct: JavaTimeModule + disabling
WRITE_DATES_AS_TIMESTAMPS is the standard Jackson pattern for ISO-8601
OffsetDateTime output; the dependency version matches jackson-databind;
a regression test covers both the positive and negative cases; the
previous thread's concern about WRITE_DATES_AS_TIMESTAMPS was already
addressed in the current HEAD.
No files require special attention.
<h3>Important Files Changed</h3>
| Filename | Overview |
|----------|----------|
| plugins/nf-quilt/src/main/nextflow/quilt/QuiltProduct.groovy |
Registers JavaTimeModule and disables WRITE_DATES_AS_TIMESTAMPS on the
static ObjectMapper to fix OffsetDateTime serialization; changes are
correct and thread-safe. |
| build.gradle | Adds jackson-datatype-jsr310:2.19.0 to match existing
jackson-databind version; correct dependency for JavaTimeModule. |
| plugins/nf-quilt/src/test/nextflow/quilt/QuiltProductTest.groovy |
Adds a regression test for OffsetDateTime ISO-8601 serialization; checks
both the positive (ISO string present) and negative (no numeric epoch
for start key) cases. |
| main.nf | Replaces deleted nf-core-gallery reference with
udp-spec/nf-quilt/source package; removes unused params.hash variable. |
| wf/main.gallery.nf | Deleted since it referenced the
no-longer-available nf-core-gallery bucket. |
| plugins/nf-quilt/src/resources/META-INF/MANIFEST.MF | Bumps
Plugin-Version from 0.9.1 to 0.9.2; consistent with changelog and
README-DEV updates. |
</details>
<h3>Sequence Diagram</h3>
```mermaid
sequenceDiagram
participant NF as Nextflow 24.10+
participant QP as QuiltProduct
participant OM as ObjectMapper
participant JTM as JavaTimeModule
participant PKG as QuiltPackage
NF->>QP: WorkflowMetadata.toMap()<br/>(start/complete as OffsetDateTime)
QP->>OM: toJson(map)
OM->>JTM: serialize(OffsetDateTime)
JTM-->>OM: "2026-04-29T08:09:29.334938-07:00"
OM-->>QP: JSON string (ISO-8601)
QP->>PKG: writeMapToPackage(workflow.json)
PKG-->>NF: Package published with metadata
```
<sub>Reviews (3): Last reviewed commit: ["address PR review
feedback"](50c071d)
| [Re-trigger
Greptile](https://app.greptile.com/api/retrigger?id=30183248)</sub>
<!-- /greptile_comment -->
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 95e80d7 commit abfdd28
8 files changed
Lines changed: 31 additions & 35 deletions
File tree
- plugins/nf-quilt/src
- main/nextflow/quilt
- resources/META-INF
- test/nextflow/quilt
- wf
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
7 | 10 | | |
8 | 11 | | |
9 | 12 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
| 18 | + | |
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
101 | 101 | | |
102 | 102 | | |
103 | 103 | | |
| 104 | + | |
104 | 105 | | |
105 | 106 | | |
106 | 107 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
6 | | - | |
| 5 | + | |
7 | 6 | | |
8 | 7 | | |
9 | 8 | | |
| |||
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| 20 | + | |
| 21 | + | |
20 | 22 | | |
21 | 23 | | |
22 | 24 | | |
| |||
97 | 99 | | |
98 | 100 | | |
99 | 101 | | |
| 102 | + | |
| 103 | + | |
100 | 104 | | |
101 | 105 | | |
102 | 106 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
Lines changed: 19 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| 31 | + | |
| 32 | + | |
31 | 33 | | |
32 | 34 | | |
33 | 35 | | |
| |||
95 | 97 | | |
96 | 98 | | |
97 | 99 | | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
98 | 117 | | |
99 | 118 | | |
100 | 119 | | |
| |||
This file was deleted.
0 commit comments