epiphany
epiphany copied to clipboard
[FEATURE REQUEST][download requirements] Simplify package dependency management
Is your feature request related to a problem? Please describe. Feature related to #805
We handle automatically only direct package dependencies (the first level in dependency tree).
Consider the following dependency tree:
A requires B B requires C C requires D D requires E
To add a new package to Epiphany now we have to:
- Check dependency tree (on two distributions)
- Add (and maintain) to requirements file packages A, C, E (B and D resolved automatically as direct dependencies)
- Check whether any package is a core package - present in minimal OS installation
- Add to the requirements file non-core packages with comment for dependent packages why they have been added
In the past we had a PR related to this issue (see #871).
Describe the solution you'd like A clear and concise description of what you want to happen.
Describe alternatives you've considered
- Add to requirements file only package A
- Define and maintain list of core packages - they will be excluded from list of packages to be downloaded
- Query all dependencies of package A (
--recurse
flag on Ubuntu) and download all except for the core ones*
- we had issues with dependency resolution on RHEL 7 using
repoquery
. To be checked on RHEL 8.
Additional context
Example:
For Grafana we would like to define only one package (grafana
) but now we have additionally:
-
dejavu-sans-fonts
-
libX11
-
libxcb
-
libXcursor
-
libXt
-
urw-base35-fonts
-
xorg-x11-font-utils
-
xorg-x11-server-utils
DoD checklist
- Changelog
- [ ] updated
- [ ] not needed
- COMPONENTS.md
- [ ] updated
- [ ] not needed
- Schema
- [ ] updated
- [ ] not needed
- Backport tasks
- [ ] created
- [ ] not needed
- Documentation
- [ ] added
- [ ] updated
- [ ] not needed
- [ ] Feature has automated tests
- [ ] Automated tests passed (QA pipelines)
- [ ] apply
- [ ] upgrade
- [ ] backup/restore
- [ ] Idempotency tested
- [ ] All conversations in PR resolved
- [ ] Solution meets requirements and is done according to design doc
- [ ] Usage compliant with license
@sbbroot @to-bar This should be probably dependent on #3094 ?
@seriva I would recommend to do this task before #3094 in order to have less packages specified in requirements so it would be easier to group them by component and potentially achieve a better level of the optimization.
@seriva I would recommend to do this task before #3094 in order to have less packages specified in requirements so it would be easier to group them by component and potentially achieve a better level of the optimization.
Cool, so I will make #3094 dependent on this one then:)