Skip to content
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

Contribution and enhancement questions #201

Open
srvance opened this issue Apr 9, 2019 · 2 comments
Open

Contribution and enhancement questions #201

srvance opened this issue Apr 9, 2019 · 2 comments

Comments

@srvance
Copy link
Contributor

srvance commented Apr 9, 2019

We're using webext-redux in the Chrome extension for mabl. It's been very helpful. We just upgraded to the latest version. The serializers and deep diff do a lot to mitigate performance issues due to a large redux store.

First off, I was planning to make some contributions. Is a PR from a fork the recommended path? We'll probably build off our fork until and if our changes are accepted. How do you feel about adding other modules as long as the licenses are compatible?

Also, I wanted to get your opinion on some enhancements we would propose, in order of importance for us:

  1. Enhance deep diff to handle arrays. This would probably be done in two stages, one to handle them based on === and another to go deeper.
  2. Add includes and/or excludes options to wrapStore to provide easy filtering of reducers for performance. I've done this with custom serializers so far since we need a lot less redux state in our content pages than in our UI. I also double wrapped the store with different port names so I can differentiate content from UI traffic.
  3. debug flags to emit payload and diff state for diagnosis. I've written (de)serialization and diff wrappers to help with this so far, which could also be a way to satisfy the need without flags and in a "pay for what you use" approach. Would you have an implementation preference?
  4. Enhance the documentation around serializers and differs and their respective payloads, outputs, and expectations. Part of the debug stuff I did was to help reverse-engineer these contracts.

Anyway, I wanted to reach out to make sure I take an approach that you're comfortable with.

@tshaddix
Copy link
Owner

Hey @srvance ! Thrilled to hear that this package has been helpful for you over at Mabl. I'd be happy to throw your logo and link on the package Readme if you'd like.

Regarding contributions:

  • Fork with PR is great.
  • Adding additional modules is acceptable although we definitely try to keep them to a minimum. If the module is small enough, we may consider just moving the desired function directly in to reduce potential of vulnerabilities.

Regarding your enhancements:

  1. Sounds excellent. I see you added a PR for this already so I'll take this specific conversation there. Thank you!
  2. Ah - this seems to referencing the desires conversation in Missing option for state changing affect to only current open tab #200. I'm very open to visiting this.
  3. Sounds great.
  4. Yep - the documentation needs some love. Would love some help on that.

Thank you for all the suggestions and desire to contribute! I'm very excited to work with you to get these suggestions into the library.

@srvance
Copy link
Contributor Author

srvance commented Apr 15, 2019

@tshaddix PR to add mabl to the README in #204

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants