activist
activist copied to clipboard
Switch project over to use Biome instead of Prettier and ESLint directly
Terms
- [x] I have searched open and closed feature requests
- [x] I agree to follow activist's Code of Conduct
Description
To improve the developer experience, it would be good if we did a migration of our frontend formatting that's currently Prettier based and frontend linting that's currently ESLint based to use Biome instead. This will speed up the time that's required to run pre-commit hooks and also save testing resources within CI. We can also potentially use other features like JSON sorting (assuming that it's using Python sorting methods where periods are before underscores).
- Note that this is currently blocked before we finish #919
Contribution
Happy to support with this and review a PR/functionality!
hi @andrewtavis! I would like to work on this issue, if it's available
Sure thing, @jennethydyrova! Remember that we'll need to update the documentation (specifically the contributing guide) as well as the GitHub Actions and pre-commit hooks with this change. Please let us know if you need support!
Unblocking as we didn't get the Nuxt migration in. Please use the highest version you can for this, @jennethydyrova :)
sounds good, thank you!
Hi @andrewtavis! Before I start work on this issue, I’ve checked the Biome docs, and it looks like Vue files are only partially supported at the moment. For example, it covers rules like useVueMultiWordComponentNames, noVueDataObjectDeclaration, noVueReservedKeys, and noVueReservedProps, but many of our existing rules (attribute/block order, v-for keys, event hyphenation, Vue a11y, etc.) aren’t available yet.
I also found this in the Biome v1.6 release notes: “partial support for Astro, Svelte and Vue files”, which suggests that template or Vue-file support isn’t fully feature-complete yet. (See: https://biomejs.dev/blog/biome-v1-6/#partial-support-for-astro-svelte-and-vue-files )
Some other helpful links:
Vue domain rules: https://biomejs.dev/linter/domains/#vue
Language support limitations: https://biomejs.dev/internals/language-support/#html-super-languages-support
Did you create this issue with those caveats in mind, or are you envisioning a hybrid setup (Biome for JS/TS and ESLint for Vue until coverage improves)? Please correct me if there’s any part I’ve misunderstood.
Thanks so much for the research, @jennethydyrova! We weren't fully clear on the limitations at time of writing. Maybe it's best to keep this on hold? What do you think, @nicki182?
Let's keep it on hold and put that when biome has full support of Vue, then we do this. We are not in a hurry and it's just something we thought about implementing to make development experience better and since it runs in rust make the pre-commit run faster since it would have eslint and prettier within it. @andrewtavis. Thank you for your research @jennethydyrova
alright then, I will pick another issue to work on. @andrewtavis is there anything in backlog perhaps? looks like all issues are taken
There are potential new ones to be done. I can for now create some unit testing issues or she could review the create services on the backend if they are functional and properly using the correct permissions? @andrewtavis
Sounds good to me :) Let's maybe make some unit testing issues for now and we can look into create services later in the week. Thanks for exploring other contributions, @jennethydyrova, and thanks for directing what could be worked on, @nicki182 😊
Hi @andrewtavis
I’ve reviewed this issue and I’m really excited to work on it! I’d like to request assignment so I can start contributing. I’ll make sure to follow the project’s guidelines and maintain code quality.
I’m preparing for GSoC 2026 and eager to learn while contributing meaningfully to this project. 🙏
Best, Dharmendra Solanki
Thanks for your interest here, @ProgrammingPirates! We realized that this issue isn't possible right now give the state of Biome based on @jennethydyrova's exploration here :)
I see that you've written in other issues. Let's pick it up from there!