Comments (1)
Glad to hear the recipe at least works wonderfully, and you like the changes enough to want to commit them. Our recipes are highly hierarchical in nature, and when you execute the Java 17 migration, you're actually executing 180 individual migration recipes. Some of those recipes are partial steps, that by themselves would not make sense; consider for instance how different recipes change imports versus add a dependency; you'd need both for the change to make sense, and committing just a part of that would lead to failing intermediate steps. That's why we don't support intermediate steps to commit the results; it would simply be too much to handle feasibly. We'd also have to write out to disk repeatedly, which would slow the migration down even more.
I do understand that you'd like to migrate in steps, and for that I have a couple recommendations that you can combine as needed.
-
Firstly you can run only part of the hierarchy; for instance: Migrate to Java 17 is composed of Migrate to Java 11, Migrate to Jakarta EE 9, and Migrate to Java 8. You can run each of these separately
-
You can also use Preconditions to limit the changes to for instance a particular source set or set of files.
Using these two approaches together in separate runs you can likely create something that's feasible to review still, especially as the changes are likely very similar when constrained through 1.
Each recipe run would however have to build up the lossless semantic tree yet again, which can take some time, especially for larger projects. If you'd like to speed that up you can have a look at Moderne.io, where we allow you to use precomputed LSTs.
I hope that helps you see a way forward to get these changes across the line. Always welcome to ask questions in our Slack as well.
Answer lifted over from Stackoverflow; there's no need to ask both there and here; I monitor both + Slack. :)
from rewrite.
Related Issues (20)
- Create YAML File with remote content HOT 2
- Create a folder HOT 8
- [Windows build from source] Gradle JDK auto-download doesn't work as expected HOT 2
- Unirest 4.x HOT 1
- foo.properties is not print idempotent due to `key==value` HOT 1
- `ChangeType` not working with types provided to the parser using `dependsOn`. HOT 6
- RemoveObjectsIsNull doesn't remove unnecessary parentheses, if it HOT 1
- `AddManagedDependency` should allow version placeholder properties HOT 7
- org.openrewrite.gradle.RemoveDependency does not remove dependency in subproject HOT 3
- Performance issue with classpath scanning HOT 2
- `module-info.java` trips up the JavaParser and Gradle/Maven plugin HOT 35
- Problem with parsing groovy files HOT 1
- RenameVariable does not modify variables referenced through type casts HOT 5
- Groovy Parser Failes on Method Reference Operator :: HOT 3
- Allow custom YAML filenames in YamlParser HOT 4
- There were problems parsing Inner Class HOT 1
- Parsing issue with duplicate imports HOT 2
- GroovyParser issue with statically imported constants HOT 2
- GroovyParser issue with variable assignment using Map HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rewrite.