Skip to content

Bootstrap G-PST data schema workshop repo with templates, tool sheets, lint CI, and contribution guide#1

Merged
mooneyme merged 5 commits intomainfrom
copilot/setup-yaml-schema-template
Feb 19, 2026
Merged

Bootstrap G-PST data schema workshop repo with templates, tool sheets, lint CI, and contribution guide#1
mooneyme merged 5 commits intomainfrom
copilot/setup-yaml-schema-template

Conversation

Copy link
Contributor

Copilot AI commented Feb 19, 2026

  • Explore repository structure
  • Create template_data_schema_sheet.yaml at repository root
  • Create data_schemas/ folder with pre-populated YAML files for all 7 tools
  • Set up YAML linting via GitHub Actions (.github/workflows/lint.yml)
  • Create .yamllint.yaml config
  • Simplify README: intro + schema table with YAML links + brief "How to Contribute"
  • Move detailed fork/branch/PR instructions into issue templates
  • Add fill_out_schema.md issue template for existing tool owners
  • Update new_tool_schema.md issue template for adding brand-new tools
  • Fix broken relative links → absolute GitHub URLs
  • Change issues/new/choose to issues/new?template=new_tool_schema.md so clicking the link pre-populates the issue body with the full new-tool instructions
  • Create individual GitHub issues for each of the 7 tools (requires manual creation after merge — templates only activate on default branch)
Original prompt

I'd like to create a repo to help organize lead tool owners to fill out information sheets (yaml) on the data schema that they are using for their power systems planning modeling. I have a template yaml that I want to create and I want to ask specific tool owners to edit their yaml files (created from the template) to describe their data schema. We will use this in the upcoming G-PST workshop on power system planning interoperability data schema workshop to compare across existing data schemas that are being used by others. I'd like to create a simple readme to point people to how they can create the template, open a PR (either branch or forking and pushing), and we will use the PR process to engage in comments or questions. I'm not sure if the best approach is to create an issue for each of the data schemas we want filled out with specific directions for each tool that would help with the branch/forking and PR process. I also want to set up linting, make yamls for a list of tools (below), set up protection so that people cannot commit to main without a PR.

List of tools:

  1. Sienna data model
  2. GenX data model
  3. Grid Data Model
  4. CommonEnergySystemModel
  5. PyPSA data model
  6. Encoord Data Model
  7. CIM/ENTSO-E

Note, our team might identify other models, so creating an issue that helps copy the template yaml, create a branch (or fork), to allow them to edit, then push back to main through a PR would be good to set up. Also a folder in main to store these once they get accepted.

template_data_schema_sheet.yaml:

# ============================================================================
# Data Schema Sheet
# ============================================================================
# Fill out this sheet to describe your data schema / data model.
# This will be used for cross-project comparison and workshop discussion.
#
# Instructions:
#   - Replace placeholder text (in angle brackets) with your information.
#   - Use ~ (null) for fields that don't apply.
#   - Use lists (- item) for multi-value fields. Please add entries as needed
#   - Keep descriptions concise but specific.
#   - You do NOT need to detail things we can find in your repo (CI setup,
#     library dependencies, serialization formats, etc.). Just point us to
#     the code and we'll review it.
# ============================================================================

# ---------------------------------------------------------------------------
# 1. Identity
# ---------------------------------------------------------------------------
identity:
  schema_name: <e.g., Grid Data Models (GDM)>
  organization: <e.g., NREL, OET, Princeton, G-PST>
  maintainers:
    - name: <Full Name>
      affiliation: <Org Name>
      github: <@handle>
      email: <email>
  repository: <https://github.com/...>
  documentation: <https://...>
  license: <e.g., BSD-3-Clause>
  version: <e.g., v2.1.0 or "pre-release">
  maturity: <Prototype | Active Development | Stable | Production>

  # Point us to the code — we'll review the technical details ourselves
  link_to_schema_definition: <https://github.com/.../src/models/>
  link_to_validation_logic: <https://github.com/.../src/validators/>
  link_to_timeseries_management: <https://github.com/.../src/timeseries/>
  link_to_entity_relation_diagram: <https://... or ~ if not published>

# ---------------------------------------------------------------------------
# 2. What It Is & What It Covers
# ---------------------------------------------------------------------------
summary:
  description: |
    <A paragraph describing what this data schema is, what problem it solves,
    and who the intended users are.>

  modeling_domains_supported: |
    <What modeling domains does this data schema support? e.g., capacity expansion
    (zonal), production cost (nodal), bulk power flow, dynamics, distribution,
    multi-energy/sector coupling, etc.>

  what_does_it_NOT_cover: |
    <Equally important — what is explicitly out of scope?>

  data_captured: |
    <What types of information? e.g., grid topology, device parameters,
    time series, investment costs, operating constraints, etc.>

  conceptual_structure: |
    <Is it component-based, bus-based, graph-based, relational,
    entity-relationship, hierarchical objects, etc.?>

