Bläddra i källkod

fix(CI): migrate to Rust 1.88 (#1845)

Signed-off-by: salaheldinsoliman <salaheldin_sameh@aucegypt.edu>
salaheldinsoliman 2 veckor sedan
förälder
incheckning
3bee10a3ba

+ 5 - 5
.github/workflows/build_binaries.yml

@@ -18,7 +18,7 @@ jobs:
       - uses: actions/checkout@v4
         with:
           submodules: recursive
-      - uses: dtolnay/rust-toolchain@1.85.0
+      - uses: dtolnay/rust-toolchain@1.88.0
       - name: Build
         run: cargo build --verbose --release
       - name: Test
@@ -43,7 +43,7 @@ jobs:
       - run: |
           sudo apt-get update
           sudo apt-get install -y gcc g++ make
-      - uses: dtolnay/rust-toolchain@1.85.0
+      - uses: dtolnay/rust-toolchain@1.88.0
       - run: curl -sSL --output llvm16.0-linux-arm64.tar.xz https://github.com/hyperledger-solang/solang-llvm/releases/download/llvm16-0/llvm16.0-linux-arm64.tar.xz
       - run: tar Jxf llvm16.0-linux-arm64.tar.xz
       - run: echo "$(pwd)/llvm16.0/bin" >> $GITHUB_PATH
@@ -67,7 +67,7 @@ jobs:
       - run: curl -sSL -o c:\llvm.zip https://github.com/hyperledger-solang/solang-llvm/releases/download/llvm16-0/llvm16.0-win.zip
       - run: unzip c:\llvm.zip -d c:/
       - run: echo "c:\llvm16.0\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8
-      - uses: dtolnay/rust-toolchain@1.85.0
+      - uses: dtolnay/rust-toolchain@1.88.0
         with:
           components: clippy
       - run: cargo build --release --verbose
@@ -87,7 +87,7 @@ jobs:
       - uses: actions/checkout@v4
         with:
           submodules: recursive
-      - uses: dtolnay/rust-toolchain@1.85.0
+      - uses: dtolnay/rust-toolchain@1.88.0
       - run: curl -sSL --output llvm16.0-mac-arm.tar.xz https://github.com/hyperledger-solang/solang-llvm/releases/download/llvm16-0/llvm16.0-mac-arm.tar.xz
       - run: tar Jxf llvm16.0-mac-arm.tar.xz
       - run: echo "$(pwd)/llvm16.0/bin" >> $GITHUB_PATH
@@ -108,7 +108,7 @@ jobs:
       - uses: actions/checkout@v4
         with:
           submodules: recursive
-      - uses: dtolnay/rust-toolchain@1.85.0
+      - uses: dtolnay/rust-toolchain@1.88.0
       - run: wget -q -O llvm16.0-mac-intel.tar.xz https://github.com/hyperledger-solang/solang-llvm/releases/download/llvm16-0/llvm16.0-mac-intel.tar.xz
       - run: tar Jxf llvm16.0-mac-intel.tar.xz
       - run: echo "$(pwd)/llvm16.0/bin" >> $GITHUB_PATH

+ 5 - 5
.github/workflows/release.yml

@@ -15,7 +15,7 @@ jobs:
       uses: actions/checkout@v4
       with:
         submodules: recursive
-    - uses: dtolnay/rust-toolchain@1.85.0
+    - uses: dtolnay/rust-toolchain@1.88.0
     - name: Build
       run: cargo build --verbose --release
     - name: Run tests
@@ -41,7 +41,7 @@ jobs:
       run: |
         sudo apt-get update
         sudo apt-get install -y gcc g++ make
-    - uses: dtolnay/rust-toolchain@1.85.0
+    - uses: dtolnay/rust-toolchain@1.88.0
     - name: Get LLVM
       run: curl -sSL --output llvm16.0-linux-arm64.tar.xz https://github.com/hyperledger-solang/solang-llvm/releases/download/llvm16-0/llvm16.0-linux-arm64.tar.xz
     - name: Extract LLVM
@@ -74,7 +74,7 @@ jobs:
       run: unzip c:\llvm.zip -d c:/
     - name: Add LLVM to Path
       run: echo "c:\llvm16.0\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8
-    - uses: dtolnay/rust-toolchain@1.85.0
+    - uses: dtolnay/rust-toolchain@1.88.0
       with:
         components: clippy
     - name: Build
@@ -97,7 +97,7 @@ jobs:
       uses: actions/checkout@v4
       with:
         submodules: recursive
-    - uses: dtolnay/rust-toolchain@1.85.0
+    - uses: dtolnay/rust-toolchain@1.88.0
     - name: Get LLVM
       run: curl -sSL --output llvm16.0-mac-arm.tar.xz https://github.com/hyperledger-solang/solang-llvm/releases/download/llvm16-0/llvm16.0-mac-arm.tar.xz
     - name: Extract LLVM
@@ -124,7 +124,7 @@ jobs:
       uses: actions/checkout@v4
       with:
         submodules: recursive
-    - uses: dtolnay/rust-toolchain@1.85.0
+    - uses: dtolnay/rust-toolchain@1.88.0
     - name: Get LLVM
       run: wget -q -O llvm16.0-mac-intel.tar.xz https://github.com/hyperledger-solang/solang-llvm/releases/download/llvm16-0/llvm16.0-mac-intel.tar.xz
     - name: Extract LLVM

+ 1 - 1
docs/installing.rst

@@ -89,7 +89,7 @@ Option 5: Build Solang from source
 
 In order to build Solang from source, you will need:
 
-* Rust version 1.85.0 or higher
+* Rust version 1.88.0 or higher
 * A C++ compiler with support for C++17
 * A build of LLVM based on the Solana LLVM tree. There are a few LLVM patches required that are not upstream yet.
 

+ 8 - 9
tests/cli.rs

@@ -1,12 +1,12 @@
 // SPDX-License-Identifier: Apache-2.0
 
-use assert_cmd::Command;
+use assert_cmd::cargo_bin_cmd;
 use std::fs::File;
 use tempfile::TempDir;
 
 #[test]
 fn create_output_dir() {
-    let mut cmd = Command::cargo_bin("solang").unwrap();
+    let mut cmd = cargo_bin_cmd!("solang");
 
     let tmp = TempDir::new_in("tests").unwrap();
 
@@ -26,7 +26,7 @@ fn create_output_dir() {
     File::open(test1.join("flipper.json")).expect("should exist");
     File::open(test1.join("flipper.so")).expect("should exist");
 
-    let mut cmd = Command::cargo_bin("solang").unwrap();
+    let mut cmd = cargo_bin_cmd!("solang");
 
     let test2 = tmp.path().join("test2");
     let test2_meta = tmp.path().join("test2_meta");
@@ -59,7 +59,7 @@ fn create_output_dir() {
         "warning: the `authors` flag will be ignored for Solana target\n"
     );
 
-    let mut cmd = Command::cargo_bin("solang").unwrap();
+    let mut cmd = cargo_bin_cmd!("solang");
 
     cmd.args([
         "compile",
@@ -72,7 +72,7 @@ fn create_output_dir() {
     .assert()
     .failure();
 
-    let mut cmd = Command::cargo_bin("solang").unwrap();
+    let mut cmd = cargo_bin_cmd!("solang");
 
     let test3 = tmp.path().join("test3");
 
@@ -95,7 +95,7 @@ fn create_output_dir() {
 
 #[test]
 fn basic_compilation_from_toml() {
-    let mut new_cmd = Command::cargo_bin("solang").unwrap();
+    let mut new_cmd = cargo_bin_cmd!("solang");
     let tmp = TempDir::new_in("tests").unwrap();
 
     let solana_test = tmp.path().join("solana_test");
@@ -111,7 +111,7 @@ fn basic_compilation_from_toml() {
     File::open(solana_test.join("solang.toml")).expect("should exist");
 
     // compile flipper using config file
-    let mut compile_cmd = Command::cargo_bin("solang").unwrap();
+    let mut compile_cmd = cargo_bin_cmd!("solang");
 
     compile_cmd
         .args(["compile"])
@@ -120,8 +120,7 @@ fn basic_compilation_from_toml() {
         .success();
 
     let polkadot_test = tmp.path().join("polkadot_test");
-    let _new_cmd = Command::cargo_bin("solang")
-        .unwrap()
+    let _new_cmd = cargo_bin_cmd!("solang")
         .arg("new")
         .arg(polkadot_test.clone())
         .args(["--target", "solana"])

+ 2 - 2
tests/codegen.rs

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: Apache-2.0
 
-use assert_cmd::Command;
+use assert_cmd::cargo_bin_cmd;
 use rayon::prelude::*;
 use std::ffi::OsString;
 use std::fs::File;
@@ -89,7 +89,7 @@ fn testcase(path: PathBuf) {
     let args = command_line.expect("cannot find RUN: line");
     assert_ne!(checks.len() + fails.len(), 0);
 
-    let mut cmd = Command::cargo_bin("solang").unwrap();
+    let mut cmd = cargo_bin_cmd!("solang");
     let assert = cmd
         .arg("compile")
         .args(args.split_whitespace())

+ 13 - 13
tests/imports.rs

@@ -1,10 +1,10 @@
 // SPDX-License-Identifier: Apache-2.0
 
-use assert_cmd::Command;
+use assert_cmd::cargo_bin_cmd;
 
 #[test]
 fn import_map_dup() {
-    let mut cmd = Command::cargo_bin("solang").unwrap();
+    let mut cmd = cargo_bin_cmd!("solang");
     let run = cmd
         .args([
             "compile",
@@ -29,7 +29,7 @@ fn import_map_dup() {
 
 #[test]
 fn import_map_badpath() {
-    let mut cmd = Command::cargo_bin("solang").unwrap();
+    let mut cmd = cargo_bin_cmd!("solang");
     let run = cmd
         .args([
             "compile",
@@ -50,7 +50,7 @@ fn import_map_badpath() {
 
 #[test]
 fn import_map() {
-    let mut cmd = Command::cargo_bin("solang").unwrap();
+    let mut cmd = cargo_bin_cmd!("solang");
     let assert = cmd
         .args([
             "compile",
@@ -68,7 +68,7 @@ fn import_map() {
 
     assert_eq!(String::from_utf8_lossy(&output.stderr), "");
 
-    let mut cmd = Command::cargo_bin("solang").unwrap();
+    let mut cmd = cargo_bin_cmd!("solang");
     let badpath = cmd
         .args(["compile", "import_map.sol", "--target", "solana"])
         .current_dir("tests/imports_testcases")
@@ -85,7 +85,7 @@ fn import_map() {
 
 #[test]
 fn import() {
-    let mut cmd = Command::cargo_bin("solang").unwrap();
+    let mut cmd = cargo_bin_cmd!("solang");
     let assert = cmd
         .args([
             "compile",
@@ -103,7 +103,7 @@ fn import() {
 
     assert_eq!(String::from_utf8_lossy(&output.stderr), "");
 
-    let mut cmd = Command::cargo_bin("solang").unwrap();
+    let mut cmd = cargo_bin_cmd!("solang");
     let badpath = cmd
         .args(["compile", "--target", "solana", "import.sol"])
         .current_dir("tests/imports_testcases")
@@ -120,7 +120,7 @@ fn import() {
 
 #[test]
 fn contract_name_defined_twice() {
-    let mut cmd = Command::cargo_bin("solang").unwrap();
+    let mut cmd = cargo_bin_cmd!("solang");
 
     let ok = cmd
         .args(["compile", "--target", "solana", "bar.sol", "rel.sol"])
@@ -132,7 +132,7 @@ fn contract_name_defined_twice() {
 
     assert_eq!(String::from_utf8_lossy(&output.stderr), "");
 
-    let mut cmd = Command::cargo_bin("solang").unwrap();
+    let mut cmd = cargo_bin_cmd!("solang");
 
     let not_ok = cmd
         .args([
@@ -159,7 +159,7 @@ fn contract_name_defined_twice() {
 
 #[test]
 fn bad_escape() {
-    let mut cmd = Command::cargo_bin("solang").unwrap();
+    let mut cmd = cargo_bin_cmd!("solang");
 
     let not_ok = cmd
         .args([
@@ -188,7 +188,7 @@ fn bad_escape() {
 // Note Windows allows these as relative paths, but we do not.
 #[test]
 fn backslash_path() {
-    let mut cmd = Command::cargo_bin("solang").unwrap();
+    let mut cmd = cargo_bin_cmd!("solang");
 
     let not_ok = cmd
         .args([
@@ -222,7 +222,7 @@ fn backslash_path() {
 
 #[test]
 fn found_two_files() {
-    let mut cmd = Command::cargo_bin("solang").unwrap();
+    let mut cmd = cargo_bin_cmd!("solang");
     let run = cmd
         .args([
             "compile",
@@ -247,7 +247,7 @@ fn found_two_files() {
 
     assert!(error.contains("error: import paths 'imports', 'meh' specified more than once"));
 
-    let mut cmd = Command::cargo_bin("solang").unwrap();
+    let mut cmd = cargo_bin_cmd!("solang");
     let run = cmd
         .args([
             "compile",

+ 2 - 2
tests/solang_import_resolution_tests.rs

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: Apache-2.0
 
-use assert_cmd::Command;
+use assert_cmd::{cargo_bin_cmd, Command};
 use std::path::PathBuf;
 
 fn solang_import_resolution_tests() -> PathBuf {
@@ -11,7 +11,7 @@ fn solang_import_resolution_tests() -> PathBuf {
 
 fn make_run(dir: &str) -> Command {
     let current_dir = solang_import_resolution_tests().join(dir);
-    let mut cmd = Command::cargo_bin("solang").unwrap();
+    let mut cmd = cargo_bin_cmd!("solang");
     cmd.current_dir(current_dir)
         .args(["compile", "--target", "solana"]);
     cmd