tinkerbell / smee

DHCP and iPXE Server
https://tinkerbell.org
Apache License 2.0
271 stars 80 forks source link

Consider a new name for `boots` #34

Closed grahamc closed 1 year ago

grahamc commented 4 years ago

I was trying to talk with @gauravgahlot about some stuff, and we had to be really careful about phrasing sentences to not get confused about if we were talking about a verb (to boot, it boots) or a noun (boots, the software).

Here are some excerpts:

okay, so boots first serves a regular ipxe file

  1. the worker boots and uses whatever PXE support it has to netboot off of boots
  2. boots notices the worker is booting with whatever PXE support it had, and says "okay, you need to run my own version of iPXE first. Here it is, netboot off of: undionly.kpxe (https://github.com/tinkerbell/boots/blob/master/job/dhcp.go#L61, this is the "not isPacket branch": https://github.com/tinkerbell/boots/blob/master/job/dhcp.go#L105-L114)
  3. the worker says "yep, sure" and netboots off of undionly.kpxe and that again connects to boots
  4. boots notices the worker is using boots's special iPXE and then goes through the same codepath, but should fall through to this case: https://github.com/tinkerbell/boots/blob/master/job/dhcp.go#L130-L131

and then consider this sentence, and whether or not you're 100% certain as to what kind of log file you're about to see:

I saved these boot logs sometime ago...

Maybe a new name could be connected to boots, like a type of boot Hegel might have worn: Hessian, Wellington, Blucher, and ankle-jack.

Anyway, it isn't too late. I like the levity in the name boots, but I think it comes at a high cost.

alexellis commented 4 years ago

I quite looked "booty" that I saw on a similar OSS project.

DailyAlice commented 4 years ago

I do think renaming boots will make writing and reading about it more clear and less context dependent. Just throwing some ideas out there:

Any other ideas? I think it's a fun discussion, I'll keep adding things as I think of them.

alexellis commented 4 years ago

I think that Alice's names above are consistent with the Tinkerbell theme, if fully committing to that, any of them could work.

Here's what I wanted to add from my experience of being frustrated with developer tooling. I find that the terminology of projects like Brew are off-putting and hard to remember. Why? They require mental mapping and are non-intuitive, making it difficult for new developers to pick up and retain that information.

Brew is a package manager - terms like package, repository, and private repository are clear and easy to transfer between projects. To be different / unique - they used terms like Brew/Cask/Keg/Pour etc - https://docs.brew.sh/Formula-Cookbook#homebrew-terminology

The Helm project also uses helm, tiller and chart - did anyone really know what tiller was? The burden isn't too bad now that there are only two things - helm (the app installer) and chart - the app definition. What do they call repos? Just repos, so they didn't stretch it too far and call them "oceans"

There's a new project by a Helm maintainer called "fish food" that speaks of "fish", "food", "rig", "barrel" - who knows what those terms mean at first glance?

boots was good at describing itself despite the ambiguity. booten could be fun, I don't know what "To boot up a machine" in German is though.

Perhaps a name relating to the behaviours of boots might be more useful (serving, offering, answering)?

DailyAlice commented 4 years ago

I like the descriptive/use naming approach. addresser, doorman, and offerd are my favorites. Also maybe a shortened Netboots?

One other thing to consider is that we could just have the convention of capitalizing "Boots" when referring to the service in text. It mostly side steps the issue, and it's a little hard to enforce, but worth a few minutes thought as well.

DailyAlice commented 4 years ago

Discussion from InfraCloud - Provisioner Sync

alexellis commented 4 years ago

"pixieboots"

"dustyboots"

"pixienet"

DailyAlice commented 4 years ago

I like pixieboots and pixienet a lot.

mmlb commented 4 years ago

I find that the terminology of projects like Brew are off-putting and hard to remember. Why? They require mental mapping and are non-intuitive, making it difficult for new developers to pick up and retain that information.

I too dislike uninformative cute names. I'll take a descriptive name over cute/clever, but I do like cute/clever names that don't take a lot of mental mapping effort (pbnj is nice, boots used to be called tinkerbell back in the proprietary days and was ok).

booten could be fun, I don't know what "To boot up a machine" in German is though.

I like this.

Perhaps a name relating to the behaviours of boots might be more useful (serving, offering, answering)?

* `geben` - if we like German, then we could use the word `to give`

This one too, boots gives network settings, and all sorts of boot files.

* `bootstrap` - the thing that bootstraps a node / worker onto the network

I interpret bootstrap to mean of a cluster, and considering the space/time where tinkerbell will take place bootstrapping a cluster seems to be something that will be done with tinkerbell and thus confusion may arise there too.

* `doorman` - going back to the theme of letting a node in and into the real world again

We have an internal service named doorman at packet already. And while not a big deal from the greater tinkerbell community it would be immensely confusing to a lot of its developers.

mmlb commented 4 years ago

pixieboots is my favorite I think.

Smithx10 commented 3 years ago

Call it "shoes".

tstromberg commented 3 years ago

Brought up in the Triage meeting. Folks seem open to the idea, as boots as a name does becoming confusing in conversation.

If anyone is interested in taking this on, I don't think there will be much disagreement. It may become a bit less important with the future refactor work in boots. shrug

jacobweinstock commented 1 year ago

"smee" had the most votes in a recent poll in the community slack channel.

https://cloud-native.slack.com/archives/C01SRB41GMT/p1672771947110689?thread_ts=1672771947.110689&cid=C01SRB41GMT