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

Transferring TransitionGroup Maintenance #8125

Closed
gaearon opened this Issue Oct 27, 2016 · 23 comments

Comments

Projects
None yet
7 participants
@gaearon
Member

gaearon commented Oct 27, 2016

We haven't been good at maintaining ReactTransitionGroup as we don't use it much at Facebook.

As a result it's stagnating: the bugs don't get fixed, new features don't get added, APIs don't acknowledge changes in React (e.g. fake lifecycle hooks that can't work on functional components), nobody has the time to review PRs to it, and it's like a dead weight on the core team. We all feel guilty about it but there's not much we can do.

There are some great alternatives in the ecosystem such as React Motion. However we understand there are a lot of people who are happy with TransitionGroup as it is.

This issue is a call for a new maintainer. If you are using TransitionGroup widely in your codebase and would be happy maintaining a fork of it and documentation, please let us know here, and we'll deprecate our package in favor of your package.

@gaearon gaearon self-assigned this Oct 27, 2016

@developit

This comment has been minimized.

Contributor

developit commented Oct 27, 2016

I don't use it either, but I wanted to drop a link to a refactored standalone version I put together here because it'd make a pretty compelling starting point for anyone looking to maintain a standalone version of ReactTransitionGroup:
https://github.com/developit/preact-transition-group

It's obviously for Preact, but forking it to work with React again would basically just be changing the imports and dependencies to point to React instead.

It was originally a fork of react-component/css-transition-group, extracted from the React 0.14 source.

@fjckls

This comment has been minimized.

fjckls commented Oct 27, 2016

So what do you use at Facebook? React Motion? Does that mean that the end is in sight for < ReactTransitionGroup> and we should start refactoring our code in favor of react motion?

@gaearon

This comment has been minimized.

Member

gaearon commented Oct 27, 2016

So what do you use at Facebook? React Motion?

The Facebook product itself doesn't have many insertion/deletion animations so we don't use anything much.

Does that mean that the end is in sight for < ReactTransitionGroup> and we should start refactoring our code in favor of react motion?

No, why? Even if we completely stop releasing new versions it won't be any worse than it is now: effectively it's already been abandoned for a year or so. You can keep using it, or fork it yourself if you want to improve it. In fact this is what the issue is about.

@fjckls

This comment has been minimized.

fjckls commented Oct 27, 2016

For us animation itself is not a problem we're using great GSAP tweening engine. The problem comes when we have to animate out component on removal. React motion almost solves this problem - there is only one issue with React Motion- there is no onRest callback for TransitionMotion....
Anyhow there will never be 100% perfect solution out of the box... so will have to invest some too :)

@jquense

This comment has been minimized.

Collaborator

jquense commented Oct 27, 2016

me and @taion might be interested in maintaining, I've copy and pasted and forked this component so many times . It'd be nice to make direct improvements.

We also already have a similar but different Transition component we maintain in react-overlays

@gaearon

This comment has been minimized.

Member

gaearon commented Oct 27, 2016

@jquense This would be amazing, you've done some great work maintaining React libraries.

@jquense

This comment has been minimized.

Collaborator

jquense commented Oct 27, 2016

ok 👍 we are glad to take over maintenance.

My initial thought is to move it to https://github.com/react-bootstrap/react-overlays since it pairs nicely with the Transition component there, one for single components, and TransitionGroup for lists. We can also keep it a separate repo if necessary, but I think if folks only want that component requiring it individually from the suite shouldn't cause to much friction.

@gaearon

This comment has been minimized.

Member

gaearon commented Oct 27, 2016

Would you like to do it under reactjs org? My concern with react-bootstrap org is people will think it's going to require Bootstrap, or something like this.

@taion

This comment has been minimized.

taion commented Oct 27, 2016

Tangential, but we would prefer to move react-overlays under reactjs – potentially replacing react-modal: reactjs/react-modal#156.

@jquense

This comment has been minimized.

Collaborator

jquense commented Oct 27, 2016

under reactjs is 👍 It might make sense to pull Transition out of react-overlays into an anaimation specific package since it doesn't have to do specifically with overlays :p

@gaearon

This comment has been minimized.

Member

gaearon commented Oct 28, 2016

What would be our next steps? Do you need any help with the forking?

@beckiechoi

This comment has been minimized.

