Closed m0mus closed 5 years ago
The "Generate Stand-alone TCK test results" step isn't possible on this project. This is an API project, it has no implementation code that a TCK could run against.
Same is true for "Submit tests for ballot", this is an API only project.
It is possible and it's been done by other projects. Please read a how-to guide. If you need help creating a Jenkins job, let me know.
@m0mus I've been looking ...
So far, Servlet is the only other project in the list of projects for Jakarta that is similar to WebSocket. (Servlet also has not done the TCK pieces).
The 2nd level Guide assumes you can execute the TCK against your project's code which has an implementation. I think the 2 TCK requirements on WebSocket are meant for the Tyrus project ( https://github.com/eclipse-ee4j/tyrus ), which is the old pre-Jakarta reference implementation for WebSocket.
If we hook up the Jakarta WebSocket API project to the existing compiled websocket-tck.jar (aka the "Stand-alone TCK" in the 2nd level Guide) to this project, it wouldn't produce any test results as it would fundamentally fail to even start/execute due to lack of implementation. (if this is the path, as indicated on the second level Guide, then there's no solution and we would need an exception for the TCK pieces)
If we setup this WebSocket API project to build against all of Glassfish (Not the "Stand-alone TCK" as indicated in the 2nd level Guide, but really the entire TCK ecosystem, as indicated by the 3rd level Guide), then we are not testing this API only project, we are testing the Tyrus project. (If this is the path, then this project and Tyrus will have exactly the same jenkins job, build, and test results, with no difference in git url, branch, etc...)
If we look at what the websocket TCK tests are doing in Glassfish, it tests the existence of the API (provided by Tyrus), and then Tyrus specific integration behaviors (not part of the WebSocket spec), and then Tyrus specific CDI behaviors (which also has never been part of the WebSocket spec, those are part of the CDI spec).
Is this really the goal of the TCK sections of the various levels of the Guide? Not to test or prove the TCK, or the individual Jakarta project artifacts, but to test Glassfish against the entirety of the Jakarta ecosystem? Certainly seems that way.
@joakime it currently needs to be tested against a compatible OSS implementation. At the moment that's GF indeed, but could (should) be others in the future.
There are other specs with no dependencies on anything else in Jakarta, like Expression Language, Activation, Bean Validation, Web Services Metadata etc.
The way to test them is to replace the API jar in GF with your jar, then run the TCK. I've done this for Authentication, Authorization, Security, Expression Language and Servlet. It's quite doable, but you can ask for help on the list as not everything might be clear initially (easiest is to start from copying a job/script such as Servlet's)
I asked @senivam to help setting up TCK jobs for Websocket.
@joakime can you please update the tasks on the description so it reflects the current state. As I understand TCK jobs are created and text files are also changed. Is it true?
@m0mus TCK jobs were created, no test results in a static location (per Guide level 2, and discussion on various mailing lists), unless you allow for jenkins results to be that static location? Text files are existing PRs, unmerged, awaiting reviews.
Reference to existing PRs for text updates...
@joakime Thanks for you update. I approved both PRs above. You can merge them.
@joakime You need to make a staging release first, after that run TCK jobs @senivam created using that jar. You need to take summary.txt file produced by this job and copy it to websocket web site as @bshannon is suggesting.
New PR's submitted for version upgrade to 1.1.2
@joakime Both merged. Please carry on with a staging release.
@senivam that's only 1 of the 3 artifacts.
Of the 2 artifacts with packaging jar and bundle, the javadocs do not contain the "Eclipse Foundation Specification License" per the Guide. That stage should be dropped.
@joakime https://oss.sonatype.org/content/groups/staging/jakarta/websocket/jakarta.websocket-api/1.1.2/ https://oss.sonatype.org/content/groups/staging/jakarta/websocket/jakarta.websocket-all/1.1.2/ https://oss.sonatype.org/content/groups/staging/jakarta/websocket/jakarta.websocket-client-api/1.1.2/
I'm aware of that.
The URLs you have provided are part of the global "staging" group, meaning that the actual content is part of a closed staging repository somewhere else (a different URL).
Of the 2 artifacts with packaging jar and bundle, the javadocs do not contain the "Eclipse Foundation Specification License" per the Guide. That stage should be dropped.
$ jar -tvf jakarta.websocket-api-1.1.2-javadoc.jar | grep -i license
$ jar -tvf jakarta.websocket-api-1.1.2-javadoc.jar | grep -i eclipse
$ jar -tvf jakarta.websocket-api-1.1.2-javadoc.jar | grep -i efsl
$ jar -tvf jakarta.websocket-client-api-1.1.2-javadoc.jar | grep -i license
$ jar -tvf jakarta.websocket-client-api-1.1.2-javadoc.jar | grep -i eclipse
$ jar -tvf jakarta.websocket-client-api-1.1.2-javadoc.jar | grep -i efsl
$
No results, the EFSL license is supposed to be included in the Javadoc, per the Guide at https://wiki.eclipse.org/How_to_Prepare_API_Projects_for_the_Jakarta_EE_8_Release
The copyright is present on the individual generated javadoc as ...
<p class="legalCopy"><small>Copyright © 2017-2019 <a href="https://www.eclipse.org">Eclipse Foundation</a>. All Rights Reserved.</small></p>
But that's the Copyright, not the License as indicated by the Guide.
@joakime It's good that you found it! Can you fix it please and re-stage the artifacts?
I've been attempting to verify the asc / sha1 / md5 on the staged repo, and I came across a slow (took about 3 minutes to obtain the key), but ultimately successful, gpg verify of the artifacts.
$ gpg --auto-key-locate keyserver --keyserver pgp.mit.edu --keyserver-options auto-key-retrieve --verify jakarta.websocket-api-1.1.2.jar.asc jakarta.websocket-api-1.1.2.jar
gpg: Signature made Tue 30 Jul 2019 05:18:05 AM CDT
gpg: using RSA key F674EBA7B6EC777BDB58942DE0E92C40A43A012A
gpg: requesting key E0E92C40A43A012A from hkp server pgp.mit.edu
gpg: key 718E28A09E67016B: 1 signature not checked due to a missing key
gpg: key 718E28A09E67016B: public key "Eclipse Project for WebSocket <websocket-dev@eclipse.org>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1
gpg: Good signature from "Eclipse Project for WebSocket <websocket-dev@eclipse.org>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: FFA9 5B1D D22F E6D1 9118 9AFA 718E 28A0 9E67 016B
Subkey fingerprint: F674 EBA7 B6EC 777B DB58 942D E0E9 2C40 A43A 012A
Do we have a public list of the valid keys somewhere? How about the web of trust and cross signing by the eclipse foundation? (which I would have expected)
@joakime It's good that you found it!
@m0mus a sampling of 5 other projects on the jakarta list of "done" for "Jakarta EE 8 Release" show inconsistent results for the license in the javadoc artifact. (was looking for how other projects did this, as raw resources into a javadoc jar isn't a typically supported features of the maven-javadoc-plugin
, well, sort of, but you'd have to setup a resource dependency for the maven-javadoc-plugin
to use via it's <resourcesArtifacts>
configuration.)
Is this requirement for license files in the javadoc artifact even being tested for during your reviews? (the requirement being listed in the Guide we've been tasked with following)
Example of javadoc artifacts with no license files in them.
However, I did find one, with a odd location, and filename for the license file.
$ jar -tvf jakarta.servlet-api-4.0.3-javadoc.jar | grep -Ei "(license|eclipse|efsl)"
$ jar -tvf jakarta.security.enterprise-api-1.0.2-javadoc.jar | grep -Ei "(license|eclipse|efsl)"
$ jar -tvf jakarta.inject-api-1.0-javadoc.jar | grep -Ei "(license|eclipse|efsl)"
$ jar -tvf jakarta.jms-api-2.0.3-javadoc.jar | grep -Ei "(license|eclipse|efsl)"
$ jar -tvf jakarta.json-api-1.1.6-javadoc.jar | grep -Ei "(license|eclipse|efsl)"
3250 Fri Jul 19 19:35:18 CDT 2019 doc-files/speclicense.html
$
The typical process (for all other eclipse projects) has to been to put the LICENSE.html
or LICENSE.md
or LICENSE.txt
into the /META-INF/
directory within the jar.
But I haven't seen that setup for javadoc jars in the other Jakarta projects.
Note: If we look closely at the produced jakarta.<name>-<version>-sources.jar
artifacts too, we see an inconsistent LICENSE behavior.
json-api is doing the right thing.
The license for the javadocs submitted with the specification is different than the license of the project that produces the javadocs. The former is the specliense.html file; the latter is the LICENSE file.
@bshannon I've submitted a email to jakarta.ee-spec.committee@eclipse.org and jakartaee-spec-project-leads@eclipse.org to seek help.
I've also (accidentally) found that many projects are missing the license file in their "sources" classified jars too. (noted in that email)
@joakime Good question. It's definitely shouldn't be like this. I guess @eclipsewebmaster can answer it. Maybe it's better to submit an Eclipse BugZilla issue with this question.
Opened PR's for the javadoc license concern ...
I've dropped the existing (bad) websocket 1.1.2 stage repository at oss.sonatype.org.
The (bad) 1.1.2-RELEASE
tag has been deleted from this git repository as well.
@joakime could you please delete branch 1.1.2 as well?
Staging release of 1.1.2 is available at https://oss.sonatype.org/content/repositories/jakartawebsocket-1007
I've opened https://bugs.eclipse.org/bugs/show_bug.cgi?id=549695 to get access to publish the TCK.
So that I can have https://eclipse-ee4j.github.io/websocket/TCK-Results.html working for this issue.
@joakime I see that gh-pages
branch is there.
The gh-pages
branch was created a few days ago, in prep for the bugzilla.
The bugzilla itself was worked, verified, and closed a few hours ago.
I'm working on preparing the gh-pages
branch for proper https://eclipse-ee4j.github.io/websocket-api/ (and TCK results) today.
Once that's done the jakartaee/specifications
PR can be created.
The bugzilla itself was worked, verified, and closed a few hours ago.
That sounds really great! Do you have the URL to that bugzilla request?
The bugzilla itself was worked, verified, and closed a few hours ago.
That sounds really great! Do you have the URL to that bugzilla request?
Same one that was mentioned in prior comment on this issue. https://bugs.eclipse.org/bugs/show_bug.cgi?id=549695
Same one that was mentioned in prior comment on this issue. https://bugs.eclipse.org/bugs/show_bug.cgi?id=549695
Ah, that's "access to publish the TCK" of course. Thanks! I'll do the same for the projects I'm involved with then.
Main project website is now available at ...
https://eclipse-ee4j.github.io/websocket-api/
TCK Results are now present at ...
https://eclipse-ee4j.github.io/websocket-api/TCK-Results.html
I'll submit the specification PRs shortly
@joakime Great job!
@joakime Just came to mind mind. TCK results are actually have to be published on the CI web site. It means Tyrus, not WebSocket API.
@joakime Just came to mind mind. TCK results are actually have to be published on the CI web site. It means Tyrus, not WebSocket API.
Frustration level is high with me right now.
This TCK subject was brought up earlier in this same issue. (17 days ago, on July 16th). (API vs Impl, Tyrus should be the TCK results holder, etc..)
Why is this changing? After insisting it be done here? (by 3 different people)
It's difficult to follow a Guide that has less and less relevance and accuracy. It's difficult to follow other projects leads when they are apparently doing things wrong too (TCK results, Javadoc artifact contents, generated Javadoc copyright and licensing, Certification process, specification PR process, documentation requirements, etc) I don't see how Jakarta EE 8 will reach it's target date when the goal posts for "done" keep moving at the whim of individuals. Every project in the "Done" column at https://github.com/orgs/eclipse-ee4j/projects/15 is no longer "Done" according to these same individuals (they all have to redo Javadoc at a minimum, which means a new release, or a dropped and re-staged release, with updated website documentation for new apidocs, with new TCK run, and new specifications PR created for each. That's 4 of the 6 checkboxes unchecked and subject to re-do).
I cannot follow the Guide I've been repeatedly told to follow as it is inaccurate, vague, missing detail, and often misleading. Is there a single project, that is "Done", and is API only (no impl), and that has no dependencies on other parts of Jakarta, that can be used as a example of how things are supposed to be done? (this was a question I asked on July 22)
@joakime I agree everything you said. The rules are keep changing. It's the first release driven by JESP, so there is a lot of clearance. You are not alone. I also committed TCK results to jakartaee/specifications repository first and to jsonb-api after that before making a final (?) move to Yasson.
Are you subscribed to jakartaee-spec-project-leads mailing list? There was one more change requested today -> changing copyrights to Eclipse Foundation.
Are you subscribed to jakartaee-spec-project-leads mailing list? There was one more change requested today -> changing copyrights to Eclipse Foundation.
Yes, I am subscribed. Have been, for a while now. I even mentioned that javadoc change ("Every project in the Done column ...") in my frustration message.
[Fri Aug 2 at 2:29pm CDT] / Updating tasks after conversation with @dblevins
What's Left ...
Restage Tasks:
EE4J_8
branchEE4J_8
branchAs a spec lead I must do these tasks:
eclipse-websocket-tck-1.1.0.zip
satisfies TCK requirements at https://github.com/jakartaee/specification-committee/blob/master/process.adoc#materials-for-a-tck-release/spec/src/main/asciidoc/license-efsl.adoc
for new copyright headers./spec/
tree (the boilerplate spec) - ensure versions are NOT SNAPSHOT / NOT DRAFT./websocket/_index.md
- general index - see jakartaee/specifications#63/websocket/1.1/_index.md
- version specific index/websocket/1.1/websocket-spec-1.1.pdf
/websocket/1.1/websocket-spec-1.1.html
/websocket/1.1/apidocs/
<websocket.version>
of the root /pom.xml
to 1.1.2As a compatible implementation I must do these tasks:
websocket-tck-1.1.0-summary.txt
as a PR to https://github.com/eclipse-ee4j/glassfish - versioned with glassfish Optional / Recommended:
gh-pages
branch in /docs/api/1.1.2/
directorygh-pages
branch in this github repository /docs/spec/1.1.2/
directorygh-pages
branch in this github repository /docs/spec/1.1.2/
directoryOpened PR #307 for Copyright updates to javadoc and /spec/src/main/asciidoc/license-efsl.adoc
based on discussion in mailing lists.
@m0mus and @senivam I've been reviewing the TCK requirements on ...
- [ ] Verify
eclipse-websocket-tck-1.1.0.zip
satisfies TCK requirements at https://github.com/jakartaee/specification-committee/blob/master/process.adoc#materials-for-a-tck-release
... but the TCK we are using for this websocket-api project ...
Doesn't seem to comply with the TCK requirements listed in
How do we fix its missing documentation requirements? This project doesn't have a TCK requirement, as that's the https://github.com/eclipse-ee4j/jakartaee-tck project. It's also unclear how to satisfy the 2 TCK binary requirements outlined above. (a public one on maven central with one license, and a signed one from download.eclipse.org with a different license)
New WebSocket 1.1.2 stage is available at https://oss.sonatype.org/content/repositories/jakartawebsocket-1008/ The various LICENSE files and links all seem to be in place.
@senivam can you make TCK summary for this jar? https://oss.sonatype.org/content/groups/staging/jakarta/websocket/jakarta.websocket-api/1.1.2/
@joakime I am not a right person to help with TCK. I guess @bshannon or @edbratt can help. I am recommending posting your questions to jakartaee-tck-dev@eclipse.org mailing list for greater visibility and higher chance to get help.
summary for TCK: summary.txt
@joakime on the TCK gaps, best thing for us to do is fix it post Jakarta EE 8 release.
Can you please file a Draft PR to the specifications repository as outlined here:
That PR is where we're supposed to be working through the final issues like this. We need to get that PR and move this conversation over there.
Opened Specifications PRs
Tasks
See here for detailed instructions.