You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+59-1Lines changed: 59 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,4 +27,62 @@ For detailed technical documentation and implementation guides, please refer to
27
27
-**[AWS Examples](./examples/AWS/)** - Complete examples for AWS platform including backup, restore, and configuration files
28
28
-**[BareMetal Examples](./examples/BareMetal/)** - Examples for bare metal deployments
29
29
-**[KubeVirt Examples](./examples/kubevirt/)** - Examples for KubeVirt platform
30
-
-**[OpenStack Examples](./examples/Openstack/)** - Examples for OpenStack platform
30
+
-**[OpenStack Examples](./examples/Openstack/)** - Examples for OpenStack platform
31
+
32
+
## Development
33
+
34
+
### Dependency Management
35
+
36
+
This project includes automated dependency validation to ensure compatibility with upstream dependencies. The validation is performed through integration tests located in `tests/integration/dependencies/`.
37
+
38
+
#### Dependency Validation Test
39
+
40
+
The dependency validation test (`dependencies_test.go`) automatically checks that watched dependencies are up-to-date with their respective upstream main branches. This helps prevent:
41
+
- Schema-related compatibility issues
42
+
- API version mismatches
43
+
- Runtime errors due to outdated dependencies
44
+
45
+
Currently watched dependencies:
46
+
-`github.com/openshift/hypershift/api` - Core HyperShift API definitions
47
+
48
+
#### Updating Dependencies
49
+
50
+
If the dependency validation test fails, you can update all watched dependencies automatically using:
51
+
52
+
```bash
53
+
make update-deps
54
+
```
55
+
56
+
This command will:
57
+
1. Parse the watched dependencies from the test file
58
+
2. Update each dependency to the latest commit from the main branch
59
+
3. Run `go mod tidy` and `go mod vendor` to clean up the dependency tree
60
+
4. Provide detailed output about which dependencies were updated
61
+
62
+
#### Manual Dependency Updates
63
+
64
+
For manual dependency updates, you can also run:
65
+
66
+
```bash
67
+
# Update a specific dependency
68
+
go get github.com/openshift/hypershift/api@main
69
+
70
+
# Clean up and vendor dependencies
71
+
go mod tidy && go mod vendor
72
+
```
73
+
74
+
#### Adding New Watched Dependencies
75
+
76
+
To add a new dependency to the validation process:
77
+
78
+
1. Add the dependency to the `watchedDependencies` map in `tests/integration/dependencies/dependencies_test.go`
79
+
2. The format is: `"module-path": "upstream-repo-url"`
80
+
3. The update script will automatically discover and update the new dependency
0 commit comments