Releases: ACE-IoT-Solutions/ace-skyspark-cli
Releases Β· ACE-IoT-Solutions/ace-skyspark-cli
v0.12.0
v0.12.0 β Python 3.12 support
Lowers the minimum Python version from 3.13 to 3.12 so the CLI can be installed in 3.12 environments. Validated against the full test suite under 3.12 (all unit tests pass; only live-server integration tests fail, as expected without a SkySpark instance).
Changes
requires-python:>=3.13β>=3.12- Added Python 3.12 classifier
- ruff
target-version:py313βpy312; pyreflypython-version:3.13β3.12 - Lowered dev pin (
.python-version) to 3.12 - Synced stale
__version__and bumped to 0.12.0
v0.11.4 - Test Fixes and Stability
v0.11.4 - Test Fixes and Stability Improvements
This release ensures all tests pass cleanly with no bypassed tests, plus all linting checks pass.
π§ͺ Test Fixes
Unit Test Fixes (117/117 passing β )
- Fixed
Point.get()AttributeError by converting Pydantic models to dicts - Fixed
HAYSTACK_REF_TAGconstant from "haystack_entityRef" to "haystackRef" - Added missing method parameters to
_prepare_point_create()and_prepare_point_update()test calls - Rewrote
_build_ref_map()to only include SkySpark points with haystackRef tag - Fixed pytest fixture naming errors with proper noqa comments
Integration Test Fixes (9/9 passing β )
- Fixed fixture parameter formatting to ensure env_config is properly passed
- All integration tests validated against live services
Linting Fixes β
- Added noqa comments for all unused fixtures
- Auto-formatted code with ruff format
- All ruff checks passing
π¦ Changes
Core Fixes:
src/ace_skyspark_cli/sync.py:- Fixed HAYSTACK_REF_TAG constant value
- Rewrote _build_ref_map logic to filter by haystackRef presence
Test Updates:
tests/test_sync.py: Added .model_dump() conversions and fixed method signaturestests/test_*.py: Fixed fixture naming and linting throughout test suite
β Quality Metrics
- Unit tests: 117/117 passing
- Integration tests: 9/9 passing
- Linting: All ruff checks passing
- Formatting: All files properly formatted
- Total: 126 tests, all passing with no bypassed tests
π Installation
pip install ace-skyspark-cli==0.11.4Or with uv:
uv pip install ace-skyspark-cli==0.11.4v0.11.3
What's Changed
- Added credentials support to job configuration system
- All credentials (FlightDeck JWT, SkySpark URL/project/user/password, etc.) can now be provided via:
- CLI arguments (highest priority)
- Job files (middle priority)
- Environment variables (lowest priority)
- Enhanced pyproject.toml metadata for PyPI
- Fixed all linting issues in test files
Full Changelog: https://github.com/ACE-IoT-Solutions/ace-skyspark-cli/commits/v0.11.3
v0.11.2 - Fix CI/CD Build Dependencies
ace-skyspark-cli v0.11.2
π Bug Fix
- Fixed CI/CD workflows to use published PyPI version of
ace-skyspark-libinstead of local path - Specified minimum version
ace-skyspark-lib>=0.1.8 - Local development can still use local path by uncommenting
[tool.uv.sources]inpyproject.toml
π¦ Changes from v0.11.1
This is a patch release to fix the build/publish workflows. All features from v0.11.1 are included:
- Flexible credential management (CLI args, job files, env vars)
- Enhanced job configuration with credentials section
- Comprehensive documentation
- GitHub Actions CI/CD workflows
Installation
pip install ace-skyspark-cli==0.11.2Python Support
- Python 3.13+
v0.11.1 - Credential Management & PyPI Publishing
ace-skyspark-cli v0.11.1
π New Features
Flexible Credential Management
- Job File Credentials: Add credentials to job configuration files for environment-specific setups
- CLI Credential Options: Override credentials with global flags:
--flightdeck-jwt,--flightdeck-api-url--skyspark-url,--skyspark-project,--skyspark-user,--skyspark-password
- Credential Precedence: CLI args > Job file > Environment variables > Defaults
Enhanced Job Configuration
- All job templates now include credentials section
- Individual command templates (
--command sync,--command write-history, etc.) include credentials - Credentials are optional in job files (can still use env vars)
π Documentation
- Comprehensive README with installation, quick start, and all commands documented
- Job Configuration Guide updated with credentials section and security best practices
- Release process documentation (RELEASE.md)
- MIT License added
ποΈ Infrastructure
- GitHub Actions CI/CD workflows
- Automated testing on push/PR
- Multi-platform testing (Ubuntu, macOS, Windows)
- Automated publishing to TestPyPI (on tag push) and PyPI (on release)
π¦ Package Improvements
- Enhanced PyPI metadata (keywords, classifiers, project URLs)
- Proper package description and license
- Ready for public PyPI distribution
π§ Examples
Using CLI credential options:
ace-skyspark-cli --flightdeck-jwt "your-token" \
--skyspark-project "production" \
sync --site "Building A"Using job file with credentials:
credentials:
flightdeck_jwt: your-jwt-token
skyspark_url: http://localhost:8080/api
skyspark_project: myProject
skyspark_user: admin
skyspark_password: secret
sync:
site: Building A
dry_run: falseπ Documentation
π Security Best Practice
Never commit credentials to git! Use environment variables for secrets and job files for non-sensitive configuration.
Installation
pip install ace-skyspark-cli==0.11.1Python Support
- Python 3.13+