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

Migrate Anemoi Training, Model, and Graphs to a Mono-Repo structure here. #1

Closed
24 tasks done
JesperDramsch opened this issue Dec 16, 2024 · 1 comment
Closed
24 tasks done
Assignees
Labels
enhancement New feature or request

Comments

@JesperDramsch
Copy link
Member

JesperDramsch commented Dec 16, 2024

Is your feature request related to a problem? Please describe.

In a collaboration between @MeraX, @einrone, @frazane we were working to migrate the existing repository with tight coupling into a more developer friendly structure.

Describe the solution you'd like

Use Git subtrees to build a standalone migration of the individual repositories in this repository.

The beauty of subtrees is that we can use them to keep the repos in sync while we migrate and development is on-going. They maintain the history. But they do not add more metadata to the repo. After the initial transition phase, this repo can then function as a standalone repo.

Describe alternatives you've considered

Using merges and squashed histories, but it is important to maintain the history and authorship of this work.

Additional context

@MeraX has documented all the work and scripts from our meetings in https://github.com/MeraX/join_single_repos
This also provides utilities to migrate existing branches for individual pull requests.

Organisations

@DeutscherWetterdienst, @metno, @MeteoSwiss, @ecmwf

Current Work Plan Outline:

Migrate Code

  • Migrate Training Code
  • Migrate Models Code
  • Migrate Graphs Code
  • Remove .github folder in Training Code
  • Remove .github folder in Models Code
  • Remove .github folder in Graphs Code

Archival and Notice

  • Create release on anemoi-training
  • Create release on anemoi-models
  • Create release on anemoi-graphs
  • Add notice to Anemoi Training Readme linking here
  • Add notice to Anemoi Models Readme linking here
  • Add notice to Anemoi Graphs Readme linking here
  • Archive anemoi-training
  • Archive anemoi-models
  • Archive anemoi-graphs
  • Communicate across Anemoi users and MLPP and ATS

Issues

  • Transfer all Issues of Anemoi Training
  • Transfer all Issues of Anemoi Models
  • Transfer all Issues of Anemoi Graphs

ReadTheDocs

  • Redirect RTD here for Training
  • Redirect RTD here for Models
  • Redirect RTD here for Graphs

Pull Requests

  • Provide scripts to transfer branches to developers
  • Add better documentation for the transfer process
    Developers will re-open pull requests individually on this new repo.

.github Folder

We will hold off from creating the .github folder with all necessary files for Automation, CIs, Releases, owners and release on the initial release to sped up the migration. These will be created in individual PRs afterwards.

@JesperDramsch JesperDramsch added the enhancement New feature or request label Dec 16, 2024
@JesperDramsch JesperDramsch pinned this issue Dec 16, 2024
JesperDramsch pushed a commit that referenced this issue Dec 16, 2024
feat: Initial implementation of anemoi-models

Co-authored-by: Jesper Dramsch <[email protected]>

Co-authored-by: Simon Lang <[email protected]>

Co-authored-by: Matthew Chantry <[email protected]>

Co-authored-by: Mihai Alexe <[email protected]>

Co-authored-by: Florian Pinault <[email protected]>

Co-authored-by: Baudouin Raoult <[email protected]>

Co-authored-by: Steffen Tietsche <[email protected]>

Co-authored-by: Sara Hahner <[email protected]>

Co-authored-by: Mariana Clare <[email protected]>
@JesperDramsch
Copy link
Member Author

Monorepo Migration Notes

This repository was created by merging several independent repositories. The following additional changes were made:

  1. Repository Structure

    • Removed duplicate .github folders from sub-projects
    • Reorganized Git tags to follow new monorepo structure (tags: 1.2.3 → component/1.2.3)
  2. Build System

    • Restructured pyproject.toml for monorepo compatibility
    • Updated version management to work with subfolder projects
  3. Development Setup

    • Moved .pre-commit-config.yaml to root
    • Configured isort to handle multi-project imports correctly
    • Set src_paths and known_first_party in .isort.cfg for proper import sorting
  4. Documentation

    • Adjusted readthedocs configuration for subfolder projects
    • Updated sphinx config to handle new project structure
    • Modified doc paths to reflect new monorepo layout

@mchantry mchantry unpinned this issue Jan 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants