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

It's time to replace Gulp #56

Draft
wants to merge 120 commits into
base: Maslow-Main
Choose a base branch
from

Conversation

md8n
Copy link

@md8n md8n commented Nov 14, 2024

We're stuck on gulp v4, and the upgrade path is painful. More importantly is that gulp is effectively abandonware.

In reality we need to ditch gulp and its way of doing things with something better.

Right now, the thing that is 'better' is also much more comprehensive, and built on the knowledge from the last several years of how to do JS/TS based projects. And that is bun

This PR shifts over to bun, replacing all of the gulpisms along the way.

As much as possible, plain js/ts techniques are used, the idea is that things should just work, even if bun was not the tech chosen.

@davidelang
Copy link

davidelang commented Nov 15, 2024 via email

@md8n
Copy link
Author

md8n commented Nov 18, 2024

how does this interact with the upstream project?

It doesn't, largely. So obviously there's significant issues with that.

are they also doing similar work?

Their most recent changes look to be around 3 months ago, and they aren't touching this stuff at all.

What are they looking to migrate to?

I believe that they are not looking at migration at all. My best guess is that it has fallen into the "too-hard basket"

would it be possible to split this into two steps 1. eliminate the gulpisms (which should be acceptable upstream) 2. make the actual transition from gulp to something else

That's what I've been exploring. There's a lot of embedded gulpisms here. More importantly, as an aspect of that, there's a lot of code that was bad practice when it was done, and has gotten worse with time. And which is effectively entrenched because of gulp.

The key consideration here, is that gulp is, to all intents and purposes, abandonware. It will not be updated in any meaningful way. To make matters worse, webui is not even on the latest version of gulp, and the version that it is on has some significant incompatibilities with the latest version, such as you can call it the latest version.

Another way of phrasing all of the above is that there is an enormous technical debt with webui. And that fastest way of paying down that technical debt is ... don't ... the least painful way is to cut our loses and move on with whatever works best now, which is bun.

@davidelang
Copy link

davidelang commented Nov 18, 2024 via email

@md8n
Copy link
Author

md8n commented Nov 20, 2024

The fear I have is us going off in one direction when upstream goes of in another direction (we already have a rather significant fork in the firmware side of it)

With regard to this I'm pretty sure that they aren't going in any direction.

I would only ask that you try to submit your gulpism removal
upstream, not just work on the maslow fork.

I am used to doing the kind of massive code changes necessary when dependencies have been "left to rot" for too many years. Past experience tells me to get the work done first and then selectively take elements out of the new work for PRs back in the old. The reason for this is that it is usually too difficult to identify an appropriate transitional path, until you've already finished the journey.

I'm already seeing patterns of what can be done for smaller PRs that could be submitted to the upstream codebase. But I'll continue with what I'm doing for now.

@davidelang
Copy link

davidelang commented Nov 20, 2024 via email

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.

2 participants