PLEASE READ: Changes needed to make and keep JavaFX repos "jcheck clean"

Kevin Rushforth kevin.rushforth at oracle.com
Fri Jan 15 16:26:05 UTC 2016


All,

This is a bit long, but please read it if you are a JavaFX developer who 
either pushes or authors changesets (or hopes to do so soon).

EXECUTIVE SUMMARY

We plan to enable jcheck in the (I hope) not too distant future. We will 
need help from all developers to follow best practices to make the 
transition as painless as possible, specifically you will need to take 
extra care in creating changesets prior to pushing them to our forest.


DETAILS

I think all OpenJFX committers are (painfully) aware that JavaFX lacks 
the automatic updating JBS issues provided by hgupdater, including:

* Adding the changeset URL as a comment when a changeset is pushed
* Resolving the JIRA issue as fixed
* Creating a backport record if necessary
* Updating the "resolved in build" field

In order to enable hgupdater we need to enable jcheck for the OpenJFX 
repositories in each forest. In addition to the primary benefit of 
allowing us to use hgupdater, the other benefit jcheck gives us is 
enforcing good practices, like making sure we don't have DOS line 
endings and other whitespace issues that serve only as sources of merge 
conflict and inconsistency.

I have filed an umbrella task [1] in JBS to track the necessary tasks 
needed to enable jcheck, and I will be filing individual RFEs (or bugs) 
to track the specific tasks.

This will require some additional restrictions on changesets. The three 
main things that developers need to be aware of are:

1. Changeset comments must adhere to the proper format defined in the 
openjdk Wiki [2]. This means that *all* non-merge changesets must start 
with a 7 digit bug ID, followed by a colon ":" followed by the bug 
title. It also means that every changeset must have a unique bug ID. No 
more "quick and dirty" fixes like "Oops, fix the build" or "[TOYS] added 
a quick test program" or "Follow-on fix for 8888888". We should get in 
the habit now, so I will be monitoring and sending private e-mail to you 
if I see a non-compliant changeset. This rule does not apply to 
sandboxes like jake since these changesets will never be pushed directly 
to mainline. The only variance is that the "Reviewed-by" field is still 
optional for FX, but if present it must following the correct format.

2. White space rules will be enforced. Specifically, jcheck will 
disallow TAB characters, DOS-style line endings, or trailing white space 
in any source code file.

3. No executable files are allowed. In UNIX parlance this means that 
every managed file in our repo must have "644" as the permission. I 
don't think this will cause us problem in practice.


NEXT STEPS

For the existing files in the repo, we will have a "flag day" where I 
(with help from Dave Hill who has volunteered to assist) will push two 
changesets to each repository: one changeset to fix the file permissions 
(#3 above) and one to fix the whitespace (#2 above). This will likely 
happen in the next week or so, after the 8u72 changes are synced back 
into 8u-dev (and corresponding changes synced back into 9-dev), but 
ideally before we fork the stabilization repos for 8u76.

I will follow-on with more information, specifically the details of the 
"flag day" and what you can do to help ensure that it stays clean, but 
wanted to give a heads-up that this was coming.

Let me know if you have any questions.

-- Kevin

[1] https://bugs.openjdk.java.net/browse/JDK-8145561
[2] http://openjdk.java.net/guide/producingChangeset.html



More information about the openjfx-dev mailing list