-
Notifications
You must be signed in to change notification settings - Fork 475
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
8343196: Add build property to identify experimental builds of JavaFX #1637
Conversation
@kevinrushforth Please take a look. |
👋 Welcome back arapte! A progress list of the required criteria for merging this PR into |
@arapte This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be:
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 1 new commit pushed to the
Please see this link for an up-to-date comparison between the source branch of this pull request and the ➡️ To integrate this PR with the above commit message to the |
Webrevs
|
Reviewers: @kevinrushforth @johanvos /reviewers 2 |
@kevinrushforth |
@arapte Can you merge in the latest master? The macOS GHA failure is due to your being out of date. The fix looks good to me. I'll do some testing before approving. |
Thanks @kevinrushforth , The checks pass after merging in the latest master. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. I left a couple comments and will reapprove if you decide to make the changes.
build.gradle
Outdated
relSuffix = jfxExperimentalReleaseSuffix != "" ? | ||
jfxExperimentalReleaseSuffix : jfxReleaseSuffix; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One thought I had: we might also want to set relOpt = "-${buildTimestamp}"
here like we do for internal builds so we always see a time stamp for experimental builds. What do you think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree with that. It is often useful to have timestamp info in the builds during development.
I know I'm a broken record on this topic, but if possible, it would be great if (parts of) this logic can be moved into a separate file in order to make the build.gradle smaller and more readable. I'm not insisting on this for this PR, but I think it is worth thinking about this whenever changes to build.gradle are made.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I know I'm a broken record on this topic, but if possible, it would be great if (parts of) this logic can be moved into a separate file in order to make the build.gradle smaller and more readable.
Also at the risk of sounding like a broken record, #1232 has been waiting to start this process for a while now and it's stuck waiting for explanations on how publishing works, something only Oracle and Gluon do. If someone can help Jendrik Johannes there then the ball will get rolling. I tried to split the big build file into separate files for each module, but it's entangled with the code in that PR. Completing that PR might also remove the need for the JavaFX plugin.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I know I'm a broken record on this topic, but if possible, it would be great if (parts of) this logic can be moved into a separate file in order to make the build.gradle smaller and more readable.
Also at the risk of sounding like a broken record, #1232 has been waiting to start this process for a while now and it's stuck waiting for explanations on how publishing works, something only Oracle and Gluon do. If someone can help Jendrik Johannes there then the ball will get rolling. I tried to split the big build file into separate files for each module, but it's entangled with the code in that PR. Completing that PR might also remove the need for the JavaFX plugin.
Fair remark. I just commented on the PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added relOpt = "-${buildTimestamp}"
build.properties
Outdated
# The experimental release suffix is set only in jfx-sandbox repository | ||
# for a speficic branch. When this property is set it overrides |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you want to say something about it needing to start with a -
? Or do you think the example of -ea
above will be clear enough?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added a comment to describe the use of -
, with example of -metal
and -d3d12
.
I might be confused, but wasn't the idea to use a new property (e.g. jfx.feature.variant) instead of overloading the existing jfx.release.suffix? |
This PR does add a new property in
|
My apologies, I misread the proposed code. |
I think you have a good point. Maybe we should drop the '.suffix' in the name of this property (in which case, it wouldn't have a What do you think? |
If we do this, then here are some possible names:
Thoughts? |
That makes sense (removing the word ".suffix") |
I don't have objections against any of those. |
Variants are also something Gradle uses to select one of several components, so I suggest to avoid this overload. JavaFX should use Gradle variants for selection of operating systems. I would have went with |
Why we chose the name and use of
With this understanding, I am happy with the current name :) but shall update the PR we finalize any other name. |
I'd rather have the property be something without Even though it's a little longer, I like a combination of what Johan and Nir suggested:
No one will ever specify this on the command line or have to type it, so having it be more explicit is good, even though the name is a little long. You can say something like: Set this property to the name of the experimental feature for your branch. Do not include a dash in the name. For example, if you have a sandbox branch named |
Thanks @kevinrushforth , Updated the property name as suggested. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good with one suggested change.
build.gradle
Outdated
relSuffix = jfxExperimentalFeatureName != "" ? | ||
"-${jfxExperimentalFeatureName}" : jfxReleaseSuffix; | ||
relOpt = "-${buildTimestamp}" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will unconditionally add a timestamp to all EA builds of JavaFX, not just experimental builds. Changing the version string for EA builds seems out of scope for this PR.
relSuffix = jfxExperimentalFeatureName != "" ? | |
"-${jfxExperimentalFeatureName}" : jfxReleaseSuffix; | |
relOpt = "-${buildTimestamp}" | |
if (jfxExperimentalFeatureName != "") { | |
relSuffix = "-${jfxExperimentalFeatureName}" | |
relOpt = "-${buildTimestamp}" | |
} else { | |
relSuffix = jfxReleaseSuffix | |
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @kevinrushforth , Included the change.
Review correction Co-authored-by: Kevin Rushforth <[email protected]>
Looks good now. @johanvos this should be ready for your review. |
/integrate |
Introduce a new build property
jfx.experimental.release.suffix
to be used for the early access builds of an under development feature in JavaFX.This property would be set to a value ONLY in a branch specific to an experiment in jfx-sandbox repo.
For example:
For the metal branch in jfx-sandbox repo, it would be set to
-metal
. The javafx.version for the early access build generated from that branch would be24-metal
.And it would always be empty for master branch in both main jfx repo and in jfx-sandbox repo.
This change has no effect on a regular developer build from master branch.
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jfx.git pull/1637/head:pull/1637
$ git checkout pull/1637
Update a local copy of the PR:
$ git checkout pull/1637
$ git pull https://git.openjdk.org/jfx.git pull/1637/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 1637
View PR using the GUI difftool:
$ git pr show -t 1637
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jfx/pull/1637.diff
Using Webrev
Link to Webrev Comment