Skip to content

Add NJOY2016 wheels to the collection - #21

Merged
shimwell merged 2 commits into
mainfrom
add-njoy2016
Aug 4, 2026
Merged

Add NJOY2016 wheels to the collection#21
shimwell merged 2 commits into
mainfrom
add-njoy2016

Conversation

@shimwell

@shimwell shimwell commented Aug 4, 2026

Copy link
Copy Markdown
Owner

Adds NJOY2016 to the wheel collection, built from shimwell/NJOY2016 feature/python-wheel by this workflow run.

What's added

Three wheels in a new njoy2016/ folder, version 2016.79.post8:

Platform Wheel
Linux x86_64 njoy2016-2016.79.post8-py3-none-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
macOS arm64 njoy2016-2016.79.post8-py3-none-macosx_14_0_arm64.whl
Windows AMD64 njoy2016-2016.79.post8-py3-none-win_amd64.whl

Installing puts the njoy executable on PATH, reading its input deck from stdin exactly as a source build does, so njoy < deck behaves identically. njoy.executable() returns the bundled binary path, which is handy for pointing OpenMC's openmc.data.njoy helpers at it.

Index plumbing

Three places hardcode the package list, so all three are updated:

  • update_indexs.py — added njoy2016 to folders, then regenerated. moab/index.html and openmc/index.html came out unchanged, confirming they were already in sync.
  • index.html — added the top-level njoy2016/ link.
  • .github/workflows/check-index.yml — added njoy2016 to the checker's folder loop. Without this the new wheels would sit outside CI validation, which is easy to miss since nothing would fail.

Verified

The repo's own checker logic passes for all three folders. I also served the repo locally and did a real resolution against it rather than only eyeballing the HTML:

$ pip install --index-url http://127.0.0.1:8765 njoy2016
$ pip list | grep njoy
njoy2016  2016.79.post8
$ echo stop | njoy
 njoy 2016.79  18Mar25                                       08/04/26 11:45:17

macOS and Windows wheels are verified structurally (contents, platform tags) plus the in-CI test step; those binaries have not been executed outside CI.

Notes

No Author metadata. These wheels deliberately carry no Author or Maintainer field. NJOY2016 is authored by LANL, but naming LANL as the author of a third-party repackaging risks implying involvement in or endorsement of it, which the licence's no-endorsement clause forbids. Attribution is instead carried by the summary ("built from unmodified LANL sources") and by the full copyright notice shipped inside every wheel. Verified on all three: no Author/Maintainer lines, LICENSE present at dist-info/licenses/LICENSE with the Los Alamos notice intact.

Named njoy2016, not njoy. The njoy name on PyPI is taken by an unrelated unofficial upload that ships a Linux binary under a py3-none-any tag and takes its input deck as a positional argument instead of via stdin. Because --extra-index-url pools candidates across PyPI and this index and picks the highest version, sharing the name would make resolution depend on staying ahead of that upload, and its any tag would win outright on non-Linux platforms. A distinct name keeps resolution deterministic.

One wheel per platform, not per Python version. Unlike the openmc and moab wheels, these are tagged py3-none-<platform>: the wheel ships a Fortran executable with no Python extension module, so a single wheel per platform is valid for every supported interpreter. Noted in the README since the existing text emphasises matching your Python version.

No sdist included, consistent with the existing folders — update_indexs.py only globs *.whl. The tradeoff is that platforms without a wheel get nothing rather than falling back to a source build. Easy to add later if wanted.

Licence. NJOY2016's licence permits binary redistribution provided the copyright notice and disclaimer accompany the distribution; LICENSE ships inside each wheel at njoy2016-<version>.dist-info/licenses/LICENSE. The README states these are unofficial builds not endorsed by LANL, per the no-endorsement clause.

Version string. post8 is derived by setuptools-scm from commit distance past the 2016.79 tag. A tagged release on the NJOY2016 side would produce a clean 2016.79.

@shimwell
shimwell merged commit 1d33dbf into main Aug 4, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant