Open Blacksmoke16 opened 1 month ago
Name | Link |
---|---|
Latest commit | 5a799df05afa5c7e854d8f9bd1425ed95badc6fa |
Latest deploy log | https://app.netlify.com/sites/crystal-book/deploys/669e6d43f274210008bab963 |
Deploy Preview | https://deploy-preview-772--crystal-book.netlify.app |
Preview on mobile | Toggle QR Code...Use your smartphone camera to open QR code link. |
To edit notification comments on pull requests, go to your Netlify site configuration.
I suppose the notion of major limitations is a bit subjective. In my opinion there are still too many rough edges in core parts of the standard library to consider it fully working on Windows. Especially spawning processes with shell semantics is a big unresolved question: https://github.com/crystal-lang/crystal/issues/9030, https://github.com/crystal-lang/crystal/issues/12873, https://github.com/crystal-lang/crystal/issues/14300
Btw, the effective difference between Tier 1 and 2 is that the latter either is not (fully) automatically tested or we don't provide official builds. We have both for Windows. So it would go directly into Tier 1 once we determine it fully working.
My thinking was, yes there are some things that still need polished, but it's not like where it was even a few years ago where there were a bunch of unchecked boxes in https://github.com/crystal-lang/crystal/issues/5430. I.e. sure if you try and use Process.new(command, args, shell: true)
this specific command you might run into some wonkyness, but otherwise it works fine. Like the entirety of Athena CI passes on Windows so that at least says to me it's probably entirely fine for 95%+ of users. There just seems to be a lot of animosity around not having Windows support yet when that is just not true.
Maybe there's another solution to this, but to me tier 2's desc of:
The requirements for Tier 1 may be partially fulfilled, but are lacking in some way that prevents a solid gurantee.
Is a better statement in regards to how well developed support is than tier 3's desc of:
but there are some major limitations. Most typically, some parts of the standard library are not supported completely
Given "lacking in some way" equates to things being rough around the edges but otherwise is "expected to work", versus just not working at all.
:shrug:
Is that just a documentation change? Only reference I could find was https://github.com/crystal-lang/distribution-scripts/blob/1b7fb7ff2a2a9d535ec95dd3aedbf8e1fc627212/processes/crystal-release.md?plain=1#L59-L61. So seemingly would be an easy change. Are we wanting to go with the -portable.zip
proposed over in https://github.com/crystal-lang/crystal/issues/5430#issuecomment-2232059612?
It's a documentation change, plus a post noting the new status and name
Much progress has been made in regards to window support over the last years. While there are still some things here and there that need to be polished, there are no longer "major limitations" and things are expected to just work. As such, it seems like a reasonable step to bump Windows up to a Tier 2 level of support.
There is still work to be done to get it over the last hump to Tier 1, but this should be a welcomed change to show it is stable and supported.
Related: https://github.com/crystal-lang/crystal/issues/5430#issuecomment-2228661548