GoogleSummerOfCode2021
No description available
Install / Use
/learn @scalacenter/GoogleSummerOfCode2021README
Scala Center - Google Summer of Code 2021
Summary & goals
The Scala Center organisation and its team are dedicated to moving the needle towards a more diverse community, (amongst other) by providing easy-to-access first experience and introduction to the Scala ecosystem. GSoC is a fantastic opportunity to engage with students all around the world and onboard new generations, as well as underrepresented groups in tech!
Scala is a part of Google Summer of Code since 2010. With 65 projects & students, ~70 mentors over the years, many of whom continued contributing to Scala, we are happy to announce that in 2021 the Scala Center will reignite the collaboration and commit to providing an awesome experience going forward.
These are especially exciting times: Scala 3-RC1 has been released mid-February 2021, after 8 years of development. We invite you to chose your project and enjoy the fresh new approach!
More about the history
In the past LAMP, the lab behind the development of Scala at EPFL, invested a lot of time and effort into GSOC, mentoring an average of 8 students every year and having participated in 9 editions of the program starting as early as 2010. In the last 2 editions a lack of human resources and the development of Scala 3 prevented Scala from participating in GSOC.
The Scala Center, a not-for-profit organization with the mission of open source and education, decided to take over and restart the long tradition of students entering our community thanks to GSOC. We collected as much experience and advice as possible from LAMP and from both students and mentors from previous editions and we are organizing the 2021 edition.
We hope that our project list will inspire a motivated, diverse and open-minded team of students to become part of our community by spending a few months working on major open source projects focusing on topics such as developer tooling, data science, concurrent computing, metaprogramming, user interfaces, education and functional programming.
Resources
- Find out who we are on the Scala Center website
- To know more about Google Summer of Code, please visit the website of the event.
Table of Contents
- scala-native-bindgen
- Make scalajs-jfe production-ready
- Module splitting in scalajs-bundler
- Port shapeless-2.x to Scala 3
- Semantic highlighting for Scala code in Metals
- Add missing LSP extensions to Metals
- Add synthetics and symbol information for semanticdb in Scala 3
- Interoperability with Java Language server
- Automatically rerun tests on code changes within Metals LSP server
- Automatic imports of implicits
- Integration of the scala-debug-adapter in Mill
- Implement compilation progress in sbt
- Improve the Scaladex UX and UI
- Course Management Tools - Apply Enhancements
- Coursier - Autocompletion
- Write a compatible
ExplicitResultTypesrule for Scala 3 - Implement support for some scientific computing libraries in Scala 3
- Exhaustivity check for abstract ADTs
- Scaladoc backlinks and smart snippets
- ScalaPy support in Ammonite and Almond
- Support for Jupyter-aware Python libraries in ScalaPy
- Type Facade Generation
- Porting Monix to Scala 3
- Improving performance of type class operators
- Runnable and embeddable snippets for Scala 3
- Integrating Metals with bazel-bsp
- Creative Coding in Scala
- A Diversity-oriented Scala Curriculum
By topic
The following organisation of projects ideas by topic provides a quicker way to help you find the most interesting project for you. Some projects appear in multiple categories.
- Compiling and metaprogramming:
- scala-native-bindgen
- Module splitting in scalajs-bundler
- Make scalajs-jfe production-ready
- Port shapeless-2.x to Scala 3
- Write a compatible
ExplicitResultTypesrule for Scala 3 - Exhaustivity check for abstract ADTs
- Scaladoc backlinks and smart snippets
- Type Facade Generation
- Improving performance of type class operators
- Porting Monix to Scala 3
- Runnable and embeddable snippets for Scala 3
- Implement support for some scientific computing libraries in Scala 3
- Developer tools
- Semantic highlighting for Scala code in Metals
- Add missing LSP extensions to Metals
- Add synthetics and symbol information for semanticdb in Scala 3
- Interoperability with Java Language server
- Automatically rerun tests on code changes within Metals LSP server
- Automatic imports of implicits
- Integration of the scala-debug-adapter in Mill
- Implement compilation progress in sbt
- Coursier - Autocompletion
- Write a compatible
ExplicitResultTypesrule for Scala 3 - Integrating Metals with bazel-bsp
- User experience
- Education
- Data
- Performance and concurrency
Project ideas
Scala-native-bindgen
|Title |Scala-native-bindgen| |---------------------|-| |Brief description | Scala-native-bindgen is an sbt plugin used to generate [Scala Native] bindings code based on input C headers. The goal of this project is to enhance its functionality to generate C headers for libraries build using Scala Native as well as align it with syntax changes done in Scala Native. | |Expected outcome | Bindgen should be usable with [Scala Native] 0.4 changed syntax. It should allow to generate header files for libraries created using Scala Native based on NIR input.| |Prerequisites | Scala, [Scala Native] basics, C++, sbt| |Estimated difficulty | Medium| |Potential mentors | [Wojciech Mazur] |
Make scalajs-jfe production-ready
|Title | Make scalajs-jfe production-ready| |---------------------|-| |Brief description | scalajs-jfe is a proof-of-concept Java compiler front-end for the [Scala.js] Intermediate Representation (IR, .sjsir files). Its purpose is to be able to use libraries written in Java from Scala.js projects. The compiler misses support for a few language features, but the main missing piece is integration in a build tool, so that it can be used in an actual project. The goal of this project is to bri
Security Score
Audited on Oct 21, 2021
