Skip to content

Come up with better names #94

Open
@rvl

Description

@rvl
Contributor

It's time to talk about the names.

nix-tools gives no indication that the tools are for Haskell Cabal and Stack, nor that they are only useful with haskell.nix.

Haskell.nix is a bit too similar to the auto-generated repos hackage.nix and stackage.nix. But Haskell.nix is more important than these repos.

Activity

added this to the Beta Release milestone on Mar 20, 2019
angerman

angerman commented on Mar 20, 2019

@angerman
Collaborator

Thanks for bringing this up @rvl! Yes naming has been a sore point. I've started to emphasise haskell.nix more over nix-tools. Specifically because nix-tools only does the translation and haskell.nix is the real haskell nix infrastructure.

I'm quite happy with the convention of .nix suffix for projects that consist of mostly nix files.

My preference would be

  • focus on haskell.nix
  • keep hackage.nix and stackage.nix
  • find a better name for nix-tools.
angerman

angerman commented on Mar 20, 2019

@angerman
Collaborator

We also have iohk-nix, which uses haskell.nix as building blocks to build our high level interface. @nomeata has been running into this a bit, and is probably not too happy about the cargo-culting.

I see this as three layers. (hackage.nix and stackage.nix being just auxiliary)

Layer Name Description
3 iohk-nix High level tooling built ontop of haskell.nix with the focus on ease of use for common use cases.
2 haskell.nix Improved (component level) build infrastructure for haskell packages with nix
1 nix-tools low level translation utilities to translate (haskell) package databases/solutions/descriptions into nix

Where are the exact boundaries? If we add ghc's into this, they would be in haskell.nix? Shouldn't all our patches and cross compilation logic be then in haskell.nix as well? Or should we keep it leaner?

nomeata

nomeata commented on Mar 20, 2019

@nomeata
Contributor

Let me add a few pairs of cents:

If we add ghc's into this, they would be in haskell.nix?

I would assume so. Distinguishing ghc from Haskell libraries is hardly worth the bother, and ghc ships with many of them.

Shouldn't all our patches and cross compilation logic be then in haskell.nix as well?

As long as they are general purpose, i.e. not particularly tied to IOHK, yes. Since haskell.nix is, in a way, a replacement for parts of nixpkgs, and nixpkgs supports cross-compilation and has patches for that, it follows that haskell.nix is the right place.

If you want to keep haskell.nix to be purely the infrastructure (which makes sense), then maybe have a repository haskell.nix-patches that provides a pkgs-extras module (or even multiple ones), that users can opt-into. This would, in fact, be a nice separation of concerns.

nix-tools

Yes, very confusing that there is no haskell in the name. It would have helped me if that were called nix-haskell-tools or, even better haskell.nix-tools, since it is tied to haskell.nix (and not Haskell and nix in general).

iohk-nix

If it is “high-level tooling for convenience”, then it should definitely not have patches, because if the patches live there it means you can’t achieve the same result with less convenience without it, which means it is not “high-level tooling”.

Maybe haskell.nix-simple? It isn’t really iohk-specific, and having iohk in the same is confusing (I didn’t look at it because I thought it is local and specific code in there.)

hackage.nix and stackage.nix

I agreed with @rvl that the similarity to haskell.nix is confusing. Maybe haskell.nix-hackage and haskell.nix-stackage?

So maybe have these repositories?

  • haskell.nix-tools
  • haskell.nix
  • haskell.nix-hackage
  • haskell.nix-stackage
  • haskell.nix-patches
  • haskell.nix-simple
angerman

angerman commented on Apr 2, 2019

@angerman
Collaborator

I've just opened irc://irc.freenode.net/#haskell.nix

michaelpj

michaelpj commented on Apr 2, 2019

@michaelpj
Collaborator

Suggestion for nix-tools: haskell-builds-to-nix. Maybe haskell-builds.nix?

angerman

angerman commented on Apr 3, 2019

@angerman
Collaborator

@michaelpj, I actually like haskell.nix-tools as suggested by @nomeata, any specific reason you don't like that one?

michaelpj

michaelpj commented on Apr 3, 2019

@michaelpj
Collaborator

I just find "nix-tools" very non-specific even when it's scoped to Haskell. Hence the suggestion to at least say that it does something to do with build tools.

nomeata

nomeata commented on Apr 3, 2019

@nomeata
Contributor

The scoping is (haskell.nix)-tools :-)

michaelpj

michaelpj commented on Apr 3, 2019

@michaelpj
Collaborator

Years of URLs have taught me that the precedence is the opposite way around :)

angerman

angerman commented on Apr 3, 2019

@angerman
Collaborator

