-
Notifications
You must be signed in to change notification settings - Fork 54
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
Copy native libraries to source tree with Maven action executed only on explicit demand and after a test phase #153
Conversation
Thanks. My opinion/vote is that we keep our existing behavior and simply add the natives to the The reason I prefer to keep the binary there by default is because it encourages forks to commit the natives for others to use. I realize this may seem to contradict the fact that we don't trust 3rd party libraries, but these aren't mutually exclusive. For example, if someone wants to fork and add Solaris support back in since we deliberately removed it #149, there's absolutely no guesswork as to where the native library goes. I understand the philosophy that "polluting the source tree" is a bad thing, but these are resources -- not source -- that belong in the source tree. There were arguments to create separate repositories for these binaries, but in my opinion this really alienates contributions by "rube-goldberg-ing" everyone away with process and abstraction. In regards to making the copy operation dependant on successful testing, this re-introduces a catch-22 that we encountered in #151 (specifically the "bootpath" test), so if we do this, we should adjust the
|
Asking contributors to commit ignored files is a bit of guesswork on its own, right? I know fellow programmers who'd get stuck at this task ;). Note in a contribution guide telling that all is required to commit updated lib version is to add Also, if we choose the .gitignore way - we must be careful not to break release pipeline, without even noticing.
That's not true anymore - or at least I don't see how. The tests are executed against natives in Copying libs to src now has no other purpose than having them in place for subsequent git commit, but may introduce unforseen consequences. For example, if you decide to skip c compilation and revert all your source files to clean state, you may not be aware that despite running |
e118815
to
1feed16
Compare
Re: Catch22, I incorrectly assumed we that we were testing against the src copy. Please disregard. Re: Re: |
Ooops... For automated updates (i.e. actions), we'll need something in place, edited the above. |
Looks good. Clean and intuitive, just a minor rewording in a comment. |
Co-authored-by: Tres Finocchiaro <[email protected]>
Following on the discussion #151 (comment) I suggest making maven the party responsible for copying newly compiled binaries to source tree from where they can be commited to git. It can be done so
src/main/resources-precompiled/natives
are updated only after maven is done testing. Additionally, I put the step in separate profile, so without expliclty specifying it, no src modification will take place.