Skip to content

[INFRA] Establish unified project-wide standards across all AzureLocal repositories #14

@kristopherjturner

Description

@kristopherjturner

Problem

We currently have three separate places defining standards, with overlap, gaps, and conflicts:

Location What It Covers Gap
azurelocal.github.io/standards/ (Docusaurus site) Documentation, scripting, provisioning, infrastructure, variable mgmt, solutions, naming conventions (v3.1) Written for TierPoint ProdTech context — needs adaptation for the AzureLocal org
project_management/repo-standard.md Repo structure checklist: required files, labels, naming, release-please, workflows Good scaffold but no scripting, variable, or IaC depth
azurelocal-sofs-fslogix/docs/standards/ Scripts, docs, variables, solutions, examples Repo-specific — duplicates and diverges from the site standards

Specific Conflicts Discovered

  • Naming: repo-standard.md says Verb-Noun.ps1 for scripts; the SOFS standards add Ansible/CLI conventions not in repo-standard; the Docusaurus site has the most comprehensive naming doc (v3.1) covering files, directories, variables, VMware, networking, git — but it's not referenced by any other repo
  • Documentation: repo-standard.md says "MkDocs Material with golden config"; the Docusaurus site defines full documentation standards with frontmatter, badge library, admonitions, MDX reference — none of this is shared to MkDocs repos
  • Fictional company: SOFS repo and Docusaurus site both use "Infinite Improbability Corp (IIC)" but repo-standard.md doesn't mention it — some repos may still use contoso
  • No enforcement mechanism: Standards exist in docs but nothing validates compliance across repos

Proposed Solution

1. Create a Single Standards Source of Truth

Use the Docusaurus site's standards/ section (already the most mature) as the authoritative org-wide reference. All repos link to it.

2. Adopt a Tiered Model

  • Org-level standards (apply to ALL repos): naming conventions, required files, labels, commit messages, branch names, fictional company policy, documentation structure, variable naming rules
  • Repo-level standards (solution-specific): solution-specific variable sections, tool-specific conventions

3. Consolidate from Three Sources

Use the Docusaurus site's standards/ as the base since it's the most comprehensive:

  • Merge repo-standard.md's repo checklist into the org standards
  • Merge SOFS repo's standards into the org standards (remove duplication from SOFS repo, replace with links)

4. Add Enforcement

  • CI workflow that validates repo structure against the standard (required files, labels)
  • Linting for variable naming (snake_case, max 50 chars)
  • PR template checklist referencing the standards

5. Each Repo Points to Central Standards

Via a standards/ symlink, README reference, or CONTRIBUTING.md link.


Standards Categories to Unify

Category Best Source Available Key Decisions
Repo Structure repo-standard.md Already good — add variable/config directory standard
Naming Conventions Docusaurus naming-conventions.mdx (v3.1) Most comprehensive — adopt as-is, adapt branding
Documentation Docusaurus documentation-standards.mdx Adapt for both Docusaurus and MkDocs repos
Scripting Docusaurus scripting-standards.mdx + SOFS scripts.md Merge — Docusaurus has more depth, SOFS has Ansible/CLI
Variables Docusaurus variable-management/ suite See companion issue on variable management
Solutions/IaC Docusaurus solution-development-standard.mdx + SOFS solutions.md Merge — multi-tool parity from Docusaurus, simplified patterns from SOFS
Examples SOFS examples.md Good template — adopt org-wide
Fictional Company Both already use IIC Formalize as mandatory org-wide policy

Repos in Scope

  • azurelocal.github.io (community portal / central docs)
  • azurelocal-toolkit (platform toolkit)
  • azurelocal-sofs-fslogix (SOFS + FSLogix solution)
  • aurelocal-avd (Azure Virtual Desktop solution)
  • azurelocal-loadtools (load testing tools)
  • azurelocal-vm-conversion-toolkit (VM conversion)

Acceptance Criteria

  • Single authoritative standards location identified and documented
  • All standard categories listed above have a unified document
  • Every repo's README or CONTRIBUTING.md links to the central standards
  • SOFS repo's docs/standards/ either removed or replaced with links to central
  • CI check validates repo structure (required files from repo-standard.md checklist)
  • PR template includes standards compliance checklist
  • IIC fictional company policy documented and enforced org-wide

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions