Skip to content

Commit 89512dc

Browse files
jonasfjCommit Queue
authored andcommitted
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 <[email protected]> Commit-Queue: Jonas Jensen <[email protected]>
1 parent 3581fa7 commit 89512dc

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
> [!warning]
2+
> **Google Summer of Code 2025 is not accepting applications yet**.
3+
4+
------
5+
6+
A list of Google Summer of Code project ideas for Dart.
7+
8+
For GSoC related discussions please use the [dart-gsoc group](https://groups.google.com/forum/#!forum/dart-gsoc).
9+
10+
**Potential mentors**
11+
* Jonas Jensen ([jonasfj](https://github.com/jonasfj)) `[email protected]`
12+
* Daco Harkes ([dcharkes](https://github.com/dcharkes)) `[email protected]`
13+
* Hossein Yousefi ([HosseinYousefi](https://github.com/HosseinYousefi)) `[email protected]`
14+
* Liam Appelbe ([liamappelbe](https://github.com/liamappelbe)) `[email protected]`
15+
* More to come!
16+
17+
## Project Application Process
18+
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.
19+
20+
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
21+
suggest that applicants write a working code sample relevant for the proposed project.
22+
23+
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".
24+
25+
**Do not spend too much energy on this piece of sample code**, we just want to see
26+
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
27+
mentors available, and will only be able to accept a few applicants.
28+
29+
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.
30+
31+
**IMPORTANT**: Remember to submit _final proposals_ before [the April 2nd deadline](https://developers.google.com/open-source/gsoc/timeline).
32+
33+
## **Idea:** Exception testing for `package:webcrypto`
34+
35+
- **Possible Mentor(s)**: `[email protected]`,
36+
- **Difficulty**: Hard
37+
- **Project size**: Large (350 hours)
38+
- **Skills**: Dart, FFI, JS
39+
40+
**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/).
41+
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.
42+
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.
43+
44+
We expect a proposal for this project to include:
45+
* A sample showing how to test exceptions for `RsaPssPrivateKey.generateKey`.
46+
Ideally, the sample project includes parts of a generalized framework for testing exceptions.
47+
* An outline of what kind of exceptions should be tested?
48+
* A design for extending `TestRunner`, or creating a new framework, to test exceptions thrown by all methods.
49+
* Illustrative code for how test cases would be configured
50+
* Pros and cons of the design (especially when multiple choices are available)
51+
* Timeline for the project
52+
53+
**Good Sample Project**:
54+
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`.
55+
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.
56+
57+
58+
**Expected outcome**: PRs that land in `package:webcrypto` and increases our confidence in correctness cross-platforms.
59+
60+
## TODO: More ideas as they come!
61+
62+
# Template:
63+
64+
Copy this template.
65+
66+
## **Idea:** ...
67+
68+
- **Possible Mentor(s)**:
69+
- **Difficulty**: Easy / Hard
70+
- **Project size**: Small (90) / Medium (175 hours) / Large (350 hours)
71+
- **Skills**: ...
72+
73+
**Description**: ...
74+
75+
**Good Sample Project**: ...
76+
77+
**Expected outcome**: ...

0 commit comments

Comments
 (0)