Skip to content

build: bump org.rcsb:ciftools-java from 8.0.1 to 9.0.0 - #409

Merged
tzok merged 1 commit into
masterfrom
dependabot/maven/org.rcsb-ciftools-java-9.0.0
Nov 3, 2026
Merged

tzok merged 1 commit into
masterfrom
dependabot/maven/org.rcsb-ciftools-java-9.0.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Nov 2, 2026

Copy link
Copy Markdown
Contributor

Bumps org.rcsb:ciftools-java from 8.0.1 to 9.0.0.

Changelog

Sourced from org.rcsb:ciftools-java's changelog.

ciftools-java 9.0.0 - October 2026

Breaking schema changes

  • cif-core:
    • atom_type_scat_cromer_mann_coeffs, atom_type_scat_gaussian_coefs, and atom_type_scat_inv_mott_bethe_coefs (and their _su) replaced by per-parameter columns (*_as, *_bs, *_c)
    • atom_type_scat_hi_ang_fox_coeffs renamed to atom_type_scat_hi_ang_fox_coefs
    • cell_diffrn_id, cell_measurement_condition_id, cell_measurement_diffrn_id, diffrn_crystal_id, diffrn_id, and exptl_crystal_id removed (multi-block identifiers, no longer part of cif-core)

Bug fixes

  • BinaryCIF: MessagePack strings are written and read as UTF-8 (were US-ASCII: non-ASCII characters became ? or U+FFFD, and a character outside the BMP made a written file unreadable)
  • schema categories: getColumn(name) decodes and wraps only that column (it wrapped, and for BinaryCIF decoded, every column of the category on each call); getCategory(name) of schema blocks wraps only that category
  • BinaryCIF: column lookup is a hash lookup; a column that fails to decode no longer fails the other columns of its category
  • text CIF is read as UTF-8 (was the platform charset), and a leading byte order mark is skipped
  • format detection takes any MessagePack map (0x80-0x8f, 0xde, 0xdf) for BinaryCIF (was only 0x83)
  • text writer perf: number formats are per writer; shared ones made concurrent text writes run one at a time
  • text CIF: a loop whose value count is not a multiple of its column count, or a loop without data names, is a ParsingException (ragged loops used to get accepted with columns of different lengths)
  • BinaryCIF: MessagePack lengths are bounded by the input (a few bytes could request a 2 GiB allocation); truncated data is a ParsingException
  • BinaryCIF: fixed-point values are decoded by division, so they read as the double nearest to their decimal value, as from text (multiplying by the reciprocal was 1 ulp off for 13-50% of values, e.g. 0.9785300000000001)
  • BinaryCIF writer: float values printed in E-notation (below 1e-3 or from 1e7), and text numbers in E-notation, are written as float columns (they turned the whole column into strings)
  • BinaryCIF writer: fixed point rounds half-even on the exact value, as text output does (26.5325 -> 26.532, was 26.533)
  • BinaryCIF writer: an encoding hint with a precision but no encoding applies that precision (the encoding was chosen from the unrounded values, which usually meant plain doubles); writing no longer modifies hints (their state leaked between columns and files)
  • BinaryCIF writer: fixed point that would overflow an int falls back to plain doubles
  • BinaryCIF writer: numbers are written little-endian on big-endian platforms too (their bytes were reversed there, so the files did not read back)
  • BinaryCIF writer: the size estimates that choose an encoding no longer overflow for columns of millions of values

Behavior changes

  • BinaryCIF writer: fixed point is used for up to 6 decimal places (was 3); float columns of up to 64 values are written as plain doubles where that is smaller than fixed point with its encoding parameters
  • builders: built int, float and string columns hold typed arrays (were text columns, parsed on access) and read the same; getValues() of int and float column builders and getMask() of all column builders are read-only views

Performance

  • BinaryCIF writing is more than 2x faster with about a fifth of the allocation:
    • column types are decided from typed values instead of their text
    • integer encodings (Delta, RunLength, IntegerPacking) are written in one pass straight to bytes instead of an array per step; the classifier sizes all encodings in one pass, in integer arithmetic
    • string columns take one map lookup per value, none for a repeated value

... (truncated)

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [org.rcsb:ciftools-java](https://github.com/rcsb/ciftools-java) from 8.0.1 to 9.0.0.
- [Release notes](https://github.com/rcsb/ciftools-java/releases)
- [Changelog](https://github.com/rcsb/ciftools-java/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rcsb/ciftools-java/commits)

---
updated-dependencies:
- dependency-name: org.rcsb:ciftools-java
  dependency-version: 9.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file java Pull requests that update Java code labels Nov 2, 2026
@tzok
tzok merged commit e6b5332 into master Nov 3, 2026
2 checks passed
@tzok
tzok deleted the dependabot/maven/org.rcsb-ciftools-java-9.0.0 branch November 3, 2026 11:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file java Pull requests that update Java code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant