neutrons / PyRS

Reduction and visualization software for Stress Residual (HB2B)
https://neutrons-pyrs.readthedocs.io/en/latest/index.html
GNU General Public License v3.0
6 stars 7 forks source link

JOSS: PyRS is not installable according to the supplied instructions on macOS and on Linux #778

Closed andyfaff closed 2 years ago

andyfaff commented 2 years ago

I am reviewing the JOSS manuscript in https://github.com/openjournals/joss-reviews/issues/4104, and am trying to install pyrs.

The setup.py file indicates that the package is OS independent ("Operating System :: OS Independent",). I am trying to install the software on macOS. However, when I try to install using the instructions in README.rst the install fails (as of commit 73c1e30275ce56a1e75207c26875ad2b2be8478c). Typing

conda create -n pyrs -c mantid -c mantid/label/nightly mantid-workbench -c conda-forge --file requirements.txt --file requirements_dev.txt

gives the following error:

Collecting package metadata (current_repodata.json): done
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: failed

PackagesNotFoundError: The following packages are not available from current channels:

  - mantid-workbench[version='<=5.2']

Current channels:

  - https://conda.anaconda.org/mantid/osx-64
  - https://conda.anaconda.org/mantid/noarch
  - https://conda.anaconda.org/mantid/label/nightly/osx-64
  - https://conda.anaconda.org/mantid/label/nightly/noarch
  - https://conda.anaconda.org/conda-forge/osx-64
  - https://conda.anaconda.org/conda-forge/noarch
  - https://repo.anaconda.com/pkgs/main/osx-64
  - https://repo.anaconda.com/pkgs/main/noarch
  - https://repo.anaconda.com/pkgs/r/osx-64
  - https://repo.anaconda.com/pkgs/r/noarch

To search for alternate channels that may provide the conda package you're
looking for, navigate to

    https://anaconda.org

and use the search bar at the top of the page.

When I visit the mantid/packages/mantid-workbench conda channel page there are only Linux files available. This is at odds with the OS Independent attribute in the setup.py file.

I then went to the effort of making an Ubuntu virtual machine and tried to install that package, but did not succeed as the conda package solve did not complete (presumably for the Mantid workbench dependency).

fanchercm commented 2 years ago

The underlying mantid dependencies have evolved. We had not properly vetted the README to ensure that it kept up with the evolution.

conda create -n pyrs -c mantid -c mantid/label/nightly mantid-workbench -c conda-forge  --file requirements.txt --file requirements_dev.txt

was modified to:

conda config --add channels conda-forge --add channels mantid --add channels mantid/label/nightly
conda install mamba
mamba create -n pyrs python=3.6 --file requirements.txt --file requirements_dev.txt

launching pyRS was not modified from the pre-mantid 5.0 upgrade:

PYTHONPATH=$PWD:$PYTHONPATH QT_API=pyqt python scripts/pyrsplot

is now

PYTHONPATH=$PWD:$PYTHONPATH python scripts/pyrsplot

The mantid conda package is fairly out of date and has paused maintaining builds for macOS and is locked to python 3.6. As such, the operating system and python versions were updated to reflect the current state of the mantid requirement.

We created a branch JOSS_ISSUE with the updates

andyfaff commented 2 years ago

The install instructions on the JOSS_ISSUE branch now get me to a state where I can get going with running the GUI. However, the Python version referred to in those instructions is 3.6, which is past EOL. I gather that this restriction is due to Mantid itself, but in my opinion it would look funny publishing a JOSS paper for a Python version which has already EOLd.

fanchercm commented 2 years ago

part of the stress/strain viewer functionality was pinned to mantid <5.1. that aspect of the code has been updated. I am in the process of transitioning the package to use python 3.8 and the latest version of mantid. The mantid channel also includes win, osx, and linux builds for the newer mantid releases.

Please see branch mantid_63_update.