Check if preset is compatible with current spec-kit version. Args: manifest: Preset manifest speckit_version: Current spec-kit version Returns: True if compatible Raises: PresetCompatibilityError: If pack is incompatible
(
self,
manifest: PresetManifest,
speckit_version: str
)
| 555 | self.registry = PresetRegistry(self.presets_dir) |
| 556 | |
| 557 | def check_compatibility( |
| 558 | self, |
| 559 | manifest: PresetManifest, |
| 560 | speckit_version: str |
| 561 | ) -> bool: |
| 562 | """Check if preset is compatible with current spec-kit version. |
| 563 | |
| 564 | Args: |
| 565 | manifest: Preset manifest |
| 566 | speckit_version: Current spec-kit version |
| 567 | |
| 568 | Returns: |
| 569 | True if compatible |
| 570 | |
| 571 | Raises: |
| 572 | PresetCompatibilityError: If pack is incompatible |
| 573 | """ |
| 574 | required = manifest.requires_speckit_version |
| 575 | try: |
| 576 | SpecifierSet(required) # Just to validate |
| 577 | except InvalidSpecifier: |
| 578 | raise PresetCompatibilityError(f"Invalid version specifier: {required}") |
| 579 | |
| 580 | if not version_satisfies(speckit_version, required): |
| 581 | raise PresetCompatibilityError( |
| 582 | f"Preset requires spec-kit {required}, " |
| 583 | f"but {speckit_version} is installed.\n" |
| 584 | f"Upgrade spec-kit with: {REINSTALL_COMMAND}" |
| 585 | ) |
| 586 | |
| 587 | return True |
| 588 | |
| 589 | def _register_commands( |
| 590 | self, |