Add project citation metadata and centralize copyright notices - #54
Conversation
Introduce CITATION.cff with structured software metadata for GitHub and Zenodo, including the documented authorship, Harvard Medical School affiliations, repository links, manuscript keywords, and ORCID identifiers for Brooks M. Musangu and Jan Drugowitsch. Make LICENSE.txt the authoritative copyright location, update the project copyright range through 2026, and remove duplicated project and Elephant notices from individual source files, tests, and CI configuration. The upstream Elephant notice remains in LICENSE.txt as part of the redistributed license attribution. Normalize author capitalization in pyproject.toml, correct the Sphinx release value from 0.1.0. to 0.1.0, and update the preprocessing example to import EventTimesToCounts from blockinvgpfa.
Replace the floating Python 3.x CI selector with an explicit test matrix covering Python 3.10, 3.11, 3.12, and 3.13. Keep the documentation build on Python 3.13 to match the Read the Docs configuration. Declare requires-python as >=3.10,<3.14 because the currently pinned NumPy 2.2.1 and SciPy 1.15.0 releases support Python 3.10 through 3.13. This prevents Python 3.14 from attempting unsupported source builds and makes the package metadata accurately describe the validated runtime range.
There was a problem hiding this comment.
Thanks for the PR. All looks good for me, except for excluding Python 3.14 and above. What is the reason for doing so?
Edit: I just saw the commit message for 28cb32c, which answers this question. I also tried running the tests with the upper bound removed, and the install fails when trying to build scipy. So, let's leave the upper bound in.
| license = {file = "LICENSE.txt"} | ||
| readme = "README.md" | ||
| requires-python = ">=3.9" | ||
| requires-python = ">=3.10,<3.14" |
There was a problem hiding this comment.
As far as I understand, this excludes the current Python version 3.14. Is there a reason for doing this? Does the code not run on Python 3.14?
If it does, then we should remove the upper bound, as we generally cannot predict which future versions the code will work with.
If it does not, and the problem is easily fixable, then let's do that instead.
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| python-version: ["3.10", "3.11", "3.12", "3.13"] |
There was a problem hiding this comment.
This excludes the current Python version 3.14. Is there a reason for not including 3.14?
Introduce
CITATION.cffwith structured software metadata for GitHub and Zenodo, including the documented authorship, affiliations, repository links, manuscript keywords, and ORCID identifiers.Make LICENSE.txt the authoritative copyright location, update the project copyright range through 2026, and remove duplicated project and Elephant notices from individual source files, tests, and CI configuration. The upstream Elephant notice remains in LICENSE.txt as part of the redistributed license attribution.
Normalize author capitalization in
pyproject.toml, correct the Sphinx release value from 0.1.0. to 0.1.0, and update the preprocessing example toimport EventTimesToCountsfrom blockinvgpfa.