⚠️ 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:
- Install Java 17 or later from Adoptium or your preferred JDK distribution
- Update your
JAVA_HOMEenvironment variable to point to Java 17+ - Rebuild any custom integrations that depend on validate
- Update CI/CD pipeline configurations to use Java 17+ base images
- 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_Fieldsvalidation (#1345) - Data providers: Content validation now available for
Product_Ancillaryproducts (#1278) - Data providers: Special constants handling now supports
UnsignedMSB4data type (#1301)
Improvements
- Performance: Validation speed significantly improved through Google Caching implementation (#1327)
- Bundle validation:
validate-bundlenow 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-bundlescript better handles missing--report-dirflag 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_typechecks now properly skipped forProduct_Externalproducts (#1361) - Label detection: More comprehensive detection of malformed labels (#1287)
- Inventory validation: Fixed inventory underflow detection when using
pds4.labelrule (#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
-
Install Java 17 or later
# Verify your Java version java -version # Should output "openjdk version 17.x" or higher
-
Update environment variables
# Update JAVA_HOME to point to Java 17+ export JAVA_HOME=/path/to/java17 export PATH=$JAVA_HOME/bin:$PATH
-
Update CI/CD pipelines
- Update Docker base images to use Java 17+
- Update GitHub Actions workflows to use
actions/setup-java@v5with Java 17 - Update Jenkins/GitLab CI Java version configurations
-
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
- Download: https://github.com/NASA-PDS/validate/releases/tag/v4.0.8
- Documentation: https://nasa-pds.github.io/validate/
- Installation Guide: https://nasa-pds.github.io/validate/install/
- User Guide: https://nasa-pds.github.io/validate/usage/
- Support: https://github.com/NASA-PDS/validate/issues
- Full changelog: v3.7.1...v4.0.8
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)