Migration Playbook: Docker and Java Renovate Presets
Guides migrating Renovate preset configuration from Python to Docker and Java repositories, recommending separate Claude Code sessions per repo.
What this file does
Guides migrating Renovate preset configuration from Python to Docker and Java repositories, recommending separate Claude Code sessions per repo.
When to use it
- Migrating Renovate presets from one ecosystem to another
- Setting up Docker or Java Renovate presets with enabledManagers
- Planning documentation structure for multiple preset repositories
- Deciding whether to handle multiple repos in one or separate sessions
Assumes this stack
Migration Playbook: Docker and Java Renovate Presets
Date: 2025-11-22 Context: Applying Python preset optimizations to parallel repositories
Decision: Separate Sessions vs Single Session
Recommendation: Use separate Claude Code sessions for each repository
Reasons for Separate Sessions
1. Context Window Management (Critical)
- Docker and Java ecosystems require extensive Context7 research (different managers, different best practices)
- Each repo needs dedicated focus without polluting context
- We just did deep research for Python - adding Docker + Java would exhaust context quickly
2. Ecosystem-Specific Requirements
Docker preset needs:
dockerfilemanager - Dockerfile base image updatesdocker-composemanager - Docker Compose service versions- Container digest pinning - Security best practices
- Base image policies - Which base images to track/automerge
Java preset needs:
mavenmanager - Maven pom.xml dependenciesgradlemanager - Gradle build files- Java version management - JDK/JRE version tracking
- Spring Boot specifics - Spring Boot dependency management
3. Clean, Focused Work
- No risk of mixing files between repos
- Each repository gets proper analysis and documentation
- Better quality results per repo
Template/Playbook for Docker and Java Repos
Apply the same optimization approach as casc-renovate-preset-polarion-python:
1. Configuration Structure
Use enabledManagers to restrict to ecosystem-specific managers only:
{
"enabledManagers": [
"dockerfile", // Docker: Dockerfile updates
"docker-compose", // Docker: docker-compose.yml updates
"github-actions", // Both: GitHub workflow actions
"renovate-config-presets", // Both: Preset self-updates
"custom.regex" // Both: Custom dependency patterns
]
}
OR for Java:
{
"enabledManagers": [
"maven", // Java: pom.xml dependencies
"gradle", // Java: build.gradle dependencies (if used)
"github-actions", // Both: GitHub workflow actions
"renovate-config-presets", // Both: Preset self-updates
"custom.regex" // Both: Custom dependency patterns
]
}
Document which managers are enabled and why:
- Add clear comments explaining each manager's purpose
- Create comparison table showing "with vs without enabledManagers"
2. Documentation Organization
Create ARCHITECTURE.md:
- Technical analysis and design decisions
- Package manager support matrix
enabledManagersbehavioral analysis with comparison tables- Automerge strategy and rules
- Version compatibility notes
- Documentation references
Enhance README.md:
- User-facing documentation for preset consumers
- Features overview
- How to use the preset
- Migration guides (if applicable)
- Developer setup instructions
- Deployment warnings
Create CLAUDE.md:
- AI assistant development guidance
- Repository purpose and architecture
- Development commands (validation, pre-commit)
- Configuration guidelines
- Important constraints (email domain, deployment model, semantic commits)
- Internal documentation references
3. Research Requirements
Use Context7 to verify all configuration:
- Research each manager's capabilities and options
- Check for deprecations and inconsistencies
- Verify automerge best practices for the ecosystem
- Validate security options (digest pinning, etc.)
Version Compatibility:
- Document tested Renovate version
- Note forward compatibility (v41+/v42+)
- Verify all configuration options are stable
4. Validation Commands
JSON syntax check:
jq empty default.json
Renovate config validation:
npx renovate-config-validator default.json
Pre-commit hooks (before commit):
pre-commit run --all-files
5. Configuration Philosophy
Ecosystem-Specific Focus:
- Use
enabledManagersto make intent explicit - Prevents accidental detection of other ecosystems
- Clear documentation of scope
Automerge Strategy:
- Define what auto-merges (minor/patch, specific managers)
- Define what requires manual review (major updates)
- Enable lock file maintenance if applicable
Security by Default:
- Digest pinning for critical dependencies
- Lock file maintenance for transitive dependencies
- Gitleaks in pre-commit hooks
Reference Implementation
Python preset: github.com/SchweizerischeBundesbahnen/casc-renovate-preset-polarion-python
Key files to review:
default.json- Main configuration structureARCHITECTURE.md- Complete technical documentationCLAUDE.md- AI assistant guidanceREADME.md- User-facing documentation
Docker Preset Specific Considerations
Recommended enabledManagers
"enabledManagers": [
"dockerfile", // Base image updates (FROM lines)
"docker-compose", // Service image versions
"github-actions", // Workflow dependencies
"renovate-config-presets", // Self-updates
"custom.regex" // Custom patterns
]
Docker-Specific Package Rules
Digest pinning:
{
"description": "Enable digest pinning for Docker images",
"matchDatasources": ["docker"],
"pinDigests": true
}
Base image automerge:
{
"description": "Automerge official base images (minor/patch)",
"matchDatasources": ["docker"],
"matchPackagePatterns": ["^alpine$", "^debian$", "^ubuntu$"],
"matchUpdateTypes": ["minor", "patch", "digest"],
"automerge": true
}
Research Topics (Context7)
- Dockerfile manager capabilities
- Docker Compose manager features
- Digest pinning best practices
- Base image update strategies
- Multi-stage build considerations
Java Preset Specific Considerations
Recommended enabledManagers
"enabledManagers": [
"maven", // pom.xml dependencies
"gradle", // build.gradle dependencies (if used)
"github-actions", // Workflow dependencies
"renovate-config-presets", // Self-updates
"custom.regex" // Custom patterns
]
Java-Specific Package Rules
Spring Boot automerge:
{
"description": "Automerge Spring Boot minor/patch updates",
"matchPackagePatterns": ["^org.springframework.boot:"],
"matchUpdateTypes": ["minor", "patch"],
"automerge": true
}
Test dependencies automerge:
{
"description": "Automerge test dependencies",
"matchDepTypes": ["test"],
"automerge": true
}
Research Topics (Context7)
- Maven manager capabilities
- Gradle manager features (if applicable)
- Spring Boot dependency management
- Java version tracking
- BOM (Bill of Materials) handling
Deployment Notes
Critical Reminders:
- Changes to
default.jsonare live immediately when merged to main - No CI/CD pipeline - all consuming repositories receive updates directly
- Test thoroughly before pushing to main
- Use
renovate.jsonin each preset repo for self-testing
Next Steps
-
Navigate to casc-renovate-preset-polarion-docker:
- Open new Claude Code session
- Reference this playbook
- Apply Docker-specific optimizations
-
Navigate to casc-renovate-preset-polarion-java:
- Open new Claude Code session
- Reference this playbook
- Apply Java-specific optimizations
-
Post-Migration:
- Verify all three presets follow consistent documentation structure
- Cross-reference between presets for shared patterns
- Update consuming repositories as needed
What's inside
5 major sections: session decision, template steps, Docker specifics, Java specifics, deployment notes. Includes 6 code examples.
Change this for your project
- Replace
casc-renovate-preset-polarion-pythonwith your own Python preset repository name - Replace
casc-renovate-preset-polarion-dockerwith your Docker preset repository name - Replace
casc-renovate-preset-polarion-javawith your Java preset repository name
Where it goes
Keep it in your repository where the agent or team that needs it will read it.
Worth borrowing
- Use separate AI sessions per repository to avoid context pollution
- Document enabledManagers with inline comments explaining each manager's purpose
- Create ARCHITECTURE.md, README.md, and CLAUDE.md for consistent preset documentation
Related Documents
Video/Content Producer
Defines a video/content producer role with script structures, hook formulas, storyboard templates, and platform-specific formats for short-form and long-form video production.
Media Handling Playbook - Zyeuté v3
Documents upload, storage, optimization, delivery, and edge-case handling for images, videos, and audio in a social app.
Visual Truth Engine: Product-Market Fit & Go-to-Market Strategy
Outlines a product-market fit strategy and go-to-market plan for a B2B SaaS tool that automates proof asset creation for video creators.
Devin Triage Playbook
Defines a 7-phase automated triage playbook for Devin to analyze alerts, find root causes, implement fixes, and notify teams.