epiphany icon indicating copy to clipboard operation
epiphany copied to clipboard

[FEATURE REQUEST][download requirements] Simplify package dependency management

Open to-bar opened this issue 3 years ago • 3 comments

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:

  1. Check dependency tree (on two distributions)
  2. Add (and maintain) to requirements file packages A, C, E (B and D resolved automatically as direct dependencies)
  3. Check whether any package is a core package - present in minimal OS installation
  4. 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

  1. Add to requirements file only package A
  2. Define and maintain list of core packages - they will be excluded from list of packages to be downloaded
  3. 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

to-bar avatar Feb 08 '22 11:02 to-bar

@sbbroot @to-bar This should be probably dependent on #3094 ?

seriva avatar Aug 16 '22 09:08 seriva

@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.

tomasz-baran avatar Aug 16 '22 14:08 tomasz-baran

@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:)

seriva avatar Aug 16 '22 14:08 seriva