weso / shaclex

SHACL/ShEx implementation
http://weso.github.io/shaclex
MIT License
76 stars 17 forks source link

Tag the releases and/or produce aggrerate source JAR #44

Open berezovskyi opened 6 years ago

berezovskyi commented 6 years ago

We would like to reuse shaclex in the Eclipse Lyo project. Eclipse requires us to let their IP lawyers to review all the source code of the libraries we use and make sure there is no GPLed or copypasted source code.

I usually upload the source jar I get from maven central for the review. The shaclex source jar I got from bintray has only 2 source files, does not include a license file and does not list its dependencies.

  1. Is it possible to build more complete source jars? The closest I came in googling is here: http://www.scala-sbt.org/0.13/docs/Howto-Package.html
  2. Can you please tag https://github.com/labra/shaclex/commit/ad6d3db15379a1a57085403f39f6016b024f0354 as 0.0.62, please?
  3. Can you confirm that if I want to archive only the subset of the repository tree that contains the source that is shipped in the JARs, I should take /src and /modules directories (excluding src/test subdirectories)?

I know you don't really have to help us out with all these license/tagging things, so I just want to thank you in advance for all your effort!

berezovskyi commented 6 years ago

https://github.com/labra/shaclex/commit/0a038e68e43200e9ae50cce6083e2d22ecb814a9 seems to be 0.0.61

https://github.com/labra/shaclex/commit/009d3fc95250918322040d90c732290711445274 seems to be 0.0.60

https://github.com/labra/shaclex/commit/ed0969ad42193b47636e93c9bf7f75f6c3b3c982 seems to be 0.0.57

labra commented 6 years ago

Thanks for your issue. I would be happy if you can include Shaclex in Eclipse Lyo. The only problem is that I don't know exactly how to do it at this moment.

Answering your questions:

Eclipse requires us to let their IP lawyers to review all the source code of the libraries we use and make sure there is no GPLed or copypasted source code.

Apart of the code that I wrote, the rest of the imported libraries are those that are listed in the build.sbt file:

https://github.com/labra/shaclex/blob/master/build.sbt

The libraries on which Shaclex depends are the following:

I usually upload the source jar I get from maven central for the review. The shaclex source jar I got from bintray has only 2 source files, does not include a license file and does not list its dependencies.

It seems that the packaged file you are looking at is the one that is packaged for the main module called "shaclex" which only contains the "main" method to execute shaclex online. The rest of the functionality is provided by the code in the different modules. Each module has his own folder under the modules folder:

https://github.com/labra/shaclex/tree/master/modules

One possible solution is to just take the source code of each of those modules. It is published in the same bintray with the corresponding name. For example, the code for version 0.0.63 of the shacl module is here:

https://bintray.com/labra/maven/shacl#files/es%2Fweso%2Fshacl_2.12%2F0.0.63

Is it possible to build more complete source jars? The closest I came in googling is here: http://www.scala-sbt.org/0.13/docs/Howto-Package.html

I was looking at it but it doesn't say how to include the sources from the modules. If you know how to do it, let me know.

I understand that what you need is to have a jar with all the source files from all the modules. I know how to create a whole binary jar with all the compiled classes. This is done by the "sbt-native-packager":

http://www.scala-sbt.org/sbt-native-packager/index.html

It seems that there is a universal-src configuration:

http://www.scala-sbt.org/sbt-native-packager/formats/universal.html#configurations

for creating bundles of source.

But I don't know how to use it yet. If you can give it a try, let me know. You can create a Pull request if you want.

Can you please tag ad6d3db as 0.0.62, please?

Done, I have also added tags to the other list that you sent.

One peding thing to do is to automate the process of publishing to bintray and adding a tag so I don't forget in the future.

Can you confirm that if I want to archive only the subset of the repository tree that contains the source that is shipped in the JARs, I should take /src and /modules directories (excluding src/test subdirectories)?

Yes. All the source code of the Shaclex library is contains in the src folder of the root module and in the same folder of all the modules directories.

I will keep this issue open until we are able to generate an aggregated source jar.

labra commented 6 years ago

I asked the question about generating source jar for multi-module projects to stack overflow