Astropyテンプレートを使用してPythonパッケージを作成し、維持する方法¶
何か問題があったら、迷わずAstpy-Devメーリングリストに助けを求めてください!
♪the package-template リポジトリは、Pythonパッケージにテンプレートを提供します。このパッケージデザインは主を反映しています Astropy ストレージ·ライブラリ、および組織のための多くのヘルパー·コードの再使用 Astropy それがそうです。ご参照ください package template documentation パッケージ·テンプレートを使用する説明については、参照されたい。
Pythonパッケージのリリース¶
以下に示す手順を使用してパッケージを発行することができます。これらの説明では、分岐コピーからではなく、リモート“マスタ”リポジトリからの新しいクローンが発行されると仮定します。ChangeLogファイル名は CHANGES.rst
星間コアセットのようにもし値引きを使っていたら、交換すべきです。 CHANGES.rst
vt.から. CHANGES.md
説明書にあります。
注釈
以下の説明では、ワークフローにおいてエラー修復分岐は使用されないと仮定します。間違った修復分岐を作成したいなら、もっと完全な占星術を読むことをお勧めします 放行プログラム. これらをあなたの小包に合わせます。
持続的な統合が通過していることを確認する。
更新する.
CHANGES.rst
ファイルは、すべての変更をリストし、発行日を更新することを保証し、その日付は現在設定されています。unreleased
中の現在の日付yyyy-mm-dd
フォーマットです。更新中のバージョン番号
setup.cfg
使用することなく、これからリリースされるバージョンに追加します.dev
接尾辞(例えば0.1
)である。Setuptools_scmを使用してバージョン番号を管理する場合、このステップをスキップすることができます。運行
git clean -fxd
追跡されていないファイルを削除します(警告:これは以前に提出されていないすべてのファイルを永久的に削除しますので、これらのファイルを保持する必要がないことを確認してください)。このとき、tarファイルを生成するために実行されるコマンドは、パッケージが持っているかどうかに依存します。
pyproject.toml
書類の有無にかかわらず。そうでなければ:python setup.py build sdist --format=gztar
もしそうなら、まず確保しなければなりません build ソフトウェアパッケージはインストールされており、最新です:
pip install build --upgrade
そして使用:ソース配信を作成します
python -m build --sdist .
以下のすべての説明はあなたがすでに仮定していると仮定します
pyproject.toml
それがそうです。もしあなたが使用しなければpyproject.toml
ただし、https://docs.astterpy.org/en/v 4.0.x/Development/Asterpy-Package-template.htmlを参照されたい。この2つの場合,生成されたファイルが内部に入ることを確保する必要がある.
dist
Tarファイルを解凍し、解凍されたディレクトリに入り、以下のコマンドを使用してテストを実行します。pip install -e .[test] pytest
追加する必要があるかもしれません
--remote-data
フラグまたはソフトウェアパッケージを完全にテストする際に一般的に追加される任意の他のフラグ。ディレクトリのルートディレクトリに戻り,使用する::生成されたファイルを削除する.
git clean -fxd
変更を追加します
CHANGES.rst
そしてsetup.cfg
**git add CHANGES.rst setup.cfg
メッセージを使用して提出します:
git commit -m "Preparing release <version>"
タグCOMMIT WITH
v<version>
選択して使用することができます-s
オプション::git tag v<version>
変わる
VERSION
はい。setup.cfg
次のバージョン番号までですが、ついています.dev
末尾の接尾辞(例えば0.2.dev
)である。新しい部分を追加しますCHANGES.rst
次のバージョンについては、1つのエントリしかありませんNo changes yet
例えば、:0.2 (unreleased) ---------------- - No changes yet
変更を追加します
CHANGES.rst
そしてsetup.cfg
**git add CHANGES.rst setup.cfg
メッセージを使用して提出します:
git commit -m "Back to development: <next_version>"
リリースを表示して提出することを使用する
git checkout v<version>
それがそうです。運行git clean -fxd
提出されていない書類は何も削除します。オプションで、“典型的なユーザ”シーンをシミュレートする環境でテストを実行します。これは絶対に必要ではありません。上記のテストを実行したので、カスタム開発者環境を使用している可能性のある微細なエラーを捉えるのに有用かもしれません。仮想環境の設定についての詳細は、参照されたい Python仮想環境 しかし、例えば、あなたが使用していると仮定します Anaconda それがそうです。DO::
conda create -n myaffilpkg_rel_test astropy <any more dependencies here> source activate myaffilpkg_rel_test python -m build --sdist . cd dist pip install myaffilpkg-version.tar.gz python -c 'import myaffilpkg; myaffilpkg.test()' source deactivate cd <back to your source>
ユーザが他の関連するソフトウェアパッケージをインストールしている可能性があると思う場合、この動作を他の依存アイテムの組み合わせで繰り返したい場合があります。すべてのテストが合格したと仮定すれば、あなたは続けることができます。
前のステップを実行した場合は、以下の操作を実行してください
git clean -fxd
again to remove anything you made there. Runpython -m build --sdist .
アップロードするファイルを作成する場合は、以下の操作を実行してください。そして、以下のようにPyPIにアップロードすることができますtwine
**twine upload dist/*
中で述べたとおり these 指示する。PyPI上のエントリが正しいかどうか,およびtarfileが存在するかどうかを検査する.
プライマリ·ブランチに戻り、変更をGitHubにプッシュします:
git checkout master git push --tags origin master
この操作が完了したら、Read the Docsを使ったら、トリガしてください
latest
生成してプロジェクト設定に移行し バージョン さっき押したラベルを見るべきです。アクティブにするタグを選択して保存します。もしあなたのソフトウェアが
conda-forge
Condaチャネル、あなたはまたあなたの包装原料のバージョン番号を更新するために引張要求を提出しなければなりません。
テスト版/リリース候補バージョンに対する修正¶
あなたのパッケージが新しいバージョンをリリースする前に、例えば、協力者がこのバージョンを独立してテストすることを可能にするように、コードを“事前発行”することを望むことができます。実行中のリリースがこのような事前発行である場合、上記のステップのいくつかを修正する必要があります。
発表プログラムの主な修正は:
新版の本号を入力する際には、削除だけではありません
.dev
,“1.2 b 1”または“1.2 rc 1”を入力する.この番号のプランに従わなければならないということは重要です (X.Yb#
あるいは…。X.Y.Zrc#
)は、様々な自動化ツールが主発行前にバージョンを注文することを保証し、PyPIにこれが“事前発行”であることも通知するからである。