ocaml / dune

A composable build system for OCaml.
https://dune.build/
MIT License
1.56k stars 394 forks source link

New name: Dune #360

Closed ghost closed 6 years ago

ghost commented 6 years ago

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

cfcs commented 6 years ago

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?

reynir commented 6 years ago

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.

dra27 commented 6 years ago

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

xclerc commented 6 years ago

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

lpw25 commented 6 years ago

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

cfcs commented 6 years ago

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.

ivg commented 6 years ago

My five cents:

ghost commented 6 years ago

@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.

bluddy commented 6 years ago

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

jnavila commented 6 years ago

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.

ghost commented 6 years ago

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.

bluddy commented 6 years ago

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.

mars0i commented 6 years ago

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.

Chris00 commented 6 years ago

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

Chris00 commented 6 years ago

Another one: coyote :-)

bluddy commented 6 years ago

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!

hcarty commented 6 years ago

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.

mars0i commented 6 years ago

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.)

mars0i commented 6 years ago

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.

cfcs commented 6 years ago

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

rdavison commented 6 years ago

So far, I like:

Some of my own thoughts

shonfeder commented 6 years ago

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

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.

rdavison commented 6 years ago

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

AntonioGaspar commented 6 years ago

Orix

yminsky commented 6 years ago

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.

hcarty commented 6 years ago

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?

yminsky commented 6 years ago

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

paurkedal commented 6 years ago

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

mars0i commented 6 years ago

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.

bluddy commented 6 years ago

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.

mars0i commented 6 years ago

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'.

hcarty commented 6 years ago

Is jbuild an option?

shonfeder commented 6 years ago

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 :(

yawaramin commented 6 years ago

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:

darioteixeira commented 6 years ago

+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.

rdavison commented 6 years ago

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

paurkedal commented 6 years ago

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

meadofpoetry commented 6 years ago

gobi sounds really appropriate.

jnavila commented 6 years ago

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

paurkedal commented 6 years ago

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.

shonfeder commented 6 years ago

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

mars0i commented 6 years ago

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.

strega-nil commented 6 years ago

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

IanConnolly commented 6 years ago

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

hellopatrick commented 6 years ago

Some additional suggestions:

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

mars0i commented 6 years ago

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

strega-nil commented 6 years ago

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

jnavila commented 6 years ago

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

xclerc commented 6 years ago

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

zoggy commented 6 years ago

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