Dune: New name: Dune

Created on 11 Dec 2017  路  65Comments  路  Source: ocaml/dune

It appears that for legal reasons we do need to change the jbuilder name. Feel to suggest new names here.

Most helpful comment

My five cents:

  • caravan for the camel theme, and it also plays nice with the commands, e.g., caravan build
  • oproject for the OCaml Project, since jbuilder is about the project managing
  • oat as a fancy acronym for OCaml Automation Tool.

All 65 comments

It was originally a confusing for me that the jbuilder tool did a lot more than build things (including running tests, cleaning up, installing stuff, uninstalling stuff). Kind of like make. I also still keep typing jbuild instead of jbuilder.
The j- prefix is contaminated by both JavaScript and Java, so if you are bent on including your company name in the name of the tool, maybe something like janemake?

I propose jbyg. Byg is imperative of 'bygge' ('to build') in Danish. It also means barley, and barley is used in beer brewing, and I like beer. Finally, it's super short and doesn't seem to conflict with anything.

As it happens, the J in jbuilder does not come from the J in Jane Street. The only potential reason for wishing to keep a name beginning with J is that we could logically keep having files called jbuild

I don't speak Swahili, but https://translate.google.com can help
finding variations around "jenga" (build in Swahili), e.g.:

  • building (noun) -> jengo;
  • building (verb) -> kujenga;
  • builder -> mjenzi.

As previously suggested, I think obuilder will involve the least amount of confusion/churn.

Oh, shit, naming things - "the hardest problem in computer science."
I'll be out of this thread and leave you to it. :-)

@lpw25 you don't think obuilder will be confused with obuild, omake or ocamlbuild? To me they all seem very similar (and the latter three are all existing software distributed through opam).

@dra27 just out of curiosity, what does the J in jbuilder stand for?

EDIT: @xclerc jengo seems awfully close to the existing jenga -- Industrial strength, full-featured build system in opam.

My five cents:

  • caravan for the camel theme, and it also plays nice with the commands, e.g., caravan build
  • oproject for the OCaml Project, since jbuilder is about the project managing
  • oat as a fancy acronym for OCaml Automation Tool.

@cfcs the J comes from jenga, which is another build system developed at Jane Street which inspired jbuilder. Jbuilder is now a community project and will soon move out of the janestreet github organization, so there is no reason to have a link to Jane Street in the name.

Presumably, if we change the name, we also have to change the name of the configuration file from jbuild?

Retaining the "j" would avoid some questions about migrating all the "jbuild" names that are already there.

My proposition is "jamal" which seems to be the arab word for camel.

No constraint on keeping the j. Once we have a new name, we'll decide if we need to rename configuration files or not. If we do, there'll be a migration plan and both old and new names will be supported for a while.

As mentioned above, I've also had an issue with writing jbuild when I meant jbuilder. It's confusing to have the 2 IMO. I think a better approach is similar to what Rust does: the tool is cargo, and the file is cargo.toml.

I also like the idea of continuing with desert-related names. Caravan is good but a bit long. How about nomad? The idea being that the nomad takes everything needed along, and rebuilds it where needed. We would then have something like a nomad.sexp or nomad.conf file as our configuration file name.

A build tool helps with digesting code and turning it into something productive, so I started thinking about camel digestion. I don't know anything about that topic, but did some superficial web investigation. Camels are "pseudoruminants" with three-chambered stomachs, differing from ruminants which have four-chambered stomachs. It's not clear that "pseudoruminate" is a word, although there seems to be a term "pseudorumination". Both of these are too long, and "pseudorumination" seems to refer to a rabbit behavior that sounds kind of disgusting.

However, camels do chew their cud, i.e. "ruminate", as part of their digestive process. "Ruminate" more commonly refers to thinking deeply over a period of time.

So I suggest "ruminate" as a possibility.

("Rumination" is apparently also a term for a concept associated with depression in psychology. However, I'd never heard of that until I searched on "ruminate". The "thinking deeply" sense seems pretty common.)

On the other hand, it could be nice to have a name that's unusual enough that web searches would always bring it to the top. Some of the other suggestions might have this property.

For desert things, how about mesa?
mesa-landform-drawing-wallpaper-1

Another one: _coyote_ :-)

For desert things, how about mesa?

To be honest, I had no idea what a mesa was until I clicked. And I used to live right by a place called Costa Mesa!

I like mesa a lot. It's a short name, it stands over the surrounding terrain. It has the downside of name-clashing with the [graphics stack] of the same name.

