-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Description
This issue serves as an anchor to monitor the broader topic of go-ipfs
on Windows.
Here I will be highlighting the current issues being focused on and the PR efforts to resolve them. Feel free to add anything to this topic that relates to go-ipfs
on Windows as a whole.
Build problems
-
make
Fails to detectgx
andgx-go
properly
make: check_gx & dist_get issues on Windows #4510
Resolved in: Fix/win make #4682 -
gx
Fails to detect subtools properly (gx installs deps to wrong directory)
inconsistent argument handling whyrusleeping/gx#153
Resolved in: Fix/windows subtool suffix whyrusleeping/gx#154 -
Build documentation
A lot of people seem to have trouble building on Windows with the current document. I've proposed a revision here: Change Windows build documentation #4691
interface problems
-
Pipes
Commands likeadd
andfiles write
don't detect pipes on Windows #3266
Resolved in: allow stdin on Windows go-ipfs-cmds#74 -
get
doesn't support NUL
currently not tracked
This will require fixes in Go itself and the tar-utils package
os: Stat returns error with 'nul' on Windows golang/go#24482
os: MkdirAll returns error with 'NUL' on Windows golang/go#24556
Sanitize output paths whyrusleeping/tar-utils#2
Resolved in: get: Handle symlink creation and sanitize paths on Windows #4956 (not yet merged)
Resolved independently in tar-utils, rolled in via Extract: thirdparty/tar #4857 -
Color/Colour output
cli: Color on windows doesn't work #3068
Windows: cli colour codes #2124
Resolved in: Fix color output on Windows go-log#21 + routing fixes/refactor #5007 -
File system character restrictions
ipfs get cross platform paths #2013
Resolved on Windows with: Sanitize output paths whyrusleeping/tar-utils#2 (merged) + get: Handle symlink creation and sanitize paths on Windows #4956 (not yet merged)
Windows Tests & CI
We need to pass tests on Windows so new issues can be caught by the CI before becoming a problem.
When Windows is skipped for testing, we suffer from regressions such as:
#4750
#4512
#3676
In addition to fixing existing tests, new tests should be made for testing platform specific behaviors.
Please comment about platform specific edge cases that should be considered.
For example, considering UNC paths (#1933 (comment))
Long prefix paths (https://github.com/ipfs/go-ipfs/pull/3328/files#diff-7ba0a8b1e26b8ed185c4824d4ee84164R503)
How :.
behaves (#3328)
File system restrictions (#2013)
etc.
Feature parity with other platforms
The inability to pipe data, get certain data, mount IPFS, have readable output, etc. only pertain to Windows, platform native solutions for these features will have to be thought about, discussed, and implemented. The future issues and PRs will back-reference this issue so that development and discussion can be easily followed.
-
mount
is not implemented
Windows mount support #5003 - Pubsub is not reliable
pubsub sometimes hangs on Windows #4778
This ended up being a js-ipfs issue.
As of 2018.12.31 I have not personally experienced or heard reports of instability in regards to pubsub in go-ipfs.
Everything else
There are many outstanding and outdated issues
https://github.com/ipfs/go-ipfs/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+amd64%2Fwindows+
They need to be reviewed and tagged
https://github.com/ipfs/go-ipfs/issues?q=is%3Aissue+is%3Aopen+label%3Awindows
Ones that are no longer relevant (already fixed) need to be marked as closed.