aboutsummaryrefslogblamecommitdiffstatshomepage
path: root/DEVELOPMENT.md
blob: e88be2fb4c49cc9974c8995b060e2ac2fe7dd825 (plain) (tree)
1
2
3
4
5
6
7





                                                               
                                         















                                                                             


                                                    


















                                                                              

                                                                              
Workspace setup
---------------

* Create a virtual Python environment: `make venv`
* Use the virtual environment: `. .venv/bin/activate`
    * Deactivate the environment when you're done: `deactivate`
* Make sure basic tests work: `make test`

Development
-----------

* Run unit tests: `make test/unit`
* There're three integration tests: `local`, `docker` and `example`.
Run them using

      make test/local
      sudo make test/docker
      make test/example

    * The `example` test uses the forges' APIs and might easily hit rate
limits.
Set environment variables described in [examples/cgitize.toml] to use "access
tokens" and get much higher rate limits.
    * Run both unit tests and the `local` test using

          make test

[examples/cgitize.toml]: examples/cgitize.toml

Upgrading dependencies
----------------------

* Upgrade virtual environment packages: `make venv/upgrade`
* Upgrade base Docker images.
    * Find the current base images using `git grep -P 'FROM \w+:'`
* Upgrade the [cmark-gfm] version used in the [cgitize-frontend Docker image].

[cmark-gfm]: https://github.com/github/cmark-gfm
[cgitize-frontend Docker image]: docker/frontend/Dockerfile

Releases
--------

* Make a git tag for a new minor version using `make tag`.
You can then review it and push using `git push --tags`.
* For a new major version, update the version in the docker-compose definition
in docker/README.md.