-
Notifications
You must be signed in to change notification settings - Fork 458
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Todo list if/when we drop compat for an older Gradle version #504
Comments
|
Aren't you still coupled to 2.14 for some internal projects you own? |
Not anymore. However, I still don't see a reason to drop compat until Gradle starts throwing deprecation warnings for something that we are using which is required for 2.14. We just had a deep and long-standing bug get fixed by somebody who is stuck on Gradle 3.x |
The just-released We normally keep the default versions of formatters set to their latest available versions (users can override), but now we're going to have to keep the defaults back for as long as we support Java 8. |
As of now, the deprecated I'm hoping we can get #280 and #511 resolved before that so they're available to people who are stuck on older Gradle for whatever reason. |
I propose the following roadmap:
The "goals" in each phase are loose. One of my top priorities personally is to not be a blocker on other people's work, so if a good PR ready to ship then we'll ship it, major versions be damned. But I'd like to get #511 out and available all the way back to 2.x. IMO, it removes every single excuse to not use an autoformatter, no matter what version of Gradle you might be stuck on. I also want to minimize the |
The overall roadmap sounds great, Ned. From my point of view, I'd be fine if the changes to make Spotless cacheable were all deferred until "ratchet" support was added and released for all versions of Gradle. I would be content to rework my PR to use I don't feel strongly about it, but I assume that deferring #576 (and related PRs) could avoid requiring 2 separate major releases. Since we're only talking about a few weeks delay, I don't see much downside. |
Thanks! The other thing I failed to mention is that #576 makes #511 a lot easier! Part of why #511 is still sitting in a local stash is because of up-to-date challenges which you have fixed for me :) So I definitely want to merge and release #576 now. I don’t mind bumping major version when the cost to our users is low or the benefit to them is high, and the cost of the 4.x bump incurred by #576 is very low. I’ve probably seemed like a stability-maximalist to people who have wanted us to adopt newer versions of Gradle, but I’m all for bumping major version when (benefit/cost) >> 1 |
Right, that makes sense then. Glad that my changes make developing other features easier. |
@jbduncan @fvgh do you have any objections to the roadmap above? I've got 4.0 ready to ship, but I wanted to make sure that you two are okay with that plan before I take any irreversible steps in that direction. |
@nedtwigg No objections regarding the roadmap! If I come across a roadblock upgrading anything from Spotless 3.x to 4-5.x, I'll raise a new issue and let you know. :) |
Small change to the roadmap. During the 4.x train, we will ship The change to |
Just wanted to drop you a line @fvgh and @jbduncan. I just released If there's anything that I cut, which you would like to be put back, I'm 100% open to putting it back! Since we had to take a breaking change in order to fix some caching issues, and we can always add them back without a breaking change, I leaned towards "cut it" for things where I was on the fence. |
To my knowledge, the only thing we're sacrificing by maintaining support for 2.14 is task configuration avoidance. We do this internally already, so we don't have much to gain from adopting it. But I figured I'd make a central place to keep track of where we're not using the latest APIs, and other changes we can make when/if we cut ties with older versions.
Gradle 4.9 added task config avoidance
Gradle 5.4 added new incremental task input API
Rename
FormatExtension.root
toext
.Remove
GradleProvisioner.fromProject(Project project)
(should make the whole class package-private, probably)Standardize win-detection
The text was updated successfully, but these errors were encountered: