This project proposal template ushers originators, designers, implementers, testers of a project through community and TSC approval. The proposal should evolve organically as the EdgeX Project moves through the stages of conception, design, approval, implementation and deployment. The project and hence the proposal may also need several iterations. In its terminal forms it can also serve as a short manual to the features of the project for users.
This proposal template is descriptive and not normative, a guide rather than the law.
The seed of a new project has to be vetted in a public forum like edgex-tsc-device-services before creating a project proposal. It is best if the project has technical champions who believe in the project and are the maintainers of the project. The technical champions can change in the middle of the project.
Please note that readability is very important. The language of the proposal should be English if possible as that is the lingua franca of the community. The Chicago Manual Of Style should be followed for explanation of abbreviations, references etc. This is extremely important as a clear statement of the problem and its technical details are helpful to coalesce the community around a solution and prompt volunteers. The outline of a project is given below with comments on the sections.
EdgeX Project identifier a short description plus a serial number with a version (for example this document is Template for an EdgeX Project EP 0.1)
- Sponsor(s) name and contact details including email address
- Abstract (less than 50 word) description of the project.
- Context if any, what is this project derived from? What if any is it related to?
- Dependent Projects if any, must be listed, and each dependent project's maintainers must sign off on the proposal before it is considered by the TSC.
- Motivation for this project, a longer justification of the project may be a couple of hundred words. Why is this project better at solving a problem compared to parallel proposals or implemented projects?
- Status of the project: See lifecycle
Solution to the problem addressed in the motivation section. Try to make this as detailed as possible. The topics given below are suggestions for Technical Projects, address only if they are relevant to your problem, add other topics as you see relevant. The use of diagrams is encouraged to elucidate concepts.
Alignment with EdgeX tenets and overall architecture
- Impact to EdgeX functional and performance goals
- Support for target use cases
Backward compatibility (hard fork or updates by EdgeX users needed?)
Rough design and scenarios on the probable effects, if any
Address any possible objections and also support that came up during seed proposal from technical community on the lists.
Traceability, testing criteria to gauge effects on installed base.
License of codebase (including dependencies)
Any trademarks used in the project name or codebase?
- Effort and resources committed (coders and/or other resources that are needed) and timeline.
- How to: How to host and test the project. How to deploy and use. How does one know that it works.
- References. See citation guide.
- Closure how do we know that the project succeeded. This has to be measurable if possible. Make references to successor projects if any.