Consider using a `gradle.properties` file for shared dependency versions
- Dominant language
- Java
- Stars
- 5.2k
- Forks
- 2.6k
- Avg merge
- 10h 56m
- Merged PRs (30d)
- 18
Description
I think we should re-consider using a `gradle.properties` file to hold the versions of (not necessarily all) dependencies that are shared between multiple modules (subprojects)
This was previously considered and rejected in 2019 in PR #1914, but I think it is worth reconsidering now for the following reasons:
1. bitcoinj has more modules than before
2. Although we've reduced compile/runtime dependencies, we still have a significant number of shared test dependencies
3. We can configure the WIP Maven build to read the `gradle.properties` file so it is easier to keep in sync with version bumps. See: https://github.com/bitcoinj/bitcoinj/issues/3840#issuecomment-3945901238
4. ~~Adding ErrorProne/NullAway to all modules will require keeping three additional version numbers in sync~~ actually, PR #4132 puts everything in `build.gradle` itself so does not _need_ a `gradle.properties`.
Contributor guide
Research direction
Start by reviewing the current build.gradle setup and the proposed gradle.properties approach, then compare PR #1914 and PR #4132. Check how the WIP Maven build would read shared versions, and define done as an agreed, consistent version-management design across modules without breaking either build.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- build-system
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100