Skip to content

Latest commit

 

History

History
75 lines (58 loc) · 3.01 KB

README.rst

File metadata and controls

75 lines (58 loc) · 3.01 KB
https://travis-ci.org/cltk/cltkv1.svg?branch=master

About

Experimental version of CLTK to incorporate stanza into an all-use NLP() class.

Installation

$ pip install cltkv1

Documentation

$ make docs

Development

The following steps will give you a working development environment.

Python setup

Use pyenv to manage Python versions and poetry for package builds.

  • Install pyenv:
  • Install supported versions of the Python language through pyenv into a dedicated virtualenv:
    • $ pyenv install --list | grep 3.7.5
    • $ pyenv install 3.7.5
    • $ pyenv virtualenv 3.7.5 cltkv1
    • $ pyenv local cltkv1. Open a new window and this should be activated, with a ``(cltkv1) `` prepended to your Bash prompt.
  • Install poetry to support packaging: https://poetry.eustace.io/docs/
  • Install dependencies in poetry.lock: $ poetry install
  • Install Stanford NLP models: $ poetry run python scripts/download_misc_dependencies.py
  • Install Graphiz (necessary for building docs): https://graphviz.gitlab.io/download/

Packaging

  • Validate structure of pyproject.toml: $ poetry check
  • Update project version with poetry: $ poetry version prepatch (e.g., 1.0.0 to 1.0.1-alpha.0)
    • For minor version: $ poetry version preminor (1.0.0 to 1.1.0-alpha.0)
    • For major version: $ poetry version premajor (1.0.0 to 2.0.0-alpha.0)
  • Update all dependencies to latest version (optional): $ make updateDependencies
  • Make package (sdist and wheel): $ make build
  • Check typing: $ make typing
    • View report at .mypy_cache/index.html
  • Run linter: $ make lint
    • View report at pylint/pylint.html
  • Auto-format code: $ make format
  • Build docs: $ make docs
    • View docs at docs/_build/html/index.html
  • Make UML diagrams: $ make uml
    • View diagrams at docs/classes.png and docs/packages.png
  • Run the above at each commit with pre-commit: $ poetry run pre-commit install (just once)
  • Run tests: $ make test
  • Publish pre-release (permissions required): $ make uploadTest
  • Install from TestPyPI: $ make installPyPITest
  • Repeat the above as necessary
  • Bump version: $ poetry version patch (e.g., 1.0.1-alpha.0 to 1.0.1)
    • For minor version: $ poetry version minor (1.0.1-alpha.0 to 1.1.0)
    • For major version: $ poetry version major (1.0.1-alpha.0 to 2.0.0)
    • If you need to publish multiple versions of an alpha pre-release, run $ poetry version prerelease (e.g., 1.0.1-alpha.0 to 1.0.1-alpha.1 to 1.0.1-alpha.2)
  • Publish to PyPI (permissions required): $ make upload