Skip to content

Releases: StarExecMiami/StarExec

v2.2.0

03 Mar 20:21
v2.2.0
33ff6b8

Choose a tag to compare

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

27 Feb 20:40
v2.1.0
50146cd

Choose a tag to compare

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

13 Feb 02:07
v2.0.0
5adf332

Choose a tag to compare

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)

⚠️ ATTENTION: Upgrading from v1.x requires careful planning and migration. Please read this document thoroughly before upgrading.


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

⚠️ ACTION REQUIRED: All users must reset their passwords after upgrade.

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 buildmvn 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:

  1. Use "Forgot Password" flow
  2. Set new BCrypt-encrypted password
  3. 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:migrate

3. Configuration Changes

Podman Users:

# Add to ~/.bashrc or deployment scripts
export PODMAN_CMD="sudo podman"  # or just "podman" for rootless

Database URL:

# Old (v1.x)
DB.Url=jdbc:mysql://localhost:3306/starexec

# New (v2.0.0)
DB.Url=jdbc:postgresql://localhost:5432/starexec

4. 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 package

Migration 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 start

Features:

  • 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-namespace

Features:

  • 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 state
  • 23 - Post-processing state
  • 24 - Resource cleanup state
  • 25 - Verification state
  • 26 - 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

  1. Password Migration

    • All users must manually reset passwords
    • No automated migration possible (security requirement)
  2. Database Migration

    • One-way migration (cannot rollback to MySQL)
    • Requires careful planning and testing
  3. Podman Configuration

    • Explicit PODMAN_CMD required
    • Auto-detection removed for stability
  4. API Status Codes

    • Clients using hardcoded status values need updates

Workarounds

See TROUBLESHOOTING.md for detailed workarounds.


Documentation

Comprehensive Guides

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

Reporting Issues

When reporting issues, please include:

  1. StarExec version: v2.0.0
  2. Deployment method (Docker/Podman/Kubernetes)
  3. Java version
  4. Database version
  5. 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...
Read more

Containerised v1.0.1

06 Feb 20:26

Choose a tag to compare

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