-
Notifications
You must be signed in to change notification settings - Fork 1
Tasks #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Tasks #1
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR implements Buf‐like dependency management features into SProto by introducing a new configuration (sproto.yaml), enhancing CLI commands (publish, fetch, resolve, compile), updating API endpoints and database schema for dependency relationships, and adding local caching and import path mapping.
- Introduces new flags and options to publish, fetch, and compile commands for handling dependencies and configuration file overrides.
- Integrates a local cache and mapping system for import paths and enhances API routes to expose dependency information.
- Updates documentation and task files to detail the new dependency management, configuration, and migration processes.
Reviewed Changes
Copilot reviewed 38 out of 39 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| internal/cli/publish.go | Added sproto.yaml parsing, new flags for config path, dependency validation, and improved logging for mode selection. |
| internal/cli/fetch.go | Enhanced caching with update support and added dependency fetching with progress reporting. |
| internal/cli/compile.go | Extended functionality to support generation from templates and improved protoc argument construction. |
| internal/cli/client.go | Updated registry client to support new endpoints for module metadata, version, and dependency management. |
| internal/cli/cache.go | Introduced new cache subcommands and flag integration for managing local artifacts. |
| internal/cache/layout.go | Implemented functions for mapping extracted files based on import path normalization. |
| internal/cache/cache.go | Added cache management functions (get, put, extract, invalidate, clean) and directory locking. |
| internal/api/routes.go | Registered new API routes for dependency listing and resolution. |
| internal/api/resolve.go | Introduced the dependency resolution API response structure. |
| internal/api/convert.go | Added helper function to convert module version info into API response types. |
| docs/sproto-yaml-spec.md | Provided a full specification for the new sproto.yaml configuration format. |
| docs/migrating-from-buf.md | Added a migration guide for users transitioning from Buf to SProto. |
| Task/Phase5.md | Outlined testing and documentation tasks for dependency management features. |
| Task/Phase4.md | Documented local cache and directory structure enhancements. |
| Task/Phase3.md | Detailed CLI improvements including dependency resolution and fetch enhancements. |
| Task/Phase2.md | Described the implementation of the dependency resolution system and import mapping. |
| Task/Phase1.md | Covered configuration system and database schema updates to support dependencies. |
| Task/Overview.md | Provides a high-level summary of the dependency management system enhancement. |
| README.md | Updated to highlight new features including dependency management, import path mapping, and local caching. |
Files not reviewed (1)
- go.mod: Language not supported
Comments suppressed due to low confidence (2)
internal/cli/publish.go:113
- Ensure that unit tests comprehensively cover both scenarios: when sproto.yaml is present and when it is absent, verifying that flag overrides and config-based resolution behave as expected.
if configFilePath != "" {
internal/cli/fetch.go:121
- Ensure that unit tests cover both cache hit and update scenarios, verifying that the artifact is correctly retrieved from cache or re-fetched when the update flag is specified.
if !exists || fetchUpdateFlag {
No description provided.