mirror of
https://github.com/cs01/gdbgui
synced 2024-11-16 07:47:46 +01:00
80 lines
2.3 KiB
Markdown
80 lines
2.3 KiB
Markdown
Thanks for your interest in contributing to gdbgui!
|
|
|
|
If your change is small, go ahead and submit a pull request. If it is substantial, create a GitHub issue to discuss it before making the change.
|
|
|
|
## Dependencies
|
|
|
|
1.) [nox](https://github.com/theacodes/nox) is used to automate various tasks. You will need it installed on your system before continuing.
|
|
|
|
You can install it with pipx (recommended):
|
|
```
|
|
> pipx install nox
|
|
```
|
|
or pip:
|
|
```
|
|
> pip install --user nox
|
|
```
|
|
|
|
2.) [yarn](https://yarnpkg.com/) is used for managing JavaScript files
|
|
|
|
## Developing
|
|
Development can be done with one simple step:
|
|
```
|
|
> nox -s develop
|
|
```
|
|
This will install all Python and JavaScript dependencies, and build and watch Python and JavaScript files for changes, automatically reloading as things are changed.
|
|
|
|
Make sure you [turn your cache off](https://www.technipages.com/google-chrome-how-to-completely-disable-cache) so that changes made locally are reflected in the page.
|
|
|
|
## Running and Adding tests
|
|
```bash
|
|
> nox
|
|
```
|
|
|
|
runs all applicable tests and linting.
|
|
|
|
Python tests are in `gdbgui/tests`. They are run as part of the above command, but can be run with
|
|
```
|
|
> nox -s python_tests
|
|
```
|
|
|
|
JavaScript tests are in `gdbgui/src/js/tests`. They are run as part of the above command, but can be run with
|
|
```
|
|
> nox -s js_tests
|
|
```
|
|
|
|
## Documentation
|
|
|
|
### Modifying Documentation
|
|
Documentation is made with `mkdocs`. Then make changes to `mkdocs.yml` or md files in the `docs` directory.
|
|
|
|
To build docs, run
|
|
```
|
|
nox -s docs
|
|
```
|
|
|
|
To see a live preview of current documentation, run
|
|
```
|
|
nox -s watch_docs
|
|
```
|
|
|
|
### Publishing Documentation
|
|
The generated documentation is published to the `gh-pages` branch.
|
|
```
|
|
nox -s publish_docs
|
|
```
|
|
|
|
### Building Binary Executables
|
|
|
|
These are automatically built on CI, but can be built locally with corresponding `nox` commands, such as:
|
|
|
|
```
|
|
nox -s build_executables_current_platform
|
|
```
|
|
|
|
## Publishing a New Version
|
|
1. Make sure the version number is incremented in `VERSION.txt`.
|
|
1. The version to release must be on the master branch and have all CI tests pass and new binary executable artifacts attached to the GitHub action results
|
|
1. Publish the package to PyPI and update documentation. Both are done with this `nox -s publish`.
|
|
1. Create a "release" in GitHub and attach the gdbgui binary executable artifacts to it.
|
|
|