Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
オープンソース開発で見えてくる世界
Search
Noritaka IZUMI
November 11, 2024
31
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
オープンソース開発で見えてくる世界
Noritaka IZUMI
November 11, 2024
More Decks by Noritaka IZUMI
See All by Noritaka IZUMI
コミットメッセージ駆動開発
noritakaizumi
0
130
Featured
See All Featured
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
540
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Side Projects
sachag
456
43k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
How GitHub (no longer) Works
holman
316
150k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
600
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.3k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Transcript
オープンソース開発で 見えてくる世界 2024.11.11
Call me “Nori”. Noritaka IZUMI @IzumiNoritaka(X / Twitter) def profile()
-> Dict[str, str]: return { “company”: “株式会社トラストバンク”, “product”: “LoGoフォーム”, “team”: “プロダクトチーム”, } 2
データベースマイグレーションツール「chronovoyage」 Raw SQL を記述してマイグレーション・ ロールバックが実行できるツール pip 経由でインストールし、接続情報と SQL を書いてコマンドを実行するだけ chronovoyage
migrate 3
なんで、私が Snyk に。 脆弱性診断ツール「Snyk」の Open Source Advisor にも デビューしました 🎉
4
Python パッケージ開発に必要なこと 5
Python パッケージ開発に必要なこと 6 コーディング ドキュメント類の整備 静的解析・テスト パッケージの ビルド・プッシュ
Python パッケージ開発に必要なこと 7 コーディング ドキュメント類の整備 静的解析・テスト パッケージの ビルド・プッシュ
コーディング • パッケージをいろんな人に使ってもらうため、 複数バージョンに対応する必要がある ◦ Python 3.8 以上に対応させたいなら基本的に Python 3.8
で記述 • コミットログはわかりやすく ◦ Conventional Commits に沿ったやり方 ▪ 「build(core): update version to 0.1.6」 ◦ 絵文字を記載する形式 ▪ 「🐛 verbose オプションで設定されるログレベルが間違っていたので修正」 8
Python パッケージ開発に必要なこと 9 コーディング ドキュメント類の整備 静的解析・テスト パッケージの ビルド・プッシュ
静的解析・テスト • 静的解析のエラーは基本的にバグ ◦ エラーを常に検出できる環境を整備しておく • パッケージをいろんな人に使ってもらうため、 複数バージョンでテストを実施 ◦ Python
3.8 以上に対応させたいなら Python 3.8 以上のバージョンすべてでテストする ◦ tox や hatch などのツールを使うと簡単にできる 10
複数バージョンでの テストは、バージョン アップ対応へのコスト を下げる 11
Python パッケージ開発に必要なこと 12 コーディング ドキュメント類の整備 静的解析・テスト パッケージの ビルド・プッシュ
• リポジトリ ◦ README.md:簡単な使い方と資料へのリンク等 ◦ ライセンス条項 LICENSE:二次利用や再配布に関する規定 ◦ 行動規範 CODE_OF_CONDUCT.md:オープンソースコミュニ
ティ参加者心得 ◦ 貢献マニュアル CONTRIBUTING.md:バグ報告、コミットの やり方など ◦ セキュリティポリシー (SECURITY.md):セキュリティ対応方 針 ◦ Issue テンプレート (バグ報告・機能リクエスト) ◦ Pull Request テンプレート ◦ ロードマップ:中長期戦略 ◦ スポンサーリンク (寄付をもらいたい人向け) ◦ セキュリティアドバイザリー (脆弱性の報告フォーム) ◦ 脆弱性アラート (Dependabot / Code scanning / Secret scanning) ◦ 不適切なコンテンツの報告を有効化 (GitHub の全ユーザー / Contributor から) ドキュメント類の整備 13 • Documentation ◦ チュートリアルや詳しい使い方などを記載 ◦ リポジトリ内に docs ディレクトリを用意、Wiki を利 用するなど ◦ 自動デプロイ ◦ GitHub Actions でビルド -> S3 にアップロード -> Amplify で公開 • その他 ◦ SNS での共有時に表示される画像の設定 ◦ マニュアル用に独自ドメインを取得 ◦ GitHub Organization を設定し、リポジトリを移行 ◦ Organization 用ロゴを作成 ▪ brandmark.io なら組織名とスローガン、カ ラーテーマを指定するだけでデザイン案を出 してくれる
多い 14 不特定多数のエンジニアを束ねるには、これくらいのドキュメントが必要
かいつまんで紹介 15
LICENSE 16 • ライセンス条項 • 二次利用や再配布に関する規定 ◦ 自由に使っていいよ ◦ 著作権を表示してね
◦ 作者への謝辞を載せてね ◦ 作者を宣伝するのは禁止だよ
外部ライブラリの ライセンスに 気を付けよう 17
CONTRIBUTING.md 18 • 貢献マニュアル • 開発を始めるための環境構築方法 • バグ報告、コミットのやり方
オンボーディング資料 の一部として使える 19
SECURITY.md 20 • セキュリティポリシー • 脆弱性対応を行うバージョンの明記
セキュリティ品質を 保つもの 21
Python パッケージ開発に必要なこと 22 コーディング ドキュメント類の整備 静的解析・テスト パッケージの ビルド・リリース
パッケージのビルド・プッシュ • TestPyPI/PyPI へアカウント登録 • 以下の情報を設定ファイルへ記載 ◦ パッケージ名・バージョン番号・説明・README ファイルの場所・ 対応
Python バージョン・ライセンス・作者・キーワード・タグ ・各種 URL など • ビルドして TestPyPI へプッシュして見た目を確認 • 確認後、PyPI へプッシュ ◦ GitHub Actions 経由でプッシュすると GitHub へのリンクが認証済みとして表示される • リポジトリにタグを付与 • リリースノートを作成 23
お決まりの作業 自動化して楽しよう 24
まとめ 25
オープンソースには、 たくさんのドキュメント・ルールが 設けられている 26
オープンソースの多くは、 テストやリリースなどの定期作業を 極力自動化するよう努力している 27
オープンソース開発者の大半が 仕事の片手間でやっている😌 28
感謝して利用しよう🙏 29
30 おわり