Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Managing requirements for a many-thousands cont...
Search
flaper87
February 21, 2016
Programming
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Managing requirements for a many-thousands contributors software
flaper87
February 21, 2016
More Decks by flaper87
See All by flaper87
Inheriting code… and I don’t mean classes
flaper87
0
290
Don't try to look smart, be smart
flaper87
0
210
Keeping up with the pace of a fast growing community without dying
flaper87
0
210
A walk to remember: Debugging a distributed system failure
flaper87
0
230
Fast-forward to today's Zaqar
flaper87
0
170
Breaking Backwards Compatibility: The easy way
flaper87
1
190
A functional view to Rust
flaper87
1
160
Rust - A walk to concurrency
flaper87
3
620
Kilo Plans for OpenStack Messaging
flaper87
0
220
Other Decks in Programming
See All in Programming
吝嗇家のためのAI活用 / AI development for miser - ChatGPT + Issue Driven Development
tooppoo
0
180
AI時代の仕事技芸論〜ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ(スクフェス仙台 2026バージョン)
kuranuki
0
620
トークンをケチるな、設計しろ:GitHub Copilotを賢く使うコンテキスト戦略
ochtum
0
310
AIキャラアプリkaiwaの低遅延音声通話基盤をどう作ったか - AWS Gravitonで支える低遅延・低コストAI Agent基盤
mogamit
0
170
フィードバックで育てるAI開発
kotaminato
1
110
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
210
SREの積み重ねがAI駆動開発のガードレールになった ― 7つの実践/SRE Guardrails The 7
tomoyakitaura
8
4.1k
act1-costs.pdf
sumedhbala
0
210
『コードを書く以外の』エンジニアリング〜課金基盤移行プロジェクト推進のためのTips4選
yuriko1211
0
440
スマートグラスで並列バイブコーディング
hyshu
0
290
継続モナドとリアクティブプログラミング
yukikurage
3
570
霧の中の代数的エフェクト
funnyycat
1
360
Featured
See All Featured
A Soul's Torment
seathinner
6
3.1k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
210
Faster Mobile Websites
deanohume
310
32k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
30 Presentation Tips
portentint
PRO
1
350
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
The Invisible Side of Design
smashingmag
301
52k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Transcript
Managing requirements for a >1k contributors software
None
dafuq?, smiling cat?
For attending Still here feel free to interrupt @flaper87
[email protected]
None
The problem Co-Installable software What do we depend on? Requirements
Synced
What do we depend on? License requirements Binary vs Pure
Python Py27 / Py34 support
What do we depend on? License requirements Binary vs Pure
Python Py27 / Py34 support
What do we depend on? License requirements Binary vs Pure
Python Py27 / Py34 support
What do we depend on? License requirements Binary vs Pure
Python Py27 / Py34 support
requirements >= synced Project 1 Project 2 Project 3 Project
N
Co-Installable software Compute Requirements Storage Requirements Network Requirements
Co-Installable software Compute Requirements Storage Requirements Network Requirements openstack libraries
Third-Party libraries transitive dependencies
Co-Installable software Essential for integration tests
OpenStack [...] to produce the ubiquitous Open Source Cloud Computing
platform that will meet the needs of public and private clouds regardless of size, by being simple to implement and massively scalable. [...]
Compute & storage We’ve been adding new projects to the
ecosystem ever since OpenStack was created
Compute & storage auth We’ve been adding new projects to
the ecosystem ever since OpenStack was created
Compute & storage db auth We’ve been adding new projects
to the ecosystem ever since OpenStack was created
Compute & storage Network db auth We’ve been adding new
projects to the ecosystem ever since OpenStack was created
Compute & storage Network Messages db auth We’ve been adding
new projects to the ecosystem ever since OpenStack was created
Compute & storage Network Messages db auth Images We’ve been
adding new projects to the ecosystem ever since OpenStack was created
Compute & storage Images DB net auth All these projects
ought to be able to run under the same environment
Centralized requirements
For every requirement file Main Tests Extra
For every requirement file Direct & Transitive
For every requirement file Internal & Third-Party
Not editable mode (-e)
Not external source (-f)
CI Job forbidding untracked requirements
minimum Working version
No Dependency Caps
Requirements Constraints
1 2 3 4 Does it have an acceptable license?
Is it Py3 compatible? Is it actively maintained? Is it packaged already? 5 Does something similar exists already? Ask yourself these questions
... Or you can just ignore this ...
1 2 3 4 Use the minimum version possible Avoid
dependencies that don’t do semver Capping is not always good Favor things on PyPi 5 Keep track of transitive dependencies Summary-ish
Questions?