George3d6 / Inquisitor

An easily extensible, minimal footprint monitoring tool. (Still in the testing phase)
BSD 2-Clause "Simplified" License
30 stars 4 forks source link

Naming convention #39

Closed Deedasmi closed 6 years ago

Deedasmi commented 6 years ago

With the idea of publishing many of our sub-crates to crates.io in order to support plugin developers and future users, we need to decide on an official naming convention for us and a recommended naming convention for other authors.

Primary concerns:

  1. "shared_lib" is super generic and doesn't reflect what it is for.
  2. Future plugin idea's basic name may already be taken on crates.io.
  3. Users should be able to clearly see what plugins are agent plugins and which ones are receptor plugins by name alone.

Possible solutions:

  1. Long form: append 'inquisitor_agent' or similar to every plugin. 'inquisitor_agent_command_runner' is unwieldy.
  2. Short form: append "iq_agent" or similar to every plugin. "iq_receptor" is still kind of long.
  3. Ultra-short form: "iqa_command_runner", "iqr_sync_check".

Personally, I like the short form, number 2. Following this, our libs would be "iq_agent_lib", "iq_shared_lib", and "iq_receptor_lib"

Note that this issue should only be closed when the changes are implemented, not just when the discussion is finished.

George3d6 commented 6 years ago

Hmh, usually I prefer long form, especially if we publish these on crates IO, people could be googling stuff like "Inquisitor mysql plugin", so having that keyword there could help. It would also clarify what the crate is for (i.e.: It's related to the inquisitor project).

I think that 7 letters aren't that much of a sacrifice, granted, the rust community really seems to like shortening names arbitrarily, but I honestly thing things like Vec are a misguided convention...

Labeled as API change since it would essentially affect how agent/receptor add plugins (granted it's more of a "build system change", maybe I would add that label ?)

Deedasmi commented 6 years ago

I think API change is fine since it it does change what plugins are required to be. Meant to tag that one actually.