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
- use
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