Giter Club home page Giter Club logo

refreshversions's Introduction

refreshVersions

End the dependency hell in minutes.

refreshVersions latest release on Gradle plugin portal Kotlinlang Slack Code Triage GitHub

What

The refreshVersions plugin targets all kinds of Gradle projects, including the following:

  • Kotlin Multiplatform

  • Android

  • Kotlin/JS, Kotlin/JVM, Kotlin/Native

  • Java

The refreshVersions Gradle plugin brings the following benefits:

  1. Centralizes dependencies versions (very useful in multi-module projects)

  2. Shows available updates in seconds

  3. Allows applying the available updates with minimal effort

  4. Brings autocomplete for select dependencies (you can add yours too)

Why (the problem this project solves)

Gradle multi-module projects are on the rise because of how it enforces code decoupling, which is a good thing for maintenance and inevitable changes.

Unfortunately, that means the number of build files (build.gradle[.kts]) are multiplied, which makes upgrading the dependencies versions where significantly more tedious as you now need to open, edit and check more files.

Also, some library vendors like Google are publishing artifacts with different versions (AndroidX, Google Play Services and Firebase, just to name a few). AndroidX for example has about 70 different families with different versions overall.

We saw this made developers to update the dependencies less and less often, effectively leading to legacy accumulation (a form of technical debt), or even projects abandon.

We firmly believe the modularization benefits should not be hindered by these drawbacks. That’s how refreshVersions was born.

We want discovery of dependencies updates to be as quick as possible, we want applying these updates be as quick as possible through the whole codebase, and we want to remove the human error factor in dependencies declaration and update. That’s exactly what refreshVersions can already do today in your project.

How

Once setup, you just need to run the refreshVersions Gradle task and apply the updates you want in the versions.properties file.

Bonus: tips for your Gradle projects

Good documentation can also help you upgrade an old project to the latest and greatest.

I have a series of articles called Built with Gradle:

To get the future tips and informative articles, you can follow me on dev.to.

FAQ ❓

Questions? Look at the existing issues, then ask your own.

For special requests (not issues), you can also reach us out on Kotlin’s Slack in the #gradle-refresh-versions channel.

Release notes

See the CHANGELOG.md file.

Funding ❤️

This project has sponsors that help the maintainers dedicate more time to this project and keep it updated.

Thanks a lot to them! ❤️❤️

You can see them all here. 👀 Feel free to join them in supporting this project! 💪

Contributing

  • This project is licensed under the MIT License. See LICENSE.txt

  • Explain your use case and start the discussion before your submit a pull-request

  • CONTRIBUTING.md describes the process for submitting pull requests.

refreshversions's People

Contributors

louiscad avatar jmfayard avatar aorobator avatar cjbrooks12 avatar danysk avatar ghedeon avatar martinbonnin avatar oscarspruit avatar sksamuel avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.