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

Parsley 5.0 #223

Draft
wants to merge 232 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
232 commits
Select commit Hold shift + click to select a range
b8704f2
Initial config
j-mie6 Jan 9, 2024
dcdfc2d
workflows updated
j-mie6 Jan 9, 2024
8865830
removed mima issues, added version scheme override
j-mie6 Jan 9, 2024
cdc7c20
moved the scheme to the right place...
j-mie6 Jan 9, 2024
92cdd08
enforced deprecations for parsley 5
j-mie6 Jan 9, 2024
60e836a
corrected docs
j-mie6 Jan 9, 2024
36430a9
curried traverse
j-mie6 Jan 9, 2024
94893db
fixed wiki and rootdoc
j-mie6 Jan 9, 2024
21b7958
broke apart label and hide
j-mie6 Jan 10, 2024
91c1d70
Removed TokenSpan and simplified
j-mie6 Jan 10, 2024
9cf6521
Americanise
j-mie6 Jan 10, 2024
c13b6c6
americanise debug
j-mie6 Jan 10, 2024
3ba4964
restructured naming for comment descriptions, closing #168
j-mie6 Jan 10, 2024
342f582
curried chains, closing #172
j-mie6 Jan 10, 2024
7665fe5
fixed debugger tests
j-mie6 Jan 10, 2024
f838444
merged multiMap and singlesMap
j-mie6 Jan 10, 2024
d9f052a
Added Parsers suffixes
j-mie6 Jan 10, 2024
2f58f11
corrected docs
j-mie6 Jan 10, 2024
1f3452a
corrected documentation
j-mie6 Jan 10, 2024
32c86dc
Added header
j-mie6 Jan 10, 2024
e3c76ef
Added some generalisations, but we are stuck with other combinators...
j-mie6 Jan 10, 2024
45310de
renamed file
j-mie6 Jan 10, 2024
3168219
Generalised several combinators, added secretSome
j-mie6 Jan 11, 2024
cce4e00
further generalisations
j-mie6 Jan 11, 2024
b345428
predicate is a package
j-mie6 Jan 11, 2024
380d298
Added additional op for Ops
j-mie6 Jan 11, 2024
5930d4e
additional args and generalisation
j-mie6 Jan 11, 2024
a6f7cf7
fixed wiki
j-mie6 Jan 11, 2024
1fc03b3
Allowed for independent string start and ends, closing #155
j-mie6 Jan 11, 2024
f895036
generalised internals of iterative combinators to use Factory
j-mie6 Jan 10, 2024
eb97062
Changed error hierarchy
j-mie6 Jan 12, 2024
18428c6
Added leadingZeroConfig for exponents, closing #211
j-mie6 Jan 12, 2024
bd8d7b9
Merge branch 'master' into staging/5.0
j-mie6 Jan 12, 2024
210c98f
enable wiki
j-mie6 Jan 12, 2024
b8e89a7
update workflows
j-mie6 Jan 12, 2024
15e85bd
Added missing versions onto selector
j-mie6 Jan 12, 2024
5d9f1ee
changed canonical links
j-mie6 Jan 12, 2024
347f110
stable version
j-mie6 Jan 12, 2024
2a1daf9
Merge branch 'master' into staging/5.0
j-mie6 Jan 12, 2024
e66e6a9
latest is now going to be 4.5.1
j-mie6 Jan 12, 2024
50c745f
Added labels and reason as part of ErrorBridge
j-mie6 Jan 12, 2024
729e069
wrote about ErrorBridge in wiki
j-mie6 Jan 12, 2024
4e80320
docs: rogue space in bridge page
j-mie6 Jan 13, 2024
83d13a7
Added a void internally, as well as removed types on final val
j-mie6 Jan 16, 2024
9063571
removed redundant escape char check for characters
j-mie6 Jan 16, 2024
362731d
removed implicit to make it clearer in StringCharacter
j-mie6 Jan 16, 2024
5318915
doc: typo in faq
j-mie6 Jan 26, 2024
08b1b17
Documentation fixes, and some comments/simplifications
j-mie6 Jan 29, 2024
987717a
supports LabelWithExplainConfig for keywords and operators
j-mie6 Jan 29, 2024
42c0f02
Added new labelSymbol configuration
j-mie6 Jan 29, 2024
40ed20d
Added symbol punctuation fallback
j-mie6 Jan 29, 2024
45096a9
suppressed deprecation warnings
j-mie6 Jan 29, 2024
f9db3ec
hotfix for #226
j-mie6 Jan 29, 2024
a3d28ad
Added mapFilterMsg combinator
j-mie6 Jan 29, 2024
94dd54f
changed annotation to unchecked
j-mie6 Jan 29, 2024
f9bb8ab
fix broken doc link
j-mie6 Jan 29, 2024
5b59a07
docs: fix typo in Lexer
roccojiang Jan 30, 2024
afe08cc
Merge branch 'staging/5.0' into staging/5.0
roccojiang Jan 30, 2024
20e0db2
Docs: Fix typo in Lexer (#228)
j-mie6 Jan 30, 2024
85da238
improved doc grouping
j-mie6 Jan 31, 2024
6fd88e5
dangling attempt reference
j-mie6 Jan 31, 2024
0a9443d
corrected doc note on state
j-mie6 Jan 31, 2024
fed3381
Fixed missing label for Reason'd symbols
j-mie6 Feb 1, 2024
d69120b
improved implementation of pos bridges in the wiki
j-mie6 Feb 1, 2024
c9f3010
Added zipped warning to syntax page
j-mie6 Feb 1, 2024
b7cde64
deprecation notes
j-mie6 Feb 1, 2024
fbd3851
fixes #229
j-mie6 Feb 3, 2024
67c417c
clarifying comment
j-mie6 Feb 3, 2024
c66715d
fixes #230
j-mie6 Feb 3, 2024
8767ab8
FIXME
j-mie6 Feb 3, 2024
d5fd933
doc: added of type to disambiguate
j-mie6 Feb 7, 2024
1e6de1b
sbt-tl bump, will fix css issues with wiki
j-mie6 Feb 18, 2024
458ac4e
doc: EoL for 4.4
j-mie6 Apr 8, 2024
8f60aec
removed deprecated labelling behaviours
j-mie6 Apr 9, 2024
9908649
removed useless map
j-mie6 Apr 9, 2024
a52ada7
Made failure a case class
j-mie6 Apr 9, 2024
8d04cb8
removed atomicChoice
j-mie6 Apr 9, 2024
0ef18a3
Americanised SpecialisedFilter in error configuration
j-mie6 Apr 9, 2024
66f23be
Catches user-generated exceptions to remove the stack traces
j-mie6 Apr 9, 2024
5b94323
Don't use Thread.currentThread, because of native
j-mie6 Apr 9, 2024
1c52215
Added suppressed error into exception
j-mie6 Apr 9, 2024
985e706
improved diagnostics for bad laziness
j-mie6 Apr 9, 2024
d6f5db0
Add diagnostic information (#234)
j-mie6 Apr 9, 2024
8b945bb
renamed format to build and added lineNum to the lineInfo
j-mie6 Apr 9, 2024
f957822
doc: properly refer to changes to ErrorBuilder
j-mie6 Apr 9, 2024
5744def
cross-compatible unused annotation
j-mie6 Apr 9, 2024
65bb005
Merge branch 'master' into staging/5.0
j-mie6 Apr 9, 2024
31b7afc
added ConsolePrettyPrinter debug frontend
j-mie6 Apr 9, 2024
7e44376
fix 2.12 string interpolation
j-mie6 Apr 9, 2024
c06406f
debugger: fixed privacy for Scala 3
j-mie6 Apr 9, 2024
42c1c49
removed pesky private objects, to help simplify debugger logic
j-mie6 Apr 9, 2024
a68f95c
refactor parsley-debug a bit
j-mie6 Apr 10, 2024
96a8a0d
some more refactoring
j-mie6 Apr 10, 2024
00498ee
some notes
j-mie6 Apr 10, 2024
ef8aa87
remove helpers, and made it part of the Debugged companion object
j-mie6 Apr 10, 2024
f81acb2
parsley-debug: introduce factories to abstract the backend from the f…
j-mie6 Apr 11, 2024
21d4041
parsley-debug: renamed Debugged to TaggedWith in frontend
j-mie6 Apr 11, 2024
872330a
parsley-debug: add internal divergence checking infrastructure
j-mie6 Apr 11, 2024
4454556
Added relevant machinery in DivergenceContext
j-mie6 Apr 11, 2024
dad1b1b
added divergenceDetection combinator, fixed bug where registers need …
j-mie6 Apr 11, 2024
4dbfdd6
Added some notes
j-mie6 Apr 11, 2024
7b129fd
parsley-debug: fixed bug where registers can be unallocated after gen…
j-mie6 Apr 12, 2024
b2b2fe8
added a cycle message
j-mie6 Apr 12, 2024
26cbb2e
Added better message for left-recursion divergence
j-mie6 Apr 12, 2024
59b89de
cleaned up the matches
j-mie6 Apr 12, 2024
c93a880
improved non-productive iteration error
j-mie6 Apr 12, 2024
9e0d86e
added the state cycle for the detectDivergence combinator
j-mie6 Apr 15, 2024
768c7e4
fixed some defunct names
j-mie6 Apr 15, 2024
5d49225
Added parsley.quickstart, allowing for a large import cut-down
j-mie6 Apr 15, 2024
213aa2c
added the file parsley.quickstart...
j-mie6 Apr 15, 2024
2e6dfb5
Added correct header for quickstart.scala
j-mie6 Apr 15, 2024
53ec61c
fixed doc grouping
j-mie6 Apr 16, 2024
6342183
fix parsleyJS rootdoc
j-mie6 Apr 16, 2024
dd10fd9
rename quickstart to quick
j-mie6 Apr 16, 2024
d341b59
added all, which currently incorporates lift
j-mie6 Apr 16, 2024
cdf6eff
added zipped to all
j-mie6 Apr 16, 2024
bc1e603
added extension to all
j-mie6 Apr 16, 2024
8daf975
fixed dangling zipped reference
j-mie6 Apr 16, 2024
b0540f5
added explicit registerNames to Collector, for reasons
j-mie6 Apr 16, 2024
713ab7f
added backticks to cycle detection, which makes the error clearer
j-mie6 Apr 18, 2024
e2d3d60
added Scala3 parsley.debuggable annotation
j-mie6 Apr 18, 2024
65d97a2
Added scala 2 annotation equivalent, but 2.12 needs some love
j-mie6 Apr 23, 2024
8103478
fixed 2.12, debuggable is working
j-mie6 Apr 23, 2024
90e250b
documentation, deprecation, and dumb scala compiler bugs
j-mie6 Apr 23, 2024
d6ad26a
added logic to parsley-debug for opaque-only tagging without the core…
j-mie6 Apr 24, 2024
d765fcc
Added some small transparency/opaque annotations
j-mie6 Apr 24, 2024
51ff2cd
fix 2.12
j-mie6 Apr 24, 2024
523a2aa
fix scala 3
j-mie6 Apr 25, 2024
06bbb96
quick-fix to allow manual type annotation to remove nasty bugs in 2.x…
j-mie6 Apr 25, 2024
2b088c7
lazy and stripped private, which seems to help nesting
j-mie6 Apr 25, 2024
c72bd5a
fixed issues with warnings in macro code
j-mie6 Apr 25, 2024
f41d13b
fixed the broken deferred in parsley-debug, not sure it's the right s…
j-mie6 Apr 26, 2024
d1d0967
added diagnostics
j-mie6 Apr 26, 2024
60f1ef7
additional diagnostics for overloading
j-mie6 Apr 27, 2024
6e73e55
test(parsley-debug): reworked the overloadings
j-mie6 Apr 27, 2024
218c383
named the character parsers
j-mie6 Apr 28, 2024
a937e5c
added debug names to lift derivatives, ap, and seqs
j-mie6 Apr 28, 2024
36ff119
added missing type annotation
j-mie6 Apr 28, 2024
aacee69
Added name prompts
j-mie6 Apr 28, 2024
b526deb
improved symbol naming
j-mie6 Apr 28, 2024
5e5cfb3
Added new implicits object to improve debugging
j-mie6 Apr 28, 2024
7f33e26
improved naming for space related combinators
j-mie6 Apr 28, 2024
741132c
removed redundant handler in chainr1 implementation
j-mie6 Apr 29, 2024
bdb596b
Added alias for parsley in quick
j-mie6 May 4, 2024
3e9e2be
scala 3 patch bump
j-mie6 May 5, 2024
f3d2e49
clean up the suspend calls in parsleyDebug
j-mie6 May 13, 2024
72fee1e
Merge branch 'staging/5.0' of github.com:j-mie6/parsley into staging/5.0
j-mie6 May 13, 2024
dbfcb9e
added infix annotations to help with Scala 3
j-mie6 May 14, 2024
5c60f2c
Merge branch 'master' into staging/5.0
j-mie6 May 25, 2024
fd159de
Fixed #242
j-mie6 Jun 30, 2024
c6643b3
chore: update sbt-tl
j-mie6 Sep 6, 2024
3788696
Fix typo in chain combinator documentation
disordered Nov 19, 2024
5bbd8f7
Fix typo in interlude-1-haskell.md
disordered Nov 21, 2024
fda7179
Fix typo in interlude-1-haskell.md (#245)
j-mie6 Nov 21, 2024
0ff95dd
Fix typo in chain combinator documentation (#244)
j-mie6 Nov 21, 2024
7afaf09
doc: quick
j-mie6 Dec 27, 2024
8725b27
fix(#246): added whitespace consumption after alter (fixes #246)
j-mie6 Dec 27, 2024
30c7928
chore: bump build system
j-mie6 Dec 27, 2024
fc47985
fix(build): removed test coverage
j-mie6 Dec 27, 2024
694205e
added groupings to lexer object
j-mie6 Dec 27, 2024
ddfef94
refactor(token)!: flatten the description packages
j-mie6 Dec 27, 2024
eed5882
feat(token)!: removed implicits for predicate
j-mie6 Dec 27, 2024
37511c4
feat(token)!: renamed CharPredicate -> CharPred
j-mie6 Dec 27, 2024
b68f72f
feat(token)!: removed predicate package
j-mie6 Dec 27, 2024
175a071
chore: re-enabled test-coverage and sbt-tl bump
j-mie6 Dec 27, 2024
b7e0d80
chore: version-bump on site
j-mie6 Dec 27, 2024
1aae57c
chore: bump to native 0.5
j-mie6 Dec 27, 2024
81a4dd3
chore: roll back 2.13 version, drops jvm8 support
j-mie6 Dec 27, 2024
cc000cd
drop Java 8, support JDK21
j-mie6 Dec 27, 2024
d449eb2
chore: scalatest bump
j-mie6 Dec 27, 2024
1715cab
chore: scala-js bump to 1.16
j-mie6 Dec 27, 2024
dcb5c32
refactor: renamed alt1 and alt2 to avoid shadowing
j-mie6 Dec 27, 2024
426d784
chore: downgrade to 2.13.14, upgrade scoverage
j-mie6 Dec 27, 2024
6c07ae2
fix: shadowing
j-mie6 Dec 27, 2024
f4dc75c
doc: change braces to () to avoid non-comp on 2.13.14
j-mie6 Dec 27, 2024
274edcb
removed unlinkable NoSuchElementException from docs
j-mie6 Dec 27, 2024
4875485
enabled unidoc
j-mie6 Dec 28, 2024
a59d1d2
chore: update workflows
j-mie6 Dec 28, 2024
9f4989f
feat(debug)!: removed some unneeded methods
j-mie6 Dec 28, 2024
5af2af5
feat(debug)!: removed some unneeded functionality for cleaner API, ca…
j-mie6 Dec 28, 2024
233e38c
refactor(debug)!: changed the type of rules to be partial function
j-mie6 Dec 28, 2024
d228dc1
refactor(debug)!: refactored backend classes to remove implementation…
j-mie6 Dec 28, 2024
62b03c8
feat(debug): reworked ConsolePrettyPrinter with new methods
j-mie6 Dec 28, 2024
c75cccb
refactor(debug): improved internals of ConsolePrettyPrinter
j-mie6 Dec 28, 2024
26c6927
refactor(debug)!: moved ConsolePrettyPrinter
j-mie6 Dec 28, 2024
bfe92bf
refactor(debug)!: Frontend -> View
j-mie6 Dec 28, 2024
88d8d09
refactor(debug)!: ConsolePrettyPrinter -> PrintView
j-mie6 Dec 28, 2024
a0e4267
refactor!: parsley.debug is now a package, not object
j-mie6 Dec 28, 2024
595567b
refactor(debug)!: the debugger and debug packages are merged
j-mie6 Dec 28, 2024
93c0d1a
fix: scala 2.12 missed package rename
j-mie6 Dec 28, 2024
ddcde01
fix(debug): js test package fix
j-mie6 Dec 28, 2024
c579797
doc(debug): unified doc in package object
j-mie6 Dec 28, 2024
18fd9b8
doc(debug): fix introduction date for moved class
j-mie6 Dec 28, 2024
85b9040
doc: mermaid diagrams now properly use .
j-mie6 Dec 31, 2024
f26104c
refactor: new-style evolvable class for LexicalDesc
j-mie6 Dec 31, 2024
1be4032
chore: added README to describe forward compat descriptions
j-mie6 Dec 31, 2024
a4ab0c0
doc: added info to LexicalDesc
j-mie6 Jan 1, 2025
2f76491
doc: added page on @debuggable
j-mie6 Jan 2, 2025
f2150d7
doc: fixed json
j-mie6 Jan 2, 2025
3379ebf
doc: page on left-recursion detection
j-mie6 Jan 2, 2025
5fe317c
doc: removed HTML comment
j-mie6 Jan 2, 2025
10a5d63
doc: typo
j-mie6 Jan 2, 2025
ef8a2a2
doc: typo
j-mie6 Jan 2, 2025
4e5166a
refactor(debug): nicer layout for state cyle
j-mie6 Jan 2, 2025
3f3d8ef
refactor(debug): nicer layout for state cycle in iteration
j-mie6 Jan 2, 2025
61793bd
doc: added page for PrintView and attachment
j-mie6 Jan 2, 2025
37429bf
fix(debug): remove input augments that are rolled back
j-mie6 Jan 2, 2025
74d27a2
refactor(debug): removed Map for children
j-mie6 Jan 3, 2025
915bd14
removed internal Map use, the keys aren't needed
j-mie6 Jan 3, 2025
c51d10c
doc: simplify debug cycle
j-mie6 Jan 3, 2025
273e0ff
doc: pointed to parsley-debug in parsley.debug
j-mie6 Jan 3, 2025
f0293ba
refactor(debug): DebugStrategy -> TagFactory
j-mie6 Jan 4, 2025
7469579
fix: make `CalleeSave` (partially) re-entrant
j-mie6 Jan 4, 2025
c2cf85c
chore: added notes about why DynCall cannot suppress results
j-mie6 Jan 4, 2025
0f980db
test: reference semantics are odd and need fixing
j-mie6 Jan 4, 2025
5fd9f2a
removed test stub
j-mie6 Jan 4, 2025
5655dbe
feat: added new allocation
j-mie6 Jan 4, 2025
2d9e1c6
feat: added new ExpandRefs system
j-mie6 Jan 4, 2025
2495825
refactor: removed unneeded machinery
j-mie6 Jan 4, 2025
f81087b
feat: added check to ensure no clashes between refs
j-mie6 Jan 5, 2025
33d1e44
refactor: cleaned up method naming
j-mie6 Jan 5, 2025
62d86d8
doc: adjust the description of limitations, given it is partially lifted
j-mie6 Jan 5, 2025
5712969
New Reference Expansion (#248)
j-mie6 Jan 5, 2025
1bc50fd
fix(doc): scala tuple size desc
xiaoshihou514 Jan 7, 2025
cca7b43
fix(doc): scala tuple size desc (#251)
j-mie6 Jan 7, 2025
1cc439a
doc: noted the 3.5 limitation
j-mie6 Jan 13, 2025
dc82087
fix(debug): added method present in Scala 3.5+ to debuggable
j-mie6 Jan 13, 2025
1e6e482
doc: removed error callout regarding debuggable
j-mie6 Jan 13, 2025
d96ba02
fix(typo): new api for ErrorBuilder in 5.x
xiaoshihou514 Jan 17, 2025
67ec828
fix(typo): new api for ErrorBuilder in 5.x (#252)
j-mie6 Jan 17, 2025
59ab781
refactor: used new-style or and sequencing in implementations (for de…
j-mie6 Jan 17, 2025
ed29ad6
fix: moved ManyUntil.Stop into instructions package
j-mie6 Jan 20, 2025
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
3 changes: 0 additions & 3 deletions .codeclimate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,6 @@ exclude_patterns:
- "**/ap.scala"
- "**/lift.scala"
- "**/generic.scala"
- "**/genericbridges.scala"
- "**/implicits/zipped.scala"
- "**/implicits/lift.scala"
- "**/syntax/zipped.scala"
- "**/syntax/lift.scala"
plugins:
Expand Down
188 changes: 91 additions & 97 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,61 +17,42 @@ on:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}


concurrency:
group: ${{ github.workflow }} @ ${{ github.ref }}
cancel-in-progress: true

jobs:
build:
name: Build and Test
name: Test
strategy:
matrix:
os: [ubuntu-latest]
os: [ubuntu-22.04]
scala: [2.13, 2.12, 3]
java: [temurin@8, temurin@11, temurin@17]
java: [temurin@11, temurin@17, temurin@21]
project: [rootJS, rootJVM, rootNative]
exclude:
- scala: 2.12
java: temurin@11
- scala: 2.12
java: temurin@17
- scala: 3
java: temurin@11
- scala: 2.12
java: temurin@21
- scala: 3
java: temurin@17
- project: rootJS
java: temurin@11
- scala: 3
java: temurin@21
- project: rootJS
java: temurin@17
- project: rootNative
java: temurin@11
- project: rootJS
java: temurin@21
- project: rootNative
java: temurin@17
- project: rootNative
java: temurin@21
runs-on: ${{ matrix.os }}
timeout-minutes: 60
steps:
- name: Install sbt
if: contains(runner.os, 'macos')
run: brew install sbt

- name: Checkout current branch (full)
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup Java (temurin@8)
id: setup-java-temurin-8
if: matrix.java == 'temurin@8'
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 8
cache: sbt

- name: sbt update
if: matrix.java == 'temurin@8' && steps.setup-java-temurin-8.outputs.cache-hit == 'false'
run: sbt +update
- name: Setup sbt
uses: sbt/setup-sbt@v1

- name: Setup Java (temurin@11)
id: setup-java-temurin-11
Expand Down Expand Up @@ -99,11 +80,24 @@ jobs:
if: matrix.java == 'temurin@17' && steps.setup-java-temurin-17.outputs.cache-hit == 'false'
run: sbt +update

- name: Setup Java (temurin@21)
id: setup-java-temurin-21
if: matrix.java == 'temurin@21'
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 21
cache: sbt

- name: sbt update
if: matrix.java == 'temurin@21' && steps.setup-java-temurin-21.outputs.cache-hit == 'false'
run: sbt +update

- name: Check that workflows are up to date
run: sbt githubWorkflowCheck

- name: Check headers
if: matrix.java == 'temurin@8' && matrix.os == 'ubuntu-latest'
if: matrix.java == 'temurin@11' && matrix.os == 'ubuntu-22.04'
run: sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' headerCheckAll

- name: scalaJSLink
Expand All @@ -118,23 +112,23 @@ jobs:
run: sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' test

- name: Check binary compatibility
if: matrix.java == 'temurin@8' && matrix.os == 'ubuntu-latest'
if: matrix.java == 'temurin@11' && matrix.os == 'ubuntu-22.04'
run: sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' mimaReportBinaryIssues

- name: Generate API documentation
if: matrix.java == 'temurin@8' && matrix.os == 'ubuntu-latest'
if: matrix.java == 'temurin@11' && matrix.os == 'ubuntu-22.04'
run: sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' doc

- name: Make target directories
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/master')
run: mkdir -p parsley-debug/jvm/target parsley-debug/native/target parsley/native/target parsley/jvm/target parsley-debug/js/target parsley/js/target project/target
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/staging/5.0')
run: mkdir -p parsley-debug/jvm/target unidoc/target parsley-debug/native/target parsley/native/target parsley/jvm/target parsley-debug/js/target parsley/js/target project/target

- name: Compress target directories
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/master')
run: tar cf targets.tar parsley-debug/jvm/target parsley-debug/native/target parsley/native/target parsley/jvm/target parsley-debug/js/target parsley/js/target project/target
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/staging/5.0')
run: tar cf targets.tar parsley-debug/jvm/target unidoc/target parsley-debug/native/target parsley/native/target parsley/jvm/target parsley-debug/js/target parsley/js/target project/target

- name: Upload target directories
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/master')
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/staging/5.0')
uses: actions/upload-artifact@v4
with:
name: target-${{ matrix.os }}-${{ matrix.java }}-${{ matrix.scala }}-${{ matrix.project }}
Expand All @@ -143,34 +137,20 @@ jobs:
publish:
name: Publish Artifacts
needs: [build]
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/master')
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/staging/5.0')
strategy:
matrix:
os: [ubuntu-latest]
java: [temurin@8]
os: [ubuntu-22.04]
java: [temurin@11]
runs-on: ${{ matrix.os }}
steps:
- name: Install sbt
if: contains(runner.os, 'macos')
run: brew install sbt

- name: Checkout current branch (full)
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup Java (temurin@8)
id: setup-java-temurin-8
if: matrix.java == 'temurin@8'
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 8
cache: sbt

- name: sbt update
if: matrix.java == 'temurin@8' && steps.setup-java-temurin-8.outputs.cache-hit == 'false'
run: sbt +update
- name: Setup sbt
uses: sbt/setup-sbt@v1

- name: Setup Java (temurin@11)
id: setup-java-temurin-11
Expand Down Expand Up @@ -198,6 +178,19 @@ jobs:
if: matrix.java == 'temurin@17' && steps.setup-java-temurin-17.outputs.cache-hit == 'false'
run: sbt +update

- name: Setup Java (temurin@21)
id: setup-java-temurin-21
if: matrix.java == 'temurin@21'
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 21
cache: sbt

- name: sbt update
if: matrix.java == 'temurin@21' && steps.setup-java-temurin-21.outputs.cache-hit == 'false'
run: sbt +update

- name: Download target directories (2.13, rootJS)
uses: actions/download-artifact@v4
with:
Expand Down Expand Up @@ -317,31 +310,17 @@ jobs:
if: github.event.repository.fork == false && github.event_name != 'pull_request'
strategy:
matrix:
os: [ubuntu-latest]
java: [temurin@8]
os: [ubuntu-22.04]
java: [temurin@11]
runs-on: ${{ matrix.os }}
steps:
- name: Install sbt
if: contains(runner.os, 'macos')
run: brew install sbt

- name: Checkout current branch (full)
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup Java (temurin@8)
id: setup-java-temurin-8
if: matrix.java == 'temurin@8'
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 8
cache: sbt

- name: sbt update
if: matrix.java == 'temurin@8' && steps.setup-java-temurin-8.outputs.cache-hit == 'false'
run: sbt +update
- name: Setup sbt
uses: sbt/setup-sbt@v1

- name: Setup Java (temurin@11)
id: setup-java-temurin-11
Expand Down Expand Up @@ -369,6 +348,19 @@ jobs:
if: matrix.java == 'temurin@17' && steps.setup-java-temurin-17.outputs.cache-hit == 'false'
run: sbt +update

- name: Setup Java (temurin@21)
id: setup-java-temurin-21
if: matrix.java == 'temurin@21'
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 21
cache: sbt

- name: sbt update
if: matrix.java == 'temurin@21' && steps.setup-java-temurin-21.outputs.cache-hit == 'false'
run: sbt +update

- name: Submit Dependencies
uses: scalacenter/sbt-dependency-submission@v2
with:
Expand All @@ -377,17 +369,20 @@ jobs:

coverage:
name: Run Test Coverage and Upload
if: github.ref == 'refs/heads/master' || (github.event_name == 'pull_request' && github.base_ref == 'master')
if: github.ref == 'refs/heads/staging/5.0' || (github.event_name == 'pull_request' && github.base_ref == 'staging/5.0')
strategy:
matrix:
os: [ubuntu-latest]
os: [ubuntu-22.04]
scala: [2.13]
java: [temurin@11]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout current branch (fast)
uses: actions/checkout@v4

- name: Setup sbt
uses: sbt/setup-sbt@v1

- name: Setup Java (temurin@11)
id: setup-java-temurin-11
if: matrix.java == 'temurin@11'
Expand Down Expand Up @@ -417,31 +412,17 @@ jobs:
name: Generate Site
strategy:
matrix:
os: [ubuntu-latest]
os: [ubuntu-22.04]
java: [temurin@11]
runs-on: ${{ matrix.os }}
steps:
- name: Install sbt
if: contains(runner.os, 'macos')
run: brew install sbt

- name: Checkout current branch (full)
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup Java (temurin@8)
id: setup-java-temurin-8
if: matrix.java == 'temurin@8'
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 8
cache: sbt

- name: sbt update
if: matrix.java == 'temurin@8' && steps.setup-java-temurin-8.outputs.cache-hit == 'false'
run: sbt +update
- name: Setup sbt
uses: sbt/setup-sbt@v1

- name: Setup Java (temurin@11)
id: setup-java-temurin-11
Expand Down Expand Up @@ -469,11 +450,24 @@ jobs:
if: matrix.java == 'temurin@17' && steps.setup-java-temurin-17.outputs.cache-hit == 'false'
run: sbt +update

- name: Setup Java (temurin@21)
id: setup-java-temurin-21
if: matrix.java == 'temurin@21'
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 21
cache: sbt

- name: sbt update
if: matrix.java == 'temurin@21' && steps.setup-java-temurin-21.outputs.cache-hit == 'false'
run: sbt +update

- name: Generate site
run: sbt docs/tlSite

- name: Publish site
if: github.event_name != 'pull_request' && github.ref == 'refs/heads/master'
if: github.event_name != 'pull_request' && github.ref == 'refs/heads/staging/5.0'
uses: peaceiris/[email protected]
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
Expand Down
Loading
Loading