Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[proposal] Databend dependency management #3785

Closed
PsiACE opened this issue Jan 6, 2022 · 5 comments · Fixed by #4086
Closed

[proposal] Databend dependency management #3785

PsiACE opened this issue Jan 6, 2022 · 5 comments · Fixed by #4086
Labels
C-testing Category: testing

Comments

@PsiACE
Copy link
Member

PsiACE commented Jan 6, 2022

Currently, between 800 and 1000 dependencies need to be compiled per full build/test of Databend.

dependent-bot is not applicable

  • update one dependency at a time
  • take up a lot of ci resources
  • also require developer attention

Dependency Management

  1. a batch update of dependencies at the beginning of each month
    • cargo upgrade
    • cargo udeps
    • manually update dependencies that break changes
  2. updates to specific dependencies as required
    • cargo audit
    • development needs

As there is currently no suitable tool to update dependencies in batch, we will perform this process manually. (The main problem is the lack of a simple way to roll back specific packages based on reported errors.)

@BohuTANG BohuTANG added the C-testing Category: testing label Jan 6, 2022
@BohuTANG
Copy link
Member

BohuTANG commented Jan 7, 2022

The fisrt task is to remove the dependsbot from databend :)

@sundy-li
Copy link
Member

sundy-li commented Jan 7, 2022

If we update dependencies in batch, how could we know which new dependency is not valid?

@PsiACE
Copy link
Member Author

PsiACE commented Jan 7, 2022

If we update dependencies in batch, how could we know which new dependency is not valid?

We had to deal with these potential problems manually.

@Xuanwo
Copy link
Member

Xuanwo commented Jan 9, 2022

Please take https://docs.renovatebot.com/rust/ into consideration.

renovatebot will update all crates in batch and have more behavior config than dependabot (which means more complex).

Some features I like:

  • Dependency Dashboard: Dependency Dashboard renovatebot/renovate#2958
    • We can have a overview about current state of our dependence tree
  • Batch update
    • We can update dependences in batch
    • More flexible, we can define groups. For example, we can upgrade tokio-* together in the same PR.
  • Pre/Post upgrade jobs
    • We can define pre and post upgrade jobs
    • For example, run cargo udeps after upgrade

Anyway, I think we should not update crates by hand expect there are breaking changes.

@BohuTANG
Copy link
Member

We should find/make a action that can do the update in batch.
Dependabot has a disscusstion on it:
dependabot/dependabot-core#2174

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-testing Category: testing
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants