-
-
Notifications
You must be signed in to change notification settings - Fork 78
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
Reorder installation instructions #99
Comments
Regarding snapcraft:
Regarding grouping of information: I believe the installation menu should allow the user to recognize if possible the environment been used and from there know the option. Otherwise the user needs to check general methods like snapcraft or linuxbrew + their distro to learn about the package. This is for new comers. Usually a one time experience for each of us. The information need to be as direct as possible. |
That's the best approach, but it can also be overwhelming because there are numerous linux distributions and
Should we list each of them?
I agree. But having to filter out your platform from a number of icons that only provide generic instructions for snapcraft is not very direct either. Maybe we could employ platform detection in the browser to highlight the current target platform. |
I consider
I am not sure it works in all distros. At least not from the official page. So I would not advertise linuxbrew in all distros. |
I'm no expert either. So let's say there are many distros that support Linuxbrew. And I'm sure we can agree that there are more than we're currently listing. There are even a lot of APT- and RPM-based distros that should just work with our packages as well but are not (yet) listed here. IMO it doesn't make sense to start listing each and every linux distribution that supports any of Crystal's distribution method. Maybe a better approach would actually be to provide instructions for specific distribution methods. |
My take is that if the problem is the long distro menu list, then platform detection with optionally listing everything can help. If we want a raw list of all possibilities grouped as in ruby it can work as a more advance way, but I found it hard to beat the [pick your distro] -> [here are the options] experience for new-comers. |
Discoverability is one problem and that yeah can be mitigated by platform detection. But I doubt that distinguishing individual linux distributions can work that well in a browser. The main problem is that we can't possibly maintain a complete list of all Linux distributions that support some method of installing Crystal. There are just far too many. And many are less prominent, but still support some kind of standard installation method. When there is no way to complete such a list, I think we shouldn't even try to start. Because if we do, there will always be missing distros. And users from that distro won't find their installation instructions. Maybe they would turn to a related distro and try if that approach works. But that already requires context information: You can't look for your package manager, you need to know another distribution that uses the same one. |
Let's check in a couple of months from site stats and if there are distros not used we can shorten the distro list. So we keep general installation methods for flexibility but the distro menu for friendlier first time. |
I have also a suggestion, that is common out there.
An advantage is there are less information, we know directly the supported OSes. I would like to add: no need to specify specific distributions. If an user is using a package manager through the CLI, (s)he is advanced enough to know if its distribution is apt/rpm based and on which family it is based on (Debian, Ubuntu, RHEL...). That what it is also assumed by Elixir. |
I support having a hierarchy based on the operating system and installation type. Whether that should be on separate pages, is a different story. IMO it would probably be better to have a two-layered hiearchy on the index page. That's still a concise arrangement. And the instructions for each installation method would be on a separate page like it is now. Also, we could still consider a distribution-based lookup. That doesn't have to be mutually exclusive. But it should be on top of that, and only added when we see it's necessary. However, on the basis that most other software installation instructions don't do this, I'm pretty certain we don't really need that either. |
As basis for further consideration, I compiled a list of all the installation methods I'm currently aware of. - name: APT
package_manager: system
package_maintainer: crystal
platforms:
- Debian derivatives
- name: RPM
package_manager: system
package_maintainer: crystal
platforms:
- Red Hat derivatives
- name: Arch repositories
package_manager: system
package_maintainer: system
platforms:
- Arch Linux
- name: Aports
package_manager: system
package_maintainer: system
platforms:
- Alpine Linux
- name: FreeBSD ports
package_manager: system
package_maintainer: system
platforms:
- FreeBSD
- name: FreeBSD package
package_manager: system
package_maintainer: system
platforms:
- FreeBSD
- name: OpenBSD ports
package_manager: system
package_maintainer: system
platforms:
- OpenBSD
- name: OpenBSD package
package_manager: system
package_maintainer: system
platforms:
- OpenBSD
- name: Scoop
package_manager: community
package_maintainer: community
platforms:
- Windows
- name: Homebrew
package_manager: community
package_maintainer: community
platforms:
- MacOS
- Linux
- name: Docker
package_manager: community
package_maintainer: crystal
platforms:
- name: Snapcraft
package_manager: community
package_maintainer: crystal
platforms:
- Linux
- name: Asdf
package_manager: community
package_maintainer: community
platforms:
- Linux
- MacOS
- name: Binary archive
package_manager: none
package_maintainer: crystal
platforms:
- Linux
- MacOS
- Windows
- name: Build from source
package_manager: none
package_maintainer: crystal
platforms: |
I'd like to pick up on my suggestion in #86 (comment) to improve the order of platforms listed on the Install page.
Currently, it seems to not follow any particular order. At least it's not visible.
While it's not super important, I think it can help people to proceed with installation.
Alternatively, we could just order lexically.
Relevant factors for sort order are:
Popularity of the platform
We don't have any statics for platform popularity, but I suppose the majority of Crystal users is probably something like macOS, Ubuntu, Arch/Manjaro, Alpine, WSL
Availability of official Crystal distribution package
Native packages are provided for macOS and Linux distributions using APT or RPM. Binaries are available for macOS and generic Linux.
Availability of Crystal package in platform's native package system
Alpine, Arch, FreeBSD, Gentoo, Void maintain Crystal packages.
from sources
andfrom .tar.gz
are special because they are not instructions for specific platforms but generic distribution methods. Theoretically, they could be treated like snapcraft and linux brew and included in (almost) every platform's installation instructions. But they are usually more effort than installing a package, so that's usually preferred. It might make sense to at least mention the generic binary releases on linux distributions (maybe only on those that don't provide a package).These platforms, that don't provide a genuine installation method but only through snapcraft the availability of Crystal is a bit thin. Snapcraft is not a native installation, it's a governed sandboxed environment. If I were a user of one of those distributions and see installation instructions that require me to use
snapcraft
, I'm pretty sure I'd simply jump ship because I want to use Crystal, not Snapcraft.This affects Elementary OS, KDE neo, Linux Mint (shouldn't that be able to use the APT package?) and Manjaro (AFAIK there is a Crystal package). IMO it would be best to remove those platforms that only provide installation instructions using snapcraft.
Technically, almost all Linux distros should be able to install Crystal using linuxbrew. I don't think we want to list literally all distros and provide installation instructions using linuxbrew either.
Alternatively, we could consider adding
Linuxbrew
andSnapcraft
as generic distribution methods in the same category asfrom sources
and.tar.gz
. So if you're using one of these tools, you can immediately get installation instructions for that platform as they're not distro-specific.We could still leave references to
Linuxbrew
andSnapcraft
in the respective distros' instructions.The text was updated successfully, but these errors were encountered: