haystack/proposals/0000-template.md
Massimiliano Pippi 8edfd8978e
Update the proposals process (#3718)
* update the proposals process

* add stalebot to manage proposals lifecycle

* typo

* Update 0000-template.md

* clarify PR labelling staying away from implementation details
2022-12-19 14:35:07 +01:00

65 lines
2.3 KiB
Markdown

- Title: (the title in plain english)
- Decision driver: (your name here)
- Start Date: (today's date, in format YYYY-MM-DD)
- Proposal PR: (fill in after opening the PR)
- Github Issue or Discussion: (only if available, link the original request for this change)
# Summary
Explain the feature briefly.
# Basic example
When applicable, write a snippet of code showing how the new feature would
be used.
# Motivation
Give us more background and explanation: Why do we need this feature? What use cases does it support? What's the expected
outcome?
Focus on explaining the motivation for this feature. We'd like to understand it, so that even if we don't accept this
proposal, others can use the motivation to develop alternative solutions.
# Detailed design
This is the bulk of the proposal. Explain the design in enough detail for somebody
familiar with Haystack to understand, and for somebody familiar with the
implementation to implement. Get into specifics and corner-cases,
and include examples of how the feature is used. Also, if there's any new terminology involved,
define it here.
# Drawbacks
Look at the feature from the other side: what are the reasons why we should _not_ work on it? Consider the following:
- What's the implementation cost, both in terms of code size and complexity?
- Can the solution you're proposing be implemented as a separate package, outside of Haystack?
- Does it teach people more about Haystack?
- How does this feature integrate with other existing and planned features?
- What's the cost of migrating existing Haystack pipelines (is it a breaking change?)?
There are tradeoffs to choosing any path. Attempt to identify them here.
# Alternatives
What other designs have you considered? What's the impact of not adding this feature?
# Adoption strategy
If we implement this proposal, how will the existing Haystack users adopt it? Is
this a breaking change? Can we write a migration script?
# How we teach this
Would implementing this feature mean the documentation must be re-organized
or updated? Does it change how Haystack is taught to new developers at any level?
How should this feature be taught to the existing Haystack users (for example with a page in the docs,
a tutorial, ...).
# Unresolved questions
Optional, but suggested for first drafts. What parts of the design are still
TBD?