tmm1 / tmm1/test-queue

split groups performance pull request?

Open
#58 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Ruby
Stars
628
Forks
68
PR merge metrics
No merged PRs in 30d

Description

A while back I opened a pull request to make TEST_QUEUE_SPLIT_GROUPS perform less pathologically (i.e. don't treat :all like :each). There were a couple problems with my first approach, but the pull request was closed without any comment or discussion from the maintainers.

I've reworked it since then to fix its shortcomings, and it has been performing quite well for canvas-lms (almost 20k non-selenium specs).

The tl;dr of it is it maintains queues at each level of the ExampleGroup hierarchy, such that no (sub-)group is ever split until its parent queue is empty. It's as if split groups is off, until there are no groups left, at which point the workers optimally swarm on the remaining items.

Now that test-queue is actively being maintained, would you have any interest in such a pull request? It would of course need to be rebased onto your latest work, and some of its independently developed things (e.g. TEST_QUEUE_LAZY_GROUPS) are now redundant.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing closed pull request #31 and the performance branch, especially commit 61e24afb597575ec10a7db5dfc68505655090117. Compare that work with the current test-queue behavior and the TEST_QUEUE_SPLIT_GROUPS description; done would mean a rebased pull request implementing the improved grouping performance without the redundant TEST_QUEUE_LAZY_GROUPS changes.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby
Domain
performance, testing-qa
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.