rakudo / rakudo.org

Code for rakudo.org website
https://rakudo.org/
Artistic License 2.0
8 stars 18 forks source link

move up visibility of rakudo-pkg #99

Open librasteve opened 7 months ago

librasteve commented 7 months ago

moving thread to here from PR 98

@nxadm says: While I share the worries about outdated packages, I don't think that compiling the compiler --what rakubrew does-- is what programmers new to the language expect or, more importantly, will accept.

@bazzaar says: I agree with @nxadm, and it's a point I specifically raised in my 'more Focus' issue to the Steering Council.

Raku/Raku-Steering-Council#56 (comment)

The general advice for new users to use their Linux distro's package installer is sound enough, so long as the additional step of pointing the package installer to a well-trusted repo which supplies an up-to-date version of Rakudo is taken.

nxadm's excellent rakudo-pkg repo, details all the instructions for users to add the repo to the list of package repositories on their system.

I don't see why this seems such a difficult mechanism to advertise. Other specialised software products follow such a route. Users don't want software that is 9-months out of date, so they will clamour for the repo to be added if they work for a larger organisation. Me now retired, it was a 5 minute job to add the repo in OpenSuSe Leap. Been using the rakudo-pkg service now for maybe 5years, it installs the software in /opt, and there's a script to run to set it up so that a user can install additional modules (distributions) in a user-specified directory on their $PATH. Pretty straightforward. The latest release of Rakudo is installed by the distro's package manager automatically from then on, as soon as it appears on the rakudo-pkg repo site.

I could draw an analogy with the Comma situation. An excellent 3rd party initiative, well maintained, and providing a reliable up-to-date service, yet sadly not given the backing it deserves on the Raku/Rakudo web site.

As I alluded to in the 'more Focus' thread, the Rakudo download options page is very confusing for new users, IMHO.

@librasteve says: @nxadm, @bazzaar - yep I agree with all that, let me try rakudo-pkg myself and then revert with a proposal @raiph - yep that's good, will adapt text to your version - thanks!

@nxadm, @bazzaar - I just tried the instructions at https://cloudsmith.io/~nxadm-pkgs/repos/rakudo-pkg/setup/#formats-deb and the vanilla AWS ubuntu image

the curl script worked fine

BUT, there are two issues:

nowhere does it say what to do after you setup the rakudo-pkg repo

when I do go sudo apt-get install rakudo, I get

ubuntu@ip-172-31-31-39:~$ raku -v Welcome to Rakudo™ v2022.02. Implementing the Raku® Programming Language v6.d. Built on MoarVM version 2022.02. Please put me straight if I have misconstrued anything.

Therefore, while I agree in principle that rakudo.org should promote actively maintained repo such as rakudo-pkg, I would look to you to resolve these two issues before we move up its visibility please.

In the meantime, I will fix @raiph s comment and resubmit this PR, and move this "where to place rakudo-pkg" thread to an Issue. I have in mind that rakudo-pkg and rakubrew would have "equal billing" at the top of the Linux tab if we can get this resolved.

bazzaar commented 7 months ago

@librasteve

I think you haven't installed rakudo-pkg.

I would remove pkg rakudo, then :

sudo apt-get install rakudo-pkg

after that go to /opt and confirm the rakudo-pkg directory is there, and look inside for the per-user set up instructions

, but also view the readme at https://github.com/nxadm/rakudo-pkg

Note: just to say I mostly use the YAST software management gui (in OpenSuSe) which allows me to easily see the packages (installed / available) for each of the software package repositories that I have enabled. The 'nxadm/rakudo-pkg' repo contains only one package available for installation, that is rakudo-pkg.

librasteve commented 7 months ago

Hi @bazzaar - thanks for the feedback

I am a linux lightweight (aka a willing idiot) and my goal is to make sure that the ways to get raku promoted on rakudo.org are simple and effective and up-to-date.

I think I am a fairly good sample of the kind of ease of use that our installs need. So forgive me if I push back.,

I believe that you have a point that attaching to a maintain package reppo on cloudsmith is a valid route - but please help me to try and make this process more idiot proof.

So far, I have failed to install the latest rakudo with rakudo_pkg

Nowhere is it stated that the user should go sudo apt-get install rakudo-pkg

I did that and I can see the rakudo-pkg in /opt (which appears to be 2024.01)

There are no per-user setup instructions that I can see ... they are not in the readme

I propose that you fix the nxadm/rakudo-pkg site so that the instructions are idiot proof. Another option would be to delink that site and to provide concise instructions on rakudo.org directly which would avoid a level of indirection, but may be too hard.

