beeware / beeware/toga

Test external widgets

Open
#4,327 3 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.