Skip to content

Refactor into Monorepo for Python & JS SDKsΒ #47

@DarshanKumar89

Description

@DarshanKumar89

Title: πŸ› οΈ Refactor into Monorepo for Python & JS SDKs

Description:

Currently, MultiMind SDK maintains two separate repositories:

  • multimindlab/multimind-sdk (Python)
  • multimindlab/multimind-sdk-js (JavaScript/TypeScript)

I propose refactoring into a single monorepo structure to improve synchronization, reduce duplication, and streamline development:

multimindlab/multimind-sdk/
β”œβ”€ python/              ← existing Python SDK
β”œβ”€ typescript/          ← existing JS/TS SDK
β”œβ”€ shared/              ← shared docs/design utilities
β”œβ”€ .github/workflows/   ← centralized CI for both languages
└─ docs/                ← combined documentation

πŸ”„ Motivation & Benefits

  • Unified versioning: Common releases, consistent changelogs and tagging.
  • Reduced duplication: Shared docs, CI, shared utilities in one repo.
  • Cross-language refactoring: Easier to implement shared features or consistent APIs.
  • Simplified onboarding: One repo for discoverability and navigation.

βš™οΈ Proposed Migration Steps

  1. Set up root structure, move SDK folders in.

  2. Update CI workflows to build/test Python and TS independently.

  3. Modify package definitions:

    • setup.py/pyproject.toml in python/
    • package.json in typescript/
  4. Create shared docs/utilities folder.

  5. Retire old repos (archive or redirect).

  6. Announce deprecation, update references, set README redirects.


βœ… Risks & Considerations

  • Repo size growth; may need to use sparse checkout for language-specific contributors.
  • Complexity in CI management for multiple languages.
  • Access control and dependency isolationβ€”might need path or folder-based permissions.

πŸ“Œ Discussion Points

  • Do we prefer a monorepo with shared CI or keep language-specific workflow?
  • Are there blockers (e.g. toolchain or release cycles) that make separate repos better?
  • Timeline for merge and any feature freeze period before migration?

Metadata

Metadata

Labels

enhancementNew feature or requestquestionFurther information is requested

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions