civodul,
@civodul@toot.aquilenet.fr avatar

In Nixpkgs, the ‘shepherd’ package is not what I’d expect.
https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/by-name/sh/shepherd/package.nix

Mehrad,
@Mehrad@fosstodon.org avatar

@civodul The GNU Shepherd initial commit dates back to 2012-07-10 and this npm shepherd 2018-07-14, but considering that GNU Shepherd is practically only popular among GNU folks, I'm not surprised that npm Shepherd is the one that have got picked by Nix folks. Fortunately the package description in Nix repo is pretty clear about what user should expect to get.

To save others time, I'm gonna put the links to initial commits here :)

https://git.savannah.gnu.org/cgit/shepherd.git/commit/?id=38a763bdedc4ec15ac4e01f4ecd13c1cee84ee4e

https://github.com/NerdWalletOSS/shepherd/commit/2b68c968f30365be53b1822423caccac1ae7dfe8

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@civodul "shepherd" in NixOS is a little dissapointing:

"A utility for applying code changes across many repositories"

@Mehrad that's nice, if there were a copyright battle, GNU Shepherd would win.

Mehrad,
@Mehrad@fosstodon.org avatar

@ramin_hal9001
Tbh, as much as I like Guix and Guile to prosper (I genuinely do), the sad reality is that the barrier to entry is so damn high and even people like me with some understanding of Guile and Guix are repelled. I have a feeling that the level of barrier to entry is the same when it comes to GNU Shepherd too.

So for who wins what, if I want to win the bet, I would never put my money on these.

Just to clarify: I use Guix time-machine in daily basis for my research

@civodul

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@Mehrad @civodul it is true, Guix will need a lot more engineering resources (full-time, paid software developers) before it could become useful. It especially lacks hardware support unless you go out of your way to setup non-free software package channels.

For the most part, if you stick to only using the main package channels, and don't do anything fancy for developing your own apps like changing package dependencies or build options, everything just works. This at least gives you access to instant roll-backs, and things like GNU Shepherd.

I prefer to use Guix as a package manager, in particular, I will use Guix as an alternative to FlatPak, Snap, and AppImage. It co-exists perfectly with any Linux distro's native package manager. So I let my Linux distro handle my operating system and desktop environment, and I install my favorite apps with Guix.

Mehrad,
@Mehrad@fosstodon.org avatar

@ramin_hal9001
I do the same. I use Manjaro and I only use Guix for creating reproducible development environment using the time-machine. So I don't use GNU Shepherd.

My main complaint about Guix is not hardware support, but rather lack of cohesive documentation, lack of unified website, lack of using "modern" issue tracker and contribution method (mailing list is a horrible idea), and most importantly, lack of forum (IRC is not a forum even if you cache it and make it searchable).

@civodul

civodul,
@civodul@toot.aquilenet.fr avatar

@Mehrad @ramin_hal9001 Not sure how we went from the package name collision to this discussion…

Regarding “lack of cohesive documentation” and “lack of unified website”, could you point out specific issues or improvements that you think could be made?

Mehrad,
@Mehrad@fosstodon.org avatar

@civodul @ramin_hal9001
With pleasure.

for the "lack of unified website":
There is no single entry point. For example as one of the most confusing parts: there is https://packages.guix.gnu.org/ and https://hpc.guix.info/browse to search for packages, (why?) and worse that that, the hpc sometimes falls back to the other one!!
Or there is no unified place to find channels. The packages.guix.gnu.org is completely unclear which channels it includes (poor documentation?), and
🧵 👇🏼

Mehrad,
@Mehrad@fosstodon.org avatar

🧵 👆🏼
@civodul @ramin_hal9001
HPC only covers 6 channels, so a normal user should rely on weird websites like https://toys.whereis.xn--q9jyb4c/

There are helpful pages like https://data.guix.gnu.org/repository/1/branch/master/package/r which is super helpful for people who want to use time machine, but it is in a weird place that is practically impossible to find if I didn't bookmarked it the first time someone pointed me to it!

Also on the same "unified website" topic, see how the layout and theme of all these guix pages are different
🧵 👇🏼

Mehrad,
@Mehrad@fosstodon.org avatar

🧵 👆🏼
@civodul @ramin_hal9001
The correct approach imho is to have a clear path for the user to find the information they need. Nix is on Github and because of that users can dive into it using lots of quality-of-life features that Github provides (e.g what you did by sharing a link that contains specific line of a file).

As for "lack of cohesive documentation", Guix extremely relies on info pages. But that is not well known to 99.9% of world population.
🧵 👇🏼

Mehrad,
@Mehrad@fosstodon.org avatar

🧵 👆🏼
@civodul @ramin_hal9001

For instance, go to https://guix.gnu.org/ (official Guix website) and try to find a button of link that a beginner user can use. try searching for terms like "how to get started", or "documentation" or "examples", ...

The user's best bet is this link after around 5 clicks through a nested menu: https://guix.gnu.org/manual/devel/en/guix.html

Even then, user is helpless, because not only the example codes are lean, but it has a mix of short and long for of arguments!
🧵 👇🏼

Mehrad,
@Mehrad@fosstodon.org avatar

🧵 👆🏼
@civodul @ramin_hal9001

Documentation imho should always use long for of args.

Documentation should have tangible examples that user can literally copy-paste and toy around with to learn, but take the time-machine section for example:

https://guix.gnu.org/manual/devel/en/guix.html#Invoking-guix-time_002dmachine

Why is it this weird and complicated? I use time-machine followed by -- shell, but there is no mention of chaining them to get a working environment No one need gnu hello in time machine, but people need Python or R or Perl.

🧵 👇🏼

civodul,
@civodul@toot.aquilenet.fr avatar

