crankshaft/CONTRIBUTING.md
2016-08-12 18:34:13 +02:00

1.8 KiB

Development process

For any modification of crankshaft, such as adding new features, refactoring or bugfixing, a topic branch must be created out of the develop.

Modifications are done inside src/pg/sql and src/py/crankshaft.

Take into account:

  • Tests must be added for any new functionality (inside src/pg/test, src/py/crankshaft/test) as well as to detect any bugs that are being fixed.
  • Add or modify the corresponding documentation files in the doc folder.
  • Naming conventions for function names:
    • use CamelCase
    • prefix "public" functions with CDB_. E.g: CDB_SpatialMarkovTrend
    • prefix "private" functions with an underscore. E.g: _CDB_MyObscureInternalImplementationDetail

Once the code is ready to be tested, update the local development installation with sudo make install. This will update the 'dev' version of the extension in src/pg/ and make it available to PostgreSQL.

Run the tests with make test.

Update extension in a working database with:

ALTER EXTENSION crankshaft UPDATE TO 'current';
ALTER EXTENSION crankshaft UPDATE TO 'dev';

If the extension has not previously been installed in a database, it can be installed directly with:

CREATE EXTENSION IF NOT EXISTS plpythonu;
CREATE EXTENSION IF NOT EXISTS postgis;
CREATE EXTENSION crankshaft WITH VERSION 'dev';

Once the feature or bugfix is completed and all the tests are passing a pull request shall be created, reviewed by a peer and then merged back into the develop branch once all the CI tests pass.

Relevant development targets in the Makefile

# Show a short description of the available targets
make help

# Generate the extension scripts and install the python package.
sudo make install

#  Run the tests against the installed extension.
make test