More community participation in JavaFX
Kevin Rushforth
kevin.rushforth at oracle.com
Wed Feb 7 16:42:54 UTC 2018
This has now veered off topic for this thread. It would be a fine topic
for the "future content of OpenJFX" thread.
-- Kevin
John-Val Rose wrote:
> <rant>
>
> Well, not only do I think that a docking framework is *that* complex, I see it as an essential part of any serious graphics toolkit.
>
> In general, I don’t understand all the limitations that people keep imposing on JavaFX as if we have to “settle” for what is basically a 2nd class citizen compared with toolkits in other languages.
>
> Why can’t we just make JavaFX so compelling that developers from other languages are enticed by the feature set itself? There is no reason (other than a lack of effort) why JavaFX cannot be on par with Qt or Xamarin in terms of features, performance, tooling and adoption.
>
> Am I the only one that believes the world’s most popular and amazing programming language, platform and the JVM deserves a first class graphics toolkit?
>
> I understand the constraints imposed on Oracle staff but isn’t there anyone else out there in the community who shares my vision for JavaFX?
>
> It seems the general attitude is that JavaFX just needs to be a “better Swing”.
>
> Forget about this nonsense of “thinking outside the box”.
>
> There is NO BOX!
>
> JavaFX can and should be the best that we as a community can make it.
>
> And then we just keep making it better...
>
> If we don’t adopt such a vision and attitude then what is the point of doing anything at all? Just leave JavaFX to rot into oblivion and relegate Java to a server-side language only.
>
> </rant>
>
>
>> On 7 Feb 2018, at 19:25, Tom Eugelink <tbee at tbee.org> wrote:
>>
>> Well, I believe he was hinting at that a docking framework is considered
>> more complex, there was no negative sentiment in that. Although I do not
>> think a docking framework is that complex, but maybe I'm wrong.
>>
>> And yes, ALMOST everyone is at ControlFX ;-)
>>
>>
>>
>>
>>> Jonathan - why do you *cough* at ideas like more complex controls and
>>> docking frameworks?
>>>
>>> I think that a docking framework especially would be a great addition to
>>> JavaFX.
>>>
>>> Am I missing something?
>>>
>>>
>>>> On 7 Feb 2018, at 18:16, Jonathan Giles <jonathan at jonathangiles.net>
>>>> wrote:
>>>>
>>>> Obviously everyone is at ControlsFX instead ;-)
>>>>
>>>> Part of the drop I would suggest is simply that many of the itches
>>>> people
>>>> want to scratch are now scratched. Alternatively, the remaining itches
>>>> are
>>>> either in more complex controls (*cough* docking frameworks *cough*) or
>>>> in
>>>> areas beneath the controls APIs - performance, webview, etc - which are
>>>> more challenging and require greater levels of dedication.
>>>>
>>>> However, more generally, your point is well made - contribution to
>>>> JavaFX
>>>> does not need to be synonymous with contribution to OpenJFX. People who
>>>> find the challenges of the current OpenJFX requirements too great should
>>>> be
>>>> encouraged to involve themselves in projects such as JFXtras, etc.
>>>>
>>>> -- Jonathan
>>>>
>>>>
>>>>> On Wed, Feb 7, 2018 at 3:05 PM, Tom Eugelink <tbee at tbee.org> wrote:
>>>>>
>>>>> Many years ago I had a discussion with Jonathan Giles about if the
>>>>> things
>>>>> that were being made in JFXtras would eventually become part of the
>>>>> JavaFX
>>>>> core. In the end I decided that, for me personally, I could do the
>>>>> things I
>>>>> wanted to perfectly in a separate project. The rigid structure that
>>>>> Java(FX) has to adhere to, would be a big downside.
>>>>>
>>>>> What I want to say with that is that all the external projects are also
>>>>> contributions to JavaFX. It does not matter whether for example a
>>>>> control
>>>>> is part of the core distribution or of a side project; it is just
>>>>> another
>>>>> module users can add to the mix.
>>>>>
>>>>> So reflecting back I still stand by that choice. But having a few more
>>>>> people in the project (just like in JavaFX ;-) ) would be nice, but
>>>>> OTOH it
>>>>> forces me to deal with (and learn about) annoying stuff like Gradle
>>>>> build
>>>>> scripts and Java 9 migration. But because of that progress is not as
>>>>> fast
>>>>> as I would like it to be. Could it be that there is a decline in people
>>>>> willing to work for open source projects? Or is it just that this tech,
>>>>> JavaFX, is no longer appealing?
>>>>>
>>>>> Tom
>>>>>
>>>>>
>>>>>
>>>>>
>>>> Obviously everyone is at ControlsFX instead ;-)
>>>>
>>>> Part of the drop I would suggest is simply that many of the itches
>>>> people
>>>> want to scratch are now scratched. Alternatively, the remaining itches
>>>> are
>>>> either in more complex controls (*cough* docking frameworks *cough*) or
>>>> in
>>>> areas beneath the controls APIs - performance, webview, etc - which are
>>>> more challenging and require greater levels of dedication.
>>>>
>>>> However, more generally, your point is well made - contribution to
>>>> JavaFX
>>>> does not need to be synonymous with contribution to OpenJFX. People who
>>>> find the challenges of the current OpenJFX requirements too great should
>>>> be
>>>> encouraged to involve themselves in projects such as JFXtras, etc.
>>>>
>>>> -- Jonathan
>>>>
>>>>
>>>>> On Wed, Feb 7, 2018 at 3:05 PM, Tom Eugelink <tbee at tbee.org> wrote:
>>>>>
>>>>> Many years ago I had a discussion with Jonathan Giles about if the
>>>>> things
>>>>> that were being made in JFXtras would eventually become part of the
>>>>> JavaFX
>>>>> core. In the end I decided that, for me personally, I could do the
>>>>> things I
>>>>> wanted to perfectly in a separate project. The rigid structure that
>>>>> Java(FX) has to adhere to, would be a big downside.
>>>>>
>>>>> What I want to say with that is that all the external projects are also
>>>>> contributions to JavaFX. It does not matter whether for example a
>>>>> control
>>>>> is part of the core distribution or of a side project; it is just
>>>>> another
>>>>> module users can add to the mix.
>>>>>
>>>>> So reflecting back I still stand by that choice. But having a few more
>>>>> people in the project (just like in JavaFX ;-) ) would be nice, but
>>>>> OTOH it
>>>>> forces me to deal with (and learn about) annoying stuff like Gradle
>>>>> build
>>>>> scripts and Java 9 migration. But because of that progress is not as
>>>>> fast
>>>>> as I would like it to be. Could it be that there is a decline in people
>>>>> willing to work for open source projects? Or is it just that this tech,
>>>>> JavaFX, is no longer appealing?
>>>>>
>>>>> Tom
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> On 7-2-2018 03:16, Kevin Rushforth wrote:
>>>>>>
>>>>>> I would recommend against having a separate issue tracker or mailing
>>>>>> list
>>>>>> associated with the sandbox. That will create more confusion than any
>>>>>> benefit you might have.
>>>>>>
>>>>>> -- Kevin
>>>>>>
>>>>>>
>>>>>> Nir Lisker wrote:
>>>>>>
>>>>>>
>>>>>>> Another thing to be careful about with the sandbox/staging idea is
>>>>>>> the
>>>>>>> confusion that will arise with duplication. There will be 2 issue
>>>>>>> trackers
>>>>>>> (JBS and GitHub (or GitHub-like)), 2 repo addresses, 2 wikis, and
>>>>>>> maybe 2
>>>>>>> discussion lists. For those "in the know" this will be a simple
>>>>>>> matter, but
>>>>>>> for a potential contributor this can be a gamebreaker if not handled
>>>>>>> appropriately.
>>>>>>>
>>>>>>> Dalibor Topic's suggestion of contacting other mirrors can be
>>>>>>> instrumental in solving these problems.
>>>>>>>
>>>>>>> - Nir
>>>>>>>
>>>>>>> On Mon, Feb 5, 2018 at 4:41 PM, Kevin Rushforth <
>>>>>>> kevin.rushforth at oracle.com <mailto:kevin.rushforth at oracle.com>>
>>>>>>> wrote:
>>>>>>>
>>>>>>> Yes, this sounds like a good step in the right direction. This
>>>>>>> would give anyone (with a signed OCA) the ability to create their
>>>>>>> own branch, commit changes to it, submit a PR, etc.
>>>>>>>
>>>>>>> I presume there will be a branch that is an exact mirror of the
>>>>>>> jfx-dev repo on OpenJDK in addition to the development branch in
>>>>>>> the sandbox?
>>>>>>>
>>>>>>> The only thing to consider is whether it should be Committers or
>>>>>>> Reviewers that have rights to merge into the sandbox development
>>>>>>> branch. There are pros / cons of each. I'd probably lean towards
>>>>>>> having it be Committers, with the idea that a Committer needs to
>>>>>>> sponsor the patch anyway and would then be able to "take it the
>>>>>>> rest of the way". The only downside I see is that you could end up
>>>>>>> with a few patches that get accepted into the sandbox dev branch,
>>>>>>> but never make it to the upstream jfx-dev repo (or not without
>>>>>>> significant change). I doubt this will be a big problem in
>>>>>>> practice.
>>>>>>>
>>>>>>> Either way, this could also provide a good alternative to webrev
>>>>>>> when reviewing the final changes.
>>>>>>>
>>>>>>> -- Kevin
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Johan Vos wrote:
>>>>>>>
>>>>>>> Hi Michael,
>>>>>>>
>>>>>>> This proposal is very much in line with my thinking as well.
>>>>>>> The problem is not that we don't have a github clone of
>>>>>>> OpenJFX. We have a
>>>>>>> number of them (e.g. I created
>>>>>>> https://github.com/javafxports/jfx-dev
>>>>>>> <https://github.com/javafxports/jfx-dev> some
>>>>>>> months ago). We just need a single one that is updated
>>>>>>> constantly from
>>>>>>> mainstream, and standardize on that. Let's call that "sandbox"
>>>>>>> (I would be
>>>>>>> ok with staging as well, but sandbox is imho more inviting to
>>>>>>> people who
>>>>>>> want to try something drastic, e.g. support for Vulkan)
>>>>>>>
>>>>>>> The main issue is how to get contributions, review them, and
>>>>>>> eventually
>>>>>>> send them upstream.
>>>>>>>
>>>>>>> The PR review process is extremely important. If we lower that
>>>>>>> bar, we
>>>>>>> loose quality. If the bar is too high, great PR's won't be
>>>>>>> accepted
>>>>>>> upstream as there is not enough review time to review it.
>>>>>>>
>>>>>>> I agree giving the current OpenJFX committers merge rights for
>>>>>>> the
>>>>>>> "sandbox" repository makes sense. Once a public contribution
>>>>>>> is merged by
>>>>>>> one of those committers, that same committer can send it
>>>>>>> upstream to the
>>>>>>> existing OpenJFX repository. Additional checks will be
>>>>>>> performed there,
>>>>>>> mainly in order to make sure the overall "Feel of Java" is
>>>>>>> preserved. To
>>>>>>> that purpose, it would help to have a closer alignment with
>>>>>>> the OpenJDK
>>>>>>> community.
>>>>>>>
>>>>>>> We have to be aware that this will increase the workload of
>>>>>>> the current
>>>>>>> committers and reviewers. That is the price we pay for
>>>>>>> standardization.
>>>>>>> Rather than everyone creating his own forks of a UI framework
>>>>>>> in Java, we
>>>>>>> invest a lot in creating a single, generally agreed one.
>>>>>>>
>>>>>>> So in summary, I'm +1 on a 2-phase approach: "open" commits
>>>>>>> allowed in
>>>>>>> staging. OpenJFX committers accept PR's (if they are of good
>>>>>>> quality) and
>>>>>>> prepare upstream commits for OpenJFX. We hope there will be
>>>>>>> more
>>>>>>> contributors who become committers and reviewers in the medium
>>>>>>> term.
>>>>>>>
>>>>>>> - Johan
>>>>>>>
>>>>>>> On Mon, Feb 5, 2018 at 3:57 AM Michael Ennen
>>>>>>> <mike.ennen at gmail.com <mailto:mike.ennen at gmail.com>> wrote:
>>>>>>>
>>>>>>>
>>>>>>> Those are great questions, and I think with
>>>>>>> Kevin/Oracle/other OpenJFX devs
>>>>>>> help we
>>>>>>> can figure something out.
>>>>>>>
>>>>>>> My thinking is that the PR would be reviewed by basically
>>>>>>> anyone who has
>>>>>>> free time.
>>>>>>> I think that, at first, only OpenJFX committers will be
>>>>>>> able to merge PRs.
>>>>>>> They would
>>>>>>> do the final review/merge to the staging repo after it has
>>>>>>> been reviewed by
>>>>>>> the "wider audience"
>>>>>>> which includes people without commit rights (people like
>>>>>>> us). Then, as this
>>>>>>> thing evolves,
>>>>>>> based on the pool of people who are contributing both pull
>>>>>>> requests and PR
>>>>>>> reviews,
>>>>>>> the committers will be able to grant commit privileges to
>>>>>>> some people in
>>>>>>> that pool.
>>>>>>>
>>>>>>> I can't think of any way that would make it so the changes
>>>>>>> are as likely to
>>>>>>> be
>>>>>>> merged upstream as possible other than having the current
>>>>>>> OpenJFX
>>>>>>> committers paving the
>>>>>>> way. Hopefully this vision is aligned with Kevin's and
>>>>>>> hopefully these
>>>>>>> concrete details
>>>>>>> can be worked out.
>>>>>>>
>>>>>>> Regards,
>>>>>>> Michael
>>>>>>>
>>>>>>> On Sun, Feb 4, 2018 at 6:21 PM, Nir Lisker
>>>>>>> <nlisker at gmail.com <mailto:nlisker at gmail.com>> wrote:
>>>>>>>
>>>>>>>
>>>>>>> So if a community ran GitHub is used for staging, who
>>>>>>> will approve PRs
>>>>>>>
>>>>>>> for
>>>>>>>
>>>>>>> the code and the Wiki of the GitHub repo?
>>>>>>>
>>>>>>> On Mon, Feb 5, 2018 at 2:40 AM, Michael Ennen
>>>>>>> <mike.ennen at gmail.com <mailto:mike.ennen at gmail.com>>
>>>>>>> wrote:
>>>>>>>
>>>>>>>
>>>>>>> Great points, Nir. We share the same hopes. I just
>>>>>>> wanted to piggy-back
>>>>>>> on the
>>>>>>> wiki thing:
>>>>>>>
>>>>>>> " * The Wiki could be open sourced as well (like
>>>>>>> other Wikis). I could
>>>>>>> definitely update a page or 2 there and so would
>>>>>>> other developers as
>>>>>>>
>>>>>>> they
>>>>>>>
>>>>>>> gain knowledge. I don't know yet how permissions
>>>>>>> for that should be
>>>>>>> handled."
>>>>>>>
>>>>>>> This is another thing that we could use the GitHub
>>>>>>> staging repository
>>>>>>>
>>>>>>> for.
>>>>>>>
>>>>>>> The staging repository could have a wiki (projects
>>>>>>> on GitHub can have
>>>>>>>
>>>>>>> one)
>>>>>>>
>>>>>>> that is editable by all, and then maybe once a
>>>>>>> month or so someone with
>>>>>>> permissions
>>>>>>> to edit to official wiki can sync with the new,
>>>>>>> reviewed changes (the
>>>>>>> once-a-month
>>>>>>> time constraint is very flexible).
>>>>>>>
>>>>>>> I am just trying to explain how the GitHub
>>>>>>> repository "one-way mirror"
>>>>>>> (potentially linked
>>>>>>> with/managed by Adopt an OpenJDK) can act as a
>>>>>>> staging ground for all
>>>>>>> kinds of contributions to
>>>>>>> OpenJFX.
>>>>>>>
>>>>>>> By the way, I am trying to cleanup the groundwork
>>>>>>> I did on getting
>>>>>>> Appveyor builds to
>>>>>>> run for openjfx, if indeed it is decided to setup
>>>>>>> such a staging
>>>>>>> repository. You can
>>>>>>> see my efforts here:
>>>>>>> https://raw.githubusercontent.
>>>>>>>
>>>>>>>
>>>>>>> com/brcolow/openjfx/f1b8978849fc371683b40931c17020421acc0057
>>>>>>> /appveyor.yml
>>>>>>>
>>>>>>> If the GitHub repository was setup, changes such
>>>>>>> as these to add CI
>>>>>>> infrastructure would
>>>>>>> never be adopted by upstream OpenJFX, but would
>>>>>>> allow for developer's to
>>>>>>> get good
>>>>>>> feedback on test results for all supported
>>>>>>> platforms when they open a
>>>>>>>
>>>>>>> PR.
>>>>>>>
>>>>>>> Merging a PR
>>>>>>> on the public GitHub repository means, in my
>>>>>>> opinion, that it is ready
>>>>>>>
>>>>>>> to
>>>>>>>
>>>>>>> be opened as
>>>>>>> an upstream bug/feature request. Automating the
>>>>>>> process with patch sets,
>>>>>>> webrevs, formatting/lint
>>>>>>> results, etc. would be the most ideal situation
>>>>>>> and I would be happy to
>>>>>>> contribute to these
>>>>>>> efforts.
>>>>>>>
>>>>>>> Regards,
>>>>>>>
>>>>>>> Michael Ennen
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Sun, Feb 4, 2018 at 5:29 PM, Nir Lisker
>>>>>>> <nlisker at gmail.com <mailto:nlisker at gmail.com>>
>>>>>>> wrote:
>>>>>>>
>>>>>>>
>>>>>>> Hello,
>>>>>>>
>>>>>>> As someone who has recently made the climb and
>>>>>>> managed to build OpenJFX
>>>>>>> with OpenJDK on Win 10 I might have some
>>>>>>> relevant input.
>>>>>>>
>>>>>>> --- Building OpenJFX ---
>>>>>>>
>>>>>>> * With the recently updated instructions on
>>>>>>> the Wiki, building OpenJFX
>>>>>>>
>>>>>>> is
>>>>>>>
>>>>>>> not that hard. Having to build OpenJDK for
>>>>>>> that was a real headache
>>>>>>> because
>>>>>>> their instructions and build tools are not up
>>>>>>> to date (
>>>>>>> https://bugs.openjdk.java.net/browse/JDK-8194645
>>>>>>> <https://bugs.openjdk.java.net/browse/JDK-8194645>).
>>>>>>> * The above doesn't mean that the process
>>>>>>> shouldn't be made easier.
>>>>>>> Ideally, it would be the as easy as working on
>>>>>>> most open source
>>>>>>>
>>>>>>> projects
>>>>>>>
>>>>>>> on
>>>>>>> Github (not advocating git over hg): clone
>>>>>>> into the IDE and start
>>>>>>> working;
>>>>>>> when a fix is ready, submit a PR. Don't know
>>>>>>> if it's technically
>>>>>>>
>>>>>>> possible
>>>>>>>
>>>>>>> in this case, but it's a target.
>>>>>>> * The repository needs a good cleanup before
>>>>>>> contributors start
>>>>>>>
>>>>>>> cloning (
>>>>>>>
>>>>>>> bugs.openjdk.java.net/browse/JDK-8196198
>>>>>>> <http://bugs.openjdk.java.net/browse/JDK-8196198>).
>>>>>>>
>>>>>>> --- Working on OpenJFX ---
>>>>>>>
>>>>>>> * It should be clear which tests need to run
>>>>>>> for a specific patch.
>>>>>>> Changes
>>>>>>> can be made anywhere from the documentation
>>>>>>> level to native code level
>>>>>>> and
>>>>>>> there's no reason to run the same tests for
>>>>>>> all of these. If the
>>>>>>>
>>>>>>> process
>>>>>>>
>>>>>>> can be automate it's even better.
>>>>>>> * The Webrev tool seems archaic to me (and
>>>>>>> part of its output is broken
>>>>>>> as
>>>>>>> far as I could tell). An IDE can create diff
>>>>>>> patches with a couple of
>>>>>>> clicks.
>>>>>>> * The Jcheck tool seems archaic to me. It
>>>>>>> should be ported to IDE
>>>>>>> formatters which are to be distributed with
>>>>>>> the source. No reason to
>>>>>>>
>>>>>>> run
>>>>>>>
>>>>>>> a
>>>>>>> tool that tells me which whitespaces I need to
>>>>>>> go back and change when
>>>>>>> something like Ctrl+Shift+F in an IDE finishes
>>>>>>> the job.
>>>>>>>
>>>>>>> --- Wiki ---
>>>>>>>
>>>>>>> * The Wiki could be open sourced as well (like
>>>>>>> other Wikis). I could
>>>>>>> definitely update a page or 2 there and so
>>>>>>> would other developers as
>>>>>>>
>>>>>>> they
>>>>>>>
>>>>>>> gain knowledge. I don't know yet how
>>>>>>> permissions for that should be
>>>>>>> handled.
>>>>>>> * Code conventions should be clearly listed.
>>>>>>> * Separate sections with instructions should
>>>>>>> be made for: (1) cloning
>>>>>>>
>>>>>>> and
>>>>>>>
>>>>>>> building, (2) modifying, (3) running tests,
>>>>>>> (4) submitting, and (5)
>>>>>>> reviewing.
>>>>>>> * Old sections should be cleaned up (I don't
>>>>>>> think Discussions is
>>>>>>>
>>>>>>> useful
>>>>>>>
>>>>>>> anymore).
>>>>>>>
>>>>>>> --- Review policy ---
>>>>>>>
>>>>>>> * I have no experience with review policies or
>>>>>>> project roles so I can't
>>>>>>> help here much (maybe after a discussion
>>>>>>> starts).
>>>>>>> * One thing I do know is that reviewers should
>>>>>>> be extremely
>>>>>>> knowledgeable,
>>>>>>> which means that there aren't many qualified.
>>>>>>> Because of this, if it
>>>>>>> becomes "too" easy to contribute to OpenJFX,
>>>>>>> careful measures need to
>>>>>>>
>>>>>>> be
>>>>>>>
>>>>>>> taken as to not to swamp the few reviewers
>>>>>>> with many patches (though
>>>>>>>
>>>>>>> some
>>>>>>>
>>>>>>> would say this is an ideal situation). Some
>>>>>>> sort of review queue might
>>>>>>> help
>>>>>>> with organization instead of the current email
>>>>>>> system. I have no
>>>>>>>
>>>>>>> concrete
>>>>>>>
>>>>>>> solution for this.
>>>>>>>
>>>>>>> - Nir
>>>>>>>
>>>>>>>
>>>>>>> Message: 1
>>>>>>>
>>>>>>> Date: Thu, 01 Feb 2018 15:26:24 -0800
>>>>>>> From: Kevin Rushforth
>>>>>>> <kevin.rushforth at oracle.com
>>>>>>> <mailto:kevin.rushforth at oracle.com>>
>>>>>>> To: "openjfx-dev at openjdk.java.net
>>>>>>> <mailto:openjfx-dev at openjdk.java.net>"
>>>>>>> <openjfx-dev at openjdk.java.net
>>>>>>> <mailto:openjfx-dev at openjdk.java.net>>
>>>>>>> Subject: More community participation in
>>>>>>> JavaFX
>>>>>>> Message-ID: <5A73A220.7030706 at oracle.com
>>>>>>> <mailto:5A73A220.7030706 at oracle.com>>
>>>>>>> Content-Type: text/plain;
>>>>>>> charset=windows-1252; format=flowed
>>>>>>>
>>>>>>> To: OpenJFX Developers
>>>>>>>
>>>>>>> We are looking to grow the community of
>>>>>>> contributors to the OpenJFX
>>>>>>> project, especially serious contributors
>>>>>>> who will stick around long
>>>>>>> enough to become reviewers, to help us
>>>>>>> keep the platform vibrant. To
>>>>>>> this end we are looking at ways to
>>>>>>> encourage more participation and
>>>>>>>
>>>>>>> make
>>>>>>>
>>>>>>> it easier for interested folks to
>>>>>>> contribute.
>>>>>>>
>>>>>>> We are specifically looking to discuss
>>>>>>> ideas around the following
>>>>>>>
>>>>>>> areas:
>>>>>>>
>>>>>>> * Easing barriers to contribution (e.g.,
>>>>>>> making JavaFX easier to
>>>>>>>
>>>>>>> build,
>>>>>>>
>>>>>>> better documentation, making it easier to
>>>>>>> test changes)
>>>>>>>
>>>>>>> * Code review policies
>>>>>>>
>>>>>>> * API / feature review policies
>>>>>>>
>>>>>>> * Code review tools (we currently use
>>>>>>> webrev, but that isn't set in
>>>>>>>
>>>>>>> stone)
>>>>>>>
>>>>>>> To keep this thread productive, the
>>>>>>> following are explicitly out of
>>>>>>>
>>>>>>> scope:
>>>>>>>
>>>>>>> * Discussion of specific features or bugs
>>>>>>> that you would like to
>>>>>>> implement (or wish someone else would)
>>>>>>>
>>>>>>> * Discussion about platform support
>>>>>>>
>>>>>>> * Discussion about version control systems
>>>>>>> (e.g., hg versus git),
>>>>>>> hosting of the OpenJFX repos and bug
>>>>>>> database (e.g., OpenJDK versus
>>>>>>> github), etc...at least for now. We are
>>>>>>> aware of the potential
>>>>>>>
>>>>>>> benefits
>>>>>>>
>>>>>>> of such changes, but we'd like to focus
>>>>>>> our efforts on
>>>>>>>
>>>>>>> higher-leverage
>>>>>>>
>>>>>>> things we can do in the short term.
>>>>>>>
>>>>>>> * Discussion about the requirement of a
>>>>>>> signed OCA to become a
>>>>>>>
>>>>>>> contributor
>>>>>>>
>>>>>>> * Off-topic or tangential commentary about
>>>>>>> OpenJFX that isn't
>>>>>>>
>>>>>>> directly
>>>>>>>
>>>>>>> related to the topic at hand
>>>>>>>
>>>>>>>
>>>>>>> As a starting point for discussion, here
>>>>>>> are some areas I think need
>>>>>>> improvement; I'm sure there are others:
>>>>>>>
>>>>>>> I. Helping contributors get started
>>>>>>>
>>>>>>> It isn?t as easy to get started with
>>>>>>> OpenJFX as it should be. We want
>>>>>>>
>>>>>>> to
>>>>>>>
>>>>>>> make it easier for potential OpenJFX
>>>>>>> contributors to get started.
>>>>>>>
>>>>>>> Here
>>>>>>>
>>>>>>> are some ideas that I think might help:
>>>>>>>
>>>>>>> * Improve the build instructions / Wiki (I
>>>>>>> made a first start, but
>>>>>>>
>>>>>>> there
>>>>>>>
>>>>>>> is much more to be done)
>>>>>>>
>>>>>>> * Make the build itself more resilient
>>>>>>> where possible, and provide
>>>>>>> better error messages, specifically when
>>>>>>> dealing with native
>>>>>>>
>>>>>>> compilers
>>>>>>>
>>>>>>> and libraries
>>>>>>>
>>>>>>> * Add an option to skip building all
>>>>>>> native code and use prebuilt
>>>>>>> binaries (like we do already for media and
>>>>>>> webkit); this is tracked
>>>>>>>
>>>>>>> by
>>>>>>>
>>>>>>> JDK-8092279, but it hasn?t been looked at
>>>>>>> recently
>>>>>>>
>>>>>>> * Make it easier to build / test your
>>>>>>> local OpenJFX build using an
>>>>>>> OpenJDK build (currently the only way to
>>>>>>> do this is to build OpenJDK
>>>>>>> locally, after using configure to point to
>>>>>>> your just-built javafx.*
>>>>>>> modules).
>>>>>>>
>>>>>>> * Provide step-by-step instructions for
>>>>>>> how to make a contribution,
>>>>>>> including testing requirements; a lot of
>>>>>>> the pieces are there, but
>>>>>>>
>>>>>>> are
>>>>>>>
>>>>>>> out of date or scattered in several
>>>>>>> places. As part of this, we could
>>>>>>> have a section on how to contribute docs,
>>>>>>> samples or tests, since
>>>>>>>
>>>>>>> that
>>>>>>>
>>>>>>> is often a good place to start.
>>>>>>>
>>>>>>> * Provide a sandbox environment where
>>>>>>> contributors can discuss and
>>>>>>>
>>>>>>> test
>>>>>>>
>>>>>>> ideas. For example, an OpenJFX mirror on
>>>>>>> github, potentially
>>>>>>>
>>>>>>> connected
>>>>>>>
>>>>>>> to AdoptOpenJDK.
>>>>>>>
>>>>>>>
>>>>>>> II. Code reviews and API reviews
>>>>>>>
>>>>>>> Code reviews are important to maintain
>>>>>>> high-quality contributions,
>>>>>>>
>>>>>>> but
>>>>>>>
>>>>>>> we recognize that not every type of change
>>>>>>> needs the same level of
>>>>>>> review. Without lowering our standards of
>>>>>>> quality, we want to make it
>>>>>>> easier to get low-impact changes (simple
>>>>>>> bug fixes) accepted.
>>>>>>>
>>>>>>> There are three categories of changes,
>>>>>>> each of which might merit a
>>>>>>> different review standard:
>>>>>>>
>>>>>>> 1. Low-impact bug fixes. These are
>>>>>>> typically isolated bug fixes with
>>>>>>> little or no impact beyond fixing the bug
>>>>>>> in question; included in
>>>>>>>
>>>>>>> this
>>>>>>>
>>>>>>> category are test fixes (including new
>>>>>>> tests) doc fixes, and fixes to
>>>>>>> sample applications (including new
>>>>>>> samples).
>>>>>>>
>>>>>>> 2. Higher impact bug fixes or RFEs. These
>>>>>>> include changes to the
>>>>>>> implementation that potentially have a
>>>>>>> performance or behavioral
>>>>>>>
>>>>>>> impact,
>>>>>>>
>>>>>>> or are otherwise broad in scope. Some
>>>>>>> larger bug fixes will fall into
>>>>>>> this category, as will fixes in high-risk
>>>>>>> areas (e.g., CSS).
>>>>>>>
>>>>>>> 3. New features / API additions. In
>>>>>>> addition to reviewing the
>>>>>>> implementation, we will need a separate
>>>>>>> approval process for the new
>>>>>>>
>>>>>>> API
>>>>>>>
>>>>>>> / feature (such as the CSR, which is what
>>>>>>> we use now, or a similar
>>>>>>> process).
>>>>>>>
>>>>>>> We take compatibility seriously, so
>>>>>>> anything that adds new API needs
>>>>>>>
>>>>>>> to
>>>>>>>
>>>>>>> be done with an eye towards supporting it
>>>>>>> for at least 10 years. We
>>>>>>> don't want to add new public API without
>>>>>>> that level of commitment.
>>>>>>>
>>>>>>> Every
>>>>>>>
>>>>>>> new feature forecloses on alternate future
>>>>>>> features. Significant
>>>>>>>
>>>>>>> effort
>>>>>>>
>>>>>>> must be taken to think about "if we did
>>>>>>> this, what could it interact
>>>>>>> with in the future?" Also, anything with a
>>>>>>> large potential impact on
>>>>>>> performance or behavioral compatibility
>>>>>>> needs to be looked at
>>>>>>>
>>>>>>> carefully.
>>>>>>>
>>>>>>> Put another way, we want to encourage
>>>>>>> thinking about new features or
>>>>>>>
>>>>>>> new
>>>>>>>
>>>>>>> API in terms of a design / stewardship
>>>>>>> process; to think in terms of
>>>>>>> questions like "what's the right thing for
>>>>>>> JavaFX in the next 10+
>>>>>>>
>>>>>>> years"
>>>>>>>
>>>>>>> rather than "here's some code that solves
>>>>>>> my problem, please take
>>>>>>>
>>>>>>> it".
>>>>>>>
>>>>>>> As a stake in the ground, I might suggest
>>>>>>> the following:
>>>>>>>
>>>>>>> * All changes need at least one reviewer
>>>>>>> other than the person making
>>>>>>> the change who can evaluate the change for
>>>>>>> correctness and
>>>>>>>
>>>>>>> consistency.
>>>>>>>
>>>>>>> For simple bug fixes, a single reviewer
>>>>>>> may be sufficient. Of course,
>>>>>>> one of our big challenges in all this is:
>>>>>>> "how do we grow more
>>>>>>> reviewers?", by which I mean "how do we
>>>>>>> facilitate getting
>>>>>>>
>>>>>>> contributors
>>>>>>>
>>>>>>> with enough expertise in a given area to
>>>>>>> eventually be able to
>>>>>>> effectively review contributions from
>>>>>>> others?"
>>>>>>>
>>>>>>> * We need clear criteria for the other two
>>>>>>> categories that balance
>>>>>>> process efficiency with the desire to
>>>>>>> maintain compatibility and
>>>>>>> stability. API changes need to be approved
>>>>>>> by a lead. My thought is
>>>>>>>
>>>>>>> to
>>>>>>>
>>>>>>> combine the last two into a single
>>>>>>> category for purposes of reviewing
>>>>>>> the implementation. Anything that affects
>>>>>>> public API or behavioral
>>>>>>> compatibility will require CSR or similar
>>>>>>> approval, over and above
>>>>>>>
>>>>>>> the
>>>>>>>
>>>>>>> implementation review, which seems
>>>>>>> sufficient.
>>>>>>>
>>>>>>> * I recommend that we formalize the
>>>>>>> concept of reviewers, using the
>>>>>>> OpenJDK Reviewer role for the Project. We
>>>>>>> might also consider if we
>>>>>>>
>>>>>>> want
>>>>>>>
>>>>>>> to make any changes to the criteria used
>>>>>>> by the JDK Project for
>>>>>>>
>>>>>>> becoming
>>>>>>>
>>>>>>> an OpenJFX Project Author, Committer, and
>>>>>>> Reviewer. The OpenJDK
>>>>>>>
>>>>>>> bylaws
>>>>>>>
>>>>>>> allow projects a fair degree of latitude
>>>>>>> to define these criteria, so
>>>>>>>
>>>>>>> we
>>>>>>>
>>>>>>> might consider making some modifications.
>>>>>>> For example, we might make
>>>>>>>
>>>>>>> it
>>>>>>>
>>>>>>> somewhat easier for a Contributor to
>>>>>>> become an Author, or for a
>>>>>>> Committer to become a Reviewer. I have
>>>>>>> some thoughts on this, but
>>>>>>>
>>>>>>> want
>>>>>>>
>>>>>>> to hear from others first.
>>>>>>>
>>>>>>>
>>>>>>> I look forward to feedback on this
>>>>>>> proposal, and hope it will spark a
>>>>>>> productive discussion.
>>>>>>>
>>>>>>> -- Kevin Rushforth, OpenJFX Project Lead
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
More information about the openjfx-dev
mailing list