Switch to 1.0-HEAD-SNAPSHOT naming scheme for versioning snapshots

Open
#1,895 8 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
45/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
java

Research direction

Start by reviewing gradle.properties and the release scripts to map how snapshot and release versions are currently produced. Done means snapshots use the 1.0-HEAD-SNAPSHOT form and the release process can tag a version-only commit without placing that commit on the main branch.

Written by the indexing model from the issue text.

Description

Similar to what Error Prone does, we should have our snapshot version always be something like 1.0-HEAD-SNAPSHOT. Then, when cutting a release, we should create a separate commit C that only changes the version in gradle.properties, and tag commit C as the release. Importantly, C should be pushed to the NullAway repo, but it should not be on the main branch. Advantages of this approach:

  1. No commits need to be pushed to the main branch just to cut a release.
  2. If there are any issues with release scripts, etc., we don't need to block merges to the main branch while they are being worked out. Once a main branch commit D is chosen as the commit for a particular release, the process of cutting a release based on D can proceed concurrently with merging other PRs to the main branch.

@vlsi any thoughts/advice here?

Dominant language
Java
Stars
4.1k
Forks
379
Avg merge
1d 2h
Merged PRs (30d)
106

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from uber/NullAway

All issues in uber/NullAway

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.