Refresh FinOps hub upgrade procedure for multi-version FOCUS adoption#2123
Refresh FinOps hub upgrade procedure for multi-version FOCUS adoption#2123flanakin wants to merge 6 commits into
Conversation
…#2121) Update the canonical "add a new FOCUS version" procedure to reflect the six additional steps surfaced during FOCUS 1.4 scoping (Cost Management dependency check, open-data metadata, conformance regen, plugin updates, changelog) and add guidance for handling two FOCUS versions in one cycle (GA + preview). Clarify the hub-schema-to-FOCUS-version relationship and preview convention in data-model.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Refreshes the FinOps hubs documentation playbook for adding new FOCUS versions, with explicit guidance for preview vs GA handling and a clearer explanation of how hub schema versions relate to FOCUS spec versions.
Changes:
- Expanded the “add a new FOCUS version” procedure with dependency checks, open-data metadata, conformance regeneration, plugin reference updates, and changelog guidance.
- Added guidance for handling two FOCUS versions in a single release cycle (GA + preview) and keeping unversioned functions pinned to latest GA.
- Clarified in user docs that hub schema versions mirror the FOCUS version they natively ingest, and documented the preview convention.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| src/templates/finops-hub/docs/README.md | Updates the canonical upgrade procedure and adds multi-version (GA + preview) guidance. |
| docs-mslearn/toolkit/hubs/data-model.md | Clarifies schema-version-to-FOCUS coupling and documents preview behavior for hub schemas. |
Conformance reports are generated only against official Microsoft Cost Management FOCUS releases, not as part of adding a new FOCUS version to FinOps hubs. Removing the step keeps the procedure scoped to the hub-specific workstream. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
🤖 [AI][Claude Code] Additional change beyond Copilot review While addressing the grammar fix on Updated both
Phase 4 ( |
- Reword data-model.md:66 grammar (per Copilot). - Decouple hub preview status from Cost Management export availability. Preview now means the FOCUS spec is still working draft. Cost Management lag is a separate operational concern that does not gate hub GA. - Update README step 0 to match. Co-Authored-By: copilot-pull-request-reviewer <copilot-pull-request-reviewer@users.noreply.github.com> Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
🤖 [AI][Claude Code] PR Update Summary Addressed: 1 review thread + scope expansion
|
There was a problem hiding this comment.
Superseded — see the inline comments in this review for the line-anchored findings.
RolandKrummenacher
left a comment
There was a problem hiding this comment.
Inline comments added below. Docs-only and low-risk — verified all relative links resolve and the open-data naming/up-conversion details are accurate. Recommend fixing the typo and reconciling the GA-vs-preview wording before merge.
| To add a new FOCUS version: | ||
|
|
||
| 0. Confirm dependencies | ||
| 1. Ensure the FOCUS specification has been ratified for the target version. Support for working draft FOCUS versions should not be shipped before official ratification to prevent customer churn sinc FOCUS working drafts may change without notice. |
There was a problem hiding this comment.
Typo: sinc -> since.
|
|
||
| 0. Confirm dependencies | ||
| 1. Ensure the FOCUS specification has been ratified for the target version. Support for working draft FOCUS versions should not be shipped before official ratification to prevent customer churn sinc FOCUS working drafts may change without notice. | ||
| 2. Check whether Microsoft Cost Management has shipped a matching FOCUS export dataset version. The hub depends on a `focuscost_X.Y.json` schema mapping file in [Microsoft.CostManagement/Exports/schemas](../modules/Microsoft.CostManagement/Exports/schemas/) when ingesting from Cost Management. If the export is not yet available, the hub schema can still ship as GA. Note the gap in the changelog so adopters know what additional setup will be required. |
There was a problem hiding this comment.
The PR summary says step 0 should instruct shipping hub support as preview when the Cost Management export is not yet available, but this line says ship as GA (and data-model.md has no preview-convention text). Please reconcile the description with what shipped here. The body also lists "steps 5-8" but only 5-7 landed.
| 3. Update the ADX dashboard to use the new versioned functions | ||
| 4. Update the FOCUS queries in the best practices library to use the new versioned functions | ||
| 5. Update open-data metadata | ||
| 1. Create a `FocusCost_<version>.json` file into [src/open-data/dataset-metadata](../../../open-data/dataset-metadata/) for each Cost Management cost export version. |
There was a problem hiding this comment.
Nit: "file into [folder]" -> "file in [folder]". Same on the next line (5.2).
| | Release | Schema | FOCUS version | | ||
| | ------- | ------ | ------------- | | ||
| | 12+ | `v1_2` | 1.2 | | ||
| | 15+ | `v1_4` | 1.4 | |
There was a problem hiding this comment.
Forward-dated content in a published Learn page: this adds a 15+ -> v1_4 -> 1.4 row (and v1_4/Costs_v1_4 examples on line 55) before 1.4 support has shipped. If docs-mslearn publishes on merge rather than gated to the 1.4 release, this page would publicly state 1.4 is supported ahead of release. Consider holding the v1_4 row/examples for a later phase, or confirm the publish cadence makes this safe.
|
|
||
| Data is transformed to the latest supported FOCUS version during ingestion. For instance, if you ingested FOCUS 1.0 data into the `v1_4` schema, it would be converted to FOCUS 1.4 during ingestion. Older data remains in its originally ingested format. For instance, if you previously ingested FOCUS 1.0 data into the `v1_2` schema, it would remain in the `v1_2` format even after upgrading to a newer schema version. | ||
|
|
||
| The functions in the `Hub` database pull from all tables and transform it into a specific version. For instance, `Costs_v1_0` will convert `v1_4` and `v1_2` data back to the `v1_0` format, ensuring backwards compatibility despite upgrading to newer versions. When you're ready to upgrade, you can selectively upgrade each report or integration to use `Costs_v1_2` or `Costs_v1_4` without breaking others. However, if you want a quick, convenience function that always returns the latest version, you can use the unversioned functions, like `Costs` and `Prices`. Unversioned functions are recommended for ad hoc use while versioned functions are recommended for integration points that require a consistent format after upgrades. |
There was a problem hiding this comment.
Minor: "pull from all tables and transform it" -> "them" (refers to the tables).
Addresses PR #2123 review nits: "sinc" -> "since", "file into" -> "file in" (x2), and "transform it" -> "transform them" for grammatical agreement with "tables". Also refreshes ms.date on the modified docs-mslearn page. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Pushed 463c273 addressing the outstanding review feedback:
Also set On comment 3489845007 (forward-dated v1_4 content): left as-is, not removed. Rationale: this branch merges into Diff is scoped to the exact lines called out — verified via |
🛠️ Description
Refreshes the FinOps hub upgrade procedure (
README.mdstep 0) anddata-model.mdfor multi-version FOCUS adoption, decoupling hub preview status from Cost Management export availability.IngestionSetup_v1_4.kql) and phase 5 (HubSetup_v1_4.kql) already correctly markv1_4as preview because FOCUS 1.4 is a working draft, not because of any Cost Management gap — no downstream PRs need adjusting for this change.sinc→since; "file into [folder]" → "file in [folder]", two occurrences; "pull from all tables and transform it" → "transform them" for subject-verb agreement), reconciled the PR body/step language with what shipped (GA-based dependency checks, step count corrected to steps 5-7, added a scope note that per-version column-change tables land in a separate docs PR, W6).v1_4content intentionally left indocs-mslearn/toolkit/hubs/data-model.md: this branch merges into theflanakin/focus14integration branch, not directly intodev, so the content only reaches Learn publishing when the integration branch itself merges as part of the 1.4 release.Verification
git diffscoped to the exact lines called out in review; re-grepped forsincandfile into— 0 hits remaining in both cases.ms.dateset to 07/15/2026 indocs-mslearn/toolkit/hubs/data-model.mdper repo convention for modified Learn pages.📋 Checklist
🔬 How did you test this change?
📦 Deploy to test?
🙋♀️ Do any of the following that apply?