jakartaee / rest

Jakarta RESTful Web Services
Other
353 stars 114 forks source link

Publish TCK 3.1.3 (latest) to maven staging repository #1142

Closed alwin-joseph closed 8 months ago

alwin-joseph commented 1 year ago

The latest EPL licensed REST TCK (3.1.3) is available at https://download.eclipse.org/ee4j/jakartaee-tck/jakartaee10/promoted/epl/restful-ws-tck-3.1.3.zip.

It would be convenient to get this bundle published to a central maven repository (maybe at staging https://jakarta.oss.sonatype.org/content/groups/staging/jakarta/ws/rs/ for now) so the implementations can make use of it for running the tests.

IMHO the upload of tck jar is not recommended as the LICENCE file is within the zip file. Hence the zip file should be uploaded directly.

I have created a Jenkins job at https://ci.eclipse.org/jakartaee-tck/job/10/job/REST_TCK_epl_staging that could be possibly used for the same but it is required to run the job from https://ci.eclipse.org/rest.

Can one of the committers please help publish the latest EPL TCK.

@spericas @jansupol

spericas commented 1 year ago

I can certainly help @alwin-joseph. I fully support the idea of having the TCKs available in Maven Central.

jansupol commented 1 year ago
  1. There can certainly be in the maven central, the ZIP, and the JAR.
  2. For it is not possible to put the ZIP file into maven central with the EFTL (Eclipse rules, did they change?), and only the EPL can be used in the ZIP in the central, and the EPL cannot be used for the vendor implementation to be certified, I do not see much difference between the ZIP and the JAR. The JAR is easier to consume and we can see the jars for other Jakarta projects (JSON-B).
  3. Currently, it seems the Jakarta REST committers do not have privileges to create a new job in the Eclipse CI (at least I do not have it and a couple of other committers do not have it either). @spericas Do you have the right to create a new job in the CI?
alwin-joseph commented 1 year ago
2. For it is not possible to put the ZIP file into maven central with the EFTL (Eclipse rules, did they change?), and only the EPL can be used in the ZIP in the central, and the EPL cannot be used for the vendor implementation to be certified, I do not see much difference between the ZIP and the JAR. The JAR is easier to consume and we can see the jars for other Jakarta projects (JSON-B).

Is it allowed to publish the jar file separately as it does not have the licence file ? I thought not. The jar, licence and docs are bundled together in the zip.

waynebeaton commented 1 year ago

For it is not possible to put the ZIP file into maven central with the EFTL (Eclipse rules, did they change?)

It would be handy if you could cite the rule. There may be some subtlety that I'm missing.

By ZIP file, I assume that you mean the sources.

I may be splitting hairs, but it's not so much a rule imposed by the Eclipse Foundation, as it is that the EFTL applies only to the binary artifact. That is, the sources are specifically not distributed under the EFTL. I can explain how all this works in painful detail if anybody is interested.

I believe that the good folks at Maven Central will agree that it is completely valid to publish the binary artifact under the EFTL, along with a source artifact under the project license.

alwin-joseph commented 1 year ago

@waynebeaton

The latest EFTL TCK bundle (zip file) released at https://download.eclipse.org/jakartaee/restful-ws/3.1/ has below contents. jakarta-restful-ws-tck-3.1.3.zip

  1. Can we upload the jakarta-restful-ws-tck-3.1.3.zip (contains : binary + EFTL License.md + sources jar + docs) to maven ?

  2. Can we upload the jakarta-restful-ws-tck-3.1.3.jar (binary with class files) separately (without any LICENSE) to maven by extracting it from the above zip bundle ? If yes, Can we use this binary jakarta-restful-ws-tck-3.1.3.jar uploaded in maven for the vendor implementation to be certified ?

From your email I already got clarified on the EPL files.

> Can the EPL Licensed TCK archive [4] be published to maven[1] ?
Yes. 

> Can EPL TCK be used for the vendor implementation to be certified ?
No. 
alwin-joseph commented 1 year ago

@waynebeaton

The latest EFTL TCK bundle (zip file) released at https://download.eclipse.org/jakartaee/restful-ws/3.1/ has below contents. jakarta-restful-ws-tck-3.1.3.zip

* LICENSE.md (EFTL)

* jakarta-restful-ws-tck-3.1.3.jar (binary)

* docs/

* jakarta-restful-ws-tck-3.1.3.pom

* jakarta-restful-ws-tck-3.1.3-sources.jar

1. Can we upload the jakarta-restful-ws-tck-3.1.3.zip (contains : binary + EFTL License.md + sources jar + docs) to maven ?

2. Can we upload the jakarta-restful-ws-tck-3.1.3.jar (binary with class files) separately (without any LICENSE) to maven by extracting it from the above zip bundle ?  Can we use this binary jakarta-restful-ws-tck-3.1.3.jar for the vendor implementation to be certified ?

From your email I already got clarified on the EPL files.

> Can the EPL Licensed TCK archive [4] be published to maven[1] ?
Yes. 

> Can EPL TCK be used for the vendor implementation to be certified ?
No. 

@waynebeaton Can you comment on this please. We will wait for the final confirmation on this before we upload any of the TCK files.

cc @ivargrimstad Would you have any comments on the same.

waynebeaton commented 1 year ago

Sorry for the delay.

1. Can we upload the jakarta-restful-ws-tck-3.1.3.zip (contains : binary + EFTL License.md + sources jar + docs) to maven ?

I'm not sure whether or not this makes any sense from a Maven perspective, but if the Maven folks are okay with it, it's okay from an EF processes POV.

2. Can we upload the jakarta-restful-ws-tck-3.1.3.jar (binary with class files) separately (without any LICENSE) to maven by extracting it from the above zip bundle ?  If yes, Can we use this binary jakarta-restful-ws-tck-3.1.3.jar uploaded in maven for the vendor implementation to be certified ?

Why doesn't it contain the license? Put another way... please include the license. Everything that you upload to Maven Central should have a clear indication of the license.

If it's the version of the TCK that was included in the ratification of the Final Specification, and distributed under the terms of the EFTL, then it can be used by a vendor to self certify a compatible implementation.

alwin-joseph commented 1 year ago

Sorry for the delay.

1. Can we upload the jakarta-restful-ws-tck-3.1.3.zip (contains : binary + EFTL License.md + sources jar + docs) to maven ?

I'm not sure whether or not this makes any sense from a Maven perspective, but if the Maven folks are okay with it, it's okay from an EF processes POV.

Thanks!

2. Can we upload the jakarta-restful-ws-tck-3.1.3.jar (binary with class files) separately (without any LICENSE) to maven by extracting it from the above zip bundle ?  If yes, Can we use this binary jakarta-restful-ws-tck-3.1.3.jar uploaded in maven for the vendor implementation to be certified ?

Why doesn't it contain the license? Put another way... please include the license. Everything that you upload to Maven Central should have a clear indication of the license.

We only generate and release the TCK as zip bundle which contains the jar + LICENCE + others. We have never before released the jar alone hence the jar does not have the LICENCE within it.

If it's the version of the TCK that was included in the ratification of the Final Specification, and distributed under the terms of the EFTL, then it can be used by a vendor to self certify a compatible implementation.

Can the LICENCE file exist outside the jar file also, but in the same maven directory as jar ? i.e. Can we upload jakarta-restful-ws-tck-3.1.3.jar and EFTL LICENCE.md in maven folder say for eg. jakarta/ws/rs/jakarta.ws.rs.rest-tck/3.1.3/jakarta-restful-ws-tck-3.1.3.jar and jakarta/ws/rs/jakarta.ws.rs.rest-tck/3.1.3/LICENCE.md ?

alwin-joseph commented 1 year ago

The jakarta-restful-ws-tck-3.1.3.zip was published at https://jakarta.oss.sonatype.org/content/groups/staging/jakarta/ws/rs/jakarta-restful-ws-tck/3.1.3/ using the job https://ci.eclipse.org/rest/view/TCK/job/TCK_EFTL_Maven_staging

We have not considered uploading the jakarta-restful-ws-tck-3.1.3.jar since it does not have the LICENCE file in it.

alwin-joseph commented 1 year ago

Will close the issue if no other comments.

cc @spericas @jansupol @m0mus

mkarg commented 1 year ago
  • The tck jar cannot be uploaded to maven since the license is not present in it ( since the tck jar was earlier generated to be bundled along with documentation and licence files in a zip file ).

Maybe I missed something, but I cannot find a confirmation on this in this thread.

alwin-joseph commented 1 year ago
  • The tck jar cannot be uploaded to maven since the license is not present in it ( since the tck jar was earlier generated to be bundled along with documentation and licence files in a zip file ).

Maybe I missed something, but I cannot find a confirmation on this in this thread.

@waynebeaton did mention:

Why doesn't it contain the license? Put another way... please include the license. Everything that you upload to Maven Central should have a clear indication of the license.

We do not have licence within the jar because the license was planned to be inside the TCK zip bundle only. Only way to put that is to have a new release!

mkarg commented 1 year ago

Why doesn't it contain the license? Put another way... please include the license. Everything that you upload to Maven Central should have a clear indication of the license.

We do not have licence within the jar because the license was planned to be inside the TCK zip bundle only. Only way to put that is to have a new release!

Why not simply putting the LICENSE file into the JAR and upload it using a new patch level version (3.1.3-1). We can publish patch level changes without any formal release process.

spericas commented 1 year ago

We could do a patch release to include the license if that helps.

alwin-joseph commented 1 year ago

Why not simply putting the LICENSE file into the JAR and upload it using a new patch level version (3.1.3-1). We can publish patch level changes without any formal release process.

mkarg commented 1 year ago

@alwin-joseph A patch-level release (i. e. appending -1 to the 3.1.3 version number) simply would replace the "broken" file by a "correct" one and push it on Maven Central, but nothing else. It is intended for cases like this, where we neither add any feature nor fix any bug. Hence, if you want anything more than that, the release process must be followed. But only in that case.

alwin-joseph commented 1 year ago

@alwin-joseph A patch-level release (i. e. appending -1 to the 3.1.3 version number) simply would replace the "broken" file by a "correct" one and push it on Maven Central, but nothing else. It is intended for cases like this, where we neither add any feature nor fix any bug. Hence, if you want anything more than that, the release process must be followed. But only in that case.

As suggested, I created a patch release of the TCK, as version 3.1.3-1 at https://www.eclipse.org/downloads/download.php?file=/ee4j/jakartaee-tck/jakartaee10/staged/eftl/jakarta-restful-ws-tck-3.1.3-1.zip where the jar file (jakarta-restful-ws-tck-3.1.3-1.jar) has the EFTL LICENSE file.

Also I have published the same jar to maven staging at https://jakarta.oss.sonatype.org/content/groups/staging/jakarta/ws/rs/jakarta-restful-ws-tck/3.1.3-1/jakarta-restful-ws-tck-3.1.3-1.jar. Jenkins job https://ci.eclipse.org/rest/job/TCK_JAR_EFTL_Maven_staging/2 was used to publish the same.

Comments are welcome.

rzo1 commented 10 months ago

Any plan for getting this artifact to central? Would be very convinient for inclusion ;-)

jamezp commented 10 months ago

@alwin-joseph Is there a reason it doesn't show up here https://download.eclipse.org/jakartaee/restful-ws/3.1/? I was looking for the sha1 and a more direct link :)

FWIW this passes with RESTEasy and WildFly.

spericas commented 10 months ago

@alwin-joseph ?

alwin-joseph commented 10 months ago

Sure, I will work to publish the TCK jar 3.1.3-1 from staging (https://jakarta.oss.sonatype.org/content/groups/staging/jakarta/ws/rs/jakarta-restful-ws-tck/3.1.3-1/) to maven central.

@alwin-joseph Is there a reason it doesn't show up here https://download.eclipse.org/jakartaee/restful-ws/3.1/? I was looking for the sha1 and a more direct link :)

Hi @mkarg

Can the patch level release (3.1.3-1) be uploaded to https://download.eclipse.org/jakartaee/restful-ws/3.1 ? The only change in comparison to 3.1.3 is that it has the EFTL LICENCE file within the TCK jar also.

cc @ivargrimstad

FWIW this passes with RESTEasy and WildFly.

Yes the 3.1.3-1 TCK is same as 3.1.3 except that the EFTL LICENCE file was added to the jar in 3.1.3-1.

alwin-joseph commented 8 months ago

Sure, I will work to publish the TCK jar 3.1.3-1 from staging (https://jakarta.oss.sonatype.org/content/groups/staging/jakarta/ws/rs/jakarta-restful-ws-tck/3.1.3-1/) to maven central.

The TCK jar 3.1.3-1 was uploaded to maven central at https://mvnrepository.com/artifact/jakarta.ws.rs/jakarta-restful-ws-tck.

Service release 3.1.4 of the TCK will be available ( ref https://github.com/jakartaee/specifications/pull/657). I have asked whether the maven location of the new TCK jar can be updated in https://download.eclipse.org/jakartaee/restful-ws/3.1. https://github.com/jakartaee/specifications/pull/657#issue-1926170954.

jamezp commented 8 months ago

Should this be closed now that 3.1.4 has been released?