odoo / odoo/runbot

Stage concurrent splits

Open
#497 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

mergebot
Dominant language
Python
Stars
159
Forks
156
Avg merge
1d 13h
Merged PRs (30d)
16

Description

This is going to be a pain in the ass, but it would be something like a 25% wallclock speed improvement for legit splits (or even 50%): if a staging fails, the staging is split. Assuming the failure is legit (one of the PRs in the batch is an issue), we'd expect one side of the split to succeed and the other to fail (50/50).

Therefore if we create stagings for both the first and second sides of the split, if the failing PR is in the first split we'll be able to immedaitely merge the second (successful) one as we re-split the first, instead of waiting for the first one to fail before we can even attempt the second one.

Of course if this is a nondeterministic failure and both stagings succeed we'll still need to re-stage the second split. Could also be a situation where two PRs are not logically compatible and they happen to land on different sides of the split.

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

No files, tests, or entry points are named. Start by locating the staging failure and split-handling flow, then determine how concurrent first- and second-side stagings should be coordinated. Done means the successful split can be merged immediately while the failing side is re-split, while nondeterministic failures are handled safely.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system, ci-cd
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.