[CHORE] Add Overture issue template and field sync workflow - #474
Conversation
Adds .github/ISSUE_TEMPLATE/overture.yaml (Type, Scope, Skillset, Description), config.yml disabling blank issues, and the sync-issue-type-and-scope workflow that populates the org-level fields from the form answers. Closes #473 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Signed-off-by: ericgodwin <eric@overturemaps.org>
Super-linter summary
All files and directories linted successfully For more information, see the GitHub Actions workflow run Powered by Super-linter |
🗺️ OMF Docs previews are live!
Auto-gen schema site is now available. This is an early preview of a future workflow where we will automatically generate and publish reference docs for the Overture Maps Format schema. The auto-gen schema site may contain incomplete or inaccurate information as we are still refining the generation process, so please compare against the repo schema site and refer to the official Overture documentation for authoritative information. Note ♻️ This preview updates automatically with each push to this PR. |
Skillset is often not known at issue-open time; leave it to triage rather than blocking submission. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Signed-off-by: ericgodwin <eric@overturemaps.org>
docs/schema/reference/ is codegen output synced from OvertureMaps/schema. It is already excluded from markdownlint via .markdownlintignore, but had no textlint equivalent, so 9 terminology errors failed the Super-Linter NATURAL_LANGUAGE check on every branch. Fixing the text in place would regress on the next codegen sync, and several findings are false positives against generated content: the 'Id' heading in system/ref/id.md is a schema type name matching its sibling pages, and 'websites' in places/place.md refers to the schema field of that name. Add .textlintignore mirroring .markdownlintignore. textlint auto-discovers it from the working directory, so no change to lint.yml is needed. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Signed-off-by: ericgodwin <eric@overturemaps.org>
dont want to ignore all textlint issues
Replaces the blanket .textlintignore added earlier with actual fixes. Fixed in place (8 of 9): - 'Key/value pairs' -> 'Key-value pairs' (5 files) - 'a snake case identifier' -> 'a `snake_case` identifier' (2 occurrences); backticks are correct here since it names an identifier, and the terminology rule skips inline code - 'The websites of the place.' -> 'The web addresses of the place.' The remaining error is the '# Id' heading in system/ref/id.md. Id is the literal name of the schema NewType, and the reference sidebar is autogenerated with no frontmatter, so Docusaurus derives the page title from that heading -- it cannot be reworded or backticked without changing the rendered navigation. Excluded the single 'ID' term instead; every other terminology term stays enforced repo-wide. These files are generated from OvertureMaps/schema, so the wording fixes need to be mirrored upstream (_common.py, string.py, place.yaml/place.py) or they will regress on the next codegen sync. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Signed-off-by: ericgodwin <eric@overturemaps.org>
There was a problem hiding this comment.
Pull request overview
Adds GitHub issue intake infrastructure for this repo (standard Overture issue form + field-sync workflow) so new issues are consistently categorized and added to the org project, and includes a small set of unrelated schema-doc/textlint wording adjustments.
Changes:
- Add a single Overture issue form and disable blank issues (
.github/ISSUE_TEMPLATE/*). - Add an
issues: openedworkflow to sync issue form answers into org-level fields (.github/workflows/sync-issue-type-and-scope.yml). - Update several schema reference docs and adjust textlint terminology exclusions.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| docs/schema/reference/system/snake_case_string.md | Doc wording tweak to format “snake_case” as code. |
| docs/schema/reference/places/place.md | Doc wording tweak for the websites field description. |
| docs/schema/reference/base/water.md | Doc wording tweak (“Key/value” → “Key-value”) in source_tags description. |
| docs/schema/reference/base/types/source_tags.md | Doc wording tweak (“Key/value” → “Key-value”) in SourceTags description. |
| docs/schema/reference/base/land.md | Doc wording tweak (“Key/value” → “Key-value”) in source_tags description. |
| docs/schema/reference/base/land_use.md | Doc wording tweak (“Key/value” → “Key-value”) in source_tags description. |
| docs/schema/reference/base/infrastructure.md | Doc wording tweak (“Key/value” → “Key-value”) in source_tags description. |
| .github/workflows/sync-issue-type-and-scope.yml | New workflow to sync issue form fields on issue creation. |
| .github/linters/.textlintrc.json | Adjust textlint terminology rule exclusions. |
| .github/ISSUE_TEMPLATE/overture.yaml | New standard Overture issue form targeting project OvertureMaps/84. |
| .github/ISSUE_TEMPLATE/config.yml | Disable blank issues so issues must use the form. |
Suppressed comments (1)
.github/workflows/sync-issue-type-and-scope.yml:22
- Step name says it syncs only Type and Scope, but this workflow also syncs Skillset. Updating the step label will make workflow logs clearer.
- name: Sync Type and Scope from form answers
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| @@ -0,0 +1,25 @@ | |||
| --- | |||
| name: Sync issue Type and Scope | |||
| - type: dropdown | ||
| id: skillset | ||
| attributes: | ||
| label: Skillset | ||
| description: Primary skill needed to complete this task. Used to populate the organization-level `Skillset` field during triage. | ||
| options: | ||
| - data analysis | ||
| - data science | ||
| - dev ops | ||
| - engineering |
| "rules": { | ||
| "terminology": { | ||
| "exclude": ["to-?do(s)?(?=[ ,.])"] | ||
| "exclude": ["to-?do(s)?(?=[ ,.])", "ID"] |
Closes #473
Summary
OvertureMaps/docshad no.github/ISSUE_TEMPLATE/directory — every issue was filed blank. This adds the standard Overture issue form plus the org field sync workflow, matching tf-data-platform (OvertureMaps/tf-data-platform#4623, OvertureMaps/tf-data-platform#4728).Changes
.github/ISSUE_TEMPLATE/overture.yaml— the single Overture template. Adds new issues to theOvertureproject (OvertureMaps/84) and prompts for:Type:Task,Bug,Agenda(noFeature)Scope:Addresses,Base,Buildings,Divisions,Places,Transportation,Multi-theme or PlatformSkillset:data analysis,data science,dev ops,engineeringDescriptiontextareaAll four fields are required, and no dropdown has a
default:— nothing is pre-selected. The template does not prepend a bracketed type to the issue title..github/ISSUE_TEMPLATE/config.yml—blank_issues_enabled: false..github/workflows/sync-issue-type-and-scope.yml— runsOvertureMaps/workflows/.github/actions/sync-issue-fields@mainonissues: openedto copy the form answers into the org-level fields.No templates were removed — there were none to remove.
Design pivots
overture.yamlandconfig.ymlare byte-identical to tf-data-platform. The workflow needed small adjustments to pass this repo's stricter lint bar (uvx zizmor --persona=pedanticreported four findings against the tf-data-platform copy):---document marker, matching the other workflows in this repopermissions: {}(fixesexcessive-permissions)name: Sync Fieldsto the job (fixesanonymous-definition)issues: write(fixesundocumented-permissions)The
# zizmor: ignore[unpinned-uses]on the@mainaction reference is carried over from tf-data-platform — the shared action is intentionally tracked atmain.Testing
uvx zizmor --persona=pedantic .github/workflows/sync-issue-type-and-scope.yml→No findings to report. Good job! (1 ignored)Post-merge verification (per the issue's test plan): confirm the template renders in the "New issue" chooser, that required-field validation blocks submission with an unselected dropdown, that the blank-issue option is gone, and that a test issue lands in the
Overtureproject withType/Scope/Skillsetpopulated by the sync workflow.Operational impact
New issues in this repo must go through the form. Existing issues are unaffected.