Skip to content

Commit 88989d1

Browse files
committed
feat: update ideas list
1 parent 18c7bff commit 88989d1

File tree

1 file changed

+66
-1
lines changed

1 file changed

+66
-1
lines changed

ideas.md

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1198,4 +1198,69 @@ Familiarity and comfort with JavaScript would be highly recommended, given that
11981198

11991199
### Potential mentors
12001200

1201-
@kgryte @Planeshifter
1201+
@kgryte @Planeshifter
1202+
1203+
* * *
1204+
1205+
## ESLint 9 Migration for JSON and YAML Linting
1206+
1207+
Linked issue: <https://github.com/stdlib-js/google-summer-of-code/issues/90>
1208+
1209+
### Idea
1210+
1211+
We will migrate stdlib-js to ESLint 9 to take advantage of new features, performance improvements, and enhanced file type support (including JSON and YAML). Additionally, this idea posits that we will create new ESLint rules that enforce project-specific coding standards for stdlib. This dual approach ensures both modern linting capabilities and adherence to stdlib’s code expectations and style guidelines.
1212+
1213+
### Expected outcomes
1214+
1215+
- ESLint 9 Integration: A full migration of the linting infrastructure to ESLint 9.
1216+
- Extended File Support: Ability to lint not just JavaScript but also JSON and YAML files with the help of ESLint.
1217+
- New Custom Rules: New rules to enforce more of stdlib’s conventions.
1218+
- Enhanced Code Quality: Improved consistency and code quality by enforcing additional project-specific standards across the codebase.
1219+
- Updated Configurations: Comprehensive configuration updates that incorporate both ESLint 9 changes and the new custom rules.
1220+
1221+
### Status
1222+
1223+
stdlib currently uses ESLint 8. The project already has an [extensive collection of custom lint rules](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/_tools/eslint/rules).
1224+
1225+
### Involved software
1226+
1227+
No additional external dependencies aside from ESLint.
1228+
1229+
1230+
1231+
1232+
### Technology
1233+
1234+
nodejs, JavaScript
1235+
1236+
### Other technology
1237+
1238+
n/a
1239+
1240+
1241+
### Difficulty
1242+
1243+
3
1244+
1245+
### Difficulty justification
1246+
1247+
Migrating to ESLint 9 requires a detailed review of current linting configurations and potential refactoring of custom rules. The project will involve understanding new semantics and breaking changes introduced in ESLint 9, addressing compatibility issues, and integrating support for additional file types such as JSON and YAML and bespoke rules for these new file types. Additionally, thorough testing across various scenarios is necessary to ensure stability, making this a task that is intermediate in complexity.
1248+
1249+
1250+
1251+
### Prerequisite knowledge
1252+
1253+
A thorough understanding of ESLint, including its configuration system and plugin architecture, is essential. Familiarity with JavaScript and Node.js is required, along with experience in developing custom linting rules. Additionally, knowledge of continuous integration and automated testing practices is recommended to ensure that any new linting rules integrate smoothly into stdlib’s development workflow.
1254+
1255+
1256+
1257+
### Project length
1258+
1259+
175
1260+
1261+
### Checklist
1262+
1263+
- [x] I have read and understood the [Code of Conduct](https://github.com/stdlib-js/stdlib/blob/develop/CODE_OF_CONDUCT.md).
1264+
- [x] I have read and understood the application materials found in this repository.
1265+
- [x] The issue name begins with `[Idea]:` and succinctly describes your idea.
1266+
- [x] I understand that, in order to apply to be a GSoC contributor, I must submit my final application to <https://summerofcode.withgoogle.com/> **before** the submission deadline.

0 commit comments

Comments
 (0)