Initial ideas list for 2025, just to give it a place to live

We'll add more ideas later, we just need to cleanup the ideas we have in the brainstorm document.

Change-Id: I286e5f2b077366830b63e6248fb0bc5dd465c9a0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/406843
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Commit-Queue: Jonas Jensen <jonasfj@google.com>
This commit is contained in:
Jonas Finnemann Jensen
2025-01-30 05:06:34 -08:00
committed by Commit Queue
parent 3581fa7850
commit 89512dc8e8
+77
View File
@@ -0,0 +1,77 @@
> [!warning]
> **Google Summer of Code 2025 is not accepting applications yet**.
------
A list of Google Summer of Code project ideas for Dart.
For GSoC related discussions please use the [dart-gsoc group](https://groups.google.com/forum/#!forum/dart-gsoc).
**Potential mentors**
* Jonas Jensen ([jonasfj](https://github.com/jonasfj)) `jonasfj@google.com`
* Daco Harkes ([dcharkes](https://github.com/dcharkes)) `dacoharkes@google.com`
* Hossein Yousefi ([HosseinYousefi](https://github.com/HosseinYousefi)) `yousefi@google.com`
* Liam Appelbe ([liamappelbe](https://github.com/liamappelbe)) `liama@google.com`
* More to come!
## Project Application Process
All projects assume familiarity with Dart (and sometimes Flutter). Aspiring applicants are encouraged to [learn Dart](https://dart.dev/guides/language/language-tour) and try to write some code.
Applicants are welcome to find and fix bugs in [Dart](https://github.com/dart-lang/sdk) or some of the [packages written by the Dart team](https://pub.dev/publishers/dart.dev/packages). However, getting reviews can take a long time as code owners may be busy working on new features. So instead of requiring applicants to fix a _good first bug_, we
suggest that applicants write a working code sample relevant for the proposed project.
The code sample can be attached to the application as a [**secret** gist](https://gist.github.com/) (please use _secret gists_, and do not share these with other applicants). Suggested ideas below includes proposed "Good Sample Projects".
**Do not spend too much energy on this piece of sample code**, we just want to see
that you can code something relevant -- and that this sample code can run and do something non-trivial. Be aware that we have a limited number of
mentors available, and will only be able to accept a few applicants.
Applications can be submitted through the [summerofcode.withgoogle.com](https://summerofcode.withgoogle.com/) website. Applicants are encouraged to submit draft proposals, linking to Google Docs with permission for mentors to comment. See also the [contributor guide](https://google.github.io/gsocguides/student/writing-a-proposal) on writing a proposal.
**IMPORTANT**: Remember to submit _final proposals_ before [the April 2nd deadline](https://developers.google.com/open-source/gsoc/timeline).
## **Idea:** Exception testing for `package:webcrypto`
- **Possible Mentor(s)**: `jonasfj@google.com`,
- **Difficulty**: Hard
- **Project size**: Large (350 hours)
- **Skills**: Dart, FFI, JS
**Description**: `package:webcrypto` ([github.com/google/webcrypto.dart](https://github.com/google/webcrypto.dart)) is a cross-platform implementation of the [Web Cryptography API](https://www.w3.org/TR/WebCryptoAPI/).
It is important that it behaves the same way whether it's running on Windows, Linux, Mac, Android, iOS, Chrome, Firefox, or Safari. Towards that end, it has a lot of test cases. We could and should probably make more test cases.
But we should also test that it throws the types of exceptions when given incorrect parameters. This probably needs a small test framework to ensure good test coverage.
We expect a proposal for this project to include:
* A sample showing how to test exceptions for `RsaPssPrivateKey.generateKey`.
Ideally, the sample project includes parts of a generalized framework for testing exceptions.
* An outline of what kind of exceptions should be tested?
* A design for extending `TestRunner`, or creating a new framework, to test exceptions thrown by all methods.
* Illustrative code for how test cases would be configured
* Pros and cons of the design (especially when multiple choices are available)
* Timeline for the project
**Good Sample Project**:
Write a test cases that tests the different kinds of errors and exceptions that can be thrown by `RsaPssPrivateKey.generateKey`, run the tests across desktop, Chrome and Firefox. Consider extending the tests to cover all members of `RsaPssPrivateKey`.
Try to generalize these test cases to avoid repetitive code, see the existing [TestRunner](https://github.com/google/webcrypto.dart/blob/5e6d20f820531d2b7b05935c1d78f38a036035e8/lib/src/testing/utils/testrunner.dart#L227) for inspiration.
**Expected outcome**: PRs that land in `package:webcrypto` and increases our confidence in correctness cross-platforms.
## TODO: More ideas as they come!
# Template:
Copy this template.
## **Idea:** ...
- **Possible Mentor(s)**:
- **Difficulty**: Easy / Hard
- **Project size**: Small (90) / Medium (175 hours) / Large (350 hours)
- **Skills**: ...
**Description**: ...
**Good Sample Project**: ...
**Expected outcome**: ...