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 contributors software
Search
flaper87
February 21, 2016
Programming
0
63
Managing requirements for a many-thousands contributors software
flaper87
February 21, 2016
Tweet
Share
More Decks by flaper87
See All by flaper87
Inheriting code… and I don’t mean classes
flaper87
0
210
Don't try to look smart, be smart
flaper87
0
150
Keeping up with the pace of a fast growing community without dying
flaper87
0
140
A walk to remember: Debugging a distributed system failure
flaper87
0
180
Fast-forward to today's Zaqar
flaper87
0
100
Breaking Backwards Compatibility: The easy way
flaper87
1
140
A functional view to Rust
flaper87
1
120
Rust - A walk to concurrency
flaper87
3
540
Kilo Plans for OpenStack Messaging
flaper87
0
110
Other Decks in Programming
See All in Programming
VS Code をプロダクトにどう取り込むか
onomax
1
710
Azure OpenAI Serviceのプロンプトエンジニアリング入門
tomokusaba
3
870
Amazon SQSコンシューマー疎結合への旅 - 出張! #DevelopersIO IT技術ブログの中の人が語る勉強会 #3
quiver
0
310
Komplexe Oberflächen mit SVG und der Web Animation API
joergneumann
0
680
PHPの次期バージョンはこの時期どうなっているのか - Internalsの開発体制について - PHPカンファレンス小田原
youkidearitai
PRO
1
220
try! Swift Tokyo 2024 参加報告 / try! Swift Tokyo 2024 Report
hironytic
0
220
Fragment Composition of GraphQL
quramy
13
1.5k
スキーマ駆動開発による品質とスピードの両立 - 私達は何故、スキーマを書くのか
kentaroutakeda
0
180
CDKコントリビュートの最初の壁を越えよう! -簡単issueの見つけ方-
badmintoncryer
3
210
Compose-View Interop in Practice (mDevCamp 2024)
stewemetal
0
170
Scalable Customer Journey Orchestration (CJO)
lewuathe
0
420
初心者のためのRubyKaigi入門/RubyKaigi Introduction
a_matsuda
10
1.4k
Featured
See All Featured
For a Future-Friendly Web
brad_frost
172
9k
Designing for humans not robots
tammielis
247
25k
Clear Off the Table
cherdarchuk
85
310k
Building a Scalable Design System with Sketch
lauravandoore
457
32k
How STYLIGHT went responsive
nonsquared
92
4.8k
The Mythical Team-Month
searls
216
42k
Debugging Ruby Performance
tmm1
70
11k
Building Effective Engineering Teams - LeadDev
addyosmani
31
1.9k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
14
1.5k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
Writing Fast Ruby
sferik
622
60k
Build The Right Thing And Hit Your Dates
maggiecrowley
25
2k
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?