Repository navigation
Conversation
Contributor
Author
|
It looks like the version of MDAnalysis on Python 3.10 isn't new enough. I'll investigate to see if there's a workaround, or guard the test, or drop 3.10 support, which we'll soon do anyway. |
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR relicenses Sire under the GNU Lesser General Public License, version 3 or (at your option) any later version. All copyright holders of non-trivial surviving code have agreed to the change in #486, hence this closes #486.
It has two parts: removing the code that forced Sire to be GPL, then the relicense itself.
1. Removing GPL-derived code
SireMaths::MatrixSVD, eigendecomposition and covariance now use Eigen (MPL-2.0).Complexis backed bystd::complex<double>, the gamma functions use Boost.Math, andareEqualand the numeric constants are implemented directly. GSL is removed from CMake,pixi.tomland the conda recipe.regress(GPLv3) removed. The polynomial fit and quadrature inSireAnalysis::TIPMFare reimplemented with Eigen (column-pivoted QR) and a plain trapezoidal rule.SireRDKit. The fallback now calls MDAnalysis (>= 2.8.0, LGPL) directly through a Python callback. If MDAnalysis is not installed,determine_bond_orders=Falseraises an error and a faileddetermineBondOrders()emits a warning.Regression tests were written against the GSL/
regressbuilds before each swap:tests/maths/test_matrix_decompositions.py,tests/maths/test_complex.py,tests/maths/test_gamma.pyandtests/analysis/test_ti_pmf.py.Behaviour changes to be aware of:
Matrix::svd()now returns fully orthonormalU/V(Eigen), where GSL returned zero columns.kabasch()already handles this case, so alignment results are unaffected.arccsch(z)now usesarcsinh(1/z). The previous GSL-copied documentation gavearcsin(1/z).2. Relicense
LICENSE(andrecipes/sire/LICENSE): the LGPLv3 text followed by the GPLv3 text it builds on, with a short note explaining why both are present. Both sections are verbatim from gnu.org.create_wrappers.py). Headers now refer to theLICENSEfile, and the old FSF postal address is replaced by the URL. This commit was made with clang-format skipped so that it contains only the header change.setup.pyand the generated conda recipe useLGPL-3.0-or-later. Also updated: the PR template,CONTRIBUTING.md,corelib/build/README,download_compile_sire.py, thesireapp licence banner (which said GPLv2),OpenMMMD.__license__, and the--helptext of the legacy scripts inwrapper/python/scripts.acknowledgements.rst(licence statement, compatibility notes, a new xdrfile/xtc_seek entry),contributing/index.rstand the changelog.Third-party code found during the audit:
SireIO/third_party/xtc_seek.{c,h}(MDAnalysis) were GPLv2+. Their headers are updated to match upstream, which MDAnalysis has relicensed to LGPLv2.1+.SireMaths/complex.h/.cppcarried doc comments copied from the GSL manual (GFDL with invariant sections). These are rewritten, as are the matching docstrings inwrapper/Maths/Complex.pypp.cpp.Sire.Tools.ap(ascii plotting) had no licence, either in the file or upstream. It is removed, along with the optional ascii plots inanalyse_freenrg.SireMaths/linearap.cppcontained a commented-out verbatim copy of Jonker's "freeware" LAP.CPP. It is removed. The live implementation is Sire's own port of the Jonker-Volgenant algorithm and keeps its attribution.package_sireself-extracting installer (makeself.sh, which is GPLv2, and the rest ofcorelib/share/build) is removed, together with its CMake install rule. Nothing else uses it.Everything else that is vendored is permissive: xdrfile and MersenneTwister (BSD), sse/avx/neon_mathfun and md5 (zlib-style), sse2neon (MIT) and eig3 (public domain). The Qt headers in
wrapper/Qt/qtheadersare used under Qt's LGPLv2.1 option.Not changed
README.rstanddoc/source/index.rst, which quotes the published paper.acknowledgements.rstnow says this; the note can be dropped once emle-engine is released under MIT.src/is LGPLv3+ with the rest of the package. It will be relicensed to MIT in a separate PR.This PR was made with the aid of Claude Code (Opus 5.5).
Testing
tests/maths,tests/analysisandtests/convert/test_rdkit.pyshare/Sire/buildChecklist
develinto this branch before issuing this pull request (e.g. by runninggit pull origin devel): [y]