go-ftw icon indicating copy to clipboard operation
go-ftw copied to clipboard

Remove magefile?

Open theseion opened this issue 1 year ago • 3 comments

@fzipi I really don't like the magefile approach. It may be flexible but it doesn't play nice with pre-commit, for example. One issue that leads to is that we have a lot of commits where we reorder imports, depending on whether we ran mage or not.

Another issue: VS Code by default updates import order on save, so changing the order with mage and gosimport is only temporary.

theseion avatar May 11 '24 10:05 theseion

Well, I normally use Goland. How do we keep things consistent?

fzipi avatar May 11 '24 11:05 fzipi

Not sure. I tried running mage as a pre-commit program but that doesn't really work because of auto staging. Honestly, pre-commit is fine but it's a pain if it's not in line with what the CI runs.

The CI runs:

  • SonarCloud for static analysis
  • go test for tests

pre-commit runs: - go-fmt - go-vet-mod - go-imports - golangci-lint-mod - go-critic - go-test-mod - go-build-mod - go-mod-tidy - go-cyclo - gitleaks - end-of-file-fixer - trailing-whitespace

mage runs:

  • addlicense
  • golangci-lint
  • gosimports
  • gci
  • gocyclo

mage can also run (I've never done that):

  • godoc
  • go test with coverage

IMO, most of what pre-commit does is good and should also be part of the CI. gosimports is probably better for us than goimports, so I'd also add that to the CI and remove goimports from pre-commit. addlicense should probably also go in the CI; not sure about gci.

We could of course do all that with mage and simply run mage in the CI. I'm not a fan but maybe that's the way to go.

theseion avatar May 12 '24 07:05 theseion

Have no problems either way.

fzipi avatar Jun 01 '24 12:06 fzipi