- Removed
base_url_docker
argument from BugZoo manager to provide better support for rootless Docker.
- Simplified
compiler
module
- Updated
attrs
to 19.3.0
- Fixed bad
__str__
method inLanguage
enum - Re-enabled support for Java and Python bugs
- Updated
attrs
to 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
TestSuiteCoverage
are 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
clear
ofContainerManager
to properly delete all running containers. - Fixed
coverage
method in server-sideBugManager
to no longer use removedCoverageManager
.
- Added
__contains__
to client- and server-sideBugManager
. - Added
__delitem__
to client- and server-sideBugManager
. - Added
head
method to client API interface. - Added
has_image
method to client-side Docker manager.
- Added
ip_address
method to client-side container manager. - Added
mktemp
method to client-side container manager. - Added
resolve
method 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_to
to ensure that files copied to the container are owned by the user inside the container. - Updated
extract
function to fix a reference before assignment error.
- Fixed infinite loop in
BuildInstructions.file
by removing the method and replacing all.file
accesses with equivalent.filename
accesses. Also renamedfile_abs
tofilename_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
gcov
coverage extractor.
- Added
write
method 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
argparse
tocement
. - Replaced
bug uninstall
command withbug rm
andbug remove
commands. - Replaced
tool uninstall
command withtool rm
andtool remove
commands. - Refactored core data structures using
attrs
. - Updated patch command to use
patch
rather thangit apply
to 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
plugins
argument forprovision
method of client-side container manager.
- Added
plugins
argument toprovision
method for client-side container manager. - Added
timeout_connection
argument toephemeral
method insideserver
module.
- Added
to_dict
andfrom_dict
toTool
.
- 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_string
method 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
build
andbuild_with_instrumentation
methods (aliases) to server-sideContainerManager
.
- Updated
bugzood
to 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.hpp
in coverage reports for C++. - Added defensive checks to
report_system_resources
to handle environments in whichpsutil
fails to report certain information.
- added
shutdown
method to client. - added
report_system_resources
andreport_resource_limits
toutil
module. Both functions describe the available system resources and write a description to a provided logger. - updated
bugzood
to report available resources upon launch.
- Docker image deletion endpoint now uses
force=True
to 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_coverage
that incorrectly preventedep
oref
for a given line from being greater than one. - Fixed an incorrect path in
client.dockerm
that 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-outcome
as a new test case property, allowing the expected behaviour of the test to be specified and checked bybugzoo validate
.
- Removed
testing
module and refactored its contents into a simpler module,core.test
.
- Added
--log-level
option tobugzood
. - Added ability to suppress
werkzeug
logs produced bybugzood
.
- Removed
localization
module that has since been made redundant bydarjeeling
'slocalization
module. - Removed
numpy
dependency. - Reduced size of
Dockerfile
. - Added
--no-status
and--override-build-tool-check
flags to catkin compiler to reduce output verbosity.
- Added
instrument
method 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=True
option to server to ensure thatbugzood
can handle multiple clients simultaneously.
- Added Dockerfile for
bugzood
. - Updated README and various parts of the documentation.
- Added
instrument
parameter to container coverage methods.
bugzood
now allows users to log to a given file.- Added
**kwargs
to all HTTP methods in low-level API client; allows more information to be forwarded ontorequests
. - Added
build
method as an alias ofcompile
in both client- and server-side container managers. - Added more detailed logging to client file manager.
- Added
__repr__
toSpectra
. - Added check to
BugZoo
to ensure that the Docker server is responsive. - Added slightly better error handling to
mktemp
in server-side container manager. - Added better logging and error reporting to
command
in server-side container manager. - Added
POST /containers/<uid>/build
endpoint to server.
- Fixed a bug in logging that prevented
DEBUG
level 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
coverage
method inclient.container
. - Fixed bug in
CompilationOutcome.from_dict
that 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-update
argument.
- 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 passingLogger
instances between components.
- Added method
bugzoo.server.ephemeral
to 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.Client
that caused the connection timeout to abort the connection attempt prematurely.
- Added
--debug
,-p|--port
, and--host
tobugzood
executable. - Implemented
GET /bugs/:id/coverage
endpoint 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.patch
toClient
, 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.