@@ -300,3 +300,52 @@ environment variable.
300300It expects a boolean value (`True ` / `False ` ) or a string, with `' True' `
301301interpreted as `True ` and any other string interpreted as `False ` ). If not
302302provided, the breakpoint canarying will not be enabled.
303+
304+ # # Development
305+
306+ The following instructions are intended to help with modifying the codebase.
307+
308+ # ## Testing
309+
310+ # ### Unit tests
311+
312+ Run the `build_and_test.sh` script from the root of the repository to build and
313+ run the unit tests using the locally installed version of Python.
314+
315+ # ### Local development
316+
317+ You may want to run an agent with local changes in an application in order to
318+ validate functionality in a way that unit tests don' t fully cover. To do this,
319+ you will need to build the agent:
320+ ```
321+ cd src
322+ ./ build.sh
323+ cd ..
324+ ```
325+
326+ The built agent will be available in the `src/ dist` directory. You can now
327+ force the installation of the agent using:
328+ ```
329+ pip3 install src/ dist/* -- force- reinstall
330+ ```
331+
332+ You can now run your test application using the development build of the agent
333+ in whatever way you desire.
334+
335+ It is recommended that you do this within a
336+ [virtual environment](https:// docs.python.org/ 3 / library/ venv.html).
337+
338+ # ## Build & Release (for project owners)
339+
340+ Before performing a release, be sure to update the version number in
341+ `src/ googleclouddebugger/ version.py` . Tag the commit that increments the
342+ version number (eg. `v3.1` ) and create a Github release.
343+
344+ Run the `build- dist.sh` script from the root of the repository to build,
345+ test, and generate the distribution whls. You may need to use `sudo`
346+ depending on your system' s docker setup.
347+
348+ Build artifacts will be placed in `/ dist` and can be pushed to pypi by running:
349+ ```
350+ twine upload dist/* .whl
351+ ```
0 commit comments