yahoo/fluxible

[fluxible-addons-react] react 16 task list

redonkulus opened this issue ยท 26 comments

@pablopalacios

We want to support the latest and great features of React, while deprecating older features. This will facilitate a new 1.x major version release in fluxible-addons-react.

Tasks

  • Use ES2015 features - #646
  • Remove polyfill and drop old react support
  • Remove decorator support - #653
  • Remove mixins #653
  • Update to use the newer context API (solves #584 )
  • Update example app to use new APIs
  • Update generator to use new APIs - #690
  • Update fluxible website docs / examples for new APIs
  • Improve packaging for fluxible-router to make it tree-shakeable and decrease bundle size
  • Simplify provideContext since I've found that we don't even need to pass a list of plugins to inject their component context.
  • Publish fluxible-router and fluxible-addons-react without beta
  • Update examples to remove prelease tag dependencies
  • Update CHANGELOG.md of fluxible-router and fluxible-addons-react to add links to MIGRATION guides
  • Update fluxilble.io site to use new packages and APIs

Resolves

@redonkulus regarding the polyfills: given that we didn't add any, could we mark this as done? (react deprecation was done in #653 )

Sure, that's fine.

@redonkulus so I'm done with my changes on the context step. After context PR is merged, it would be cool to have a beta release so I can start tackling the example app and the generator.

@pablopalacios fluxible-addons-react@1.0.0-beta.0 released under the next tag on npm.

@redonkulus could we bump fluxible-router on npm as well? It is currently not compatible with addons beta version.

@pablopalacios fluxible-router@2.0.0-beta.7.0 released as well.

By the way, the Update to use the newer context API task is already done (#663 ) as well as the Update fluxible website docs (#668 ). Now I'm working on creating the new examples.

Ok cool, I updated the check list

@redonkulus could we have new beta releases for fluxible-addons-react and fluxible-router?

@pablopalacios both have been published

2 more items before removing the beta tag:

  • Improve packaging for fluxible-router to make it tree-shakeable and decrease bundle size
  • Simplify provideContext since I've found that we don't even need to pass a list of plugins to inject their component context.

Ok I've added those to the list above. What changes for fluxible-router are you thinking?

Before removing the beta tag I would only improve packaging as did here: https://github.com/yahoo/fluxible/pull/683/commits

But later I would like to simplify tests and remove the dependency on addons-react components refs. They prevent us to convert addons-react components to functional components, which would allow us to decrease even further the package size.

However, since removing refs from addons-react would be a breaking change, maybe it would be better to do it right now as well. What do you think?

The best time to do it is now, before we remove the beta tag. Otherwise, we would need to do another breaking change release.

Right. And what should be done on the Update example app to use new APIs task? What is the example app?

I think I meant that to be plural, which you have done for the most part.

Would be good to convert the remaining examples too if you have time. Otherwise, we could just remove them. It was nice showcasing different usecases to users.

@redonkulus with #710 I'm done with all the changes I would like to do before removing the beta tag.

Ok sounds good. Will review today.

@pablopalacios one important task I've added to the bottom of the list is updating the fluxible.io site to use the new APIs, is that something you think you could help out on?

I know you did some work here but wasn't sure if there was any last cleanup to do.

I'll check it one more time. In theory, it should be working.

Done: #715

@redonkulus what is really missing on this one? Anything that I could do?

So the 3 bullets that are open are what is left. If you think we are ready, we can merge the development branch into master and release all the packages without the beta flags. Then we will need to finish up the remaining tasks (updating the site to use latest and make sure migration guides are setup properly).

Last master has been rebased into the dev branch right?

Hmmm... I don't think so. But I thought a little bit more. It might be good to make a release of the old packages with deprecation warnings to make it easier to migrate to the newer versions. After that I think we can merge.

I wouldn't do that as that will create a lot of noise for "stable" versions. Especially internally when we will probably never migrate to the new versions because resources are constrained and it would be a lot of work to refactor.

Can you do one last master rebase into the dev branch before we merge?

@pablopalacios since all the packages have been released now, I'm going to close this out. Thanks again for all your hard work and making fluxible better for everyone!