Skip to content

Feature/update from template - #12

Merged
blooop merged 37 commits into
mainfrom
feature/update_from_template
Dec 22, 2025
Merged

blooop merged 37 commits into
mainfrom
feature/update_from_template

Conversation

@blooop

@blooop blooop commented Dec 22, 2025 •

Copy link
Copy Markdown
Owner

Summary by Sourcery

Update the project template to improve tooling, cloud IDE support, and dependency versions.

New Features:

  • Add built-in configuration and documentation for using the project with the Claude Code online environment, including activation and session start hooks.

Enhancements:

  • Document ruff as both formatter and linter and clarify rocker-based VS Code container configuration in the README.
  • Switch pixi configuration to workspace mode and add shellcheck as a dependency.
  • Bump versions of test and tooling dependencies in pyproject.toml.
  • Update CI and devcontainer tooling versions, including actions/checkout, setup-pixi, and pixi itself.
  • Refresh rocker container base image and arguments configuration.
  • Update the recorded project version in the changelog to 0.2.0.

CI:

  • Update GitHub Actions workflows to use newer actions/checkout and setup-pixi versions and clean up dependabot configuration patterns.

Documentation:

  • Add dedicated documentation for Claude Code integration under .claude/README.md and extend the main README with Claude Code usage instructions.

blooop and others added 30 commits September 1, 2025 09:52
Bumps [prefix-dev/setup-pixi](https://github.com/prefix-dev/setup-pixi) from 0.8.14 to 0.9.1.
- [Release notes](https://github.com/prefix-dev/setup-pixi/releases)
- [Commits](prefix-dev/setup-pixi@v0.8.14...v0.9.1)

---
updated-dependencies:
- dependency-name: prefix-dev/setup-pixi
  dependency-version: 0.9.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Updates the requirements on [pylint](https://github.com/pylint-dev/pylint), [pytest-cov](https://github.com/pytest-dev/pytest-cov), [pytest](https://github.com/pytest-dev/pytest), [hypothesis](https://github.com/HypothesisWorks/hypothesis), [ruff](https://github.com/astral-sh/ruff), [coverage](https://github.com/nedbat/coveragepy) and [pre-commit](https://github.com/pre-commit/pre-commit) to permit the latest version.

Updates `pylint` to 3.3.8
- [Release notes](https://github.com/pylint-dev/pylint/releases)
- [Commits](pylint-dev/pylint@v3.2.5...v3.3.8)

Updates `pytest-cov` to 7.0.0
- [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst)
- [Commits](pytest-dev/pytest-cov@v4.1.0...v7.0.0)

Updates `pytest` to 8.4.2
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](pytest-dev/pytest@7.4.0...8.4.2)

Updates `hypothesis` to 6.140.2
- [Release notes](https://github.com/HypothesisWorks/hypothesis/releases)
- [Commits](HypothesisWorks/hypothesis@hypothesis-python-6.104.2...hypothesis-python-6.140.2)

Updates `ruff` to 0.13.2
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.5.0...0.13.2)

Updates `coverage` to 7.10.7
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](coveragepy/coveragepy@7.5.4...7.10.7)

Updates `pre-commit` to 4.3.0
- [Release notes](https://github.com/pre-commit/pre-commit/releases)
- [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md)
- [Commits](pre-commit/pre-commit@v0.1.0...v4.3.0)

---
updated-dependencies:
- dependency-name: pylint
  dependency-version: 3.3.8
  dependency-type: direct:production
  dependency-group: dev-dependencies
- dependency-name: pytest-cov
  dependency-version: 7.0.0
  dependency-type: direct:production
  dependency-group: dev-dependencies
- dependency-name: pytest
  dependency-version: 8.4.2
  dependency-type: direct:production
  dependency-group: dev-dependencies
- dependency-name: hypothesis
  dependency-version: 6.140.2
  dependency-type: direct:production
  dependency-group: dev-dependencies
- dependency-name: ruff
  dependency-version: 0.13.2
  dependency-type: direct:production
  dependency-group: dev-dependencies
- dependency-name: coverage
  dependency-version: 7.10.7
  dependency-type: direct:production
  dependency-group: dev-dependencies
- dependency-name: pre-commit
  dependency-version: 4.3.0
  dependency-type: direct:production
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
…ev/setup-pixi-0.9.1

build(deps): bump prefix-dev/setup-pixi from 0.8.14 to 0.9.1
…1cb50033

build(deps): bump the dev-dependencies group with 7 updates
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
…checkout-5

build(deps): bump actions/checkout from 4 to 5
only install extensions if inside a docker container
Bumps [prefix-dev/setup-pixi](https://github.com/prefix-dev/setup-pixi) from 0.9.1 to 0.9.2.
- [Release notes](https://github.com/prefix-dev/setup-pixi/releases)
- [Commits](prefix-dev/setup-pixi@v0.9.1...v0.9.2)

---
updated-dependencies:
- dependency-name: prefix-dev/setup-pixi
  dependency-version: 0.9.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
- Removed black from feature list (replaced with ruff for formatting)
- Updated legacy section to remove outdated deps_rocker references
- Clarified that ruff handles both formatting and linting
- Removed black from docs/intro.rst (replaced with ruff)
- Updated .vscode/tasks.json autoformat task to use ruff and correct command
- Removed black from .github/dependabot.yml dev-dependencies
- Fixed scripts/rename_project.sh to remove non-existent deps.yaml reference
- Updated docs/intro.rst Python version badge to show 3.10-3.13
- Fixed license badge in intro.rst to use correct URL
- Removed outdated flit tasks from .vscode/tasks.json
- Fixed pixi version mismatch in .devcontainer/devcontainer.json (v0.48.2)
- Updated CHANGELOG.md version to match pyproject.toml (0.2.0)
…3tezqW7h6y6TN1Utonb

Update README and remove outdated information
…ev/setup-pixi-0.9.2

build(deps): bump prefix-dev/setup-pixi from 0.9.1 to 0.9.2
Bumps [prefix-dev/setup-pixi](https://github.com/prefix-dev/setup-pixi) from 0.9.2 to 0.9.3.
- [Release notes](https://github.com/prefix-dev/setup-pixi/releases)
- [Commits](prefix-dev/setup-pixi@v0.9.2...v0.9.3)

---
updated-dependencies:
- dependency-name: prefix-dev/setup-pixi
  dependency-version: 0.9.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
…ith 6 updates

Updates the requirements on [pylint](https://github.com/pylint-dev/pylint), [pytest](https://github.com/pytest-dev/pytest), [hypothesis](https://github.com/HypothesisWorks/hypothesis), [ruff](https://github.com/astral-sh/ruff), [coverage](https://github.com/coveragepy/coveragepy) and [pre-commit](https://github.com/pre-commit/pre-commit) to permit the latest version.

Updates `pylint` to 4.0.2
- [Release notes](https://github.com/pylint-dev/pylint/releases)
- [Commits](pylint-dev/pylint@v3.2.5...v4.0.2)

Updates `pytest` to 9.0.0
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](pytest-dev/pytest@7.4.0...9.0.0)

Updates `hypothesis` to 6.147.0
- [Release notes](https://github.com/HypothesisWorks/hypothesis/releases)
- [Commits](HypothesisWorks/hypothesis@hypothesis-python-6.104.2...hypothesis-python-6.147.0)

Updates `ruff` to 0.14.4
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.5.0...0.14.4)

Updates `coverage` to 7.11.3
- [Release notes](https://github.com/coveragepy/coveragepy/releases)
- [Changelog](https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst)
- [Commits](coveragepy/coveragepy@7.5.4...7.11.3)

Updates `pre-commit` to 4.4.0
- [Release notes](https://github.com/pre-commit/pre-commit/releases)
- [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md)
- [Commits](pre-commit/pre-commit@v0.1.0...v4.4.0)

---
updated-dependencies:
- dependency-name: pylint
  dependency-version: 4.0.2
  dependency-type: direct:development
  dependency-group: dev-dependencies
- dependency-name: pytest
  dependency-version: 9.0.0
  dependency-type: direct:development
  dependency-group: dev-dependencies
- dependency-name: hypothesis
  dependency-version: 6.147.0
  dependency-type: direct:development
  dependency-group: dev-dependencies
- dependency-name: ruff
  dependency-version: 0.14.4
  dependency-type: direct:development
  dependency-group: dev-dependencies
- dependency-name: coverage
  dependency-version: 7.11.3
  dependency-type: direct:development
  dependency-group: dev-dependencies
- dependency-name: pre-commit
  dependency-version: 4.4.0
  dependency-type: direct:development
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
…dev/setup-pixi-0.9.3

build(deps): bump prefix-dev/setup-pixi from 0.9.2 to 0.9.3
…aa2820cf5

build(deps-dev): bump the dev-dependencies group across 1 directory with 6 updates
This commit adds complete support for Claude Code online environment:

- Add .claude/hooks/SessionStart: Automatically sets up pixi and dependencies
- Add .claude/README.md: Comprehensive documentation for Claude Code usage
- Add .claude/activate.sh: Manual environment activation script
- Update README.md: Add Claude Code section with quick start guide

The SessionStart hook automatically:
- Installs pixi package manager if not present
- Installs all project dependencies via pixi
- Sets up pre-commit hooks
- Configures git merge drivers

This enables immediate development in Claude Code online without manual setup.
…EspHaNhB7a1XgjDiMd1B

Set up template for Claude integration
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
blooop and others added 6 commits November 29, 2025 09:32
…/checkout-6

build(deps): bump actions/checkout from 5 to 6
Updates the requirements on [pylint](https://github.com/pylint-dev/pylint), [pytest](https://github.com/pytest-dev/pytest), [hypothesis](https://github.com/HypothesisWorks/hypothesis), [ruff](https://github.com/astral-sh/ruff), [coverage](https://github.com/coveragepy/coveragepy) and [pre-commit](https://github.com/pre-commit/pre-commit) to permit the latest version.

Updates `pylint` to 4.0.3
- [Release notes](https://github.com/pylint-dev/pylint/releases)
- [Commits](pylint-dev/pylint@v3.2.5...v4.0.3)

Updates `pytest` to 9.0.1
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](pytest-dev/pytest@7.4.0...9.0.1)

Updates `hypothesis` to 6.148.3
- [Release notes](https://github.com/HypothesisWorks/hypothesis/releases)
- [Commits](HypothesisWorks/hypothesis@hypothesis-python-6.104.2...hypothesis-python-6.148.3)

Updates `ruff` to 0.14.7
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.5.0...0.14.7)

Updates `coverage` to 7.12.0
- [Release notes](https://github.com/coveragepy/coveragepy/releases)
- [Changelog](https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst)
- [Commits](coveragepy/coveragepy@7.5.4...7.12.0)

Updates `pre-commit` to 4.5.0
- [Release notes](https://github.com/pre-commit/pre-commit/releases)
- [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md)
- [Commits](pre-commit/pre-commit@v0.1.0...v4.5.0)

---
updated-dependencies:
- dependency-name: pylint
  dependency-version: 4.0.3
  dependency-type: direct:development
  dependency-group: dev-dependencies
- dependency-name: pytest
  dependency-version: 9.0.1
  dependency-type: direct:development
  dependency-group: dev-dependencies
- dependency-name: hypothesis
  dependency-version: 6.148.3
  dependency-type: direct:development
  dependency-group: dev-dependencies
- dependency-name: ruff
  dependency-version: 0.14.7
  dependency-type: direct:development
  dependency-group: dev-dependencies
- dependency-name: coverage
  dependency-version: 7.12.0
  dependency-type: direct:development
  dependency-group: dev-dependencies
- dependency-name: pre-commit
  dependency-version: 4.5.0
  dependency-type: direct:development
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
…0279efebc

build(deps-dev): bump the dev-dependencies group with 6 updates
Updates the requirements on [pylint](https://github.com/pylint-dev/pylint) and [hypothesis](https://github.com/HypothesisWorks/hypothesis) to permit the latest version.

Updates `pylint` to 4.0.4
- [Release notes](https://github.com/pylint-dev/pylint/releases)
- [Commits](pylint-dev/pylint@v3.2.5...v4.0.4)

Updates `hypothesis` to 6.148.5
- [Release notes](https://github.com/HypothesisWorks/hypothesis/releases)
- [Commits](HypothesisWorks/hypothesis@hypothesis-python-6.104.2...hypothesis-python-6.148.5)

---
updated-dependencies:
- dependency-name: pylint
  dependency-version: 4.0.4
  dependency-type: direct:development
  dependency-group: dev-dependencies
- dependency-name: hypothesis
  dependency-version: 6.148.5
  dependency-type: direct:development
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
…e88689ab9

build(deps-dev): bump the dev-dependencies group with 2 updates
@sourcery-ai

sourcery-ai Bot commented Dec 22, 2025 •

Copy link
Copy Markdown

Reviewer's Guide

Updates the Python project template from the latest upstream, adding Claude Code online environment support, modernizing tooling and CI versions, and refreshing development/dependency configuration.

Flow diagram for Claude Code SessionStart hook behavior

flowchart TD
  Start[Start_Claude_Code_session] --> Hook[Run_.claude/hooks/SessionStart]

  Hook --> CheckPixi{Is_pixi_installed?}
  CheckPixi -->|No| InstallPixi[Install_pixi_binary]
  CheckPixi -->|Yes| SkipInstallPixi[Skip_pixi_install]

  InstallPixi --> InstallDeps
  SkipInstallPixi --> InstallDeps[Install_project_dependencies_with_pixi]

  InstallDeps --> SetupPreCommit[Set_up_pre_commit_hooks]
  SetupPreCommit --> ConfigureGit[Configure_git_merge_drivers_for_lockfiles]

  ConfigureGit --> Done[Environment_ready_for_pixi_commands]

  Done --> UseCommands[User_runs_pixi_run_test_lint_format_ci]
Loading

File-Level Changes

Change Details Files
Document and wire up Claude Code online environment support for this template.
  • Extend README to describe Claude Code integration, automatic environment setup, and manual activation instructions.
  • Add .claude/README.md describing SessionStart hook behavior, available pixi tasks, troubleshooting, and customization options.
  • Introduce .claude/activate.sh helper script for activating the pixi environment from an interactive shell.
  • Add .claude/hooks/SessionStart hook script (implementation not shown in diff) that runs on Claude Code session start to bootstrap the environment.
README.md
.claude/README.md
.claude/activate.sh
.claude/hooks/SessionStart
Refresh development tooling versions, dependencies, and CI configuration.
  • Switch pixi configuration from a project to a workspace table and add shellcheck as a managed dependency.
  • Relax and bump upper bounds for core test/dev Python packages (pylint, pytest, pytest-cov, hypothesis, ruff, coverage, pre-commit).
  • Update GitHub Actions to newer versions of actions/checkout and prefix-dev/setup-pixi.
  • Update devcontainer Dockerfile to install a newer pixi release.
  • Adjust Dependabot configuration dev-dependencies group to drop black from the grouped patterns and normalize whitespace.
  • Update CHANGELOG version from 0.0.0 to 0.2.0.
  • Regenerate or update pixi.lock, devcontainer, VS Code, and docs intro files to align with the new template (content not shown in diff).
pyproject.toml
.github/workflows/ci.yml
.github/workflows/pre-commit.yaml
.devcontainer/Dockerfile
.github/dependabot.yml
CHANGELOG.md
pixi.lock
.devcontainer/devcontainer.json
.vscode/tasks.json
docs/intro.rst
Tweak environment and container setup defaults for docker/rocker workflows.
  • Update rocker configuration to use Ubuntu 24.04 base image and adjust rocker args from nvidia to jquery while keeping other flags.
  • Clarify README legacy section to reference rockerc.yaml instead of deps_rocker/dbw.deps.yaml for container configuration.
rockerc.yaml
README.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've found 2 issues, and left some high level feedback:

  • The .github/workflows/ci.yml and .github/workflows/pre-commit.yaml workflows reference actions/checkout@v6, but the latest published major version is v4, so these should be pinned to a valid existing tag to avoid workflow failures.
  • The new .claude/hooks/SessionStart file appears to be empty while .claude/README.md describes fairly extensive setup behavior; consider either implementing the described logic in this hook or scaling back the README description to match what actually runs.
  • In rockerc.yaml the args entry was changed from nvidia to jquery, which looks like a likely typo or misconfiguration for rocker features and may cause container builds to fail or omit GPU support if that was intended.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The `.github/workflows/ci.yml` and `.github/workflows/pre-commit.yaml` workflows reference `actions/checkout@v6`, but the latest published major version is `v4`, so these should be pinned to a valid existing tag to avoid workflow failures.
- The new `.claude/hooks/SessionStart` file appears to be empty while `.claude/README.md` describes fairly extensive setup behavior; consider either implementing the described logic in this hook or scaling back the README description to match what actually runs.
- In `rockerc.yaml` the `args` entry was changed from `nvidia` to `jquery`, which looks like a likely typo or misconfiguration for rocker features and may cause container builds to fail or omit GPU support if that was intended.

## Individual Comments

### Comment 1
<location> `rockerc.yaml:10` </location>
<code_context>
+image: ubuntu:24.04
 args:
-  - nvidia
+  - jquery
   - x11 
   - user 
</code_context>

<issue_to_address>
**issue (bug_risk):** Double-check the `jquery` rocker arg, it looks unrelated to typical rocker feature flags like `nvidia`.

This entry used to be `nvidia`, which is the standard rocker feature for GPU-enabled images. `jquery` is not a known rocker feature and will likely be ignored or confuse future maintainers. If this change wasn’t intentional, please revert to `nvidia` or another valid feature flag.
</issue_to_address>

### Comment 2
<location> `.claude/activate.sh:5-8` </location>
<code_context>
+# Usage: source .claude/activate.sh
+
+# Add pixi to PATH
+export PATH="$HOME/.pixi/bin:$PATH"
+
+# Optional: Activate pixi shell if available
</code_context>

<issue_to_address>
**suggestion:** Avoid repeatedly prepending `$HOME/.pixi/bin` to PATH when the script is sourced multiple times.

Because this script is intended to be sourced, it may be run multiple times in the same shell, causing `$HOME/.pixi/bin` to be prepended repeatedly. Consider guarding it with a check such as:

```sh
case :$PATH: in
  *:$HOME/.pixi/bin:*) ;;
  *) export PATH="$HOME/.pixi/bin:$PATH" ;;
esac
```

or an equivalent approach so the entry is only added once.

```suggestion
# Add pixi to PATH (only once)
case ":$PATH:" in
    *:"$HOME/.pixi/bin":*)
        # Already present, do nothing
        ;;
    *)
        export PATH="$HOME/.pixi/bin:$PATH"
        ;;
esac

# Optional: Activate pixi shell if available
```
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Comment thread .claude/activate.sh
Comment on lines +5 to +8
# Add pixi to PATH
export PATH="$HOME/.pixi/bin:$PATH"

# Optional: Activate pixi shell if available

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: Avoid repeatedly prepending $HOME/.pixi/bin to PATH when the script is sourced multiple times.

Because this script is intended to be sourced, it may be run multiple times in the same shell, causing $HOME/.pixi/bin to be prepended repeatedly. Consider guarding it with a check such as:

case :$PATH: in
  *:$HOME/.pixi/bin:*) ;;
  *) export PATH="$HOME/.pixi/bin:$PATH" ;;
esac

or an equivalent approach so the entry is only added once.

Suggested change
# Add pixi to PATH
export PATH="$HOME/.pixi/bin:$PATH"
# Optional: Activate pixi shell if available
# Add pixi to PATH (only once)
case ":$PATH:" in
*:"$HOME/.pixi/bin":*)
# Already present, do nothing
;;
*)
export PATH="$HOME/.pixi/bin:$PATH"
;;
esac
# Optional: Activate pixi shell if available

@blooop
blooop merged commit 12df49f into main Dec 22, 2025
7 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.

2 participants