Skip to content

Update Bazel Dependencies #783

Open
Open

Description

@MaximilianSoerenPollak

What

It has been a while since Docs-as-Code bazel dependencies have been updated / upgraded.

We should look through and see what is the most recent releases of the things we use that we can import without breaking any downstream consumer or our own repo

Acceptance Criteria (DoD)

Upgrade the bazel imports that are upgradeable without breaking anything downstream or internally.

Go one by one (if possible) to avoid issues with figuring out what caused the non functioning part.

How

Go through MODULE.bazel and see what we can upgrade.

Example:

Current MODULE.bazel has:
bazel_dep(name = "aspect_rules_py", version = "1.4.0")

But newest version of aspect_rules_py is 2.2+, so this would be a candidate to try and see if we can upgrade.

Activity

  1. AlexanderLanin commented on Sep 1, 2026

    @AlexanderLanin
    Member

    we cannot update bazel modules without demand that easily, as they are enforced by bazel to all score users (which use bazel)

  2. AlexanderLanin commented on Oct 6, 2026

    @AlexanderLanin
    Member

    @LittleHuba @umaucher do you have any guidance what can / should / must / must-not be updated? As those bazel_dep are propagated. If we stay on old versions, we cannot guarantee compatibility with the new versions and vice versa.

    I'm happy to move this to some meeting as well - whichever one you would like 😆

  3. umaucher commented on Oct 7, 2026

    @umaucher
    Contributor

    I think the tricky question / problem is here where / how it is used so from a persistency point of view if we stay with the example aspect_rules_py it is only a "implicit" dependency:

    ✔ ~/Projects/git/eclipse-score/persistency [main] 
    $ bazel mod all_paths aspect_rules_py
    <root> (score_persistency@_)
    ├───score_docs_as_code@8.3.0 
    │   └───aspect_rules_py@1.4.0 # 
    ├───score_tooling@2.3.1 
    │   └───aspect_rules_py@1.4.0 # 
    └───score_tools@_ 
        └───aspect_rules_py@1.4.0 #
    

    but if one of it wants to update it needs to be compatible to all the others since bazel would use "the highest" version in the tree. So maybe updates like this needs to be tested / challenged in the reference integration still most likely tricky to identify all runtime issues? So far in persistency we tried to stay up2date with all deps we defined in our MODULE.bazel but I think this is getting more and more tricky the more "consumers / users" you have.

  4. umaucher commented on Oct 7, 2026

    @umaucher
    Contributor

    another discussion IMHO never got really solved is what should be dev_dependencies and what not ... not thought threw but as a brainstorming e.g.

  5. umaucher commented on Oct 7, 2026

    @umaucher
    Contributor

    where it is getting really really ugly 🤯 : baselibs has a dependency to score_bazel_cpp_toolchains 1.0.4 which is "incompatible" with rules_cc > 0.2.17 so if baselibs updates googletest to 1.18.0 it inherits a "later" rules_cc via:

    ├───googletest@1.18.0 
    │   ├───abseil-cpp@20260526.0 
    │   │   └───rules_cc@0.2.18 # 
    
  6. LittleHuba commented on Oct 7, 2026

    @LittleHuba

    @LittleHuba @umaucher do you have any guidance what can / should / must / must-not be updated? As those bazel_dep are propagated. If we stay on old versions, we cannot guarantee compatibility with the new versions and vice versa.

    I'm happy to move this to some meeting as well - whichever one you would like 😆

    Update dev-dependencies whenever you think it helps you (no impact on users of the module).
    Update other dependencies only when you need a feature/fix from a later version (Any bump forces all your users to bump to this version or a later one as well).
    To ensure compatibility, best use a dependency version checker as we have in communication module. (see workflows there)

  7. AlexanderLanin commented on Oct 8, 2026

    @AlexanderLanin
    Member

    @LittleHuba thats an interesting approach, will defintely see how to adopt it! It doesn't quite solve the original question, e.g. we need to update rules_python which will NOT lead to any problems within score, but AFAIK it leads to problems for BMW. According to what you wrote I should just update it, as I need it. But this doesn't quite match reality, does it? Simplest idea would be: if you update a dependency to a new "highest version" within score, then bring that "request" into the alignment meeting. Its not the best approach, but anything is better than pure chaos.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions