Blag

He's not dead, he's resting

Paludis is Going Into a Cave

The following applies to Gentoo, not Exherbo. Exherbo developers (Exherbo has no users) already know what’s going on there. I figure it’s worth having a clear source of information on this for Gentoo users, though, rather than making people rely upon rumours and third hand transcriptions of what’s been said on IRC.

The original Paludis client was more or less designed to be a less perverse version of emerge, with additional options for things like querying. On the plus side, it made things slightly easier for Gentoo users to pick up. However:

  • Users would be confused as to why things like --show-use-descriptions, which is an option for the --install action, would not also do something with --query. Funnily enough, users don’t seem to wonder why emerge --sync --changelog --pretend doesn’t work.
  • We had to be extremely careful allocating short options. Thus, we only allocated short options when we were sure an option would regularly be used both enabled and disabled, since otherwise it could just go in PALUDIS_OPTIONS. This worked well enough for users who were paying attention, but seemed to scare off certain people who jumped in without understanding what they were doing.
  • It meant we regularly had to decide between breaking familiarity or doing something dumb just to make Portage converts comfortable.

I’ve never especially liked the result. It’s not close enough to emerge to make learning zero cost, and it’s too close to emerge to be a pleasant user interface. Fortunately, the UI and the library are mostly nicely separated, so we can fix this. The plan is as follows:

  • A new client, named cave, will be provided. All pretence of feeling anything like emerge has been abandoned for cave. Instead, the interface is roughly based upon git and similar tools.
  • Depending upon whether or not we can be bothered, a second new client named egress may or may not be produced. If it is, it will be command-line-compatible with emerge, and with a reasonably similar output format (within reason). I’m not convinced something like this would be worth the effort to write, although there are some Gentoo developers who insist that something that behaves almost identically to emerge is a critical requirement for any official Gentoo package manager…
  • The paludis client will be deprecated and phased out.

To make things simpler, we’ve also decided to use the introduction of cave to switch to the shiny new resolver. The shiny new resolver is a lot more flexible, a lot more powerful and a heck of a lot easier to maintain and modify than the old resolver. However, making the paludis client use it would be quite a bit of work, so we’re not going to backport it.

There is no specific timeframe for any of this, and no estimates will be provided. There are, however, lists of things that need to be done.

  • The Basic Functionality milestone contains all of the things that have to be done before we consider cave to be ‘more or less usable’. Until this milestone is complete, we won’t be enabling cave in any of the ebuilds on Gentoo, and we don’t recommend users sneakily enabling it themselves. Note in particular that some of the things not yet implemented include “displaying a user-readable error message rather than a big fat “UI not implemented!” when attempting an unsafe package uninstall, and “handle virtual blockers”.
  • The Useful Functionality milestone contains all of the things that have to be done before we remove the paludis client. We will be making cave easily available before it includes every bit of functionality present in paludis, but we won’t be forcing a switch until we’ve either implemented equivalents for every feature or decided we’re not going to support a particular feature at all.
  • The Long Term Extras milestone contains things we’ll be doing at some point.

These milestones are probably incomplete, and are definitely open to arbitrary additions, removals, changes and being ignored based upon developer whims, available development time, bribery, patches, lack of interest, features looking fun or boring to code and the phase of the moon.

I realise this is probably futile, but I should stress that users should not attempt to enable or use cave on Gentoo until we pass the Basic Functionality milestone. This isn’t taking away your fun — some of the not yet completed Basic Functionality items are necessary for basic usability and correct operation on Gentoo.

13 responses to “Paludis is Going Into a Cave

  1. Jason April 1, 2010 at 9:15 am

    “is a critical requirement for any official Gentoo package manager…”

    Is this by any chance hinting at anything…? Emerge replaced by egress? What do you mean “official”?

    • Ciaran McCreesh April 1, 2010 at 9:18 am

      No, it’s not hinting at anything. However, a few highly placed Gentoo developers have claimed that Paludis can’t be officially supported until it’s command line compatible with Emerge. No doubt they’ll find a new excuse if it is, though.

  2. Pingback: Gentoo packs it up – joins Exherbo « Philantrop's Blog

  3. Pingback: Links 2/4/2010: Ubuntu Manual as Audio, Firefox Claims Over 40% in Europe | Techrights

  4. fadsfdsa April 16, 2010 at 12:22 pm

    Please rename “cave” to something less generic (like maybe “pcave”), so it’s easy to find relevant info/posts about it via a web search. Do this soon, before the name becomes too ingrained and well-known to change. Thanks!

    • Ciaran McCreesh April 16, 2010 at 12:31 pm

      “pcave” isn’t Latin, which would go against how we name Paludis things. Besides, “git” and “audacity” are doing just fine.

      • Anonymous April 27, 2010 at 4:28 pm

        The window manager named “awesome” is also doing fine. But that doesn’t mean that using a search engine to find discussions and comments regarding “awesome” is easy. When you search for “awesome” you’ll get many false hits, unless you include other search terms that are much more specific. But that’s not always possible. For example, say you need to search for “awesome” (the window manager) and “windows” or “awesome” and “crashing”. You’ll get many misleading results, and waste a lot of time sorting through them.

        Compare that to anything that has a unique name. Searching for the information you need is comparatively much, much easier.

        The issue of which name makes searching easier is a practical one, which will have significant consequences regarding how easily your users will be able to find discussions relating to problems they’re having and resolving those problems.

        The issue you bring up, whether “pcave” is Latin or not doesn’t seem to have any practical repercussions whatsoever. It’s a purely aesthetic decision, and I can’t imagine any user would care one way or the other, much less not use the software if it didn’t have a Latin name.

        And if “how you name Plaudis things” results in having names which are so generic they make finding relevant information through search engines harder, perhaps you should reconsider your naming scheme.

  5. Radtoo May 8, 2010 at 12:37 am

    I think there are some really good reasons for users to look forward to cave, as I have seen in Exherbo – which I assume will be kept the same on Gentoo:

    – The documentation rework (man cave-resolve or cave help resolve, including the improved structuring of the docs).
    – More shorthand, including convenience methods including more than a single command. (I don’t think this was quite clear in the announcement)
    – Some Syntax synopsis on invalid input instead of the number of expected arguments and a “Try paludis –help”. Although I spotted that only on “cave” so far, I do have the hope it will be everywhere.

    The only thing I myself so far actually didn’t like about cave so far is resolve’s -x. On something which should lead to only reversible situations, it seems unnecessary.

    I am mentioning that because (for some odd reason ;p) what essentially sounds like an announcement that states we won’t be seeing Paludis updates on Gentoo in order to get the ability to use “–show-use-descriptions” with “–query” and uh, some new and apparently shiny “resolver” thing is not too exciting, when really overall it really is quite a great improvement overall, even from an user perspective!

  6. Pingback: Paludis 0.48.2 Released « Ciaran McCreesh’s Blag

  7. Pingback: A Glimpse Into cave: Mask and Use Flag Overriding for Resolves « Ciaran McCreesh’s Blag

Leave a comment