- Removed
base_url_dockerargument from BugZoo manager to provide better support for rootless Docker.
- Simplified
compilermodule
- Updated
attrsto 19.3.0
- Fixed bad
__str__method inLanguageenum - Re-enabled support for Java and Python bugs
- Updated
attrsto 19.2.0
- Updated patch method in ContainerManager to use --ignore-whitespace option in an effort to ignore file ending issues when patching.
- Added an efficient data structure for representing maps that are indexed by FileLine objects: FileLineMap.
- Updated FileLineSet to implement Set[FileLine] interface.
- Use safe_load to load YAML files.
- Ensure HTTP requests are explicitly closed.
- Check whether port is in use before launching server.
- Use backslashreplace when decoding command output.
- Ensured that contents of
TestSuiteCoverageare deterministically ordered.
- Added ability to specify a particular Docker build stage.
- Fixed a hardcoded log directory in BugZoo CLI.
- Updated coverage instrumentation to use C90-compatible comments.
- Update coverage instrumentation to support C.
- Updated
clearofContainerManagerto properly delete all running containers. - Fixed
coveragemethod in server-sideBugManagerto no longer use removedCoverageManager.
- Added
__contains__to client- and server-sideBugManager. - Added
__delitem__to client- and server-sideBugManager. - Added
headmethod to client API interface. - Added
has_imagemethod to client-side Docker manager.
- Added
ip_addressmethod to client-side container manager. - Added
mktempmethod to client-side container manager. - Added
resolvemethod to client-side file manager for resolving relative paths to absolute paths.
- Updated RESTful API for accessing files to rely on absolute file paths.
- Updated
copy_toto ensure that files copied to the container are owned by the user inside the container. - Updated
extractfunction to fix a reference before assignment error.
- Fixed infinite loop in
BuildInstructions.fileby removing the method and replacing all.fileaccesses with equivalent.filenameaccesses. Also renamedfile_abstofilename_abs. - Fixed bug in blueprint construction that caused source name and dependent image names to be swapped with one another.
- Fixed use-before-defined in
gcovcoverage extractor.
- Added
writemethod to client-side and server-side file manager. - Individual log files for each CLI session are now saved to
.bugzoo/logs. - Added better error reporting to CLI, which now reports the location of the relevant log file to the user.
- Switched implementation of command-line interface from
argparsetocement. - Replaced
bug uninstallcommand withbug rmandbug removecommands. - Replaced
tool uninstallcommand withtool rmandtool removecommands. - Refactored core data structures using
attrs. - Updated patch command to use
patchrather thangit applyto avoid errors when using containers that do not have an appropriate version of Git installed.
- Resolved permissions issue when instrumenting source files by using the file manager's read/write API to apply coverage.
- Added default value to
pluginsargument forprovisionmethod of client-side container manager.
- Added
pluginsargument toprovisionmethod for client-side container manager. - Added
timeout_connectionargument toephemeralmethod insideservermodule.
- Added
to_dictandfrom_dicttoTool.
- Added documentation for manifest file format.
- Added documentation for "Adding a plugin".
- Updated documentation for adding bugs and blueprints.
- Updated documentation for Python API.
- Added ability to specify Docker Client API version.
- Added
from_stringmethod toFileLine.
- Added support for non-UTF-8/ASCII file encodings to FileManager (i.e., files encoded using codecs other than ASCII and UTF-8 are now supported).
- Added
buildandbuild_with_instrumentationmethods (aliases) to server-sideContainerManager.
- Updated
bugzoodto write version information for most of its dependencies to its logs. - Reduced number of false warnings that are produced when computing coverage reports.
- Included
.cxx,.cc,.h,.hh, and.hppin coverage reports for C++. - Added defensive checks to
report_system_resourcesto handle environments in whichpsutilfails to report certain information.
- added
shutdownmethod to client. - added
report_system_resourcesandreport_resource_limitstoutilmodule. Both functions describe the available system resources and write a description to a provided logger. - updated
bugzoodto report available resources upon launch.
- Docker image deletion endpoint now uses
force=Trueto ensure that images are destroyed.
- Added ability to compute line coverage reports to client container manager.
- All containers are now destroyed when the server is closed.
- Added ability to specify custom (albeit limited) oracles for individual test cases.
- Fixed a bug in
Spectra.from_coveragethat incorrectly preventedeporeffor a given line from being greater than one. - Fixed an incorrect path in
client.dockermthat prevented the client from deleting Docker images on the server.
- Extended manifest file format to allow more detailed instructions for
individual test cases (e.g., specific time limits, commands, and
contexts). Also added
expected-outcomeas a new test case property, allowing the expected behaviour of the test to be specified and checked bybugzoo validate.
- Removed
testingmodule and refactored its contents into a simpler module,core.test.
- Added
--log-leveloption tobugzood. - Added ability to suppress
werkzeuglogs produced bybugzood.
- Removed
localizationmodule that has since been made redundant bydarjeeling'slocalizationmodule. - Removed
numpydependency. - Reduced size of
Dockerfile. - Added
--no-statusand--override-build-tool-checkflags to catkin compiler to reduce output verbosity.
- Added
instrumentmethod to client's container module: allows users to instrument a given container for the purposes of computing coverage at some point in the future.
- Added
threaded=Trueoption to server to ensure thatbugzoodcan handle multiple clients simultaneously.
- Added Dockerfile for
bugzood. - Updated README and various parts of the documentation.
- Added
instrumentparameter to container coverage methods.
bugzoodnow allows users to log to a given file.- Added
**kwargsto all HTTP methods in low-level API client; allows more information to be forwarded ontorequests. - Added
buildmethod as an alias ofcompilein both client- and server-side container managers. - Added more detailed logging to client file manager.
- Added
__repr__toSpectra. - Added check to
BugZooto ensure that the Docker server is responsive. - Added slightly better error handling to
mktempin server-side container manager. - Added better logging and error reporting to
commandin server-side container manager. - Added
POST /containers/<uid>/buildendpoint to server.
- Fixed a bug in logging that prevented
DEBUGlevel calls from being written to file or passed to the stdout. - Fixed a bug in URL generation method in client module that prevented certain URLs from being reached.
- Fixed HTTP method used by
coveragemethod inclient.container. - Fixed bug in
CompilationOutcome.from_dictthat prevented serialised compilation outcomes from being parsed.
- Added ability to compute coverage for a given container to the client and server.
- Added coverage method to container manager: acts as an alias for the coverage method in the coverage manager.
- Added extra logging statements across the codebase.
- Fixed compatibility breaking bug that was caused by attempting to import NoReturn from the typing module. Added a workaround to attempt to import NoReturn from mypy_extensions if it isn't found in typing.
- Fixed a regression introduced in 2.1.4 that caused BugZoo to crash when executing a command with a given time limit.
- Removed duplicate route in HTTP server for bug coverage.
- Fixed HTTP endpoint for bug coverage to use GET rather than POST.
- Added missing package, mypy-extensions, to setup.py.
- Fixed misuses of logger in various server-side managers.
- Updated waf compiler to use
--no-submodule-updateargument.
- Fixed bug that caused BugZoo to interfere with logging of other packages by
removing all calls to
logging.basicConfig. Also, refactored loggers to uselogging.getLogger(__name__)for each module, rather than passingLoggerinstances between components.
- Added method
bugzoo.server.ephemeralto allow ephemeral servers to be provisioned. Launches a server and returns a context-bound client that is connected to that server. As soon as the context is closed, the server is safely destroyed.
- Fixed a bug in
bugzoo.client.Clientthat caused the connection timeout to abort the connection attempt prematurely.
- Added
--debug,-p|--port, and--hosttobugzoodexecutable. - Implemented
GET /bugs/:id/coverageendpoint on client and server.
- Fixed bug in server module that was caused by incorrectly handling parameters in the construction of error responses.
- Client now blocks until a connection to the server is established or a maximum timeout has been reached, in which case, it raises a ConnectionFailure exception.
- added ability to delete Docker images on the server to client
(via
DELETE /docker/:image). - added to the client the ability to register ephemeral bug descriptions with
the server (via
PUT /bugs/:id). - added
containers.patchtoClient, allowing patches to be sent from client and applied to containers running on the server. - added ability to persist containers as Docker images on the server.