From 810ebafb75f29c3c662d7855596a625e779df462 Mon Sep 17 00:00:00 2001 From: Mic Neale Date: Thu, 19 Dec 2024 14:31:01 +1100 Subject: [PATCH 1/6] this reduces a platform dep --- crates/goose/Cargo.toml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/goose/Cargo.toml b/crates/goose/Cargo.toml index 4b68fd44301c..f5f5933f988a 100644 --- a/crates/goose/Cargo.toml +++ b/crates/goose/Cargo.toml @@ -9,7 +9,7 @@ description.workspace = true [build-dependencies] tokio = { version = "1.36", features = ["full"] } -reqwest = { version = "0.11", features = ["json"] } +reqwest = { version = "0.12.9", features = ["json", "rustls-tls"], default-features = false } [dependencies] mcp-core = { path = "../mcp-core" } @@ -18,7 +18,7 @@ anyhow = "1.0" thiserror = "1.0" futures = "0.3" tokio-stream = "0.1" -reqwest = { version = "0.11", features = ["json"] } +reqwest = { version = "0.12.9", features = ["json", "rustls-tls"], default-features = false } tokio = { version = "1.0", features = ["full"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" @@ -39,7 +39,7 @@ sha2 = "0.10" base64 = "0.21" url = "2.5" urlencoding = "2.1.3" -axum = "0.7" +axum = { version = "0.7" } tower-http = { version = "0.5", features = ["cors"] } webbrowser = "0.8" dotenv = "0.15" @@ -72,4 +72,4 @@ path = "examples/databricks_oauth.rs" [[bench]] name = "tokenization_benchmark" -harness = false +harness = false \ No newline at end of file From e5afd3ab768f365aa7374f0a8b075e1f6bd9719d Mon Sep 17 00:00:00 2001 From: Mic Neale Date: Thu, 19 Dec 2024 16:57:58 +1100 Subject: [PATCH 2/6] making it more like the default but with rust-tls --- .github/workflows/ci.yaml | 2 +- crates/goose/Cargo.toml | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 4eaebbb5e8cf..8926d2d6e378 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -37,7 +37,7 @@ jobs: - name: Install Libs run: | sudo apt update -y - sudo apt install -y libdbus-1-dev libssl-dev gnome-keyring libxcb1-dev + sudo apt install -y libdbus-1-dev gnome-keyring libxcb1-dev - name: Start gnome-keyring # run gnome-keyring with 'foobar' as password for the login keyring diff --git a/crates/goose/Cargo.toml b/crates/goose/Cargo.toml index f5f5933f988a..47131df0dbe2 100644 --- a/crates/goose/Cargo.toml +++ b/crates/goose/Cargo.toml @@ -18,7 +18,18 @@ anyhow = "1.0" thiserror = "1.0" futures = "0.3" tokio-stream = "0.1" -reqwest = { version = "0.12.9", features = ["json", "rustls-tls"], default-features = false } +reqwest = { version = "0.12.9", features = [ + "rustls-tls", + "json", + "cookies", + "gzip", + "brotli", + "deflate", + "zstd", + "charset", + "http2", + "stream" + ], default-features = false } tokio = { version = "1.0", features = ["full"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" From 74fe32b34c09ec1eb9e173809ab645fea4c8710a Mon Sep 17 00:00:00 2001 From: Mic Neale Date: Thu, 19 Dec 2024 17:23:16 +1100 Subject: [PATCH 3/6] try multi platform release --- .github/workflows/cli-release.yml | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/.github/workflows/cli-release.yml b/.github/workflows/cli-release.yml index 55aa42efe6a9..da066e0da177 100644 --- a/.github/workflows/cli-release.yml +++ b/.github/workflows/cli-release.yml @@ -1,7 +1,7 @@ on: push: tags: - - "v1.*" + - "v01.*" workflow_dispatch: concurrency: @@ -15,17 +15,24 @@ jobs: name: Build ${{ matrix.os }}-${{ matrix.architecture }} runs-on: ${{ matrix.os }} strategy: - fail-fast: false # Allow independent failures + fail-fast: false matrix: include: # Linux x86_64 build on Ubuntu - os: ubuntu-latest architecture: x86_64 suffix: unknown-linux-gnu + + # Linux aarch64 (ARM64) build on Ubuntu via cross-compilation + - os: ubuntu-latest + architecture: aarch64 + suffix: unknown-linux-gnu + # macOS x86_64 build - os: macos-latest architecture: x86_64 suffix: apple-darwin + # macOS ARM64 build - os: macos-latest architecture: aarch64 @@ -37,6 +44,7 @@ jobs: uses: actions/checkout@v4 # Step 2: Set up Rust toolchain + # This will install the specified target as per matrix - name: Set up Rust toolchain uses: actions-rust-lang/setup-rust-toolchain@v1 with: @@ -50,15 +58,23 @@ jobs: rustup target add aarch64-apple-darwin echo "export PATH=$(brew --prefix llvm)/bin:\$PATH" >> $GITHUB_ENV - - name: Install Libs for Ubuntu linux + # Step 4: Install Libs for Ubuntu (x86_64 and aarch64) + - name: Install Libs for Ubuntu if: matrix.os == 'ubuntu-latest' run: | sudo apt update -y - sudo apt install -y libdbus-1-dev libssl-dev gnome-keyring libxcb1-dev + sudo apt install -y libdbus-1-dev gnome-keyring libxcb1-dev gnome-keyring-daemon --components=secrets --daemonize --unlock <<< 'foobar' + # Additional step: Install dependencies for Linux aarch64 (cross-compilation) + - name: Install dependencies for Linux aarch64 + if: matrix.os == 'ubuntu-latest' && matrix.architecture == 'aarch64' + run: | + sudo apt-get update + sudo apt-get install -y gcc-aarch64-linux-gnu + rustup target add aarch64-unknown-linux-gnu - # Step 4: Build the project + # Step 5: Build the project - name: Build run: | export TARGET=${{ matrix.architecture }}-${{ matrix.suffix }} @@ -67,7 +83,7 @@ jobs: tar -cjf goose-${TARGET}.tar.bz2 goose goosed echo "ARTIFACT=target/${TARGET}/release/goose-${TARGET}.tar.bz2" >> $GITHUB_ENV - # Step 5: Upload artifacts + # Step 6: Upload artifacts - name: Upload artifact uses: actions/upload-artifact@v4 with: @@ -87,7 +103,7 @@ jobs: with: merge-multiple: true - # Step 2: Publish release with artifacts + # Step 2: Create GitHub release with artifacts - name: Create GitHub release uses: ncipollo/release-action@v1 with: From 05b5fb1d5ec848c9445a330ecd15cd261a931cb6 Mon Sep 17 00:00:00 2001 From: Mic Neale Date: Thu, 19 Dec 2024 17:47:31 +1100 Subject: [PATCH 4/6] ensuring rust-tls in use --- crates/goose-cli/Cargo.toml | 13 ++++++++++++- crates/mcp-client/Cargo.toml | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/crates/goose-cli/Cargo.toml b/crates/goose-cli/Cargo.toml index 4821c57c8586..76c747603dfa 100644 --- a/crates/goose-cli/Cargo.toml +++ b/crates/goose-cli/Cargo.toml @@ -30,7 +30,18 @@ serde_yaml = "0.9" dirs = "4.0" strum = "0.26" strum_macros = "0.26" -reqwest = "0.11.27" +reqwest = { version = "0.12.9", features = [ + "rustls-tls", + "json", + "cookies", + "gzip", + "brotli", + "deflate", + "zstd", + "charset", + "http2", + "stream" + ], default-features = false } rand = "0.8.5" async-trait = "0.1" rustyline = "15.0.0" diff --git a/crates/mcp-client/Cargo.toml b/crates/mcp-client/Cargo.toml index 6de3d390332e..ffec1f833cfa 100644 --- a/crates/mcp-client/Cargo.toml +++ b/crates/mcp-client/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" [dependencies] mcp-core = { path = "../mcp-core" } tokio = { version = "1", features = ["full"] } -reqwest = { version = "0.11", default-features = false, features = ["json", "stream", "rustls-tls"] } +reqwest = { version = "0.12.9", default-features = false, features = ["json", "stream", "rustls-tls"] } reqwest-eventsource = "0.5.0" futures-util = "0.3" serde = { version = "1.0", features = ["derive"] } From b98e63b3d5ce536579dbf8c6ab09f94c2020a708 Mon Sep 17 00:00:00 2001 From: Mic Neale Date: Thu, 19 Dec 2024 18:42:39 +1100 Subject: [PATCH 5/6] bump version to be compatible --- crates/mcp-client/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/mcp-client/Cargo.toml b/crates/mcp-client/Cargo.toml index ffec1f833cfa..976613eca6ee 100644 --- a/crates/mcp-client/Cargo.toml +++ b/crates/mcp-client/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" mcp-core = { path = "../mcp-core" } tokio = { version = "1", features = ["full"] } reqwest = { version = "0.12.9", default-features = false, features = ["json", "stream", "rustls-tls"] } -reqwest-eventsource = "0.5.0" +reqwest-eventsource = "0.6.0" futures-util = "0.3" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" From c7d1d7a9a52ce0bf99829505d1a0f3887a569582 Mon Sep 17 00:00:00 2001 From: Mic Neale Date: Fri, 20 Dec 2024 09:55:48 +1100 Subject: [PATCH 6/6] trimming down releases --- .github/workflows/cli-release.yml | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/.github/workflows/cli-release.yml b/.github/workflows/cli-release.yml index da066e0da177..3d8d76f3b629 100644 --- a/.github/workflows/cli-release.yml +++ b/.github/workflows/cli-release.yml @@ -23,10 +23,7 @@ jobs: architecture: x86_64 suffix: unknown-linux-gnu - # Linux aarch64 (ARM64) build on Ubuntu via cross-compilation - - os: ubuntu-latest - architecture: aarch64 - suffix: unknown-linux-gnu + # TODO: Linux aarch64 (ARM64) build on Ubuntu via cross-compilation - probably use `cross-rs` # macOS x86_64 build - os: macos-latest @@ -66,13 +63,6 @@ jobs: sudo apt install -y libdbus-1-dev gnome-keyring libxcb1-dev gnome-keyring-daemon --components=secrets --daemonize --unlock <<< 'foobar' - # Additional step: Install dependencies for Linux aarch64 (cross-compilation) - - name: Install dependencies for Linux aarch64 - if: matrix.os == 'ubuntu-latest' && matrix.architecture == 'aarch64' - run: | - sudo apt-get update - sudo apt-get install -y gcc-aarch64-linux-gnu - rustup target add aarch64-unknown-linux-gnu # Step 5: Build the project - name: Build