This document is for review purpose only, It is Work in Progress and yet to discussed and agreed on dev@

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

https://lists.apache.org/thread.html/464712f0136fb51916ca9f1b702b99847e108dbdbd0b6a2b73fc91f1@%3Cdev.mxnet.apache.org%3E

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#ClassDiagram

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

  • No labels