obuilder is a minimal name change which is helpful. It's very similar to other existing tools as @cfcs pointed out. The name will cause problems when using tab completion on the command line if a project using obuild is also installed, even if someone isn't using both tools explicitly.

caravan looks and sounds good. I like oat as well, but maybe that should be saved as a potential name for the bob project.

Is it OK to use names associated mainly with deserts in North American, where camels are not native?

More on ruminate: If that name is too long, maybe rumin could be the command name. Then to build a project would be to "ruminate" it.

(jbuild files could be renamed to "cud" files.
Or maybe not. Not sure that the build files should named after partially digested food.)

Camel herder or shepherd?
Google translate give "乇丕毓賷", or "raei" for "herder".
It gives "丕賱乇丕毓賷" or "alraaei" for "shepherd.
I wouldn't use something like this without advice from a native speaker, though.

Or maybe just use English, and call the tool "herder" with command name "herd".
Then you can say that you are "herding" your project when you build it. Which kind of makes sense.

FWIW caravan -- A framework for testing arbitrary systems, in OCaml. is also the name of an existing opam package.

So far, I like:

  • obuilder, but I don't like the name clash with obuild
  • mesa
  • nomad
  • shepherd, because jbuilder is more than just a make clone

Some of my own thoughts

  • obt - ocaml build tool
  • boo - build_of_ocaml
  • rakuda - camel in japanese
  • mehariste - camel cavalry in french

