Managing requirements for a many-thousands contributors software

C05edcc8a57f64b4e040d94ad89cee57?s=47 flaper87
February 21, 2016

Managing requirements for a many-thousands contributors software

C05edcc8a57f64b4e040d94ad89cee57?s=128

flaper87

February 21, 2016
Tweet

Transcript

  1. Managing requirements for a >1k contributors software

  2. None
  3. dafuq?, smiling cat?

  4. For attending Still here feel free to interrupt @flaper87 flavio@redhat.com

  5. None
  6. The problem Co-Installable software What do we depend on? Requirements

    Synced
  7. What do we depend on? License requirements Binary vs Pure

    Python Py27 / Py34 support
  8. What do we depend on? License requirements Binary vs Pure

    Python Py27 / Py34 support
  9. What do we depend on? License requirements Binary vs Pure

    Python Py27 / Py34 support
  10. What do we depend on? License requirements Binary vs Pure

    Python Py27 / Py34 support
  11. requirements >= synced Project 1 Project 2 Project 3 Project

    N
  12. Co-Installable software Compute Requirements Storage Requirements Network Requirements

  13. Co-Installable software Compute Requirements Storage Requirements Network Requirements openstack libraries

    Third-Party libraries transitive dependencies
  14. Co-Installable software Essential for integration tests

  15. 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. [...]
  16. Compute & storage We’ve been adding new projects to the

    ecosystem ever since OpenStack was created
  17. Compute & storage auth We’ve been adding new projects to

    the ecosystem ever since OpenStack was created
  18. Compute & storage db auth We’ve been adding new projects

    to the ecosystem ever since OpenStack was created
  19. Compute & storage Network db auth We’ve been adding new

    projects to the ecosystem ever since OpenStack was created
  20. Compute & storage Network Messages db auth We’ve been adding

    new projects to the ecosystem ever since OpenStack was created
  21. Compute & storage Network Messages db auth Images We’ve been

    adding new projects to the ecosystem ever since OpenStack was created
  22. Compute & storage Images DB net auth All these projects

    ought to be able to run under the same environment
  23. Centralized requirements

  24. For every requirement file Main Tests Extra

  25. For every requirement file Direct & Transitive

  26. For every requirement file Internal & Third-Party

  27. Not editable mode (-e)

  28. Not external source (-f)

  29. CI Job forbidding untracked requirements

  30. minimum Working version

  31. No Dependency Caps

  32. Requirements Constraints

  33. 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
  34. ... Or you can just ignore this ...

  35. 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
  36. Questions?