◦ Lifecycle of requirements • Global Requirements and Upper Constraints • Accomplishments • Contribution Summary • Periodic Updates • Current Challenges • Whats Next? • How you can contribute • Resources
for same python library Order of project installs may break randomly Multiple installs of same library say during a single devstack run What exactly are we testing in our CI? Long term maintenance issues Is the library maintained? Is it under a compatible license? Are there existing libraries in use that already have similar functionality? Does this already exist in popular distros? So we need a single place to maintain version ranges and blessed versions
teams Component version ranges are updated in g-r as required New component is released on pypi triggers updates to u-c Updates to u-c affects all CI jobs for projects that are subscribed to g-r Bot proposes updates to all subscribed projects Requirements team considers pruning components from g-r/u-c Works with individual projects to remove dependencies Cleans up g-r and u-c, when all projects have removed those components
pypi and updates u-c Bot picks up new indirect dependencies (of things in g-r) and updates u-c Humans may propose the following (all of which will need updates to u-c): New components New version ranges of components Exclusion of specific versions Gate/Check jobs to validate and merge Bot and Human proposed updates Another Bot proposes checks each project and proposes updates to requirements.txt, test-requirements.txt and setup.cfg
global-requirements.txt Submit reviews for missing requirements that you need for your project Sync your requirements.txt with the version ranges in global-requirements.txt Add check-requirements job for the repository in project-config Add an entry in projects.txt in requirements repository Watch for reviews from OpenStack CI Bot
Breeds (tonyb) elected as PTL - Formation of active core-team for requirements - Improved cross-project integration tests with projects using upper constraints - Improved reviews and stakeholders to actively track down issues arising with new requirements - Better co-ordination with release engineering team for releases of openstack projects and related libraries. - Removed most unused requirements from the list.
u-c without updating the lower bound of g-r. We don’t deal well with forks (pycrypto vs pycryptodome), Difficult to switch projects from one to another We do not test lower bounds of version ranges (u-c by definition is latest and greatest versions usable) Reverts trigger a lot of projects to be updated. How do we get a larger set of jobs (to prevent bad versions getting in). Since the CI jobs test a small subset of tests.
- Requirements without active maintainers and finding replacements (if possible) - Advocate project teams to use upper-constraints - Optimize propose changes
in projects - Python 3 compatibility and testing - https://wiki.openstack.org/wiki/Python3 - Better communication and impact analysis when merging changes related to complex binaries.