No Place for JEPs
Kevin Rushforth
kevin.rushforth at oracle.com
Tue Aug 20 22:41:13 UTC 2024
As Andy mentioned, a JEP has value as documentation beyond the moment a
feature is implemented. It describes a a medium to large feature, and is
intended to be complete and accurate at the time that feature is
delivered. In the JDK, each release has a list of JEPs that describe the
feature set of that release. For example, here is the list for the
soon-to-be-released JDK 23:
https://openjdk.org/projects/jdk/23/#Features
Typically, a feature JEP is not updated after the release in which the
feature was delivered. If there are further refinements to a feature,
that's fine; it doesn't invalidate the original JEP. Subsequent changes
might or might not need a new JEP, depending on how substantial the change.
So the question is: Where should we store and track JavaFX JEPs? I think
we have three reasonable alternatives, with a couple variations of the
second.
Alternative 1: In JBS, using the JEP issue type.
This is where the JDK stores their JEPs.
Pros:
-- Uses the same mechanisms as the JDK does
-- JEP issue can be easily linked to the Enhancement that will implement it.
Cons:
-- Cumbersome to evolve, review, and track changes
-- JIRA supports a more limited markdown than GitHub
-- Because we aren't bundled, all JEPs would remain in Draft mode, we
would need other means (maybe labels) to indicate when a JEP was
considered to be final
Alternative 2: In a git repository, using a markdown file
JEPs would be reviewed and eventually integrated in an openjdk
repository. There are two variations we could consider:
A. In the mainline openjdk/jfx repo (e.g., under "doc-files/jeps")
B. In a separate "jfx-docs" repo
In either case, we would need to create a separate JBS issue, with a
convention that would allow is to identify it as a JEP doc, to integrate
the JEP markdown file, once it was "accepted". We would integrate that
with a separate PR ahead of the implementation of that JEP; for
variation A it would be possible for the JEP to accompany the
implementation of the JEP in the same PR that implements it, but I don't
think that's a best practice (and I'd still want a separate "JEP doc"
issue). Having a separate repo (variation B) more closely tracks the
idea of JEPs being a separate deliverable, but it's a little more
overhead, and is perhaps less flexible.
Pros:
-- Easier to evolve, review and track changes: Use a PR to review the JEP
-- Richer markdown
Cons:
-- Divergent with what the JDK does
-- A PR in the same repo for the JEP and the feature itself could be
confusing (need to develop some "best practices")
Alternative 3: On a Wiki page
We could use a set of pages in the OpenJDK Wiki, one per JEP plus an
index page to organize them.
Pros:
-- A little easier to edit than a JBS issue, a little easier to track
changes (Wiki history diffs are at least somewhat easier to read than
raw JIRA diffs)
Cons:
-- Harder to organize
-- Yet another editing tool to learn
-- Harder to track the state without some conventions to cross-link the
JEP page in the Wiki to the JBS enhancement
-- Harder to review than an MD file (no inline comments, although that's
true of JBS as well)
Regardless of which alternative we choose, we will want to list the JEPs
for each release on a Wiki page, along with the JEPs that are in
progress. We should consider highlighting them in the release notes.
Comments?
-- Kevin
On 8/9/2024 8:28 AM, Andy Goryachev wrote:
>
> Michael:
>
> Yes, by design. I think the JEPs still have value even after the
> actual changes were made. Also, nothing prevents us from creating an
> index.html file that lists the JEPs in chronological order and
> mentions the state of the implemented features and whether and how the
> actual implementation differs from the JEP.
>
> Sorry, I did not quite understand what you mean by "documentation
> colocated with the code" - isn't that what I am proposing?
>
> At the same time, I wanted to consider other possibilities, such as
>
> - wikis (same drawbacks as github PRs, even harder to review / keep
> track of changes / lack of co-location)
>
> - separate doc repo (not co-located with the code)
>
> - ??
>
> What do you think?
>
> -andy
>
> *From: *openjfx-dev <openjfx-dev-retn at openjdk.org> on behalf of
> Michael Strauß <michaelstrau2 at gmail.com>
> *Date: *Friday, August 9, 2024 at 07:31
> *To: *
> *Cc: *openjfx-dev at openjdk.org <openjfx-dev at openjdk.org>
> *Subject: *Re: No Place for JEPs
>
> Hi Andy,
>
> wouldn't these documents risk getting outdated when the codebase is
> evolved? JEPs seem to be most relevant at the time when a feature is
> proposed. I think I'd rather have documentation colocated with the
> code itself, this makes it easier to keep the documentation in sync
> with the actual implementation.
>
>
> On Wed, Aug 7, 2024 at 8:46 PM Andy Goryachev
> <andy.goryachev at oracle.com> wrote:
> >
> > Dear fellow developers:
> >
> >
> >
> > We often create JEPs and JEP-formatted documents as we propose and
> develop new features. These help us during the review process and I
> am sure are of some benefit for application developers as they try to
> learn the new functionality in depth. Presently, we've been creating
> these files in personal repositories, or presented as descriptions for
> pull requests, see for example [0].
> >
> >
> >
> > I think there is a value in making these documents a part of the
> main repository, maybe under /doc-files. Doing so would help with the
> review process as the markdown files are both human-readable and
> easily diff'ed. Also, I think it might be more convenient to keep
> them in the same repo as the code, as opposed to the some personal
> repositories or wikis.
> >
> >
> >
> > What do you think?
> >
> >
> >
> > -andy
> >
> >
> >
> >
> >
> > References
> >
> >
> >
> > [0] https://github.com/openjdk/jfx/pull/1522
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20240820/af18c9f8/attachment-0001.htm>
More information about the openjfx-dev
mailing list