Repository navigation
v5.5.0: HySDS Framework version 5.5.0 (Superman)
Bug fixes and enhancements:
chimera[v2.3.0]
https://github.com/hysds/chimera/releases/tag/v2.3.0
Bug fixes and enhancements:
- HC-563: Migrate for Python 3.12 compatibility (#26)
- Add development dependencies for Python 3.12 upgrade testing
- Add pytest framework with coverage and mocking support
- Include code quality tools (black, isort, flake8, pylint, mypy)
- Add pyupgrade for Python 3.12 syntax modernization
- Include performance testing with pytest-benchmark
- Support parallel test execution with pytest-xdist
These dependencies enable comprehensive unit testing during the
Python 3.12 migration process.
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
- Create unit test directory structure
Initialize tests/unit/ directory for isolated unit tests that don't
require external services or specific local development environments.
This structure supports the Python 3.12 migration testing strategy
by providing a clean separation between unit tests and the existing
integration-style tests.
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
- Add test fixtures and pytest configuration
-
Create comprehensive test fixtures for configuration files:
- sample_chimera_config.yaml - Valid chimera configuration
- sample_pge_config.json - Valid PGE configuration
- sample_sf_context.json - Valid SciFlo context
- sample_settings.yaml - Valid settings file
- invalid_config.yaml - Invalid YAML for error testing
-
Add conftest.py with shared pytest fixtures for:
- Fixture path management
- Temporary file/directory creation
- Consistent test data access across test modules
These fixtures enable isolated testing without external dependencies
or hardcoded local paths, supporting reliable Python 3.12 migration
validation.
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
- Add comprehensive unit tests for ChimeraConstants
Implement 21 test cases covering:
- Constant value validation and correctness
- String type enforcement for all constants
- Uniqueness validation (no duplicate values)
- Accessibility from both class and instance
- Integration patterns (dict keys, string operations)
- Immutability concepts and best practices
Tests achieve 100% coverage of chimera.commons.constants module
and validate all expected constants are properly defined with
correct values.
This establishes a solid foundation for regression testing during
the Python 3.12 migration process.
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
- Add comprehensive unit tests for configuration utilities
Implement 22 test cases covering YamlConf class and load_config function:
YamlConf class tests:
- Initialization with valid/invalid YAML files
- Property access (file, cfg) and error handling
- Configuration key retrieval and missing key exceptions
- String representation and JSON serialization
- Mock-based testing for file operations
load_config function tests:
- YAML and JSON file loading with proper format detection
- Error handling for non-existent and malformed files
- File extension validation and unsupported format rejection
- OrderedDict preservation for JSON files
- Integration with YamlConf for YAML processing
Tests achieve 71% coverage of chimera.commons.conf_util module,
focusing on critical paths and error scenarios. Missing coverage
is primarily in unused utility classes.
All tests use isolated fixtures and mocking, eliminating dependencies
on external services or specific file system layouts.
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
- Add Phase 1 test execution script and documentation
-
Add test_phase1.sh: Docker-based test runner for Phase 1 unit tests
- Uses Python 3.12 container for consistent testing environment
- Installs dependencies and runs tests with coverage reporting
- Provides clear output formatting and completion status
-
Add UNIT_TESTING_PLAN.md: Comprehensive testing strategy documentation
- 4-phase testing approach for Python 3.12 migration
- Mock strategies for external dependencies
- Test infrastructure setup and success criteria
- Integration guidelines with migration plan
Phase 1 testing validates configuration utilities and constants
with 43 test cases achieving 79% overall coverage. All tests pass
in Python 3.12 environment, establishing baseline for migration
validation.
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
- Add Docker-based development scripts for Python 3.12
- tests/test.sh: Run pytest in Python 3.12 Docker container
- tests/lint.sh: Run flake8, black, and isort checks in Docker
- tests/format.sh: Apply pyupgrade, black, and isort formatting in Docker
All scripts use python:3.12 container for consistent development environment.
Scripts are executable and handle non-TTY environments properly.
Placed in tests/ directory to keep repository root clean.
Part of Phase 2: Docker Remote Interpreter Setup.
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
- Update CLAUDE.md with Docker-based development workflow
- Document Python 3.12 Docker container usage for development
- Add Docker workflow commands for testing and code quality
- Update script paths to tests/ directory location
- Provide both Docker and traditional development options
- Include interactive development session instructions
Part of Phase 2: Docker Remote Interpreter Setup.
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
- Apply Python 3.12 code formatting and modernization
- Run pyupgrade --py312-plus on all Python files
- Apply black code formatter for consistent style
- Apply isort for standardized import ordering
- Reduce flake8 issues from 30+ to 13 minor violations
- Modernize string formatting and code patterns
- All 30 unit tests continue to pass after formatting
Automated formatting improves code quality and consistency.
Part of Phase 2: Docker Remote Interpreter Setup.
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
- Document Phase 2 completion in Python 3.12 upgrade plan
- Mark Phase 2: Docker Remote Interpreter Setup as completed
- Document key achievements and implementation details
- Record testing results: 30 unit tests passing in Python 3.12
- Note code quality improvements: reduced flake8 issues
- Update status of all Phase 2 objectives as completed
Phase 2 successfully establishes Docker-based development workflow.
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
- Remove duplicate development scripts from repository root
Scripts were moved to tests/ directory in previous commit.
Keeping repository root clean by removing duplicates.
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
- Organize repository structure and update gitignore
- Move plan documents to plans/ directory for better organization
- Add .claude/ and .serena/ to gitignore (AI assistant directories)
- Add *.egg-info/, .coverage, .pytest_cache/ to gitignore
- Keep repository root clean with dedicated plans directory
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
Co-authored-by: Mike Cayanan michael.d.cayanan@jpl.nasa.gov
Co-authored-by: Sujen Shah sujen1412@gmail.com
Co-authored-by: Claude noreply@anthropic.com
container-builder[v1.1.0]
https://github.com/hysds/container-builder/releases/tag/v1.1.0
Bug fixes and enhancements:
- HC-563: python 3.12 compatability updates (#18)
grq2[v2.2.0]
https://github.com/hysds/grq2/releases/tag/v2.2.0
Bug fixes and enhancements:
- HC-563: Python3.12 Compatibility updates (#68)
- Update Python syntax for Python 3.12 compatibility using pyupgrade
- Removed Python 2 compatibility imports (future, builtins, standard_library)
- Modernized string formatting to use f-strings and .format()
- Added raw string prefix to regular expressions
- Improved code style and formatting
- Update dependencies and code for Python 3.12 compatibility
- Updated Redis client to use 'Redis' instead of 'StrictRedis'
- Improved error handling and progress reporting in copy_index.py
- Update configuration and dependencies for Python 3.12 compatibility
- Update .gitignore to exclude local config files
- Fix path resolution for settings.cfg in init.py
- Update dependencies in setup.py for Python 3.12 compatibility
- Add jsonschema and referencing as explicit dependencies
- mechanism to newer way to call current time in UTC, but maintaining backwards compatibility
- use timezone.utc instead to be 3.9/3.12 compatible
- Update Python syntax for Python 3.12 compatibility using pyupgrade
hysds[v1.4.0]
https://github.com/hysds/hysds/releases/tag/v1.4.0
Bug Fixes and Enhancements:
- HC-563: Upgrade to Python 3.12 compatibility (#203)
- Update datetime.utcnow() to datetime.now(UTC)
- Replace logger.warn() with logger.warning()
- Update timezone handling to use UTC explicitly
- Fix test assertions and imports
- Modernize string formatting: convert %-style to f-strings across codebase
- Convert 35+ remaining %-style string formatting patterns to f-strings using flynt and manual fixes
- Update 67 files including core modules (orchestrator, job_worker, dataset_ingest) and utility scripts
- Improve performance and readability with modern Python 3.6+ f-string syntax
- Handle complex patterns: multi-line tuples, nested formatting, logging statements
- Preserve datetime format strings and commented code as appropriate
- Maintain full test coverage (29/29 tests passing)
- Apply code formatting with black and import organization with isort
This modernization enhances code maintainability and leverages Python 3.12
performance optimizations while ensuring full backward compatibility.
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
Co-authored-by: Claude noreply@anthropic.com
Co-authored-by: Mike Cayanan michael.d.cayanan@jpl.nasa.gov
hysds-dockerfiles[v5.5.0]
https://github.com/hysds/hysds-dockerfiles/releases/tag/v5.5.0
- bump latest_release to v5.5.0
hysds_commons[v1.2.0]
https://github.com/hysds/hysds_commons/releases/tag/v1.2.0
Bug Fixes and Enhancements:
- HC-563: Upgrade to Python 3.12 (#65)
- Add python_requires='>=3.12' to setup.py
- Update classifiers to only include Python 3.12
- Remove future imports as they're not needed in Python 3.12
- Run pyupgrade --py312-plus to update syntax
- Update string formatting to use f-strings where appropriate
- Remove unnecessary file mode 'r' in open() calls
lightweight-jobs[v1.4.0]
https://github.com/hysds/lightweight-jobs/releases/tag/v1.4.0
Bug fixes and enhancements:
- HC-563: Migrate to Python 3.12 (#38)
- Done via pyupgrade
- mechanism to newer way to call current time in UTC, but maintaining backwards compatibility
- use timezone.utc instead to be 3.9/3.12 compatible
mozart[v2.4.0]
https://github.com/hysds/mozart/releases/tag/v2.4.0
Bug fixes and enhancements:
- HC-563: Upgrade Python to 3.12 (#56)
- Upgrade Python to 3.12
- Updated setup.py with python_requires='>=3.12' and Python 3.12 classifiers
- Upgraded all dependencies to Python 3.12 compatible versions:
- Flask 2.3.0+, flask-restx 1.3.0+, gunicorn 21.0+, gevent 23.0+
- elasticsearch 8.0+, pymongo 4.6+, boto3 1.34+, numpy 1.26+
- Ran pyupgrade --py312-plus on all Python files for syntax modernization
- Applied black formatter for consistent code style
- Updated README.md and CLAUDE.md to specify Python 3.12 requirement
- Removed legacy Python 2/3 compatibility imports from setup.py
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
Co-authored-by: Claude noreply@anthropic.com
Co-authored-by: Mike Cayanan michael.d.cayanan@jpl.nasa.gov
osaka[v1.3.0]
https://github.com/hysds/osaka/releases/tag/v1.3.0
Bug fixes and enhancements:
- HC-563: Python 3.12 Compatibility Update (#40)
- fix: Modernize Azure storage backend and fix Python 3.12 compatibility
- Migrate from BlockBlobService to BlobServiceClient
- Add DefaultAzureCredential support for authentication
- Implement proper URI parsing with _extract_container_and_blob
- Improve error handling and resource cleanup
- Update dependencies in setup.py
- Fix HTTPS handler scheme resolution
- Add Python 3.12 to test matrix
- Updated the unit test so it can pass
- Switched to a more reliable URL to exercise the 200 and 404 responses
- Mocked the 202 response
pele[v1.3.0]
https://github.com/hysds/pele/releases/tag/v1.3.0
- HC-563: Migrate to Python 3.12 (#36)
- Done via pyupgrade
- mechanism to newer way to call current time in UTC, but maintaining backwards compatibility
- use timezone.utc instead to be 3.9/3.12 compatible
prov_es[v0.3.0]
https://github.com/hysds/prov_es/releases/tag/v0.3.0
Bug fixes and enhancements:
- HC-563: Update Python version to 3.12+ (#6)
- Update setup.py to require Python 3.12 or higher
- Remove Python 2 compatibility code and future imports
- Update datetime handling to use timezone-aware objects
sdscli[v1.4.0]
https://github.com/hysds/sdscli/releases/tag/v1.4.0
Bug fixes and Enhancements:
- HC-563: Updated for Python 3.12 Compatibility (#114)
- Done via pyupgrade
- mechanism to newer way to call current time in UTC, but maintaining backwards compatibility
- explicitly add blank line to conform to stricter netrc parsing in python3.12
- use timezone.utc instead to be 3.9/3.12 compatible
sciflo[v1.4.0]
https://github.com/hysds/sciflo/releases/tag/v1.4.0
Bug fixes and enhancements:
- HC-563: python 3.12 compatibility updates (#9)
- Done via pyupgrade
spyddder-man[v0.2.0]
https://github.com/hysds/spyddder-man/releases/tag/v0.2.0
Bug fixes and enhancements:
- HC-563: Python 3.12 compatibility updates (#6)
- Done via pyupgrade