Closed zudov closed 6 years ago
"bulba" is "potato" in Belorussian, though. But I think "a potato" is very appropriate name for generator of codes.
Good points, I was thinking of this issue too some days ago 👍
I agree that we should move our "generational" namespaces (let's call it "compile time") a level deeper. This includes, at the moment of writing, core
, generate
, and model
.
The remaining modules (currently auth
and common
) are not used at "compile time", but contain handwritten code that will be shared in all the generated namespaces - so code that pertains "runtime" - thus is not executed while we generate the stuff.
We should probably move this code one level deeper too, but in a separate location, something like common
.
WRT bikeshedding the name of this generational level, while I would love to call the project "a potato", I'm worried that this might confuse users accidentally stumbling on it.
So for something as exposed as a namespace name a I would stick to the boring name gen
, we can add more puns at code and documentation level 😛
So to recap, this is my view on it:
gogolica.core -> gogolica.gen.core
gogolica.model -> gogolica.gen.model
gogolica.generate -> gogolica.gen.codegen
gogolica.auth -> gogolica.common.auth
gogolica.common -> gogolica.common.util
For sure, let's go with gogolica.gen.*
for all the stuff that's supposed to be run to generate the rest of the library.
gogolica.common.*
can be used for stuff that's used by the generated code, and also imported and used by users. Also, how about going with gogolica.core.auth
, gogolica.core.util
instead of common
? Quite similar to gogol-core and core
is common to appear in clojure namespace names.
Sounds good 👍
So the final stance is:
gogolica.core -> gogolica.gen.core
gogolica.model -> gogolica.gen.model
gogolica.generate -> gogolica.gen.codegen
gogolica.auth -> gogolica.core.auth
gogolica.common -> gogolica.core.util
I'll move them around
The namespaces of generated modules look like
gogolica.storage.v1
, and our utility namespaces are likegogolica.auth
,gogolica.utils
,gogolica.model
and so on.To distinguish between them, we should consider somehow distinguish our "operational" namespaces from the generated one. I like the names that we currently generate, so maybe we could move the operational modules a level deeper. Something like
gogolica.gen.{auth,utils,model,...}
.However,
gogolica.gen
is boring, and maybe we should give a nice name to the thing that would be generating the actual user-facing gogolica. I propose either Viy (more evil), or Bulba (more epic). Then we can havegogolica.viy
orgogolica.bulba
.