Change to use Pixi for package & environment management#194
Merged
Conversation
Included `.pixi` environment handling in `.gitignore` and added `.gitattributes` for `pixi.lock` to enforce binary merge rules and syntax highlighting. Updated `pyproject.toml` to configure Pixi workspace, dependencies, and tasks, while also adjusting `license-files` formatting.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #194 +/- ##
=======================================
Coverage 98.69% 98.69%
=======================================
Files 17 17
Lines 2224 2224
Branches 64 64
=======================================
Hits 2195 2195
Misses 23 23
Partials 6 6
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
That provides the minimal set of dependency packages for a working installation.
Dropped the environment file as it is no longer required. It has been replaced by the default Pixi environment.
`conda` shim to enable use of PyCharm with Pixi environments.
- Introduced a new "test" environment with corresponding features and tasks - Added dependencies for testing: `pytest`, `pytest-cov`, `pytest-randomly`, and `tomli` (from `environment-test.yaml`) - Updated dev docs to use `pixi run` tasks to run tests and produce test coverage reports - Added `coverage` config setting to omit `.pixi/` directory from test coverage scanning
- Introduced `test-py312` and `test-py313` environments with appropriate dependencies. - Adjusted `pyproject.toml` to register and configure environments. - Set Python version requirement in default environment to "*" in `pyproject .toml`.
- Introduced `test-py314` environment with appropriate dependencies. - Updated `pyproject.toml` and `pixi.lock` to reflect the new environment. - Adjusted documentation to include updated test commands using the `-e test` flag. This is primarily to make what we see on GitHub Actions explicit and consistent. Keeping the `test` environment makes the developer experience Python version agnostic.
- Introduced a new "docs" environment with corresponding features and tasks - Added dependencies for docs builds from `environment-test.yaml`, `environment-rtd.yaml`, and recently identified packages and versions for Sphinx 9.1.0 builds on ReadTheDocs - Updated dev docs to use `pixi run` tasks to build html docs and run link checker
Replaced the Conda-based environment configuration with Pixi in `.readthedocs .yaml`. Updated build commands to leverage `pixi run` tasks for documentation generation. This aligns the ReadTheDocs workflow with the migration to Pixi for consistency across environments.
Dropped the environment file as it is no longer required. It has been replaced by a Pixi-customized build process in `.readthedocs.yaml`.
Dropped the environment file as it is no longer required. It has been replaced by the several Pixi test environments in `pyproject.toml` and a Pixi-customized build process in ` .readthedocs.yaml`.
Introduced `exclude-newer` setting with a 14-day threshold in the Pixi workspace configuration. This helps avoid "security patch churn" on new dependency version releases. Modified `pyproject.toml` to adjust versions for `rich` and `xarray` dependencies to satisfy `exclude-newer``. Updated `pixi.lock` with corresponding dependency changes.
- Introduced a new `dev` environment with appropriate dependencies necessary for development workflows. - Updated package development docs re: using Pixi for package and environments management
Dropped the environment file as it is no longer required. It has been replaced by the `dev` Pixi environment.
* Moved `requirements.txt` to top level directory * Added task to update `requirements.txt` via `pip list` The `requirements.txt` file is retained so that we will continue to get security update notifications and PRs from dependabot. It will be dropped when dependabot adds support for the `pixi.lock` file.
Revised the installation and usage documentation to replace Conda instructions with Pixi. Added detailed guidance on setting up the environment, running commands, and development workflows using Pixi, aligning with the recent migration.
Expanded the installation documentation with an example illustrating the use of the `pixi run -m` command option to execute `reshapr extract` from a directory other than `Reshapr/`.
Replaced all `reshapr` and `conda` commands in the documentation with `pixi run` equivalents. Updated examples, workflows, and explanatory sections to align with the Pixi-based environment setup and execution.
Added missing files for example to demonstrate extracting heterotrophic bacteria data using Reshapr from the SHEM tuning/pred_flag runs. Added a YAML configuration file and a corresponding SLURM script showcasing the workflow. These files should have been included in PR#169.
Added a shield.io Pixi badge to the README and package development docs. The badge links to the latest Pixi version and improves visibility of the Pixi integration.
Revised the package development documentation to align the release workflow with `pixi run` commands. Updated steps to include using `pixi update` to update the Pixi lock file each time the version identifier is changed. Adjust the version bump commands to reflect the Pixi-based environment setup.
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.
pyproject.tomlexclude-newer = "14d"workspace configuration settingenvs/environment-user.yamlto provide dependencies for default environmentenvs/environment-user.yamlbecause it is no longer neededtestenvironment and tasks based onenvs/environment-test.yamland dev docs "Running the Unit Tests" sectionpytest-with-coverageworkflow to use reusable Pixi workflowdocsenvironment and tasks based onenvs/environment-test.yaml,envs/environment-rtd.yaml, and dev docs "Building and Previewing the Documentation" sectionsphinx-linkcheckworkflow to use reusable Pixi workflow.readthedocs.yamlto use customized build process for Pixi from readthedocs build config docsenvs/environment-rtd.yamlbecause it is no longer neededenvs/environment-test.yamlbecause it is no longer neededdevenvironment based onenvs/environment-dev.yamlenvs/environment-dev.yamlbecause it is no longer neededrequirements.txtto top level directoryrequirements.txtviapip listpixi run reshapr ...The
requirements.txtfile is retained so that we will continue to get security update notifications and PRs from dependabot. It will be dropped when dependabot adds support for thepixi.lockfile.