bitdag 0.1.2

A crate to deconstruct the hierrachie of a DAG into a Bitmatrix for fast child-parent-queries.
Documentation
name: Manual Release & Publish

on:
  workflow_dispatch:
    inputs:
      version:
        description: 'Version to release (e.g. 1.2.3)'
        required: true
        type: string

permissions:
  contents: write
  pull-requests: write

jobs:
  release:
    name: Release
    runs-on: ubuntu-latest
    timeout-minutes: 15
    steps:
      - uses: actions/checkout@v4

      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          override: true

      - name: Install cargo-edit
        run: cargo install cargo-edit

      - name: Bump Version in Cargo.toml
        id: set_version
        run: |
          VERSION="${{ github.event.inputs.version }}"
          echo "Setting version to: $VERSION"
          
          # Bump the version using cargo-edit
          cargo set-version $VERSION
          
          # Output for later steps
          echo "version=$VERSION" >> "$GITHUB_OUTPUT"

      - name: Get package name
        id: package_name
        run: |
          PACKAGE_NAME=$(cargo metadata --no-deps --format-version 1 | jq -r '.packages[0].name')
          echo "name=$PACKAGE_NAME" >> "$GITHUB_OUTPUT"

      - name: Publish to Crates.io
        run: |
          cargo publish --token ${{ secrets.CARGO_REGISTRY_TOKEN }} --allow-dirty --color always

      - name: Create Pull Request
        id: cpr
        uses: peter-evans/create-pull-request@v6
        with:
          token: ${{ secrets.PERSONAL_TOKEN }}
          commit-message: "chore: release v${{ steps.set_version.outputs.version }}"
          committer: GitHub <noreply@github.com>
          author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>
          branch: release/v${{ steps.set_version.outputs.version }}
          base: main
          delete-branch: true
          title: "chore: release v${{ steps.set_version.outputs.version }}"
          body: |
            Automated release PR for version ${{ steps.set_version.outputs.version }}.
          labels: |
            automated
            publish

      - name: Create GitHub Release
        uses: softprops/action-gh-release@v1
        with:
          tag_name: v${{ steps.set_version.outputs.version }}
          name: Release v${{ steps.set_version.outputs.version }}
          body: "Release of version ${{ steps.set_version.outputs.version }}"
          target_commitish: ${{ steps.cpr.outputs.pull-request-head-sha }}
          generate_release_notes: true
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}