Thank you for your interest in contributing to the IMAS Standard Names project! This document provides guidelines and instructions to help you contribute effectively.
IMAS Standard Names is a grammar library and read-only catalog server for the fusion energy research community. The project defines rules for composing valid standard names and serves the approved catalog through MCP tools.
Name generation is handled by imas-codex. This project focuses on grammar, validation, and catalog serving.
- Grammar rules: Propose changes or additions to the naming grammar
- Validation logic: Improve semantic, structural, or description validation
- Documentation: Improve grammar reference, guidelines, or architecture docs
- MCP tools: Enhance the read-only query and reference tools
- Bug fixes: Fix issues in grammar parsing, catalog building, or validation
This repository includes configuration for the Model Context Protocol (MCP) server, which provides schema information and documentation for IMAS data structures.
Note: Using the IMAS MCP server requires a local Docker installation on your system.
The repository includes a .vscode/mcp.json configuration file that sets up the necessary MCP servers:
- Install Docker on your system if not already installed
- Open the project in VS Code with the GitHub Copilot extension enabled
- When prompted, enter your GitHub Personal Access Token (Note: this PAT token needs read access to metadata and read/write access to actions, issues, and pull requests)
- The MCP servers (IMAS and GitHub) will be accessible to Copilot for providing schema information and documentation
If you find a problem or have a suggestion:
- Check if the issue already exists in the Issues section.
- If not, create a new issue with a clear title and detailed description.
- Include relevant examples or error messages.
- Fork the repository.
- Create a new branch with a descriptive name.
- Make your changes.
- Ensure tests pass with 100% coverage for modified code and update the documentation accordingly.
- Submit a pull request with a clear description of the changes.
-
Fork the repository:
- Navigate to the repository page.
- Click the "Fork" button in the top-right corner of the page.
-
Clone your forked repository:
git clone https://github.com/<your-username>/imas-standard-names.git cd imas-standard-names
-
Set up your development environment:
uv sync uv run pre-commit install
-
Run tests:
uv run pytest --cov
-
Create a PR:
- Make edits.
- Confirm tests are passing with 100% coverage for updates.
- Submit your pull request.
- Follow PEP 8 style guide for Python code.
- Include docstrings for all functions, classes, and modules.
- Write tests for new functionality.
- Keep commits focused and related to a single issue when possible.
- Use conventional commit messages (e.g.,
feat:,fix:,docs:).
- All pull requests require review by at least one maintainer.
- Automated tests must pass.
- Update the documentation alongside code changes.
- Reviewers may request changes before merging.
To propose new standard names, use the imas-standard-names-catalog repository. Names are generated by imas-codex and reviewed by domain experts before being merged into the catalog.
By contributing to this project, you agree to license your contributions under the project's license.
If you have questions about contributing, please open an issue or contact the maintainers.
Thank you for contributing to the IMAS Standard Names project!