-
-
Notifications
You must be signed in to change notification settings - Fork 697
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
Chai Roadmap #457
Comments
Chai rules. you guys rule. keep kicking ass please. |
❤️ thanks @boneskull 😄 |
sounds good, but why build failing? |
mostly due to flakiness from SauceLabs. |
Hello everyone, so I was talking with @vieiralucas tonight about the So, I was thinking about meeeting @vieiralucas in a café this weekend and getting every pending thing done, which currently is this:
Also, I see that there's a lot of work waiting to be merged on the Also, I'd like to reiterate I don't want to hurry anybody, feel free to do things at your own time, that's the beauty of Open Source 😄 Me and @vieiralucas were just thinking about using the free time we've got this weekend to get some things done, but we would like to hear your opinions first. Please let me know if you think I'm being too hasty, this is just my 2cents. Oh, and thanks again for the awesome work we've been doing since |
This sounds good, and I agree about postponing Curious: Are there any existing deep-equal libraries that fulfill all of our needs? If so, has there been any consideration about using one of them, at least until we've worked out all the kinks in ours? Something to ponder if it looks like it's going to take substantial time and effort to reach a release-ready state. |
I agree with pushing loupe until a later release. Edited the OP to reflect that. I also think that loupe, as part of the 5.0.0 release fits well with the other features - a new plugin system and new error message formatting. I'd like to see deep-eql pushed into chai 4, partly because it is nearly done but more importantly - it is a big breaking change, but will solve some pretty pressing issues: #332, #608, #644, #793. Sadly I'm very busy in my personal life which has limited the time I can put into this. I'm going to try to put some more time into fixing up deep-eql so that performs well, I don't want to hold up the release any longer but, again, I feel like it's super important we get it into 4.0.0. Aside to @meeber; our (new) deep-equal implementation has some very important features for us which others don't have; most importantly overriding the comparator which will enable #644 |
@keithamus don't worry, you are always doing great things for chai, you are the one which got us involved here and made this project such an awesome one to start contributing! You rock! |
@keithamus I would like to reinforce what @lucasfcosta said above that we don't want to hurry up anyone, specially you. Please don't feel pressured to do anything. |
If you also publish with the dist-tag |
Hello everyone, we've got something pretty wrong going on, me and @vieiralucas were following the guidelines described on our Tagging @keithamus @shvaikalesh @meeber for extra urgent issue. PS.: Sorry for that 😓 EDIT: Solved thanks to Laurie Voss WE DID IT!!! 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 |
🎉 🎉 🎉 🎉 🎉 Does anyone have an idea on how it got published? |
Ping @keithamus @vieiralucas @meeber @shvaikalesh Is there anything preventing us from releasing Am I right? What would you think we should do? |
I'd be happy for us to go ahead and release 4.0. IMO the quiet period was really just to let the dust settle on the Canary release of 4. I think that's the case now. Does anyone want to pick up the PR for making the 4.0 release? |
I agree with @shvaikalesh. Let's solve those plugin issues and release |
Because of the extent of changes since the initial canary release, particularly in regard to proxies, I'd like to have a Therefore, I propose that we merge these last few PRs that were submitted today, then release |
I agree with @meeber. I'll finish #899 this weekend, if you want to wait for it before releasing Anyway, would any of you like to release it? I'm a bit scared by what happened last time, but I wouldn't mind doing it if we turned the auto-release on travis off. |
I think we can wait for that PR. And yeah, it does seem like these lines were the likely culprit with the inadvertent auto-release last time. |
Hey folks, so, how do you feel about releasing |
There's a few bug fixes and a major doc update I want to squeeze in for canary 2. I think I can have them ready by this weekend. |
@meeber @lucasfcosta @vieiralucas @shvaikalesh how are we all with this now? I know we said about a |
@keithamus Also looking to merge #947! |
@keithamus sounds like a good idea to me! It's about time we release a new version. I've been using |
Hello everyone! What are your opinions on this? |
@lucasfcosta Agreed. Let's merge #964, regenerate |
Right, we're ready for a 4.0 release. Who wants to make the PR? It will involve uncommenting the commented out travis lines, and running |
I'll meet @vieiralucas tonight in college so we can do that and prepare all the stuff we need to get this out. Also, do we need to update anything in the |
Hey everyone, me and @vieiralucas have had problems with the make task that does a major release. It was trying to bump the version number on the I made a PR for that. As soon as we get that merged I'll make the PR for the release. Please see #967. I'll spend tonight updating the migration guide, let's make sure it is complete before releasing, by the way. EDIT: Migration guide updated! 🎉 |
Hi, I know that many people (including some maintainers) would like first-class support for async primitives (async functions, Promises) into chai core. Does it still fit into the roadmap (with the plan to transform chai into a meta-package)? |
@keithamus I was thinking that maybe we could close this and keep all our roadmap into the project board due to the future plans, otherwise this issue might just get bigger and bigger and it will be probably hard to read, reference and have a scope which is too broad. What does everyone think? |
Yes absolutely. Let's close this. Perhaps we can make a change to the README which points to the roadmap project board.. At any rate there is not much more info in this issue that isn't covered on the roadmap project board. |
TL;DR
Over the next few versions we're going to try to do the following:
chai
into a metapackage which combines these modulesRefactor Messages
@svallory has done some excellent work into refactoring the message syntax for chai assertions. This will make writing plugins simpler, as the need for message variants is removed.
See chaijs/chai#393 for more.
Refactor plugin declarations
Right now the plugin system is simple to use, and has lead to a successful plugin community. But it could be better.
Assertions should declare the flags they use in an up-front manner, allowing deeper introspection for interfaces. This will allow us to put effort into making interfaces which are pain points for the community - such as an assert interface that works with <=IE8, and expect/should interfaces which use method assertions over property assertions.
Two of the biggest causes of fragmentation of chai users is due to low browser support, and the property assertions - which spawns off codebases like the following:
While we can't be all things to all people, some of these libraries exist purely
because Chai has failed them, and so we see a lot of duplication of effort.
Some of this has been discussed in chaijs/chai#117.
Split out chai codebase into various modules
We've been putting efforts into splitting chai out into smaller modules, and it's been working well - but I think we can go further. The way I see things, we can split chai into the following:
lib/assert
,lib/chai/utils.[add/overwrite]*.js
)lib/chai/core/assertions.js
)lib/chai/utils/getMessage.js
, and @svallory's work)lib/chai/core/assertions.js
.throw assertion)lib/chai/utils/inspect.js
, old code exists as loupe, but needs updating and removing from chai proper)lib/chai/utils/getPathInfo
, old code exists as pathval, but needs updating and removing from chai proper)lib/chai/interface/assert
)lib/chai/interface/expect
)lib/chai/interface/should
)Becoming more modular, we can also hope to facilitate some new and interesting use cases of our work, such as described in chaijs/chai#346
Chai metapackage
With modules pulled out of the main chai codebase, we can effectively turn the chai package into a metapackage of the rest of chai. It'll still be a first class part of chai, and we'd funnel all issues to this - but by having discrete modules for each part, we give the community a chance to pick and chose elements. We can innovate in areas, like having a
chai-lite
module which can be used in older browsers, while chai proper can innovate upon evergreen browsers.Roadmap:
Based on the above, I see the roadmap as follows:
3.0.0
4.0.0
5.0.0
5.1.0
assert-legacy
,expect-methods
andshould-methods
.The text was updated successfully, but these errors were encountered: