Releases: StarExecMiami/StarExec
v2.2.0
Release v2.2.0
Release Date: 2026-03-03 20:21:14 UTC
Commit: 33ff6b81e9710692c6b2a7a93a4bf7fbb6d3a7f6
📋 Changes
- chore(release): bump version to 2.2.0 and update CHANGELOG with security fixes, performance improvements, and new features (33ff6b8 by Andres Caicedo)
- fix(deploy): improve database password handling with warnings for unset variables and enforce security for non-dev environments (34dffb2 by Andres Caicedo)
- feat(database): add batch rerun function for job pairs and create missing performance indexes (b296da9 by Andres Caicedo)
- refactor(database): optimize job pair rerun process by introducing batch operations and improving error handling (8a0be4a by Andres Caicedo)
- refactor(database): enhance transaction management by improving error handling and logging in beginTransaction and doRollback methods (009689a by Andres Caicedo)
- fix(cache): improve error logging for cache script reading and ensure proper resource management with try-with-resources (32b0e3e by Andres Caicedo)
- refactor(io): use try-with-resources for FileOutputStream to ensure proper resource management in Connection and PartWrapper classes (861ade9 by Andres Caicedo)
- refactor(database): replace HashMap with ConcurrentHashMap for thread-safe data handling in Statistics and JobManager (a4ed581 by Andres Caicedo)
- refactor(security): remove hardcoded passwords and delete unused test hash JSP file (0422c24 by Andres Caicedo)
- feat(security): enhance CSRF protection by adding token handling in JavaScript and updating web.xml (a1c420d by Andres Caicedo)
- feat(security): implement CSRF protection filter for secure endpoints and registration (975f97d by Andres Caicedo)
- fix(security): correct ValidatorStatusCode return value to indicate permission status accurately (2bd6f37 by Andres Caicedo)
- refactor(ui): standardize template titles across various JSP files for consistency (7562828 by Andres Caicedo)
- fix(ui): correct URL paths in job-related JavaScript files for consistent resource loading (62218cb by Andres Caicedo)
- fix(ui): hide URL and Git input fields in benchmark upload form for better user experience (31ca195 by Andres Caicedo)
- feat(release): add current date retrieval and improve changelog formatting (1f0aa1a by Andres Caicedo)
- feat(security): add OWASP Dependency Check plugin and improve security scan workflow (07c0ce1 by Andres Caicedo)
🐳 Container Image
Registry: ghcr.io
Image: ghcr.io/StarExecMiami/StarExec:v2.2.0
Pull the image:
docker pull ghcr.io/StarExecMiami/StarExec:v2.2.0📦 Build Information
Build System: Maven Multi-Module
- Parent POM: Centralized version and dependency management
- Module: starexec-app (WAR packaging)
- Production Code: starexec-app/src/main/java (226 files)
- Test Framework: Isolated with WAR plugin exclusions (no test code in artifact)
- Test Code: starexec-app/src/test/java (72 files)
📦 Artifacts
starexec.war- Web application archive (test code excluded ✓)starexeccommand.zip- Command-line interface tool (includes JAR and documentation)
💻 StarExecCommand CLI
Download the CLI tool directly:
curl -LO https://github.com/StarExecMiami/StarExec/releases/latest/download/starexeccommand.zip
unzip starexeccommand.zip
java -jar StarexecCommand.jar✅ Quality Assurance
- Build: ✓ Passed (Maven multi-module structure)
- WAR Verification: ✓ No test code in artifact
- Security scans: ✓ Passed
- Container validation: ✓ Passed
This release was automatically generated by GitHub Actions with Maven multi-module build
v2.1.0
Release v2.1.0
Release Date: $(date -u +'%Y-%m-%d %H:%M:%S UTC')
Commit: 50146cd309a034307c9002c3f1491ea175d3908d
📋 Changes
- docs: add release notes for version 2.1.0 highlighting key features and fixes (50146cd by Andres Caicedo)%0A- chore: update version numbers and dependencies to 2.1.0 (73224cf by Andres Caicedo)%0A- feat(db): add asynchronous upload job handling and improve error reporting (a247f5a by Andres Caicedo)%0A- test(ArchiveExtractor): add unit tests for safety features and edge cases (ad197ff by Andres Caicedo)%0A- feat(web): add UploadJobWorker listener for job upload processing (a774f6f by Andres Caicedo)%0A- ui: enhance community components with async upload and accessibility (ac0a58e by Andres Caicedo)%0A- feat(ui): modernize component architecture and global styling (c76cc39 by Andres Caicedo)%0A- fix: resolve stuck job pairs and unify upload data sources (370f0e3 by Andres Caicedo)%0A- feat: implement asynchronous upload system core logic (8171641 by Andres Caicedo)%0A- feat(deployment): add APP_PORT variable for dynamic port configuration (1aaf29c by Andres Caicedo)%0A- chore(dockerfile): restore legacy tcsh behavior to prevent errors on non-matching globs (fbf8aef by Andres Caicedo)%0A- chore(gitignore): update patterns to ignore additional report and analysis files (217d49b by Andres Caicedo)%0A- fix(procedures): refine WHERE clause in jobpair query for accuracy (e340900 by Andres Caicedo)%0A- fix(makefile): Use $(PODMAN_CMD) in status target for sudo compatibility (044d3fb by Andres Caicedo)
🐳 Container Image
Registry: ghcr.io
Image: ghcr.io/StarExecMiami/StarExec:v2.1.0
Pull the image:
docker pull ghcr.io/StarExecMiami/StarExec:v2.1.0📦 Build Information
Build System: Maven Multi-Module
- Parent POM: Centralized version and dependency management
- Module: starexec-app (WAR packaging)
- Production Code: starexec-app/src/main/java (226 files)
- Test Framework: Isolated with WAR plugin exclusions (no test code in artifact)
- Test Code: starexec-app/src/test/java (72 files)
📦 Artifacts
starexec.war- Web application archive (test code excluded ✓)starexeccommand.zip- Command-line interface tool (includes JAR and documentation)
💻 StarExecCommand CLI
Download the CLI tool directly:
curl -LO https://github.com/StarExecMiami/StarExec/releases/latest/download/starexeccommand.zip
unzip starexeccommand.zip
java -jar StarexecCommand.jar✅ Quality Assurance
- Build: ✓ Passed (Maven multi-module structure)
- WAR Verification: ✓ No test code in artifact
- Security scans: ✓ Passed
- Container validation: ✓ Passed
This release was automatically generated by GitHub Actions with Maven multi-module build
StarExec v2.0.0 - Containerised
StarExec v2.0.0 Release Notes
Release Date: February 12, 2026
Version: 2.0.0
Codename: "Containerised"
Previous Version: 1.0.0-SNAPSHOT (Ant-based builds)
Executive Summary
StarExec v2.0.0 represents a major architectural modernization of the platform, introducing containerized deployment, modern security practices, and cloud-native capabilities. This release includes 6,283 commits spanning the project's evolution from 2011 through 2026.
Why v2.0.0?
This is a MAJOR version bump due to breaking changes in:
- Database system (MySQL → PostgreSQL)
- Authentication (SHA-512 → BCrypt)
- Java runtime (8/11 → 17)
- Build system (Ant → Maven)
What's New
🚀 Modern Deployment Options
Podman Container Backend
The star of this release is comprehensive containerization support:
- Podman Backend - Execute jobs in isolated containers
- Kubernetes Native - Deploy directly to Kubernetes clusters
- Docker Compose - Quick local testing and development
- Helm Charts - Production-ready Kubernetes deployments
Benefits:
- Rootless execution for improved security
- Consistent environments across dev/staging/production
- Simplified dependency management
- Better resource isolation
Optimized Container Images
- Job runner image reduced from 115 MB → 19 MB
- Multi-stage Docker builds
- Minimal attack surface
🔒 Security Overhaul
BCrypt Password Authentication
- Industry-standard password hashing (replaces SHA-512)
- Secure credential storage
- CSRF protection for password reset flow
Database Security
- PostgreSQL with non-root container execution
- Flyway-managed database migrations
- Secure credential handling
🏗️ Modern Build System
Maven Migration
- Multi-module Maven structure
- Standardized build process
- Better dependency management
- IDE-friendly project structure
Migration: ant build → mvn clean package
📊 Enhanced Job Management
New Job Status Codes
Extended terminal status codes for better job tracking:
- Status 21, 23, 24, 25, 26 added
- Improved completion detection
- Better error categorization
API Impact: Clients using hardcoded status values need updates.
Concurrent Local Execution
LocalBackend now supports parallel job execution (previously sequential).
Stuck Job Detection
Automatic detection and cleanup of stuck jobs with retry logic.
🗄️ Database Modernization
PostgreSQL 15
- Modern, enterprise-grade database
- Better JSON support for future features
- Improved performance
Migration Required: MySQL databases must be migrated to PostgreSQL.
Flyway Migrations
- 23 versioned migrations (V0001-V0023)
- Automatic schema management
- Rollback support
Breaking Changes
Critical: Must Address Before Upgrade
1. Password Reset Required
Impact: ALL existing passwords invalidated
Commits: 22a79973f, 71e113180
All SHA-512 password hashes have been removed. Users must:
- Use "Forgot Password" flow
- Set new BCrypt-encrypted password
- Verify email if required
2. Database Migration
Impact: MySQL databases must be migrated
Commit: d9f76afd2
Process:
# 1. Export MySQL data
mysqldump -u root -p starexec > starexec_mysql.sql
# 2. Convert to PostgreSQL (use pgloader or manual conversion)
# 3. Import to PostgreSQL
psql -U postgres -d starexec < starexec_postgres.sql
# 4. Run Flyway migrations
mvn flyway:migrate3. Configuration Changes
Podman Users:
# Add to ~/.bashrc or deployment scripts
export PODMAN_CMD="sudo podman" # or just "podman" for rootlessDatabase URL:
# Old (v1.x)
DB.Url=jdbc:mysql://localhost:3306/starexec
# New (v2.0.0)
DB.Url=jdbc:postgresql://localhost:5432/starexec4. Java 17 Required
Commit: 15feecf97
Update your deployment environment:
- Java 17+ required
- Java 8 and 11 no longer supported
5. Build System Change
Commit: c56b08bef
Ant build removed. Use Maven:
# Old
ant build
# New
mvn clean packageMigration Checklist
Pre-Upgrade (1-2 weeks before)
- Review all custom SQL queries (BOOLEAN column changes)
- Test migration on staging environment
- Notify users of password reset requirement
- Backup existing database
- Document current custom configurations
- Verify Java 17 availability
Database Migration (Day of upgrade)
- Put system in maintenance mode
- Export MySQL database
- Create PostgreSQL database
- Convert and import data
- Apply Flyway migrations (V0001-V0023)
- Verify data integrity
- Test basic connectivity
Application Deployment
- Update configuration files (DB URLs, PODMAN_CMD)
- Build with Maven:
mvn clean package - Deploy new WAR file
- Run smoke tests
- Verify authentication flow
- Test job submission
- Monitor error logs
Post-Upgrade
- Remove maintenance mode
- Monitor user login attempts
- Send password reset instructions to users
- Monitor system performance
- Update documentation
New Features Deep Dive
Container Backends
Podman Backend
# Configure Podman
export PODMAN_CMD="podman" # or "sudo podman"
# Start with Podman
make startFeatures:
- Rootless container execution
- cgroup v2 support
- Image caching and management
- Volume persistence
Kubernetes Backend
# Install Helm chart
helm repo add starexec https://starexecmiami.github.io/StarExec
helm install starexec starexec/starexec -n starexec --create-namespaceFeatures:
- Horizontal scaling
- Resource quotas
- Pod affinity/anti-affinity
- Configurable job concurrency
Enhanced Job Monitoring
Job Pair Stage Data
New table tracks detailed execution stages:
- Pre-processing time
- Execution time
- Post-processing time
- Hostname tracking
- Resource usage statistics
Adaptive Polling
- Dynamic polling intervals based on job state
- Reduced database load
- Faster job completion detection
Pagination System
- Server-side pagination for large datasets
- Improved performance on spaces with many jobs
- Better memory utilization
API Changes
Job Status Codes
New Terminal Status Codes:
21- Additional terminal state23- Post-processing state24- Resource cleanup state25- Verification state26- Finalization state
API Impact:
// Old code (may break)
if (status == 15 || status == 17 || status == 18) {
// handle terminal
}
// New code (recommended)
Set<Integer> terminalStatuses = Set.of(15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26);
if (terminalStatuses.contains(status)) {
// handle terminal
}REST Endpoints
Unchanged: All existing /services/* endpoints remain compatible.
New Endpoints: None added in v2.0.0 (focused on infrastructure).
Performance Improvements
Container Image Optimization
- Multi-stage builds reduce final image size by 83%
- Faster deployment and scaling
- Reduced bandwidth usage
Database Performance
- PostgreSQL query optimizations
- Improved index usage
- Connection pooling
Job Execution
- Concurrent LocalBackend (parallel vs sequential)
- Reduced job polling overhead
- Better resource utilization
Removed Features
Deprecated and Removed
Build System:
- ❌ Ant build system (use Maven)
- ❌ build.xml file
- ❌ Legacy build scripts
Database:
- ❌ MySQL support (migrate to PostgreSQL)
- ❌ MySQL-specific SQL syntax
- ❌ Legacy database drivers
Authentication:
- ❌ SHA-512 password hashing
- ❌ Algorithm detection logic
- ❌ Migration tracking columns
Java Versions:
- ❌ Java 8 support
- ❌ Java 11 support
- ✅ Java 17+ required
Web Application:
- ❌ WebContent folder (replaced with Maven structure)
- ❌ Legacy JSP organization
Known Issues
v2.0.0 Known Limitations
-
Password Migration
- All users must manually reset passwords
- No automated migration possible (security requirement)
-
Database Migration
- One-way migration (cannot rollback to MySQL)
- Requires careful planning and testing
-
Podman Configuration
- Explicit PODMAN_CMD required
- Auto-detection removed for stability
-
API Status Codes
- Clients using hardcoded status values need updates
Workarounds
See TROUBLESHOOTING.md for detailed workarounds.
Documentation
Comprehensive Guides
- Quick Start - Get running in 10 minutes
- Deployment Guide - Production deployment
- Migration Guide - Detailed migration steps
- Breaking Changes Analysis - Technical details
- Configuration Reference - All options
API Documentation
- REST API endpoints:
/services/*(unchanged from v1.x) - Job status codes: See CHANGELOG.md
- Database schema: Migration files in
starexec-app/src/main/resources/db/migration/
Support
Getting Help
- GitHub Issues: StarExec Issues
- Discussions: GitHub Discussions
- Email: See repository maintainers
Reporting Issues
When reporting issues, please include:
- StarExec version:
v2.0.0 - Deployment method (Docker/Podman/Kubernetes)
- Java version
- Database version
- Relevant error logs
Acknowledgments
This release represents the culmination of work by many contributors over 15 years. Special thanks to:
- The University of Iowa (original development)
- The University of Miami (modernization and maintenance)
- Al...
Containerised v1.0.1
Containerised Deployment Fixes
Rootless Podman Detection
- Improved detection logic to properly identify when sudo is required
- Fixes unnecessary sudo usage when podman is running rootless
Image Reference Generation
- Fixed image reference generation in generate-render-yaml.sh
- Added missing volume placeholder replacements
- Updated render.yaml.template to use consistent placeholder format
Volume Management
- Updated podman-volumes.sh detection to align with Makefile logic
Changes
- See commit e3b46f2 for full details