jetstream 16.0.0

Jetstream is a RPC framework for Rust, based on the 9P protocol and QUIC.
Documentation
name: Release Please🙏!

permissions:
  contents: write
  pull-requests: write

on:
  push:
    branches:
      - main
jobs:
  release-please:
    runs-on: ubuntu-latest
    steps:
      - uses: googleapis/release-please-action@v4
        id: release
        with:
          token: ${{ secrets.BOT_PAT }}
          config-file: release-please-config.json
          # optional. customize path to .release-please-manifest.json
          manifest-file: .release-please-manifest.json
          target-branch: ${{ github.ref_name }}
          release-type: rust

      - uses: actions/checkout@v4

      - name: Install Rust toolchain
        uses: dtolnay/rust-toolchain@stable

      - name: Install system dependencies
        run: |
          sudo apt-get update -y
          sudo apt-get install -y libssl-dev pkg-config

      - name: Install wasm-pack
        uses: jetli/wasm-pack-action@v0.4.0

      - name: Publish to crates.io (dry-run)
        if: ${{ steps.release.outputs.pr }}
        run: |
          cargo publish --workspace --token ${{ secrets.CARGO_REGISTRY_TOKEN }} --dry-run

      - name: Enable auto-merge
        if: ${{ steps.release.outputs.pr }}
        run: gh pr merge --auto --rebase ${{ fromJSON(steps.release.outputs.pr).number }}
        env:
          GH_TOKEN: ${{ secrets.BOT_PAT }}

      - name: Configure git
        if: ${{ steps.release.outputs.release_created }}
        run: |
          git config user.name okmachina
          git config user.email 163742220+okmachina@users.noreply.github.com

      - name: Tag major and minor versions
        if: ${{ steps.release.outputs.release_created }}
        run: |
          git remote add gh-token "https://${{ secrets.BOT_PAT }}@github.com/google-github-actions/release-please-action.git"
          git tag -d v${{ steps.release.outputs.major }} || true
          git tag -d v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} || true
          git push origin :v${{ steps.release.outputs.major }} || true
          git push origin :v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} || true
          git tag -a v${{ steps.release.outputs.major }} -m "Release v${{ steps.release.outputs.major }}"
          git tag -a v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} -m "Release v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}"
          git push origin v${{ steps.release.outputs.major }}
          git push origin v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}

      - name: Publish to crates.io
        if: ${{ steps.release.outputs.release_created }}
        run: |
          cargo publish --workspace --token ${{ secrets.CARGO_REGISTRY_TOKEN }}