Use Craft Application's Linter Service
What needs to get done
Migrate to the Linter Service as implemented at https://github.com/canonical/craft-application/issues/782
Acceptance criteria
- All linters are implementations of the Craft Application class
- The lint command uses the LinterService
- Any other uses of linters use the LinterService
Why it needs to get done
Snapcraft and Charmcraft lint snaps and charms respectively at the end of the lifecycle. These linters don’t share common code and don’t have a similar UX. Additionally, there isn’t a way to add linters to other *craft apps without significant code duplication.
💰 Bounty – $400 USD
Bounty is sponsored by Canonical, the company behind Ubuntu.
📜 Rules:
- You must be enrolled in the GitHub Sponsors program.
- Contribution rules from this repository apply. Please carefully read CONTRIBUTING.md
- The bounty will be paid when the implementation meets the Business and Technical Specifications.
- The bounty will be paid when the solution is merged into the
mainorreleasebranch. - Contributors working on the issue must be assigned by the repository maintainers.
- The bounty will be awarded to the first accepted solution.
- To keep things fair, each contributor can work on only one bounty at a time. Once it’s completed, you’re free to pick the next challenge :)
💡 Note: The bounty amount is gross. Any applicable fees, taxes, or deductions from payment providers (e.g., GitHub Sponsors, bank transfers) may apply, and Canonical is not responsible for covering these additional costs.
Happy hacking! 🚀
For any questions and payouts please reach out to [email protected]
@beliaev-maksim i would like to work on it, assign me.
@Brijeshthummar02, we are still preparing to roll out the program (https://github.com/canonical/craft-parts/issues/1116#issuecomment-2969652499).
Hi @Brijeshthummar02 and all others, this bounty is now open.
Please share your implementation proposals so we can review and pick the best idea to assign the ticket.
Hi @beliaev-maksim, I’d like to work on this issue. My high-level plan is: • Create a CraftApplication subclass for each existing linter and move the current logic into its run method • Update the lint command so it uses LinterService to run all linters • Remove all direct calls to individual linters from the codebase • Verify that both snapcraft lint and charmcraft lint still pass and update tests as needed
Please assign this issue to me and I’ll get started. Thanks.
Hi @benqbenjamin, this task is actually blocked by the bounty to create a LinterService in craft-application.
I think we should wait on proposals here, since the proposals will depend on how https://github.com/canonical/craft-application/issues/782 is implemented.