Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
842703a
chore: bump develop to 1.9.0
Danielku15 Jan 12, 2026
cbbc311
build: reorganize nightly and release builds (#2506)
Danielku15 Jan 12, 2026
b9f40a0
build(deps-dev): bump @types/node from 25.0.6 to 25.0.9 (#2517)
dependabot[bot] Jan 19, 2026
0a014f7
build(deps-dev): bump terser from 5.44.1 to 5.46.0 (#2519)
dependabot[bot] Jan 19, 2026
8279817
build(deps-dev): bump html-webpack-plugin from 5.6.5 to 5.6.6 (#2518)
dependabot[bot] Jan 19, 2026
9124676
build(deps-dev): bump @types/node from 25.0.9 to 25.0.10 (#2523)
dependabot[bot] Jan 26, 2026
e202645
build(deps-dev): bump vite-tsconfig-paths from 6.0.4 to 6.0.5 (#2524)
dependabot[bot] Jan 26, 2026
cd512b3
build(deps-dev): bump vite-plugin-static-copy from 3.1.4 to 3.1.6 (#2…
dependabot[bot] Jan 26, 2026
be98718
build(deps): bump vscode-textmate from 9.3.1 to 9.3.2 (#2527)
dependabot[bot] Jan 26, 2026
d65ba0c
build(deps-dev): bump @biomejs/biome from 2.3.11 to 2.3.12 (#2526)
dependabot[bot] Jan 26, 2026
8d3bc71
build: prevent empty line being treated as commit
Danielku15 Jan 28, 2026
2afab25
fix: correct GP5 bass clef detection (#2531)
Danielku15 Jan 30, 2026
a821dd0
feat: use diatonic spelling instead of chromatic spelling (#2534)
Danielku15 Feb 1, 2026
18f1253
feat: animate cursor to playback range end and allow custom cursor ha…
Danielku15 Feb 1, 2026
7e9e08c
fix: handle GP5 percussion instruments which were removed in later GP…
Danielku15 Feb 1, 2026
a4de3df
Merge branch 'hotfix/1.8.1' into develop
Danielku15 Feb 1, 2026
cc1cfdd
build(deps-dev): bump vite-plugin-static-copy from 3.1.6 to 3.2.0 (#2…
dependabot[bot] Feb 2, 2026
afdb92c
build(deps-dev): bump @biomejs/biome from 2.3.12 to 2.3.13 (#2542)
dependabot[bot] Feb 2, 2026
0940236
build(deps-dev): bump @types/node from 25.0.10 to 25.2.0 (#2543)
dependabot[bot] Feb 2, 2026
80ad07e
build(deps-dev): bump @microsoft/api-extractor from 7.55.2 to 7.56.0 …
dependabot[bot] Feb 2, 2026
32f4a41
build(deps): bump webpack from 5.104.1 to 5.105.0 (#2553)
dependabot[bot] Feb 9, 2026
9ef8623
build(deps-dev): bump @microsoft/api-extractor from 7.56.0 to 7.56.3 …
dependabot[bot] Feb 9, 2026
4079b63
build(deps-dev): bump @types/node from 25.2.0 to 25.2.2 (#2557)
dependabot[bot] Feb 9, 2026
0c409ec
build(deps-dev): bump vite-tsconfig-paths from 6.0.5 to 6.1.0 (#2556)
dependabot[bot] Feb 9, 2026
e375391
build(deps-dev): bump @biomejs/biome from 2.3.13 to 2.3.14 (#2555)
dependabot[bot] Feb 9, 2026
c940d14
build(deps-dev): bump vite-tsconfig-paths from 6.1.0 to 6.1.1 (#2562)
dependabot[bot] Feb 16, 2026
34171c3
build(deps): bump webpack from 5.105.0 to 5.105.2 (#2564)
dependabot[bot] Feb 16, 2026
4b598c5
build(deps-dev): bump @types/vscode from 1.108.1 to 1.109.0 (#2566)
dependabot[bot] Feb 16, 2026
a5bf8a7
build(deps-dev): bump rollup-plugin-license from 3.6.0 to 3.7.0 (#2565)
dependabot[bot] Feb 16, 2026
0143df7
fix: do not use relative time position for tick cursor (#2573)
Danielku15 Feb 21, 2026
2964192
fix: ensure smuflFontFamily is filled for multiple instances (#2574)
Danielku15 Feb 21, 2026
90db43c
build(deps-dev): bump rimraf from 6.1.2 to 6.1.3 (#2579)
dependabot[bot] Feb 23, 2026
0180d5b
build(deps-dev): bump @biomejs/biome from 2.3.14 to 2.4.4 (#2581)
dependabot[bot] Feb 23, 2026
b947b24
build(deps-dev): bump @types/node from 25.2.2 to 25.3.0 (#2578)
dependabot[bot] Feb 23, 2026
f30e47a
build(deps): bump @fortawesome/fontawesome-free from 7.1.0 to 7.2.0 (…
dependabot[bot] Feb 23, 2026
a9716eb
build(deps-dev): bump @microsoft/api-extractor from 7.56.3 to 7.57.3 …
dependabot[bot] Feb 23, 2026
73135ee
build(deps-dev): bump @types/node from 25.3.0 to 25.3.3 (#2586)
dependabot[bot] Mar 2, 2026
6cfbcab
build(deps): bump webpack from 5.105.2 to 5.105.3 (#2587)
dependabot[bot] Mar 2, 2026
c592a51
build(deps-dev): bump @microsoft/api-extractor from 7.57.3 to 7.57.6 …
dependabot[bot] Mar 2, 2026
1574aa8
build(deps): bump actions/upload-artifact from 6 to 7 (#2589)
dependabot[bot] Mar 2, 2026
a5b509d
build(deps-dev): bump @types/node from 25.3.3 to 25.3.5 (#2593)
dependabot[bot] Mar 9, 2026
071bdcc
build(deps-dev): bump @rollup/plugin-terser from 0.4.4 to 1.0.0 (#2594)
dependabot[bot] Mar 9, 2026
dcfd8b8
build(deps): bump webpack from 5.105.3 to 5.105.4 (#2595)
dependabot[bot] Mar 9, 2026
754efa7
build(deps-dev): bump @biomejs/biome from 2.4.4 to 2.4.6 (#2596)
dependabot[bot] Mar 9, 2026
4c81d89
build(deps-dev): bump @microsoft/api-extractor from 7.57.6 to 7.57.7 …
dependabot[bot] Mar 16, 2026
f8c5129
build(deps-dev): bump jest-snapshot from 30.2.0 to 30.3.0 (#2601)
dependabot[bot] Mar 16, 2026
6b6fd05
build(deps-dev): bump vite-plugin-static-copy from 3.2.0 to 3.3.0 (#2…
dependabot[bot] Mar 16, 2026
de09693
build(deps-dev): bump @types/node from 25.3.5 to 25.5.0 (#2602)
dependabot[bot] Mar 16, 2026
220858a
build(deps-dev): bump @biomejs/biome from 2.4.6 to 2.4.7 (#2600)
dependabot[bot] Mar 16, 2026
e091629
build(deps-dev): bump @biomejs/biome from 2.4.7 to 2.4.8 (#2611)
dependabot[bot] Mar 23, 2026
6e6bb3b
build(deps-dev): bump webpack-cli from 6.0.1 to 7.0.2 (#2612)
dependabot[bot] Mar 23, 2026
fc606ce
build(deps-dev): bump @types/vscode from 1.109.0 to 1.110.0 (#2614)
dependabot[bot] Mar 23, 2026
9b1e9cf
build(deps): bump handlebars from 4.7.8 to 4.7.9 (#2620)
dependabot[bot] Mar 27, 2026
0512b9a
Remove 'experimental' label from MusicXML in README.md (#2607)
rafaelsales Mar 27, 2026
2919519
build(deps-dev): bump @coderline/alphaskia-windows from 3.4.135 to 3.…
dependabot[bot] Mar 30, 2026
8e5c61e
build(deps): bump gradle/actions from 5 to 6 (#2628)
dependabot[bot] Mar 30, 2026
f06209e
build(deps-dev): bump @coderline/alphaskia from 3.4.135 to 3.5.147 (#…
dependabot[bot] Mar 30, 2026
78d3af2
build(deps-dev): bump terser from 5.46.0 to 5.46.1 (#2638)
dependabot[bot] Apr 6, 2026
c77df07
build(deps-dev): bump @biomejs/biome from 2.4.8 to 2.4.10 (#2640)
dependabot[bot] Apr 6, 2026
ab21a71
build(deps): bump vite from 7.3.1 to 7.3.2 (#2641)
dependabot[bot] Apr 6, 2026
6c3194f
refactor: change to worker pattern for all platforms (#2644)
Danielku15 Apr 8, 2026
d36a590
fix(synth): buffer pending worklet messages (#2645)
Danielku15 Apr 9, 2026
590f6db
fix: update selection highlight on re-render (#2646)
Danielku15 Apr 9, 2026
03efb03
fix(synth): ensure we end playback fast at end of loops and songs (#2…
Danielku15 Apr 9, 2026
6aaec2e
fix(gp): check harmonic type case insensitive (#2648)
Danielku15 Apr 9, 2026
71af261
fix(android): interrupt handling and main looper usage (#2649)
Danielku15 Apr 9, 2026
93e3818
fix: android musicxml compatibility (#2650)
Danielku15 Apr 9, 2026
4d820ed
fix: overlapping metronome channel (#2651)
Danielku15 Apr 9, 2026
759bd78
fix: ensure cleanup of workers on termination (#2652)
Danielku15 Apr 9, 2026
bc4e2a7
chore: update badges
Danielku15 Apr 10, 2026
61bbde0
Merge branch 'main' into release/1.8.3
Danielku15 Apr 10, 2026
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
33 changes: 12 additions & 21 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
lfs: true
with:
fetch-depth: 100
- uses: actions/setup-node@v6
with:
node-version: 'lts/*'
Expand All @@ -31,8 +31,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
lfs: true
with:
fetch-depth: 100
- uses: actions/setup-node@v6
with:
node-version: 'lts/*'
Expand All @@ -43,7 +43,7 @@ jobs:
- run: npm run build-language-server
- run: npm run build-monaco
id: test
- uses: actions/upload-artifact@v6
- uses: actions/upload-artifact@v7
if: ${{ failure() && steps.test.conclusion == 'failure' }}
with:
name: test-results-web
Expand All @@ -56,8 +56,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
lfs: true
with:
fetch-depth: 100
- uses: actions/setup-node@v6
with:
node-version: 'lts/*'
Expand All @@ -69,7 +69,7 @@ jobs:
- run: npm run build-csharp
- run: npm run test-csharp
id: test
- uses: actions/upload-artifact@v6
- uses: actions/upload-artifact@v7
if: ${{ failure() && steps.test.conclusion == 'failure' }}
with:
name: test-results-csharp
Expand All @@ -80,19 +80,10 @@ jobs:
build_kotlin:
name: Build and Test Kotlin
runs-on: ubuntu-latest
env:
OSSRH_USERNAME: ${{secrets.OSSRH_USERNAME}}
OSSRH_PASSWORD: ${{secrets.OSSRH_PASSWORD}}
OSSRH_USERTOKEN_USERNAME: ${{secrets.OSSRH_USERTOKEN_USERNAME}}
OSSRH_USERTOKEN_PASSWORD: ${{secrets.OSSRH_USERTOKEN_PASSWORD}}
SONATYPE_STAGING_PROFILE_ID: ${{secrets.SONATYPE_STAGING_PROFILE_ID}}
SONATYPE_SIGNING_KEY_ID: ${{secrets.SONATYPE_SIGNING_KEY_ID}}
SONATYPE_SIGNING_PASSWORD: ${{secrets.SONATYPE_SIGNING_PASSWORD}}
SONATYPE_SIGNING_KEY: ${{secrets.SONATYPE_SIGNING_KEY}}
steps:
- uses: actions/checkout@v6
with:
lfs: true
with:
fetch-depth: 100
- uses: actions/setup-node@v6
with:
node-version: 'lts/*'
Expand All @@ -101,14 +92,14 @@ jobs:
with:
java-version: '19'
distribution: 'temurin'
- uses: gradle/actions/setup-gradle@v5
- uses: gradle/actions/setup-gradle@v6
with:
cache-read-only: false
- run: npm ci
- run: npm run build-kotlin
- run: npm run test-kotlin
id: test
- uses: actions/upload-artifact@v6
- uses: actions/upload-artifact@v7
if: ${{ failure() && steps.test.conclusion == 'failure' }}
with:
name: test-results-kotlin
Expand Down
154 changes: 18 additions & 136 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,139 +6,21 @@ on:
workflow_dispatch:

jobs:
check_sha:
name: check_sha
runs-on: ubuntu-latest
outputs:
hit: ${{ steps.cache.outputs.cache-hit == 'true' }}
steps:
- run: touch dummy.txt

- uses: actions/cache@v5
id: cache
with:
path: dummy.txt
key: check-sha-${{ github.sha }}

nighty_web:
name: Web
needs: check_sha
if: needs.check_sha.outputs.hit == 'false'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
lfs: true
- uses: actions/setup-node@v6
with:
node-version: 'lts/*'
cache: 'npm'

- run: npm run update-version -- alpha ${{github.run_number}}
- run: npm ci
- run: npm run build-web
- run: npm run build-language-server
- run: npm run build-monaco
- run: npm pack
working-directory: ./packages/alphatab/
- run: npm pack
working-directory: ./packages/vite/
- run: npm pack
working-directory: ./packages/webpack/
- run: npm pack
working-directory: ./packages/lsp/
- run: npm pack
working-directory: ./packages/monaco/

- uses: actions/setup-node@v6
with:
node-version: 'lts/*'
registry-url: https://registry.npmjs.org/

- run: npm publish --access public --tag alpha
working-directory: ./packages/alphatab/
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_AUTH_TOKEN}}

- run: npm publish --access public --tag alpha
working-directory: ./packages/vite/
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_AUTH_TOKEN}}

- run: npm publish --access public --tag alpha
working-directory: ./packages/webpack/
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_AUTH_TOKEN}}

- run: npm publish --access public --tag alpha
working-directory: ./packages/lsp/
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_AUTH_TOKEN}}

- run: npm publish --access public --tag alpha
working-directory: ./packages/monaco/
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_AUTH_TOKEN}}

nightly_csharp:
name: C#
needs: check_sha
if: needs.check_sha.outputs.hit == 'false'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
lfs: true
- uses: actions/setup-node@v6
with:
node-version: 'lts/*'
cache: 'npm'

- uses: actions/setup-dotnet@v5
with:
dotnet-version: "8"

- run: npm run update-version -- alpha ${{github.run_number}}
- run: npm ci
- run: npm run build-csharp

- run: dotnet nuget push AlphaTab/bin/Release/*.nupkg -k ${{secrets.NUGET_API_KEY}} -s https://api.nuget.org/v3/index.json
working-directory: ./packages/csharp/src/
- run: dotnet nuget push AlphaTab.Windows/bin/Release/*.nupkg -k ${{secrets.NUGET_API_KEY}} -s https://api.nuget.org/v3/index.json
working-directory: ./packages/csharp/src/

nightly_kotlin_android:
name: Kotlin (Android)
needs: check_sha
if: needs.check_sha.outputs.hit == 'false'
runs-on: ubuntu-latest
env:
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{secrets.OSSRH_USERTOKEN_USERNAME}}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{secrets.OSSRH_USERTOKEN_PASSWORD}}
ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{secrets.SONATYPE_SIGNING_KEY_ID}}
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{secrets.SONATYPE_SIGNING_PASSWORD}}
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{secrets.SONATYPE_SIGNING_KEY}}
steps:
- uses: actions/checkout@v6
with:
lfs: true
- uses: actions/setup-node@v6
with:
node-version: 'lts/*'
cache: 'npm'

- uses: actions/setup-java@v5
with:
java-version: "19"
distribution: "temurin"

- run: npm run update-version -- alpha ${{github.run_number}}
- run: npm ci
- run: npm run build-kotlin

- run: ./gradlew publishToMavenCentral
working-directory: ./packages/kotlin/src/

- run: ./gradlew --stop
working-directory: ./packages/kotlin/src/

web:
uses: ./.github/workflows/~publish_web.yml
secrets: inherit
with:
version: alpha ${{github.run_number}}
npm_tag: alpha

dotnet:
uses: ./.github/workflows/~publish_dotnet.yml
secrets: inherit
with:
version: alpha ${{github.run_number}}

kotlin:
uses: ./.github/workflows/~publish_kotlin.yml
secrets: inherit
with:
version: alpha ${{github.run_number}}
129 changes: 20 additions & 109 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,116 +19,27 @@ on:
default: true

jobs:
release_web:
name: Web
runs-on: ubuntu-latest
web:
uses: ./.github/workflows/~publish_web.yml
secrets: inherit
if: (github.event_name == 'push') || (github.event_name == 'workflow_dispatch' && github.event.inputs.release_web == 'true')
steps:
- uses: actions/checkout@v6
with:
lfs: true
- uses: actions/setup-node@v6
with:
node-version: 'lts/*'

- run: npm run update-version -- ${{github.run_number}}
- run: npm ci
- run: npm run build-web
- run: npm run build-language-server
- run: npm run build-monaco
- run: npm pack
working-directory: ./packages/alphatab/
- run: npm pack
working-directory: ./packages/vite/
- run: npm pack
working-directory: ./packages/webpack/
- run: npm pack
working-directory: ./packages/lsp/
- run: npm pack
working-directory: ./packages/monaco/
- uses: actions/setup-node@v6
with:
node-version: 'lts/*'
registry-url: https://registry.npmjs.org/
- name: Publish to NPM (alphaTab release)
run: npm publish --access public
working-directory: ./packages/alphatab/
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_AUTH_TOKEN}}
- name: Publish to NPM (Vite Plugin release)
run: npm publish --access public
working-directory: ./packages/vite/
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_AUTH_TOKEN}}
- name: Publish to NPM (Webpack release)
run: npm publish --access public
working-directory: ./packages/webpack/
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_AUTH_TOKEN}}
- name: Publish to NPM (Language Server release)
run: npm publish --access public
working-directory: ./packages/lsp/
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_AUTH_TOKEN}}
- name: Publish to NPM (Monaco release)
run: npm publish --access public
working-directory: ./packages/monaco/
env:
NODE_AUTH_TOKEN: ${{secrets.NPMJS_AUTH_TOKEN}}

release_csharp:
name: C#
runs-on: ubuntu-latest
with:
version: ${{github.run_number}}
npm_tag: latest
force: true

dotnet:
uses: ./.github/workflows/~publish_dotnet.yml
secrets: inherit
if: (github.event_name == 'push') || (github.event_name == 'workflow_dispatch' && github.event.inputs.release_csharp == 'true')
steps:
- uses: actions/checkout@v6
with:
lfs: true
- uses: actions/setup-node@v6
with:
node-version: 'lts/*'
- uses: actions/setup-dotnet@v5
with:
dotnet-version: '8'
env:
NUGET_AUTH_TOKEN: ${{secrets.NUGET_API_KEY}}
- run: npm run update-version -- ${{github.run_number}}
- run: npm ci
- run: npm run build-csharp
- run: dotnet nuget push AlphaTab/bin/Release/*.nupkg -k ${{secrets.NUGET_API_KEY}} -s https://api.nuget.org/v3/index.json --skip-duplicate
working-directory: ./packages/csharp/src/
- run: dotnet nuget push AlphaTab.Windows/bin/Release/*.nupkg -k ${{secrets.NUGET_API_KEY}} -s https://api.nuget.org/v3/index.json --skip-duplicate
working-directory: ./packages/csharp/src/
with:
version: ${{github.run_number}}
force: true

release_kotlin_android:
name: Kotlin (Android)
runs-on: windows-latest
kotlin:
uses: ./.github/workflows/~publish_kotlin.yml
secrets: inherit
if: (github.event_name == 'push') || (github.event_name == 'workflow_dispatch' && github.event.inputs.release_kotlin_android == 'true')
env:
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{secrets.OSSRH_USERTOKEN_USERNAME}}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{secrets.OSSRH_USERTOKEN_PASSWORD}}
ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{secrets.SONATYPE_SIGNING_KEY_ID}}
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{secrets.SONATYPE_SIGNING_PASSWORD}}
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{secrets.SONATYPE_SIGNING_KEY}}
steps:
- uses: actions/checkout@v6
with:
lfs: true
- uses: actions/setup-node@v6
with:
node-version: 'lts/*'

- uses: actions/setup-java@v5
with:
java-version: "19"
distribution: "temurin"

- run: npm run update-version -- ${{github.run_number}}
- run: npm ci
- run: npm run build-kotlin
- run: ./gradlew publishToMavenCentral
working-directory: ./packages/kotlin/src/

- run: ./gradlew --stop
working-directory: ./packages/kotlin/src/

with:
version: ${{github.run_number}}
force: true
Loading
Loading