{"id":16847861,"url":"https://github.com/stepancheg/absh","last_synced_at":"2025-03-22T05:31:28.436Z","repository":{"id":65561561,"uuid":"252043681","full_name":"stepancheg/absh","owner":"stepancheg","description":"Benchmarking with proper statistically significant output","archived":false,"fork":false,"pushed_at":"2024-05-31T15:14:39.000Z","size":145,"stargazers_count":11,"open_issues_count":0,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-18T08:48:16.269Z","etag":null,"topics":["benchmarking","shell"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stepancheg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-01T01:46:10.000Z","updated_at":"2025-03-05T16:14:25.000Z","dependencies_parsed_at":"2024-05-31T16:44:42.206Z","dependency_job_id":null,"html_url":"https://github.com/stepancheg/absh","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stepancheg%2Fabsh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stepancheg%2Fabsh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stepancheg%2Fabsh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stepancheg%2Fabsh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stepancheg","download_url":"https://codeload.github.com/stepancheg/absh/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244912800,"owners_count":20530764,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["benchmarking","shell"],"created_at":"2024-10-13T13:09:14.948Z","updated_at":"2025-03-22T05:31:27.927Z","avatar_url":"https://github.com/stepancheg.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# absh: A/B testing for shell scripts\n\n```sh\n$ absh \\\n  -a \"test a\" \\\n  -b \"test b\" \\\n  -A \"warmup for a\" \\\n  -B \"warmup for b\"\n```\n\nIt continuously run `B`, `b`, `A`, `a`; ignores the numbers of the first iteration,\nand then after third iteration it prints averages, and 95% confidence interval of B average/A average.\n\n```\nA: n=421 mean=61.181 std=1.701 se=0.083 min=57.687 max=66.103 med=61.218\nB: n=421 mean=59.891 std=1.824 se=0.089 min=56.441 max=65.669 med=59.496\nA: distr=[        ▁▁   ▃▃▃▅▂▅▆▃▄▇▆▃▅▂▁▂▅▃▁▄▄▆▇▅▄█▃▃▄▂▃▁▁ ▂ ▁  ▁        ]\nB: distr=[   ▁▁▁▁▄▅▄▇▅▇█▂▃▅▃▅▃▁▁▂▃▃▂▅▂▃▅▆▂▅▃▅▁▁▃ ▂▁▁▁▁                 ]\nB/A: 0.979 0.975..0.983 (95% conf)\n```\n\n## How to install\n\n```sh\ncargo install --git https://github.com/stepancheg/absh absh\n```\n\nCargo is a Rust package manager and build system. It can be downloaded [from rustup.rs](https://rustup.rs/).\n\n## absh --help\n\n\u003c!-- absh-help:start --\u003e\n```\nA/B testing for shell scripts.\nIn scripts, `@ABSH_P` placeholder is replaced with\nthe current experiment name (`a`, `b`...).\n\nUsage: absh [OPTIONS] -a \u003cSCRIPT\u003e\n\nOptions:\n  -a \u003cSCRIPT\u003e               A variant shell script\n  -b \u003cSCRIPT\u003e               B variant shell script\n  -c \u003cSCRIPT\u003e               C variant shell script\n  -d \u003cSCRIPT\u003e               D variant shell script\n  -w, --warmup \u003cSCRIPT\u003e     Warmup script to run before each test\n  -A, --a-warmup \u003cSCRIPT\u003e   A variant warmup shell script, used unless `--warmup` is specified\n  -B, --b-warmup \u003cSCRIPT\u003e   B variant warmup shell script, used unless `--warmup` is specified\n  -C, --c-warmup \u003cSCRIPT\u003e   C variant warmup shell script, used unless `--warmup` is specified\n  -D, --d-warmup \u003cSCRIPT\u003e   D variant warmup shell script, used unless `--warmup` is specified\n  -r                        Randomise test execution order\n  -i                        Ignore the results of the first iteration\n  -n \u003cITERATIONS\u003e           Stop after n successful iterations (run forever if not specified)\n  -m, --mem                 Also measure max resident set size\n      --max-time \u003cSECONDS\u003e  Test is considered failed if it takes longer than this many seconds\n  -h, --help                Print help\n```\n\u003c!-- absh-help:end --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstepancheg%2Fabsh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstepancheg%2Fabsh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstepancheg%2Fabsh/lists"}