Test external widgets
- Dominant language
- Python
- Stars
- 5.4k
- Forks
- 827
- Avg merge
- 15h 39m
- Merged PRs (30d)
- 40
Description
### What is the problem or limitation you are having?
We have, and inevitably will have, non-core widgets that we nevertheless maintain, in separate repos from Toga itself (I'm thinking Toga Chart, although I think we have another one or two). It's a hole in our testing that we currently have no automated, foolproof way to check that changes to Toga don't break any of them.
### Describe the solution you'd like
It would be a load off my mind if there were some way to hook up tests between repos.
Toga Chart, of course, would need to actually *have* tests first. But once it does, it would be great if CI could run those tests (or even a representative subset of them) against any proposed changes to Toga. I'm really not versed in the more arcane intricacies of GitHub's CI configuration, so I'm not entirely sure that's even possible...
### Describe alternatives you've considered
The current workflow is basically that if you're making any changes likely to affect a non-core widgets, you should check them locally; with Toga Chart, this currently means running its example app against my local copy of Toga when I make changes to Canvas. But the individual developer needs to first know about said external widget, predict that their changes might affect it, set it up locally, and remember to test it. That's a lot of opportunity for human frailty to prevent proper testing, and is exactly the sort of thing CI is supposed to guard against.
### Additional context
I completely missed the fact that some of my changes in #4159 broke rendering of filled paths in Toga Chart, until it was pointed out to me. The discussion on #4273 about where the OpenGL widget should end up, and how it might be tested, prodded me to type this up.
Contributor guide
Research direction
Review Toga's existing CI configuration and the separate Toga Chart repository, including its current test setup. First determine how Toga Chart tests can run against proposed Toga changes and what representative subset is available; done means CI automatically exercises the external widget tests for relevant Toga changes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, python
- Domain
- ci-cd, testing
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 45/100