Skip to content

feat(extension): subdirectory and version branch support#193

Merged
indaco merged 13 commits intomainfrom
feat/extension-subdirectory-and-version-branch-support
Jan 27, 2026
Merged

feat(extension): subdirectory and version branch support#193
indaco merged 13 commits intomainfrom
feat/extension-subdirectory-and-version-branch-support

Conversation

@indaco
Copy link
Copy Markdown
Owner

@indaco indaco commented Jan 27, 2026

Description

This PR implements improvements to the extension installation system, addressing subdirectory support, universal git hosting, version control, and error handling.

  • Install extensions from monorepo subdirectories: github.com/indaco/sley/contrib/extensions/docker-tag-sync
  • Enforced strict flag separation (--url for remote, --path for local)
  • Version/Branch Support: Install from specific versions (repo@v1.0.0), branches (repo@develop), or commits (repo@abc123)
  • Intelligent Git Error Parsing: Detects common error types (network, auth, SSL, ref not found, etc.) with actionable suggestions
  • Enhanced Manifest Errors: Custom error types with templates and documentation links
  • File System Error Detection: Better handling of permission and disk space issues
  • Duplicate Extension Handling: Clear messaging with reinstall instructions instead of silent skip
  • Fix YAML formatting: proper indentation for extension lists using IndentSequence(true).
  • Fix path normalization: consistent relative paths in configuration using filepath.Rel(). All extensions now use .sley-extensions/extension-name format regardless of installation method

Related Issue

  • None

Notes for Reviewers

  • None

indaco and others added 13 commits January 27, 2026 13:26
Add support for installing extensions from subdirectories in remote repositories.
This enables installation from monorepo structures like github.com/user/repo/path/to/extension.
Remove URL auto-detection in --path flag to provide clear separation
between local and remote installation workflows.
Detects common error patterns: repository not found, network errors,
authentication failures, SSL issues, ref not found, permissions,
timeouts, and DNS errors. Each error includes user-friendly messages and
specific suggestions for resolution.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add custom error types (ManifestNotFoundError, ManifestParseError,
ManifestValidationError) with helpful context, manifest templates, and
documentation links to guide users when manifest loading fails.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add FilePermissionError and DiskFullError types to
classifyFileCopyError() for better diagnosis of file operation failures
during extension installation.
Change duplicate extension behavior from silent skip to informative
error message.
Fixes two configuration issues and refactors to interface-based DI:-

- YAML indentation: use IndentSequence(true) for proper list formatting
- path normalization: use filepath.Rel for consistent relative paths
- replace function variables with interface-based DI
@indaco indaco added enhancement New feature or request extension labels Jan 27, 2026
@indaco indaco self-assigned this Jan 27, 2026
@indaco indaco marked this pull request as ready for review January 27, 2026 16:04
@indaco indaco merged commit d5cab2e into main Jan 27, 2026
7 checks passed
@indaco indaco deleted the feat/extension-subdirectory-and-version-branch-support branch January 27, 2026 16:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request extension

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant