--- name: update-snow-release description: >- Add or drop ServiceNow release support in servicenow.itsm (integration CI matrix, README compatibility table, changelog fragment). Use when the user asks to support a new SNOW release, drop an EOL release, update the test matrix, or mentions release codenames (e.g. Australia, Xanadu, Zurich). --- # Update ServiceNow release support This collection does **not** branch module code on SNOW release names. Support is expressed through CI, README, and changelogs. See also `AGENTS.md` → Integration CI. ## Scope **In scope:** `.github/workflows/integration_source.yml`, `README.md` compatibility table, `changelogs/fragments/`, maintainer notes in `AGENTS.md` if conventions change. **Out of scope (unless integration tests fail):** `plugins/`, `tests/`, module doc URLs with old bundle names (`bundle/tokyo-...`), hand-editing `CHANGELOG.rst` or `changelogs/changelog.yaml` (generated at release). ## Decision: upgrade in place vs new PDI | Scenario | Workflow change | GitHub secrets | |----------|-----------------|----------------| | **Upgrade existing newest PDI** (usual) | Change `servicenow-version` label only; keep `SN_*_` | **Do not** create or rename secrets — instances upgrade in place | | **Add a new PDI** to the matrix | Add matrix entry + full `include` block | Create eight secrets once in the `protected-snow` environment: `SN_HOST_`, `SN_USERNAME_`, `SN_PASSWORD_`, `SN_CLIENT_ID_`, `SN_CLIENT_SECRET_`, `SN_API_KEY_`, `SN_CLIENT_CERTIFICATE_`, `SN_CLIENT_KEY_` | Instance ID = numeric suffix from the PDI hostname (e.g. `dev7056` → `7056`). ## Workflow checklist Copy and track progress: ``` - [ ] Confirm new release codename and which PDI instance is upgraded - [ ] Update integration_source.yml matrix - [ ] Update README.md compatibility table - [ ] Add changelogs/fragments/-.yaml - [ ] Remind maintainer: GitHub secrets / instance upgrade (if not done) - [ ] Open PR using .github/pull_request_template.md ``` ### 1. Integration CI — `.github/workflows/integration_source.yml` Only file with release-specific configuration. Matrix keeps **three** SNOW versions (newest + two older). **Upgrade in place (replace oldest / dropped release on newest instance):** ```yaml servicenow-version: - "" # was - "yokohama" - "zurich" include: - servicenow-version: "" sn_host_secret: SN_HOST_ sn_username_secret: SN_USERNAME_ # ... same pattern for all eight SN_*_ secrets ``` **Do not** name secrets by release codename (e.g. `SN_HOST_YOKOHAMA`) — always use the PDI instance ID suffix. Leave workflow comments above `servicenow-version` intact (they document the instance-ID convention). **Current matrix → instance mapping** (update this table when the matrix changes): | `servicenow-version` | PDI instance | Secret suffix | | -------------------- | ------------ | ------------- | | `australia` | `dev7056` | `_7056` | | `yokohama` | `dev7054` | `_7054` | | `zurich` | `dev7055` | `_7055` | ### 2. README — compatibility table In `README.md` (Supported ServiceNow versions): 1. Add new release at the top: `| | + | TBA |` 2. Retire dropped release: set EOL quarter and bound collection range (e.g. `2.7.0 - 2.14.0 | Q2 2026`), following Washington/Vancouver/Xanadu rows. 3. Next collection version = bump after current `galaxy.yml` `version` (e.g. `2.14.0` → document `2.15.0+`). ### 3. Changelog fragment — required Create `changelogs/fragments/.yaml`: ```yaml --- minor_changes: - add support for SNOW release - tests - Drop testing of , as it is no longer supported by the collection ``` Adjust wording if only adding (no drop) or only dropping. Per `AGENTS.md`, behavior/support changes need a fragment. ### 4. Discover other references ```bash rg -i '|' --glob '!CHANGELOG*' --glob '!changelogs/changelog.yaml' ``` Expect hits only in workflow, README, changelogs, and historical docs — not in `plugins/` or `tests/`. ### 5. Pull request Use `.github/pull_request_template.md`: - **ISSUE TYPE:** Feature Pull Request (release support) - **COMPONENT NAME:** `integration CI / collection compatibility` - **ADDITIONAL INFORMATION:** List maintainer GitHub secret actions and which matrix leg uses which instance ID Prefer `ci:` commit prefix. Example: `ci: add Australia release support and drop Xanadu from test matrix` Draft PR against `ansible-collections/servicenow.itsm` `main` from the contributor fork. The user should be able to confirm the new version is valid via the CI running in their PR. ## Reference: Australia / Xanadu (2026) | Item | Value | |------|-------| | Added | `australia` on instance `7056` (`SN_*_7056`) | | Dropped from CI | `xanadu` (same instance, upgraded in place) | | README | Australia `2.15.0+`; Xanadu `2.7.0 - 2.14.0`, EOL Q2 2026 | | Secret naming | All matrix legs use instance ID suffixes (`SN_*_7054`, `SN_*_7055`, `SN_*_7056`), not release codenames | Prior art: upstream PR adding Zurich (dropped Washington from matrix); commit adding Xanadu to matrix; migration from `SN_*_YOKOHAMA` / `SN_*_ZURICH` to instance IDs.