-
-
Notifications
You must be signed in to change notification settings - Fork 622
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
Decisions and Plan for Linux & Windows Support #196
Comments
This is now actionable, and potentially something we can/should separate into separate issues given that multiple people could work on this in parallel. |
FWIW, I have used on Ubuntu 14.04 without any particular trouble (but without a lot of intensity), and all of our tests run on Ubuntu 14.04. Lots of gotchas getting Windows going, but could be fun. |
I also somewhat regularly develop and test ddev on Ubuntu 16.10, and haven't hit any notable issues in the usage I've had so far. That said, I have not done any actual web development with the tool on Linux. |
Our best path towards windows support in the near term may be via https://msdn.microsoft.com/en-us/commandline/wsl/about |
Stackexchange recipe for docker on Windows Bash. |
I did a kick-the-tires on Fedora 25 Workstation, and had no real trouble beyond understanding how to set up docker/docker-compose properly there. These are really the same problems with any linux, just slightly different varieties of setup.
|
Another item to consider: file mounts (capabilities, complexity, and performance). See #208. |
What I've learned so far is mostly incorporated in #209 There are at least 3 ways we can do docker on Windows:
|
Initial Feedback to @rfay's review of Windows #196 (comment).
There is a lot to consider here, but I would imagine that if cost is a driving factor, an end-user might be more likely to adopt Ubuntu. Of course there are a lot of people using cheap windows laptops without a significant amount of RAM. That's where option 3 might provide them a path forward without the overhead of a VM. Regarding your testing, it does sound like we'd have to audit certain functionality so that our commands work universally. I'm assuming once your PR is accepted, we can run all of our unit tests against Windows so we can chase down these discrepancies while not introducing regressions on macOS? |
A reminder, the scope of this ticket is testing, getting an inventory of OS specific discrepancies, and getting to a decision on what we'll support and when in the roadmap. So far things look promising, and we can plan on support (with caveats) for some Linux variants and Windows 10. |
Just a note, we are using goodhosts for host file management. It does claim to have windows support. Making that work is probably more a matter of figuring out privilege escalation (strongly assuming it's needed) on windows. |
|
My vote for Windows would be short term option 3 (WSL) mid to long term option 1 (Docker for Windows). If the team feels strongly enough to invert them, then we will need to purchase licenses sooner rather than later. Also, can we run Circle CI tests against Pro? I personally have little interest in option 2 because I think it will hit its end of life in the near future and it adds more overhead than it's worth, but like Tanner called out, I'm not sure what market demographics are to make an informed decision with actual data. |
We dan't run circle tests against any windows project, sadly. There are probably other services that allow us to do windows. I still hope to get to WSL today, but can't claim that it's do-able at this point. |
So far the focus of this ticket has largely been on Windows, and that is fair given the concern that supporting Windows will be a much heavier lift than Linux. However, I would like to nail down what we officially support on the Linux side while providing the caveat that users with other distributions can certainly try. I also imagine that this selection might be influenced the the OS selection we use for other DRUD products in production, but that need not be a strict requirement. |
Thanks, @rfay! That nuance (not being able to test with Circle CI) might warrant a caveat "we support, but cannot run automated tests to capture regressions". |
My vote is to commit to supporting Ubuntu/Debian/Fedora. I think we can commit to good-faith effort on all other distros as well, but the more obscure the distro you use, the more patient you are going to need to be if issues pop up. I think people running fringe distros like gentoo generally have a frontier mentaility anyway :) |
@beeradb That list works for me re:Linux. We may need to specify version numbers (e.g. Ubuntu 16.04 LTS) or parameters (Ubuntu: 2 Most Current LTS Versions). Assuming the former, I would suggest we state:
And then note, as you've mentioned, that older versions and other variants may work but require a little more hand-holding/tweaking. |
We have a lot of technical capability here. There are significant issue to be considered besides that:
|
* Basic building with WIndows * Improve error message when creating docker network * Should not prepare directories when we already have .ddev and an app configured * Don't try to add to hosts file if no sudo available * Support docker TLSClient, not just http client * circle: Build windows by default, provide as artifact * Move prepLocalSiteDirs() to local in config, check error * Minor fixup after multi-compose PR went in * Remove assertion that is not valid now that .ddev and subdirs are created in config * Use actual docker ip instead of just assuming localhost * Improve prepLocalSiteDirs() so not dependent on text content of error * Remove assertion of site directory existence because config creation makes it now * Use filepath instead of path for getting base filename in importdb * Improve host parsing out of tcp://192.168.99.100:2376 * Update to use filepath instead of path everywhere * use NewClientFromEnv to return client * update exec help to use double quotes around cmd vs single
Updated the issue summary to reflect the remaining items. Once we have the final Windows report (OS pain points, LOE to address, specifics on the methodology we will support), we can update the roadmap regarding when we will support Windows and to what extent. |
See additional commentary here (#196 (comment)) for Linux support and here (#196 (comment)) for Windows support.
* Updating w/outcome of /issues/196 See additional commentary here (#196 (comment)) for Linux support and here (#196 (comment)) for Windows support. * Added the missing portion of the last sentence. * Updated install instructions to reflect OS support. * manual install instructions for windows
While this ticket is technically still open to get the documentation regarding OS specific issues, the primary outcomes intended for v0.4 from the perspective of an end-user have been achieved. Updating the issue summary to note future items and outcomes from this thread will be moved to other issues. |
WIndows Comments: Windows caveats:
Infrastructure and planning:
Documentation:
Building and testing
To me the biggest concern right now is building and testing, because I've broken my head on it from a few different angles. I think maybe working together with another team member we might come up with an alternate approach, but I'm stuck right now. Also, my current Windows machine is horrendously slow, which tends to put an end to things. If Windows is important to us (probably) we'll have to actually use it a bit more to see what the actual results are in action. |
Hi @rfay. Thanks for this. I've updated the issue summary to indicate the summarization of the pain points and the assumption that this is a relative high LOE (assumed > 1 week to address these items). Seems we need to break out tickets related to the following:
|
Placeholder children issues created. Closing out! Thanks, everyone on this HUGE issue!!! |
Overall Objective
The current team is primarily using macOS for development purposes and is not currently performing any manual testing on Linux and (more importantly) Windows. Given that we want/need to be able to support the big three (mac, Windows, and Linux), we need to ensure that they are all given a 1st class priority.
That said, we need to properly scope this so that we don’t become buried with keeping up with every distribution + version of Linux and every version of Windows. Therefore, it’s important that we find a balance point.
Acceptance Criteria
The text was updated successfully, but these errors were encountered: