Electrostatics / apbs-pdb2pqr

APBS - software for biomolecular electrostatics and solvation
http://www.poissonboltzmann.org/
128 stars 62 forks source link

Remove binaries from Git repo #601

Closed sobolevnrm closed 4 years ago

sobolevnrm commented 4 years ago

GitHub does not like binaries in its repos. We should consider replacing the mesh-specific tools in https://github.com/Electrostatics/apbs-pdb2pqr/tree/master/apbs/externals with binary releases.

intendo commented 4 years ago

I asked @lwwilson1 to see if he could make a "Release" of the mesh_routines repository that we could like to instead of the binaries. I think we can use CMake and FetchContent commands to get the versions we want.

intendo commented 4 years ago

I modified the CMakeLists.txt to use the file DOWNLOAD rather than use the git submodule for the mesh_routines. This seems to work and if @lwwilson1 changes the mesh_routines repo to a release with assets, we can point the file DOWNLOAD to those assets directly.

lwwilson1 commented 4 years ago

I made a release that moved the executables to release assets. I've messed around a bit and the following pattern should work for getting them. There might be a smarter/ more canonical way, but this seems to do the job:

include(FetchContent)

FetchContent_Declare( mesh_routines URL https://github.com/lwwilson1/mesh_routines/releases/download/v1.0/executables.tar.gz )

The unzipped executables are then located in /_deps/mesh_routines-src, with the same directory structure as before.

intendo commented 4 years ago

Rather than download all the executables every time a build is done, it is easier/faster to issue a single command for downloading the msms or NanoShaper binary for the current build like:

file(DOWNLOAD ${FULL_URL_PATH} "${EXECUTABLE_OUTPUT_PATH}/${MSMS_RAW_BINARY_NAME}"

Can you add each of the individual executables as assets?

lwwilson1 commented 4 years ago

I've made a new release v1.5 that has each of the executables added separately. I've kept the names the same on all the executables as before, except where a name conflict occurred (NanoShaper to NanoShaper_OSX and NanoShaper_Linux64).

Looking through the old CMake I also noticed only the win32 executables were ever copied for Windows, so I've only included those. I don't have access to a windows computer to test (last time was probably about 4 years ago at PNNL, actually) but I vaguely recall there being some reason why we only ended up ever grabbing the win32 executable.

Sometime in the future (not really a timetable for this at the moment), I'd like to directly integrate NanoShaper into TABi-PB so none of this would even be necessary, but if I recall correctly PB-SAM also makes use of the msms executable, and possibly the NanoShaper one.

intendo commented 4 years ago

This works great and made the CMakeLists.txt file so much easier to read and maintain. Thanks!

sobolevnrm commented 4 years ago

Excellent! Should we close the issue or are there other binaries to address?

Thanks!

On Mon, Jun 8, 2020 at 9:37 AM Darren Curtis notifications@github.com wrote:

This works great and made the CMakeLists.txt file so much easier to read and maintain. Thanks!

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Electrostatics/apbs-pdb2pqr/issues/601#issuecomment-640739826, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAOX7WG4BCXK4YWLFNELJE3RVUHS3ANCNFSM4NPG2O4A .

intendo commented 4 years ago

There are no other binaries or warnings from Github anymore. This issue was already closed. We just made it better.

sobolevnrm commented 4 years ago

Nice -- thanks!

On Mon, Jun 8, 2020 at 9:56 PM Darren Curtis notifications@github.com wrote:

There are no other binaries or warnings from Github anymore. This issue was already closed. We just made it better.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Electrostatics/apbs-pdb2pqr/issues/601#issuecomment-641027839, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAOX7WBUHOM7J4QM2YQYDWDRVW6INANCNFSM4NPG2O4A .