はじめに
皆さんあけましておめでとうざいます。新年一発目の記事です。先日、PyPIに自作のモジュールを公開したので、その時に役立った情報や、知っておきたかった情報を初心者目線でまとめました。
公開する前に
公開手順に入る前に知っておきたい情報です。
PyPI
そもそも公開する場所がよく分かっていないと困ります。簡単に言えば、アカウントを作って、ここにモジュールを上げれば、皆もpipして使えるようになるという感じです。
セマンティックバージョニング
semantic(意味論)から分かるように、バージョンの数字には意味があるみたいです。筆者は雰囲気でつけてるもんだと思ってました
バージョンナンバーは、メジャー.マイナー.パッチ とし、バージョンを上げるには、
- APIの変更に互換性のない場合はメジャーバージョンを、
- 後方互換性があり機能性を追加した場合はマイナーバージョンを、
- 後方互換性を伴うバグ修正をした場合はパッチバージョンを上げます。
プレリリースやビルドナンバーなどのラベルに関しては、メジャー.マイナー.パッチ の形式を拡張する形で利用することができます。
だそうです。これを知っていたほうが、この後の手順でバージョンをいじるときに、悩まなくて済みますね!
READMEの書き方
README.mdはパッケージの顔みたいなもんなので、書くときに意識することくらいは知っていたほうがいいと思います。
ここでは載ってませんが、サンプルプログラムとか、短くて済むならREADMEに書いちゃった方が、個人的には親切だと思います。
MITライセンス
自由度がとても高いライセンスです。個人でアップする分には、特にこだわりがなければ、これにしておいて問題ないと思われます。このくらいならAIでも書いてくれそうですが、以下の記事にサンプルが載っていたので紹介しておきます。
公開手順
GitHub
GitHubを使うので、アカウントを持っていない人は作っておきましょう。Qiitaのアカウントを作るのにも使えるので、ここでやめずに、この機会にぜひ。
詳しい手順
この記事を書くきっかけになったのがこちらでもあります。もともと公開手順を記事にしたかったのですが、もうめっちゃ詳しい解説があったので、断念しました。
__main__.py
について
コマンドラインツールを公開する場合は、上の手順で__init__.py
と一緒に、__main__.py
というのも作りましょう。そうすると
python -m your_package
のようにパッケージ名から実行できる機能を持たせることができます。
__init__.py
と違って、このファイルには直接処理を書いていいです。また、パッケージ内の他のファイルからimport
して、それらの機能を実行するみたいな使い道もアリだと思います。
公開後
バージョンアップ
機能を追加するときはバージョンアップをしましょう。setup.py
のバージョンの数字を上げて、上の手順のビルドからやり直せばできます。GitHubにバージョンごとのタグも付けてあるわけですし、dist
とかbuild
とかは一回消しちゃってからやった方がいいと思います。distの中に旧バージョンと新バージョンが混在したりすると面倒なので。
注意点として、同じバージョンでのアップロードができないので、本当にちょっとした変更(README書き換えたとか)でも数字を上げる必要があります。
インストール数の確認
パッケージを公開したら、どのくらいダウンロードされているのか気になりますよね?それが見られるサイトがこちらです。日ごとの推移とかもグラフにしてくれるので、筆者は毎日気になって確認しています。次の日の16時くらいになると更新されているかなって印象ですね。正確なところは分かりませんが。
↓こんな感じのバッジも作ってくれます(押すとpepy.techのページに飛びます)
最後に
ここまで読んで下さりありがとうございました。ここの記事とかサイトとかを全部活用すれば、とりあえず困ることはないと思いますがどうでしょうか?手順とかをまとめているサイトは、他にもいくつか見受けられました。しかし、バージョンの付け方とか、本題と違う情報は別途探さないと載ってないので、痒い所に手が届くといいかなと思っています。
最後に宣伝です。筆者が公開したのは、タイピングゲームを簡単に作れるモジュールです。結構自信作なので、使ってみてもらえると嬉しいです。ゲーム制作未経験でも、なんなら課題以外でプログラムを書いたことがない人でも、使えるくらいの簡単さと自負しています。(というかサンプルコードのお題を書き換えれば、それだけで自作のタイピングゲームが作れてしまいますが)
PyPI
GitHub