Code Monkey home page Code Monkey logo

scaladex's Introduction

Scaladex

CI GitHub Discussions

Scaladex is the website where the open source Scala libraries are indexed. Its main purpose is to help Scala developers find useful libraries and to help library authors promote their libraries and find new contributors.

Acknowledgments

Scala Center

This project is funded by the Scala Center.

How it works

Scaladex receives poms automatically from Maven Central (Sonatype) based on the binary version of the artifact ID. Some valid Scala binary versions are _2.13, _3, _sjs1_3, _native0.4_2.13, _2.12_1.0.

Scaladex associates a new artifact to a project by looking at the scm (Source Code Management) attribute in the pom file. At the moment Scaladex only supports Github repositories.

The description of a project (its readme, its avatar, its website link...) are automatically downloaded from Github.

Troubleshooting

My project is missing or some artifacts are missing

Did you publish the artifacts to Maven Central?

Check out how to publish to Maven Central with sbt or Mill:

You can also watch The Last 10 Percent by Stefan Zeiger.

What is the binary version of your artifacts?

If your artifact does not have any binary version it is considered a Java artifact and it will not be automatically indexed. Yet some Java artifact are closely related to Scala. In that case you can force its indexing by updating the non-standard.json file in the scaladex-contrib repository.

At the moment we don't support full Scala binary versions, that are often used in Scala compiler plugins.

Does the pom file contain the scm attribute and does it points to a public Github repository?

If not you can claim that the artifact belongs to your Github repository by updating the claims.json file in the scaladex-contrib repository.

If your project is not hosted by Github you should consider creating a mirror of it in Github.

Do not forget to update the scmInfo setting in your build file before the next release.

My project is hard to find in the search page

Read How to improve the visibility of your project.

How to contribute

Read the Contributing Guide and use Github Discussions for doubts.

Badges

Show the versions of Scala supported by your project!

You can add this badge to the README.MD of your own GitHub projects to show the versions of Scala they support:

cats-core Scala version support

The badge above only summarises latest JVM artifacts, if you'd like a badge for Scala JS or Scala Native, add a targetType=... query-string parameter:

cats-core Scala version support

cats-core Scala version support

Smaller, shorter badges

Latest version

Latest version

For more information read the shields.io API

scaladex's People

Contributors

2m avatar adam-wyluda avatar adamvoss avatar adpi2 avatar ayushkoli772 avatar heathermiller avatar julienrf avatar jvican avatar jyoo980 avatar keynmol avatar masseguillaume avatar mfirry avatar michaelviveros avatar mlachkar avatar olegych avatar piotrkwiecinski avatar rodrigogdea avatar rtyley avatar rusucosmin avatar scala-center-steward[bot] avatar scala-steward avatar scyks avatar sjrd avatar swsnr avatar tgodzik avatar vincenzobaz avatar vosid8 avatar windymelt avatar wkomendera avatar wojciechmazur avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

scaladex's Issues

