Skip to content
This repository has been archived by the owner on Jan 18, 2021. It is now read-only.

Build time A/B testing support #113

Open
mockitoguy opened this issue May 6, 2017 · 12 comments
Open

Build time A/B testing support #113

mockitoguy opened this issue May 6, 2017 · 12 comments
Labels
deprioritized help wanted Please contribute! We need help building this project. size:L

Comments

@mockitoguy
Copy link
Member

mockitoguy commented May 6, 2017

Use case

Run build once, make some change, run build again, then compare build results. Sounds familiar? For certain kinds of changes, doing such A/B testing is super useful. It would be an excellent addition to release tools. After all, we want to really improve the lifecycle of software consumers and producers (easier, safer version bumps!). Example use cases:

  • bumping version of a dependency and validating if the project still works ok (Automated e2e testing and pushing version upgrades to consumers #85). Bumped version can be of some compile dependency but also of a built-time dependency such as the version of a some Gradle plugin we use.
  • making change in build logic and validating if stuff still works.

Example workflow

Example implementation of the build comparison workflow:

  1. Clone a project from GitHub
  2. Copy the clone to another directory so that we have 2 identical clones
  3. Run a set of commands in clone 1, for example "./gradlew build -PsomeToolVersion=1.4"
  4. Run a set of commands in clone 2, for example "./gradlew build -PsomeToolVersion=1.5"
  5. Compare build directories
  6. Analyze comparison results

Suggested design

Suggested starting point design - check out #114 (It's only a suggestion! Pick your own path if you want, just keep the team informed about the design decisions! :)

@mockitoguy
Copy link
Member Author

@epeee, is this something you want to take a look? :) It's a very useful feature, not tangled with the internals of the project, and offers interesting challenge for you!

@epeee
Copy link
Contributor

epeee commented May 7, 2017

@szczepiq yes, I will take a look at this one. sounds really useful, great idea!

@mockitoguy
Copy link
Member Author

@epeee, that's great! This is a big ticket, if you have any design / thoughts before / during implementation, let us know. THANKS!

@mockitoguy
Copy link
Member Author

@epeee, do you think you will be able to work on this feature? No pressure - just asking!

@epeee
Copy link
Contributor

epeee commented May 13, 2017

@szczepiq yes, I will be able to work on this one (already started working on it). Sadly, I was more busy than usual during the last days.

@mockitoguy
Copy link
Member Author

Thank you for confirmation! This makes it easier to plan our roadmap :)

@mockitoguy
Copy link
Member Author

@epeee, I totally understand it's hard to find time for OSS at times! Do you mind if we hand this epic over to a different contributor? You can reengage whenever you have availability, just let us know and we will reorganize the team :)

@epeee
Copy link
Contributor

epeee commented May 24, 2017

@szczepiq sorry for the delay. What about reassigning it if I'm not able to come up with a solution on Fr (it looks like I will have some time to work on this one tomorrow)?

@mockitoguy
Copy link
Member Author

Sounds good!

@epeee
Copy link
Contributor

epeee commented May 26, 2017

a quick update: I made quite some progress yesterday on the compareAB task and it looks like I will be able to push a very first version of it today.
cloneGitHubRepository, runA and runB tasks are already available in the abTesting branch.

@epeee
Copy link
Contributor

epeee commented May 26, 2017

I just pushed the compareAB task including serialization. Tests are still missing but I will work on them now.
Apart from that the only part which is missing now is the analyze part. It would be great if we could have some kind of discussion/brainstorming about how the analyze result could look like (in order to not go into a wrong direction).

@mockitoguy
Copy link
Member Author

Hey @epeee, let's deprioritize this ticket for now and revisit when e2e testing is complete after 1.0. I'm finding it hard to focus on this at the moment. In the meantime, I've added 2 more "please contribute" tickets that would be really useful for 1.0 release!

@mockitoguy mockitoguy added size:L and removed Epic labels Oct 29, 2017
@mockitoguy mockitoguy added help wanted Please contribute! We need help building this project. and removed help wanted Please contribute! We need help building this project. please contribute! labels Mar 18, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
deprioritized help wanted Please contribute! We need help building this project. size:L
Projects
None yet
Development

No branches or pull requests

2 participants