React-native-windows: Community module support principles

Created on 28 May 2020  Â·  6Comments  Â·  Source: microsoft/react-native-windows

What should be the bar for community modules our team produces?
e.g. is it ok for a module to not be accessible, etc.
What's our responsibility once we implement the module?
Do we have to write tests?

enhancement needs PM design question

All 6 comments

We'll discuss on Monday. This is a big topic. Then let's come back to this issue and document what we came up with :)

Expected outcome of the Monday meeting is some sort of process doc.
It should include a checklist about what to make sure the dev did.

Things to consider:

Questions that need answering re: community modules:

  • Where do we want issues filed? our or their repo?
  • Triage process - tags? who has permissions?
  • our bar for contributing:

    • accessibility

    • security

    • feature completeness

    • takebacks from C# impl

    • tests

    • CI

    • sample, docs

    • i18n

    • localization

  • Compatibility matrix across diff versions of RNW / how do we deal with breaking changes from RN and RNW?

    • Do we only ever support latest stable?

    • or latest stable+next ?

    • or more?

Another few things to consider:

  • Listing in reactnative.directory
  • Compatibility matrix across both RNW and macOS (cc: @tom-un )
  • How to contribute to unmaintained repos
  • What kind of long term maintenance promise do we offer?
  • What's our min bar for automated validation that allows us to in a non-neglectful way "walk away" with confidence?
  • Is there a list of modules that meet some min bar, or can we get at sort of content clearly indicated as a badge in reactnative.directory? What would that criteria be?
  • On github we contribute as individuals, but are representing an organization. How do we represent that the level of support comes from the organization and not necessarily the individual? (example: questions about being added as a maintainer to community repos)

Community Module SLA

ReactNative Windows

Principles

Questions

  • Where do we want issues filed? our or their repo?

    • For adding Windows support, file in both CM and RNW repos

    • For filing ongoing bugs file in CM only

  • Triage process - tags? who has permissions?

    • Regular (monthly?) triage w/maintainers for ongoing

    • Eloy has access to RNCommunity repos

    • Work with DI for bot “sounding the alarm” on issues

  • our bar for contributing a new module:

    1. accessibility

    2. security

    3. feature completeness

    4. takebacks from C# impl

    5. tests

    6. CI

    7. sample, docs

    8. i18n

    9. localization

    10. incremental improvement is ok 😊

    11. CI means less likely to rot, so add it if it’s not there. Match CircleCI if there, or add GH Actions (work with owner for permissions).

    12. Min bar: “getting started” (how to add this module to a RNW app)

    13. CM sample app should support Windows – add one or add to it.

    14. “XAML Gallery app”-style app for RN that exercises community modules in the samples repo.

    15. If no CI/app, enable for Windows only.

  • Compatibility matrix across diff versions of RNW / how do we deal with breaking changes from RN and RNW?

    1. Do we only ever support latest stable?

    2. or latest stable+next ?

    3. or more?

    4. CM works with the latest RNW version it was written for – when an issue is found, it’s updated to work with the latest RNW (and older versions of RNW might become incompatible)

    5. How do people discover what version of a CM works with an (older) version of RN/RNW

    6. Can we work w/directory to add versioning info to rn.directory

    7. Latest always works or we go fix it. Support for other versions is best effort.

  • Listing in reactnative.directory
  • Compatibility matrix across both RNW and macOS (cc: @tom-un )

  • How to contribute to unmaintained repos

  • What kind of long-term maintenance promise do we offer?
  • What's our min bar for automated validation that allows us to in a non-neglectful way "walk away" with confidence?
  • Is there a list of modules that meet some min bar, or can we get at sort of content clearly indicated as a badge in reactnative.directory? What would that criteria be?
  • On github we contribute as individuals but are representing an organization. How do we represent that the level of support comes from the organization and not necessarily the individual? (example: questions about being added as a maintainer to community repos)

Checklist:

CC @tido64

Was this page helpful?
0 / 5 - 0 ratings