How can I help Java Hamcrest?

13 views
Skip to first unread message

Rob McDougall

unread,
Aug 26, 2025, 9:27:48 AMAug 26
to Hamcrest Developers
I'm a recently retired senior Java developer with some time on my hands.  I've used Java Hamcrest extensively and would like to give something back.

It looks like PRs and Issues are starting to pile up and it appears that the project has been largely dormant for the last 9 months. 

Is there something I can do to help break the log jam?  There are quite a few PRs that look like they could be merged.   It would be nice to get those merged and the associated issues closed.

Is there anything I can do to help?  I can devote about a day a week to helping out.

Regards,
Rob

Joe Schmetzer

unread,
Sep 5, 2025, 8:34:12 PMSep 5
to Hamcrest Developers
Hi Rob,

Thanks for reaching out! I was the one who made the last release. Since then I started a new job at a startup, and between work and personal life I haven't had much time to come up for air, so I haven't been able to devote any time to Hamcrest. I'm still super keen to help keep the project alive, so anything you can do to help will be amazing!

This is the first time I looked into my Hamcrest email folder for a while, and I'm a bit overwhelmed with all the updates. I'm not sure where to start. My plan had been to do a release of Hamcrest 4.0 sooner rather than later (4.0 because of breaking changes). Then keep on with incremental point releases to keep the features coming. It looks like you're much more on top of the project than I am right now. What would you prioritise?

Cheers,
Joe

Rob McDougall

unread,
Sep 5, 2025, 10:19:27 PMSep 5
to hamcre...@googlegroups.com
Hi Joe,

Nice to meet you.  I appreciate the work you and your predecessors have done and would love to help out.

I agree with the idea of getting a Hamcrest 4.0 with a requirement for a more recent version of Java out sooner rather than later.  That’s why I started the Hamcrest 4.0 Draft PR (#443).  It’s based on a minimum Java 17 baseline.

I’ve been merging existing PRs into that branch, starting with the most recent and working my way backwards.  I’ve gotten as far as #345.  My plan was to just keep merging existing PRs into that draft PR until I heard from someone. :)

How would you like to proceed?  I think #443 is in a state that we could release it if you don’t mind 4.0 containing both a new baseline and some new functionality.  If you would prefer something a bit more incremental, I could create a PR for updating the baseline and then one or more separate PRs for the new functionality.

After getting a 4.0 out, then I think the priority is to clear the backlog of existing PRs and issues.  My experience is that (just like any branch) the longer a PR sits, the harder it becomes to merge it.  So clearing PRs (by reviewing them, then merging or rejecting them) should be a priority. Also, it’s not really fair to ask a someone who submitted a PR years ago to perform that merging work.  It’s no problem to request changes from a recently submitted PR but (IMO at least) it’s a bit cheeky to ignore a PR for several years and then request changes.

All this means that merging the existing PRs is probably going to take quite a bit of time, but I am willing to do it.    

I am happy to continue reviewing and merging existing PRs until the backlog is cleared out.  The only proviso is that I’m probably going to be reviewing from a technical perspective (i.e. is the provided code technically sound and can we still merge it without an overly burdensome amount of effort).  I don’t know if I feel qualified to decide if the use case being addressed is too niche to warrant being covered in the core matchers.  I will mainly be assuming that the existing PRs have merit from a functional perspective unless you tell me otherwise.  

I will probably take the opportunity to tweak the incoming code to leverage newer language constructs and newer JDK APIs when possible.

Does that sound like a reasonable plan?  How would you like to proceed on #443?  I realize that it is a big PR which might make it difficult to review.  Let me know.  It really just consists of the work to move to Java 17 followed by the merging of existing PRs (starting with my most recent ones) and working backwards to #345.  

I am thinking the following things need to happen if you’re OK with releasing #443 as Hamcrest 4.0:
1) I need to update the release notes document I created with info about the last PR I merged into that branch.
2) I need to close the draft PR to make it a final PR.
3) You should probably review it and if you’re happy with it, then merge it.
4) Create a 4.0 release. 

I am probably missing some steps.  You’ve been through this before and I haven’t. :)

Regards,
Rob

--
You received this message because you are subscribed to the Google Groups "Hamcrest Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hamcrest-dev...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/hamcrest-dev/533a5852-b194-4636-9a70-10997502f428n%40googlegroups.com.

Rob McDougall

unread,
Sep 12, 2025, 7:59:41 AMSep 12
to hamcre...@googlegroups.com
Hi Joe,

I believe I have completed all the steps I can in PR #443.  It is ready to be reviewed/merged.  

I have updated the Javadocs and the CHANGES.md files.  I think it is ready to go.  The only thing left is to perform the steps in RELEASING.md, which I believe requires a contributor with access to the signing credentials and permissions to publish to Maven Central.

If there's any additional things I can do to help get 4.0 out, let me know.

Regards,
Rob
Reply all
Reply to author
Forward
0 new messages