I understand that what I am suggesting is quite big and demands a long discussion, but nevertheless:
Will offer more later, but just want to note for now that (just like adding linting), I consider all of these post-v4 considerations.
Thanks for making this issue @shvaikalesh. Just FYI, the modules we've been splitting out have been using Browserify, with npm scripts and semantic-release. Take a look at https://github.com/chaijs/check-error, https://github.com/chaijs/pathval, chaijs/deep-eql#14, https://github.com/chaijs/type-detect.
If we want to add new tooling, like Rollup, I think we should experiment in the smaller modules for now. While these modules are still integral to chai, they have a much smaller scope and so should be easier to verify results.
As an aside @shvaikalesh; how would you like to join the chai team as a maintainer? Being a maintainer will give you the ability to approve or reject changes, and close or reopen issues. As you've probably seen already, we ensure every PR is approved by at least 2 maintainers, and we have some maintainers who are more active than others - you will not be expected to have a certain amount of output. Thoughts?
@shvaikalesh You'd also be required to legally change your first name to Lucas within 6 months of joining the team, but that's just a minor detail.
I agree with @meeber and @keithamus. Let's add these changes gradually after 4.x.x.
Also, I'd like to reinforce @keithamus invite, if you feel like it please add your name to our MAINTAINERS file so LGTM will be able to recognize your approval.
It would be great to have you here more often 😄
Chai's project will be able to move pretty fast now we've got such awesome new contributors 😄
@keithamus Thanks for the links, I am all for doing this gradually and after 4.0 release. Chai is awesome library with great ecosystem and API, well-written and technically sophisticated (accessors, proxies and other stuff). Awesome work, guys 👍. Would be glad to join the Chai team.