Replace OBS with another build system
We faced a number of challenges with OBS during last year.
- OBS builds packages in its own way which is different from upstream.
It causes an issues when upstream package can't be rebuilt without
changing packages sources.
- OBS rebuilds package when its build dependency changed (and doesn't
update revision number of such package)
- OBS uses base upstream packages for target in the building stage.
Every change in the target causes rebuilding of each package which
was built with this target.
- OBS doesn't support publishing udeb binary packages. This is due to
the fact that it uses plain debian repository structure. But deb and
udeb packages should not be published in one repository.
- Our current OBS version (2.4) doesn't support debian python:any
dependencies. That's why we decided to create new OBS (2.6) instance.
We can't update current version because it totally breaks supporting
previously shipped releases.
- OBS doesn't support signing with predefined key. Only OBS
auto generated keys can be used. Every OBS project has it's own key.
Such keys can't be exported from OBS.
- It's quite hard to reproduce our CI due to OBS. Every MOS OBS
project based on previously shipped project. (e.g. 6.1 and 6.0.1 based
on 6.0 release, 6.0 based on 5.1 and so on). So if you need to
reproduce our CI for 6.1 release, you need to rebuild all packages for
all shipped releases since 3.2.
Blueprint information
- Status:
- Complete
- Approver:
- Roman Vyalov
- Priority:
- High
- Drafter:
- Roman Vyalov
- Direction:
- Approved
- Assignee:
- Dmitry Burmistrov
- Definition:
- Approved
- Series goal:
- Accepted for 7.0.x
- Implementation:
- Implemented
- Milestone target:
- 7.0
- Started by
- Roman Vyalov
- Completed by
- Roman Vyalov
Related branches
Related bugs
Sprints
Whiteboard
Implementation currently track in:
https:/
Jenkins jobs:
https:/
Related design document: https:/
Gerrit topic: https:/
Addressed by: https:/
Blueprint: replace-obs
Addressed by: https:/
Move repository from OBS to Perestroika based packages
Addressed by: https:/
Add Perestroika DEB repository as packages source
Addressed by: https:/
Adjust deb sandbox repos with perestroika repo structure
Addressed by: https:/
[RN 7.0] [New Features] MOS Packages signature
Addressed by: https:/
[fuel-web] Perestroika buils system description
Work Items
Dependency tree
* Blueprints in grey have been implemented.