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
Tip: add a short example `values.yaml` in each policy README to help users test quickly.
160
+
161
+
=== Updating Policy
162
+
163
+
Before changing an existing policy, open a GitHub issue to discuss the proposed change. Use the issue to explain:
164
+
* Motivation and user impact
165
+
* Backwards compatibility implications
166
+
* Required changes to `Policy.yaml`, `values.yaml`, or `updatecli.d`
167
+
* Testing plan (how the change will be validated)
168
+
169
+
When preparing a PR:
170
+
* Bump `Policy.yaml` version for behavioural changes (semantic versioning).
171
+
* Update `CHANGELOG.md` and the policy `README.md` with usage and configuration changes.
172
+
* Add or update `values.yaml` examples if defaults change.
173
+
* Ensure policy validation CI (lint/manifest tests) passes.
174
+
175
+
PR checklist:
176
+
* [ ] Issue opened describing the change (link in PR)
177
+
* [ ] `Policy.yaml` version updated when needed
178
+
* [ ] `CHANGELOG.md` updated
179
+
* [ ] README and example `values.yaml` updated
180
+
* [ ] All CI checks pass (policy validation workflow)
181
+
182
+
Notes:
183
+
* Policies are published automatically by CI when `Policy.yaml.version` is updated.
184
+
* For large or breaking changes, discuss a migration plan in the issue and notify maintainers.
185
+
* For security-related changes, include an explanation and coordinate disclosure with maintainers.
186
+
187
+
=== New Policy
188
+
189
+
A new policy can be added by creating a new folder under the `updatecli/policies` directory.
55
190
The subfolder path will be used as the policy name.
56
191
57
192
For example if we want to create a policy named `autodiscovery/golang`, we need to create a folder named `updatecli/policies/autodiscovery/golang`.
@@ -89,12 +224,13 @@ Any change to the policy code must be reflected by a new version. Policies are a
89
224
90
225
=== Why a monorepo ?
91
226
92
-
A monorepo is a repository that contains multiple projects. In our case, we have a single repository that contains multiple Updatecli policies.
227
+
A monorepo simplifies policy discovery and publishing while we build tooling and CI. We may split later if needed.
93
228
94
-
We are still in a very early stage and we are not sure yet if we will keep this repository as a monorepo or if we will split it into multiple repositories.
229
+
== Thanks to all the contributors ❤️
95
230
96
-
But it is easier to handle a monorepo than multiple repositories while we build the tooling and the process to manage Updatecli policies.
0 commit comments