Skip to content
This repository was archived by the owner on Mar 11, 2021. It is now read-only.
This repository was archived by the owner on Mar 11, 2021. It is now read-only.

dep entry for goa client repo #64

@nurali-techie

Description

@nurali-techie

For f8-auth we have f8-auth-client repo which contains auto generated goa_client. Similar pair for wit and others.

Problem:
If f8-common wants to use f8-client-auth then dep entry would be:

[[constraint]]
  name = "github.com/fabric8-services/fabric8-auth-client"
  branch = "master"

Here, using master branch is problematic in case there will be incompatible changes in f8-auth goa_design.

The other option would be use revision with commit_sha but this is not good option as f8-common has to frequently keep changing dep entry.

Incompatible Change:
TODO: Please give an example of incompatible change in goa_design.

See: discussion here

Solution1:
As describe here but instead of releasing version, we can go with branch.

For ex,
T1 - f8-auth has some goa_design and ci build runs and calls generate_client_setup() with v1 and that will create v1 branch in f8-auth-client. Each time the content of v1 branch will be override with one_commit similar to how gh-pages branch maintained by github for docs_usecase.
T2 - f8-common has dep_entry with branch=v1
T3 - f8-auth did some goa_design with incompatible changes so need to pass v2 to generate_client_setup() and v2 branch will be created.

Pros:

  • f8-common will not fail due to incompatible changes in f8-auth goa_design.
  • f8-common no need to change dep entry frequently (unless there is incompatible change and f8-common want to adapt to it)
  • f8-auth-client will be having less branch (one per incompatible change) and all these branch are useful.

Open Points:

  • Is goa provide some way of api_versioning?? If so, that can be used to derive branch name for sol_1.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions