Tabeline is free and open source software developed under an MIT license. Development occurs at the GitHub project. Contributions, big and small, are welcome.
Bug reports and feature requests may be made directly on the issues tab.
To make a pull request, you will need to fork the repo, clone the repo, make the changes, run the tests, push the changes, and open a PR.
Cloning the repo
To make a local copy of Tabeline, clone the repository with git:
git clone https://github.com/drhagen/tabeline.git
Installing from source
Tabeline uses Poetry as its packaging and dependency manager. In whatever Python environment you prefer, install Poetry and then use Poetry to install Tabeline and its dependencies:
pip install poetry poetry install
Tabeline uses pytest to run the tests in the
tests/ directory. The test command is encapsulated with Nox:
poetry run nox -s test test_pandas
This will try to test with all compatible Python versions that
nox can find. To run the tests with only a particular version, run something like this:
poetry run nox -s test-3.9 test_pandas-3.9
It is good to run the tests locally before making a PR, but it is not necessary to have all Python versions run. It is rare for a failure to appear in a single version, and the CI will catch it anyway.
Tabeline uses Black, isort, and Flake8 to ensure a minimum standard of code quality. The code quality commands are encapsulated with Nox:
poetry run nox -s black poetry run nox -s isort poetry run nox -s flake8
Generating the docs
Tabeline uses MkDocs to generate HTML docs from Markdown. For development purposes, they can be served locally without needing to build them first:
poetry run mkdocs serve
To deploy the current docs to GitHub Pages, Tabeline uses the MkDocs
gh-deploy command that builds the static site on the
gh-pages branch, commits, and pushes to the origin:
poetry run mkdocs gh-deploy
Making a release
- Increment version in
- Commit with message "Bump version number to X.Y.Z"
- Push commit to GitHub
- Check GitHub Actions to ensure all tests pass
- Increment version in
- Tag commit with "vX.Y.Z"
- Push tag to GitHub
- Check GitHub Actions for tag
- Verify that sdist (
.tar.gz) and bdist (
.whl) are in
- Create GitHub release with name "Tabeline X.Y.Z" and major changes in body
- If appropriate, deploy updated docs