Skip to content

[question] Workspace and overrides #18746

@kevinpoulet

Description

@kevinpoulet

What is your question?

Hello,

Let's say I have a workspace with app1 (prod1) -> libA (prod1) -> libB (prod2) -> libC (prod2).

The product between parentheses also denotates which team is responsible for the majority of the development.

We use a floating version (our CI overwrite it in our AF on push) we call develop within a product so that we always point to the latest development (develop can be seen as a kind of beta/RC). But a team doesn’t want unexpected changes from another team, so prod1 requires fixed versions of prod2. So, within prod1 we require other prod1 with /develop and prod2 with /1.2.3.

Our problem is that prod1 team often contributes the features they need into prod2. But since they are developing in prod2, what they cloned is requiring the /develop of other prod2. When inside the workspace, it creates a conflict because.

This kind of conflict also arises when we want to try using a new version of libC for instance in a quick build to check for breaking changes/improvements. In that case we would need to either update all the recipes or have or CI create a new full-fledged release just for testing purposes which we cannot realistically do.

A possible way to express the conflict resolution would be to allow only override=True requirements in the workspace recipe.

Another solution would be to checkout the sources based on the versions in the workspace. I haven’t dug too deep into the workspace open concept, but for reference, the repositories are cloned following a fixed structure and are outside of the workspace. Other tools and scripts rely on the clone location and it feels like workspace open only clones into the workspace.

Have you read the CONTRIBUTING guide?

  • I've read the CONTRIBUTING guide

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions