Nexus: Installable as a Python package#5742
Nexus: Installable as a Python package#5742brockdyer03 wants to merge 25 commits intoQMCPACK:developfrom
Conversation
… from `pyproject.toml`
|
Thanks Brock. Q. Are you done with updates including updating the readme and install instructions? If so, please add the [x] to the 3rd and 4th bullets in the PR description and I will take a look. |
|
I'm not quite done. After a chat with @jtkrogel yesterday I realized that perhaps there should be some additional clarification for users, and most likely a note about selecting a branch to install. The current default is Additionally, I still need to update the Nexus docs, since that will likely be where people go for install instructions, not the readme. |
|
I was wondering when the issue of Nexus versioning would arise in this effort, since package managers will rightly need to version the package. For git+python package manger installation, clearly most users should install the version corresponding to the version of QMCPACK they are using, or simply the last tagged version. Folks should only use develop if they know they need it (new feature, bug fix, adventurous spirit). Based on recent errors we clearly can not yet guarantee that develop will work. Imminent changes to the testing will get us to the point needed but we are not there yet. The instructions should have variants of |
|
Note that a key lesson from the QMCPACK documentation is to not put too much in the README.md and to direct users to specific parts of readthedocs documentation. This avoids the documentation becoming scattered, potentially duplicative, and/or potentially out of sync. A single source of truth is ideal. (The QMCPACK docs are still in the process of migrating all to readthedocs - the readme is too long and there are some remnant wiki entries to copy over.) |
…docs/readme to reflect this change.
… adding small framework for potential future script packaging
|
I believe this is ready for review. Current PRThe most recent changes are:
Some notable changes from the initial PR idea:
Future workAfter some digging, I think it is possible to include the various scripts in Another thing is that currently Nexus is not actually built and distributed in QMCPACK, so technically none of the instructions that I've added are strictly correct. I'll be chatting with @prckent later this week to work out the details, and it is possible that this PR will need to wait to be merged until after the next release of QMCPACK. For now though, I could in theory build Nexus locally and just put a distribution wheel into this PR, but that won't be automatically updated with new pull requests. |
|
Quick note to record: *** Do not merge prior to 4.2.0 release *** |
|
Good to address the version numbering. @jtkrogel Can we please adopt the same versioning scheme as for QMCPACK, using patch number .9 for development? E.g. 2.1.9 is a development version and 2.2.[0-8] are released versions? This allows us to distinguish between runs with versioned releases and development versions that could have any number of changes. We (I) change the version numbers during the release process. |
|
Adopting QMCPACK versioning practices is fine |
prckent
left a comment
There was a problem hiding this comment.
Reminder to myself that significant updates to the .rst is will be needed, plus the existing installer script needs looking at.
|
Note: no blockers w.r.t. Python version here (supports Python 3.6). |
Proposed changes
This PR is designed to make Nexus available to install via a package manager such as
piporuv.The general changes include:
pyproject.tomlfile with minimum supported versionsuvREADME(now in markdown, name changed toREADME.md)What type(s) of changes does this code introduce?
Does this introduce a breaking change?
What systems has this change been tested on?
Laptop running Fedora 43 with
uv0.9.24 and Python 3.14.2Docker container of Ubuntu 18.04 with
pip21.3.1 and Python 3.6Note: The default install of
pipon Ubuntu 18.04 ispip9.1, which does not work to install via GitHub links. The minimum version ofpipthat will do this is 10.0.0. I have tested and can confirm that runningpython3 -m pip install -U pipwith Python 3.6 will updatepipto version 21.3.1, which does work.Checklist