Skip to content

Commit c662826

Browse files
committed
Add documentation for smart-threading configuration option
- README.md: Document smart-threading in Behavior Settings table - README.md: Add Smart Threading subsection with explanation - CLAUDE.md: Add mandatory documentation check to Pre-Push Checklist
1 parent a80df34 commit c662826

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

CLAUDE.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -599,13 +599,22 @@ Quick summary:
599599
- Create unreleased section if it doesn't exist
600600
- Include issue number when applicable
601601

602-
3. **Run relevant tests locally**
602+
3. **Always check and update documentation**
603+
- **README.md**: Update configuration tables, usage examples, or feature descriptions
604+
- **EXTENDING.md**: Update if hooks API changed
605+
- **RELEASE.md**: Update if release process changed
606+
- Check if new configuration options need documentation
607+
- Check if new features need usage examples
608+
- Update any affected sections (don't just append)
609+
- **MANDATORY**: After any code change that adds/modifies features or configuration, verify documentation is updated
610+
611+
4. **Run relevant tests locally**
603612
```bash
604613
source .venv/bin/activate
605614
pytest tests/test_*.py -v
606615
```
607616

608-
4. **Check CI status before marking PR ready**
617+
5. **Check CI status before marking PR ready**
609618
```bash
610619
gh pr checks <PR_NUMBER>
611620
```

README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,23 @@ The **main section** must be called `[settings]`, even if kept empty.
8484
|--------|-------------|---------|
8585
| `default-target` | Target directory for VCS checkouts | `./sources` |
8686
| `threads` | Number of parallel threads for fetching sources | `4` |
87+
| `smart-threading` | Process HTTPS packages serially to avoid overlapping credential prompts (see below) | `True` |
8788
| `offline` | Skip all VCS fetch operations (handy for offline work) | `False` |
8889
| `default-install-mode` | Default `install-mode` for packages: `direct` or `skip` | `direct` |
8990
| `default-update` | Default update behavior: `yes` or `no` | `yes` |
9091
| `default-use` | Default use behavior (when false, sources not checked out) | `True` |
9192

93+
##### Smart Threading
94+
95+
When `smart-threading` is enabled (default), mxdev uses a two-phase approach to prevent credential prompts from overlapping:
96+
97+
1. **Phase 1**: HTTPS packages are processed serially (one at a time) to ensure clean, visible credential prompts
98+
2. **Phase 2**: Remaining packages (SSH, local) are processed in parallel for speed
99+
100+
This solves the problem where parallel git operations would cause multiple credential prompts to overlap, making it confusing which package needs credentials.
101+
102+
**When to disable**: Set `smart-threading = false` if you have git credential helpers configured (e.g., credential cache, credential store) and never see prompts.
103+
92104
#### Package Overrides
93105

94106
##### `version-overrides`

0 commit comments

Comments
 (0)