From da4ef11f5b20a474aee13d2e7e7bc4a009ac4449 Mon Sep 17 00:00:00 2001 From: Jesse Squires Date: Fri, 7 Apr 2017 15:21:40 -0700 Subject: [PATCH] Add vision doc Summary: Adding a `VISION.md` doc at the root dir to give collaborators and users guidance about what we will work on and how we will prioritize features/fixes for IGListKit. Issue fixed: #542 Closes https://github.com/Instagram/IGListKit/pull/607 Differential Revision: D4852285 Pulled By: jessesquires fbshipit-source-id: 9588c1ade63d291d60a4ff34c50506c38b51b5b0 --- Guides/VISION.md | 34 ++++++++++++++++++++++++++++++++++ README.md | 4 ++++ 2 files changed, 38 insertions(+) create mode 100644 Guides/VISION.md diff --git a/Guides/VISION.md b/Guides/VISION.md new file mode 100644 index 00000000..2a3f3e50 --- /dev/null +++ b/Guides/VISION.md @@ -0,0 +1,34 @@ +# Vision + +This document serves to outline the long term goals of IGListKit and act as a guidance when making decisions about features and issues. + +## Prioritizing Features & Fixes + +IGListKit is a data-driven, list-building framework built, owned, and maintained by the engineering team at Instagram. Because IGListKit powers parts of the Instagram iOS app, we prioritize features and bugs towards those that effect Instagram. However the team recognizes the wide range of use-cases for IGListKit and wants to serve as broad an audience as possible without sacrificing our own needs. + +## Goals & Scope + +The core goal of IGListKit is to build fast, stable, and data-driven lists in iOS applications. That scope includes things like: + +- `UICollectionView` and `UITableView` integrations +- Data and state management +- Diffing algorithms + +While IGListKit uses specific tools, we do want to limit the reach of how we use those tools. We highly encourage people to explore solutions that fit their needs and will try to assist when possible. Examples of things beyond the scope of IGListKit: + +- Advanced/custom `UICollectionViewLayout`s +- Sizing and layout (e.g. auto layout, estimated sizes) +- Render and display pipelines +- Integration with third-parties + +## Collaboration & Community + +While IGListKit is an Instagram project, we want to give as much ownership and responsibility to the community as possible. We welcome everyone to become a collaborator on the project with whatever level of contribution you feel comfortable with. + +We recognize that maintaining open source projects can be demanding, and often done in addition to other responsibilities. We have no expectation for the amount or frequency of contribution from anyone. + +We also ask that you help keep our community welcoming and open. + +## Communication + +Github Issues serve as the "source of truth" for all communication and decision-making about IGListKit. This keeps everything open and centralized. We will consider other forms of communication (Slack, Facebook Group, etc) once the scale of the project and/or community demands it. \ No newline at end of file diff --git a/README.md b/README.md index 14b0afcf..ee86085c 100644 --- a/README.md +++ b/README.md @@ -82,6 +82,10 @@ github "Instagram/IGListKit" ~> 2.0.0 You can find [the docs here](https://instagram.github.io/IGListKit). Documentation is generated with [jazzy](https://github.com/realm/jazzy) and hosted on [GitHub-Pages](https://pages.github.com). +## Vision + +For the long term goals and "vision" of `IGListKit`, please read our [Vision](https://github.com/Instagram/IGListKit/blob/master/Guides/VISION.md) doc. + ## Contributing Please see the [CONTRIBUTING](https://github.com/Instagram/IGListKit/blob/master/.github/CONTRIBUTING.md) file for how to help out. At Instagram we sync the open source version of `IGListKit` daily, so we're always testing the latest changes. But that requires all changes be thoroughly tested and follow our style guide.