-
Notifications
You must be signed in to change notification settings - Fork 178
Migrate to Pixi-based pyproject.toml setup #1540
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
ericmjl
wants to merge
26
commits into
dev
Choose a base branch
from
migrate-to-pixi-pyproject
base: dev
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
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
- Consolidate all dependencies into pyproject.toml - Add Pixi configuration with features for tests, docs, devtools, etc. - Remove legacy config files: environment-dev.yml, .flake8, .darglint, .codecov.yml, .bumpversion.cfg, .pyup.yml, .deepsource.toml - Remove setup.py and migrate build system to pyproject.toml - Convert all Jupyter notebooks to Marimo format (.py files) - Update GitHub Actions workflows to use Pixi - Update pre-commit configuration to use ruff and Pixi - Add AGENTS.md with critical rules for LLM agents - Update CONTRIBUTING.md and mkdocs/devguide.md with new setup instructions - Set up automated release notes with llamabot - Replace Makefile targets with Pixi tasks
…og.db - Rename pre-commit hook from 'Keep lockfile up-to-date' to 'pixi-install' in .pre-commit-config.yaml. - Update pyjanitor package sha256 in pixi.lock. - Add .llamabot/message_log.db binary file to the repository.
- Delete the .llamabot/message_log.db file, likely to prevent tracking of generated or temporary data in version control.
- Introduce .github/dependabot.yml to automate dependency updates for GitHub Actions workflows. - Set update schedule to weekly on Mondays with a limit of 10 open pull requests.
…ig section - Update the SHA256 hash for the pyjanitor package in pixi.lock. - Change [tool.pixi.project] to [tool.pixi.workspace] in pyproject.toml for correct pixi configuration.
…ironment - Set the 'environment' parameter to 'docs' in the pixi action step. - Change the documentation build step to use 'pixi run build-docs' instead of 'pixi run mkdocs build'.
…d ignore test files - Replaces --doctest-only with --doctest-modules for broader docstring testing. - Adds --ignore=tests to exclude test files from docstring tests.
…PR previews - Rename workflow and job for clarity and consistency. - Update permissions to allow writing to contents, pages, id-token, and pull-requests. - Switch to latest actions/checkout and peaceiris/actions-gh-pages versions. - Refactor Pixi environment setup and cache logic. - Remove Netlify preview in favor of rossjrw/pr-preview-action for PR previews. - Simplify and clarify deployment steps for dev branch and PR previews.
|
…notebook features, add unyt, matplotlib, and openpyxl to main dependencies - Removed devtools and notebook features and their dependencies from pyproject.toml and pixi.lock. - Added unyt, matplotlib, and openpyxl as main dependencies in pyproject.toml and updated pixi.lock accordingly. - Updated default, biology, chemistry, engineering, and spark environments to exclude devtools and notebook features. - Removed related tasks for devtools and notebook features. - Refreshed lockfile to reflect the new dependency set and environment structure.
…yproject.toml - Added rdkit to pyproject.toml as a dependency. - Updated pixi.lock to include rdkit and its required dependencies. - Ensured both Linux and OSX environments are updated with new packages. - No code changes outside of dependency management.
…pdate pixi.lock - Added numba, pyspark, and requests to the dependencies in pyproject.toml. - Updated pixi.lock to include new packages and their dependencies for both Linux and OSX platforms. - No code changes, only dependency and lockfile updates.
…sistent output formatting - Updated doctest examples in change_index_dtype.py, select.py, summarise.py, and io.py to include +NORMALIZE_WHITESPACE for improved test reliability. - Ensures doctest output is compared ignoring whitespace differences, reducing false negatives in test runs.
…nt testing - Add '+NORMALIZE_WHITESPACE' to doctest examples in change_index_dtype.py, select.py, and summarise.py to ensure consistent whitespace handling during testing. - Update doctest formatting for multi-line examples to improve readability and reliability of tests.
…s output formatting - Add doctest option flag NORMALIZE_WHITESPACE in pyproject.toml to handle output formatting differences. - Update doctest examples in select.py and summarise.py to use NORMALIZE_WHITESPACE for pandas output. - Update pixi.lock to reflect changes in project configuration.
…ation and improve MultiIndex and column checks - Replace slicing with .copy() to avoid chained assignment and ensure DataFrame integrity in clean_names, conditional_join, and pivot modules. - Move MultiIndex and column renaming checks before column existence checks to provide clearer error messages. - Use stable sort in sort_column_value_order to preserve original order for equal values. - Update test_ecdf to use np.float64 for hypothesis test to avoid dtype issues.
…dtype for edge cases - Ensure bin_numeric converts columns to numeric before binning, raising a clear error if conversion fails. - Allow change_index_dtype to handle tuple-based Index by converting to MultiIndex when dtype is a dict, improving support for transposed DataFrames. - Fix minor doc typo in devguide regarding code block formatting.
…_longer_dot_value - Ensure that when 'spec' contains columns other than '.value', only those columns are passed to _stack_non_dot_value. - Prevents incorrect or missing creation of dimension columns when 'others' is empty and spec has multiple columns.
…to non-deterministic ordering in CI - Add @pytest.mark.xfail to test_pivot_sort_by_appearance to indicate expected failure in CI environments. - Document the reason for xfail as non-deterministic ordering, to be addressed in the future.
- Delete deprecated build_environment.sh and unpack_environment.sh scripts from CI. - Remove count_functions.py utility script. - Delete docker_deploy.sh deployment script.
…rkflow - Deleted the step that installs pyjanitor using pip in editable mode from the GitHub Actions test workflow.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## dev #1540 +/- ##
==========================================
+ Coverage 83.49% 87.56% +4.07%
==========================================
Files 88 95 +7
Lines 6469 6819 +350
==========================================
+ Hits 5401 5971 +570
+ Misses 1068 848 -220 🚀 New features to boost your workflow:
|
…d update CI matrix - Add Pixi features and environments for Python 3.11, 3.12, and 3.13 in pyproject.toml. - Update GitHub Actions workflow to use a matrix strategy for py311, py312, and py313 environments. - Update test commands in CI to run in the correct Pixi environment using the -e flag. - Add detailed documentation on multi-Python environment testing and Pixi usage in mkdocs. - Update mkdocs navigation to include new development documentation. - Update pixi.lock to reflect new environments and dependency resolution for each Python version. - Remove the-welcome-bot configuration file as part of .github cleanup.
…tors - Rewrite devguide.md to provide a clearer, step-by-step guide for setting up the development environment and contributing to pyjanitor. - Emphasize use of pixi for environment management and pre-commit hooks. - Clarify branch management, testing, and documentation preview steps. - Add tips for running specific tests and viewing documentation locally. - Update compatibility and help sections for new contributors. - Update pixi.lock due to changes in the local package hash. - Add a 'start' task to pixi tasks in pyproject.toml to install pre-commit hooks.
- Included @gcamargo2 with a link to their contributions.
…utors format and update documentation - Remove AUTHORS.md and its symlink from mkdocs, consolidating contributor information. - Add .all-contributorsrc configuration file to manage contributors using the all-contributors specification. - Update mkdocs/index.md to include an automatically generated contributors table and all-contributors badge.
…ributorsrc and documentation - Added full names and avatar URLs for contributors in .all-contributorsrc. - Updated mkdocs/index.md to display contributor names and avatars using GitHub profile images.
Member
Author
|
@samukweku if the PR looks too big to review, then the most important thing I'd ask you to try is to clone the repo and then run |
- Corrects the smiley in the welcome message from ':' to ':)' for proper formatting.
This was referenced Dec 15, 2025
Collaborator
|
@ericmjl I'll have a look at it over the weekend 🙌 |
This was referenced Dec 17, 2025
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.
This PR migrates the pyjanitor project to a modern Pixi-based setup with pyproject.toml as the central configuration file.
Major Changes
Dependency Management
.requirements/*.infiles intopyproject.tomlenvironment-dev.yml,.pyup.yml, and all.requirementsfilesConfiguration Consolidation
.flake8,.darglint,.codecov.yml,.bumpversion.cfg,.deepsource.tomlpyproject.tomlBuild System
setup.pyand migrated topyproject.tomlbuild systemMANIFEST.into remove references to old requirements directoryNotebooks
.pyfiles)nbconvert_config.pymarimo checkvalidationCI/CD
bump2versionwithpyproject.tomlDevelopment Workflow
AGENTS.mdwith critical rules for LLM agentsCONTRIBUTING.mdandmkdocs/devguide.mdwith new setup instructionsTesting
uvx marimo checkBreaking Changes
pyproject.tomlinstead ofsetup.pyThis migration follows the standards from the
cookiecutter-python-projecttemplate.