DEPRECATED -- Rewritten and moved to https://github.com/NiklasRosenstein/shut/. 🌊 Shore is a distribution and release management tool for pure Python packages.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Niklas Rosenstein 3cbc5fa6a2
fix MANIFEST.in rendering if readme file is outside of the package directory
10 months ago
.changelog move Changelog logic to "shut" package 11 months ago
docs add docs/.gitignore 1 year ago
src fix MANIFEST.in rendering if readme file is outside of the package directory 10 months ago
.drone.yml .drone.yml: add Pip -q flag 1 year ago
.gitignore add __pycache__ to .gitignore 1 year ago
.pylintrc move Changelog logic to "shut" package 11 months ago
LICENSE.txt add LICENSE.txt 1 year ago
MANIFEST.in add builders and publishers concepts 10 months ago
README.md update README.md 10 months ago
package.yaml move setuptools render logic into shut 10 months ago
setup.py set zip_safe=False if "typed" is enabled (see PEP-561 compatible packages: https://mypy.readthedocs.io/en/latest/installed_packages.html#making-pep-561-compatible-packages) 10 months ago

README.md

shut

Shut is an opinionated tool that allows you to configure everything around the Python packaging and release process from a single source of truth. It is intended to simplify the process of publishing Python packages and prevent common pitfalls.

At a glance

  • Bootstrap Python packages: shut pkg new --name my-package
  • Install and save dependencies: shut pkg requirements add <package>
  • Document changes: shut changelog add fix --commit --message "Fixed TypeError in `foo()`"
  • Bump the version according to changelog: shut pkg bump
  • Publish on PyPI: shut pkg publish

Configuration

package.yml

package:
  name: my-package
  modulename: my_module
  version: 0.1.0
  license: MIT
  description: My first every package built with Shut
  author: Me <me@example.org>
  requirements:
  - python ^3.5
  - requests ^2.22.0
  entrypoints:
    console_scripts:
    - mycli = my_module.__main__:mycli

Todo


Copyright © 2020, Niklas Rosenstein