What is allwrite? It's all you need for automatic code migrations!
- a CLI tool for running recipes via friendly names
- a collection of recipes, filling the gaps in vanilla OpenRewrite
- a GitHub action integrating with Dependabot (coming soon)
- a GitHub bot automatically running migrations for Dependabot PRs (coming soon)
Installation:
brew tap allegro/tap
brew install allwriteRun a recipe by friendly name:
allwrite run springBoot/upgrade 3.5 4.0Run a recipe by fully-qualified name:
allwrite run --recipe pl.allegro.tech.allwrite.recipes.SpringBoot4List available recipes:
allwrite lsList all available recipes (the output will be huge):
allwrite ls -a
# or
allwrite ls --allThe allwrite CLI comes with all the free OpenRewrite migrations bundled (Java/Kotlin refactoring, Spring Boot upgrades, etc.).
In addition, it provides a collection of custom recipes that aim to fill the gaps. See RECIPES.md for the full list.
If you're a library maintainer and want to automate the migration process for your users (or just have prepared a recipe that may be useful for others), we would love to see your contribution! ❤️
You can add external recipes to your local allwrite, they can be closed-source and stored in a private artifact repository.
All you need to do:
- package your recipes to a JAR file
- publish it somewhere
- grab the URL to the published JAR
- register that URL via
allwrite external add ...
Add an external recipes JAR:
allwrite external add custom-recipes https://repo.com/custom-recipes-1.0.0.jarUpdate an external recipes JAR with a new URL:
allwrite external update custom-recipes https://repo.com/custom-recipes-2.0.0.jarRe-fetch an external recipes JAR (useful for SNAPSHOT versions):
allwrite external update custom-recipesList external recipes JARs:
allwrite external lsRemove an external recipes JAR:
allwrite external rm custom-recipes