Thank you for your interest in contributing to the Digital Twins Definition Language (DTDL) Parser library. As an open source effort, we're excited to welcome feedback and contributions from the community.
This repository holds sources and resources for software artifacts related to parsing, validating, transforming, and inspecting models written in DTDL.
This repository does not accept changes to the language definition itself. It accepts changes to the codebase that are independent of the language, such as software architecture, documentation, and portions of the parser API.
The main top-level folders in the repository are as follows:
- 📁 dtdl - Declarative definitions of the current and next versions of DTDL.
- 📂 dotnet
- 📁 gen - Source code of utilities that perform extraction, codegen, and analysis that produces other files and projects.
- 📁 src - Source code (both handwritten and generated) of the parser and tools.
- 📁 tests - Source code (both handwritten and generated) of tests that validate correctness of the parser and sub-components.
- 📁 test-cases - Declarative tests cases for validating DTDL parsing.
- 📂 tutorials - Markdown files illustrating use of the parser.
- 📁 projects - C# project, source, and expectation files generated from the Markdown tutorials.
- 📁 scripts - CMD files used by the Develop.sh script.
The following folders contain generated files and inputs that feed into the production of generated files. PRs shall not include changes to files within:
- 📁 dtdl
- 📁 test-cases
- 📁 pipelines
- 📁 scripts
- 📁 dotnet/gen
- 📁 dotnet/src/DTDLParser/generated
- 📁 dotnet/src/Remodel/generated
- 📁 dotnet/tests/ParserUnitTest/generated
- 📁 javascript/generated
- 📁 images/generated
- 📁 images/input/generated
- 📁 tutorials/projects
- 📁 api-docs
The projects can be built with the following command:
dotnet build dotnet/DTDLParser.slnOnce built, the projects can be tested with the following commands:
dotnet test dotnet/tests/DtmiUnitTest
dotnet test dotnet/tests/ResultFormatterUnitTest
dotnet test dotnet/tests/ParserUnitTestThe following steps will be taken to submit changes to this repository:
- Create a fork of the repository.
- Modify code and/or other resource files.
- Execute the commands described above to build projects and execute tests.
- Create a PR back to this repository.
- Review pipelines failures and make appropriate changes.
For details on contributing to DTDL Parser development via changes to generation code, please refer to CONTRIBUTING.detailed