Sample Issue Description for Problem Statement
Linter for Concerto [This just a sample from last year, this project has already being implemented]
Write a linter in TypeScript for Concerto Source files. It should make use of existing functionality to validate the Concerto DSL syntax and JSON AST of Concerto model against a set of rules. Rules should be defined in Typescript and which rules are run should be configurable. You may be able to make use of a tool like Spectral as the framework for defining our own rules over the Concerto AST (JSON).
Expected Outcomes:
A tool that allow users to:
- Specify the naming of declarations. E.g. all names of scalars should be in camel case.
- Specify the naming of properties, enum cases e.t.c
- Specify which language features can be used. E.g. disallow maps, disallow forward references in regex validators.
- Enforce the use of certain features. E.g. all string properties should have a length validator.
- Enforce the use of @term decorators on all declarations and properties e.t.c
- All concepts in a namespace should extend a given concept
- All concepts in a namespace must have unique names across multiple namespaces
Skills required/preferred:
Algorithms, Functional programming, Back end development, NodeJS, TypeScript
Possible Mentors:
Jamie Shorten, Sanket Shevkar
Expected size of project:
175 hours (medium)
Expected difficulty:
Medium
Sample Issue Description for Problem Statement
Linter for Concerto [This just a sample from last year, this project has already being implemented]
Write a linter in TypeScript for Concerto Source files. It should make use of existing functionality to validate the Concerto DSL syntax and JSON AST of Concerto model against a set of rules. Rules should be defined in Typescript and which rules are run should be configurable. You may be able to make use of a tool like Spectral as the framework for defining our own rules over the Concerto AST (JSON).
Expected Outcomes:
A tool that allow users to:
Skills required/preferred:
Algorithms, Functional programming, Back end development, NodeJS, TypeScript
Possible Mentors:
Jamie Shorten, Sanket Shevkar
Expected size of project:
175 hours (medium)
Expected difficulty:
Medium