Skip to content

Project template for Dockerized pip package development.

License

Notifications You must be signed in to change notification settings

ken-morel/pip-package-template-docker

 
 

Repository files navigation

pip-package-template-docker

Release Status PyPI package Supported Python versions Build Status Coverage Status

Project template for Dockerized pip package development.

Overview

  1. This project is fully Dockerized. For convenience, a Makefile is provided to build/test during development.
  2. Python 3.11 is the primary version for development, while 3.7 - 3.10 are included for compatibility. You may want to change them in the future. See docker-compose.yml and Makefile. Refer to this page for Python versions you may want to support.
  3. Linting is done using flake8 and testing is done using pytest.
  4. CI is designed for GitHub Actions. See .github. Coverage is reported to Coveralls.
  5. An automatic release to Pypi is made through GitHub Actions whenever you publish a new release on GitHub.
  6. LICENSE in the template is MIT.

How to use

  1. Please familiarize yourself with all the concept involved. I am not responsible for things breaking if you use this template.
    • Python and different Python versions
    • Creating pip packages. I made a tutorial a few years ago, which you can see here.
    • Docker and docker-compose
    • Linting and flake8
    • Unit testing and pytest
    • CI and GitHub Actions
    • Code coverage
  2. Find all instances of pip-package-template-docker and replace them with your desired package name. This is the name of your package known to Pypi and pip install.
  3. Rename the src/pip_package_template_docker folder. Find all instances of pip_package_template_docker and replace them accordingly. This is what your import statement would use in Python code.
  4. Go through src/setup.py and make necessary changes. Please do not link your project to my name, email, or GitHub.
  5. Replace README.md with your own. If you would like to use the badges, please change the links to point to your project.
  6. Replace LICENSE with your own. Please do not license your project under my name.
  7. Project version is found in the __init__.py file in your package. Update it accordingly as you develop your package.
  8. Put unittests under src/tests.
  9. Sign up for necessary accounts, such as Pypi and Coveralls.
  10. Acquire a Pypi token and put it under your project as PYPI_API_TOKEN. On Pypi it is found under Account settings -> API tokens -> Add API token. On GitHub it is located in your project settings -> Security -> Secrets and variables -> Repository secrets. You may need to manually update once before a project-specific token can be acquired.

About

Project template for Dockerized pip package development.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 77.6%
  • Makefile 14.7%
  • Dockerfile 7.7%