Skip to content

Latest commit

 

History

History
64 lines (42 loc) · 2.3 KB

0000-template.md

File metadata and controls

64 lines (42 loc) · 2.3 KB
  • 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?