{"id":19768194,"url":"https://github.com/squareslab/bugzoo","last_synced_at":"2025-04-04T22:08:31.172Z","repository":{"id":57416606,"uuid":"43270702","full_name":"squaresLab/BugZoo","owner":"squaresLab","description":"Keep your bugs contained. A platform for studying historical software bugs.","archived":false,"fork":false,"pushed_at":"2025-01-08T20:53:45.000Z","size":3484229,"stargazers_count":68,"open_issues_count":48,"forks_count":12,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-28T21:05:15.312Z","etag":null,"topics":["automated-repair","benchmarks","bugzoo","dataset","docker","testing"],"latest_commit_sha":null,"homepage":"https://squareslab.github.io/BugZoo","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/squaresLab.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/contributing.rst","funding":null,"license":"LICENSE","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":"2015-09-27T23:59:43.000Z","updated_at":"2025-02-24T11:36:08.000Z","dependencies_parsed_at":"2024-12-20T23:10:59.717Z","dependency_job_id":"86265764-fe9a-4472-abe4-70cfddc71628","html_url":"https://github.com/squaresLab/BugZoo","commit_stats":{"total_commits":2379,"total_committers":11,"mean_commits":"216.27272727272728","dds":0.009247583018074823,"last_synced_commit":"a87f03b2e33c2097c21c0175e613f4e95d9825eb"},"previous_names":[],"tags_count":57,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squaresLab%2FBugZoo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squaresLab%2FBugZoo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squaresLab%2FBugZoo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squaresLab%2FBugZoo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/squaresLab","download_url":"https://codeload.github.com/squaresLab/BugZoo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247256115,"owners_count":20909240,"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":["automated-repair","benchmarks","bugzoo","dataset","docker","testing"],"created_at":"2024-11-12T04:36:08.374Z","updated_at":"2025-04-04T22:08:31.155Z","avatar_url":"https://github.com/squaresLab.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BugZoo\n\n[![Build Status](https://travis-ci.org/squaresLab/BugZoo.svg?branch=master)](https://travis-ci.org/squaresLab/BugZoo)\n[![GitQ](https://gitq.com/badge.svg)](https://gitq.com/squaresLab/BugZoo)\n[![PyPI version](https://badge.fury.io/py/bugzoo.svg)](https://badge.fury.io/py/bugzoo)\n[![Python versions](https://img.shields.io/pypi/pyversions/bugzoo.svg)](https://pypi.org/project/bugzoo)\n\nBugZoo is a decentralised platform for distributing,\nreproducing, and interacting with historical software bugs. BugZoo is designed\nto support both software engineering researchers as well as developers of tools\nfor program testing, analysis and repair.\n\nUnder the hood, BugZoo uses [Docker](https://www.docker.com/) containers to\nprovide a controlled, sterile environment for safely interacting with\nhistorical software bugs. BugZoo provides several advantages over\nthe use of monolithic virtual machines\n(e.g., [ManyBugs VM](http://repairbenchmarks.cs.umass.edu/)):\n\n* By using containerisation instead of virtualisation, BugZoo can ensure\n  reproducibility with minimal sacrifice to performance, allowing you to run\n  bigger experiments faster.\n* Since containers can be spawned in under a second, a safe, idempotent\n  execution environment can be realistically provided for every test suite\n  evaluation.\n* Each historical bug is provided as its own minimal Docker container image.\n  There are no assumptions that bug containers should be capable of running\n  other software, such as a testing or repair tool that is being evaluated as\n  part of an experiment. BugZoo avoids the inevitable \"DLL hell\" that arises\n  from attempting to mix bugs and tools by transforming tools into portable\n  binaries and mounting them in the execution environment at run-time.\n* Thanks to their minimal nature and Docker's layer-based image caching,\n  prebuilt datasets of historical bugs can be downloaded quickly and\n  easily.\n\n\n## Features\n\n* A simple but powerful command-line interface for building, downloading and\n  interacting with historical bugs.\n* A Python interface for complex, structured interactions with historical\n  bugs: execute specific tests, compute line coverage, apply patches, compile\n  with certain flags, and more.\n* A powerful underlying RESTful API that can be used to add BugZoo bindings to your\n  own favourite language.\n* A decentralised architecture that lets you share your tools and datasets of\n  historical bugs on the BugZoo platform without giving up ownership or control.\n  Adding BugZoo support to your dataset of tool is as simple as adding a\n  `.bugzoo.yml` file to your project.\n\n## Installation\n\nWe recommend using [pipenv](http://pipenv.org/) to install BugZoo, although you\nmay simply use `pip3` instead:\n\n```\n$ pipenv install bugzoo\n```\n\nBugZoo supports Python \u003e= 3.5.2.\n[(Note that BugZoo won't run on Python 3.5.2 will fail due to a bug in\nPython.)](https://github.com/squaresLab/BugZoo/issues/320)\n\n\n## Getting Started\n\nSince BugZoo is a decentralised platform for sharing and interacting with\nhistorical bugs (*and not itself a dataset of bugs*), you'll need to add\nseveral bugs and tools to your installation. Bugs and tools are usually\nprovided to BugZoo by remote, public Git repositories. Adding a *source* of\nbugs or tools to your installation can be done via the `bugzoo source add\n[name] [url]` command:\n\n```\n$ bugzoo source add manybugs https://github.com/squaresLab/ManyBugs\n```\n\nNote that sources do not necessarily have to be remote, public Git\nrepositories: they can also be provided by local directories.\n\n```\n$ git clone https://github.com/squaresLab/ManyBugs path/to/manybugs\n$ bugzoo source add another-manybugs path/to/manybugs\n```\n\nThe `bugzoo source list` command can be used to provide a list of registered\nsources:\n\n```\n$ bugzoo source list\n\nSource    Type    URL                                         Location                                                        Version\n--------  ------  ------------------------------------------  --------------------------------------------------------------  ---------\nrobust    Local   -                                           /home/chris/bugs/robust                                         -\ngenprog   Remote  https://github.com/squaresLab/genprog-code  /home/chris/.bugzoo/sources/github_com_squaresLab_genprog-code  b4de21d7\nmanybugs  Remote  https://github.com/squaresLab/ManyBugs      /home/chris/.bugzoo/sources/github_com_squaresLab_ManyBugs      ad83bd9a\n```\n\nAnd `bugzoo bug list` and `bugzoo tool list` can be used to produce a list of\nall bugs and tools that are provided by your registered sources:\n\n```\n$ bugzoo bug list\n\nBug                                             Program     Dataset    Source    Installed?\n----------------------------------------------  ----------  ---------  --------  ------------\nmanybugs:gmp:13420-13421                        gmp         manybugs   manybugs  No\nmanybugs:gmp:14166-14167                        gmp         manybugs   manybugs  No\nmanybugs:gzip:2009-08-16-3fe0caeada-39a362ae9d  gzip        manybugs   manybugs  No\nmanybugs:gzip:2009-09-26-a1d3d4019d-f17cbd13a1  gzip        manybugs   manybugs  No\nmanybugs:gzip:2009-10-09-1a085b1446-118a107f2d  gzip        manybugs   manybugs  No\nmanybugs:gzip:2010-01-30-fc00329e3d-1204630c96  gzip        manybugs   manybugs  No\nmanybugs:gzip:2010-02-19-3eb6091d69-884ef6d16c  gzip        manybugs   manybugs  No\nmanybugs:libtiff:2005-12-14-6746b87-0d3d51d     libtiff     manybugs   manybugs  No\nmanybugs:libtiff:2005-12-21-3b848a7-3edb9cd     libtiff     manybugs   manybugs  No\nmanybugs:libtiff:2005-12-27-6f76e76-5dac30f     libtiff     manybugs   manybugs  No\nmanybugs:libtiff:2006-02-23-b2ce5d8-207c78a     libtiff     manybugs   manybugs  No\nmanybugs:libtiff:2006-02-27-6074705-e6d0c32     libtiff     manybugs   manybugs  No\nmanybugs:libtiff:2006-03-03-a72cf60-0a36d7f     libtiff     manybugs   manybugs  No\n...\n```\n\nTo interact with a particular bug or tool, you'll need to install it on your\nmachine. There are two ways to do this: (1) you can build the Docker image for\nthe bug or tool locally (via `bugzoo bug build` and `bugzoo tool build`), or\nalternatively, you can download a prebuilt image (via `bugzoo bug download`\nor `bugzoo tool download`).\n\n```\n$ bugzoo bug build manybugs:libtiff:2005-12-14-6746b87-0d3d51d\n...\n```\n\n## Known Sources\n\nBelow is a list of sources that are known to provide datasets or tools that\nare compatible with the BugZoo platform.\n\n* [ManyBugs](https://github.com/squaresLab/ManyBugs)\n* [IntroClass](https://github.com/BugZooOrg/IntroClass)\n* [GenProg TSE 2012 Benchmarks](https://github.com/BugZooOrg/genprog-tse-2012-bugs)\n* [GenProg](https://github.com/squaresLab/genprog-code)\n\nTo add one of these sources, simply execute the following from the command line:\n\n```\n$ bugzoo source add manybugs https://github.com/squaresLab/ManyBugs\n$ bugzoo source add genprog https://github.com/squaresLab/genprog-code\n```\n\n## Citation\n\nIf you use BugZoo in your research work, we would highly appreciate it if you\ncited the [following paper](http://www.cs.cmu.edu/~clegoues/docs/timperley-icse18-poster.pdf):\n\n```\n@inproceedings{bugzoo,\n  author = {Timperley, Christopher and Stepney, Susan and {Le Goues}, Claire}\n  title = {{Poster: BugZoo – A Platform for Studying Software Bugs}},\n  booktitle = {{International Conference on Software Engineering}},\n  series = {{ICSE '18}},\n  year = {2018}\n  note = {{To appear}}\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsquareslab%2Fbugzoo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsquareslab%2Fbugzoo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsquareslab%2Fbugzoo/lists"}