@michaelpj so you'd prefer haskell.nix/tools or tools.haskell.nix? nix-tools will essentially contain all the tools related to haskell.nix. If we fix build in there somehow, we will need yet another repository once we have non-build tools and the question becomes, what is a buildtool where are the boundaries?

michaelpj

michaelpj commented on Apr 3, 2019

@michaelpj
Collaborator

I mean, I'm not sure what the semantics of these names are supposed to be :p I quite like haskell.nix/tools although we're starting to introduce awkward characters. tools.haskell.nix could be good.

I take your point that you might want to put other tools that aren't build-related in there.

michaelpj

michaelpj commented on Apr 3, 2019

@michaelpj
Collaborator

haskell.nix/tools suggests another question: why not merge nix-tools into haskell.nix as a subdir?

angerman

angerman commented on Apr 3, 2019

@angerman
Collaborator

haskell.nix/tools

this of course was a lure :p we are just replacing / by - ;-)

haskell.nix/tools suggests another question: why not merge nix-tools into haskell.nix as a subdir?

I'd prefer to keep the tooling separate from the rts/infrastructure. Essentially haskell.nix-tools will be a cabal package.

michaelpj

michaelpj commented on Apr 3, 2019

@michaelpj
Collaborator

this of course was a lure :p we are just replacing / by - ;-)

But then it groups wrong by the precedence rules people are used to. I know this sounds picky but I genuinely think people will parse it wrong.

I'd prefer to keep the tooling separate from the rts/infrastructure. Essentially haskell.nix-tools will be a cabal package.

Up to you, but I'm not entirely sure why. I guess haskell.nix/tools isn't so tightly coupled to haskell.nix, you can probably use the same version with various haskell.nix versions okay-ish.

angerman

angerman commented on Apr 3, 2019

@angerman
Collaborator

Alright. I'll go and let this sit for now. Maybe @michaelpj can convince me in two weeks that he's right and I'm wrong 🍻

michaelpj

michaelpj commented on Apr 4, 2019

@michaelpj
Collaborator

Here's a concrete suggestion: right now in a few places in the Nix expressions stuff gets scoped under nix-tools, e.g. https://github.com/input-output-hk/iohk-nix/blob/master/nix-tools-default.nix#L30

I think this should be haskell.nix or something derived from that, since they're haskell.nix expressions created by nix-tools. If the name only crops up as the namespace of the actual set of executable tools themselves then that simplifies things.

chreekat

chreekat commented on Jun 19, 2019

@chreekat
Contributor

Anecdote: I parsed haskell.nix-tools the way @angerman intended immediately. However, if I come back to it in a week without context, I'll probably parse it incorrectly.

Projects don't usually have '.' in their name. haskellix-tools, haskellix-stackage, haskellix-hackage. I'm terrible at names.

chreekat

chreekat commented on Aug 22, 2019

@chreekat
Contributor

Two months later, I really like haskell.nix.

haskell and hackage are similar words, but we know they are vastly different -- I feel the same is true for haskell.nix and hackage.nix.

The .nix suffix is fine, but needs to remain a suffix. haskell-tools.nix, haskell-patches.nix, etc.

tools.haskell.nix is the best option i've seen for a new name of nix-tools. Except it isn't Nix, so that confounds the meaning of the .nix suffix.

nomeata

nomeata commented on Aug 22, 2019

@nomeata
Contributor

In an alphabetic listing of directories, don’t you really want all the haskell.nix-related repositories to be next to each other? Common prefix seems better than common suffix to me.

chreekat

chreekat commented on Aug 23, 2019

@chreekat
Contributor

In my case, they wouldall be next to each other, in a subdirectory. :)

fwiw, I would be happy with @nomeata 's suggestions listed at #94 (comment) . If "haskell.nix" is always used as the top-level name, it seems to me that it won't be hard to parse "haskell.nix-tools" as (haskell.nix, tools) rather than (haskell, nix-tools)

michaelpj

michaelpj commented on Aug 23, 2019

@michaelpj
Collaborator

haskell.nix.hs? :trollface:

I'm not a huge fan of haskell.nix-tools still, but I really think we should change it to something less ambiguous than nix-tools asap, so I'd take it.

chrissound

chrissound commented on Jan 5, 2020

@chrissound

Instead of using "generic" names like haskell / nix / tools / build etc, I'd suggest choosing something much more random and unique. In terms of SEO purposes something like BobbyBobsBuilder is going to be a lot more specific than just "haskell.nix" I'd imagine. The same way we have "aeson" instead of "json" for Haskell.

stale

stale commented on Sep 28, 2022

@stale

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @angerman@nomeata@chreekat@hamishmack@rvl

        Issue actions

          Come up with better names · Issue #94 · input-output-hk/haskell.nix