Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge series/0.4 -> main #208

Merged
merged 211 commits into from
Mar 14, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
211 commits
Select commit Hold shift + click to select a range
31d893c
Create TypelevelUnidocPlugin
armanbilge Jan 30, 2022
5092822
javadoc.io doesn't support snapshots
armanbilge Jan 31, 2022
931690f
Change unidoc artifact name, add comment
armanbilge Jan 31, 2022
692b0de
Expose github repo as setting
armanbilge Jan 29, 2022
df30774
Auto-populate homepage
armanbilge Jan 29, 2022
6ac3a92
Add keepFiles setting for site deploy
armanbilge Jan 29, 2022
87965fa
Populate mdoc VERSION from tags on branch
armanbilge Jan 29, 2022
0597307
Remove redundant setting
armanbilge Jan 29, 2022
cd336ad
Deprecate tlSiteApiUrl for apiURL
armanbilge Feb 1, 2022
ba61f05
No javadoc.io for no-publish modules
armanbilge Feb 1, 2022
2ede5fe
Revert "Deprecate tlSiteApiUrl for apiURL"
armanbilge Feb 1, 2022
42adc35
No javadoc.io for sbt plugins either
armanbilge Feb 1, 2022
0d0d8b9
Add FAQ about base version
armanbilge Feb 1, 2022
021a534
Allow to set sonatype cred host via env/secrets
armanbilge Feb 1, 2022
26f8564
Typo
armanbilge Feb 1, 2022
6d36e72
Update sbt to 1.6.2
scala-steward Feb 1, 2022
b5bb55d
Merge pull request #130 from typelevel/update/sbt-1.6.2
armanbilge Feb 1, 2022
fc38b63
Update scalafmt-core to 3.4.0
scala-steward Feb 2, 2022
58ad2e7
Merge pull request #132 from scala-steward/update/scalafmt-core-3.4.0
armanbilge Feb 2, 2022
ee8651a
Add unidoc project to root
armanbilge Feb 2, 2022
c02c499
Fix mima
armanbilge Feb 2, 2022
610dfae
Add tlSiteApiModule setting
armanbilge Feb 2, 2022
4073838
Disable MiMa for unidoc artifact
armanbilge Feb 2, 2022
efa9c24
Add tlSiteApiPackage setting
armanbilge Feb 3, 2022
f10a979
Don't generate upload steps if not publishing
armanbilge Feb 3, 2022
04afeed
Merge pull request #125 from armanbilge/docs/base-version
armanbilge Feb 3, 2022
db31486
Fail if tag is older than base version #105
osleonard Feb 3, 2022
dc27a17
Fail if tag is older than base version #105
osleonard Feb 3, 2022
6f21be9
fastOptJS -> fastLinkJS
armanbilge Feb 3, 2022
5fff779
Merge pull request #139 from armanbilge/topic/fastLinkJS
armanbilge Feb 3, 2022
cbc8517
Fail if tag is older than base version #105
osleonard Feb 4, 2022
266cbaa
Fail if tag is older than base version #105
osleonard Feb 4, 2022
3f7660d
Fail if tag is older than base version #105
osleonard Feb 4, 2022
c3b9792
Fail if tag is older than base version #105
osleonard Feb 4, 2022
fa53334
Fail if tag is older than base version #105
osleonard Feb 4, 2022
a323136
Update versioning/src/main/scala/org/typelevel/sbt/TypelevelVersionin…
osleonard Feb 4, 2022
c25dd34
Update versioning/src/main/scala/org/typelevel/sbt/TypelevelVersionin…
osleonard Feb 4, 2022
b3b9fc2
Fail if tag is older than base version #105
osleonard Feb 4, 2022
fab8815
Merge pull request #134 from armanbilge/fix/generated-upload-steps
armanbilge Feb 4, 2022
a7749a7
Update scalafmt-core to 3.4.1
scala-steward Feb 5, 2022
c6daf53
Merge pull request #141 from scala-steward/update/scalafmt-core-3.4.1
armanbilge Feb 5, 2022
01fa600
Update scalafmt-core to 3.4.2
scala-steward Feb 6, 2022
8a88b6e
Merge pull request #142 from scala-steward/update/scalafmt-core-3.4.2
armanbilge Feb 6, 2022
9100c3f
Fix Apache 2.0 license url
armanbilge Feb 6, 2022
0c004a8
Merge pull request #143 from armanbilge/fix/license-url
armanbilge Feb 6, 2022
7dd7255
Add discord links
armanbilge Feb 8, 2022
3e34311
Merge pull request #146 from armanbilge/topic/discord
armanbilge Feb 8, 2022
d0fd70b
Ignore garbage when decoding PGP secret
armanbilge Feb 8, 2022
eb21905
Merge pull request #149 from armanbilge/fix/pgp-secret-newlines
armanbilge Feb 9, 2022
f3e762b
Use unique names for publish resolvers
armanbilge Feb 9, 2022
d89a94c
Use scalaJSLinkerResult for linking step
armanbilge Feb 9, 2022
848f6b3
Merge pull request #151 from armanbilge/topic/scalaJSLinkerResult
armanbilge Feb 9, 2022
3a09875
Merge pull request #128 from armanbilge/feature/sonatype-cred-host-env
armanbilge Feb 9, 2022
1374177
Merge pull request #150 from armanbilge/fix/resolver-names
armanbilge Feb 9, 2022
39f1774
Link to sbt-rewarn in the docs
armanbilge Feb 9, 2022
20c4896
Typo
armanbilge Feb 9, 2022
a2e3975
Merge pull request #153 from typelevel/docs/sbt-rewarn
armanbilge Feb 9, 2022
41c355b
Update sbt-sonatype to 3.9.11
scala-steward Feb 10, 2022
a9c01f8
Merge pull request #155 from scala-steward/update/sbt-sonatype-3.9.11
armanbilge Feb 10, 2022
7c44790
Revert "Use unique names for publish resolvers"
armanbilge Feb 10, 2022
85d0370
Merge pull request #156 from typelevel/revert-150-fix/resolver-names
armanbilge Feb 10, 2022
686da0f
Error (helpfully) if base version is not x.y
armanbilge Feb 10, 2022
5c38baf
Merge pull request #157 from armanbilge/topic/base-version-validation
armanbilge Feb 10, 2022
7a7a286
Move base version check
armanbilge Feb 10, 2022
e13b3aa
Merge branch 'series/0.4' into issue/105
armanbilge Feb 10, 2022
6f5991a
Merge pull request #158 from armanbilge/issue/105
armanbilge Feb 10, 2022
86aef81
Add `tlSkipIrrelevantScalas` setting
armanbilge Feb 10, 2022
1f99801
Set javadoc.io url only when appropriate
armanbilge Feb 10, 2022
db9a006
Merge pull request #160 from armanbilge/fix/javadoc-io-snapshots-plugins
armanbilge Feb 10, 2022
ccdeb45
Merge pull request #124 from armanbilge/topic/site-improvements
armanbilge Feb 10, 2022
d220966
Merge pull request #159 from armanbilge/feature/skip-irrelevant-scalas
armanbilge Feb 10, 2022
3289eee
Try keeping skip scoped to tasks
armanbilge Feb 11, 2022
55556ee
Scope tlSkipIrrelevantScalas setting
armanbilge Feb 11, 2022
6531b87
Make test skip-aware
armanbilge Feb 11, 2022
e2d0b48
test is only defined for Test/test
armanbilge Feb 11, 2022
9fbd743
Don't skip test/compile tasks
armanbilge Feb 11, 2022
79b999e
Revert "Don't skip test/compile tasks"
armanbilge Feb 11, 2022
919c1cf
Default tlSkipIrrelevantScalas to false
armanbilge Feb 11, 2022
353e996
Clarify the setting description
armanbilge Feb 11, 2022
30d1d3b
Expose skipIfIrrelevant
armanbilge Feb 11, 2022
48f8e72
Only override test task if opting-in
armanbilge Feb 11, 2022
0341a12
Only override mima task if opting-in
armanbilge Feb 11, 2022
7add570
Merge pull request #163 from armanbilge/fix/skip-if-irrelevant
armanbilge Feb 11, 2022
b819733
`tlSkipIrrelevantScalas := false`
armanbilge Feb 11, 2022
bfe60d5
Update scalafmt-core to 3.4.3
scala-steward Feb 12, 2022
fb3c7d8
Merge pull request #165 from scala-steward/update/scalafmt-core-3.4.3
armanbilge Feb 12, 2022
b5d4637
Use typelevel jdk index for managing Java
armanbilge Feb 18, 2022
87dbdb4
Add new helper for graalvm
armanbilge Feb 18, 2022
e704573
Helpers for everyone
armanbilge Feb 18, 2022
054c2d5
Optimize sorting in the GitHelper.previousReleases
danicheg Feb 19, 2022
a972209
Scalafmt
danicheg Feb 19, 2022
28fff7b
Update kernel/src/main/scala/org/typelevel/sbt/kernel/GitHelper.scala
danicheg Feb 19, 2022
3c91feb
Right ordering for milestone tags and friends
danicheg Feb 19, 2022
64e2733
Merge pull request #172 from danicheg/micro-opt
armanbilge Feb 19, 2022
407ce54
Some micro-opts of using collections in TypelevelVersioningPlugin
danicheg Feb 20, 2022
a39d8c4
Some micro-opts of using collections in GitHubActionsPlugin
danicheg Feb 20, 2022
6b5cb76
Some micro-opts of using collections in GitHelper
danicheg Feb 20, 2022
103a692
Fix for #174
danicheg Feb 20, 2022
c4db2a9
Merge pull request #175 from danicheg/fix-#174
armanbilge Feb 20, 2022
150915d
Some refactoring in TypelevelVersioningPlugin
danicheg Feb 20, 2022
8041c1d
Merge pull request #173 from danicheg/collections-micro-opts
armanbilge Feb 20, 2022
e9d0027
Add tlMimaPreviousVersions setting
armanbilge Feb 20, 2022
53ae5d8
Keep no-publish check scoped to project settings
armanbilge Feb 20, 2022
254db97
Use laikaSite / target to get site directory
armanbilge Feb 20, 2022
aea6e51
Merge pull request #178 from armanbilge/issue/161
armanbilge Feb 20, 2022
164ed92
Start creating a typelevel helium theme
armanbilge Feb 20, 2022
d18dd27
Finish up the theme
armanbilge Feb 20, 2022
c1871f7
Remove dead code
armanbilge Feb 20, 2022
31459d6
Demonstrate an mvp in the quick start
armanbilge Feb 20, 2022
c6e4c5c
Fix example build
armanbilge Feb 20, 2022
777a2bf
Demonstrate how to publish to s01
armanbilge Feb 20, 2022
ab63dbc
Merge pull request #181 from armanbilge/doc/minimum-viable-example
armanbilge Feb 20, 2022
38d58eb
GraalVM -> LatestGraalVM to solve bincompat puzzle
armanbilge Feb 20, 2022
e9992a8
Revamp README, intro
armanbilge Feb 21, 2022
791f9a9
Merge pull request #182 from armanbilge/topic/rebranding
armanbilge Feb 21, 2022
0c7dda0
Add the tlSitePublishTags setting
danicheg Feb 21, 2022
ced9adb
Update site/src/main/scala/org/typelevel/sbt/TypelevelSitePlugin.scala
danicheg Feb 21, 2022
9af87ed
Fix the TypelevelSitePlugin.buildSettings
danicheg Feb 21, 2022
687cf51
Update site/src/main/scala/org/typelevel/sbt/TypelevelSitePlugin.scala
danicheg Feb 21, 2022
b3a6b68
Add support for the JVM release option for scalac and javac
vasilmkd Feb 18, 2022
efb01f0
Adjust target option syntax for older compilers
vasilmkd Feb 18, 2022
deb7f68
Rename jvm to jdk
vasilmkd Feb 18, 2022
a081678
Use an optional value for the key
vasilmkd Feb 21, 2022
b837ff2
Use `Seq.empty` instead of `Seq.apply`
vasilmkd Feb 21, 2022
e36f991
Switch the default value to `None`
vasilmkd Feb 21, 2022
e58b9f7
Be more consistent across failure modes
vasilmkd Feb 21, 2022
65b88d9
Add tlSiteRelated setting
armanbilge Feb 22, 2022
9280bed
Bikeshedding
armanbilge Feb 22, 2022
dba35c6
Add some related projects
armanbilge Feb 22, 2022
e7acaca
Headers
armanbilge Feb 22, 2022
ddaee1e
Formatting
armanbilge Feb 22, 2022
7617b9a
Add help-me-choose section
armanbilge Feb 22, 2022
eba9fbb
Make it a callout
armanbilge Feb 22, 2022
69daaf4
Better error messages and DRY
vasilmkd Feb 22, 2022
992638b
Create mergify module
armanbilge Feb 22, 2022
0e2d219
Start fleshing out mergify plugin
armanbilge Feb 22, 2022
17bd11e
Checkpointing wip
armanbilge Feb 22, 2022
4d7a6b3
Move site stuff to its own package
armanbilge Feb 23, 2022
cd18ebd
Move resources as well
armanbilge Feb 23, 2022
0951a54
Move all the config into the TypelevelTheme
armanbilge Feb 23, 2022
8fb8dce
Merge pull request #184 from armanbilge/doc/help-me-choose
armanbilge Feb 23, 2022
5b86e38
Checkpoint matrix expansion changes
armanbilge Feb 23, 2022
bc166bb
Add mdoc --watch suggestion in another terminal
Quafadas Feb 25, 2022
78dcbae
parentheses
armanbilge Feb 25, 2022
0b128cb
Merge pull request #188 from Quafadas/Quafadas-doc
armanbilge Feb 25, 2022
6be78f7
Add tlSitePreview (broken for now)
armanbilge Feb 25, 2022
9a1c6b1
Fix it with taskDyn
armanbilge Feb 25, 2022
d855c52
Correct info log msg
armanbilge Feb 25, 2022
4a18377
Extract out YamlCompiler
armanbilge Feb 25, 2022
12d2216
Minimum token of usefulness
armanbilge Feb 25, 2022
0e09de5
Why work so hard
armanbilge Feb 26, 2022
74bc703
Revert "Extract out YamlCompiler"
armanbilge Feb 26, 2022
6e3b473
Fixing and dog-fooding
armanbilge Feb 26, 2022
9e14a2b
Drop nulls
armanbilge Feb 26, 2022
a8cbe69
Linting
armanbilge Feb 26, 2022
640d0ce
mergify module introduced in 0.4.6
armanbilge Feb 26, 2022
9c9c3ee
Mergify generate/check tag-along w/ workflow
armanbilge Feb 26, 2022
1810bd7
Fix actions rendering
armanbilge Feb 26, 2022
b39ea12
Add mergifyLabelPaths setting
armanbilge Feb 26, 2022
9574466
Automatically set organizationHomepage for Typelevel
armanbilge Feb 27, 2022
9946a56
Merge pull request #191 from armanbilge/feature/organization-homepage
armanbilge Feb 27, 2022
523d408
Correct error message
armanbilge Feb 28, 2022
43dc219
Merge pull request #170 from vasilmkd/scalac-release
armanbilge Feb 28, 2022
f17d8c1
Merge pull request #176 from armanbilge/topic/mima-previous-versions
armanbilge Feb 28, 2022
62e073c
Merge pull request #168 from armanbilge/feature/typelevel-jdk-index
armanbilge Feb 28, 2022
0cddfa0
Refactoring and fixing
armanbilge Feb 28, 2022
d6b42a9
Merge pull request #189 from armanbilge/feature/site-preview
armanbilge Feb 28, 2022
b59c5a5
Revert "Move all the config into the TypelevelTheme"
armanbilge Feb 28, 2022
5876f04
Merge branch 'series/0.4' into feature/typelevel-helium-theme
armanbilge Feb 28, 2022
29037e4
Bikeshedding
armanbilge Feb 28, 2022
7cf3c2c
Add tlSiteHeliumExtensions setting
armanbilge Mar 1, 2022
9423053
Disable darkmode
armanbilge Mar 1, 2022
217f466
Merge pull request #180 from armanbilge/feature/typelevel-helium-theme
armanbilge Mar 1, 2022
c9531e9
Merge branch 'series/0.4' into feature/unidoc-artifact
armanbilge Mar 1, 2022
70550b9
Factor out currentRelease private setting
armanbilge Mar 1, 2022
99a0927
Rename unidoc artifact
armanbilge Mar 1, 2022
3de33da
Disable mima for unidoc artifact
armanbilge Mar 1, 2022
46bf8ef
Formatting
armanbilge Mar 1, 2022
0e013b4
Automatically set tlSiteApiModule from unidoc plugin
armanbilge Mar 1, 2022
fd160ed
Setup PR auto-labeling
armanbilge Mar 1, 2022
aca1d33
Fix dangling newline
armanbilge Mar 1, 2022
34df1ac
Formatting
armanbilge Mar 1, 2022
41340e2
Add trailing slash
armanbilge Mar 1, 2022
95e8e68
File is more friendly with sbt dsl
armanbilge Mar 1, 2022
969a2e2
Support user-added labels
armanbilge Mar 1, 2022
8ad0015
Merge branch 'series/0.4' into feature/mergify
armanbilge Mar 1, 2022
21e6d4a
Respect project-level tlVersionIntroduced
armanbilge Mar 1, 2022
49a72ce
Merge pull request #192 from armanbilge/fix/version-introduced
armanbilge Mar 1, 2022
7a22bba
Merge branch 'series/0.4' into feature/mergify
armanbilge Mar 1, 2022
9843119
Refactoring
armanbilge Mar 1, 2022
2113388
Merge pull request #190 from armanbilge/feature/mergify
armanbilge Mar 1, 2022
6b942f9
Merge pull request #183 from danicheg/tlSitePublishTags
armanbilge Mar 1, 2022
c83645a
Merge branch 'series/0.4' into feature/unidoc-artifact
armanbilge Mar 1, 2022
4795978
Merge pull request #119 from armanbilge/feature/unidoc-artifact
armanbilge Mar 2, 2022
58852d3
Fix an eyesore/inconsistency
armanbilge Mar 2, 2022
62f8570
microsite -> website
armanbilge Mar 2, 2022
3514d53
Add page for sbt-typelevel-site plugin
armanbilge Mar 2, 2022
17b1436
Merge pull request #195 from armanbilge/doc/website
armanbilge Mar 2, 2022
f731ba2
Add index.html to API url
armanbilge Mar 2, 2022
49899ca
Merge pull request #196 from armanbilge/fix/api-url-package
armanbilge Mar 2, 2022
e48a592
Support pre-release versions in site plugin
armanbilge Mar 2, 2022
9227edb
Use non-strictly-previous releases in site plugin
armanbilge Mar 2, 2022
af23e29
Merge pull request #198 from armanbilge/feature/site-prerelease-version
armanbilge Mar 3, 2022
40d9859
Trim trailing whitespace
armanbilge Mar 4, 2022
b5e791a
Merge pull request #200 from armanbilge/fix/trailing-whitespace
armanbilge Mar 4, 2022
5cf64c0
Apparently `developers` is a `List`
armanbilge Mar 5, 2022
00361b1
Add Publishing Secrets page with pgp key generator
armanbilge Mar 11, 2022
9ce23c8
Flesh out the Secrets page
armanbilge Mar 11, 2022
169e397
Point to Secrets page from quick start
armanbilge Mar 11, 2022
bc913e6
Merge pull request #206 from armanbilge/doc/publishing-secrets
armanbilge Mar 11, 2022
bee524e
Merge branch 'series/0.4'
armanbilge Mar 14, 2022
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
44 changes: 36 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,21 @@ jobs:
with:
fetch-depth: 0

- name: Download Java (temurin@8)
id: download-java-temurin-8
if: matrix.java == 'temurin@8'
uses: typelevel/download-java@v1
with:
distribution: temurin
java-version: 8

- name: Setup Java (temurin@8)
if: matrix.java == 'temurin@8'
uses: actions/setup-java@v2
with:
distribution: temurin
distribution: jdkfile
java-version: 8
jdkFile: ${{ steps.download-java-temurin-8.outputs.jdkFile }}

- name: Cache sbt
uses: actions/cache@v2
Expand Down Expand Up @@ -72,11 +81,11 @@ jobs:

- name: Make target directories
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main')
run: mkdir -p github/target github-actions/target kernel/target versioning/target ci-release/target target .js/target mdocs/target site/target ci-signing/target mima/target .jvm/target .native/target no-publish/target sonatype/target ci/target sonatype-ci-release/target core/target settings/target project/target
run: mkdir -p github/target github-actions/target kernel/target versioning/target ci-release/target target .js/target mdocs/target site/target ci-signing/target mergify/target unidoc/target mima/target .jvm/target .native/target no-publish/target sonatype/target ci/target sonatype-ci-release/target core/target settings/target project/target

- name: Compress target directories
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main')
run: tar cf targets.tar github/target github-actions/target kernel/target versioning/target ci-release/target target .js/target mdocs/target site/target ci-signing/target mima/target .jvm/target .native/target no-publish/target sonatype/target ci/target sonatype-ci-release/target core/target settings/target project/target
run: tar cf targets.tar github/target github-actions/target kernel/target versioning/target ci-release/target target .js/target mdocs/target site/target ci-signing/target mergify/target unidoc/target mima/target .jvm/target .native/target no-publish/target sonatype/target ci/target sonatype-ci-release/target core/target settings/target project/target

- name: Upload target directories
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main')
Expand All @@ -101,12 +110,21 @@ jobs:
with:
fetch-depth: 0

- name: Download Java (temurin@8)
id: download-java-temurin-8
if: matrix.java == 'temurin@8'
uses: typelevel/download-java@v1
with:
distribution: temurin
java-version: 8

- name: Setup Java (temurin@8)
if: matrix.java == 'temurin@8'
uses: actions/setup-java@v2
with:
distribution: temurin
distribution: jdkfile
java-version: 8
jdkFile: ${{ steps.download-java-temurin-8.outputs.jdkFile }}

- name: Cache sbt
uses: actions/cache@v2
Expand Down Expand Up @@ -135,22 +153,23 @@ jobs:
env:
PGP_SECRET: ${{ secrets.PGP_SECRET }}
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }}
run: echo $PGP_SECRET | base64 -d | gpg --import
run: echo $PGP_SECRET | base64 -di | gpg --import

- name: Import signing key and strip passphrase
if: env.PGP_SECRET != '' && env.PGP_PASSPHRASE != ''
env:
PGP_SECRET: ${{ secrets.PGP_SECRET }}
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }}
run: |
echo "$PGP_SECRET" | base64 -d > /tmp/signing-key.gpg
echo "$PGP_SECRET" | base64 -di > /tmp/signing-key.gpg
echo "$PGP_PASSPHRASE" | gpg --pinentry-mode loopback --passphrase-fd 0 --import /tmp/signing-key.gpg
(echo "$PGP_PASSPHRASE"; echo; echo) | gpg --command-fd 0 --pinentry-mode loopback --change-passphrase $(gpg --list-secret-keys --with-colons 2> /dev/null | grep '^sec:' | cut --delimiter ':' --fields 5 | tail -n 1)

- name: Publish
env:
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
SONATYPE_CREDENTIAL_HOST: ${{ secrets.SONATYPE_CREDENTIAL_HOST }}
run: sbt '++${{ matrix.scala }}' tlRelease

site:
Expand All @@ -167,12 +186,21 @@ jobs:
with:
fetch-depth: 0

- name: Download Java (temurin@8)
id: download-java-temurin-8
if: matrix.java == 'temurin@8'
uses: typelevel/download-java@v1
with:
distribution: temurin
java-version: 8

- name: Setup Java (temurin@8)
if: matrix.java == 'temurin@8'
uses: actions/setup-java@v2
with:
distribution: temurin
distribution: jdkfile
java-version: 8
jdkFile: ${{ steps.download-java-temurin-8.outputs.jdkFile }}

- name: Cache sbt
uses: actions/cache@v2
Expand All @@ -195,4 +223,4 @@ jobs:
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: mdocs/target/docs/site
publish_branch: gh-pages
keep_files: true
162 changes: 162 additions & 0 deletions .mergify.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,162 @@
# This file was automatically generated by sbt-typelevel-mergify using the
# mergifyGenerate task. You should add and commit this file to
# your git repository. It goes without saying that you shouldn't edit
# this file by hand! Instead, if you wish to make changes, you should
# change your sbt build configuration to revise the mergify configuration
# to meet your needs, then regenerate this file.

pull_request_rules:
- name: merge scala-steward's PRs
conditions:
- author=scala-steward
- or:
- body~=labels:.*early-semver-patch
- body~=labels:.*early-semver-minor
- status-success=Build and Test (ubuntu-latest, 2.12.15, temurin@8, rootJVM)
- '#approved-reviews-by>=1'
actions:
merge: {}
- name: Label ci PRs
conditions:
- files~=^ci/
actions:
label:
add:
- ci
remove: []
- name: Label ci-release PRs
conditions:
- files~=^ci-release/
actions:
label:
add:
- ci-release
remove: []
- name: Label ci-signing PRs
conditions:
- files~=^ci-signing/
actions:
label:
add:
- ci-signing
remove: []
- name: Label core PRs
conditions:
- files~=^core/
actions:
label:
add:
- core
remove: []
- name: Label docs PRs
conditions:
- files~=^docs/
actions:
label:
add:
- docs
remove: []
- name: Label github PRs
conditions:
- files~=^github/
actions:
label:
add:
- github
remove: []
- name: Label github-actions PRs
conditions:
- files~=^github-actions/
actions:
label:
add:
- github-actions
remove: []
- name: Label kernel PRs
conditions:
- files~=^kernel/
actions:
label:
add:
- kernel
remove: []
- name: Label mdocs PRs
conditions:
- files~=^mdocs/
actions:
label:
add:
- mdocs
remove: []
- name: Label mergify PRs
conditions:
- files~=^mergify/
actions:
label:
add:
- mergify
remove: []
- name: Label mima PRs
conditions:
- files~=^mima/
actions:
label:
add:
- mima
remove: []
- name: Label no-publish PRs
conditions:
- files~=^no-publish/
actions:
label:
add:
- no-publish
remove: []
- name: Label settings PRs
conditions:
- files~=^settings/
actions:
label:
add:
- settings
remove: []
- name: Label site PRs
conditions:
- files~=^site/
actions:
label:
add:
- site
remove: []
- name: Label sonatype PRs
conditions:
- files~=^sonatype/
actions:
label:
add:
- sonatype
remove: []
- name: Label sonatype-ci-release PRs
conditions:
- files~=^sonatype-ci-release/
actions:
label:
add:
- sonatype-ci-release
remove: []
- name: Label unidoc PRs
conditions:
- files~=^unidoc/
actions:
label:
add:
- unidoc
remove: []
- name: Label versioning PRs
conditions:
- files~=^versioning/
actions:
label:
add:
- versioning
remove: []
2 changes: 1 addition & 1 deletion .scalafmt.conf
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version = 3.4.0
version = 3.4.3

runner.dialect = scala212source3

Expand Down
34 changes: 11 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,16 @@
# sbt-typelevel [![sbt-typelevel Scala version support](https://index.scala-lang.org/typelevel/sbt-typelevel/sbt-typelevel/latest-by-scala-version.svg?targetType=Sbt)](https://index.scala-lang.org/typelevel/sbt-typelevel/sbt-typelevel)
# sbt-typelevel [![sbt-typelevel Scala version support](https://index.scala-lang.org/typelevel/sbt-typelevel/sbt-typelevel/latest-by-scala-version.svg?targetType=Sbt)](https://index.scala-lang.org/typelevel/sbt-typelevel/sbt-typelevel) [![Discord](https://img.shields.io/discord/632277896739946517.svg?label=&logo=discord&logoColor=ffffff&color=404244&labelColor=6A7EC2)](https://discord.gg/D7wY3aH7BQ)

sbt-typelevel helps Scala projects to publish early-semantically-versioned, binary-compatible artifacts to Sonatype/Maven from GitHub actions. It is a collection of plugins that work well individually and even better together.
sbt-typelevel configures [sbt](https://www.scala-sbt.org/) for developing, testing, cross-building, publishing, and documenting your Scala library on GitHub, with a focus on semantic versioning and binary compatibility. It is a collection of plugins that work well individually and even better together.

## Quick start
```scala
// Pick one, for project/plugins.sbt
## Features

// Full service, batteries-included, let's go!
addSbtPlugin("org.typelevel" % "sbt-typelevel" % "<version>")
- Auto-generated GitHub actions workflows, parallelized on Scala version and platform (JVM, JS, Native)
- git-based dynamic versioning
- Binary-compatibility checking with [MiMa](https://github.com/lightbend/mima), following [early semantic versioning](https://www.scala-lang.org/blog/2021/02/16/preventing-version-conflicts-with-versionscheme.html#early-semver-and-sbt-version-policy)
- CI publishing of releases and snapshots to Sonatype/Maven
- CI deployed GitHub pages websites generated with [mdoc](https://github.com/scalameta/mdoc/) and [Laika](https://github.com/planet42/laika)
- Auto-populated settings for various boilerplate (SCM info, API doc urls, Scala.js sourcemaps, etc.)

// Set me up for CI release, but don't touch my scalacOptions!
addSbtPlugin("org.typelevel" % "sbt-typelevel-ci-release" % "<version>")
## Get Started

// Then, in your build.sbt
ThisBuild / tlBaseVersion := "0.4" // your current series x.y
ThisBuild / developers +=
tlGitHubDev("armanbilge", "Arman Bilge") // your GitHub handle and name
```

Next, run `githubWorkflowGenerate` in sbt to automatically generate the GitHub Actions workflows.

Finally, on GitHub set the following secrets on your repository:
- `SONATYPE_USERNAME` and `SONATYPE_PASSWORD`
- `PGP_SECRET`: output of `gpg --armor --export-secret-keys $LONG_ID | base64`
- `PGP_PASSPHRASE` (optional, use only if your key is passphrase-protected)

Visit https://typelevel.org/sbt-typelevel for detailed documentation.
Visit https://typelevel.org/sbt-typelevel for a quick start example and detailed documentation.
38 changes: 36 additions & 2 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,17 @@ ThisBuild / developers := List(
tlGitHubDev("djspiewak", "Daniel Spiewak")
)

ThisBuild / mergifyStewardConfig ~= { _.map(_.copy(mergeMinors = true)) }
ThisBuild / mergifySuccessConditions += MergifyCondition.Custom("#approved-reviews-by>=1")
ThisBuild / mergifyLabelPaths += { "docs" -> file("docs") }

lazy val root = tlCrossRootProject.aggregate(
kernel,
noPublish,
settings,
github,
githubActions,
mergify,
versioning,
mima,
sonatype,
Expand All @@ -25,6 +30,7 @@ lazy val root = tlCrossRootProject.aggregate(
core,
ciRelease,
site,
unidoc,
docs
)

Expand Down Expand Up @@ -65,6 +71,15 @@ lazy val githubActions = project
name := "sbt-typelevel-github-actions"
)

lazy val mergify = project
.in(file("mergify"))
.enablePlugins(SbtPlugin)
.settings(
name := "sbt-typelevel-mergify",
tlVersionIntroduced := Map("2.12" -> "0.4.6")
)
.dependsOn(githubActions)

lazy val versioning = project
.in(file("versioning"))
.enablePlugins(SbtPlugin)
Expand Down Expand Up @@ -146,9 +161,28 @@ lazy val site = project
.settings(
name := "sbt-typelevel-site"
)
.dependsOn(kernel, githubActions, noPublish)
.dependsOn(kernel, github, githubActions, noPublish)

lazy val unidoc = project
.in(file("unidoc"))
.enablePlugins(TypelevelUnidocPlugin)
.settings(
name := "sbt-typelevel-docs"
)

lazy val docs = project
.in(file("mdocs"))
.enablePlugins(TypelevelSitePlugin)
.settings(laikaConfig ~= { _.withRawContent })
.settings(
laikaConfig ~= { _.withRawContent },
tlSiteApiPackage := Some("org.typelevel.sbt"),
tlSiteRelatedProjects := Seq(
"sbt" -> url("https://www.scala-sbt.org/"),
"sbt-crossproject" -> url("https://github.com/portable-scala/sbt-crossproject"),
"sbt-github-actions" -> url("https://github.com/djspiewak/sbt-github-actions/"),
"mima" -> url("https://github.com/lightbend/mima"),
"mdoc" -> url("https://scalameta.org/mdoc/"),
"Laika" -> url("https://planet42.github.io/Laika/"),
"sbt-unidoc" -> url("https://github.com/sbt/sbt-unidoc")
)
)
Loading