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.0…master
TBC
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 2020-10-17 23:24:17 with "python-creole"
Release files for poetry-publish 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| poetry-publish-0.4.0.tar.gz | 25.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| poetry_publish-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 62.1 kB
Release files / poetry-publish-0.4.0.tar.gz
| Download URL | poetry-publish-0.4.0.tar.gz |
|---|---|
| Size | 25.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9936ac587d9b94fa735ef53226f5f21242c8ecb0321195cc3c5cc55d4fda4bae
|
|
BLAKE2b-256 checksum How to use checksums |
0aad1fefb14d31d57c16cc44565bf4f7da314b7ca6c98e91cb7931e3fbce9cf8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5
|
Release files / poetry_publish-0.4.0-py3-none-any.whl
| Download URL | poetry_publish-0.4.0-py3-none-any.whl |
|---|---|
| Size | 37.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
de449fe0ff24f753e2d62e7dc7812b328b32df6fd3f3e6e84ec3d8cf352239f5
|
|
BLAKE2b-256 checksum How to use checksums |
493a29cf1d548fcdefb11fdbd48a7be1a86f8ffb07039be66068aa378cb4831e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5
|