Home

Awesome

osm4scala

Maven Central Build Status Coverage Status Quality Gate Status Gitter MIT licensed FOSSA Status Contributor Covenant

<p align="center"> <a href="https://simplexspatial.github.io/osm4scala"><img src="website/static/android-chrome-192x192.png" alt="logo"></a> </p>

High performance Scala library and Spark Polyglot (Scala, Python, SQL, etc.) connector for OpenStreetMap Pbf files.

Documentation and site

⚠ Full usage documentation at https://simplexspatial.github.io/osm4scala/

Stargazers over time

Stargazers over time

Dev information:

It's possible to develop using a Windows machine, but all documentation suppose that you are using Linux or Mac.

Prepare environment

The only special requirement is to execute sbt compile to generate the protobuf source code.

sbt compile

PATCH_211 flag

Because depending on the Scala version, there are projects that are disabled (No spark3 for Scala 2.11) and different libraries dependencies. Because this, there is a flag called PATCH_211 (default value is false) to enable or disable Scala 2.11 compatibility.

Cross versions

The project is using cross version to manage 2.11, 2.12 and 2.13 using the same code base, so remember to use '+' to trigger all versions versions.

So remember, as example, for testing:

PATCH_211=false sbt +test
PATCH_211=true sbt +test

Release process

The publication into Maven Central has been removed from the release process, so now there are few steps:

  1. Release.
    git checkout master
    sbt release
    
  2. Publish into Maven Central. Information about configuration in plugins involved: Basically:
    git checkout v1.*.*
    sbt clean
    PATCH_211=false sbt +publishSigned
    PATCH_211=true sbt +publishSigned
    # In this point, tree target/sonatype-staging/ will show all artifacts to publish.
    sbt sonatypeBundleRelease
    
  3. Publish documentation and site.
    git checkout v1.*.*
    cd website
    nvm use
    export GIT_USER=<username>; export USE_SSH=true; npm run deploy
    

References.

PBF information:

third party OSS libraries: