More community participation in JavaFX

Hervé Girod herve.girod at gmail.com
Wed Feb 7 10:47:00 UTC 2018


I have coded such a framework in one of my open source projects. I can extract this code and setup a github project for it if people are interested.

Hervé 

Sent from my iPhone

> On Feb 7, 2018, at 10:52, John-Val Rose <johnvalrose at gmail.com> 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