-
-
Notifications
You must be signed in to change notification settings - Fork 135
Open
Description
Summary
Audit of Atmos dependencies found 14 archived (unmaintained) repositories. One migration has been completed, three high-priority items remain.
Status: 1 of 4 high-impact migrations complete ✅
Completed Migrations
✅ golang/mock → go.uber.org/mock v0.6.0
- Updated all imports and mockgen directives
- Regenerated all mock files
- Tests passing, build successful
Remaining High-Priority Migrations
1. pkg/errors → stdlib errors (High Impact)
- Status: ARCHIVED (December 1, 2021)
- Current:
github.com/pkg/errorsv0.9.1 - Target: Go stdlib
errors+fmt.Errorf(Go 1.13+) - Alternative:
github.com/cockroachdb/errors(100% compatible) - Note: Migration strategy already documented in
docs/prd/error-handling-strategy.md - Action: Continue gradual migration per existing strategy
2. mitchellh/mapstructure v1 → v2 (High Impact)
- Status: ARCHIVED
- Current:
github.com/mitchellh/mapstructurev1.5.0 (heavily used) - Target:
github.com/go-viper/mapstructure/v2v2.4.0 (blessed fork) - Note: We already use v2 in
pkg/auth/hooks.go - Action:
- Audit all v1 usages (12+ files)
- Test compatibility with v2
- Gradual migration following
pkg/auth/hooks.gopattern
3. Verify AWS SDK v1 not directly imported (Medium Priority)
- Status: aws-sdk-go v1 is archived/deprecated
- Current: Should be using aws-sdk-go-v2 only
- Action:
- Search for
github.com/aws/aws-sdk-goimports (not v2) - Ensure all AWS code uses v2 SDK
- Search for
Low Priority: Indirect Dependencies (Monitor Only)
These are transitive dependencies that should be replaced by upstream maintainers:
github.com/AlecAivazis/survey(indirect)github.com/Azure/go-autorestv14.2.0+incompatible (indirect)github.com/aws/aws-sdk-gov1.55.7 (indirect)github.com/golang/snappyv0.0.4 (indirect)github.com/google/wirev0.6.0 (indirect)github.com/hexops/gotextdiffv1.0.3 (indirect)github.com/mitchellh/copystructurev1.2.0 (indirect)github.com/mitchellh/hashstructurev2.0.2 (indirect)github.com/mitchellh/reflectwalkv1.0.2 (indirect)github.com/rcrowley/go-metrics(indirect)
Action: Monitor for upstream replacements, no immediate action required.
Already Addressed
✅ mitchellh/go-homedir
- Using vendored fork at
./pkg/config/homedirwith test enhancements - Addressed via
replacedirective in go.mod
Verification Commands
# Check for pkg/errors usage
grep -r "github.com/pkg/errors" --include="*.go" .
# Check for mitchellh/mapstructure v1 usage
grep -r "github.com/mitchellh/mapstructure" --include="*.go" .
# Check for AWS SDK v1 imports
grep -r '"github.com/aws/aws-sdk-go"' --include="*.go" .References
- Mitchell Hashimoto Archive Announcement: https://gist.github.com/mitchellh/90029601268e59a29e64e55bab1c5bdc
- Error Handling Strategy:
docs/prd/error-handling-strategy.md - Atmos homedir fork:
pkg/config/homedir/README.md
Task Breakdown
- Migrate golang/mock → go.uber.org/mock
- Migrate pkg/errors → stdlib
- Migrate mitchellh/mapstructure v1 → v2
- Verify AWS SDK v1 not directly imported
- Monitor indirect dependencies for upstream replacements
Metadata
Metadata
Assignees
Labels
No labels