scientist
scientist copied to clipboard
:microscope: A Ruby library for carefully refactoring critical paths.
We are using a base experiment class to manage our publish logic. All the actual experiments are extending from this base class. However, if we set raise_on_mismatches to this base...
(This is the first of several improvements to scientist based on extractions from the GitHub monolith) This adds the concept of a "cohort" to an experiment result, to enable and...
Relates to https://github.com/github/scientist/issues/162. I'm happy to close if it's unnecessary! Thoughts: I found that making a class the default experiment a little aggressive and wondered if there was another way...
I'm wondering what the original inspiration for making any class that `include`s the module the default experiment, [code here](https://github.com/github/scientist/blob/303c1f4ff98786b702507ed0c4f8cfdeb5fc7138/lib/scientist/experiment.rb#L13). Is it possible to create a class that `include`s the `Scientist::Experiment`...
Hi, I noticed [the changelog](https://github.com/github/scientist/blob/master/doc/changelog.md) isn't updated for the last releases. Is that just an oversight? Or did nothing meaningful change?
Ideas for backwards-compatible solutions (none of them particularly clean): ignore could pass more arguments to the block, which is backwards-compatible assuming clients use a proc. Add a new method ignore2...
Hi friends! Thank you for your great work with this gem :sparkles: I am having a problem in Rails apps where Scientist::Experiment defaults to the original `Default` object until the...
The internal GitHub developer tooling includes custom views of published mismatch data that calculates diffs of the values. It could be helpful to include that diffing support directly via Diff::LCS...
When using the `science` method in the `Scientist` module, I want to supply an extra parameter that would be used inside the `enabled?` method to determine whether to run the...
Currently observation _values_ and not _observation objects_ are being passed to `ignore`. This means it's not possible to ignore transient exceptions that occur in either candidate or control. When an...