bulloak icon indicating copy to clipboard operation
bulloak copied to clipboard

Feature request: `bulloak.toml` config file

Open PaulRBerg opened this issue 2 years ago • 3 comments

Things that I would like to configure (and which Bulloak would apply to all Solidity code generated via scaffold):

  • Indenting (4 spaces instead of 2): https://github.com/alexfertel/bulloak/issues/40

  • SPDX license

  • compiler pragma as a string (e.g., >=0.8.19)

  • GPT processing: https://github.com/alexfertel/bulloak/issues/39

  • Whether I want a bespoke name for the final leaf (ref https://github.com/alexfertel/bulloak/issues/37)

  • Whether I want one-test-per-it-branch or bundled-its (ref https://github.com/alexfertel/bulloak/discussions/7#discussioncomment-6965212) https://github.com/alexfertel/bulloak/discussions/7#discussioncomment-7131740) Potentially helpful for other users:

  • Case sensitivity (ref https://github.com/alexfertel/bulloak/issues/20)

It would be nice if these settings could be kept in foundry.toml somehow, but I don't think Foundry allows custom configs.

I'm sure @mds1 and future users will find other use cases with this config file.

PaulRBerg avatar Sep 28 '23 11:09 PaulRBerg

I'd suggest requiring the config to just live in foundry.toml to avoid needing new config files for each tool. See https://github.com/foundry-rs/foundry/issues/5866 for my suggestion on how this would look

mds1 avatar Sep 29 '23 15:09 mds1

Tbh, I have conflicting feelings over this one. I totally agree with having a config file. However, if the only advantage of having the config inside foundry.toml is having one less file in the project, I'd rather use a separate bulloak.toml. I know people have hated having way-too-many config files historically, but I don't really mind it.

The rationale for a separate bulloak.toml is:

  • Friendlier for first-time users:
    • Someone who hasn't used bulloak before would not expect it to be configured in a foundry.toml.
    • Syntax is a bit more complex. Users need to be aware of the proposed external (or whatever is chosen) and the config will be surrounded by unrelated configs.
  • Parsing is simpler. A trivial amount, but nonetheless simpler.
  • Stay decoupled from Foundry. This is not a strong argument, bulloak is already coupled to Foundry, however, that might change in the future.
  • Generating a file with the default config is simpler that modifying a foundry.toml.

That being said, I'm not strongly opinionated.

alexfertel avatar Oct 05 '23 15:10 alexfertel

I know people have hated having way-too-many config files historically, but I don't really mind it.

Me neither!

bulloak is already coupled to Foundry, however, that might change in the future.

TBH I can see Bulloak used for other blockchain programming languages + paradigms other than crypto.

The rationale for a separate bulloak.toml

Agree with all points

PaulRBerg avatar Oct 05 '23 20:10 PaulRBerg