OpenAPI: default the file writer format to NXmxVDS, and regenerate

The schema declared NXmxLegacy while the server's own default has long been
NXmxVDS (FileWriterSettings.h), and the integration page added this release
tells users NXmxVDS is the one to use - legacy is the layout DIALS reads only
the first data file of. A generated client that fills in schema defaults was
therefore quietly asking for the layout we advise against.

The C++ server does not materialise the default at all - an absent enum reaches
Convert as INVALID_VALUE and throws - so this moves nothing server-side. It
moves the python and zod clients, which do fill defaults in, and the changelog
says so.

update_version.sh also picked up a grid-scan description that had been changed
on this branch but never regenerated into the clients ("mutually exclusive with
rotation_axis", which stopped being true when the two stopped being
alternatives).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y5XisyYxmF8mUEQjzpMRe2
This commit is contained in:
2026-08-25 07:49:06 +02:00
co-authored by Claude Opus 5
parent 00535a7486
commit 4870c0214a
8 changed files with 17 additions and 11 deletions
+2 -2
View File
@@ -12,7 +12,7 @@
/*
* Grid_scan.h
*
* Definition of a grid scan (mutually exclusive with &#x60;rotation_axis&#x60;)
* Definition of a grid scan. May be combined with a goniometer axis: a grid is often collected at a particular head position, and a stationary axis records where that was.
*/
#ifndef Grid_scan_H_
@@ -25,7 +25,7 @@ namespace org::openapitools::server::model
{
/// <summary>
/// Definition of a grid scan (mutually exclusive with &#x60;rotation_axis&#x60;)
/// Definition of a grid scan. May be combined with a goniometer axis: a grid is often collected at a particular head position, and a stationary axis records where that was.
/// </summary>
class Grid_scan
{
+1 -1
View File
@@ -729,7 +729,7 @@ components:
- "CBF"
- "TIFF"
- "NoFileWritten"
default: "NXmxLegacy"
default: "NXmxVDS"
description: |
NoFileWritten - no files are written at all
NXmxOnlyData - only data files are written, no master file
File diff suppressed because one or more lines are too long
+1
View File
@@ -33,6 +33,7 @@ This is an UNSTABLE release. It includes many experimental features, as well as
**Breaking change to OpenAPI** - regenerate the client (`jfjoch-client` 1.0.0-rc.162, `frontend/src/client`):
* `dataset_settings.images_per_file` is no longer `default: 1000` and no longer accepts `0`; it is optional, and its minimum is 1. A client sending `0` (previously "one file for the whole run") is now rejected - omit the field instead, which for a rotation sweep gives the same single file.
* `file_writer_format` now defaults to `NXmxVDS`, matching the server's own default and the layout recommended for DIALS, XDS and CrystFEL. A generated client that fills in schema defaults and does not set the format explicitly will write VDS masters where it previously wrote legacy ones; set `NXmxLegacy` explicitly to keep them.
### 1.0.0-rc.161
This is an UNSTABLE release. It includes many experimental features, as well as many AI generated fixes. We recommend using rc.152 for production use.
@@ -6,7 +6,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**overwrite** | **bool** | Inform jfjoch_write to overwrite existing files. Otherwise files would be saved with .h5.{timestamp}.tmp suffix. | [optional] [default to False]
**format** | [**FileWriterFormat**](FileWriterFormat.md) | | [optional] [default to FileWriterFormat.NXMXLEGACY]
**format** | [**FileWriterFormat**](FileWriterFormat.md) | | [optional] [default to FileWriterFormat.NXMXVDS]
## Example
+1 -1
View File
@@ -1,6 +1,6 @@
# GridScan
Definition of a grid scan (mutually exclusive with `rotation_axis`)
Definition of a grid scan. May be combined with a goniometer axis: a grid is often collected at a particular head position, and a stationary axis records where that was.
## Properties
+3 -1
View File
@@ -5,7 +5,9 @@ export type ClientOptions = {
};
/**
* Definition of a grid scan (mutually exclusive with `rotation_axis`)
* Definition of a grid scan. May be combined with a goniometer axis: a grid is often collected
* at a particular head position, and a stationary axis records where that was.
*
*/
export type grid_scan = {
/**
+4 -2
View File
@@ -3,7 +3,9 @@
import * as z from 'zod';
/**
* Definition of a grid scan (mutually exclusive with `rotation_axis`)
* Definition of a grid scan. May be combined with a goniometer axis: a grid is often collected
* at a particular head position, and a stationary axis records where that was.
*
*/
export const zGridScan = z.object({
n_fast: z.coerce.bigint().gte(BigInt(1)).max(BigInt('9223372036854775807'), { error: 'Invalid value: Expected int64 to be <= 9223372036854775807' }),
@@ -192,7 +194,7 @@ export const zFileWriterFormat = z.enum([
'CBF',
'TIFF',
'NoFileWritten'
]).default('NXmxLegacy');
]).default('NXmxVDS');
export const zFileWriterSettings = z.object({
overwrite: z.boolean().optional().default(false),