Skip to content

v1.2

Choose a tag to compare

@danielnrainer danielnrainer released this 22 Feb 00:05
· 66 commits to main since this release

Release Notes for CIVET v1.2

⚠️ Licensing note (added retrospectively)

This release's pre-built executables bundle PyQt6, which is licensed under the GNU GPL v3 (or a commercial licence from Riverbank Computing). CIVET's own source code is, and always was, released under the BSD 3-Clause licence. As distributed, however, these executables are a combined work with PyQt6 and are therefore subject to the terms of the GPL v3.

From the next release onwards, CIVET uses PySide6 (LGPL v3) instead, so the executables carry no GPL obligations. If the GPL is a problem for how you use CIVET, please use a newer release.

⚡ High-Level Summary (short version)

  • Added persistent cross-platform user configuration directories for settings, user field rules, dictionaries, and recognised prefixes.
  • Expanded .cif_rules actions with APPEND, CALCULATE, and RENAME.
  • Improved legacy/modern CIF handling and CIF2 safety (header handling, malformed-name correction, format warnings, CIF2 value formatting).
  • Added comprehensive data-name validation against loaded dictionaries + IUCr registered prefixes, with richer syntax-highlighting feedback.
  • Added dictionary system upgrades including metadata/update workflows, DDL1 parser support, and automatic DDL format detection.
  • Added About dialog, centralized version metadata, and audit-field CIVET signature/date update behavior.

🎯 Major New Features

Persistent user configuration and data directories

  • CIVET now stores user-specific files in platform-appropriate locations:
    • Windows: %APPDATA%\CIVET\
    • macOS: ~/Library/Application Support/CIVET/
    • Linux: ~/.config/CIVET/
  • Includes persistent storage for:
    • settings.json
    • user field-rules files
    • user-downloaded dictionaries
    • registered/custom prefix data
  • This enables stable customization for standalone executable users across upgrades.

Expanded .cif_rules action engine

  • Added support for new rule actions:
    • APPEND: append to multiline semicolon fields
    • CALCULATE: derive values from safe math expressions and existing field values
    • RENAME: correct problematic/legacy software field names
  • Added examples and rule-file documentation updates for new keywords.

Data-name validation overhaul

  • Added comprehensive validation using:
    • loaded CIF dictionaries
    • IUCr registered prefixes
  • Added richer highlighting and deprecation-aware behavior.
  • Added dedicated UX paths for handling unknown/deprecated names.

Dictionary architecture improvements

  • Added DDL1 dictionary parser support.
  • Added automatic dictionary format detection (DDLm, DDL1, DDL2, UNKNOWN).
  • Added parser-factory flow so dictionaries are parsed according to detected format.
  • Enhanced metadata tracking with units, ddl_format, and source_dictionary.

✨ User Experience Improvements

Field-rules selection and workflow

  • Improved Built-in/User/Custom field-rules selection flow.
  • Better file status feedback for saved/unsaved changes.
  • Improved rules UX consistency for persistent user field-rules locations.

About dialog and project metadata

  • Added Help → About CIVET dialog with:
    • current version
    • GitHub and Zenodo links
    • citation-relevant metadata
  • Added centralized version metadata module (src/version.py).

Prefix and validation management UI

  • Added interactive recognised-prefix management dialog and related refresh flows.
  • Improved data-name-validation UX integration and feedback.

🐛 Bug Fixes and Correctness Improvements

CIF format/compliance fixes

  • Improved CIF2 compliance handling across save/fix paths.
  • Improved behavior around malformed field-name correction.
  • Added modern-format warning path for potential checkCIF compatibility issues.

Data-name deprecation handling

  • Fixed validation behavior to properly classify deprecated names.
  • Improved consistency between validator state and syntax-highlighting state.

Field-rules robustness

  • Added broader keyword recognition in validation/parsing paths for action-prefixed rules.
  • Added examples and cleanup-rule updates to reduce user configuration mistakes.

🔧 Technical Details (Comprehensive)

Packaging and distribution updates

  • Updated CIVET.spec to include newly added dialogs/utilities/modules.
  • Improved bundled data handling and dictionary packaging behavior.
  • Updated dictionary file set with versioned naming and bundled prefix registry support.

Field metadata/model improvements

  • FieldMetadata now tracks:
    • units
    • ddl_format
    • source_dictionary
  • Dictionary manager lookups now better integrate across active parsers.

Parser/format support status

  • DDLm: supported
  • DDL1: supported
  • DDL2: detected, but not yet parsed

🙌 Acknowledgments

Dr Arianna Lanza is thanked for continued testing and feedback.
Dr James Hester is thanked for testing and feedback on many things CIF.

This software was developed primarily using Anthropic's Claude Sonnet 4.5 and Opus 4.5 AI assistants.


Full Changelog: v1.1...v1.2