-
Notifications
You must be signed in to change notification settings - Fork 24.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
☂️ Lean Core #23313
Comments
@cpojer I'd like to remove SnapshotViewIOS 🔪 |
Hey @cpojer, thanks for putting it all together! I'm willing to tackle few issues, starting from moving AsyncStorage. |
I would be happy to help with moving NetInfo to a community repo. Would it be best to create a personal Github repo first and then potentially migrate that to the react-native-community org once it's ready, or should we start right away with a repo in that org? |
@cpojer, I'd like to help at some of this issues, could I start with "Merge AlertIOS with Alert"? |
That's awesome! I put your names down next to the items above. @jdmunro can you send a PR and assign me to it? Then I can take it over and remove FB specific stuff before landing. |
@cpojer I could help with moving slider 🙂 After that I can pick up something else if you’ll still need some help |
@michalchudziak Awesome! I created https://github.com/react-native-community/react-native-slider, please see my comment above on what to do next. As a name for the project in package.json, please use |
@cpojer I can take |
Hey @cpojer I would like to help by merging and moving Picker and PickerIos. :) |
@ferrannp created https://github.com/react-native-community/react-native-viewpager for you! See the messages above. |
Sure! I'll do that and report to you. |
Can help with StatusBarIOS and PushNotificationIOS |
@cpojer Do you have a preference for the Android package name? Using NetInfo as an example it is currently |
Can I help with
|
I'll take the checkbox, please. |
This comment has been minimized.
This comment has been minimized.
Ref #1352 Ref facebook/react-native#23313
Ref #1352 Ref facebook/react-native#23313
Ref #1352 Ref facebook/react-native#23313
Anticipate the removal of ART from React Native core: facebook/react-native#23313 Simplifies dependencies and builds for web apps. Close #1251
Ref #1352 Ref facebook/react-native#23313
Ref #1352 Ref facebook/react-native#23313
Ref #1352 Ref facebook/react-native#23313
Ref #1352 Ref facebook/react-native#23313
Ref #1352 Ref facebook/react-native#23313
Ref #1352 Ref facebook/react-native#23313
Ref #1352 Ref facebook/react-native#23313
Ref #1352 Ref facebook/react-native#23313
Ref #1352 Ref facebook/react-native#23313
Ref #1352 Ref facebook/react-native#23313
Ref #1352 Ref facebook/react-native#23313
Ref #1352 Ref facebook/react-native#23313
Ref #1352 Ref facebook/react-native#23313
Ref #1352 Ref facebook/react-native#23313
Ref #1352 Ref facebook/react-native#23313
Ref #1352 Ref facebook/react-native#23313
For the past several months we have been discussing and making progress on a project called “Lean Core”. Please read our motivation for this project. Over the years React Native has accumulated a lot of parts that are now outdated, unused or otherwise legacy. It's time to clean everything up and put the repository into a much more manageable state going forward.
This is an umbrella task intended to track all the work necessary to reach the goal of a leaner core, including work around repository reorganization. This issue is being kept up to date so new items will be added and completed ones will be (re)moved. Some of the items will spawn separate issues to track work. If you don't see a name assigned to any of the below items and you would like to help out, please volunteer in the comments and reach out to me to get started!
Components & Runtime
React Native currently comes with a large number of components, many of which are deprecated or outdated but they still part of the repository and increase the size of applications. For items in this section we are either looking to completely remove things if they are unused, or we'd like to move them either to community managed repositories or otherwise to facebookarchive. The list here is partially based on an awesome investigation by @axe-fb. The migration can be done roughly by following @matt-oakes's guide from further below: #23313 (comment)
Third-Party Dependencies
Over the years we have amassed a large amount of dependencies, especially JavaScript. We have also moved things out of React Native, like Metro and the react-native-cli. This means we left a large amount of tooling dependencies in our package.json, many of which will are unused by RN itself and won't be updated to the latest versions, causing the full install of React Native to be bloated. It would also be great to do an audit of all the dependencies that are used and identify which ones could be removed.
Repository Structure
Right now the React Native repository is a large repository with little organization that promotes separation of concerns. It is our goal as part of this effort to also move things into a more manageable structure. As part of this, we'd like to follow a monorepo model that consists of multiple smaller packages. This will be a gradual migration and we will only be tracking the initial work to get this off the ground.
Completed work
Add deprecation message to ImageStore [Lean Core] Add deprecation notice to ImageStore #23330 (@EvanBacon)Move NetInfo to a community repo (@matt-oakes)Move ReactART to a community repoWrite tests for NetInfo (@matt-oakes)Move MaskedViewIOS to a community repo (@FonDorn)Merge AlertIOS with Alert e2bd7db (@wellmonge)Move ImageEditor to a community repo (@Trancever)Move Slider to a community repo (@michalchudziak)Move ViewPagerAndroid to a community repo (@ferrannp)Deprecate StatusBarIOS (@dmtrKovalenko)Deprecate PushNotificationIOS (@rafaellincoln)Move AsyncStorage to a community repo (@krizzu)Make the new codegen folder a separate package 5ed749e (@cpojer)Removed VibrationIOS caf85d4 (@cpojer)Removed old deprecation messages a5ae7f5 (@cpojer)Identify all dependencies in package.json that aren't directly used in React Native chore: remove the unused packages from package.json #23428 (@nimish-gupta)Remove unused dependencies chore: remove the unused packages from package.json #23428 (@nimish-gupta)Remove SnapshotViewIOS from public React Native interface [Lean Core] Remove SnapshotViewIOS from public interface #23497 (@jdmunro)Remove ListView 14d9b2d (@cpojer)Remove SwipeableListView 14d9b2d (@cpojer)Move Clipboard to a community repo (@harisbaig100)Move SegmentedControlIOS to a community repo (@harisbaig100)Remove WebView from RN repo (@cpojer)Remove SwipeableFlatList from RN repo (@cpojer)Remove Geolocation from RN repo (@cpojer, @mmmulani, @axe-fb)Move native "TestModule" into RNTester (@ericlewis)Remove polyfills from open source 06cf7fa (@cpojer)Remove the fetch polyfill from the repo and re-use whatwg-fetch directly Remove vendored fetch polyfill, update to whatwg-fetch@3.0 #24418 (@janicduplessis)Deprecate and remove CheckBox (@vonovak)Remove ProgressBarAndroid from the repository, possibly move to community repo (@wagnermaciel)Move ProgressViewIOS to a community repoRemove NetInfo (@cpojer)Move CameraRoll to a community repo (@bartolkaruza)Move ActionSheetIOS native code to expo (@nd-02110114)Create a package with lint rules and prettier to be used by React Native Community (@cpojer)Remove ToolbarAndroid from RNTester Android [RNTester] Remove ToolbarAndroid #24999 (@ericlewis)Remove Map and Set polyfills (@cpojer)Merge DatePickerIOS and DatePickerAndroid, move to community repo (@Swaagie)Remove ToolbarAndroid (@cpojer)Merge PickerIOS with Picker, Move the merged PickerIOS/Picker component to community repo (@bartolkaruza)Move ImagePickerIOS to a community repoRemove CheckBox (@cpojer)TimePickerAndroid (@cpojer)Remove ImageEditor (@cpojer)Remove CameraRoll (@cpojer)Remove ViewPagerAndroid (@cpojer)Click to see prior work before this issue was created
The text was updated successfully, but these errors were encountered: