Skip to content
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

Update jasmine to 2.x (one packages first) #1089

Open
wants to merge 10 commits into
base: master
Choose a base branch
from

Conversation

kiskoza
Copy link
Contributor

@kiskoza kiskoza commented Sep 5, 2024

I have a feeling that my other PR (#990) is too big to be reviewed easily with its +3k/-3k line change, so I had the idea of making it more incremental with smaller chunks of code. Of course, in the end we will need to merge that too, but let's see what can we achieve this way.

This time I only included the refactoring around the runners, but kept the atom-core on the old, reliable jasmine1 runner. There's only one package I switched over to the new jasmine2, it's the archive-view package with only 21 test cases. Baby steps for achievable goals 😄

I've run the package specs both in a non-headless mode and from the terminal, had no problems on Linux.

kiskoza and others added 10 commits September 5, 2024 22:22
Pro:
* Less code to maintain & update
* run-package-tests was unused

Con:
* Lost the formatting
Pro:
* Less code to maintain
…ored jasmine

* only the vendored version got used during the tests
* don't need to require jasmine multiple times

Clean up vendored jasmine to make it easier to upgrade

Remove checks about global jasmine as we're not setting it anymore
@confused-Techie
Copy link
Member

While I haven't dived into this yet, I truly appreciate your grace in understanding the difficulties of reviewing the larger PRs.

Obviously I wish we could review and merge your initial one, baby steps may be the best way to move things forward. And I'm more than happy to take a look at this one, but of course would want to lean on @savetheclocktower's pretty expert view at finding the choke points that will bit us later. Although if this is all based off your previous work, it's possible you two have already ironed that out

@savetheclocktower
Copy link
Contributor

I put this one on the back burner for the reasons explained here, but I'm on a newer laptop these days and should try again. Thanks for opening this PR; I'll get to it when I can.

@2colours
Copy link

@savetheclocktower @kiskoza any updates on this one? I think it's a very important overhaul topic, the PR seems kinda stale at the moment.

@savetheclocktower
Copy link
Contributor

savetheclocktower commented Feb 20, 2025

@2colours I got pretty far on reviewing #990, but was derailed by the reproducible crash in the tests and then never found my way back to it. I'd suggest checking out #990 and seeing if you can get the entire spec suite to run in Jasmine 2.

EDIT: I don't mean to make it your problem — just suggesting something that could help move it along. I've always got ten Pulsar-related things I could be working on, so at the moment I can't predict when I'll be able to give this my full attention again.

@kiskoza
Copy link
Contributor Author

kiskoza commented Feb 21, 2025

@2colours I'm not actively working on this PR nor #990. feel free to pick up the conversation and/or use any of my commits, I'm not planning to rebase it as long as it'll be just ignored again :(

@savetheclocktower
Copy link
Contributor

@2colours I'm not actively working on this PR nor #990. feel free to pick up the conversation and/or use any of my commits, I'm not planning to rebase it as long as it'll be just ignored again :(

@kiskoza, you have every right to feel bitter about how long this has taken. I'm trying to work on a dozen things at once and somehow thought that I was blocked on giving your PR further review; in fact, it was that crash I was experiencing that led me to put #990 aside for a while, at which point I got distracted by other tasks.

Shortly after the last activity on #990, I got a new Apple Silicon Mac and discovered that a performance bug we thought we'd worked around for all Mac users back in 2023 was actually still affecting Apple Silicon macOS users. The only real fix is to upgrade Electron, so I decided to shift most of my attention to the other project I'd been neglecting: upgrading Pulsar to Electron 30+. This is something that will benefit everyone, something that I had unfairly been leaving to @mauricioszabo to keep in a holding pattern — but it was never going to get done unless more than one of us was working on it at once.

It's going to make Pulsar so much faster in general, but especially in startup time, and it'll only get harder to do the longer we put it off. You could probably make the same argument about upgrading from Jasmine 1, and I'd agree with you — hence my dilemma.

All the active contributors to Pulsar have their specializations, and some of them do things that I'd hate to have to do myself, so I'm appreciative. But right now I'm the only core contributor that routinely works on the main codebase of the app, and it's stressful to have that responsibility and to try to keep lots of people happy at once. I know that, regardless of the reason why, it doesn't feel good to spend effort to produce something that languishes for months and appears to be unappreciated; perhaps it helps just a bit to know that the reason is not malice or even apathy but simply that there aren't enough hours in the day.

You were very gracious to issue a gentle reminder in Discord back in July; that's what got me to give #990 some attention soon after. As silly as it might seem, the “drop gentle reminders in Discord” system is probably the most successful system we've had so far to ensure that routine work like PR review doesn't get procrastinated. @2colours knows this better than anyone, and has their own legitimate gripes about contributions to ppm that have gathered dust. But @2colours is also proof that that work does eventually get merged!

I appreciate your fearlessness in confronting the creakiest code in the entire codebase: the load-bearing code that supports all the specs that we rely on to know whether or not we've broken stuff. I want you to know that your work will be used in some way, even if you disavow #990 or hand it off to someone else. Even if we were to decide to bite the bullet and jump straight to Jasmine 5, I'd still routinely refer to #990 to see how you or I addressed a particular challenge.

I swear to you that we'd be thrilled to keep you as an occasional contributor despite this ongoing saga. And I'll revisit #990 to see if I can still reproduce that crash in the spec suite, and to work around it one way or another in order to unblock that PR's review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants