Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows Support (tracking issue) #1526

Open
4 tasks
mitchmindtree opened this issue May 12, 2022 · 1 comment
Open
4 tasks

Windows Support (tracking issue) #1526

mitchmindtree opened this issue May 12, 2022 · 1 comment
Labels
ci enhancement New feature or request P: low testing General testing

Comments

@mitchmindtree
Copy link
Contributor

Opening this as a more general response to @ra0x3's question in #1513.

Current State

Windows support for Sway and its tooling is largely untested.

If you are a Windows user, you are currently recommended to use WSL. That is, at least until we start testing and publishing Windows binaries.

Moving Forward

If we wish to support Windows we should do the following for each of the fuel-core, fuels-rs and sway repos and their crates:

  • Check all path handling and that no code makes the assumption we're using unix-style paths. Primary culprits are the use of concatentating strings or using format! to construct paths, e.g.. format!("{}/{}/{}", foo, bar, baz). Windows does not support "foo/bar/baz" style paths. Instead, Path::join or PathBuf::collect should be used.
    Another example: until #1213, Sway directly appended the path that you see in dep foo/bar/baz; verbatim, meaning that nested modules could never be successfully compiled on Windows.
  • Check that all I/O heavy dependencies are Windows-friendly. Well implemented crates will give compile errors on platforms they don't support, but that's not always the case.
  • Add a CI job that at least compiles and runs some basic tests on Windows.
  • Update docs w.r.t. any windows-specific needs in regards to system dependencies or setup.

Only once we've addressed these should we consider publishing and distributing Windows native binaries. Otherwise for the most part, Rust and the wider ecosystem makes it easy to write cross-platform code.

Related

@Voxelot
Copy link
Member

Voxelot commented Sep 4, 2023

Needs to be broken down into repo-level issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci enhancement New feature or request P: low testing General testing
Projects
None yet
Development

No branches or pull requests

2 participants