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

auto-generate CML example repos #100

Closed
16 tasks
casperdcl opened this issue Dec 30, 2021 · 15 comments
Closed
16 tasks

auto-generate CML example repos #100

casperdcl opened this issue Dec 30, 2021 · 15 comments
Assignees
Labels
A: example-cml CML examples enhancement New feature or request priority-p1 Immediate pool of tickets to take and work as part of the next sprint

Comments

@casperdcl
Copy link
Contributor

casperdcl commented Dec 30, 2021

Example repos are painful to update everywhere (e.g. iterative/cml.dev#178 touches all example repos). Should auto-generate them from one source similar to how https://github.com/iterative/example-repos-dev works.

@casperdcl
Copy link
Contributor Author

perhaps best to do this in the existing https://github.com/iterative/example-repos-dev? Could transfer this issue there /CC @iesahin @jorgeorpinel

@iesahin iesahin transferred this issue from iterative/cml.dev Jan 3, 2022
@iesahin iesahin changed the title auto-generate example repos auto-generate CML example repos Jan 3, 2022
@iesahin
Copy link
Contributor

iesahin commented Jan 3, 2022

Moved and will be tracking here. Do you have any specific requirements for repositories? Would a simple generate.bash script suffice? @casperdcl

@iesahin iesahin self-assigned this Jan 3, 2022
@iesahin
Copy link
Contributor

iesahin commented Jan 7, 2022

I think you prefer to have a single generate script for all these repositories, right? @casperdcl

@casperdcl
Copy link
Contributor Author

Yes exactly. Reordered the list a bit to reflect that most should be based on the current https://github.com/iterative/example_cml

@iesahin
Copy link
Contributor

iesahin commented Jan 11, 2022

Could you select which of the repository branches you'd like to keep? @casperdcl

I'll rename master branches to main.

  • cml_base_case_experiment
  • cml_base_case_master
  • cml_cloud_case_azure
  • cml_cloud_case_elleobrien-patch-1
  • cml_cloud_case_experiment
  • cml_cloud_case_fix-readme-typo-1
  • cml_cloud_case_master
  • cml_cloud_case_release-0.3.1
  • cml_dvc_case_commit-comment-dvc-lock
  • cml_dvc_case_commit-dvc-lock
  • cml_dvc_case_demo-dvc-lock-commit
  • cml_dvc_case_experiment
  • cml_dvc_case_experiment-1
  • cml_dvc_case_further-dvc-repro
  • cml_dvc_case_master
  • cml_dvc_case_mfa
  • cml_dvc_case_test/gdrive
  • cml-runner-base-case-dependabot/pip/pillow-8.3.2
  • cml-runner-base-case-expeiment
  • cml-runner-base-case-main
  • cml_tensorboard_case_experiment
  • cml_tensorboard_case_master
  • example_cml_gitlab_experiment
  • example_cml_gitlab_master
  • example_cml_master

@casperdcl
Copy link
Contributor Author

@iesahin

  1. rename master to main using the GH interface so people get redirected appropriately
  2. we need to keep all branches as they are (i.e. keep the associated PRs open as examples of what PRs look like)
  3. ideally only auto-update one (i.e. the latest) main commit from one unified codebase

I'm open to other suggestions for (3). Basically requirement (2) is quite different from the DVC example repos and I don't see a neat way around it.

@iesahin
Copy link
Contributor

iesahin commented Jan 13, 2022

Let me investigate the repositories a bit. AFA I understand you want generate.sh to clone one (private?) repository generate other repositories from that by applying the changes.

I want to use an approach as simple as possible, you'll keep project files in a repository (iterative/example_cml or some base repository) and have a directory structure similar to this:

   example-cml-generator/
     example-cml/
       main/
       experiment/
       experiment-1/
....
    cml_dvc_case/
       main/
       experiment/
       ....

From these, it will apply cml_dvc_case/main to the base repository and get main branch, then apply experiment to this main branch and get experiment branch, etc.

Please let me know if there are more complex relationships between the repositories.

@casperdcl
Copy link
Contributor Author

casperdcl commented Jan 17, 2022

I was thinking:

  • leave example_cml alone as-is
  • create a repo example-cml-generator which has multiple branches, all of which are ultimately rebased on example_cml
    • these branches get force-pushed to different repos (i.e. git push git@github.com:iterative/cml_dvc_case.git cml_dvc_case/experiment:experiment)

@0x2b3bfa0
Copy link
Member

Note: as per iterative/cml#890 (comment), https://gitlab.com/iterative.ai/cml-base-case was broken in every imaginable way.

@0x2b3bfa0
Copy link
Member

Closing in favor of https://github.com/iterative/cml-examples-dev/issues/6

@casperdcl
Copy link
Contributor Author

@0x2b3bfa0 does this need to be reopened? What's the status?

@0x2b3bfa0
Copy link
Member

@casperdcl, it probably doesnt (?) 🤔🐶

@0x2b3bfa0
Copy link
Member

What's the status?

The new examples are less broken than the old ones, although that doesn't necessarily1 imply that they work.

Footnotes

  1. Weasel words, read: “they're also broken, but in minor ways by comparison”

@casperdcl
Copy link
Contributor Author

casperdcl commented Oct 28, 2022

I'd say this was closed in favour of/migrated to https://github.com/iterative/cml-examples-dev/issues/9 instead :)

@0x2b3bfa0

This comment was marked as outdated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A: example-cml CML examples enhancement New feature or request priority-p1 Immediate pool of tickets to take and work as part of the next sprint
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants