Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 21 additions & 27 deletions .github/workflows/actions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,68 +9,63 @@ on:
pull_request:
branches:
- master
workflow_dispatch: # be able to manually trigger a workflow run

env:
SCALA_NEXT_VERSION: '3.6.2'
# TODO: perherps, it would be nice to allow failure on `SCALA_NEXT_VERSION` as a warning
# to avoid too strict dev experiences in the future improvements.

jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
java: ['11', '17']
java: ['11', '17', '21']
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
- name: Run tests
run: ./mill -i __.publishArtifacts + __.test
run: ./mill -i -DscalaNextVersion=${{ env.SCALA_NEXT_VERSION }} __.publishArtifacts + __.test

check-binary-compatibility:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-java@v3
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 11
java-version: 17
- name: Check Binary Compatibility
run: ./mill -i __.mimaReportBinaryIssues
run: ./mill -i -DscalaNextVersion=${{ env.SCALA_NEXT_VERSION }} __.mimaReportBinaryIssues

publish-sonatype:
if: github.repository == 'com-lihaoyi/requests-scala' && contains(github.ref, 'refs/tags/')
needs: test
runs-on: ubuntu-latest
env:
SONATYPE_PGP_PRIVATE_KEY: ${{ secrets.SONATYPE_PGP_PRIVATE_KEY }}
SONATYPE_PGP_PRIVATE_KEY_PASSWORD: ${{ secrets.SONATYPE_PGP_PRIVATE_KEY_PASSWORD }}
SONATYPE_USER: ${{ secrets.SONATYPE_USER }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
MILL_SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
MILL_SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
MILL_PGP_SECRET_BASE64: ${{ secrets.SONATYPE_PGP_PRIVATE_KEY }}
MILL_PGP_PASSPHRASE: ${{ secrets.SONATYPE_PGP_PRIVATE_KEY_PASSWORD }}
LANG: "en_US.UTF-8"
LC_MESSAGES: "en_US.UTF-8"
LC_ALL: "en_US.UTF-8"

steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 11
- name: Publish to Maven Central
run: |
if [[ $(git tag --points-at HEAD) != '' ]]; then
echo $SONATYPE_PGP_PRIVATE_KEY | base64 --decode > gpg_key
gpg --import --no-tty --batch --yes gpg_key
rm gpg_key
./mill -i mill.scalalib.PublishModule/publishAll \
--sonatypeCreds $SONATYPE_USER:$SONATYPE_PASSWORD \
--gpgArgs --passphrase=$SONATYPE_PGP_PRIVATE_KEY_PASSWORD,--no-tty,--pinentry-mode,loopback,--batch,--yes,-a,-b \
--publishArtifacts __.publishArtifacts \
--readTimeout 600000 \
--awaitTimeout 600000 \
--release true \
--signed true
fi
run: ./mill -i mill.scalalib.SonatypeCentralPublishModule/

- name: Create GitHub Release
id: create_gh_release
uses: actions/[email protected]
Expand All @@ -79,5 +74,4 @@ jobs:
with:
tag_name: ${{ github.ref }}
release_name: ${{ github.ref }}
body:
draft: false
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
target/
*.iml
.idea
.idea/
.vscode/
.settings
.classpath
.project
.cache
.sbtserver
.scala-build/
project/.sbtserver
tags
nohup.out
Expand Down
2 changes: 0 additions & 2 deletions .mill-version

This file was deleted.

12 changes: 12 additions & 0 deletions .scalafmt.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
version = "3.8.3"

maxColumn = 100
runner.dialect = scala213

newlines.beforeCurlyLambdaParams = multilineWithCaseOnly
rewrite.trailingCommas.style = always

assumeStandardLibraryStripMargin = true
docstrings.style = Asterisk

project.git = true
74 changes: 74 additions & 0 deletions build.mill
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
//| mill-version: 1.0.0
//| mvnDeps:
//| - com.github.lolgab::mill-mima_mill1:0.2.0
package build

import mill._
import scalalib._
import scalanativelib._
import mill.scalalib.publish.{Developer, License, PomSettings, VersionControl}

import mill.util.VcsVersion
import com.github.lolgab.mill.mima._

val scalaNextVersion = sys.props.get("scalaNextVersion")
val scalaVersions = List("2.12.20", "2.13.15", "3.3.4") ++ scalaNextVersion
val scalaNativeVer = "0.5.6"

trait MimaCheck extends Mima {
def mimaPreviousVersions = Seq("0.6.9", "0.7.0", "0.7.1", "0.8.0","0.8.2", "0.9.0").distinct

override def mimaBinaryIssueFilters = Seq(
ProblemFilter.exclude[ReversedMissingMethodProblem]("requests.BaseSession.send"),
ProblemFilter.exclude[DirectMissingMethodProblem]("requests.Response.string"),
)
}

trait RequestsPublishModule extends PublishModule with MimaCheck {
def artifactName = "requests"

def publishVersion = VcsVersion.vcsState().format()

def pomSettings = PomSettings(
description = "Scala port of the popular Python Requests HTTP client",
organization = "com.lihaoyi",
url = "https://github.com/com-lihaoyi/requests-scala",
licenses = Seq(License.MIT),
versionControl = VersionControl.github("com-lihaoyi", "requests-scala"),
developers = Seq(
Developer("lihaoyi", "Li Haoyi", "https://github.com/lihaoyi")
)
)

def mvnDeps = Seq(mvn"com.lihaoyi::geny::1.1.1")
}

trait RequestsCrossScalaModule extends CrossScalaModule with ScalaModule {
def moduleDir = build.moduleDir / "requests"
def sources = Task.Sources("src")
}

trait RequestsTestModule extends TestModule.Utest {
def mvnDeps = Seq(
mvn"com.lihaoyi::utest::0.7.10",
mvn"com.lihaoyi::ujson::1.3.13",
mvn"com.dimafeng::testcontainers-scala-core:0.41.3"
)
}

object requests extends Module {
trait RequestsJvmModule extends RequestsCrossScalaModule with RequestsPublishModule {
object test extends ScalaTests with RequestsTestModule
}
object jvm extends Cross[RequestsJvmModule](scalaVersions)

// trait RequestsNativeModule extends ScalaNativeModule with RequestsPublishModule {
// override def scalaNativeVersion = scalaNativeVer
//
// def mvnDeps =
// super.mvnDeps() ++ Seq(mvn"com.github.lolgab::scala-native-crypto::0.1.0")
//
// object test extends ScalaNativeTests with RequestsTestModule
// }
// object native extends Cross[RequestsNativeModule](scalaVersions)
}
46 changes: 0 additions & 46 deletions build.sc

This file was deleted.

Loading