From 58d678caf3fddd95261d5b11f51215f47cf765e6 Mon Sep 17 00:00:00 2001 From: vidishagawas121 Date: Tue, 5 Aug 2025 17:57:14 +0530 Subject: [PATCH 1/3] docs: add GSoC midterm evaluation post to README --- README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f6188f99d..9f2c0b93e 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,7 @@ for Scala JS or Scala Native, add a `targetType=...` query-string parameter: For more information read the [shields.io API](http://shields.io/) ## πŸš€Google Summer of Code (GSoC) -![Google Summer of Code (GSoC)](doc/img/gsoc-scaladex.png) +![Google Summer of Code (GSoC)](doc/assets/Scaladex.png) @@ -99,6 +99,7 @@ This project is participating in **Google Summer of Code (GSoC) 2025**! If you'r ### πŸ“Œ GSoC Resources πŸ‘‰ **Scala Center GSoC Ideas**: [https://github.com/scalacenter/GoogleSummerOfCode](https://github.com/scalacenter/GoogleSummerOfCode) + πŸ“š **Explore Past GSoC Projects with Scala Center**: [https://www.gsocorganizations.dev/organization/scala-center/](https://www.gsocorganizations.dev/organization/scala-center/) --- @@ -121,6 +122,7 @@ This project is participating in **Google Summer of Code (GSoC) 2025**! If you'r * [Adrien Piquerez](https://github.com/adpi2) * [Kannupriya Kalra](https://github.com/kannupriyakalra) * **Proposal**: [GSoC 2024 Proposal](https://github.com/user-attachments/files/16697199/proposal.pdf) +* **Announcement**: [Official Acceptance Post](https://www.linkedin.com/posts/skingle_scala-scalacenter-gsoc2024-activity-7192214506901504000-HBGc) | [Midterm evaluation post](https://www.linkedin.com/posts/skingle_scala-gsoc-gsoc2024-activity-7218525241944215552-1tpn?utm_source=share&utm_medium=member_android&rcm=ACoAAFp2nsYBNBsrS0fo8jK1QyeRCdtOBCWgUuQ) | [Final evalution post](https://www.linkedin.com/posts/skingle_certificate-activity-7236760686373007362-R1NW?utm_source=share&utm_medium=member_android&rcm=ACoAAFp2nsYBNBsrS0fo8jK1QyeRCdtOBCWgUuQ) * **Blog**: πŸ“Œ [How I Started My GSoC Journey](https://www.linkedin.com/pulse/how-i-started-my-gsoc24-journey-scala-center-siddharth-ingle-sdf5e/) * **Work Log**: πŸ“Œ [GitHub Project Board](https://github.com/users/skingle/projects/2) @@ -150,8 +152,9 @@ This project is participating in **Google Summer of Code (GSoC) 2025**! If you'r * **Mentors**: * [Adrien Piquerez](https://github.com/adpi2) * [Kannupriya Kalra](https://github.com/kannupriyakalra) +* **Announcement**: [Official Acceptance Post](https://www.linkedin.com/posts/vidisha-gawas-146348364_gsoc-gsoc2025-scalacenter-activity-7326793814331871232-0hGz?utm_source=share&utm_medium=member_android&rcm=ACoAAFp2nsYBNBsrS0fo8jK1QyeRCdtOBCWgUuQ) | [Midterm evaluation post](https://www.linkedin.com/posts/vidisha-gawas-146348364_gsoc2025-scalacenter-scaladex-activity-7352311549400662016-zvpl?utm_source=share&utm_medium=member_android&rcm=ACoAAFp2nsYBNBsrS0fo8jK1QyeRCdtOBCWgUuQ) * **Blog**: [Building with GSoC](https://opensourcegirl.hashnode.dev/) -* **Work Log**:[https://github.com/users/vidishagawas121/projects/2](https://github.com/users/vidishagawas121/projects/2) +* **Work Log**:[GSoC Progress Tracker](https://github.com/users/vidishagawas121/projects/2) * **Technologies**: Scala, SBT, Play Framework, Elasticsearch, GitHub Actions, JavaScript, HTML/CSS * **Topics**: Compilers, Open Source, Plugin Systems From c23a8fff5f8bc4f069994c9ce41a0f303af415c9 Mon Sep 17 00:00:00 2001 From: vidishagawas121 Date: Tue, 5 Aug 2025 18:41:52 +0530 Subject: [PATCH 2/3] update: revised README content --- README.md | 10 +++++++++- .../scaladex/core/model/BinaryVersionTests.scala | 15 +++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9f2c0b93e..137eb3f15 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,15 @@ If your artifact does not have any binary version it is considered a Java artifa Yet some Java artifact are closely related to Scala. In that case you can force its indexing by updating the [non-standard.json](https://github.com/scalacenter/scaladex-contrib/blob/master/non-standard.json) file in the [scaladex-contrib](https://github.com/scalacenter/scaladex-contrib) repository. -At the moment we don't support full Scala binary versions, that are often used in Scala compiler plugins. +Scaladex supports various binary version formats: +- Standard Scala versions: `_2.13`, `_3`, `_2.12` +- Scala.js versions: `_sjs1_2.13`, `_sjs1_3` +- Scala Native versions: `_native0.4_2.13` +- SBT plugin versions: `_2.13_1.0`, `_2.12_0.13` +- Mill plugin versions: `_mill0.9_2.13` + +Compiler plugins are currently being added to Scaladex. They typically use full Scala binary versions (e.g., `_2.13.10`). +If you have a compiler plugin that needs to be indexed, please open an issue in the [scaladex-contrib](https://github.com/scalacenter/scaladex-contrib) repository. #### Does the pom file contain the `scm` attribute and does it points to a public Github repository? diff --git a/modules/core/shared/src/test/scala/scaladex/core/model/BinaryVersionTests.scala b/modules/core/shared/src/test/scala/scaladex/core/model/BinaryVersionTests.scala index ac51747cd..d931fd975 100644 --- a/modules/core/shared/src/test/scala/scaladex/core/model/BinaryVersionTests.scala +++ b/modules/core/shared/src/test/scala/scaladex/core/model/BinaryVersionTests.scala @@ -54,4 +54,19 @@ class BinaryVersionTests extends AnyFunSpec with Matchers with OptionValues with expected.value shouldBe input } } + it("should handle compiler plugin versions (TODO)") { + // This test will be implemented when compiler plugin support is added + // Example test cases: + // val cases = Table( + // ("input", "target"), + // ("_2.13.10", BinaryVersion(CompilerPlugin, Scala(Version(2, 13, 10)))), + // ("_3.3.1", BinaryVersion(CompilerPlugin, Scala(Version(3, 3, 1)))) + // ) + // + // forAll(cases) { (input, expected) => + // BinaryVersion.parse(input) should contain(expected) + // expected.value shouldBe input + // } + succeed + } end BinaryVersionTests From e31ab8528ec660d4c5324cba1e984bbcc94a6b46 Mon Sep 17 00:00:00 2001 From: vidishagawas121 Date: Tue, 5 Aug 2025 18:46:19 +0530 Subject: [PATCH 3/3] update: made the required changes --- .../scaladex/core/model/BinaryVersion.scala | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/modules/core/shared/src/main/scala/scaladex/core/model/BinaryVersion.scala b/modules/core/shared/src/main/scala/scaladex/core/model/BinaryVersion.scala index 75671ea20..2fbcd0478 100644 --- a/modules/core/shared/src/main/scala/scaladex/core/model/BinaryVersion.scala +++ b/modules/core/shared/src/main/scala/scaladex/core/model/BinaryVersion.scala @@ -5,6 +5,24 @@ import scaladex.core.util.Parsers import fastparse.* import fastparse.NoWhitespace.* +/** Represents a binary version of a Scala artifact. + * + * The binary version consists of two parts: + * 1. platform: The runtime platform (JVM, Scala.js, Scala Native, SBT plugin, Mill plugin) + * 2. language: The programming language (Java, Scala with version) + * + * Examples: + * - JVM Scala 2.13: BinaryVersion(Jvm, Scala(Version(2, 13, 0))) + * - Scala.js 1.0 with Scala 2.13: BinaryVersion(ScalaJs(Version(1, 0, 0)), Scala(Version(2, 13, 0))) + * - SBT plugin 1.0 with Scala 2.13: BinaryVersion(SbtPlugin(Version(1, 0, 0)), Scala(Version(2, 13, 0))) + * + * TODO: Add support for compiler plugins which use full Scala versions (e.g., 2.13.10) + * This will require: + * 1. Extending the Platform type to include CompilerPlugin + * 2. Updating the Parser to handle full version numbers + * 3. Modifying the artifact indexing logic to recognize compiler plugin artifacts + */ + final case class BinaryVersion(platform: Platform, language: Language): def isValid: Boolean = platform.isValid && language.isValid