react-native-share-menu icon indicating copy to clipboard operation
react-native-share-menu copied to clipboard

v7.0 Tracking issue

Open lindboe opened this issue 6 months ago • 0 comments

We'll be updating the library and making a new release, specifically for Expensify's use cases. This will be a breaking change. We'll describe the release plan below.

Community note:

  1. This will likely be a breaking change. We'll make sure to include instructions on how to upgrade in the release notes.
  2. We will only be focused on fixing issues needed for Expensify's sharing feature. If you have another urgent issue that we're not addressing, and you'd like to submit a PR for, please discuss with us here and we'll make a plan together.

Phase 0: Fix blockers for new RN apps

These are issues that prevented current apps encountered immediately on trying to use react-native-share-menu. We've already merged these changes:

  • [x] 1. jsBundleUrl arguments changed in recent React Native versions (https://github.com/Expensify/react-native-share-menu/issues/209).
  • [x] 2. Update Android compileSdkVersion (https://github.com/Expensify/react-native-share-menu/issues/261).
  • [x] 3. ShareMenuModule.java needs to implement NativeEventEmitter methods to avoid warnings (https://github.com/Expensify/react-native-share-menu/pull/268).

Phase 1: Make the library maintainable

  • [ ] 1. Update the example project so we can evaluate PRs more easily (#284)
  • [ ] 2. Set up a changelog format so we can track changes and consolidate release notes (#288)
  • [ ] 3. Make a test release candidate so that we can ensure the transfer of the project to Expensify is complete and we're able to release the library when we're ready (#289)

Phase 2: Necessary fixes

  • [ ] 1. Support a "No Share Extension UI" flow, for Expensify (#285)
  • [ ] 2. Fix app group naming logic (#287)
  • [ ] 3. Fix issues with loading files for storage in the iOS share extension (#290)
  • [ ] 4. Detect mime-types correctly for files (#291)
  • [ ] 5. Manage copied file deletion (#292)
  • [ ] 6. Add a privacy manifest (#286)
  • [ ] 7. Ensure this library is compatible with react-navigation deep-linking(#304)

Phase 2.5: Possibly helpful fixes

These are items we don't need for Expensify, but we've implemented solutions for while prototyping options. If these prove to be stable, we'll likely merge them:

  • [ ] 1. detachViewDelegate should be called in more locations to prevent crashes (#271).
  • [ ] 2. The addition of the isExtension method, which can be used to behave differently in JavaScript if your code is running inside the share extension (#265)

Phase 3: New Architecture support

  • [ ] #293

Phase 4: Release it!

  • [ ] 1. Figure out if we need to update references to github.com/meedan
  • [ ] 2. Audit Dependabot PRs for security vulnerability fixes
  • [ ] 3. Consider updating GitHub "releases" tab, or clearing it out (it is currently showing 5.0 as the latest, instead of 6.0, which on npm)
  • [ ] 4. Consolidate the changelog, add to release notes
  • [ ] 5. Make the release!

Out of scope

  • Fixing anything related to sharing multiple items. Expensify does not currently need this, so we won't be addressing that right now.
  • Expo config plugin support. This is possible to set up as a separate project from this repo, and I highly encourage this!
  • Bugs and features not listed here that do not affect the "No Share Extension UI" flow

lindboe avatar Dec 06 '23 23:12 lindboe