Try   HackMD

Comparison of Packaging Tools in 2023 - Peacock

歡迎來到 PyCon TW 2023 共筆

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

共筆入口:https://hackmd.io/@pycontw/2023
手機版請點選上方 按鈕展開議程列表。
Welcome to PyCon TW 2023 Collaborative Writing
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Collaborative Writing Workplace:https://hackmd.io/@pycontw/2023
Using mobile please tap to unfold the agenda.

Collaborative writing start from below
從這裡開始共筆

Slide: https://slides.p3ac0ck.net/pycontw2023/index.html

  • PEPs: 517, 621, and 660
  • pyproject.toml format was defined

pyproject.toml https://pip.pypa.io/en/stable/reference/build-system/pyproject-toml/

pyproject.toml format

  • build-system
  • project
    • dependencies

Pipenv

  • Pros
    • supports lock-file
    • easy to add/ upgrade pacakges
    • wraps vitualenv
  • Cons
    • slow dependency resolver
    • limited support for pep 621 style pyproject.toml

Poetry

  • Pros
    • Dependency management with lock-file
    • Wrapper virtual env
    • Include Task-runner poetry run
    • Helper for the building wheels
  • Cons
    • Not support PEP621 style pyproject.toml

PDM

  • Pros
    • Fast dependency resolver (you can choose another resolver)
    • Support PEP 621
    • Include Task runner (pdm run)
  • Cons
    • Not include wheel building helper

pip-tools

  • Pros
    • Simple, only 2 commands
    • Support PEP 621
      • Combine-able with pip or hatch
    • Maintained by the jazzband community
  • Cons
    • does not included task runner or wheel building tools

Hatch

  • Pros
    • Configurable to a backend for builing project
    • Maintained acitvely by PyPA nearly official
    • Support PEP 621
  • Cons

pip

  • Pros
    • Build-in in Python, very simple
    • Support PEP 621
  • Cons
    • cannot wrap virtualenv
    • does not support file-managed dependencies
    • does not include task-runnder and wheel builder

Summary

Case 1: Library developing

  • Hatch (with pip-tools): Very configurable and flexible

Case 2: Application Developing

  • PDM: All-in-one tool and easy to use
  • resaons:
    • fast dependency resolver
    • supports PEP 621 style pyproject.toml

Case 3: Automation Script Developing

  • pip Simple to use, not built-in in Python)
  • reasons:
    • Lightweight, non-dep
    • Simple to use

Appendix

Rye

  • pros
    • single-binary, easy to install and use
    • works with pyproject.toml spec PEP 621 style
    • wraps virtualenv, including package builder and publisher
    • inlcude python version manager
  • cons
    • experimental, not stable

Q & A

  1. is requirement.txt dead?
  • no, but it has some problems

Below is the part that speaker updated the talk/tutorial after speech
講者於演講後有更新或勘誤投影片的部份