Makefile dan classifier

Mengembangkan Paket Python

James Fulton

Climate informatics researcher

Classifier

  • Metadata untuk paket Anda
  • Membantu pengguna menemukan paket Anda di PyPI
  • Sertakan
    • Status paket
    • Audiens target
    • Jenis lisensi
    • Bahasa
    • Versi Python yang didukung
  • Banyak classifier lain: https://pypi.org/classifiers

Di dalam setup.py milik mysklearn

setup(
    ...
    classifiers=[
        'Development Status :: 2 - Pre-Alpha',
        'Intended Audience :: Developers',
        'License :: OSI Approved :: MIT License',
        'Natural Language :: English',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.6',
        'Programming Language :: Python :: 3.7',
        'Programming Language :: Python :: 3.8',
    ],
    ...
)
Mengembangkan Paket Python

Untuk apa Makefile?

  • Untuk mengotomatisasi sebagian proses build paket
mysklearn/
...
|-- README.md
|-- setup.py
|-- Makefile  <---
...
Mengembangkan Paket Python

Apa isi Makefile?

Di dalam Makefile

...

dist: ## membangun paket source dan wheel
    python3 setup.py sdist bdist_wheel

clean-build: ## hapus artefak build rm -fr build/ rm -fr dist/ rm -fr .eggs/
test: ## jalankan tes cepat dengan Python default pytest
release: dist ## kemas dan unggah rilis twine upload dist/*
Mengembangkan Paket Python

Bagaimana cara menggunakan Makefile?

make <function-name>
mysklearn/ <--- masuk ke direktori ini
...
|-- README.md
|-- setup.py
|-- Makefile  
...
Mengembangkan Paket Python

Bagaimana cara menggunakan Makefile?

Untuk menjalankan fungsi dist, ketik di terminal

make dist

Di dalam Makefile

...

dist: ## membangun paket source dan wheel
    python3 setup.py sdist bdist_wheel

clean-build: ## hapus artefak build
    rm -fr build/
    rm -fr dist/
    rm -fr .eggs/

test: ## jalankan tes cepat dengan Python default
    pytest

release: dist ## kemas dan unggah rilis
    twine upload dist/*
Mengembangkan Paket Python

Ringkasan Makefile

make help
clean                hapus semua artefak build, test, coverage, dan Python
clean-build          hapus artefak build
clean-pyc            hapus artefak berkas Python
clean-test           hapus artefak test dan coverage
lint                 periksa gaya dengan flake8
test                 jalankan tes cepat dengan Python default
test-all             jalankan tes di tiap versi Python dengan tox
release              kemas dan unggah rilis
dist                 bangun paket source dan wheel
install              instal paket ke site-packages Python aktif
Mengembangkan Paket Python

Ayo berlatih!

Mengembangkan Paket Python

Preparing Video For Download...