splitbrain
A research system to automate splitting PRs into smaller PRs.
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.6%) to scientific vocabulary
Keywords
Repository
A research system to automate splitting PRs into smaller PRs.
Basic Info
Statistics
- Stars: 20
- Watchers: 2
- Forks: 1
- Open Issues: 3
- Releases: 0
Topics
Metadata Files
README.md
Splitbrain: Automatic PR Splitting
Splitbrain is a research system aiming to compute disjoint changelists from a single code diff, and apply them to a user's workspace.
The motivation of this work follows from the intuition that smaller CLs have many benefits:
- Faster turnaround time in code reviews
- Smaller, atomic units of code committed in each CL
- Easier to rollback
- Less blocking on any particular code review
- and more...
This repository contains a series of tools and experiments designed to further understand this relationship, however it is not a usable tool and is exclusively an algorithmic research system.
Overview
At a high level, Splitbrain interprets a subset of the Bazel and Kythe graphs relevant to a single CL, and builds a linear chain of CLs based on structure of the original CL.
For example, a medium sized code change with 250 LoC could split into 5 changes of 50 LoC each.
These changes can be reviewed and potentially submitted in parallel.
Documentation
The original design doc is bundled with the source code. See docs/DESIGN.md for details.
Build & Test
Splitbrain uses bazel as it's build system.
Quick start:
bazel build //... && bazel test //...
Contributing
See CONTRIBUTING.md for details.
License
Apache 2.0; see LICENSE for details.
Disclaimer
This project is not an official Google project. It is not supported by Google and Google specifically disclaims all warranties as to its quality, merchantability, or fitness for a particular purpose.
Owner
- Name: Google
- Login: google
- Kind: organization
- Email: opensource@google.com
- Location: United States of America
- Website: https://opensource.google/
- Twitter: GoogleOSS
- Repositories: 2,773
- Profile: https://github.com/google
Google ❤️ Open Source
Citation (CITATION.cff)
cff-version: 1.2.0
title: Splitbrain
message: 'To cite splitbrain in publications use:'
type: software
authors:
- given-names: Cameron
family-names: Brown
email: cambr@google.com
website: http://cameronbrown.co.uk
url: https://github.com/google/splitbrain
abstract: A research system to automate splitting PRs into smaller PRs.
keywords:
- changelist
- abstract syntax tree
- bazel
- kythe
- programming languages
license: MIT
GitHub Events
Total
- Watch event: 5
Last Year
- Watch event: 5
Committers
Last synced: 4 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| GreenishBlue | c****r@g****m | 18 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 0
- Total pull requests: 17
- Average time to close issues: N/A
- Average time to close pull requests: about 1 month
- Total issue authors: 0
- Total pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.35
- Merged pull requests: 13
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
- thinkallabout (17)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- absl-py *
- google-benchmark *
- networkx *
- protobuf *
- pydot *
- actions/checkout v2 composite
- actions/setup-python v2 composite
- arduino/setup-protoc v1 composite