abelsiqueira / BestieTemplate.jl

Template for Julia Programming Language packages using the copier engine.
http://abelsiqueira.com/BestieTemplate.jl/
Mozilla Public License 2.0
14 stars 6 forks source link

Could we add a workflow to auto-fix the Lint? #321

Open abelsiqueira opened 3 days ago

abelsiqueira commented 3 days ago

Description

It could be the Lint itself:

Failing run:

However, I think there will be a problem because actions can't trigger actions. So this fix would not be tested until someone opens and closes the PR.

Also, it would not work for forks, since it will require write permissions to create the PR.

@suvayu any opinions on the feasibility of this?

Validation and testing

No response

Motivation

No response

Target audience

No response

Can you help?

No response

suvayu commented 3 days ago

However, I think there will be a problem because actions can't trigger actions. So this fix would not be tested until someone opens and closes the PR.

Why do you say that? We can just call the reusable test workflow as a follow-up step with needs: lint. Depending on what we want, it the create PR step can be conditional on whether tests passed.

abelsiqueira commented 3 days ago

I'm thinking of this: https://docs.github.com/en/actions/using-workflows/triggering-a-workflow#triggering-a-workflow-from-a-workflow

The example that I have is CompatHelper (e.g. https://github.com/TulipaEnergy/TulipaEnergyModel.jl/pull/648/checks). It creates the PR but because it was generated by a workflow with default permissions, it doesn't run the other workflows.

That being said, according to the docs I linked, maybe we just need to use a separate SSH key - and we have one, DOCUMENTER_KEY, that we can reuse.

suvayu commented 3 days ago

I see what you mean, my suggestion essentially duplicates the test workflow. Is that a bad thing since the other option requires complicated setup (storing secrets, etc)?

abelsiqueira commented 5 hours ago

Ok, I get what you mean now. It would not future-proof - although a great use of the reusable workflow - because if we have more tests to run, then we can't add it to the Linter. That being said, the normal approach is to close and re-open the PR to trigger the tests, which might not be an overburden.