This document is for review purpose only, It is Work in Progress and yet to discussed and agreed on dev@
Table of Contents |
---|
Link to dev list discussion
Once you have the design proposal written, please send a email to dev@mxnet.apache.org and provide a link below for reference, you can find the "Permalink" of your email from https://lists.apache.org/list.html?dev@mxnet.apache.org. For an example see the link below
Feature Shepherd
A Shepherd is a Apache MXNet committer who has reviewed the design, provided feedback on the design and works with you to take your feature to completion by providing timely feedback on your PRs and helps in merging to the Apache MXNet codebase. You can add the GitHub id of the committer in this section once the design has been agreed upon by the community on dev@ and a shepherd has volunteered or chosen.
Problem
Describe the problem your design proposal aims to solve. For an example see the link below
MXNet Scala API Usability Improvement#Problem
Goals/Usecases
Describe what goals your design proposal attempts to achieve or what use-cases it solves. For an example see the link below
MXNet Java Inference API#Goals
Open Questions
Are there any open questions that you want the community to provide feedback on?
These could be questions such as you have 2 different ways to solve a problem and you want the community to provide their opinion to chose one or the other.
Any other questions that you might have for implementing the design.
Proposed Approach
Describe the design details of your proposed/preferred approach.
Consider adding sequence diagrams, class diagrams as necessary and as time permits.
You could use the drawing templates provided by Confluence or even if you write it on a piece of paper and paste the picture that will help a lot in better understanding. For an example see the links below
MXNet Java Inference API#ProposedApproach
...
MXNet Java Inference API#SequenceDiagram
Addition of New APIs
Is your design introducing any new public Interfaces or public classes. This should map to the use-cases above.
Backward compatibility
Are you changing any Interfaces(APIs), adding new mandatory parameters.
Are you changing the input/output data format?
Performance Considerations
Apache MXNet is known and admired for its performance and we want to maintain that. Are there are any performance impact(positive or negative) based on your design.
You should describe what tests are necessary or planned to make sure there are no performance regressions.
Test Plan
How do you plan to test your new features. Please describe what Unit Tests and Integration Tests will added/modified for this implementation.
Alternative Approaches
Alternate design approaches considered,
We encourage you to think through different ways to solve the stated problem so the community can provide more input your proposal. For an example see the link below
MXNet Scala API Usability Improvement#AlternativeApproachconsidered
Technical Challenges
Are there any technical challenges in implementing your solution. For an example see the link below
MXNet Scala API Usability Improvement#TechnicalChallenges
Milestones
It is recommended to break down your implementation(based on your proposed approach) into components and milestones so it becomes easier to provide feedback on PRs and easily merge into the code base.
References
Links to References