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 <t...@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 <jonat...@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 <t...@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 <t...@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.rushfo...@oracle.com <mailto:kevin.rushfo...@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.en...@gmail.com <mailto:mike.en...@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
          <nlis...@gmail.com <mailto:nlis...@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.en...@gmail.com <mailto:mike.en...@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
                  <nlis...@gmail.com <mailto:nlis...@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.rushfo...@oracle.com
<mailto:kevin.rushfo...@oracle.com>>
                          To: "openjfx-dev@openjdk.java.net
<mailto:openjfx-dev@openjdk.java.net>"
                          <openjfx-dev@openjdk.java.net
<mailto:openjfx-dev@openjdk.java.net>>
                          Subject: More community participation in
                          JavaFX
                          Message-ID: <5a73a220.7030...@oracle.com
<mailto:5a73a220.7030...@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





Reply via email to