[HN Gopher] The .meta Directory: Let's Tidy Things Up
       ___________________________________________________________________
        
       The .meta Directory: Let's Tidy Things Up
        
       Author : geoffeg
       Score  : 43 points
       Date   : 2023-06-25 21:08 UTC (1 hours ago)
        
 (HTM) web link (dotmeta.org)
 (TXT) w3m dump (dotmeta.org)
        
       | jedberg wrote:
       | Back in the day, this is what /etc was for. You'd install
       | binaries in /usr or /bin and then NFS mount those from your
       | clients. Then all the config was local in /etc (and the programs
       | generally respected the idea of either creating a config file in
       | /etc on first run or just doing the default thing if it wasn't
       | there).
       | 
       | I'm sad that we got away from that standard. It was nice when I
       | could just back up /etc and be good to go.
       | 
       | (Of course this is looking with rose colored glasses, we never
       | had 100% adherence to the standard, which is how we got to where
       | we are).
        
         | PMunch wrote:
         | You seem to be thinking of programs, this is talking about
         | projects. Various compilers, linkers, CI tools, etc. look in
         | the root directory of your project for config files or other
         | rules. This proposes to move all those files to `.meta` in
         | order to keep the project root directory clean.
        
         | josephg wrote:
         | Most of the examples they give - like package.json - are
         | specific to the project, not the whole operating system. And
         | they are typically checked in to a project's git directory.
         | 
         | /etc stores system configuration (like the local timezone).
         | They have a very different purpose.
        
       | rektide wrote:
       | It sucks so bad that so much nonsense auxiliary machinery gets
       | front row billing.
       | 
       | For a while I was dumping stuff into .config but I eventually
       | tired of struggling even more with various tool chains.
        
       | xyst wrote:
       | maybe .self is better
        
       | renewiltord wrote:
       | In an xkcd standards sense, I propose the folder .stddotfolder
       | which can contain a meta dir from hereor a config dir from here
       | https://github.com/dot-config/dot-config.github.io
        
       | mickelsen wrote:
       | I support this motion.
        
       | notatoad wrote:
       | I kinda like the status quo. I like seeing all the tooling
       | artifacts at the top level when I open a GitHub repo or
       | something, it's nice to see at a glance - like a quick digest of
       | what is used to develop that software. And they all are hidden
       | automatically in a local file browser, so it's not like it's
       | really a mess. And the .prefix means they don't mess up tab
       | completion.
       | 
       | It's the ones that _arent_ hidden that are a problem, and if
       | they're already obnoxious enough to choose a non-hidden file name
       | they're probably not going to support a hidden directory either -
       | Dockerfile, Jenkinsfile, and bitbucket-compose.yml, I'm looking
       | at you.
        
       | eyelidlessness wrote:
       | IMO this should be more aggressive in a few ways, not the least
       | being it should invert the fallback logic. It should also include
       | some obvious non-config meta-stuff, ie every top level
       | Markdown/plain text file save _maybe_ README.
       | 
       | Lastly, I think part of the reason this problem is so annoying to
       | warrant it is that lots of tools think they're so special that
       | they need to create a new config even when they create
       | redundancies with other overlapping config content. I know this
       | is a "there are N competing standards" proclamation, but it would
       | be nice if same-ecosystem tools were encouraged to collaborate on
       | config specs/schemas so a great deal more stuff could be defined
       | once, in one format, at one well-known path.
        
       | rco8786 wrote:
       | How is this not a very, very, on-the-nose example of "sweeping
       | the dust under the rug"
        
       | dstroot wrote:
       | This is such a great idea. I kind of hate all the top level
       | clutter in my repos and it seems to get worse every year.
       | Wonderful suggestion. Whether it's .meta, .config or .etc I don't
       | really care.
        
         | kiernanmcgowan wrote:
         | Agreed - and if you wanted to be cute about names you'd go with
         | .files - dotfiles ;)
        
       | politelemon wrote:
       | The name doesn't make sense, those aren't metadata files, they're
       | configuration or application.
       | 
       | I guess I'm also not seeing what the exact problem is. The
       | project root is crowded, yes, now this suggests making a
       | different directory crowded. The messiness is shifted.
        
         | KMnO4 wrote:
         | Let's not bikeshed this. The most common use of the meta prefix
         | means "about (this category)", eg metadata, but that's not its
         | only form.
         | 
         | The original Greek prefix is a preposition that means "with",
         | "among", or "beside". Doesn't seem like a stretch that config
         | files are a type of metafile.
        
       | joeframbach wrote:
       | Why not `.config`?
        
         | mhoad wrote:
         | Let's just assume for now that there could be use cases that
         | aren't strictly config data.
        
           | rektide wrote:
           | I do think .etc would be a pleasantly smart way to blend with
           | the rest of the world as it exists.
           | 
           | This case isn't covered by XDG, but there's a path here we
           | probably could & should adapt, that suggests itself. And this
           | forges off in a new direction.
           | 
           | https://specifications.freedesktop.org/basedir-
           | spec/basedir-...
        
             | XorNot wrote:
             | We already have the ~/.local (standard? convention?) which
             | simply mimics the filesystem root with bin,etc,include etc.
             | 
             | If we're tossing this into random subfolders, I'm not sure
             | why we wouldn't keep that going?
        
         | eyelidlessness wrote:
         | At least a couple of them are unambiguously programs (despite
         | being defined in config formats). And many of the others are
         | configs which allow program formats, which could hypothetically
         | do arbitrary program things as well.
         | 
         | There are other top level files which I'd want to include if I
         | were the one designing this, many of which are just
         | text/reference, all of which are inherently meta content
         | relative to their containing project. It may well even be worth
         | nesting sub-category directories below .meta, eg .meta/config
         | or even .meta/config/{checks,env,...}. I'm sure some would
         | consider any/all of this overkill, but the current status quo
         | of top-level junk is certainly no better than a tree with well
         | defined and well named branches.
        
       ___________________________________________________________________
       (page generated 2023-06-25 23:00 UTC)