Helper to build and upload a project that used poetry to PyPi, with prechecks
Project description
about poetry-publish
Helper to build and upload a project that used poetry to PyPi, with prechecks:
User must confirm:
If __version__ contains ‘dev’ or ‘rc’
If git repository is not on master
Abort publish if git repository contains changes
Abort if git repository is not up-to-date
Abort if poetry check fails
Abort if twine check fails
Abort if git version tag already exists
After a successfull upload to PyPi:
create a git version tag
git push tag to remote server
Compatible Python Versions (see tox.ini or .travis.yml):
3.9, 3.8, 3.7, 3.6
PyPy3
example
~/repos/python-creole$ poetry run publish Check if we are on "master" branch: Call: 'git branch --no-color' OK Set version in "pyproject.toml" to: v1.4.3 Call: 'poetry version 1.4.3' Bumping version from 1.4.3 to 1.4.3 check if if git repro is clean: Call: 'git status --porcelain' OK Run "poetry check": OK check if pull is needed Call: 'git fetch --all' Fordere an von origin Call: 'git log HEAD..origin/master --oneline' OK Call: 'git push' Everything up-to-date Cleanup old builds: remove tree: /home/jens/repos/python-creole/dist build but do not upload... Call: 'poetry build' Build log file is here: 'publish.log' check git tag OK Upload to PyPi via poetry: Call: 'poetry publish' Publishing python-creole (1.4.3) to PyPI - Uploading python-creole-1.4.3.tar.gz 100% - Uploading python_creole-1.4.3-py3-none-any.whl 100% git tag version Call: 'git tag v1.4.3' git push tag to server Call: 'git push --tags' Total 0 (delta 0), reused 0 (delta 0) To github.com:jedie/python-creole.git * [new tag] v1.4.3 -> v1.4.3
setup usage in projects
Create a publish hook in you project, e.g. create your_project/publish.py with:
from pathlib import Path import your_project from poetry_publish.publish import poetry_publish def publish(): poetry_publish( package_root=Path(your_project.__file__).parent.parent, version=your_project.__version__, )
Add this to your poetry pyproject.toml, e.g.:
[tool.poetry.scripts] publish = 'your_project:publish'
To publish do this:
~$ cd your_project ~/your_project$ poetry run publish
Note: Don’t miss the run ! It’s not the same as poetry publish
based on: https://github.com/jedie/python-code-snippets/blob/master/CodeSnippets/setup_publish.py
unittests
# clone repository (or use your fork): ~$ git clone https://github.com/jedie/poetry-publish.git ~$ cd poetry-publish # install or update poetry: ~/poetry-publish$ make install-poetry # install poetry-publish via poetry: ~/poetry-publish$ make install # Run pytest: ~/poetry-publish$ make pytest # Run pytest via tox with all environments: ~/poetry-publish$ make tox # Run pytest via tox with one Python version: ~/poetry-publish$ make tox-py38 ~/poetry-publish$ make tox-py37 ~/poetry-publish$ make tox-py36
make targets
To see all make targets, just call make:
~/poetry-publish$ make help List all commands install-poetry install or update poetry install install python-poetry_publish via poetry update Update the dependencies as according to the pyproject.toml file lint Run code formatters and linter fix-code-style Fix code formatting tox-listenvs List all tox test environments tox Run pytest via tox with all environments tox-py36 Run pytest via tox with *python v3.6* tox-py37 Run pytest via tox with *python v3.7* tox-py38 Run pytest via tox with *python v3.8* tox-py39 Run pytest via tox with *python v3.9* pytest Run pytest update-rst-readme update README.rst from README.creole publish Release new version to PyPi
history
dev - compare v0.4.1…master
TBC
v0.4.1 - 2021-03-19 - compare v0.4.0…v0.4.1
Bugfix if git main branch is used, instead of master
v0.4.0 - 2020-10-17 - compare v0.3.2…v0.4.0
Call twine check dist/*.*, too.
Some meta updates to project setup
v0.3.2 - 2020-10-16 - compare v0.3.1…v0.3.2
Create git annotated tags instead of a lightweight tag. Contributed by sebhmg in #9
Make python-creole to an optional dependency. Based on a contribution by sebhmg
Allow main beside master as stable branch.
Add make update
Update pytest.ini
Change supported Python version in pyproject.toml
Run tests with Python 3.9, too
v0.3.1 - 2020-02-19 - compare v0.3.0…v0.3.1
less restricted dependency specification
Add: }
v0.3.0 - 2020-02-10 - compare v0.2.3…v0.3.0
Poetry publish error -> fallback and use twine
call poetry publish with -vvv
call git push with origin <current-branch>
add isort config
v0.2.3 - 2020-02-02 - compare v0.2.2…v0.2.3
make poetry_publish.tests.test_project_setup usable for external packages
v0.2.2 - 2020-02-01 - compare v0.2.1…v0.2.2
Fix missing project description on PyPi
v0.2.1 - 2020-02-01 - compare v0.2.0…v0.2.1
call “poetry version” after “branch is master” check
add many tests
test with PyPy v3, too
Upload coverage reports
fix code style
update README
v0.2.0 - 2020-02-01 - compare 92e584…v0.2.0
first released version cut out from python-creole
first source code was written 27.11.2008: Forum thread (de)
Project links
GitHub |
|
PyPi |
donation
Note: this file is generated from README.creole 2021-03-19 09:09:51 with "python-creole"
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for poetry_publish-0.4.1rc0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f15ce5e740cd4c70250b88838457652c244907729f7c3e74f3575b80832e5105 |
|
MD5 | 3b6d415cb2aa5c4c7a3f816aaefb45ac |
|
BLAKE2b-256 | a88898b6ca9886c407845420538656e64ff6686abef587c2f2f02a5b80f5f8cd |