{"action":"created","issue":{"url":"https://api.github.com/repos/mottosso/be/issues/10","labels_url":"https://api.github.com/repos/mottosso/be/issues/10/labels{/name}","comments_url":"https://api.github.com/repos/mottosso/be/issues/10/comments","events_url":"https://api.github.com/repos/mottosso/be/issues/10/events","html_url":"https://github.com/mottosso/be/issues/10","id":89567778,"number":10,"title":"Windows support","user":{"login":"mottosso","id":2152766,"avatar_url":"https://avatars.githubusercontent.com/u/2152766?v=3","gravatar_id":"","url":"https://api.github.com/users/mottosso","html_url":"https://github.com/mottosso","followers_url":"https://api.github.com/users/mottosso/followers","following_url":"https://api.github.com/users/mottosso/following{/other_user}","gists_url":"https://api.github.com/users/mottosso/gists{/gist_id}","starred_url":"https://api.github.com/users/mottosso/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mottosso/subscriptions","organizations_url":"https://api.github.com/users/mottosso/orgs","repos_url":"https://api.github.com/users/mottosso/repos","events_url":"https://api.github.com/users/mottosso/events{/privacy}","received_events_url":"https://api.github.com/users/mottosso/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/mottosso/be/labels/question","name":"question","color":"cc317c"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-06-19T13:42:50Z","updated_at":"2015-08-07T00:04:25Z","closed_at":null,"body":"### Goal\r\n\r\n`be` is and forever will be as compatible with Windows as any other OS. It's a primary goal. Considering most smaller productions happen on Windows, whereas the larger ones happen on Linux and `be` applies to both.\r\n\r\nHowever, other platforms have a richer feature set available for the command-line, which in turn can make the experience interacting with `be` more pleasant.\r\n\r\nSo a number of options must be considered moving forward on how to build `be` in such a way that Windows users reap the same benefits as users of other platforms, and that other platforms don't suffer for Windows lack of features.\r\n\r\n### Alternatives\r\n\r\n1. Make cmd.exe the lowest common denominator. Stick to cmd.exe, limit what can be done using e.g. bash by what can also be done by cmd.exe.\r\n2. Augment cmd.exe, with something like [clink](), the command-line can gain bash-like features.\r\n3. Replace cmd.exe, with something like cygwin's bash, for a fully transparent experience (and implementation) of all platforms.\r\n\r\nA downside of cygwin is adoption; users won't be able to simply pip install and run, but must first commit to installing a 200mb+ collection of 50+ tools.\r\n\r\nClink solves this, as it merely augments the limited capabilities of cmd.exe.\r\n\r\nAnd finally, cmd.exe is simply too limiting to provide a comfortable experience with `be`.\r\n\r\nAn advantage of cygwin however is unified development; anything we build for bash will work across all operating systems, minimising maintenance efforts.\r\n\r\nClink is sort of a middle ground, but we still need to separate subshell implementations."},"comment":{"url":"https://api.github.com/repos/mottosso/be/issues/comments/128542800","html_url":"https://github.com/mottosso/be/issues/10#issuecomment-128542800","issue_url":"https://api.github.com/repos/mottosso/be/issues/10","id":128542800,"user":{"login":"jedfrechette","id":1392027,"avatar_url":"https://avatars.githubusercontent.com/u/1392027?v=3","gravatar_id":"","url":"https://api.github.com/users/jedfrechette","html_url":"https://github.com/jedfrechette","followers_url":"https://api.github.com/users/jedfrechette/followers","following_url":"https://api.github.com/users/jedfrechette/following{/other_user}","gists_url":"https://api.github.com/users/jedfrechette/gists{/gist_id}","starred_url":"https://api.github.com/users/jedfrechette/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jedfrechette/subscriptions","organizations_url":"https://api.github.com/users/jedfrechette/orgs","repos_url":"https://api.github.com/users/jedfrechette/repos","events_url":"https://api.github.com/users/jedfrechette/events{/privacy}","received_events_url":"https://api.github.com/users/jedfrechette/received_events","type":"User","site_admin":false},"created_at":"2015-08-07T00:04:25Z","updated_at":"2015-08-07T00:04:25Z","body":"I'll leave this as a comment here since I'm not sure it should qualify as a bug in be, but is related to alternative 3.\r\n\r\nOn Windows I typically use Git-bash as my shell, which mostly provides a *nix environment and all of the usual utilities. However, one that is notably absent is mktemp. As a result, _shell.sh fails because it expects it to be available. Googling will turn up a bunch of other projects that fail in the same way inside git-bash, along with the workarounds that they've used."}}