Skip to content

validate v4.0.8

Latest

Choose a tag to compare

@pdsen-ci pdsen-ci released this 06 Nov 22:41
· 25 commits to main since this release

⚠️ Breaking Changes

Java 17 or later now required — Validate v4.0.8 requires Java 17 or later. Applications and environments running Java 11 or earlier will no longer work.

Who is affected: All users running validate, including CI/CD pipelines and automated validation workflows.

What breaks: Any environment with Java versions below 17 will fail to run validate v4.0.8.

How to migrate:

  1. Install Java 17 or later from Adoptium or your preferred JDK distribution
  2. Update your JAVA_HOME environment variable to point to Java 17+
  3. Rebuild any custom integrations that depend on validate
  4. Update CI/CD pipeline configurations to use Java 17+ base images
  5. Test your validation workflows with the new Java version

(#1386)


Highlights

  • Java 17+ requirement — Modernizes runtime to support latest security updates and dependency upgrades (#1386)
  • Faster validation — Google Caching significantly improves performance for repeated validations (#1327)
  • Enhanced reporting — All reports now include LIDVID tracking and user-provided CLI arguments for better traceability (#1404, #1288)
  • Improved table validation — Delimited tables with whitespace-only numeric fields now validate correctly per PDS4 CCB standards (#1392)
  • Product_Ancillary support — Content validation now works for Product_Ancillary products (#1278)

New

  • Data providers: LIDVID tracking added to all report formats for better product traceability (#1404)
  • Data providers: Delimited tables with whitespace-only numeric fields now supported per PDS4-CCB#28 (#1392)
  • Data providers: Offset support added for Packed_Data_Fields validation (#1345)
  • Data providers: Content validation now available for Product_Ancillary products (#1278)
  • Data providers: Special constants handling now supports UnsignedMSB4 data type (#1301)

Improvements

  • Performance: Validation speed significantly improved through Google Caching implementation (#1327)
  • Bundle validation: validate-bundle now handles filenames case-insensitively for better cross-platform compatibility (#1338)
  • Reporting: All user-provided CLI arguments now appear in validation reports for reproducibility (#1288)
  • Bundle scripts: validate-bundle script better handles missing --report-dir flag with clearer error messages (#1279)
  • Documentation: Updated for improved usability and markdown formatting (#1420)

Fixes

  • WAV validation: Fixed handling of WAV audio file validation (#1390)
  • LID validation: Corrected regex pattern for ASCII_LID* type validation (#1360)
  • Integer comparison: Integers now correctly compared as floats unless hexadecimal notation (0x) is present (#1362)
  • Product_External: encoding_type checks now properly skipped for Product_External products (#1361)
  • Label detection: More comprehensive detection of malformed labels (#1287)
  • Inventory validation: Fixed inventory underflow detection when using pds4.label rule (#1266)

Compatibility

Requirements:

  • Java 17 or later (breaking change from previous Java 11 requirement)
  • Compatible with PDS4 Information Model versions 1.x
  • Supports PDS3 volume validation
Component Version Requirements
Java Runtime 17+ Required upgrade from Java 11
Maven 3.6+ For building from source

Upgrade Notes

Required Actions

  1. Install Java 17 or later

    # Verify your Java version
    java -version
    
    # Should output "openjdk version 17.x" or higher
  2. Update environment variables

    # Update JAVA_HOME to point to Java 17+
    export JAVA_HOME=/path/to/java17
    export PATH=$JAVA_HOME/bin:$PATH
  3. Update CI/CD pipelines

    • Update Docker base images to use Java 17+
    • Update GitHub Actions workflows to use actions/setup-java@v5 with Java 17
    • Update Jenkins/GitLab CI Java version configurations
  4. Test validation workflows

    • Run validate on representative test datasets
    • Verify all custom scripts and integrations work with Java 17
    • Check that all reports generate correctly

Optional Actions

  • Review new LIDVID tracking in reports for integration opportunities
  • Leverage performance improvements by validating larger datasets
  • Update bundle validation scripts to take advantage of case-insensitive handling

Known Issues

No critical known issues at this time. Please report any issues at https://github.com/NASA-PDS/validate/issues


Links


All Changes

Enhancements

  • Add LIDVID to all reports (#1404)
  • Allow delimited tables with whitespace-only numeric fields (#1392)
  • Add offset support in Packed_Data_Fields (#1345)
  • Add content validation for Product_Ancillary (#1278)
  • Update Special Constants handling for UnsignedMSB4 (#1301)

Bug Fixes

  • Fix WAV validation handling (#1390)
  • Fix regex for ASCII_LID types (#1360)
  • Fix integer comparison to use float comparison (#1362)
  • Ignore encoding_type checks for Product_External (#1361)
  • Improve bad label detection (#1287)
  • Fix inventory underflow detection (#1266)

Infrastructure & Dependencies

  • Upgrade to Java 17 (#1386)
  • Improve performance through Google Caching (#1327)
  • Update validate-bundle case sensitivity (#1338)
  • Show CLI arguments in reports (#1288)
  • Improve validate-bundle flag handling (#1279)
  • Update OSSRH workflows (#1280)
  • Update documentation (#1420)
  • Bump actions/setup-java from 4 to 5 (#1341)
  • Bump actions/checkout from 4 to 5 (#1337)
  • Bump software.amazon.awssdk:opensearch (#1333)
  • Bump software.amazon.awssdk:apache-client (#1334)
  • Bump io.cucumber:cucumber-java (#1335)
  • Update hashicorp/aws requirement (#1336)