sindresorhus / caprine

Elegant Facebook Messenger desktop app

Home Page:https://sindresorhus.com/caprine

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Updating package.json and requesting to help

sgtcoder opened this issue · comments

I was wondering how I can help with updating the package.json file to newer packages. The below are the latest package versions I was able to install while keeping the app working. Some of them could not be updated.

What would I need to do to get this tested fully and so I can create a PR if that's fine with the team?

I have been using it from my fork and has been working for a few days now: https://github.com/sgtcoder/caprine

"dependencies": {
	"@electron/remote": "^2.1.2",
	"@sindresorhus/do-not-disturb": "^1.1.0",
	"electron-better-ipc": "^2.0.1",
	"electron-context-menu": "^3.6.1",
	"electron-debug": "^3.2.0",
	"electron-dl": "^3.5.1",
	"electron-localshortcut": "^3.2.1",
	"electron-store": "^8.1.0",
	"electron-updater": "^6.1.7",
	"electron-util": "^0.17.2",
	"element-ready": "^5.0.0",
	"facebook-locales": "^1.0.916",
	"is-online": "^9.0.1",
	"json-schema-typed": "^8.0.1",
	"lodash": "^4.17.21",
	"npm-check-updates": "^16.14.14",
	"p-wait-for": "^3.2.0"
},
"devDependencies": {
	"@sindresorhus/tsconfig": "^0.7.0",
	"@types/electron-localshortcut": "^3.1.3",
	"@types/facebook-locales": "^1.0.2",
	"@types/lodash": "^4.14.202",
	"del-cli": "^5.1.0",
	"electron": "^28.2.1",
	"electron-builder": "^24.9.1",
	"husky": "^9.0.10",
	"np": "^9.2.0",
	"patch-package": "^8.0.0",
	"stylelint": "^16.2.1",
	"stylelint-config-xo": "^0.22.0",
	"typescript": "^5.3.3",
	"xo": "^0.56.0"
},

Hi @sgtcoder, thanks for reaching out and offering to help with the project!

The current main issue with the project is that there is a lot of technical debt, probably even before the project was rewritten from JS to TS. Currently everything is done in a relatively old fashioned way compared to how Electron has changed over time. There is also a lot of dead code that could be trimmed.

The problem with upgrading packages is that Electron still doesn't support ESM modules, so if we wanted to bump the versions to the newest ones, we'd need a builder for the code that would build everything with the ESM modules into a codebase that can be consumed by Electron.

I wanted to solve this by rewriting everything to work with electron-vite since it seems like a simplest solution out there, but I didn't have time to properly do it.

If you'd like to help out, I think it would benefit the project much more when it gets refactored than tweaking the packages to use the latest version that is compatible. You can open a PR so we could see if this version updates you've done work out but it put more focus on refactoring.

We could establish some channel for communication to speed things up. Is Discord fine by you?

Hi @dusansimic thank you for the details and that makes sense about the ESM modules.

I did however was able to update all packages in package.json except a few and I have been using it for several days now.

I will look into your other details. And I am on Discord as well sgtcoder