SNEWS2 / snewpy

A Python package for working with supernova neutrinos
https://snewpy.readthedocs.io
BSD 3-Clause "New" or "Revised" License
26 stars 19 forks source link

Bundle SNOwGLoBES data files with snewpy releases? #208

Closed JostMigenda closed 1 year ago

JostMigenda commented 1 year ago

As @sybenzvi suggested in #26, it would be nice to bundle SNOwGLoBES data files (detector definitions, smearings, efficiencies, cross sections) with snewpy, so it can be installed with a single pip install snewpy rather than requiring a separate download.

Tying snewpy versions to specific SNOwGLoBES data file versions has both benefits and drawbacks: On the plus side, it would make snewpy outputs more reproducible (because a given snewpy release would always use known smearing files) and it would eliminate any compatibility issues (as in #201) that users might encounter when a new SNOwGLoBES version is released that isn’t supported by snewpy yet. The down side is that if a backwards-compatible SNOwGLoBES release adds e.g. a new detector, we would need to release a new snewpy version to update bundled files. (However, given that SNOwGLoBES updates don’t happen very often and making a new snewpy release only takes a few minutes, I don’t think this is a serious problem.)

Before implementing that, we should first ask SNOwGLoBES maintainers if they’re happy with that and check the SNOwGLoBES license for legal requirements (include license file, copyright notice, etc.)

Sheshuk commented 1 year ago

I think having to sync after each new SNOwGLoBES is a big disadvantage. Maybe it can be possible to publish SNOwGLoBES data files as a pipy package, and then just list it as a dependency in SNEWPY? We can make an automatic publishing pipeline for the new releases, if maintainers would agree.

JostMigenda commented 1 year ago

Currently, we already have to do checks before supporting a new SNOwGLoBES version. I agree that's not ideal, but at least it wouldn't get any worse by this suggested change.

Having SNOwGLoBES data files as a separate PyPI package would be a good way to solve this and easier for us (as long as that package follows Semantic Versioning, so that any change to the format of the data files would be a major update); but it would put more work on the SNOwGLoBES maintainer(s) and I get the impression they are already stretched thin. Possibly something to discuss with Kate at the next telecon?