Major milestone: Complete AWS integration testing infrastructure and documentation site launch.
run-aws-tests.sh)Weekly scheduled testing runs
Documentation Site (https://starburst.ing)
readLines() stubs in environment tests (#6514229)get_starburst_config() stub in Docker tests (#dad7124)Improved AWS credential handling in test script (#0e916f2)
CI/CD
Full documentation now available at starburst.ing
Prevents stale Docker images with old code
Serialization Update (#cbfad21)
qs to qs2 packageMinor version bump with critical bug fixes for Docker caching and serialization consistency.
FUN.VALUE parameters to all vapply() callsQuick patch release addressing R CMD check warnings about unsafe vapply usage.
Goal: Achieve zero linting warnings while maintaining idiomatic R code style.
collapse= → collapse =3 quick wins for cleaner code
Configured lintr for R best practices
return() statements (clarity over implicit)Lint Progression: - v0.3.0: 325 total lints - v0.3.1: 198 lints (-39%) - v0.3.2: 113 lints in R/ code (-65% from v0.3.1) - v0.3.3: 0 lints in R/ code ✅ (-100%)
Philosophy: This release establishes lintr configuration that prioritizes: 1. Code clarity over terseness 2. Explicit over implicit 3. Meaningful names over short names 4. R idioms over arbitrary style rules
The package now has zero linting warnings while maintaining: - Explicit return statements (R best practice) - Descriptive variable names (self-documenting code) - Standard R indentation patterns - Internal function patterns recognized by R
Result: Clean, idiomatic R code with zero false-positive lint warnings.
Goal: Achieve Go-level code quality standards for R - clean, consistent, idiomatic.
cat_warning → cat_warn typoSimplified code by removing unnecessary intermediate variables
Code style improvements
Lint Reduction Progress: - v0.3.0: 325 lints - v0.3.1: 198 lints (-39%) - v0.3.2: 195 lints (-40% total, -2% this release)
R/ Package Code Only (excluding examples/vignettes): - 113 lints (down from ~200+) - Breakdown: - 46 indentation (cosmetic, consistent style) - 34 object_usage (mostly false positives - internal functions) - 27 return (style preference - explicit vs implicit returns) - 3 object_length (descriptive variable names) - 2 line_length (complex expressions) - 1 infix_spaces (formatting)
The remaining lints are: 1. Style preferences (indentation, returns) - subjective, not bugs 2. False positives (object_usage) - lintr doesn't recognize internal functions 3. Descriptive names (object_length) - clarity over brevity
Code quality achieved: The package now meets high standards for production R code. Remaining lints are acceptable trade-offs for code clarity and maintainability.
For absolute zero-lint perfection (0.3.3 if desired): - Manual indentation review (46 instances) - Add lintr suppressions for false positives - Shorten some variable names
Complete: All 3 issues from v0.3.1 milestone (#18, #19, #20)
14 files updated, better compatibility with older systems
Applied goodpractice suggestions (#20)
sapply() with vapply() for type safety (10 instances in R/)Better error handling for edge cases
Fixed lintr warnings (#18)
Acceptable cosmetic issues for future polish: - 85 indentation inconsistencies - 49 unused variable warnings - 29 return() style preferences - 15 seq_len() suggestions (in examples/vignettes) - 20 other minor style issues
staRburst is now enterprise-grade and ready for production deployment! This release focuses on security hardening, operational excellence, and comprehensive documentation.
session$cleanup() now fully implementedforce = TRUE optionPrevents orphaned workers and runaway costs
Detached session mode - Long-running jobs that persist after R session ends
starburst_session()session$submit(expr)starburst_session_attach(session_id)session$status()Workers stay running until absolute timeout (default 24h)
Comprehensive troubleshooting guide - 15+ common issues documented
Each issue includes symptoms, diagnosis, solutions, and prevention
Security best practices guide - Enterprise security documentation
system() callssafe_system() wrapper using processx::run()25 new security regression tests
Worker cost controls - Enforced maximum worker limits
plan() time with helpful error messagesEstimated cost validation before worker launch
Secure ECR authentication - Fixed credential exposure vulnerability
ps aux outputCritical for detached sessions with many workers
Comprehensive retry logic - Handles transient AWS failures gracefully
with_s3_retry(), with_ecs_retry(), with_ecr_retry()Reduces job failures from temporary AWS service issues
Improved error messages - Context, solutions, and documentation links
starburst_error() helper for rich error messagesquota_error(), permission_error(), task_failure_error()starburst_session() - Create detached session for long-running jobsstarburst_session_attach() - Reattach to existing sessionstarburst_session_list() - List all active sessionssession$submit() - Submit tasks to detached sessionsession$status() - Check session progress and task statessession$collect() - Retrieve completed resultssession$cleanup() - Stop workers and clean up resourcesR/aws-retry.R - Centralized retry logic (167 lines)R/errors.R - Rich error message helpers (286 lines)R/session-api.R - Detached session API (600+ lines)R/session-backend.R - Session backend initialization (332 lines)R/session-state.R - S3 state management with atomic updates (487 lines)
New vignettes:
vignettes/troubleshooting.Rmd - 15+ common issues (~15KB)vignettes/security.Rmd - 10+ security topics (~17KB)
Development infrastructure:
CLAUDE.md - Comprehensive AI assistant development guideAWS integration tested against real infrastructure
Package quality improvements
.Rbuildignore updated to exclude development files.Rd files properly namespaceddocs/)session$cleanup() signature changed: now accepts stop_workers and force parametersforce=TRUE to delete)✅ Command injection prevention ✅ Worker cost controls (max 500) ✅ Complete resource cleanup ✅ Race condition prevention ✅ Transient failure handling ✅ Comprehensive documentation ✅ Professional error messages ✅ 179 passing tests
This release makes staRburst suitable for enterprise production deployments.
Will be cleaned up in 0.3.1
Non-ASCII characters: Emojis in user-facing messages (✓, ⚠, 💡, etc.)
Can be replaced with ASCII equivalents if needed
Best practices: goodpractice suggests improvements
sapply() with vapply() (30+ instances)1:length() with seq_len() (14+ instances)One-time base build per R version, reused across all projects
Complete Docker dependency support
All common CRAN packages now compile successfully
Fixed globals serialization (#1)
globals::Globals objectsNo rebuild needed when renv.lock unchanged
Build time optimizations
build_base_image() - Build base Docker image with common dependenciesensure_base_image() - Check for/create base image as neededget_base_image_uri() - Get ECR URI for base imageinst/templates/Dockerfile.base for base image buildsinst/templates/Dockerfile.template (42 → 19 lines)base-{R.VERSION}Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.