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

Implement version fallback for starters & framework #3879

Open
merelcht opened this issue May 20, 2024 · 0 comments · May be fixed by #3900
Open

Implement version fallback for starters & framework #3879

merelcht opened this issue May 20, 2024 · 0 comments · May be fixed by #3900
Assignees

Comments

@merelcht
Copy link
Member

merelcht commented May 20, 2024

Description

In our current test setup starters & framework are linked and look to the "latest" version. At release time it leads to a situation where it's looking for the unreleased version and tests fail because of it.

Implement a way to fall back to the latest released version OR specify a specific version.

Context

"There's always cookiecutter" - @lrcouto

Currently kedro-starters points to main kedro branch: https://github.com/kedro-org/kedro-starters/blob/db79aec64c4a0f062321bd8c74ee782750bba527/test_requirements.txt#L5
At the same time on kedro side we point to the main kedro-starters branch and synchronise it with kedro version used:

if "PySpark" in tools and "Kedro Viz" in tools:

def mock_make_cookiecutter_args_and_fetch_template(*args, **kwargs):

As a result, when we need to release both kedro-starters and kedro, we cannot specify a custom kedro-starters version on the kedro side. So we have to make a release with failing tests and only after making sure that tests are passing at the CI.

Possible Implementation

We already have a checkout argument that allows pointing to a specific tag or branch, which is used as an optional argument for the kedro new command. We can add a constant to specify the checkout argument as we do for starters repo:

_STARTERS_REPO = "git+https://github.com/kedro-org/kedro-starters.git"

Then, in case the checkout argument was provided, it will be used instead of constant. For the rest of the cases, including testing, we will use the constant and we only synchronise kedro-starters branch with kedro version when the checkout argument is not provided and the constant is set to None.

In that case to release both kedro-starters and kedro we would need to:

  1. Point to target kedro branch A in kedro-starters
  2. Set up checkout constant in branch A for kedro, pointing to the corresponding branch in kedro-starters
  3. Make sure all tests are passed for both repos
  4. Point back to main branches for both repos
  5. Release both

Possible Alternatives

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In Review
Development

Successfully merging a pull request may close this issue.

3 participants