Replies: 7 comments 2 replies
-
|
Also:
|
Beta Was this translation helpful? Give feedback.
-
|
It might also be wise to completely remove support for passing a spec order to |
Beta Was this translation helpful? Give feedback.
-
|
It would be nice to switch the HTML reporter's spec filtering functionality to do exact prefix matching (like |
Beta Was this translation helpful? Give feedback.
-
|
The parameters passed to the suiteStarted, suiteDone, specStarted, and specDone are references to mutable internal state. This creates a couple of problems. First, a reporter that retains the parameters passed to suiteStarted or specStarted could behave differently when used with jasmine-browser-runner than when used with the jasmine package, because the former puts a serialization boundary between jasmine-core and reporters. Second, any change to the management of The next major release should switch to passing deep clones to reporter methods. That would also allow for dropping irrelevant properties like |
Beta Was this translation helpful? Give feedback.
-
|
#826 as well |
Beta Was this translation helpful? Give feedback.
-
I think that what I said above was more or less right before the 5.0 release. But after taking another look at the ecosystem, I think things have changed. Today, just changing the version number isn't likely to have much impact. The real question is the effect of the underlying breaking changes. I found the following packages that interoperate with Jasmine and have at least 50k weekly NPM downloads. 50k is a bit less than 1% of jasmine-core's download count and also the smallest download count of any package whose users I hear from, so it seems like a reasonable lower threshold for relevance.
(I'm considering a reporter to be partially compatible if it works with 5.x but fails to report some errors, and mostly compatible if it reports all errors but is missing support for some other features. I'm considering a package to be unmaintained if it's gone over a year with no maintainer activity and has open issues that are at least a year old and never received a maintainer response.) That leaves only three significant packages that care about the version number itself. One of them, karma-jasmine, is abandoned. At this point I think it's safe to assume that any Karma user who hasn't already set up an NPM override to get the latest jasmine-core is going to stay on 4.x forever. So the impact of another major version bump by itself would be minimal. The relevant questions are:
A 6.0 that avoids breaking Karma or jasmine-spec-reporter could be a pretty reasonable thing to do, particularly if it's possible to clean up the reporter-related warts without breaking those packages. I think that's pretty likely. |
Beta Was this translation helpful? Give feedback.
-
|
selenium-webdriver 4.34 officially dropped support for Node 18. It appears to still work, but who knows how long that will continue. So there will probably come a time when the combination of Node 18, the latest browsers, and jasmine-browser-runner no longer works. Keeping Node 18 support until it actually breaks is an option, since I've long reserved the right to drop support for past-EOL problems in minor releases. But given that many people expect that sort of thing to be semver-major, it might be worth proactively dropping Node 18 if there's a major release. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
My current plan is to avoid doing a major release of jasmine-core for as long as possible. There are two reasons for that. One is that major releases come with a huge cost to the Jasmine ecosystem. Maintainers of related packages all have to update. Worse yet, many users (a majority, in my estimation) use Jasmine in combination with software that's either abandoned or irregularly maintained. Karma is the most obvious example right now, but it wasn't the first and it won't be the last. Major version bumps tend to leave users of those packages stranded on older version of jasmine-core.
The other reason is that Jasmine is mostly finished. That doesn't mean that there won't be any changes in the future. But I don't foresee anything that would require breaking changes. And since jasmine-core is largely insulated from the parts of the JS world that churn a lot, it'll hopefully be a long time before anything like that comes up.
That doesn't mean that there will never be a jasmine-core 6.0. But it does mean that there would need to be a really good reason, and right now I don't see any really good reason on the horizon.
That said, if we ever do a 6.0, there are a few things that would be nice to clean up:
These have never been accurate or reliably present due to JSON serialization limitations, and no reporters that use them have been found. They were deprecated in 5.4.0.
The change to reuse a core instance across multiple boot() calls was a mistake and it would be nice to undo it.
I'd almost certainly do this if I was in a situation where the jasmine package needed a breaking change but jasmine-core didn't. Otherwise, it might not be worthwhile.
Beta Was this translation helpful? Give feedback.
All reactions