Maybe the problem is with how we are "packaging" the
TCK content.
The TCK is the only Spec. artifact we create a SHA
Sum for. The archive we use for the TCK includes the
documentation which is generally not part of a typical
Java binary JAR (i.e. at Maven Central, there's
typically a Binary JAR, a Source JAR, a Java Doc JAR
and maybe others -- but they're all separate).
We currently bundle all the TCK component elements
into a single archive -- a ZIP archive. We treat that
as a single deliverable. At the Spec. generation end,
that makes production of that archive a multi-step
process. Contrast that with the publication of the
API, binary, and Java Doc JARs with the code-based
resources can directly be published to, Maven central
(or another repository service if the vendor liked).
So, the normative code-based Spec. artifacts can be
easily pulled into an Mvn script but the normative TCK
elements cannot.
I'd like the TCKs to be accessible via maven because
I think that improves the access flow for developer
users. I understand that developers typically will
need additional details to understand how to use these
artifacts but, once they have that worked out -- I'd
like to improve how these can be distributed more
readily, using common build tools (I typically think
mvn, but others also exist). I don't think using the
TCK artifacts are all that much different from using a
binary API jar file -- you have to know how to use the
JAR before you pull it in.
In the context of the process we have today -- a
binary (run-time) TCK JAR cannot be pushed to Maven
central as a normative artifact because we track the
zip bundle with the SHA SUM and Signature hash. To
"properly" certify an implementation, even if we
pushed the binary elements of the TCK to Maven, users
would still need to pull down the normative copy,
unpack and "install" those artifacts, then
run/validate their implementation with that binary.
(Or, just attest that is what they did. I'd assert
that we don't want a process that promotes 'looking
the other way.')
So, I thought, if perhaps we could just create a JAR
file that had the same content as what is currently in
the ZIP -- thinking that maybe we might simplify that
process by one step -- but I'm now seeing that
probably isn't going to 'just work.' So just changing
the extension name from .zip to .jar won't cut it.
I want to make it possible for developers to pull
normative TCK binaries down from Maven (or whatever
their chosen repository happens to be). I want the
artifacts that are pushed to the Jakarta EE Spec.
download to exactly match what can be accessed from
Maven -- or at least the run-time parts that are
actually used at build-time.
Today, before the Spec. is finally approved, I can
pre-test my implementation using the pre-final TCK
.zip files. Once the Spec. is finalized, that zip is
exactly copied to the Jakarta EE Specification
Download folder and the SHA-SUM and Signature hash are
generated (the SHA sum won't change because the binary
is identical and the signature hash works correctly
too). So, I don't need to re-run the TCK because it's
unchanged (in any scenario where a change might have
been needed, the SHA Sum would not be the same and I
would need to re-verify the compatibility of my
implementation -- even if the change was to a
non-binary element of that archive.)
I was hoping we could figure this out for EE 10, but
maybe it's just too late to consider making changes to
allow for this that rapidly.
Does this make sense?
-- Ed
On 12/8/2021 11:36 AM,
Scott Stark wrote:
There is no access to a user guide
(required) and any example CI setup that is often
included in a full TCK dist. Users certainly should
have the ability to directly access the components
directly via a repo, but I don't see how that can be
the only mechanism when it comes to ratifying the
associated spec. Am I missing the context in which
you are asking about this?
Thanks Scott.
This seems to suggest that users should
NOT have access directly to the normative
TCK artifacts -- That they should pull the
comprehensive archive, unpack and digest
it, THEN, utilize the contents. Is that a
fair re-state?
We include GAVs for the API jars and
JavaDocs. Why would we want to enforce
force additional overhead on the TCKs
(both on construction of the archive and
on consumption)? (Or, what it is about TCK
usage that I'm minimizing.)
-- Ed
On 12/8/2021
8:02 AM, Scott Stark wrote:
For the final submission I
still think there needs to be a single
zip that is comprehensive. The use of
jar artifacts in a repo facilitates the
ability to easily integrate TCK testing
into CI environments, but it is a bad
starting point to running the TCKs. Only
after you have gone through the full zip
distribution and associated user
guide/example do you start wanting the
individual artifacts.
Hi,
As we move the TCK
responsibilities to component
projects and, as we
continue migrating away from the
legacy TCK build tools, to MVN
or other
build tooling, I wonder if we
should hold on to the
requirement that we
only accept .zip file bundles
for normative TCK submissions.
Would the committee be
interested in relaxing the
formal requirements to
allow either <name>.zip OR
<name>.jar? If we did
this, projects would
not need to create multiple
bundles and we could start to
use Maven
Central or other types of
distribution mechanisms more
directly.
I believe all other requirements
(SHA Sums, contents, etc.) can
be
maintained just as directly with
either file format.
Comments?
I don't know that we could adopt
this before the close of the
year, but
... perhaps this is simple
enough to take up without
extensive discussion.
Thanks,
-- Ed
_______________________________________________
jakarta.ee-spec.committee
mailing list
jakarta.ee-spec.committee@xxxxxxxxxxx
To unsubscribe from this list,
visit
https://www.eclipse.org/mailman/listinfo/jakarta.ee-spec.committee
_______________________________________________
jakarta.ee-spec.committee mailing list
jakarta.ee-spec.committee@xxxxxxxxxxx
To unsubscribe from this list, visit https://urldefense.com/v3/__https://www.eclipse.org/mailman/listinfo/jakarta.ee-spec.committee__;!!ACWV5N9M2RV99hQ!a7DQDPqHeJq3Q0JbFqLFGnY9MKejqQtnohN_jFIYScnrOBo80YCr4N58Bxi9VNM$