[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [microprofile-wg] [External] : Re: : Re: : [Discussion] Context Propagation 1.3 Specification Release Review
|
Nathan,
I'm okay with some type of compromise. I don't hold a controlling
vote and I also can't speak to what other members might think.
My goal is that we inform our users correctly and consistently so
that we aren't later, trying to recover from unmet expectations.
Some type of text that indicates the core of this thread, that is
'likely' to be seen by a prospective user/implementation vendor,
would probably suffice.
I would not be in favor of suggesting that users change the TCKs
-- unless that is explicitly allowed for, in the TCK instructions
and/or documentation. Once this option starts to be available it
becomes hard to keep "oh, just this minor tweak" from happening.
We should try to promote the position that the TCKs as fixed --
with only very explicit, documented exceptions allowed.
My preference would be that EE 8 users stick with 1.2 and EE 9
(and beyond) users use 1.3. I'm not sure if there is already
maintenance that is in 1.3 that a 1.2 user would desire. That
might complicate things.
Thank you for working with me on this question.
Cheers,
-- Ed
On 11/18/2021 7:11 AM, Nathan Rauh
wrote:
> If there is an explicit
statement in
the specification text that says this specification must be used
with any
particular version of Jakarta EE, it didn't change.
This is
correct.
The specification has no statement requiring a particular
Jakarta EE version.
> If an implementer wants to
upgrade
their existing implementation from CP 1.2 to 1.3 -- and edit
their POM.xml
to point to CP 1.3 -- Would that new implementation pass the
TCK?
It depends on
how well the existing implementation is written, whether written
in a modular
fashion that implements only MicroProfile Context Propagation,
versus written
in a tightly coupled manner with unrelated stuff that might have
other
dependencies. If written in a modular fashion, then yes, just
swap
out the binaries underneath and run it against the TCK. The 1.3
TCK
is provided in terms of jakarta package names, so if anyone
wants to run
it with javax package names, they would either need to transform
it first
or just use the identical 1.2 TCK which is already in javax
packages.
I understand
your
argument for wanting a new major version, but this exact
scenario was already
brought forward and decided on for this release and the 1.3
version is
consistent with the decision that was made. Could a compromise
here
be to revisit that discussion for subsequent MicroProfile
releases?
From:
"Ed
Bratt" <ed.bratt@xxxxxxxxxx>
To:
"Microprofile
WG discussions" <microprofile-wg@xxxxxxxxxxx>, "Nathan
Rauh" <nathan.rauh@xxxxxxxxxx>
Date:
11/17/2021
07:44 PM
Subject:
Re:
[External] : Re: [microprofile-wg] : [Discussion] Context
Propagation 1.3
Specification Release Review
Sorry, I wasn't trying to
take a position, one way or another. I'm asking what is
required. It sounds
like you are asserting that the CP spec. is required to run with
elements
of an EE Platform. That's perfectly reasonable.
ZjQcmQRYFpfptBannerStart
This Message Is
From an External Sender
This
message came from outside your organization.
ZjQcmQRYFpfptBannerEnd
Sorry, I wasn't trying to take a
position,
one way or another. I'm asking what is required. It sounds like
you are
asserting that the CP spec. is required to run with elements of
an EE Platform.
That's perfectly reasonable.
In the CP 1.3 spec. document the
code-examples
are all modified from javax to jakarta. The other textual change
is in
"Other Changes" under Release Notes for 1.3, at the end which
says (paraphrasing): the TCK and Code Examples are updated to
use the Jakarta
EE 9 namespace. If there is an explicit statement in the
specification
text that says this specification must be used with any
particular version
of Jakarta EE, it didn't change.
I think we agree, if the TCK is
changed,
that implies the Spec. is changed.
If an implementer wants to upgrade
their
existing implementation from CP 1.2 to 1.3 -- and edit their
POM.xml to
point to CP 1.3 -- Would that new implementation pass the TCK?
If the TCK can support either --
Jakarta
EE 8 (and javax) or Jakarta EE 9 (and jakarta) -- then the
answer to the
previous question could be 'yes.' If the TCK doesn't provide
compatibility
verification for EE 8 then, I think the answer is 'no.'
Perhaps where I'm getting to is: if
the
1.3 TCK can be used to verify compatibility for EITHER Jakarta
EE 8 or
Jakarta EE 9, the minor release increment is appropriate. If the
TCK can
ONLY verify compatibility for EE 9 -- to my way of thinking --
the upgrade
is incompatible since we know that EE 8 (with javax namespace)
is incompatible
with Java 9 (jakarta n.s.).
I understand there are no
substantive
changes to CP. Honestly, it seems easier to me (well, it would
have been
two months ago) to just change the release designation to a
major release
-- rather than update the TCK to support both versions of
Jakarta EE. We
already have a TCK that supports EE 8 -- that's the CP 1.2 TCK.
I've worked
on other Specs. where we decided that, even though there we were
proposing
no incompatible changes, would be dependent on an updated Spec.,
that does
contain incompatible changes -- and we propagated that
incompatible
notion forward declaring a major release.
Thanks,
-- Ed
On 11/17/2021 2:11 PM, Nathan Rauh
wrote:
Ed,
MicroProfile Context Propagation has dependencies on Jakarta EE
only in
that it defines a mechanism for capturing, establishing,
clearing and removing
Jakarta EE context from threads (this includes java:comp
namspace of application
components, JTA transactions, as well as other types, such as
CDI). It
explicitly enumerates the interactions with these and other
types of context
within the Context Propagation API and describes the behaviors
that you
get, all without the Context Propagation API/SPI having any
direct code
dependencies on the corresponding Jakarta EE components. I have
to
disagree with your assertion that the lack of such dependencies
means that
the TCK contains tests that are beyond the scope of the
specification.
The fact that the specification defines interactions/behaviors
with
Jakarta EE components is alone sufficient to justify the TCK
testing with
this same set of Jakarta EE components that the spec defines
interactions
with. The TCK should be testing these things because, as you
stated,
the specification is ALL OF the written documents, binaries, ...
and so
forth. And that makes the interactions that are defined within
those
documents fair game for TCK testing.
From: "Ed
Bratt" <ed.bratt@xxxxxxxxxx>
To: "Microprofile
WG discussions" <microprofile-wg@xxxxxxxxxxx>
Date: 11/17/2021
01:24 PM
Subject: Re:
[microprofile-wg] [External] : [Discussion] Context Propagation
1.3 Specification
Release Review
Sent by: "microprofile-wg"
<microprofile-wg-bounces@xxxxxxxxxxx>
Emily, Thank you for starting a discussion 'side' thread. I
didn't see
that happen before so I didn't realize that was our custom. I
thought there
had been other plan reviews for MicroProfile component
specifications,
but I see that I was mistaken ZjQcmQRYFpfptBannerStart
This Message Is From an External Sender
">This
message came from outside your organization.
ZjQcmQRYFpfptBannerEnd
Emily,
Thank you for starting a discussion 'side' thread. I didn't
see that happen
before so I didn't realize that was our custom.
I thought there had been other plan reviews for MicroProfile
component
specifications, but I see that I was mistaken in that
impression. I would
encourage us to adopt that in future releases but I'm willing
to concede
this is not an issue for MP 5 specifications and I apologize
for raising
it as an concern for CP 1.3.
If the CP Specification truly has no dependencies on the
Jakarta EE components,
I wonder if perhaps the TCK contains tests that are beyond the
scope of
this Specification. I'd ask the development team: Is there an
Assertion
that is traceable to the Specification (text or Java Docs),
tested in the
TCK, that requires a specific Jakarta EE version. If there is
no such assertion,
perhaps the Jakarta EE version elements in the TCK are
incorrect and should
be removed. If the Specification documentation does require a
specific
version of Jakarta EE -- then, this test should remain. This
would be consistent
with David's suggestion, but changing the TCK, at least in my
book -- is
a change to the Specification, to wit ...
I would encourage us to adopt the position that the
Specification is ALL
OF the written document (the Specification document and/or
Java Docs),
the Binary Artifacts (API JARs, etc), AND the TCK. These each
provide important
aspects of the Specification and any change to a component
element, should
be considered a change in the Specification.
In summary, if it is determined the CP 1.3 specification
/does/ require
Jakarta EE 9, I'd encourage us to communicate that
incompatibility to our
users and fellow implementer groups by designating this a
major release,
not a minor release. If EE 9 is not a CP requirement, the
minor version
change is totally appropriate and (probably) the TCK should
omit those
tests.
I apologize for raising this so far into this project program.
Thank you,
-- Ed
On 11/17/2021 4:15 AM, Emily Jiang via microprofile-wg wrote:
I have a suggestion on the voting thread. If there are
comments related
to the voting, I suggest we start a new thread so that the
voting thread
can stay focused with the voting.
I started this discussion thread to follow the discussion on
Context Propagation
1.3 release.
As for MP Context Propagation 1.3, the spec and api are
identical to MP
Context Propagation 1.2. I would say the api and spec produced
in MP Context
Propagation 1.3 will work with either Jakarta EE 8 or Jakarta
EE 9. In
this context, the spec 1.3 is backward compatible with 1.2. In
other words,
if you drop MP Context Propagation 1.3 api jar in your Jakarta
EE 8 runtime,
it works without any problem.
If you want to run the certification, you can use the tck jar
produced
by MP Context Propagation 1.2, and use 1.3 for Jakarta EE 9.
Therefore,
you may not need to transform any jakarta or javax.
Does this address your question, Ed?
p.s For minor vs. major releases for Jakarta EE 9.1 alignment,
we discussed
this topic on one of our live hangouts (6th July). I asked the
minor release
vs. major release question and suggested we do a minor release
for the
specs with only tck dependencies on Jakarta EE. There were no
objections.
Thanks
Emily
On Tue, Nov 16, 2021 at 10:53 PM Emily Jiang <emijiang6@xxxxxxxxxxxxxx>
wrote:
As for plan review, after MicroProfile Working Group was
established in
2020, we started with a release view. We did not put the plan
review in
the process. We can revisit this in 2022. As a matter of fact,
we will
start using the Plan Creation Review for new specs (see here).
We should follow the steps laid out by EFSP 1.3.
As for the minor vs major changes for Context Propagation, as
mentioned
in the release plan, the api jar has no dependencies on javax,
this release
is purely for any runtime that wishes to run its tcks using
jakarta namespace.
I think minor changes make sense.
Therefore, I think the top option as suggested by David makes
sense.
- Keep the minor version change and:
- be ok to accept CCRs from Jakarta EE 8 based impls that
have used bytecode tools to modify the CP 1.3 TCK itself back
to the 'javax'
namespace
Thanks
Emily
On Tue, Nov 16, 2021 at 9:15 PM David Blevins <dblevins@xxxxxxxxxxxxx>
wrote:
On Nov 16, 2021, at 12:38 PM, Ed Bratt <ed.bratt@xxxxxxxxxx>
wrote:
1) Was there an approved plan review for Context Propagation
1.3? (I'm
missing my record of that and apologize if I just lost this.)
Good callout. I think we've missed Plan Reviews in general:
- https://github.com/microprofile/microprofile-wg/labels/Plan%20Review
We definitely need to do those from now on.
2) All the other specifications are making major releases due
to the incompatible
changes required by Jakarta 9.1. While the Context Propagation
API may
not have a direct dependency on Jakarta EE APIs, it seems the
TCKs may.
Is it confirmed this is a minor-release compatible update?
Should a user
running on Jakarta EE 8, expect to be able to upgrade their
implementation
to Context Propagation 1.3 successfully without also upgrading
their Jakarta
EE dependency? Should a vendor anticipate supporting both EE 8
and 9 with
this release?
More good questions. I see that we did update the namespaces
in the
TCK.
I'd be hesitant to establish a rule where major changes in the
TCK need
to result in a major version change. That said, we're not
talking
strictly about changes in the TCK (say moving from Junit to
TestNG) that
do not have an impact on the server itself. The change in the
TCK
does require a change in the server and that creates some
ambiguity in
my mind.
Here are some potential resolutions that seem to make sense to
me:
- Keep the minor version change and:
- be ok to accept CCRs from Jakarta EE 8 based impls that
have used bytecode tools to modify the CP 1.3 TCK itself back
to the 'javax'
namespace OR
- issue our own javax version of the CP 1.3 TCK, which
Jakarta
EE 8 based impls can chose as an alternate to the jakarta
namespace
CP 1.3 TCK
- Update the major version
Any other options people see?
-David
_______________________________________________
microprofile-wg mailing list
microprofile-wg@xxxxxxxxxxx
To change your delivery options, retrieve your password, or
unsubscribe
from this list, visit
https://www.eclipse.org/mailman/listinfo/microprofile-wg
--
Thanks
Emily
--
Thanks
Emily
_______________________________________________
microprofile-wg mailing list
microprofile-wg@xxxxxxxxxxx
To change your delivery options, retrieve your password, or
unsubscribe
from this list, visit
https://www.eclipse.org/mailman/listinfo/microprofile-wg
_______________________________________________
microprofile-wg mailing list
microprofile-wg@xxxxxxxxxxx
To change your delivery options, retrieve your password, or
unsubscribe
from this list, visit
https://www.eclipse.org/mailman/listinfo/microprofile-wg
_______________________________________________
microprofile-wg mailing list
microprofile-wg@xxxxxxxxxxx
To change your delivery options, retrieve your password, or
unsubscribe
from this list, visit
https://www.eclipse.org/mailman/listinfo/microprofile-wg