bitcoinj / bitcoinj/bitcoinj

Consider using a `gradle.properties` file for shared dependency versions

Open
#4,128 0 comments 0 reactions 0 assignees View on GitHub
Developer discussion JSpecify
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.