Skip to content

Commit c4dafa0

Browse files
brijk7Edd Wilder-James
authored andcommitted
update RFC template to make required sections explicit (#172)
* update RFC template to make required sections explicit * update with minor edits * update with review feedback
1 parent c3aa72e commit c4dafa0

File tree

1 file changed

+41
-9
lines changed

1 file changed

+41
-9
lines changed

rfcs/yyyymmdd-rfc-template.md

Lines changed: 41 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,47 @@ idea, and list pros/cons to each approach. If there are alternatives that you
3434
have eliminated, you should also list those here, and explain why you believe
3535
your chosen approach is superior.
3636

37-
Factors to consider include:
38-
39-
* performance implications
40-
* dependencies
41-
* maintenance
42-
* platforms and environments impacted (e.g. hardware, cloud, other software
43-
ecosystems)
44-
* [compatibility](https://www.tensorflow.org/programmers_guide/version_compat)
45-
* how will this change impact users, and how will that be managed?
37+
Make sure you’ve thought through and addressed the following sections. If a section is not relevant to your specific proposal, please explain why, e.g. your RFC addresses a convention or process, not an API.
38+
39+
40+
### Alternatives Considered
41+
* Make sure to discuss the relative merits of alternatives to your proposal.
42+
43+
### Performance Implications
44+
* Do you expect any (speed / memory)? How will you confirm?
45+
* There should be microbenchmarks. Are there?
46+
* There should be end-to-end tests and benchmarks. If there are not (since this is still a design), how will you track that these will be created?
47+
48+
### Dependencies
49+
* Dependencies: does this proposal add any new dependencies to TensorFlow?
50+
* Dependent projects: are there other areas of TensorFlow or things that use TensorFlow (TFX/pipelines, TensorBoard, etc.) that this affects? How have you identified these dependencies and are you sure they are complete? If there are dependencies, how are you managing those changes?
51+
52+
### Engineering Impact
53+
* Do you expect changes to binary size / startup time / build time / test times?
54+
* Who will maintain this code? Is this code in its own buildable unit? Can this code be tested in its own? Is visibility suitably restricted to only a small API surface for others to use?
55+
56+
### Platforms and Environments
57+
* Platforms: does this work on all platforms supported by TensorFlow? If not, why is that ok? Will it work on embedded/mobile? Does it impact automatic code generation or mobile stripping tooling? Will it work with transformation tools?
58+
* Execution environments (Cloud services, accelerator hardware): what impact do you expect and how will you confirm?
59+
60+
### Best Practices, Tutorials and Examples
61+
* Does this proposal change best practices for some aspect of using/developing TensorFlow? How will these changes be communicated/enforced?
62+
* If design changes existing API or creates new ones, the design owner should create end-to-end examples (ideally, a tutorial) which reflects how new feature will be used. Some things to consider related to the tutorial:
63+
- The minimum requirements for this are to consider how this would be used in a Keras-based workflow, as well as a non-Keras (low-level) workflow. If either isn’t applicable, explain why.
64+
- It should show the usage of the new feature in an end to end example (from data reading to serving, if applicable). Many new features have unexpected effects in parts far away from the place of change that can be found by running through an end-to-end example.
65+
- This should be written as if it is documentation of the new feature, i.e., consumable by a user, not a TensorFlow developer. The code does not need to work (since feature is not implemented yet).
66+
67+
### Compatibility
68+
* Does the design conform to the backwards & forwards compatibility [requirements](https://www.tensorflow.org/programmers_guide/version_compat)?
69+
* How will this proposal interact with other parts of the TensorFlow Ecosystem?
70+
- How will it work with TFLite?
71+
- How will it work with distribution strategies?
72+
- How will it interact with tf.function?
73+
- Will this work on GPU/TPU?
74+
- How will it serialize to a SavedModel?
75+
76+
### User Impact
77+
* What are the user-facing changes? How will this feature be rolled out?
4678

4779
## Detailed Design
4880

0 commit comments

Comments
 (0)