Skip to content

Commit c836484

Browse files
committed
typo in chnages fixed
1 parent e0aa8c6 commit c836484

File tree

2 files changed

+116
-1
lines changed

2 files changed

+116
-1
lines changed

CHANGES.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
## 5.0.0 (2025-10-22)
3232

33-
- **Breaking**: support for Python 3.8 and 3.9. Minimum required version is now Python 3.10.
33+
- **Breaking**: Drop support for Python 3.8 and 3.9. Minimum required version is now Python 3.10.
3434
[jensens]
3535
- **Breaking**: Modernize type hints to use Python 3.10+ syntax (PEP 604: `X | Y` instead of `Union[X, Y]`)
3636
- Use built-in generic types (`list`, `dict`, `tuple`) instead of `typing.List`, `typing.Dict`, `typing.Tuple`

CLAUDE.md

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -685,6 +685,121 @@ gh pr checks <PR_NUMBER>
685685
- Always lint before pushing (see Pre-Push Checklist above)
686686
- Always update CHANGES.md for user-facing changes
687687

688+
### Commit Message Format
689+
690+
**IMPORTANT**: Do NOT include Claude Code attribution in commit messages. Commit messages should be written as if by a human developer.
691+
692+
**Bad** (don't do this):
693+
```
694+
Fix #70: Implement HTTP caching
695+
696+
🤖 Generated with Claude Code
697+
Co-Authored-By: Claude <noreply@anthropic.com>
698+
```
699+
700+
**Good** (correct format):
701+
```
702+
Fix #70: Implement HTTP caching for offline mode
703+
704+
Previously, offline mode only skipped VCS operations but still
705+
fetched HTTP-referenced requirements/constraints files.
706+
707+
Changes:
708+
- Add HTTP content caching to .mxdev_cache/ directory
709+
- Online mode: fetch from HTTP and cache for future use
710+
- Offline mode: read from cache, error if not cached
711+
712+
All 190 tests pass, including 5 new HTTP caching tests.
713+
```
714+
715+
## GitHub Dependabot Management
716+
717+
### Test Fixtures and False Positive Alerts
718+
719+
Test fixture files in `tests/data/requirements/` contain pinned package versions that can trigger Dependabot security alerts, even though they're not real dependencies.
720+
721+
**Current Setup (Auto-Triage Rule):**
722+
723+
A Dependabot auto-triage rule is configured via GitHub UI to automatically dismiss alerts from test fixtures:
724+
725+
- **Rule name**: "Dismiss test fixture alerts"
726+
- **Manifest filter**: Comma-separated list of test fixture files:
727+
```
728+
tests/data/requirements/constraints.txt,
729+
tests/data/requirements/basic_requirements.txt,
730+
tests/data/requirements/nested_requirements.txt,
731+
tests/data/requirements/other_requirements.txt,
732+
tests/data/requirements/requirements_with_constraints.txt
733+
```
734+
- **Action**: Dismiss indefinitely
735+
- **Location**: GitHub Settings → Code security → Dependabot rules
736+
737+
**How It Works:**
738+
739+
Three separate GitHub systems handle dependency management:
740+
741+
1. **GitHub Linguist** (`linguist-vendored` in `.gitattributes`)
742+
- Only affects language statistics
743+
- Does NOT affect dependency graph or Dependabot
744+
745+
2. **Dependency Graph** (vendored directory detection)
746+
- Uses hardcoded regex patterns to identify vendored directories:
747+
- `(3rd|[Tt]hird)[-_]?[Pp]arty/`
748+
- `(^|/)vendors?/`
749+
- `(^|/)[Ee]xtern(als?)?/`
750+
- `tests/data/` does NOT match these patterns
751+
- Files in vendored directories are excluded from dependency graph
752+
753+
3. **Dependabot Auto-Triage Rules**
754+
- **This is the ONLY way** to suppress security alerts for specific directories
755+
- Can target by: manifest path, severity, package name, scope, ecosystem, CVE, CWE, GHSA, EPSS
756+
- Rules are configured via GitHub UI (not version-controlled)
757+
- Supports comma-separated manifest paths (no wildcards)
758+
759+
**Key Limitations:**
760+
761+
- ❌ Wildcards NOT supported in manifest paths (e.g., `tests/data/**` doesn't work)
762+
- ❌ Must specify exact file paths
763+
- ❌ Configuration is in GitHub UI, not in repository files
764+
- ✅ Can combine multiple paths with commas
765+
766+
**Adding New Test Fixtures:**
767+
768+
If you add a new test fixture file with pinned dependencies (e.g., `tests/data/requirements/new_fixture.txt`):
769+
770+
1. Go to GitHub Settings → Code security → Dependabot rules
771+
2. Edit the "Dismiss test fixture alerts" rule
772+
3. Add the new path to the comma-separated manifest list
773+
4. Save the rule
774+
775+
**Alternative Approaches (Don't Use):**
776+
777+
-`.gitattributes` with `linguist-vendored` → Only affects language stats, not Dependabot
778+
- ❌ Renaming `tests/data/` to `tests/vendor/` → Breaking change, misleading name
779+
-`exclude-paths` in `.github/dependabot.yml` → Only affects version update PRs, NOT security alerts
780+
- ✅ Auto-triage rules → **This is the correct solution for security alerts**
781+
782+
### HTTP Caching for Offline Mode
783+
784+
The `.mxdev_cache/` directory stores HTTP-referenced requirements/constraints files for offline use:
785+
786+
- **Online mode**: Content fetched from HTTP is automatically cached
787+
- **Offline mode** (`-o/--offline`): Content read from cache, errors if not cached
788+
- **Cache key**: SHA256 hash (first 16 hex chars) of the URL
789+
- **Location**: `.mxdev_cache/` (in `.gitignore`)
790+
791+
**Cache Files:**
792+
```
793+
.mxdev_cache/
794+
a1b2c3d4e5f6g7h8 # Cached content (first 16 chars of SHA256)
795+
a1b2c3d4e5f6g7h8.url # Original URL (for debugging)
796+
```
797+
798+
**Implementation Details:**
799+
- Cache functions: `_get_cache_key()`, `_cache_http_content()`, `_read_from_cache()`
800+
- See `src/mxdev/processing.py` for implementation
801+
- Tests in `tests/test_processing.py` (5 comprehensive caching tests)
802+
688803
## Requirements
689804

690805
- **Python**: 3.10+

0 commit comments

Comments
 (0)