In praise of nomad (suggested by @bluddy in https://github.com/janestreet/jbuilder/issues/360#issuecomment-350776296):

  • Very nice phonetic feel in my mouth.
  • Sounds cool and adventurous.
  • Short and memorable.
  • Not taken by existing package on opam.
  • Has been in English language since at least the 16th century, so I don't have any concerns about cultural appropriation in using it (which, btw, I don't presume to project on y'all. Just a statement about my own feelings).

However, due to the niceness of that name, there are plenty of projects that have used itL https://github.com/search?utf8=%E2%9C%93&q=nomad&type=

It's still my favorite suggestion so far, tho.

We could end all the bike shedding by just calling it shed
shed build @install sounds kinda cool

Orix

nomad is my favorite name thus far. And +1 to @shonfeder's points.

I also like bina or binya, which I think is "build" in Arabic. (though maybe someone who actually knows the language can comment on whether that's right.)

But nomad is still my favorite.

I like nomad a lot as well. It has at least a few commercial products which share the name: https://en.wikipedia.org/wiki/Nomad_(disambiguation) Would there be an issue with those project names, similar to what is causing the change from jbuilder now?

It doesn't seem like any of those are in the same space as jbuilder (either one!), so that doesn't seem too worrying.

Not sure about legal matters, but the clash of the command name with https://github.com/hashicorp/nomad might be an issue.

I don't have strong feelings about it--or really, even weak feelings about it--but I want to point out that a nomad is a wanderer, which kind of sounds antithetical to building and constructing. Or maybe compiled OCaml programs take you on a journey, and nomad lets you organize your stuff for the journey? Not important. I would support any name, and I'm not sure that my vote should matter anyway. "nomad" does have a nice sound.

Another suggestion would be dune. It was awesome as a book name, and it still works as an executable. It also pulls in a whole lot of neighboring associated words, such as buggy, sand, and spice (from the book), which could be useful for related tools/files.

There's a dune library for distributed numeric computation, but it's only a library -- not an executable.

If we're suggesting Arabic-themed names, how about 'jamal'? It's a male name meaning 'beauty'.

And 'camel', apparently, as @jnavila pointed out. At least the English transliteration is the same. The Arabic in Google translate looks the same to me, too, ie for both 'camel' and 'beauty'.

Is jbuild an option?

I want to like caravan, but it feels plodding and somehow clumsy to me. Moreover, I cannot shake the association with https://en.wikipedia.org/wiki/Dodge_Caravan :(

I see @jnavila has already suggested 'jamal' which means 'camel', I just want to disambiguate it from 'Jamal' which is a male name meaning 'beauty'. They are pronounced differently:

  • jamal is pronounced 'JUM-ul'
  • Jamal is pronounced 'jum-ALL' (more or less)

+1 for nomad.

Another possibility is to pick the name of a desert, like sahara or gobi. Purists will prefer a desert where bactrian camels actually roam -- which favours gobi over sahara -- though frankly no one will notice.

I know I already posted in here, but as time goes on, I just want to update my votes:

  • nomad sounds too much like monad to me :)
  • sahara or gobi sound really really really cool
  • obt I'm really starting to like the no-frills simplicity of this (ocaml build tool)

I like gobi, it's short, it hints at "go build", and contains at least two obviously usable letters for backronyming.

gobi sounds really appropriate.

gobi sounds too go for me. Not really the intended reference.

Oh snap! This is my fault. I deconstructed the word, and now what everyone sees is "go". I'll try to reconstruct it as the "Global OCaml Build Infrastructure", where "global" refers to the workspace feature. But I also like some other names mentioned including dune, caravan, jamal, binya. And I was pondering on how amusing it would be to type unclean to build a project, but then maybe not.

fwiw, @paurkedal gobi made me think of go before your comment.

Why not French? Is there a term for a build process when one isn't using the English word? b芒tir? construire? Something else? Maybe not the infinitive but some other form? I am not fluent in French.

Against mesa - meson is a build system already. I'd rather not use something so close :)

Definitely against nomad due to the name clash -- I think avoiding executable name clashes should be a priority.

Some additional suggestions:

orbs -- OCaml Robust Build System
oud -- The musical instrument.

I love oud. Beautiful instrument. OCaml Utility for Development?

I like oud - it's quite fun to say oud build!

Apart from exotic bactrian puns, obt makes much sense, just like sbt for Scala. Too bad there's a clash with this obt

There was once a project named oud in the OCaml ecosystem,
developed by @zoggy.

That was oug: http://oug.forge.ocamlcore.org/
But it's not maintained anymore.

Sorry for the confusion - I knew "oud" had already
been used in the context of OCaml, but it was indeed
the name of the workshop at ICFP a few years ago.

Another desert (and engineering)-themed proposal: qanat, which are underground irrigation systems

mameluke?

from Age of Empires

Un soldiers in Eritrea

In my opinion it would be nice if we could add sub-command(s) to opam to build
the project. From my experience people get confused by the amount of separeate
tools they need to use to manage the project lifecycle (_e.g._ ocamlfind,
ocamlbuild, opam, odoc/odig, utop, merlin, ocp-indent, topkg, _etc_).

jbuilder could be renamed into opam-build and could be run as opam build.

Another option is to add the opam project sub-command as a namespace for all
jbuilder commands.

I'm also strongly against nomad. I do like the name but it conflicts with another popular project by HashiCorp.

Sticking with the camel/desert/etc. theme and relating to building, perhaps something to do with pyramids would be appropriate. E.g. the word pyramid itself, hemiunu (architect of the Great Pyramid of Giza), khufu (the pharaoh for whom it was built).

I like the pyramid idea. To me it evokes how we create these big pyramids of projects with jbuilder. Plus pyramids are impressive buildings

Giza is nice and short!

Folk, I made a poll to get some aggregation of the overall opinions.

https://poll.disroot.org/JPZV4Zt5fG14MwWM

The names are loosely in the order I saw from here and in the forum, omitting ones that didn't seem to get any favour.

If I've missed your favourite one, mention me with the name.

Edit: fixed broken link

@rizo "jbuilder" has to build binaries, and install them into a subtree. After jbuilder has done its work, opam or rpm or apt or whatever grabs that tree and turns it into a package of some sort.

cob camel o builder.
cob means the hump of a camel in Japanese and Kobu,Konbu is Japanese Laminariaceae.

@hsk that makes me think of COBOL - the COBOL file extension is .cob.

How about emmet, for Emmet Brickowski from The Lego Movie (he initially struggles with building, but eventually develops his skills to become a Master Builder).

"Emmet" also sounds like "emit", which invokes (in me) somewhat magical associations - just picture Gerald Sussman in wizard robes, waving a wand and proclaiming "Emit the executable!" :)

@ibnfirnas there's some kind of editor tooling called Emmet, I think that would be confusing.

We discussed with the other developers and we settled on dune.

Thanks to everyone for helping in finding a new name for Jbuilder! I personally loved the dune books and I'm looking forward to this rename, I think it's a great choice for Jbuilder.

We'll start the renaming work at the beginning of next year, you can follow the advancement on #362.

My (too late) proposition: ocamlb.
Rational: I never liked oamlbuild, so I am very happy to see something eradicating it from the ocaml ecosystem.
Plus, we already have names such as ocamlc, ocamlopt, etc.
But, of course, having settled on the name of some of the finest science fiction ever written is also cool.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

bobbypriambodo picture bobbypriambodo  路  5Comments

jvillard picture jvillard  路  8Comments

erikmd picture erikmd  路  4Comments

mmottl picture mmottl  路  4Comments

bobot picture bobot  路  7Comments