# ---------------------------------------------------------------------------
# 3. Key Design Decisions
# ---------------------------------------------------------------------------
design:
  key_decisions:
    - decision: <What did you decide?>
      rationale: <Why?>
    - decision: <...>
      rationale: <...>

  schema_format: |
    <e.g., Pydantic models, Julia structs, JSON Schema, Protocol Buffers, 
    XML, CIM, custom DSL, other?>

  implementation_languages:
    - <e.g., Python>
    - <e.g., Julia>

  database_storage_backend: <e.g., PostgreSQL, file-based, in-memory only, ~>

  interoperability:
    imports_from:
      - <e.g., reads OpenDSS files>
      - <e.g., reads C...

</details>



<!-- START COPILOT CODING AGENT TIPS -->
---

💬 We'd love your input! Share your thoughts on Copilot coding agent in our [2 minute survey](https://gh.io/copilot-coding-agent-survey).

…e template

Co-authored-by: mooneyme <7425288+mooneyme@users.noreply.github.com>
Copilot AI changed the title [WIP] Add template yaml for power systems planning models Bootstrap G-PST data schema workshop repo with templates, tool sheets, lint CI, and contribution guide Feb 19, 2026
Copilot AI requested a review from mooneyme February 19, 2026 18:28
@mooneyme
Copy link
Contributor

Manage the activity of editing the sheets through issues.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Simplify this readme a bit to link people to the issues for their tools with a link to their tool's yaml file, or to create a schema for new tools.

In main readme, have simple text for how to contribute with a PR. Detailed instructions in the issue markdown.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done in 44e1f65. The README is now ~35 lines — just an intro, a schema table with direct YAML links, and a brief "How to Contribute" section pointing to the Issues tab. Detailed fork/branch/PR instructions live exclusively in the issue templates. I also added a second template (fill_out_schema.md) specifically for the 7 existing tools — it prompts the maintainer to fill in the tool name, link to the YAML file, and @-assign the owner, then gives step-by-step instructions.

…ill_out_schema template

Co-authored-by: mooneyme <7425288+mooneyme@users.noreply.github.com>
Copy link
Contributor

@mooneyme mooneyme left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please resolve these comments

README.md Outdated
## How to Contribute

**If your tool is listed above:** find the GitHub issue for your tool in the
[Issues tab](../../issues), open the linked YAML file, fill it out, and submit
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This link does not work there is not path for ../../issues. I'd like to create a new git repo issue for each tool to manage this.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 5c5a51a — replaced both broken relative links with absolute GitHub URLs (https://github.com/G-PST/data-schema-excercise/issues and https://github.com/G-PST/data-schema-excercise/issues/new/choose).

For creating individual issues for each of the 7 tools: once this PR is merged, you can open one issue per tool using the "Fill Out Existing Tool Data Schema Sheet" template (it has a field for the tool name, the YAML file link, and an assignee field). The template will be available at https://github.com/G-PST/data-schema-excercise/issues/new/choose after merge.

README.md Outdated
a Pull Request — the issue has step-by-step instructions.

**If your tool is not listed:** open a new issue using the
[Add New Tool Data Schema](../../issues/new/choose) template and follow the
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This link does not work.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 5c5a51a — now uses https://github.com/G-PST/data-schema-excercise/issues/new/choose.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should creating a new issue for a new tool schema just copy the markdown instructions for a new tool to put in the issue markdown?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes — that's exactly how it works. Updated in 765a729: the link now uses ?template=new_tool_schema.md, which opens the GitHub issue form with the full instructions from new_tool_schema.md already pre-populated in the issue body. The user just fills in their tool name/org/repo at the top and follows the steps already written in the body.

Co-authored-by: mooneyme <7425288+mooneyme@users.noreply.github.com>
README.md Outdated
step-by-step instructions.

**If your tool is not listed:** open a new issue using the
[Add New Tool Data Schema](https://github.com/G-PST/data-schema-excercise/issues/new/choose)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This just takes you to an empty issue creation page, with no instructions for the user.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 765a729 — changed from issues/new/choose (the template picker) to issues/new?template=new_tool_schema.md, which opens the issue creation form with the full instructions pre-populated. Once this PR is merged to main, clicking that link will land directly on a pre-filled new-tool issue form.

Co-authored-by: mooneyme <7425288+mooneyme@users.noreply.github.com>
Copilot AI requested a review from mooneyme February 19, 2026 22:15
@mooneyme mooneyme marked this pull request as ready for review February 19, 2026 22:19
@mooneyme mooneyme merged commit 427d526 into main Feb 19, 2026
1 check passed
@mooneyme mooneyme deleted the copilot/setup-yaml-schema-template branch February 20, 2026 00:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants