Skip to content

Releases: ACE-IoT-Solutions/ace-skyspark-cli

v0.12.0

12 Jun 14:56

Choose a tag to compare

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; pyrefly python-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

02 Nov 18:36

Choose a tag to compare

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_TAG constant 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 signatures
  • tests/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.4

Or with uv:

uv pip install ace-skyspark-cli==0.11.4

v0.11.3

02 Nov 18:01

Choose a tag to compare

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

02 Nov 17:51

Choose a tag to compare

ace-skyspark-cli v0.11.2

πŸ› Bug Fix

  • Fixed CI/CD workflows to use published PyPI version of ace-skyspark-lib instead of local path
  • Specified minimum version ace-skyspark-lib>=0.1.8
  • Local development can still use local path by uncommenting [tool.uv.sources] in pyproject.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.2

Python Support

  • Python 3.13+

v0.11.1 - Credential Management & PyPI Publishing

02 Nov 17:49

Choose a tag to compare

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.1

Python Support

  • Python 3.13+