Multi-Repo Project Setup (Public + Private)

## TODO: Multi-Repo Project Restructuring

### Context
Restructure Jenkins test projects to use a public + private repository setup in JetBrains IDEs (RustRover).

### TODO Items

- [ ] **Set up synchronous Git roots in RustRover** — Configure the IDE with multiple Git roots (public repo + private repo) so branch operations apply to both ("Root: All"). Note: Git Worktrees are NOT supported with multiple roots.
- [ ] **Consider monorepo alternative** — Evaluate using a single repo with sparse checkout or repo permissions instead, if multi-root limitations become problematic.
- [ ] **Configure Jenkins Pipeline for multi-repo checkout** — Write a Jenkinsfile using `checkout` steps with `RelativeTargetDirectory` extensions to clone the public and private repos into neighbor subdirectories within the same workspace.
- [ ] **Set up Jenkins credentials for private repo** — Add SSH key or username/password credentials in Jenkins (Manage Jenkins > Credentials) and reference via `credentialsId` in the checkout step.
- [ ] **Adjust dependency paths for local checkouts** — After Jenkins clones both repos side-by-side, configure build tool (Cargo, npm, etc.) to reference the public repo via relative path (e.g., `../public-repo`).

### Key References
- JetBrains "synchronous roots" model for tightly coupled multi-repo projects
- Jenkins Pipeline `checkout` with `RelativeTargetDirectory` extension
- `checkout scm` for the repo containing the Jenkinsfile
- Deprecated: Multiple SCMs plugin (use Pipeline instead)


id: d17b2eb96df442469734bddf59c39dd9
parent_id: 94aa3283ead4477d8449e324a27eb3d0
created_time: 2026-06-08T08:09:15.109Z
updated_time: 2026-06-08T08:09:15.109Z
is_conflict: 0
latitude: 0.00000000
longitude: 0.00000000
altitude: 0.0000
author: 
source_url: 
is_todo: 1
todo_due: 0
todo_completed: 0
source: joplin-desktop
source_application: net.cozic.joplin-desktop
application_data: 
order: 1780906155109
user_created_time: 2026-06-08T08:09:15.109Z
user_updated_time: 2026-06-08T08:09:15.109Z
encryption_cipher_text: 
encryption_applied: 0
markup_language: 1
is_shared: 0
share_id: 
conflict_original_id: 
master_key_id: 
user_data: 
deleted_time: 0
type_: 1