diff --git a/.github/workflows/ci-python.yml b/.github/workflows/ci-python.yml index b42cb68e1..34f8c64bb 100644 --- a/.github/workflows/ci-python.yml +++ b/.github/workflows/ci-python.yml @@ -7,13 +7,13 @@ on: - compass/** - .github/workflows/ci-python.yml - pyproject.toml - - "*.lock" + - pixi.lock pull_request: paths: - compass/** - .github/workflows/ci-python.yml - pyproject.toml - - "*.lock" + - pixi.lock workflow_dispatch: jobs: @@ -56,6 +56,7 @@ jobs: environments: pdev - run: | + pixi reinstall -e pdev --locked NREL-COMPASS pixi run -e pdev --locked tests-u unit-tests: diff --git a/.github/workflows/ci-rust.yml b/.github/workflows/ci-rust_code.yml similarity index 96% rename from .github/workflows/ci-rust.yml rename to .github/workflows/ci-rust_code.yml index 42e52eae0..debc93f5e 100644 --- a/.github/workflows/ci-rust.yml +++ b/.github/workflows/ci-rust_code.yml @@ -1,4 +1,4 @@ -name: Rust checks +name: Rust Checks on: push: @@ -12,7 +12,7 @@ on: - Cargo.lock - .github/workflows/ci-rust.yml - pyproject.toml - - "*.lock" + - pixi.lock pull_request: paths: - crates/** @@ -20,13 +20,13 @@ on: - Cargo.lock - .github/workflows/ci-rust.yml - pyproject.toml - - "*.lock" + - pixi.lock schedule: - cron: '0 5 * * 1' jobs: check: - name: Rust - Check + name: Rust - Cargo Check runs-on: ubuntu-latest steps: - name: Checkout sources @@ -53,7 +53,7 @@ jobs: lints: # Only run tests if code looks OK needs: check - name: Rust - Lint + name: Rust - Clippy Lint runs-on: ubuntu-latest steps: - name: Checkout sources @@ -84,7 +84,7 @@ jobs: test: # Only run tests if code looks OK needs: check - name: Rust - Test + name: Rust - Tests runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -110,7 +110,7 @@ jobs: - run: pixi run -e rdev tests-r publish-dry: - name: Rust - Publish (dry-run) + name: Rust - Publishing (dry-run) # Only run tests if code looks OK needs: check runs-on: ubuntu-latest diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 0699b57c5..df057f593 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -8,14 +8,14 @@ on: - compass/** - .github/workflows/docs.yml - pyproject.toml - - "*.lock" + - pixi.lock push: branches: [main] paths: - compass/** - .github/workflows/docs.yml - pyproject.toml - - "*.lock" + - pixi.lock release: types: [created, published] workflow_dispatch: diff --git a/.github/workflows/update_pixi_lock.yaml b/.github/workflows/update_pixi_lock.yaml deleted file mode 100644 index 80127ee0c..000000000 --- a/.github/workflows/update_pixi_lock.yaml +++ /dev/null @@ -1,70 +0,0 @@ -name: Update Pixi lockfile - -on: - workflow_dispatch: - release: - types: [published] - schedule: - - cron: "0 3 * * 1" - -permissions: - contents: write - pull-requests: write - -jobs: - update: - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v5 - with: - ref: main - fetch-depth: 0 - fetch-tags: true - - - uses: prefix-dev/setup-pixi@v0.9.3 - with: - pixi-version: v0.59.0 - cache: false - - - name: Run Pixi update - run: | - pixi update - pixi update nrel-compass - pixi reinstall -e pdev - - - name: Determine trigger message - id: trigger - run: | - if [ "${{ github.event_name }}" = "release" ]; then - rel_url="${{ github.event.release.html_url }}" - rel_tag="${{ github.event.release.tag_name }}" - echo "msg=Triggered by [release ${rel_tag}](${rel_url})." >> $GITHUB_OUTPUT - elif [ "${{ github.event_name }}" = "schedule" ]; then - echo "msg=Triggered by a scheduled run." >> $GITHUB_OUTPUT - elif [ "${{ github.event_name }}" = "workflow_dispatch" ]; then - echo "msg=Triggered manually by ${{ github.actor }}." >> $GITHUB_OUTPUT - else - echo "msg=Triggered automatically by ${{ github.event_name }}." >> $GITHUB_OUTPUT - fi - - - name: Create PR - uses: peter-evans/create-pull-request@v7 - with: - commit-message: "chore: update pixi dependencies" - title: "Update pixi lockfile" - body: | - This PR was automatically generated by the **Pixi lockfile update workflow**. - - ${{ steps.trigger.outputs.msg }} - - **Workflow details:** - - Actor: `${{ github.actor }}` - - Branch: `${{ github.ref_name }}` - - Workflow run: [View run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) - - branch: "auto/pixi-update" - base: "main" - delete-branch: true - labels: dependencies, github_actions, chore diff --git a/docs/source/dev/README.rst b/docs/source/dev/README.rst index ee5e992be..25baa8d1f 100644 --- a/docs/source/dev/README.rst +++ b/docs/source/dev/README.rst @@ -377,10 +377,17 @@ When you are ready to release a new version of COMPASS, please follow these step 5) Click on the "Select Tag" dropdown and type in a **new** tag. Be sure to follow `Semantic Versioning `_. You may be prompted to create the new tag - make sure to do so 6) Proofread the release notes and make any necessary adjustments 7) Click "Publish Release" -8) Once the release is published and the tag has been created, verify that a PR has been opened to update the pixi lockfile (you may have to wait some time for the GHA to run) -9) Fill out any missing details in the PR (set yourself as the assignee, add any relevant project and milestone details, etc.) -10) Request a review from another core COMPASS developer and merge the PR once approved +8) Once the release is published and the tag has been created, you need to manually update the pixi lockfile: + + a) Check out a new branch (e.g., ``update-lockfile-vX.Y.Z``) + b) Run ``pixi update nrel-compass`` to update the lockfile with the new COMPASS version + c) If needed, run ``pixi reinstall`` or ``pixi reinstall -e pdev`` to ensure the environment is consistent + d) Commit the updated ``pixi.lock`` file + e) Push your branch and open a PR with a title like "Update pixi lockfile for vX.Y.Z release" + f) Fill out any missing details in the PR (set yourself as the assignee, add any relevant project and milestone details, etc.) + g) Request a review from another core COMPASS developer and merge the PR once approved Congratulations, you have just released a new version of COMPASS! + You may want to verify that the release has been published to `PyPi `_ (if not, check the "Upload to PyPi" GitHub Action).