Skip to content

Commit

Permalink
Update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
adpi2 committed Jan 24, 2022
1 parent 8f35885 commit 27b1043
Show file tree
Hide file tree
Showing 5 changed files with 95 additions and 127 deletions.
75 changes: 0 additions & 75 deletions README.MD

This file was deleted.

84 changes: 84 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# Scaladex

![example workflow](https://github.com/scalacenter/scaladex/actions/workflows/ci.yml/badge.svg)
[![Gitter](https://img.shields.io/gitter/room/scalacenter/scaladex.svg?style=flat-square)](https://gitter.im/scalacenter/scaladex)

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

<a title="Scala Center" href="https://scala.epfl.ch/"><img alt="Scala Center" src="https://scala.epfl.ch/resources/img/scala-center-logo-black.png" height="60" /></a>

This project is funded by the <a title="Scala Center" href="https://scala.epfl.ch/">Scala Center</a>.

## 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.6_2.13`, `_2.12_1.0`.

Checkout how to publish to Maven Central with sbt and Mill:
- [Publish with sbt](https://www.scala-sbt.org/1.x/docs/Publishing.html)
- [Automated publish with sbt](https://github.com/sbt/sbt-ci-release)
- [Publish with Mill](https://com-lihaoyi.github.io/mill/mill/Intro_to_Mill.html#_deploying_your_code)

You can also watch [The Last 10 Percent by Stefan Zeiger](https://www.youtube.com/watch?v=RmEMUwfQoSc).

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

1. Did you publish the artifacts to Maven Central release?
2. 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](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.
If your project only contains artifacts with full Scala binary versions it cannot be indexed in Scaladex.

3. 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](https://github.com/scalacenter/scaladex-contrib/blob/master/claims.json) file in the [scaladex-contrib](https://github.com/scalacenter/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](doc/user/improve-visibility.md).

## How to contribute

Join the [gitter.im channel](https://gitter.im/scalacenter/scaladex) and read the [Contributing Guide](/CONTRIBUTING.md)

## 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](https://index.scala-lang.org/typelevel/cats/cats-core/latest-by-scala-version.svg)](https://index.scala-lang.org/typelevel/cats/cats-core)

...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](https://index.scala-lang.org/typelevel/cats/cats-core/latest-by-scala-version.svg?targetType=js)](https://index.scala-lang.org/typelevel/cats/cats-core)

[![cats-core Scala version support](https://index.scala-lang.org/typelevel/cats/cats-core/latest-by-scala-version.svg?targetType=native)](https://index.scala-lang.org/typelevel/cats/cats-core)

### Smaller, shorter badges

[![Latest version](https://index.scala-lang.org/typelevel/cats/cats-core/latest.svg?color=orange)](https://index.scala-lang.org/typelevel/cats/cats-core)

[![Latest version](https://index.scala-lang.org/akka/akka/akka-http-core/latest.svg?color=blue)](https://index.scala-lang.org/akka/akka/akka-http-core)

For more information read the [shields.io API](http://shields.io/)
16 changes: 11 additions & 5 deletions doc/user/improve-visibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

As a library author or maintainer, the visibility of your project on Scaladex is under your control.

As soon as an artifact is pushed to Maven Central (Sonatype), Scaladex downloads the `pom.xml` from Maven Central and the repository metadata from Github. The following properties are taken into account by the search algorithm, with corresponding boost. The bigger is the boost, the more importance is attributed to the property.
As soon as an artifact is pushed to Maven Central (Sonatype), Scaladex downloads the `pom.xml` from Maven Central and the repository metadata from Github.
The following properties are taken into account by the search algorithm, with corresponding boost.
The bigger is the boost, the more important the property.


| property | boost |
Expand All @@ -14,16 +16,20 @@ As soon as an artifact is pushed to Maven Central (Sonatype), Scaladex downloads
| name of the artifacts in Maven Central| 2 |
| project README on Github | 0.5 |

You can make it easier for a user to discover your project by paying attention to the below details:
You can make it easier for a user to find your project by paying attention to the below details:

### Meaningful Github description

A good description is short but meaningful. keep in mind that those words are the first words a user will read about your project.
A good description is short but meaningful.
Keep in mind that those words are the first words a user will read about your project.

### Precise Github topics

Carefully choosing the topics of your project is the most efficient way to improve your discoverability. You should ask yourself what terms a developer is likely to type when looking for a solution that your library provides. Be precise. If your project is a collection of utilities the term `utils` is not much helpful but `time`, `duration`, `units`, `hashing` are.
Carefully choosing the topics of your project is the most efficient way to improve your discoverability.
You should ask yourself what terms a developer is likely to type when looking for a solution that your library provides.
Be precise.
If your project is a collection of utilities the term `utils` is not much helpful but `time`, `duration`, `units`, `hashing` are.

### Detailed README

A detailed readme is helpful but it is not required for good indexing.
A detailed readme is helpful but it is not required for good indexing.
25 changes: 0 additions & 25 deletions doc/user/publish-bintray.md

This file was deleted.

22 changes: 0 additions & 22 deletions doc/user/publish-maven-central.md

This file was deleted.

0 comments on commit 27b1043

Please sign in to comment.