Force forc to stick to a specific version

What is the approach to making forc stay on a specific version (in my case for beta-5)?

It seems like ‘latest’ is installing 0.55.0 of forc which doesn’t work with beta-5 testnet nicely (eg: Server returned 404 Not Found - #3 by chappie1998).

And I’m not sure if installing and making beta5 default is doing anything?

❯ fuelup default beta-5
default toolchain set to 'beta-5-x86_64-unknown-linux-gnu'

Creating a custom toolchain seems to be the only way I have found to get this to work:

~/Documents/code/fuel/sway-applications/NFT master* ⇣⇡
❯ fuelup toolchain new custom-beta-5
New toolchain initialized: custom-beta-5
default toolchain set to 'custom-beta-5'

~/Documents/code/fuel/sway-applications/NFT master* ⇣⇡
❯ fuelup component add forc@0.49.3

This is confusing as most developers at the moment would want to interact with the beta-5 testnet.

This is rather frustraiting, I can see the correct version is installed, but I can’t use it.

Here is terminal output showing what I mean:

~/Documents/code/fuel/sway-applications/NFT master* ⇣⇡
❯ rm -rf ~/.fuelup

~/Documents/code/fuel/sway-applications/NFT master* ⇣⇡
❯ curl https://install.fuel.network | sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 15660    0 15660    0     0  18325      0 --:--:-- --:--:-- --:--:-- 18315

fuelup uses "/home/jasoons/.fuelup" as its home directory to manage the Fuel toolchain, and will install binaries there.

To use the toolchain, you will have to configure your PATH, which tells your machine where to locate fuelup and the Fuel toolchain.

If permitted, fuelup-init will configure your PATH for you by running the following:

    echo "export PATH="$HOME/.fuelup/bin:$PATH"" >> /home/jasoons/.zshrc

Would you like fuelup-init to modify your PATH variable for you? (N/y)
n

fuelup will not modify your PATH variable for you.

info: downloading fuelup 0.22.0
[00:00:00] [########################################] 4.87 KiB/4.87 KiB (0s) - Download complete                                   Downloading: forc forc-explore forc-wallet fuel-core fuel-core-keygen

Adding component forc v0.49.3 to 'latest-x86_64-unknown-linux-gnu'
Caching fuels version at /home/jasoons/.fuelup/store/forc-0.49.3/fuels_version
Fetching binary from https://github.com/FuelLabs/sway/releases/download/v0.49.3-patch.1/forc-binaries-linux_amd64.tar.gz
[00:00:08] [########################################] 104.89 MiB/104.89 MiB (0s) - Download complete                               Unpacking and moving forc-deploy to /home/jasoons/.fuelup/store/forc-0.49.3
Unpacking and moving ._forc-run to /home/jasoons/.fuelup/store/forc-0.49.3
Unpacking and moving ._forc-fmt to /home/jasoons/.fuelup/store/forc-0.49.3
Unpacking and moving forc-crypto to /home/jasoons/.fuelup/store/forc-0.49.3
Unpacking and moving ._forc-debug to /home/jasoons/.fuelup/store/forc-0.49.3
Unpacking and moving forc-tx to /home/jasoons/.fuelup/store/forc-0.49.3
Unpacking and moving forc-run to /home/jasoons/.fuelup/store/forc-0.49.3
Unpacking and moving ._forc-submit to /home/jasoons/.fuelup/store/forc-0.49.3
Unpacking and moving forc-doc to /home/jasoons/.fuelup/store/forc-0.49.3
Unpacking and moving ._forc-crypto to /home/jasoons/.fuelup/store/forc-0.49.3
Unpacking and moving forc to /home/jasoons/.fuelup/store/forc-0.49.3
Unpacking and moving ._forc-deploy to /home/jasoons/.fuelup/store/forc-0.49.3
Unpacking and moving ._forc-lsp to /home/jasoons/.fuelup/store/forc-0.49.3
Unpacking and moving ._forc-doc to /home/jasoons/.fuelup/store/forc-0.49.3
Unpacking and moving forc-debug to /home/jasoons/.fuelup/store/forc-0.49.3
Unpacking and moving forc-fmt to /home/jasoons/.fuelup/store/forc-0.49.3
Unpacking and moving ._forc-tx to /home/jasoons/.fuelup/store/forc-0.49.3
Unpacking and moving forc-submit to /home/jasoons/.fuelup/store/forc-0.49.3
Unpacking and moving forc-lsp to /home/jasoons/.fuelup/store/forc-0.49.3
Unpacking and moving ._forc to /home/jasoons/.fuelup/store/forc-0.49.3
Fetching core forc dependencies
Installed forc v0.49.3 for toolchain 'latest-x86_64-unknown-linux-gnu'

Adding component forc-explore v0.28.1 to 'latest-x86_64-unknown-linux-gnu'
Fetching binary from https://github.com/FuelLabs/forc-explorer/releases/download/v0.28.1/forc-explore-0.28.1-x86_64-unknown-linux-gnu.tar.gz
[00:00:00] [########################################] 3.00 MiB/3.00 MiB (0s) - Download complete                                   Unpacking and moving forc-explore to /home/jasoons/.fuelup/store/forc-explore-0.28.1
Installed forc-explore v0.28.1 for toolchain 'latest-x86_64-unknown-linux-gnu'

Adding component forc-wallet v0.4.3 to 'latest-x86_64-unknown-linux-gnu'
Caching fuels version at /home/jasoons/.fuelup/store/forc-wallet-0.4.3/fuels_version
Fetching binary from https://github.com/FuelLabs/forc-wallet/releases/download/v0.4.3/forc-wallet-0.4.3-x86_64-unknown-linux-gnu.tar.gz
[00:00:00] [########################################] 5.70 MiB/5.70 MiB (0s) - Download complete                                   Unpacking and moving forc-wallet to /home/jasoons/.fuelup/store/forc-wallet-0.4.3
Installed forc-wallet v0.4.3 for toolchain 'latest-x86_64-unknown-linux-gnu'

Adding component fuel-core v0.22.4 to 'latest-x86_64-unknown-linux-gnu'
Fetching binary from https://github.com/FuelLabs/fuel-core/releases/download/v0.22.4/fuel-core-0.22.4-x86_64-unknown-linux-gnu.tar.gz
[00:00:00] [########################################] 12.74 MiB/12.74 MiB (0s) - Download complete                                 Unpacking and moving fuel-core to /home/jasoons/.fuelup/store/fuel-core-0.22.4
Unpacking and moving fuel-core-keygen to /home/jasoons/.fuelup/store/fuel-core-0.22.4
Installed fuel-core v0.22.4 for toolchain 'latest-x86_64-unknown-linux-gnu'

Adding component fuel-core-keygen v0.22.4 to 'latest-x86_64-unknown-linux-gnu'
Fetching binary from https://github.com/FuelLabs/fuel-core/releases/download/v0.22.4/fuel-core-0.22.4-x86_64-unknown-linux-gnu.tar.gz
[00:00:00] [########################################] 12.74 MiB/12.74 MiB (0s) - Download complete                                 Unpacking and moving fuel-core to /home/jasoons/.fuelup/store/fuel-core-keygen-0.22.4
Unpacking and moving fuel-core-keygen to /home/jasoons/.fuelup/store/fuel-core-keygen-0.22.4
Installed fuel-core-keygen v0.22.4 for toolchain 'latest-x86_64-unknown-linux-gnu'

Installed:
- forc 0.49.3
- forc-explore 0.28.1
- forc-wallet 0.4.3
- fuel-core 0.22.4
- fuel-core-keygen 0.22.4


The Fuel toolchain is installed and up to date

fuelup 0.22.0 has been installed in /home/jasoons/.fuelup/bin. To fetch the latest toolchain containing the forc and fuel-core binaries, run 'fuelup toolchain install latest'. To generate completions for your shell, run 'fuelup completions --shell=SHELL'.

You might have to add /home/jasoons/.fuelup/bin to path:

bash/zsh:

export PATH="${HOME}/.fuelup/bin:${PATH}"

fish:

fish_add_path ~/.fuelup/bin

~/Documents/code/fuel/sway-applications/NFT master* ⇣⇡ 29s
❯ which forc
/home/jasoons/.fuelup/bin/forc

~/Documents/code/fuel/sway-applications/NFT master* ⇣⇡
❯ fuelup default latest
default toolchain set to 'latest-x86_64-unknown-linux-gnu'

~/Documents/code/fuel/sway-applications/NFT master* ⇣⇡
❯ forc --version
toolchain 'nightly-2024-04-12-x86_64-unknown-linux-gnu' does not exist; installing
[00:00:00] [########################################] 6.07 KiB/6.07 KiB (0s) - Download complete                                   Fetching binary from https://github.com/FuelLabs/sway-nightly-binaries/releases/download/nightly-20240412/forc-binaries-0.53.0%2Bnightly.20240412.c34231f67d-linux_amd64.tar.gz
[00:00:08] [########################################] 112.36 MiB/112.36 MiB (0s) - Download complete                               Unpacking and moving forc-deploy to /home/jasoons/.fuelup/store/forc-0.53.0+nightly.20240412.c34231f67d
Unpacking and moving forc-run to /home/jasoons/.fuelup/store/forc-0.53.0+nightly.20240412.c34231f67d
Unpacking and moving forc-doc to /home/jasoons/.fuelup/store/forc-0.53.0+nightly.20240412.c34231f67d
Unpacking and moving forc to /home/jasoons/.fuelup/store/forc-0.53.0+nightly.20240412.c34231f67d
Unpacking and moving forc-fmt to /home/jasoons/.fuelup/store/forc-0.53.0+nightly.20240412.c34231f67d
Unpacking and moving forc-lsp to /home/jasoons/.fuelup/store/forc-0.53.0+nightly.20240412.c34231f67d
Fetching binary from https://github.com/FuelLabs/sway-nightly-binaries/releases/download/nightly-20240412/forc-explore-0.28.1%2Bnightly.20240412.4bb7392eed-x86_64-unknown-linux-gnu.tar.gz
[00:00:00] [########################################] 2.86 MiB/2.86 MiB (0s) - Download complete                                   Unpacking and moving forc-explore to /home/jasoons/.fuelup/store/forc-explore-0.28.1+nightly.20240412.4bb7392eed
Fetching binary from https://github.com/FuelLabs/sway-nightly-binaries/releases/download/nightly-20240412/forc-wallet-0.5.0%2Bnightly.20240412.05563df3b0-x86_64-unknown-linux-gnu.tar.gz
[00:00:00] [########################################] 5.79 MiB/5.79 MiB (0s) - Download complete                                   Unpacking and moving forc-wallet to /home/jasoons/.fuelup/store/forc-wallet-0.5.0+nightly.20240412.05563df3b0
Fetching binary from https://github.com/FuelLabs/sway-nightly-binaries/releases/download/nightly-20240412/fuel-core-0.24.2%2Bnightly.20240412.e99b0b4b73-x86_64-unknown-linux-gnu.tar.gz
[00:00:00] [########################################] 13.21 MiB/13.21 MiB (0s) - Download complete                                 Unpacking and moving fuel-core to /home/jasoons/.fuelup/store/fuel-core-0.24.2+nightly.20240412.e99b0b4b73
Fetching binary from https://github.com/FuelLabs/sway-nightly-binaries/releases/download/nightly-20240412/fuel-core-0.24.2%2Bnightly.20240412.e99b0b4b73-x86_64-unknown-linux-gnu.tar.gz
[00:00:02] [########################################] 13.21 MiB/13.21 MiB (0s) - Download complete                                 Unpacking and moving fuel-core to /home/jasoons/.fuelup/store/fuel-core-keygen-0.24.2+nightly.20240412.e99b0b4b73
Caching fuels version at /home/jasoons/.fuelup/store/forc-0.53.0/fuels_version
Fetching binary from https://github.com/FuelLabs/sway/releases/download/v0.53.0/forc-binaries-linux_amd64.tar.gz
Downloading component forc without verifying checksum
[00:00:08] [########################################] 125.65 MiB/125.65 MiB (0s) - Download complete                               Unpacking and moving forc-deploy to /home/jasoons/.fuelup/store/forc-0.53.0
Unpacking and moving forc-crypto to /home/jasoons/.fuelup/store/forc-0.53.0
Unpacking and moving forc-tx to /home/jasoons/.fuelup/store/forc-0.53.0
Unpacking and moving forc-run to /home/jasoons/.fuelup/store/forc-0.53.0
Unpacking and moving forc-doc to /home/jasoons/.fuelup/store/forc-0.53.0
Unpacking and moving forc to /home/jasoons/.fuelup/store/forc-0.53.0
Unpacking and moving forc-debug to /home/jasoons/.fuelup/store/forc-0.53.0
Unpacking and moving forc-fmt to /home/jasoons/.fuelup/store/forc-0.53.0
Unpacking and moving forc-submit to /home/jasoons/.fuelup/store/forc-0.53.0
Unpacking and moving forc-lsp to /home/jasoons/.fuelup/store/forc-0.53.0
forc 0.53.0

~/Documents/code/fuel/sway-applications/NFT master* ⇣⇡ 29s
❯ forc --version
forc 0.53.0

This is my temporary solution:

❯ ~/.fuelup/toolchains/latest-x86_64-unknown-linux-gnu/bin/forc --version
forc 0.49.3
~/.fuelup/toolchains/latest-x86_64-unknown-linux-gnu/bin
❯ alias bforc="~/.fuelup/toolchains/latest-x86_64-unknown-linux-gnu/bin/forc"

~/.fuelup/toolchains/latest-x86_64-unknown-linux-gnu/bin
❯ bforc --version
forc 0.49.3

Hey @JasoonS, I’d like to better understand the issue you’re experiencing. Using the command $fuelup default beta-5 should set your system to the OFFICIAL beta-5 compatible toolchain. If that’s all you’re doing, you shouldn’t need a custom toolchain.

Could you share the output from $fuelup show when you’re using the official beta-5 toolchain? It’s working fine for me, with forc at the correct version of v0.49.3.

➜  ~ fuelup default beta-5
default toolchain set to 'beta-5-aarch64-apple-darwin'
➜  ~ fuelup show
Default host: aarch64-apple-darwin
fuelup home: /Users/calldelegation/.fuelup

installed toolchains
--------------------
beta-1-aarch64-apple-darwin
beta-3-aarch64-apple-darwin
beta-4-aarch64-apple-darwin
beta-5-aarch64-apple-darwin (default)
latest-aarch64-apple-darwin
beta-4-rc.2-aarch64-apple-darwin
calldelegation_beta_5
devnet
devnetv2
latest-2023-02-18-aarch64-apple-darwin
latest-2023-04-12-aarch64-apple-darwin
latest-2023-07-13-aarch64-apple-darwin
latest-2023-08-16-aarch64-apple-darwin
latest-2023-09-29-aarch64-apple-darwin
my_toolchain
nightly-2023-12-06-aarch64-apple-darwin
nightly-2023-12-13-aarch64-apple-darwin
nightly-2023-12-14-aarch64-apple-darwin
nightly-2024-01-03-aarch64-apple-darwin
nightly-2024-01-24-aarch64-apple-darwin
nightly-2024-04-16
nightly-54
testing_channel
testing_channel_2
thunder_test

active toolchain
----------------
beta-5-aarch64-apple-darwin (default)
  forc : 0.49.3
    - forc-client
      - forc-deploy : 0.49.3
      - forc-run : 0.49.3
    - forc-crypto : 0.49.3
    - forc-debug : Could not parse version (empty string, expected a semver version)
    - forc-doc : 0.49.3
    - forc-explore : 0.28.1
    - forc-fmt : 0.49.3
    - forc-lsp : 0.49.3
    - forc-tx : 0.49.3
    - forc-wallet : 0.4.3
  fuel-core : 0.22.1
  fuel-core-keygen : 0.22.1

fuels versions
--------------
forc : 0.54.0
forc-wallet : 0.54.0

I forcefully copied the binaries across and now it is working fine.

But this is my output.

❯ fuelup show
Default host: x86_64-unknown-linux-gnu
fuelup home: /home/jasoons/.fuelup

installed toolchains
--------------------
beta-5-x86_64-unknown-linux-gnu (default)
latest-x86_64-unknown-linux-gnu
nightly-2024-04-12-x86_64-unknown-linux-gnu (override)

active toolchain
----------------
nightly-2024-04-12-x86_64-unknown-linux-gnu (override), path: /home/jasoons/Documents/code/fuel/sway-applications/NFT/fuel-toolchain.toml
  forc : 0.53.0+nightly.20240412.c34231f67d
    - forc-client
      - forc-deploy : not found
      - forc-run : not found
    - forc-crypto : not found
    - forc-debug : not found
    - forc-doc : not found
    - forc-explore : 0.28.1+nightly.20240412.4bb7392eed
    - forc-fmt : not found
    - forc-lsp : not found
    - forc-tx : not found
    - forc-wallet : 0.5.0+nightly.20240412.05563df3b0
  fuel-core : 0.24.2+nightly.20240412.e99b0b4b73
  fuel-core-keygen : 0.24.2+nightly.20240412.e99b0b4b73

I think doing fuelup default x doesn’t actually switch the toolchain properly. Ie the binary files in ~/.fuelup/bin don’t change. Or for some reason it uses that override on nightly?

Hmmm this is strange behaviour because you should be able to switch let me loop in the toolchain team and get back to you. :saluting_face:

1 Like

Hi @JasoonS

can you try

fuelup self update
fuelup toolchain install beta-5
fuelup default beta-5
fuelup show

~  fuelup self update                                      ok  10:39:22

Already up to date (fuelup v0.23.0)

 ~  fuelup toolchain install beta-5                         ok  10:39:32
[00:00:00] [########################################] 4.87 KiB/4.87 KiB (0s) - Download completeDownloading: forc forc-explore forc-wallet fuel-core fuel-core-keygen

Adding component forc v0.49.3 to 'beta-5-aarch64-apple-darwin'
Caching fuels version at /Users/joshuabatty/.fuelup/store/forc-0.49.3/fuels_version
Fetching binary from https://github.com/FuelLabs/sway/releases/download/v0.49.3-patch.1/forc-binaries-darwin_arm64.tar.gz
[00:00:10] [########################################] 96.32 MiB/96.32 MiB (0s) - Download completeUnpacking and moving forc-crypto to /Users/joshuabatty/.fuelup/store/forc-0.49.3
Unpacking and moving ._forc-doc to /Users/joshuabatty/.fuelup/store/forc-0.49.3
Unpacking and moving forc-doc to /Users/joshuabatty/.fuelup/store/forc-0.49.3
Unpacking and moving forc to /Users/joshuabatty/.fuelup/store/forc-0.49.3
Unpacking and moving forc-submit to /Users/joshuabatty/.fuelup/store/forc-0.49.3
Unpacking and moving forc-deploy to /Users/joshuabatty/.fuelup/store/forc-0.49.3
Unpacking and moving ._forc-run to /Users/joshuabatty/.fuelup/store/forc-0.49.3
Unpacking and moving forc-run to /Users/joshuabatty/.fuelup/store/forc-0.49.3
Unpacking and moving ._forc-deploy to /Users/joshuabatty/.fuelup/store/forc-0.49.3
Unpacking and moving ._forc-tx to /Users/joshuabatty/.fuelup/store/forc-0.49.3
Unpacking and moving ._forc to /Users/joshuabatty/.fuelup/store/forc-0.49.3
Unpacking and moving forc-lsp to /Users/joshuabatty/.fuelup/store/forc-0.49.3
Unpacking and moving ._forc-lsp to /Users/joshuabatty/.fuelup/store/forc-0.49.3
Unpacking and moving ._forc-debug to /Users/joshuabatty/.fuelup/store/forc-0.49.3
Unpacking and moving ._forc-crypto to /Users/joshuabatty/.fuelup/store/forc-0.49.3
Unpacking and moving forc-fmt to /Users/joshuabatty/.fuelup/store/forc-0.49.3
Unpacking and moving ._forc-fmt to /Users/joshuabatty/.fuelup/store/forc-0.49.3
Unpacking and moving forc-debug to /Users/joshuabatty/.fuelup/store/forc-0.49.3
Unpacking and moving forc-tx to /Users/joshuabatty/.fuelup/store/forc-0.49.3
Unpacking and moving ._forc-submit to /Users/joshuabatty/.fuelup/store/forc-0.49.3
Fetching core forc dependencies
Installed forc v0.49.3 for toolchain 'beta-5-aarch64-apple-darwin'

Adding component forc-explore v0.28.1 to 'beta-5-aarch64-apple-darwin'
Fetching binary from https://github.com/FuelLabs/forc-explorer/releases/download/v0.28.1/forc-explore-0.28.1-aarch64-apple-darwin.tar.gz
[00:00:00] [########################################] 2.65 MiB/2.65 MiB (0s) - Download completeUnpacking and moving forc-explore to /Users/joshuabatty/.fuelup/store/forc-explore-0.28.1
Installed forc-explore v0.28.1 for toolchain 'beta-5-aarch64-apple-darwin'

Adding component forc-wallet v0.4.3 to 'beta-5-aarch64-apple-darwin'
Caching fuels version at /Users/joshuabatty/.fuelup/store/forc-wallet-0.4.3/fuels_version
Fetching binary from https://github.com/FuelLabs/forc-wallet/releases/download/v0.4.3/forc-wallet-0.4.3-aarch64-apple-darwin.tar.gz
[00:00:01] [########################################] 5.34 MiB/5.34 MiB (0s) - Download completeUnpacking and moving forc-wallet to /Users/joshuabatty/.fuelup/store/forc-wallet-0.4.3
Installed forc-wallet v0.4.3 for toolchain 'beta-5-aarch64-apple-darwin'

Adding component fuel-core v0.22.4 to 'beta-5-aarch64-apple-darwin'
Fetching binary from https://github.com/FuelLabs/fuel-core/releases/download/v0.22.4/fuel-core-0.22.4-aarch64-apple-darwin.tar.gz
[00:00:01] [########################################] 10.96 MiB/10.96 MiB (0s) - Download completeUnpacking and moving fuel-core-keygen to /Users/joshuabatty/.fuelup/store/fuel-core-0.22.4
Unpacking and moving fuel-core to /Users/joshuabatty/.fuelup/store/fuel-core-0.22.4
Installed fuel-core v0.22.4 for toolchain 'beta-5-aarch64-apple-darwin'

Installed:
- forc 0.49.3
- forc-explore 0.28.1
- forc-wallet 0.4.3
- fuel-core 0.22.4
- fuel-core-keygen 0.22.4


The Fuel toolchain is installed and up to date

 ~  fuelup default beta-5                              ok  23s  10:40:03
default toolchain set to 'beta-5-aarch64-apple-darwin'

 ~  fuelup show                                             ok  10:40:18
Default host: aarch64-apple-darwin
fuelup home: /Users/joshuabatty/.fuelup

installed toolchains
--------------------
beta-5-aarch64-apple-darwin (default)
devnet-aarch64-apple-darwin
latest-aarch64-apple-darwin

active toolchain
----------------
beta-5-aarch64-apple-darwin (default)
  forc : 0.49.3
    - forc-client
      - forc-deploy : 0.49.3
      - forc-run : 0.49.3
    - forc-crypto : 0.49.3
    - forc-debug : Could not parse version (empty string, expected a semver version)
    - forc-doc : 0.49.3
    - forc-explore : 0.28.1
    - forc-fmt : 0.49.3
    - forc-lsp : 0.56.0
    - forc-tx : 0.49.3
    - forc-wallet : 0.4.3
  fuel-core : 0.22.4
  fuel-core-keygen : 0.22.4

fuels versions
--------------
forc : 0.54.0
forc-wallet : 0.54.0













This is working for me. Thank you.