Skip to content

Latest commit

 

History

History
49 lines (35 loc) · 1.91 KB

python-pypi.md

File metadata and controls

49 lines (35 loc) · 1.91 KB

Checklist: Publishing a package to PyPi

  1. Register an account on PyPi if you don't have one.

  2. Install setuptools and twine using pip if they aren't already. Create a setup.py in your source folder as follows (check out setuptools docs for more detailed setup options):

     # replace:
     # <your_package> with your actual package name.
     # <you> with your name.
     # <your_email> with your public email address.
     # <your_github_repo_url> with your github project's url.
     from setuptools import setup, find_packages
     
     s = setup(
     	name="<your_package>",
     	version="1.0.0",
     	license="MIT",
     	description="Foo App",
     	url='<your_github_repo_url>",
     	packages=find_packages(),
     	install_requires=[],
     	python_requires = ">= 3.4",
     	author="<you>",
     	author_email="<your_email>",
     	)
    
  3. Optional: Bump up the version number (and git commit) if this isn't your first release:

     git add . && git commit -m "chore: released 1.0.1" && git push
    
  4. Run python setup.py sdist from your source folder to generate a source distribution.

  5. Optional: Sign the newly generated package with your gpg signature:

     gpg -a --detach-sign dist/<your-package>-1.0.0.tar.gz
    
  6. Upload your package using twine:

     twine upload dist/<your-package>-1.0.0.tar.gz -u <your-pypi-username> -p <your-pypi-password>
    

    If you've signed the package, then you may also add the signed .asc file as the argument like this:

     twine upload dist/<your-package>-1.0.0.tar.gz dist/<your-package>-1.0.0.tar.gz.asc -u <your-pypi-username> -p <your-pypi-password>
    
  7. Visit https://pypi.org/project/your_package to verify that your package has been uploaded.

  8. Run pip install <your_package> to verify the package installation using pip package manager.

  9. Optional: Tag the commit with the new version number:

     git tag "1.0.1"
     git push --tags