If you prefer the latter case, please provide some text. I propose (like the main content of the page which we know is broken) we cover the main variants: Fedora, Debian/Ubuntu and openSUSE / Leap ...

bazzaar commented 7 months ago

@librasteve

First of all I just corrected your apt-get command that you said you ran previously.

I don't tend to use the command line to install packages, I prefer to use the YAST gui (on my distro).

But initiating installation of a package on your system is something only you can do, and is the responsibility of the user.

Having said that, you are almost there :-)

You now have the package installed. It's been a while since I looked in the /opt/rakudo-pkg directory, and it seems the old readme file with instructions has been removed. Not to worry, all you need to know is described on the https://github.com/nxadm/rakudo-pkg webpage.

The setup I've referred to involves running the script to allow zef to install modules into a directory in your home directory, the script is in the bin directory in /opt/rakudo-pkg.

Then there is the step to add rakudo to your path.

Both of these steps are documented on https://github.com/nxadm/rakudo-pkg , just click the links.

librasteve commented 7 months ago

@bazzaar - yes I got it... thank you for your guidance

I was running the curl script and then going apt-get install rakudo-pkg ... now I have done it I see that I did it in reverse order

I will prepare a new PR for rakudo.org shortly

nxadm commented 7 months ago

@librasteve

The full instructions are here: https://github.com/nxadm/rakudo-pkg/?tab=readme-ov-file#downloads

And more specifically: https://github.com/nxadm/rakudo-pkg/?tab=readme-ov-file#zef-module-manager https://github.com/nxadm/rakudo-pkg/?tab=readme-ov-file#add-rakudo-to-the-path https://github.com/nxadm/rakudo-pkg/?tab=readme-ov-file#clean-up

The pkg instruction at CloudSmith are generic and created by CloudSmith and I can not edit them.

We can rework the instructions or even made them obsolete by setting the paths by the package. I chose not to in order to not compete with a raku installed by the distribution itself (you can use that and rakudo-pkg at the same time).

nxadm commented 7 months ago

More to the point, I am not arguing for rakudo-pkg. It's an option and there may be others. But I do agree that the instruction to get Raku at the Raku website are too confusing. It was one of the reasons rakudo-pkg was created.

librasteve commented 7 months ago

@nxadm, @bazzaar - I like rakudo-pkg and I am convinced by the argument that *nix users do not want to rebuild rakudo each time and that they are used to apt-get install xyz

It is certainly a better option today than apt-get install rakudo since that gets you a prehistoric version and is a recipe for immediate failure for any newbie

By the time a newbie gets here they have already gone raku.org => rakudo.org (huh?) so I want most of them to feel that they can succeed without further searching and so I plan to put the basic instruction to rakudo_pkg in the main thread like this (also for other variants like Alpine, Fedora ...)

This is how I would (re)write the basic instructions for ubuntu based on my experience as a consumer, feedback welcome.

Am I right to assume these generic steps (with different content) will apply to Alpine, Fedora, etc?


Step 1 - install rakudo-pkg on your machine

sudo apt-get install rakudo-pkg

Step 2 - download and run the setup script

curl -1sLf \
  'https://dl.cloudsmith.io/public/nxadm-pkgs/rakudo-pkg/setup.deb.sh' \
  | sudo -E bash

Step 3 - install zef and add path to your .profile

/opt/rakudo-pkg/bin/install-zef
echo 'export PATH=~/.raku/bin:$PATH' >> .profile

More detailed instructions may be found at https://github.com/nxadm/rakudo-pkg/

bazzaar commented 7 months ago

I think I would err towards just very general, but 'to the point' info on the rakudo.org webpage.

I don't think we should be duplicating detailed info between the rakudo.org, and 'github/nxadmin/rakudo-pkg' websites

Like @nxadm has said, rakudo-pkg is but one option, albeit a very good option, for certain circumstances.

There's still a significant discussion to be had about how a refresh of 'raku.org / rakudo.org' should look.

I would argue for these assets to have an uncluttered appearance.

Lets take the 'rakudo installation' page, as an example:

A few ways to install Rakudo on your system.

Linux

1. Simplest is to point the package installer on your Linux distro to a well-trusted and reliable repository for Rakudo.

   - here's one we recommend **rakudo-pkg** (instructions : https://github.com/nxadm/rakudo-pkg/)

2. Other ways are to use RakuBrew, if that's your bag, or even compile directly from source

   - here's a helpful link for that (......)

Mac
...

Windows 
...

Something as simple as that ...

librasteve commented 7 months ago

@bazzaar - I think we are very close in our thinking ... I will create a PR for all to review shortly.

librasteve commented 7 months ago

NB. I 110% agree with your point about raku.org rewrite ... my approach is to nibble at this one problem at a time (boil the frog)