beckiechoi commented Nov 3, 2016

Not sure if it's too late to mention this. At Squarespace we have our own version of transition group which essentially uses the same approach, but is not a fork of ReactTransitionGroup. We were planning on open sourcing the library in near future (we will have to go through appropriate compliance to open source it). It's something we use pretty heavily on our platform, so all the bugs that were found have already been straightened out. @gaearon Will you be interested in favoring that?

@jquense

This comment has been minimized.

Collaborator

jquense commented Nov 3, 2016

I think there is probably room for both :)

from my end helping folding would great. Im not sure the best way to split the code out or of there is a feasible solution to keeping the current git history

@gaearon

This comment has been minimized.

Member

gaearon commented Nov 3, 2016

I wouldn't worry about keeping the history.

@beckiechoi

This comment has been minimized.

beckiechoi commented Nov 4, 2016

Sounds good. I'll keep you all updated.

@jquense

This comment has been minimized.

Collaborator

jquense commented Nov 5, 2016

@gaearon works for me, if you want to add me to the organization I can move the code or I can bug @taion to do it :P

@ghost

This comment has been minimized.

ghost commented Nov 6, 2016

@gaearon, I think if react adds ability to return a promise in componentWillUnmount hook for delay unmount stuff and then there will be no needs to use ReactCSSTransitionGroup which uses internal react api anyway

@gaearon

This comment has been minimized.

Member

gaearon commented Nov 8, 2016

@bgnorlov

if react adds ability to return a promise in componentWillUnmount hook for delay unmount stuff

Sure, but this is tangential to this thread. You can discuss deferred unmounting in #6003.

which uses internal react api anyway

This is not the case as far as I know.

@levithomason levithomason referenced this issue Nov 13, 2016

Closed

feat(Transition): Add component #813

1 of 5 tasks complete
@jquense

This comment has been minimized.

Collaborator

jquense commented Nov 20, 2016

@taion

This comment has been minimized.

taion commented Nov 20, 2016

can someone with access add @jquense to the @reactjs org?

@gaearon

This comment has been minimized.

Member

gaearon commented Nov 20, 2016

I added @taion, @jquense and @beckiechoi to a new "react addons" team that has admin access to https://github.com/reactjs/react-transition-group.

@levithomason

This comment has been minimized.

levithomason commented Jan 30, 2017

Should this issue be closed then? Any open issues regarding maintenance and future TransitionGroup support?

@gaearon

This comment has been minimized.

Member

gaearon commented Jan 31, 2017

Yep, let’s close. Further issues about TransitionGroup should be filed against https://github.com/reactjs/react-transition-group.

We haven't deprecated ours officially well but we likely will.

@gaearon gaearon closed this Jan 31, 2017

@ingro ingro referenced this issue Apr 19, 2017

Merged

Fix deprecation warnings in React 15.5.x #38

10 of 10 tasks complete

@niik niik referenced this issue May 5, 2017

Merged

Dialog is key #1378

@chrisbarber86 chrisbarber86 referenced this issue May 15, 2017

Merged

Switch out deprecated TransitionGroup #1239

2 of 2 tasks complete

k0nserv pushed a commit to Skyscanner/backpack that referenced this issue Jul 24, 2017

Merge branch 'deprecate-react-addons' into 'master'
BPK-494 - deprecate `react-addons-css-transition-group` in favour of `react-transition-group`

@TimVonOldenburg ,

This is the main culprit: https://unpkg.com/react-addons-css-transition-group@15.4.2

According to facebook/react#8125, the transition group components have been pulled out to `reactjs/react-transition-group`.

Now, see below a link to all src files which have no reference to `react/lib/...`:

- https://github.com/reactjs/react-transition-group/blob/master/src/index.js
- https://github.com/reactjs/react-transition-group/blob/master/src/TransitionGroup.js
- https://github.com/reactjs/react-transition-group/blob/master/src/CSSTransitionGroupChild.js
- https://github.com/reactjs/react-transition-group/blob/master/src/CSSTransitionGroup.js
- https://github.com/reactjs/react-transition-group/blob/master/src/utils/ChildMapping.js
- https://github.com/reactjs/react-transition-group/blob/master/src/utils/PropTypes.js

I've tested this out on a freshly created `backpack-react-scripts` project and it all works good.

See merge request !189
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment