genodelabs / goa

Tool for streamlining the development of Genode applications
GNU Affero General Public License v3.0
20 stars 17 forks source link

Rename hidden `.goarc` to `Goa`? #41

Closed nfeske closed 1 year ago

nfeske commented 1 year ago

This idea is spinning in my head for a while now, and I'm admittedly not quite sure about it.

My original intention behind the .goarc files was to allow for user-specific settings, following the usual pattern (like .bashrc).

However, by now, I have seen several instances where .goarc files are checked in into Git repositories (goa-project repos), which in my opinion, makes things a little bit too obscure because those files are, well, hidden. So should we better change the naming to Goa (with an upper-case first letter like in Makefile)? Or should both variants be allowed?

I'm particularly worried since .goarc files can contain arbitrary Tcl code. So when a user clones a Git repo and invokes goa commands, this code get executed. Hence, it would be fair to bring this code to the user's attention by not hiding it.

jschlatow commented 1 year ago

I like the idea of unhiding the .goarc file, particularly because those files are looked for in the entire directory hierarchy. I agree that those files should better be visible.

I'm not sure though about the naming. There are still case-insensitive file systems around. AFAIK Mac OS still uses a case-insensitive formatting by default. Although we never used Goa on Mac OS and are not planning to, it feels like introducing a potential pitfall by naming the file Goa. To me, simply unhiding the file and naming it goarc feels more intuitive.

We could add a warning to Goa that is printed whenever a .goarc file is found to notify users about the breaking change.

nfeske commented 1 year ago

It's good to know that you share my perspective.

I'm not sure though about the naming.

My suggestion merely came from a pattern I noticed when looking at various build systems. There seems to be an (informal) convention that capitalized names for build-system files are acceptable, presumably to let those files show up at the beginning of directory listings. Besides Makefile, other examples are SConstruct, Tupfile, or CMakelist.txt.

Personally, I'm not a fan of mixed-case file names either. So I'd be fine with goarc as you suggested. Initially I thought of the rc suffix as being a bit archaic when having it in plain sight but it apparently stands for "run commands", which is quite fitting.

We could add a warning to Goa that is printed whenever a .goarc file is found to notify users about the breaking change.

That's sensible.

jschlatow commented 1 year ago

Commit 241b794 implements this change. I think we should merge this in sync with the next release.

nfeske commented 1 year ago

I think we should merge this in sync with the next release.

That sounds good. Thank you for having implemented this change.