Scala Days Berlin v2

  • ui for oauth2 login (#12)
  • collaborator can edit information (#49)
  • improve search relevance (#56)
  • new projects, new releases in front page (#54)
  • select artifact & release + target in project page (#58)
  • keywords in project page (#21)
  • + license info (#22)
  • contributor wanted (#25)
  • cookie warning (#3)
  • repo statistics from GitHub visible (#115)
  • restore autocomplete/dropdown bar (#122)

Search page

  • pagination + style
  • order by (stars, fork, latest release)
  • keywords (api)

Internal error when querying API

http://localhost:8080/api/find?query=rapture
generates There was an internal server error.
with Console stacktrace

webappJVM [ERROR] [05/31/2016 01:13:36.036] [scaladex-akka.actor.default-dispatcher-31] [akka.actor.ActorSystemImpl(scaladex)] Error during processing of request HttpRequest(HttpMethod(GET),http://localhost:8080/api/find?query=rapture,List(Host: localhost:8080, Connection: keep-alive, Accept: text/html, application/xhtml+xml, application/xml;q=0.9, image/webp, */*;q=0.8, Upgrade-Insecure-Requests: 1, User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36, Accept-Encoding: gzip, deflate, sdch, Accept-Language: en-US, en;q=0.8, fr;q=0.6, Timeout-Access: <function1>),HttpEntity.Strict(none/none,ByteString()),HttpProtocol(HTTP/1.1))
webappJVM upickle.Invalid$Data: Key Missing: preRelease (data: {
webappJVM     "major": "1",
webappJVM     "minor": "1",
webappJVM     "patch": [
webappJVM         "0"
webappJVM     ]
webappJVM })
webappJVM   at upickle.GeneratedUtil$class.mapToArray(GeneratedUtil.scala:45)
webappJVM   at upickle.default$.mapToArray(Api.scala:25)
webappJVM   at upickle.Implicits$$anonfun$CaseR$1.applyOrElse(Implicits.scala:90)
webappJVM   at upickle.Implicits$$anonfun$CaseR$1.applyOrElse(Implicits.scala:89)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:113)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:103)
webappJVM   at upickle.Types$class.readJs(Types.scala:160)
webappJVM   at upickle.default$.readJs(Api.scala:25)
webappJVM   at upickle.default$.readJs(Api.scala:25)
webappJVM   at upickle.Generated$$anonfun$Tuple4R$1.applyOrElse(Generated.scala:39)
webappJVM   at upickle.Generated$$anonfun$Tuple4R$1.applyOrElse(Generated.scala:39)
webappJVM   at upickle.Implicits$Internal$$anon$1.apply(Implicits.scala:53)
webappJVM   at upickle.Implicits$Internal$$anon$1.apply(Implicits.scala:50)
webappJVM   at scala.PartialFunction$class.applyOrElse(PartialFunction.scala:123)
webappJVM   at upickle.Implicits$Internal$$anon$1.applyOrElse(Implicits.scala:50)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:113)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:103)
webappJVM   at upickle.Implicits$$anonfun$CaseR$1.applyOrElse(Implicits.scala:90)
webappJVM   at upickle.Implicits$$anonfun$CaseR$1.applyOrElse(Implicits.scala:89)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:113)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:103)
webappJVM   at upickle.Types$class.readJs(Types.scala:160)
webappJVM   at upickle.default$.readJs(Api.scala:25)
webappJVM   at upickle.default$.readJs(Api.scala:25)
webappJVM   at upickle.Generated$$anonfun$Tuple9R$1.applyOrElse(Generated.scala:79)
webappJVM   at upickle.Generated$$anonfun$Tuple9R$1.applyOrElse(Generated.scala:79)
webappJVM   at upickle.Implicits$Internal$$anon$1.apply(Implicits.scala:53)
webappJVM   at upickle.Implicits$Internal$$anon$1.apply(Implicits.scala:50)
webappJVM   at scala.PartialFunction$class.applyOrElse(PartialFunction.scala:123)
webappJVM   at upickle.Implicits$Internal$$anon$1.applyOrElse(Implicits.scala:50)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:113)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:103)
webappJVM   at upickle.Implicits$$anonfun$CaseR$1.applyOrElse(Implicits.scala:90)
webappJVM   at upickle.Implicits$$anonfun$CaseR$1.applyOrElse(Implicits.scala:89)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:113)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:103)
webappJVM   at scala.PartialFunction$class.applyOrElse(PartialFunction.scala:123)
webappJVM   at upickle.Types$Reader$$anon$2.applyOrElse(Types.scala:103)
webappJVM   at upickle.Implicits$Internal$$anon$1.apply(Implicits.scala:53)
webappJVM   at upickle.Implicits$Internal$$anon$1.apply(Implicits.scala:50)
webappJVM   at scala.PartialFunction$class.applyOrElse(PartialFunction.scala:123)
webappJVM   at upickle.Implicits$Internal$$anon$1.applyOrElse(Implicits.scala:50)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:113)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:103)
webappJVM   at upickle.Types$class.readJs(Types.scala:160)
webappJVM   at upickle.default$.readJs(Api.scala:25)
webappJVM   at upickle.Implicits$$anonfun$SeqishR$1$$anonfun$applyOrElse$1.apply(Implicits.scala:146)
webappJVM   at upickle.Implicits$$anonfun$SeqishR$1$$anonfun$applyOrElse$1.apply(Implicits.scala:146)
webappJVM   at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
webappJVM   at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
webappJVM   at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
webappJVM   at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48)
webappJVM   at scala.collection.TraversableLike$class.map(TraversableLike.scala:234)
webappJVM   at scala.collection.AbstractTraversable.map(Traversable.scala:104)
webappJVM   at upickle.Implicits$$anonfun$SeqishR$1.applyOrElse(Implicits.scala:146)
webappJVM   at upickle.Implicits$$anonfun$SeqishR$1.applyOrElse(Implicits.scala:146)
webappJVM   at upickle.Implicits$Internal$$anon$1.apply(Implicits.scala:53)
webappJVM   at upickle.Implicits$Internal$$anon$1.apply(Implicits.scala:50)
webappJVM   at scala.PartialFunction$class.applyOrElse(PartialFunction.scala:123)
webappJVM   at upickle.Implicits$Internal$$anon$1.applyOrElse(Implicits.scala:50)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:113)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:103)
webappJVM   at upickle.Types$class.readJs(Types.scala:160)
webappJVM   at upickle.default$.readJs(Api.scala:25)
webappJVM   at upickle.default$.readJs(Api.scala:25)
webappJVM   at upickle.Generated$$anonfun$Tuple3R$1.applyOrElse(Generated.scala:31)
webappJVM   at upickle.Generated$$anonfun$Tuple3R$1.applyOrElse(Generated.scala:31)
webappJVM   at upickle.Implicits$Internal$$anon$1.apply(Implicits.scala:53)
webappJVM   at upickle.Implicits$Internal$$anon$1.apply(Implicits.scala:50)
webappJVM   at scala.PartialFunction$class.applyOrElse(PartialFunction.scala:123)
webappJVM   at upickle.Implicits$Internal$$anon$1.applyOrElse(Implicits.scala:50)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:113)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:103)
webappJVM   at upickle.Implicits$$anonfun$CaseR$1.applyOrElse(Implicits.scala:90)
webappJVM   at upickle.Implicits$$anonfun$CaseR$1.applyOrElse(Implicits.scala:89)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:113)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:103)
webappJVM   at scala.PartialFunction$class.applyOrElse(PartialFunction.scala:123)
webappJVM   at upickle.Types$Reader$$anon$2.applyOrElse(Types.scala:103)
webappJVM   at upickle.Implicits$Internal$$anon$1.apply(Implicits.scala:53)
webappJVM   at upickle.Implicits$Internal$$anon$1.apply(Implicits.scala:50)
webappJVM   at scala.PartialFunction$class.applyOrElse(PartialFunction.scala:123)
webappJVM   at upickle.Implicits$Internal$$anon$1.applyOrElse(Implicits.scala:50)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:113)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:103)
webappJVM   at upickle.Types$class.readJs(Types.scala:160)
webappJVM   at upickle.default$.readJs(Api.scala:25)
webappJVM   at upickle.Implicits$$anonfun$SeqishR$1$$anonfun$applyOrElse$1.apply(Implicits.scala:146)
webappJVM   at upickle.Implicits$$anonfun$SeqishR$1$$anonfun$applyOrElse$1.apply(Implicits.scala:146)
webappJVM   at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
webappJVM   at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
webappJVM   at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
webappJVM   at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48)
webappJVM   at scala.collection.TraversableLike$class.map(TraversableLike.scala:234)
webappJVM   at scala.collection.AbstractTraversable.map(Traversable.scala:104)
webappJVM   at upickle.Implicits$$anonfun$SeqishR$1.applyOrElse(Implicits.scala:146)
webappJVM   at upickle.Implicits$$anonfun$SeqishR$1.applyOrElse(Implicits.scala:146)
webappJVM   at upickle.Implicits$Internal$$anon$1.apply(Implicits.scala:53)
webappJVM   at upickle.Implicits$Internal$$anon$1.apply(Implicits.scala:50)
webappJVM   at scala.PartialFunction$class.applyOrElse(PartialFunction.scala:123)
webappJVM   at upickle.Implicits$Internal$$anon$1.applyOrElse(Implicits.scala:50)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:113)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:103)
webappJVM   at upickle.Types$class.readJs(Types.scala:160)
webappJVM   at upickle.default$.readJs(Api.scala:25)
webappJVM   at upickle.default$.readJs(Api.scala:25)
webappJVM   at upickle.Generated$$anonfun$Tuple8R$1.applyOrElse(Generated.scala:71)
webappJVM   at upickle.Generated$$anonfun$Tuple8R$1.applyOrElse(Generated.scala:71)
webappJVM   at upickle.Implicits$Internal$$anon$1.apply(Implicits.scala:53)
webappJVM   at upickle.Implicits$Internal$$anon$1.apply(Implicits.scala:50)
webappJVM   at scala.PartialFunction$class.applyOrElse(PartialFunction.scala:123)
webappJVM   at upickle.Implicits$Internal$$anon$1.applyOrElse(Implicits.scala:50)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:113)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:103)
webappJVM   at upickle.Implicits$$anonfun$CaseR$1.applyOrElse(Implicits.scala:90)
webappJVM   at upickle.Implicits$$anonfun$CaseR$1.applyOrElse(Implicits.scala:89)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:113)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:103)
webappJVM   at scala.PartialFunction$class.applyOrElse(PartialFunction.scala:123)
webappJVM   at upickle.Types$Reader$$anon$2.applyOrElse(Types.scala:103)
webappJVM   at upickle.Implicits$Internal$$anon$1.apply(Implicits.scala:53)
webappJVM   at upickle.Implicits$Internal$$anon$1.apply(Implicits.scala:50)
webappJVM   at scala.PartialFunction$class.applyOrElse(PartialFunction.scala:123)
webappJVM   at upickle.Implicits$Internal$$anon$1.applyOrElse(Implicits.scala:50)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:113)
webappJVM   at upickle.Types$Reader$$anon$2.apply(Types.scala:103)
webappJVM   at upickle.Types$class.readJs(Types.scala:160)
webappJVM   at upickle.default$.readJs(Api.scala:25)
webappJVM   at upickle.Types$class.read(Types.scala:156)
webappJVM   at upickle.default$.read(Api.scala:25)
webappJVM   at ch.epfl.scala.index.data.ProjectProtocol$ProjectAs$.as(package.scala:15)
webappJVM   at ch.epfl.scala.index.data.ProjectProtocol$ProjectAs$.as(package.scala:13)
webappJVM   at com.sksamuel.elastic4s.RichSearchHit.as(RichSearchResponse.scala:99)
webappJVM   at com.sksamuel.elastic4s.RichSearchResponse$$anonfun$as$1.apply(RichSearchResponse.scala:32)
webappJVM   at com.sksamuel.elastic4s.RichSearchResponse$$anonfun$as$1.apply(RichSearchResponse.scala:32)
webappJVM   at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
webappJVM   at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
webappJVM   at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
webappJVM   at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
webappJVM   at scala.collection.TraversableLike$class.map(TraversableLike.scala:234)
webappJVM   at scala.collection.mutable.ArrayOps$ofRef.map(ArrayOps.scala:186)
webappJVM   at com.sksamuel.elastic4s.RichSearchResponse.as(RichSearchResponse.scala:32)
webappJVM   at ch.epfl.scala.index.server.ApiImplementation.ch$epfl$scala$index$server$ApiImplementation$$$anonfun$2(ApiImplementation.scala:40)
webappJVM   at ch.epfl.scala.index.server.ApiImplementation$lambda$$find$1.apply(ApiImplementation.scala:35)
webappJVM   at ch.epfl.scala.index.server.ApiImplementation$lambda$$find$1.apply(ApiImplementation.scala:35)
webappJVM   at scala.util.Success$$anonfun$map$1.apply(Try.scala:237)
webappJVM   at scala.util.Try$.apply(Try.scala:192)
webappJVM   at scala.util.Success.map(Try.scala:237)
webappJVM   at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:237)
webappJVM   at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:237)
webappJVM   at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32)
webappJVM   at akka.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExecutor.scala:55)
webappJVM   at akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply$mcV$sp(BatchingExecutor.scala:91)
webappJVM   at akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply(BatchingExecutor.scala:91)
webappJVM   at akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply(BatchingExecutor.scala:91)
webappJVM   at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:72)
webappJVM   at akka.dispatch.BatchingExecutor$BlockableBatch.run(BatchingExecutor.scala:90)
webappJVM   at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:39)
webappJVM   at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:405)
webappJVM   at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
webappJVM   at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
webappJVM   at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
webappJVM   at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

sort releases by version

For scala-pickling for example, the list of version numbers is out of order:
screen shot 2016-06-11 at 1 23 48 pm

The current version should be v.0.10.1. As-is, the order in the above list doesn't make a whole lot of sense.

Edit Project

After being logged in a user can edit his project info:

accessible fields:

UI

  • dropdown multiselect for keywords
  • input box for other infos
  • dropdown for artifact deprecation

Backend

  • keywords dropdown api
  • deprecation dropdown api
  • update api

UI: Login via GitHub

UI side of things – Heather will further clarify what we mean in this ticket

nginx config

servername: index.scala-lang.org
proxy https => application

API

JSON APIs for accessing Scaladex data

  • Joris's needs

In the future: (to keep in mind)

  • Felix will potentially need for linking dottydoc
  • Adriaan for community build

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.