Add basic Pixi config in pyproject.toml and developer instructions#3842
Add basic Pixi config in pyproject.toml and developer instructions#3842backmari wants to merge 3 commits into
pyproject.toml and developer instructions#3842Conversation
llimeht
left a comment
There was a problem hiding this comment.
There are a few conceptual things that need to be figured out collectively - particularly around pinning of dependencies. cf. https://github.com/orgs/SasView/discussions/3831
|
As a reminder from our meeting, the developer environment setup is available at https://github.com/SasView/sasview/wiki/DevNotes_DevEnvironmentInstall |
| ```shell | ||
| # Clone the repository | ||
| git clone https://github.com/sasview/sasdata/ | ||
| git clone https://github.com/sasview/sasmodels/ | ||
| git clone https://github.com/sasview/sasview/ | ||
|
|
||
| # Enter the developer environment | ||
| # (This will create (or reuse) a local Pixi environment with all required dependencies.) | ||
| cd sasview |
There was a problem hiding this comment.
Nitpick: This is in both the venv and Pixi instructions. This shouldn't hold up this PR, but might make sense to add a section called Obtaining the source code. This section could also have instructions on cloning the bumps and periodictable repos.
There was a problem hiding this comment.
I made a change to extract this part into a section "Prerequisites". Please see if you think it makes sense.
…g to make Pixi and venv instructions equivalent - address review comments
99f7c1b to
5026bcc
Compare
krzywon
left a comment
There was a problem hiding this comment.
Code and documentation look good, but I'll leave testing the setup procedure to someone more familiar with pixi.
|
@llimeht your hold on this dates back to Jan I was wondering but everything seems to have been resolved? There is an approving review as well so wondering if you had further comments? |
| *.cpp text eol=lf | ||
| *.rst text eol=lf | ||
| # SCM syntax highlighting & preventing 3-way merges | ||
| pixi.lock merge=binary linguist-language=YAML linguist-generated=true -diff |
There was a problem hiding this comment.
Should pixi.lock instead be in .gitignore since it is not being added?
| because you're wanting to work on the code, it is recommended that you | ||
| work inside a Python virtual environment of some sort. | ||
| A `venv` or a `conda` are both popular choices. | ||
| A `venv` or a `Pixi` are both popular choices. |
There was a problem hiding this comment.
missing word "environment" or some other rewording? (venv is both a tool and an environment type, pixi is a tool that manages environments)
| section-order = ["future", "standard-library", "third-party", "sas", "first-party", "local-folder"] | ||
|
|
||
| [tool.pixi.workspace] | ||
| channels = ["conda-forge"] |
There was a problem hiding this comment.
The edit to INSTALLmd says that it will grab the packages from pypi but this says conda-forge?
There is three very fundamental questions that I've not seen any resolution to (but might have been discussed at a developer meeting?):
I also see that there's no test that the package is installable via pixi. Should there be? CI currently tests building the wheel and installing it via pip. |
Description
Adds a basic Pixi configuration to the
pyproject.tomland instructions for setting up your developer environment using Pixi. The reason for adding Pixi as an option is that many institutions are moving from conda to Pixi due to conda licensing changes.This is related to #3690, but does not resolve the issue. There is more work to do to e.g. move the CI to use Pixi, but that may require some discussion.
TODO (in a separate PR?): Figure out how to build the docs using a Pixi task and have the docs changes reflected in the GUI.
How Has This Been Tested?
I tested that I can create the developer environment, run the GUI, and run the unit tests:
I have only tested on Linux.
Review Checklist:
[if using the editor, use
[x]in place of[ ]to check a box]Documentation (check at least one)
Installers
Licensing (untick if necessary)