Skip to content

Conversation

@glarrain
Copy link
Contributor

@glarrain glarrain commented Apr 4, 2019

Features:

  • "requirements" file structure, with one file for each "run mode" (dev, test, release), a base one, and another one for the extras packages.
  • Directory layout for Python files of main package and test suite.
  • Basic project metadata.
  • File 'setup.py' (along with 'MANIFEST.in') for package installation, package generation, etc.
  • Source package and wheel distribution generation (make dist).
  • Test suite setup for regular run or with test coverage analysis (make test, make test-coverage).
  • Test coverage report generation (make test-coverage-report-*).
  • Code style analysis (flake8) and static type check (mypy) (make lint).
  • Tox: test for multiple Python versions.
  • 'bumpversion' for bumping version with a single command.
  • Other minor things.

glarrain added 5 commits April 4, 2019 14:56
Create the "requirements" file structure, with one file for each
"run mode" (`dev`, `test`, `release`), a base one, and another one
for the `extras` packages.
Source:
https://github.com/fyndata/gcp-utils-python/tree/d7d6a44

Packages:

- 'setuptools': "Easily download, build, install, upgrade, and
  uninstall Python packages".
  https://setuptools.readthedocs.io
  https://github.com/pypa/setuptools

- 'wheel': "A built-package format for Python."
  https://wheel.readthedocs.io
  https://github.com/pypa/wheel

- 'twine': "Collection of utilities for publishing packages on PyPI".
  https://twine.readthedocs.io
  https://github.com/pypa/twine

- 'bumpversion': "Version-bump your software with a single command!"
  https://github.com/peritus/bumpversion
Source:
https://github.com/fyndata/gcp-utils-python/tree/d7d6a44

Packages:

- 'mypy': "Optional static typing for Python"
  http://www.mypy-lang.org
  https://github.com/python/mypy

- 'flake8': "tool that glues together pep8, pyflakes, mccabe, and
  third-party plugins to check the style and quality of some python code"
  https://gitlab.com/pycqa/flake8

- 'coverage': "Code coverage measurement for Python"
  https://coverage.readthedocs.io
  https://github.com/nedbat/coveragepy

- 'tox': "Command line driven CI frontend and development task
  automation tool"
  https://tox.readthedocs.io
  https://github.com/tox-dev/tox

- 'codecov': "Hosted coverage reports for Github, Bitbucket and Gitlab"
  https://codecov.io
  https://github.com/codecov/codecov-python
- Directory layout for Python files of main package and test suite.
- Basic project metadata.
- File 'setup.py' (along with 'MANIFEST.in') for package installation,
  package generation, etc.
- Source package and wheel distribution generation (`make dist`).
- Test suite setup for regular run or with test coverage analysis.
  (`make test`, `make test-coverage`).
- Test coverage report generation (`make test-coverage-report-*`).
- Code style analysis (flake8) and static type check (mypy)
  (`make lint`).
- Tox: test for multiple Python versions.
- 'bumpversion' for bumping version with a single command.
- Other minor things.

Sources:

- '.bumpversion.cfg':
  https://github.com/fyndata/gcp-utils-python/blob/8b7f105/.bumpversion.cfg

- 'HISTORY.rst':
  https://github.com/fyndata/fyndata-django-accounts/blob/aec7610/HISTORY.rst

- 'LICENSE' (identical):
  https://github.com/fyndata/gcp-utils-python/blob/efb59cd/LICENSE
  https://github.com/fyndata/fyndata-django-accounts/blob/31cf034/LICENSE

- 'MANIFEST.in' (combination):
  https://github.com/fyndata/fyndata-django-accounts/blob/aec7610/MANIFEST.in
  https://github.com/fyndata/gcp-utils-python/blob/3574c47/MANIFEST.in

- 'Makefile':
  https://github.com/fyndata/gcp-utils-python/blob/99935b5/Makefile

- 'setup.cfg':
  https://github.com/fyndata/gcp-utils-python/blob/aeeebb4/setup.cfg

- 'setup.py':
  https://github.com/fyndata/fyndata-django-accounts/blob/aec7610/setup.py

- 'tox.ini'
  https://github.com/fyndata/gcp-utils-python/blob/3ce8d2f/tox.ini

Also some influence by "Cookiecutter PyPackage"
https://github.com/audreyr/cookiecutter-pypackage
Only Python 3.7 is supported. Python 3.6 and below will not work
because we intend to use some features introduced in Python 3.7.

For development and testing, Python 3.7.2 (released on 2018-12-24)
will be used.

More info:
- https://docs.python.org/3.7/whatsnew/3.7.html
- https://www.python.org/downloads/release/python-372/
@glarrain glarrain self-assigned this Apr 4, 2019
@glarrain glarrain merged commit 5b5f226 into develop Apr 4, 2019
@glarrain glarrain deleted the feature/set-up-python-project branch April 4, 2019 22:06
@glarrain glarrain mentioned this pull request Apr 4, 2019
@glarrain glarrain added component: config config, setup, etc task Task or chore labels May 8, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

component: config config, setup, etc task Task or chore

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants