Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create a repository for building and distributing binaries #40

Closed
bmarwell opened this issue Apr 14, 2019 · 5 comments
Closed

Create a repository for building and distributing binaries #40

bmarwell opened this issue Apr 14, 2019 · 5 comments
Assignees
Labels
component:maven Changes to the java build process
Milestone

Comments

@bmarwell
Copy link

bmarwell commented Apr 14, 2019

As seen in those repositories:

… we might want to set up a repository consisting of the c++ code and the generated .h file. For now, we'd need to manually copy the generated .h file to the new repository. But that should not be a problem, as the interface rarely changes.

Suggested name: jssc-native.

If we wanted to avoid manual coupling completely, we'd also had to set up yet another repository with the name jssc-native-header, which contained ONLY the the Java file with the native methods, and the generated artifact (jssc-native-header.jar) would contain the compiled class file and the generated header file. This way, this library (jssc) and each artifact from jssc-native would need to depend on the very same version of jssc-native-header, which would help in detecting version and interface collisions.

To have everything built with the same versions (dependencies, plugins, etc.), we even might want to create a jssc-parent repository. The benefit would be that this would remove all the clutter from any other repository mentioned so far.

@bmarwell bmarwell added the component:maven Changes to the java build process label Apr 14, 2019
@bmarwell bmarwell added this to the Release 4.0.0 milestone Apr 14, 2019
@bmarwell bmarwell self-assigned this Apr 14, 2019
@tresf
Copy link

tresf commented Apr 15, 2019

Having the binaries in their own repo to keep the .git folder manageable (albeit adding unnecessary complexity) makes sense. However, moving the native code there doesn't. The JSSC library means nothing without the C++ code.

In regards to the header, we should consider bring that back anyway to remove the maven dependency for contributors. To do this, we can upload a generated file and then add it to .gitignore and manually update it as needed.

https://en.wikipedia.org/wiki/Occam%27s_razor

@bmarwell
Copy link
Author

Oh, thats also possible. The native repo would just be a build repo. Btw, no binaries needed to check in

That just means:
Either create a third repo or use submodules.

@tresf
Copy link

tresf commented Apr 16, 2019

create a third repo

🤦‍♂️

@bmarwell
Copy link
Author

bmarwell commented Apr 18, 2019

Yeah for the java file with only the native methods. The jar would contain both the class file and the header file.
That way, the code in this repository could depend on the header files from a dependency.

The other possibility is to have this repo as submodule for the new repository and create the header file each time we compile the new repository. leaves the question which jar ships the generated header file.

@bmarwell bmarwell modified the milestones: 4.0.0, 5.0.0 Jan 25, 2020
@bmarwell
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:maven Changes to the java build process
Projects
None yet
Development

No branches or pull requests

2 participants