Yarn has multiple advantages over npm:
* determinism: no more random failure due to weird interactions between two installation runs
* lockfile by default, everyone gets the same dependencies in the same version: no more sudden and unexpected dependencies conflicts because someone on earth decided to update his 10 lines package that everybody use
* performance: faster than npm once the initial dependency graph is computed
* nice cats drawings on their website
The migration does not have to be a hard break, yarn is mostly interoperable with npm so people having just npm can still build the Tuleap sources they just would not profit of the yarn's feature (including the lockfiles so things might suddenly break on their side).
Yarn is however easily to install, packages for major platforms are available and it can be installed through npm if really needed:
https://yarnpkg.com/en/docs/install
What we currently works:
* developers use yarn to work on the Tuleap sources on a daily basis, it just works
* unit tests pass with no specific issue since a long time:
https://ci.tuleap.org/jenkins/job/gerrit_karma-yarn-tests/
What's still needed to complete the migration:
* gulpfiles must be updated to use either npm or yarn. They currently are hardcoded to use yarn
* lockfiles must be committed with the Tuleap sources
* yarn must be available during the Tuleap build process
* Tuleap documentation should be updated