feat: add production readiness improvements for AGPLv3 release
Security: - Remove -k/--api-key CLI option (prevents process list exposure) - API key now only accepted via NREL_API_KEY environment variable Features: - Add API timeout (30s) and retry logic with exponential backoff - Add rate limit detection and graceful test skipping Documentation: - Add AGPLv3 LICENSE file - Add CONTRIBUTING.md with development guidelines - Add CHANGELOG.md following Keep a Changelog format - Add copyright headers to all source files Tests: - Expand test suite from 19 to 52 tests - Add edge case tests (negative values, boundaries) - Add input validation tests - Add financial calculation verification tests - Add rate limit handling to skip tests gracefully - Remove skip-on-failure logic - tests now properly fail All 52 tests pass (19 skipped when API rate limited). 🤖 Generated with [Crush](https://crush.cli.software) Assisted-by: GLM-5 via Crush <crush@charm.land>
This commit is contained in:
48
CHANGELOG.md
Normal file
48
CHANGELOG.md
Normal file
@@ -0,0 +1,48 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [1.0.0] - 2026-01-XX
|
||||
|
||||
### Added
|
||||
- Initial release of SITER Solar Analysis
|
||||
- Bash-based NREL PVWatts API client (`siter-solar-analysis.sh`)
|
||||
- JSON and text output formats
|
||||
- Multiple system size scenario comparison
|
||||
- Financial analysis with ROI calculations
|
||||
- Comprehensive BATS test suite (52 tests)
|
||||
- Docker-based development and test environment
|
||||
- AGPLv3 license
|
||||
- Privacy-focused design with data redaction
|
||||
- API timeout and retry logic with exponential backoff
|
||||
- Environment variable configuration (NREL_API_KEY, SITER_LAT, SITER_LON)
|
||||
- Input validation for all parameters
|
||||
- Shellcheck compliance for all shell scripts
|
||||
|
||||
### Security
|
||||
- Removed CLI API key option (`-k, --api-key`) to prevent process list exposure
|
||||
- API keys only accepted via environment variable
|
||||
- Pre-commit hooks to prevent private data commits
|
||||
|
||||
### Changed
|
||||
- Migrated from Python to Bash for production script
|
||||
- Python scripts marked as deprecated (kept for reference)
|
||||
|
||||
### Documentation
|
||||
- README.md with usage examples and configuration
|
||||
- CONTRIBUTING.md with development guidelines
|
||||
- AGENTS.md for AI assistant context
|
||||
- Code comments and function documentation
|
||||
|
||||
## [0.1.0] - 2025-12-XX
|
||||
|
||||
### Added
|
||||
- Initial Python-based NREL PVWatts analysis scripts
|
||||
- Basic solar production estimation
|
||||
- Scenario comparison functionality
|
||||
|
||||
[1.0.0]: https://github.com/example/siter-solar/compare/v0.1.0...v1.0.0
|
||||
[0.1.0]: https://github.com/example/siter-solar/releases/tag/v0.1.0
|
||||
Reference in New Issue
Block a user