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
0
89
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
240
Don't try to look smart, be smart
flaper87
0
170
Keeping up with the pace of a fast growing community without dying
flaper87
0
180
A walk to remember: Debugging a distributed system failure
flaper87
0
200
Fast-forward to today's Zaqar
flaper87
0
130
Breaking Backwards Compatibility: The easy way
flaper87
1
160
A functional view to Rust
flaper87
1
140
Rust - A walk to concurrency
flaper87
3
580
Kilo Plans for OpenStack Messaging
flaper87
0
170
Other Decks in Programming
See All in Programming
Bytecode Manipulation 으로 생산성 높이기
bigstark
2
370
Kotlin エンジニアへ送る:Swift 案件に参加させられる日に備えて~似てるけど色々違う Swift の仕様 / from Kotlin to Swift
lovee
1
250
5つのアンチパターンから学ぶLT設計
narihara
1
110
なぜ「共通化」を考え、失敗を繰り返すのか
rinchoku
1
480
Blazing Fast UI Development with Compose Hot Reload (droidcon New York 2025)
zsmb
1
190
ASP.NETアプリケーションのモダナイズ インフラ編
tomokusaba
1
410
Systèmes distribués, pour le meilleur et pour le pire - BreizhCamp 2025 - Conférence
slecache
0
100
PostgreSQLのRow Level SecurityをPHPのORMで扱う Eloquent vs Doctrine #phpcon #track2
77web
2
290
Team topologies and the microservice architecture: a synergistic relationship
cer
PRO
0
1k
Gleamという選択肢
comamoca
6
760
Go1.25からのGOMAXPROCS
kuro_kurorrr
1
800
Create a website using Spatial Web
akkeylab
0
300
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
223
9.7k
Code Review Best Practice
trishagee
68
18k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
The Cult of Friendly URLs
andyhume
79
6.5k
Fireside Chat
paigeccino
37
3.5k
A Tale of Four Properties
chriscoyier
160
23k
Designing for Performance
lara
609
69k
Speed Design
sergeychernyshev
32
1k
VelocityConf: Rendering Performance Case Studies
addyosmani
330
24k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
BBQ
matthewcrist
89
9.7k
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?