Batch Changes library MVP #32687
Labels
batch-changes
Issues related to Batch Changes
Epic
feature/library
Issues that relate to the batch changes, code insights, monitor library
needs-design
Design requests - add to 'design priorities' project, add a deadline, if possible..
needs-feedback
Needs additional feedback
Milestone
Problem to solve
To use Batch Changes, users needs to write a spec that are made of several batch change steps. Those can be a simple as a script that uses a tool like sed, call an existing call rewrite tool like fastmod, or be a completely custom script. It can take some time to get to a usable batch spec, so we've started building a library of examples for users to get started faster here.
We want to make it easy for experience code rewrite tool users to get started, building on a template. We also want to make it possible for users that have no knowledge of code rewrite tools to find and run a spec that does what they want, and hence make Batch Changes approachable to many users. This is explained in details in PD 32 REVIEW: Making it easier for users to create or reuse batch changes steps.
Ultimately, we think that there should be a library of batch specs, maintained by Sourcegraph and the community.
Also see RFC 649 WIP: A unified Sourcegraph templates library
Measure of success
For the MVP stage, success means hearing customer feedback in customer interviews that customers were able to create a batch change significantly faster/more easily by using a template.
This should affect MAUs and # changesets merged in the long run.
Customers we're iterating with
Workflow
Batch spec creator perspective
Batch spec user perspective
As a batch spec user, when I have to automate something with a batch change, the first question I ask myself is "what tool should I use for this?". I want to:
Proposal
I think the long-term vision should be to have a library.sourcegraph.com, where users can contribute specs and Sourcegraph also contributes standard specs.
This is loaded onto the sourcegraph instance at runtime, if the instance has internet access. The latest stable library version is also vendored in each release so that if the instance does not have internet access, this can still be available.
Lastly, there's a private library that is stored alongside the instance for batch changes users to privately share their specs.
The library can start by pulling from a single repository, but maybe in the future it should start pulling from multiple repositories (like https://registry.terraform.io), some of which can be community maintained.
Our roadmap will likely look like:
### MVP
MVP will be defined during the offsite
I think what would have value as a first step would be:
User flows:
meta
section in the spec that has tags, such as["java","comby","batch spec templating"]
Metrics
minimal
template)Current status
contrib
folder with all specs, andstandard
with the specs that work reliably and ard high quality enough to be shipped to customersThe text was updated successfully, but these errors were encountered: