Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mainブランチの運用方法についての検討する #104

Closed
2 tasks done
MtkN1 opened this issue Dec 30, 2021 · 1 comment
Closed
2 tasks done

mainブランチの運用方法についての検討する #104

MtkN1 opened this issue Dec 30, 2021 · 1 comment
Assignees

Comments

@MtkN1
Copy link
Member

MtkN1 commented Dec 30, 2021

課題

現状のmainブランチの運用は意味があるのか。
現状の運用方法...

  • main ブランチ
    • 最新リリースと同等リビジョン
    • バージョンアップごとにdevelopブランチがマージされる
  • develop ブランチ
    • Authorによる開発中のコミットが随時プッシュされる
    • Contributorの寄稿ブランチがマージされる

他のOSSを参考にすると、基本的にはmain(master)はリリースバージョンではない開発ブランチとして利用しているようである。

https://github.com/aio-libs/aiohttp
https://github.com/willmcgugan/rich

pybottersはPyPIにリリースバージョンを公開しており、git tagも付与しリリースバージョン管理されているので、mainブランチは開発ブランチとしての運用に変更してもよいのではないだろうか。 #104 (comment)

運用の変更

  • 現状

    • リポジトリ所有者
      • イシューを発行する(必須)
      • develop に変更を直接コミットする(コミットメッセージにイシュー番号を紐づける)
      • コントリビューターからの PR があった場合は、レビューし develop にマージ(Create merge commit)をする
      • ある程度の変更を行ったら main <- develop の PR を発行及びマージ(Create merge commit)をして、tag を発行し PyPI にパブリッシュする
    • コントリビューター
      • 変更をコミットしたトピックブランチより origin/main に PR を発行する
  • 変更後

    • リポジトリ所有者
      • イシューを発行する(検討や、積み上げが必要な場合)
      • 変更をコミットしたトピックブランチを作成し main に PR を発行・マージ(Squash and merge)をする
        • 内容に関してイシューを発行済みの場合は PR にイシューをリンクする
        • シンプルな変更の場合は、イシューなしでの単体の PR で発行してもよい
      • コントリビューターからの PR があった場合は、レビューし main にマージ(Squash and merge)をする
      • ある程度の変更を行ったら tag を発行し PyPI にパブリッシュする
    • コントリビューター
      • No change

チェックリスト

  • 意思決定
  • 運用方法変更
@MtkN1 MtkN1 self-assigned this Dec 30, 2021
@MtkN1
Copy link
Member Author

MtkN1 commented Jun 22, 2022

main / develop / release などのブランチで構成する運用は git-flow と呼ばれる手法、main ブランチを軸としてトピックブランチを建てて Pull Request により main にマージする運用は GitHub Flow と呼ばれる手法らしい。1

注釈記事によると、GitHub Flow は短期間に何度もデプロイを行う Web アプリケーションの開発に適している。
当プロジェクトはアプリではなく Python ライブラリなのでそれによるメリットはないが、git-flow でのメリットも大きい訳ではないし、GitHub にて有志から Pull Request を受け入れたりするのでより身近な GitHub Flow に則ることにしても良いと考える。
基盤の aiohttp ライブラリのコントリビュート基準も GitHub Flow のような運用に見受けられる。2
それに、pybotters コントリビューターの方も現状定めている develop ではなく main に投げられる Pull Request も多い。

Footnotes

  1. https://gist.github.com/Gab-km/3705015

  2. https://docs.aiohttp.org/en/stable/contributing.html

MtkN1 added a commit that referenced this issue Jul 30, 2022
✨v0.13.1リリース

## Issues

✅ mainブランチの運用方法についての検討する #104
✅ VS Code の devcontainer で pybotters 開発環境を用意する #164
✅ FTXのOrderBookにtimeを追加する #168
✅ BinanceDataStore.order.initialize による初期化時にレコードが削除されない #170
✅ User Agent を設定する #171
✅ MEXC の REST API が一部認証がエラーになる #173
✅ BitMEXDataStore のプロパティに tradeBin や quoteBin を追加する #174
✅ WebSocket 接続状態変数の Typo #175

## Pull requests

✅ Added devcontainer.json and Dockerfile #165
✅ add time for Orderbook #169
✅ BinanceのKlineをREST APIのレスポンスでDataStoreを初期化可能にする #178
@MtkN1 MtkN1 closed this as completed Jul 30, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant