We use Github as a code and issues hosting platform. To report a bug or propose a new feature, please open an issue. For pull requests, we would ask you initially create an issue and then create a pull requests linked to this issue.
We use a flexible documentation system as the docs are generated from:
- markdown documents in the
docsdirectory interpreted by the Jupiter Notebook runner - python scripts in the
docsdirectory generating references or copying documents from the root directory such asREADME.md,CHANGELOG.mdetc
To contribute to the documentation, please check to the corresponding docs/name.md|py file to understand the source of a document. If it's a markdown just edit it in-line if it's a script edit it or find a corresponding document in the root directory.
There are two main docs directories:
- source directory:
docs - target directory:
docs/build
To build only one document run:
python scripts/docs.py nameTo build the whole documentation:
python scripts/docs.py # or make docsFrictionless is a Python3.6+ framework, and it uses some basically standard Python tools for the development process:
- testing:
pytest - linting:
pylama - formatting:
black - type checking:
mypy(under construction)
It's a commonplace but, of course, you need git to work on the project, also make is recommended.
After cloning the repository, it's recommended to create a virtual environment and install the dependencies:
it will install a
git commithook running the tests
python3.8 -m venv .python
source .python/bin/activate
pip install wheel
make install
alias "frictionless=python -m frictionless"Then you can run various make commands:
make docs- build the docsmake format- format source codemake install- install the dependencies (we did before)make lint- lint the projectmake release- release a new versionmake test- run the testsmake test-ci- run the tests (including integrational)
Of course, it's possible and recommended to run underlying commands like pytest or pylama to speed up the development process.
To release a new version:
- check that you have push access to the
masterbranch - update
frictionless/assets/VERSIONfollowing the SemVer standard - add changes to
CHANGELOG.mdif it's not a patch release (major or micro) - run
make releasewhich create a release commit and tag and push it to Github - an actual release will happen on the Travis CI platform after running the tests