Skip to content

feat(dev): Add oxlint and a CI workflow for fmt & lint#777

Open
a5ehren wants to merge 1 commit into
TibixDev:mainfrom
a5ehren:oxfmt
Open

feat(dev): Add oxlint and a CI workflow for fmt & lint#777
a5ehren wants to merge 1 commit into
TibixDev:mainfrom
a5ehren:oxfmt

Conversation

@a5ehren

@a5ehren a5ehren commented May 12, 2026

Copy link
Copy Markdown
Contributor

The project did not have any mechanism to enforce format settings or code quality, so this PR does:

  • Update prettier config to be aware of tailwind CSS
  • Add oxlint with a basic config
  • Fix the issues that fall out of prettier and oxlint against current HEAD
  • Add a CI workflow to check both on all PRs

@a5ehren a5ehren changed the title feat(dev): Add oxfmt and oxlint pre-commit hook feat(dev): Add oxlint and a CI workflow for fmt & lint May 13, 2026

@waffles-dev waffles-dev left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm happy with changes to this one. Leaving final call to @TibixDev - he'll need to set up the branch rule anyway.

Comment thread src/renderer/lib/winboat.ts Outdated

@waffles-dev waffles-dev left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missed one, sry

Comment thread src/renderer/lib/winboat.ts Outdated
* Add oxlint for linting and type checking
* Update prettier config to be aware of tailwind CSS
* Add a CI workflow to run both on all PRs
* Run both tools and accept all edits to get a good baseline

@waffles-dev waffles-dev left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm personally happy with changes, I think this helps to improve quality of the project for long term and that this is good to go as-is.
Waiting on feedback from Tibix - he'll have final say on this one.

@waffles-dev waffles-dev left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey, sorry for the long wait, Tibix has finally gotten around to taking a look - have some minor feedback

Comment thread src/renderer/App.vue
() => winboat?.isUpdatingGuestServer.value,
isUpdating => {
if (isUpdating === true) {
novncURL.value = `http://127.0.0.1:${getActiveHostPort(winboat?.containerMgr!, CommonPorts.NOVNC)}`;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you revert this one? If the ! fails we'd rather have the crash and fix a bug that could cause it to be null, rather than silently return.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(Also, for now, revert any similar instances, if any, of this change in other files)

Comment thread src/main/main.ts
}

app.whenReady().then(() => {
void app.whenReady().then(() => {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tibix has asked if we can disable whatever rule is enforcing the explicit void and revert the relevant changes.

"esModuleInterop": true,
"lib": ["esnext", "dom"],
"types": ["vite/client"]
"types": ["vite/client", "web-bluetooth", "w3c-web-usb"]

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what were these added for?

Comment thread .gitignore

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

revert changes to this file for now - this'd need to be considered in a separate PR

this.appUsageCache[newApps[appIdx].Name] = newApps[appIdx].Usage;
for (const app of newApps) {
app.Usage = this.appCache.find(cachedApp => cachedApp.Name == app.Name)?.Usage || 0;
this.appUsageCache[app.Name] = app.Usage;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can this one also be submitted as a separate PR?
does a rule need to be temporarily disabled to allow the old loop to stay in place? - if so, then please do so and enable the rule in the new PR

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