@Mehrad @ramin_hal9001 Okay yes, sure, “we” (that includes yourself) can improve that ‘guix time-machine’ section of the manual. This is useful feedback, thanks!

I definitely share the goal of accommodating a wide range of people. The challenge for the Guix community has been to achieve that without giving in to GitHub, Slack, and other surveillance capitalism platforms.

Mehrad,
@Mehrad@fosstodon.org avatar

@civodul @ramin_hal9001
>> “we” (that includes yourself) can improve that ‘guix time-machine’ section of the manual.

I would love to chip in and help.

>> The challenge for the Guix community has been to achieve that without giving in to GitHub, Slack, and other surveillance capitalism platforms.

I completely share the vision. But not using something like @forgejo (fully FLOSS, self-hostable, feature-rich, eye candy (imo), and etc.

Mehrad,
@Mehrad@fosstodon.org avatar

🧵 👆🏼
@civodul @ramin_hal9001

I truly hope that I have conveyed two things in this thread:

  1. answer to your question
  2. my personal frustration with this spaghetti of websites and the current state of documentation

Guix is super cool and I for one would love to keep using it, but my enthusiasm is not enough. Guix should also accommodate wider range of people and be more inclusive by having better entry points, better examples, better communication platforms, and etc.

Thanks for reading these

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@Mehrad @civodul I think if you go to the Guix hompage, there is a "Help" menu, and there are links there to a Guix reference card, the Guix cookbook, and the Guix manual. So this serves as a single entry point, does it not?

Part of the problem is that Guix can be used as an Linux distro and a package manager, and the package manager is highly configurable with various channels. So your "entry point" to Guix might be different from other people, depending on how you want to use it. I think the Guix homepage does a pretty good job of providing resources for general purpose use cases. It seems to me that if you are using the HPC channel, you are not in the group of people who use Guix for general purposes.

> "For example as one of the most confusing parts: there is https://packages.guix.gnu.org/ and https://hpc.guix.info/browse to search for packages, (why?)"

The reason why is because there are multiple channels for packages. I recommend you use Guix command line tools to search for packages, rather than using the websites, because the Guix command line will search all the channels that you have access to, rather than you needing to know which channel provides which package and searching the channel website.

guix package --search='name-of-thing*'

> "Guix extremely relies on info pages. But that is not well known to 99.9% of world population."

For what it's worth, I really love the Info manual pages, it is very easy to find all the information I am looking for in this documentation, as long as you use Emacs (which I do) or the stand-alone "info" CLI utility. All you need to do is use the search features: index search (press "i" and type your query with tab completion) and menu search (type "m" and type your query with tab completion). The "index" is the index of all keywords in the manual, it is good to use if you do not yet know what you are looking for. The "menu" is a list of all documentation subsection titles, it is good to use if you already know what you are looking for.

Mehrad,
@Mehrad@fosstodon.org avatar

@ramin_hal9001
It's nice that your instance does not limit the character count. I'm jealous 😅

As the response to your first and second paragraph, compare it to https://nixos.org and be honest to yourself. But in brief:

on-boarding != >5000 word manual

Really, check the Nix website. There is a big button "Get Started", then there are 6 very good Ascinema examples.

Also, for good manual and examples, check this (not the content, but the style):

https://nixos.wiki/wiki/R

@civodul
🧵 👇🏼

Mehrad,
@Mehrad@fosstodon.org avatar

🧵 👆🏼
@ramin_hal9001

>> I recommend you use Guix command line tools to search for packages, rather than using the websites, because the Guix command line will search all the channels that you have access to

Which is exactly the problem. I rather include a channel to the mix than to package something myself. Less maintenance burden on my soulder. That is why https://toys.whereis.xn--q9jyb4c/ worth millions of times more than Guix official website for the general user!

@civodul
🧵 👇🏼

Mehrad,
@Mehrad@fosstodon.org avatar

🧵 👆🏼
@ramin_hal9001

>> For what it's worth, I really love the Info manual pages, it is very easy to find all the information I am looking for in this documentation, as long as you use Emacs (which I do).

Yes, but it is your setup, which is very similar to the setup of a very tiny minority on this planet.
I use Emacs and I wholeheartedly dislike info pages. There is no breadcrumb and veeery easy to get lost. I use them unfortunately because Emacs documentation is there.

@civodul
🧵 👇🏼

Mehrad,
@Mehrad@fosstodon.org avatar

🧵 👆🏼
@ramin_hal9001
The aim of that thread was not ask for help, but was to clarify why from my perspective the Guix lacks certain things and what can in my opinion be improved.

You want to know why Nix is more popular? Well, big part of it is the on-boarding process. Did you attend that patch review session from Guix London? Zero preparation, total chaos to the extent that they literally said they don't record it because of the chaos! That could be good entry point but was it?

@civodul

Mehrad,
@Mehrad@fosstodon.org avatar

@ramin_hal9001 @civodul

One last remark: I am not a fan of Nix and I don't use it in daily basis (I have a dedicated laptop to test stuff and play around with it on weekends if I feel like it). But I do use Guix (not by force, but by my own choice) in daily basis at work and at home. I even spent last weekend working on a proposal on some parts that Guix can be improved by making certain things automated and less error prone to beginner user. So I'm invested in Guix, but certain parts hurt

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • kavyap
  • mdbf
  • osvaldo12
  • ethstaker
  • tacticalgear
  • DreamBathrooms
  • thenastyranch
  • magazineikmin
  • modclub
  • Youngstown
  • everett
  • slotface
  • rosin
  • GTA5RPClips
  • provamag3
  • khanakhh
  • cisconetworking
  • tester
  • ngwrru68w68
  • normalnudes
  • Durango
  • InstantRegret
  • cubers
  • megavids
  • Leos
  • anitta
  • JUstTest
  • lostlight
  • All magazines