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

v2.8.0 #427

Merged
merged 386 commits into from
Feb 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
386 commits
Select commit Hold shift + click to select a range
8129817
Add dmg extract methods
ionite34 Jan 1, 2024
f5819aa
Add macos update with dmg extract
ionite34 Jan 1, 2024
50d25b8
Update CHANGELOG.md
ionite34 Jan 1, 2024
96571a7
Fixed back button navigation
mohnjiles Jan 1, 2024
45024ab
Merge pull request #444 from ionite34/back-button
mohnjiles Jan 2, 2024
5482a04
Merge branch 'dev' into macos-update
ionite34 Jan 2, 2024
e1c25c1
Merge pull request #445 from ionite34/macos-update
ionite34 Jan 2, 2024
177d9cb
New installer flow with tabs n extensions n stuff
mohnjiles Jan 2, 2024
3c425d4
added ShowIncompatiblePackages toggle
mohnjiles Jan 2, 2024
8200493
default to recommended torch version & show disclaimers
mohnjiles Jan 3, 2024
a11c2b2
also set RecommendedSharedFolderMethod
mohnjiles Jan 3, 2024
f582bf4
ionite killed comfy manager & I added search to new packages page
mohnjiles Jan 3, 2024
3a2223c
extensions ded
mohnjiles Jan 3, 2024
a5b17de
Merge pull request #446 from ionite34/new-installer-flow
mohnjiles Jan 3, 2024
b6a5d05
Organize namespaces
ionite34 Jan 4, 2024
bc463df
Fix exit freeze on macos
ionite34 Jan 4, 2024
bd128a0
cleanup
ionite34 Jan 4, 2024
ae9a9d3
Fix ConnectionHelp navigation to installer
ionite34 Jan 4, 2024
871a0cd
- Added `--use-directml` launch argument for SDWebUI DirectML fork
mohnjiles Jan 4, 2024
8e52692
Merge branch 'dev' into fixes
mohnjiles Jan 4, 2024
04e38d2
chagenlog
mohnjiles Jan 4, 2024
6438048
Merge pull request #448 from ionite34/fixes
mohnjiles Jan 4, 2024
679cf47
Merge branch 'dev' into package-manager
ionite34 Jan 4, 2024
e0a2db5
Merge pull request #447 from ionite34/package-manager
ionite34 Jan 4, 2024
447854c
Merge branch 'dev' into downmerge
mohnjiles Jan 4, 2024
fc6ef78
fix build errors
mohnjiles Jan 4, 2024
7c06631
Merge pull request #451 from ionite34/downmerge
mohnjiles Jan 4, 2024
e5aedc1
Merge branch 'dev' into downmerge
mohnjiles Jan 4, 2024
4db3520
Merge pull request #454 from ionite34/downmerge
mohnjiles Jan 4, 2024
3684889
Add Move and Copy methods for DirectoryPath
ionite34 Jan 4, 2024
9fe0ef8
macos update compat fixes
ionite34 Jan 4, 2024
8e728be
Fix comment
ionite34 Jan 5, 2024
ea662e7
Merge pull request #455 from ionite34/fix-macos-update
ionite34 Jan 5, 2024
5cf8b05
Add CheckIsGitRepository, fix vlad git impl
ionite34 Jan 6, 2024
332f397
Add DownloadService.GetContentAsync
ionite34 Jan 6, 2024
137eca4
Add extension management backends
ionite34 Jan 6, 2024
df55166
Fallback fonts on macos
ionite34 Jan 7, 2024
b4779cd
Update font setting
ionite34 Jan 7, 2024
a4c8950
Add generic SelectableItem vm
ionite34 Jan 7, 2024
21133b7
Add PackageExtensionBrowser
ionite34 Jan 7, 2024
7cc88e8
Fix BetterContentDialog CloseOnClickOutside for other vm types
ionite34 Jan 7, 2024
d991f4c
Refresh on load and add clear selection method
ionite34 Jan 7, 2024
f0fba44
added base model filter to checkpoints page (wip)
mohnjiles Jan 7, 2024
9b51e25
use observable stuffs for CheckpointFolder base model selection & sav…
mohnjiles Jan 8, 2024
bd8d028
fix list clear getting saved to settings & add chagenlog
mohnjiles Jan 8, 2024
0f190f2
make filter work
mohnjiles Jan 8, 2024
5a39c27
fix "other" category
mohnjiles Jan 8, 2024
5d7f8df
disable existing huggingface download checkmark button things
mohnjiles Jan 8, 2024
b85e444
Merge pull request #457 from ionite34/base-model-filter
mohnjiles Jan 8, 2024
26e5a40
Add SearchCollection for DynamicData searching
ionite34 Jan 8, 2024
62b1c79
Add FileUriConverter
ionite34 Jan 8, 2024
0ebece2
HyperlinkIconButton custom icon and file opening
ionite34 Jan 8, 2024
e27a00b
Add Installed package extension managing
ionite34 Jan 8, 2024
3856591
Update .gitignore
ionite34 Jan 8, 2024
9b3130e
Fix search symbol visibility
ionite34 Jan 8, 2024
e4198a1
Fix DirectoryPath delete via IPathObject
ionite34 Jan 8, 2024
a3155de
Add installed extension uninstall
ionite34 Jan 8, 2024
4c8d714
Add TextBoxStyles and `search` class
ionite34 Jan 9, 2024
bcb47ae
Add missing FuncCommandConverter
ionite34 Jan 9, 2024
98cd09e
Update TextBox using search class
ionite34 Jan 9, 2024
00e8705
Add installed extension updating
ionite34 Jan 9, 2024
3881c2e
add Find in Model Browser button on Checkpoints page context menu & s…
mohnjiles Jan 10, 2024
ae81fd0
Merge branch 'dev' into checkpoint-updates-n-stuff
mohnjiles Jan 10, 2024
9402983
refactor & un-async Index method
mohnjiles Jan 10, 2024
03ab434
Merge branch 'checkpoint-updates-n-stuff' of https://github.com/ionit…
mohnjiles Jan 10, 2024
c4b4fe1
dont .tolist
mohnjiles Jan 10, 2024
20ff29d
localize & chagenlog
mohnjiles Jan 10, 2024
7013f81
Add extension settings
ionite34 Jan 10, 2024
7bcd1ec
Merge branch 'dev' into package-extensions
ionite34 Jan 10, 2024
e071006
Merge pull request #458 from ionite34/checkpoint-updates-n-stuff
mohnjiles Jan 11, 2024
cec7342
Move DirectoryPathExtensions to Core, add cancel token
ionite34 Jan 11, 2024
9da3093
Use verbose delete for extension uninstall
ionite34 Jan 11, 2024
e04f3ef
Merge branch 'dev' into package-extensions
ionite34 Jan 11, 2024
76660fd
Extensions menu separator and visibility
ionite34 Jan 11, 2024
3da476f
Update CHANGELOG.md
ionite34 Jan 11, 2024
8f1d28b
make extension checkbox toggle when you click anywhere & make downloa…
mohnjiles Jan 11, 2024
6dc3420
add automatic1111 extensions too
mohnjiles Jan 11, 2024
9ed0bf6
Filter and indicator for already installed extensions
ionite34 Jan 11, 2024
8be10bd
Add requirements install for comfy extensions
ionite34 Jan 11, 2024
1eff8c0
Add before install extension notice
ionite34 Jan 11, 2024
7e8cb32
Update CHANGELOG.md
ionite34 Jan 11, 2024
cfe2be8
Merge branch 'dev' into downmerge
mohnjiles Jan 14, 2024
8945b40
Merge pull request #456 from ionite34/package-extensions
ionite34 Jan 14, 2024
aa97ac9
Merge branch 'dev' into downmerge
mohnjiles Jan 14, 2024
cb94fab
Merge pull request #463 from ionite34/downmerge
mohnjiles Jan 14, 2024
fbe3eb1
do some .ToSTrings() on DirectoryPaths so they dont enumerate & log e…
mohnjiles Jan 14, 2024
6f14471
Merge branch 'dev' into fix-logging
mohnjiles Jan 14, 2024
b587bac
Merge pull request #464 from ionite34/fix-logging
mohnjiles Jan 14, 2024
2f55c80
install node/pnpm and build invoke frontend during install
mohnjiles Jan 14, 2024
4e0026f
Merge branch 'dev' into fix-invoke
mohnjiles Jan 14, 2024
0325fe0
add npm stuff for linux/macos
mohnjiles Jan 14, 2024
7779739
extractManaged
mohnjiles Jan 14, 2024
5f87418
Fix visibility
ionite34 Jan 14, 2024
95c2e43
fix npm path & update windows folder name
mohnjiles Jan 14, 2024
c10c04a
moar fixes & add to path
mohnjiles Jan 14, 2024
b70cd8a
path delimiter
mohnjiles Jan 14, 2024
3ab6a2c
fix windows
mohnjiles Jan 14, 2024
226dcc9
Fix non-macos StartApp filename and args
ionite34 Jan 14, 2024
eda036c
Merge pull request #466 from ionite34/fix-startapp
ionite34 Jan 14, 2024
c242bf1
moar path
mohnjiles Jan 14, 2024
4e21fd9
finally fix invoke build on mac/linux
mohnjiles Jan 14, 2024
da30454
Merge branch 'dev' into fix-invoke
mohnjiles Jan 14, 2024
6eca39b
install invoke frontend on launch if its not there (for people who up…
mohnjiles Jan 15, 2024
027f417
chagenlog
mohnjiles Jan 15, 2024
1993853
fix package install button being enabled 24/7
mohnjiles Jan 15, 2024
1a4aa0d
Merge pull request #465 from ionite34/fix-invoke
mohnjiles Jan 15, 2024
843b83d
Merge branch 'dev' into merge-main-to-dev-03e9e54
ionite34 Jan 15, 2024
e5b316c
Poof duplicate function
ionite34 Jan 15, 2024
3f10a70
Poof duplicate function
ionite34 Jan 15, 2024
116f5dc
More duplicates
ionite34 Jan 15, 2024
457c326
Merge pull request #469 from ionite34/merge-main-to-dev-03e9e54
ionite34 Jan 15, 2024
c80c01f
Added german & portuguese & updated some other languages. also made s…
mohnjiles Jan 15, 2024
5e993c7
Merge pull request #471 from ionite34/german-and-portuguese
mohnjiles Jan 15, 2024
e986af1
readme language update
mohnjiles Jan 15, 2024
b78dbc9
Merge branch 'dev' into readme
mohnjiles Jan 15, 2024
ed707d6
Merge pull request #472 from ionite34/readme
mohnjiles Jan 15, 2024
0c11f30
Add WebpReader
ionite34 Jan 17, 2024
bd8d488
Add animated imagesource template parsing
ionite34 Jan 17, 2024
7d437a5
Update CHANGELOG.md
ionite34 Jan 17, 2024
28fdd6c
Use HttpClientFactory
ionite34 Jan 17, 2024
3ca0f36
Fix ImageViewerDialog arrow key navigation focus
ionite34 Jan 17, 2024
0b3ec58
Update CHANGELOG.md
ionite34 Jan 17, 2024
436003d
Merge pull request #473 from ionite34/fix-webp
ionite34 Jan 17, 2024
f299761
Added Config mode for Fooocus shared models & updated nuget packages
mohnjiles Jan 19, 2024
362d2b9
Merge pull request #474 from ionite34/fooocus-config-and-nugets
mohnjiles Jan 19, 2024
3827c18
Add CopyDetails resource
ionite34 Jan 19, 2024
47736c8
Add copy button for exception dialog
ionite34 Jan 19, 2024
6a78e5d
Update CHANGELOG.md
ionite34 Jan 19, 2024
d0ecac1
Merge pull request #475 from ionite34/exception-copy
ionite34 Jan 20, 2024
15a09d2
Fix crash when invalid launch args passed & change Close button to Hi…
mohnjiles Jan 21, 2024
caa3a66
Merge branch 'dev' into fix-crash
mohnjiles Jan 21, 2024
d7ed54e
Merge pull request #476 from ionite34/fix-crash
mohnjiles Jan 21, 2024
51b6d0c
Skip requirements.txt if empty
ionite34 Jan 21, 2024
fb15ba7
Update CHANGELOG.md
ionite34 Jan 21, 2024
d864004
poof the trim
ionite34 Jan 21, 2024
6b0d5b7
Merge pull request #477 from ionite34/extensions-req
ionite34 Jan 21, 2024
2b037f4
Create Fooocus outputs dir on first launch
mohnjiles Jan 21, 2024
862951a
Merge pull request #478 from ionite34/create-outputs-dir
mohnjiles Jan 21, 2024
e2b355e
new one click installer dialog (wip)
mohnjiles Jan 21, 2024
abe631d
added non-blocking package runner option to show new dialog that does…
mohnjiles Jan 22, 2024
625e7b2
Add EnumAttributeConverters
ionite34 Jan 24, 2024
23a66f4
Fix BetterComboBox property accessibility
ionite34 Jan 24, 2024
a35c1f3
Add StringValue GetValues helper
ionite34 Jan 24, 2024
8a4eaae
Add notifications settings subpage
ionite34 Jan 24, 2024
94e36ed
NotificationService native notification support
ionite34 Jan 24, 2024
0a540a8
Update NotificationKey.cs
ionite34 Jan 24, 2024
928c283
Add some spacing
ionite34 Jan 24, 2024
6828245
Improved converters
ionite34 Jan 24, 2024
59e0df2
NotificationKey parsing and levels
ionite34 Jan 24, 2024
e68b91e
Fix sorting value
ionite34 Jan 24, 2024
f380a76
Fix property json converter
ionite34 Jan 24, 2024
3e02f22
Add ProgressStateChanging event
ionite34 Jan 24, 2024
40028ce
ProgressStateChanging event
ionite34 Jan 24, 2024
893951c
Switch to non weak events, fix downloads GC too early
ionite34 Jan 24, 2024
cc3fa54
Use parsable serializer
ionite34 Jan 24, 2024
e21c1bb
Fix targetframework for notifications
ionite34 Jan 24, 2024
f6a2fec
Add download notifications
ionite34 Jan 24, 2024
9954647
UI update
ionite34 Jan 24, 2024
df22b23
Attach handlers before invoke
ionite34 Jan 24, 2024
05a4c99
Switch to primary ctor
ionite34 Jan 24, 2024
cf7636b
Made GetNativeNotificationsManagerAsync public
ionite34 Jan 24, 2024
1ce19c8
Add debug show notification
ionite34 Jan 24, 2024
78b150c
Add prompt completion notification
ionite34 Jan 25, 2024
c39e9b6
recommended models dialog
mohnjiles Jan 25, 2024
490745f
mostly finished recommended models view
mohnjiles Jan 27, 2024
0a513ff
added skip one-click button
mohnjiles Jan 27, 2024
e2133c5
chagenlog
mohnjiles Jan 27, 2024
d18b3a3
pls review
mohnjiles Jan 27, 2024
4831e1f
Merge pull request #479 from ionite34/new-one-click
mohnjiles Jan 27, 2024
1a8fd00
Updated torch version for A1111, fixed vlad update maybe, updated Foo…
mohnjiles Jan 27, 2024
d157418
Merge branch 'dev' into buncha-fixes
mohnjiles Jan 27, 2024
83994c9
refactored non-blocking post-install stuff & added isInferenceInstall…
mohnjiles Jan 27, 2024
68aec6a
Merge pull request #481 from ionite34/buncha-fixes
mohnjiles Jan 28, 2024
476756a
Wrap install in a task and fire&forget so that we don't click "instal…
mohnjiles Jan 28, 2024
3ad56e6
Merge pull request #482 from ionite34/buncha-fixes
mohnjiles Jan 28, 2024
a1bab3a
Merge branch 'dev' into notifications
ionite34 Jan 28, 2024
c85bf77
Show package install after RecommendedModelsDialog is closed
mohnjiles Jan 28, 2024
b656d4c
undo inference revert
mohnjiles Jan 28, 2024
929d5e0
Merge branch 'dev' into show-package-install
mohnjiles Jan 28, 2024
e87a63f
poof
mohnjiles Jan 28, 2024
94e0c2d
Merge branch 'show-package-install' of https://github.com/ionite34/St…
mohnjiles Jan 28, 2024
621073c
updated a1111 and ui/ux packages to work on mac & maybe fixed invoke …
mohnjiles Jan 28, 2024
da7d383
Merge pull request #484 from ionite34/mac-fixes
mohnjiles Jan 28, 2024
72c8f26
Merge branch 'dev' of https://github.com/ionite34/StabilityMatrix int…
mohnjiles Jan 28, 2024
47b15f4
Merge branch 'dev' into show-package-install
mohnjiles Jan 28, 2024
3003e05
Merge pull request #483 from ionite34/show-package-install
mohnjiles Jan 28, 2024
a45949f
Merge branch 'dev' of https://github.com/ionite34/StabilityMatrix int…
mohnjiles Jan 28, 2024
2088d3c
Fix outputs page crash & update chagenlog
mohnjiles Jan 28, 2024
172b2a1
Merge pull request #485 from ionite34/fix-outputs-and-chagenlog
mohnjiles Jan 28, 2024
12f9042
chagenlog
mohnjiles Jan 28, 2024
33edda5
Merge branch 'dev' into moar-chagenlog
mohnjiles Jan 28, 2024
b7f0f0d
Merge pull request #486 from ionite34/moar-chagenlog
mohnjiles Jan 28, 2024
2d12d1c
Merge branch 'dev' into notifications
ionite34 Jan 28, 2024
653782e
More notification keys
ionite34 Jan 28, 2024
aeb6352
Completion events and progress messages for PackageModificationRunner
ionite34 Jan 28, 2024
6a151a5
Add NotificationServiceExtensions for package completion handling
ionite34 Jan 28, 2024
ba195d2
Add notification for one click install
ionite34 Jan 28, 2024
91a9bb8
Fix unobserved task
ionite34 Jan 28, 2024
97e7f6f
Add notification for package updates
ionite34 Jan 28, 2024
6d8fb32
Add notifications for package install
ionite34 Jan 28, 2024
3645ff4
Remove duplicate notification
ionite34 Jan 28, 2024
dd1f3d2
Include install location in notification
ionite34 Jan 28, 2024
585b477
each package now defines its own prerequisites and each install now c…
mohnjiles Jan 29, 2024
01c7847
Merge branch 'dev' into package-prereqs
mohnjiles Jan 29, 2024
13ae4d7
Merge pull request #487 from ionite34/package-prereqs
mohnjiles Jan 29, 2024
39ed008
Merge branch 'dev' into notifications
ionite34 Jan 29, 2024
2d2a54c
Fix notification init on macos
ionite34 Jan 29, 2024
783934a
Fix outputs not containing grid for notifications
ionite34 Jan 29, 2024
d01651e
Add chagenlog
ionite34 Jan 29, 2024
7f1664c
Merge pull request #480 from ionite34/notifications
ionite34 Jan 29, 2024
edd4460
Fix controlnet missing image error
ionite34 Feb 1, 2024
145a8da
Merge pull request #489 from ionite34/controlnet-fix
ionite34 Feb 1, 2024
d3f3c85
fixed a few bugs from sentry, see chagenlog for details
mohnjiles Feb 1, 2024
810022c
chagenlog
mohnjiles Feb 1, 2024
ccdf6c9
Equality improvements for FileSystemPath
ionite34 Feb 1, 2024
afeef2d
Add IPathObject.Info
ionite34 Feb 1, 2024
5c4101d
Cleanup
ionite34 Feb 1, 2024
dc16dfb
Change LibraryDir to DirectoryPath type
ionite34 Feb 1, 2024
5c2a308
Refactors for LibraryDir type change
ionite34 Feb 1, 2024
633a618
Primary ctor for SettingsTransaction
ionite34 Feb 1, 2024
c2fb73a
Cleanup some redundant settingsmanager funcs
ionite34 Feb 1, 2024
1decfae
More settings cleanup unused funcs
ionite34 Feb 1, 2024
76cff0b
Remove legacy PrerequisiteHelper
ionite34 Feb 1, 2024
3d5a4ae
Cleanup unused
ionite34 Feb 1, 2024
e736708
added model check to ImageToVideo also
mohnjiles Feb 2, 2024
dd87c66
Merge pull request #490 from ionite34/moar-fix
mohnjiles Feb 2, 2024
e19f18d
Fix ambiguous equality operators
ionite34 Feb 2, 2024
daf6071
Add FileSystemPath Tests
ionite34 Feb 2, 2024
5db1e6e
Fix tests on linux
ionite34 Feb 2, 2024
7c75289
Maybe fix tests
ionite34 Feb 2, 2024
0f5ffda
Merge branch 'dev' into fixes
ionite34 Feb 2, 2024
256f6ef
Merge pull request #491 from ionite34/fixes
ionite34 Feb 2, 2024
0b99879
Preserve unknown keys in fooocus config
ionite34 Feb 2, 2024
a6e5bd6
dont write default in None mode
ionite34 Feb 2, 2024
3198176
chagenlog
ionite34 Feb 2, 2024
f06128d
oops stream not closed
ionite34 Feb 2, 2024
2c2b387
Merge pull request #492 from ionite34/fooocus-config
ionite34 Feb 3, 2024
2a132d4
Fix sorting when searching by model ID in CivitAiBrowser
mohnjiles Feb 3, 2024
9330cc9
change property too
mohnjiles Feb 3, 2024
d14bd65
Merge pull request #493 from ionite34/fix-search-by-id-sort
mohnjiles Feb 3, 2024
0c6a74b
update chagenlog for release
mohnjiles Feb 3, 2024
086d798
fix extra newline
mohnjiles Feb 3, 2024
7194657
remove duplicate french update
mohnjiles Feb 3, 2024
16d9bf5
Merge pull request #494 from ionite34/release-chagenlog
mohnjiles Feb 3, 2024
96f55c5
Delete .backportrc.json
ionite34 Feb 3, 2024
5a6a20d
Merge branch 'dev' into oops
ionite34 Feb 3, 2024
86286b9
Merge pull request #496 from ionite34/oops
ionite34 Feb 3, 2024
8cbe030
Merge pull request #495 from ionite34/release-2.8.0
mohnjiles Feb 3, 2024
ae6d90b
Merge branch 'main' of https://github.com/LykosAI/StabilityMatrix-Dev
mohnjiles Feb 3, 2024
bb5ff4a
Merge branch 'LykosAI:main' into main
mohnjiles Feb 3, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
198 changes: 190 additions & 8 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,10 @@ on:
- stable
- preview
- development
test-release-artifacts:
type: boolean
description: "[Debug] Test release artifacts?"
default: false

jobs:
release-linux:
Expand Down Expand Up @@ -171,11 +175,122 @@ jobs:
with:
name: StabilityMatrix-${{ env.platform-id }}
path: ./out/${{ env.out-name }}


release-macos:
name: Release (macos-arm64)
env:
platform-id: osx-arm64
app-name: "Stability Matrix.app"
out-name: "StabilityMatrix-macos-arm64.dmg"
runs-on: macos-13
steps:
- uses: actions/checkout@v3

- uses: olegtarasov/[email protected]
if: github.event_name == 'release'
id: tag_name
with:
tagRegex: "v(.*)"

- name: Set Version from Tag
if: github.event_name == 'release'
run: |
echo "Using tag ${{ env.GIT_TAG_NAME }}"
echo "RELEASE_VERSION=${{ env.GIT_TAG_NAME }}" >> $GITHUB_ENV

- name: Set Version from manual input
if: github.event_name == 'workflow_dispatch'
run: |
echo "Using version ${{ github.event.inputs.version }}"
echo "RELEASE_VERSION=${{ github.event.inputs.version }}" >> $GITHUB_ENV

- name: Set up .NET 8
uses: actions/setup-dotnet@v3
with:
dotnet-version: '8.0.x'

- name: Install dependencies
run: dotnet restore -p:PublishReadyToRun=true

- name: Check Version
run: echo $RELEASE_VERSION

- name: .NET Msbuild (App)
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
run: >
dotnet msbuild ./StabilityMatrix.Avalonia/StabilityMatrix.Avalonia.csproj
-t:BundleApp -p:UseAppHost=true -p:SelfContained=true
-p:Configuration=Release -p:RuntimeIdentifier=${{ env.platform-id }}
-p:Version=$RELEASE_VERSION
-p:PublishDir=out
-p:PublishReadyToRun=true
-p:CFBundleShortVersionString=$RELEASE_VERSION
-p:CFBundleName="Stability Matrix"
-p:CFBundleDisplayName="Stability Matrix"
-p:CFBundleVersion=$RELEASE_VERSION
-p:SentryOrg=${{ secrets.SENTRY_ORG }} -p:SentryProject=${{ secrets.SENTRY_PROJECT }}
-p:SentryUploadSymbols=true -p:SentryUploadSources=true

- name: Post Build (App)
run: mkdir -p signing && mv "./StabilityMatrix.Avalonia/out/Stability Matrix.app" "./signing/${{ env.app-name }}"

- name: Codesign app bundle
env:
MACOS_CERTIFICATE: ${{ secrets.PROD_MACOS_CERTIFICATE }}
MACOS_CERTIFICATE_PWD: ${{ secrets.PROD_MACOS_CERTIFICATE_PWD }}
MACOS_CERTIFICATE_NAME: ${{ secrets.PROD_MACOS_CERTIFICATE_NAME }}
MACOS_CI_KEYCHAIN_PWD: ${{ secrets.PROD_MACOS_CI_KEYCHAIN_PWD }}
run: ./Build/codesign_macos.sh "./signing/${{ env.app-name }}"

- name: Notarize app bundle
env:
MACOS_NOTARIZATION_APPLE_ID: ${{ secrets.PROD_MACOS_NOTARIZATION_APPLE_ID }}
MACOS_NOTARIZATION_TEAM_ID: ${{ secrets.PROD_MACOS_NOTARIZATION_TEAM_ID }}
MACOS_NOTARIZATION_PWD: ${{ secrets.PROD_MACOS_NOTARIZATION_PWD }}
run: ./Build/notarize_macos.sh "./signing/${{ env.app-name }}"

- name: Zip Artifact (App)
working-directory: signing
run: zip -r -y "../StabilityMatrix-${{ env.platform-id }}-app.zip" "${{ env.app-name }}"

- name: Upload Artifact (App)
uses: actions/upload-artifact@v2
with:
name: StabilityMatrix-${{ env.platform-id }}-app
path: StabilityMatrix-${{ env.platform-id }}-app.zip

- uses: actions/setup-node@v4
with:
node-version: '20.x'

- name: Install dependencies for dmg creation
run: >
npm install --global create-dmg
brew install graphicsmagick imagemagick

- name: Create dmg
working-directory: signing
run: >
create-dmg "${{ env.app-name }}" --overwrite --identity "${{ secrets.PROD_MACOS_CERTIFICATE_NAME }}"

- name: Rename dmg
working-directory: signing
run: mv "$(find . -type f -name "*.dmg")" "${{ env.out-name }}"

- name: Zip Artifact (dmg)
working-directory: signing
run: zip -r -y "../StabilityMatrix-${{ env.platform-id }}-dmg.zip" "${{ env.out-name }}"

- name: Upload Artifact (dmg)
uses: actions/upload-artifact@v2
with:
name: StabilityMatrix-${{ env.platform-id }}-dmg
path: StabilityMatrix-${{ env.platform-id }}-dmg.zip

publish-release:
name: Publish GitHub Release
needs: [ release-linux, release-windows ]
needs: [ release-linux, release-windows, release-macos ]
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.github-release == 'true' }}
runs-on: ubuntu-latest
steps:
Expand All @@ -194,11 +309,12 @@ jobs:
- name: Download Artifacts
uses: actions/download-artifact@v3

# Zip each build
# Zip each build (except macos which is already dmg)
- name: Zip Artifacts
run: |
cd StabilityMatrix-win-x64 && zip -r ../StabilityMatrix-win-x64.zip ./. && cd $OLDPWD
cd StabilityMatrix-linux-x64 && zip -r ../StabilityMatrix-linux-x64.zip ./. && cd $OLDPWD
unzip "StabilityMatrix-osx-arm64-dmg/StabilityMatrix-osx-arm64-dmg.zip"

- name: Create Github Release
id: create_release
Expand All @@ -209,15 +325,75 @@ jobs:
files: |
StabilityMatrix-win-x64.zip
StabilityMatrix-linux-x64.zip
StabilityMatrix-macos-arm64.dmg
fail_on_unmatched_files: true
tag_name: v${{ github.event.inputs.version }}
body: ${{ steps.release_notes.outputs.release_notes }}
draft: ${{ github.event.inputs.github-release-draft == 'true' }}
prerelease: ${{ github.event.inputs.github-release-prerelease == 'true' }}

test-artifacts:
name: Test Release Artifacts
needs: [ release-linux, release-windows, release-macos ]
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.test-release-artifacts == 'true' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Extract Release Notes
id: release_notes
run: |
RELEASE_NOTES="$(awk -v version="${{ github.event.inputs.version }}" '/## v/{if(p) exit; if($0 ~ version) p=1}; p' CHANGELOG.md)"
RELEASE_NOTES="${RELEASE_NOTES//'%'/'%25'}"
RELEASE_NOTES="${RELEASE_NOTES//$'\n'/'%0A'}"
RELEASE_NOTES="${RELEASE_NOTES//$'\r'/'%0D'}"
echo "::set-output name=release_notes::$RELEASE_NOTES"
echo "Release Notes:"
echo "$RELEASE_NOTES"

# Downloads all previous artifacts to the current working directory
- name: Download Artifacts
uses: actions/download-artifact@v3

# Zip each build (except macos which is already dmg)
- name: Zip Artifacts
run: |
cd StabilityMatrix-win-x64 && zip -r ../StabilityMatrix-win-x64.zip ./. && cd $OLDPWD
cd StabilityMatrix-linux-x64 && zip -r ../StabilityMatrix-linux-x64.zip ./. && cd $OLDPWD
unzip "StabilityMatrix-osx-arm64-dmg/StabilityMatrix-osx-arm64-dmg.zip"

# Check that the zips and CHANGELOG.md are in the current working directory
- name: Check files
run: |
if [ ! -f StabilityMatrix-win-x64.zip ]; then
echo "StabilityMatrix-win-x64.zip not found"
exit 1
else
echo "StabilityMatrix-win-x64.zip found"
sha256sum StabilityMatrix-win-x64.zip
fi
if [ ! -f StabilityMatrix-linux-x64.zip ]; then
echo "StabilityMatrix-linux-x64.zip not found"
exit 1
else
echo "StabilityMatrix-linux-x64.zip found"
sha256sum StabilityMatrix-linux-x64.zip
fi
if [ ! -f StabilityMatrix-macos-arm64.dmg ]; then
echo "StabilityMatrix-macos-arm64.dmg not found"
exit 1
else
echo "StabilityMatrix-macos-arm64.dmg found"
sha256sum StabilityMatrix-macos-arm64.dmg
fi
if [ ! -f CHANGELOG.md ]; then
echo "CHANGELOG.md not found"
exit 1
fi

publish-auto-update-github:
name: Publish Auto-Update Release (GitHub)
needs: [ release-linux, release-windows ]
needs: [ release-linux, release-windows, release-macos ]
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.auto-update-release == 'true' && github.event.inputs.auto-update-release-mode == 'github url' }}
runs-on: ubuntu-latest
steps:
Expand All @@ -233,7 +409,7 @@ jobs:
python-version: '3.11'

- name: Install Python Dependencies
run: pip install stability-matrix-tools>=0.2.18 --upgrade
run: pip install stability-matrix-tools>=0.3.0 --upgrade

- name: Publish Auto-Update Release
env:
Expand All @@ -246,7 +422,7 @@ jobs:

publish-auto-update-b2:
name: Publish Auto-Update Release (B2)
needs: [ release-linux, release-windows ]
needs: [ release-linux, release-windows, release-macos ]
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.auto-update-release == 'true' && github.event.inputs.auto-update-release-mode == 'upload to b2' }}
runs-on: ubuntu-latest
steps:
Expand All @@ -261,18 +437,19 @@ jobs:
- name: Download Artifacts
uses: actions/download-artifact@v3

# Zip each build
# Zip each build (except macos which is already dmg)
- name: Zip Artifacts
run: |
cd StabilityMatrix-win-x64 && zip -r ../StabilityMatrix-win-x64.zip ./. && cd $OLDPWD
cd StabilityMatrix-linux-x64 && zip -r ../StabilityMatrix-linux-x64.zip ./. && cd $OLDPWD
unzip "StabilityMatrix-osx-arm64-dmg/StabilityMatrix-osx-arm64-dmg.zip"

- uses: actions/setup-python@v4
with:
python-version: '3.11'

- name: Install Python Dependencies
run: pip install stability-matrix-tools>=0.2.18 --upgrade
run: pip install stability-matrix-tools>=0.3.0 --upgrade

# Check that the zips and CHANGELOG.md are in the current working directory
- name: Check files
Expand All @@ -285,6 +462,10 @@ jobs:
echo "StabilityMatrix-linux-x64.zip not found"
exit 1
fi
if [ ! -f StabilityMatrix-macos-arm64.dmg ]; then
echo "StabilityMatrix-macos-arm64.dmg not found"
exit 1
fi
if [ ! -f CHANGELOG.md ]; then
echo "CHANGELOG.md not found"
exit 1
Expand All @@ -303,4 +484,5 @@ jobs:
--changelog CHANGELOG.md
--win-x64 StabilityMatrix-win-x64.zip
--linux-x64 StabilityMatrix-linux-x64.zip
--macos-arm64 StabilityMatrix-macos-arm64.dmg
-y
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -397,3 +397,4 @@ FodyWeavers.xsd

# JetBrains Rider
*.sln.iml
.husky/pre-commit
18 changes: 18 additions & 0 deletions Avalonia.Gif/Avalonia.Gif.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<LangVersion>latest</LangVersion>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<RuntimeIdentifiers>win-x64;linux-x64;osx-x64;osx-arm64</RuntimeIdentifiers>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<BuiltInComInteropSupport>true</BuiltInComInteropSupport>
<EnableWindowsTargeting>true</EnableWindowsTargeting>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Avalonia" Version="11.0.7" />
<PackageReference Include="SkiaSharp" Version="2.88.7" />
<PackageReference Include="DotNet.Bundle" Version="0.9.13" />
</ItemGroup>

</Project>
10 changes: 10 additions & 0 deletions Avalonia.Gif/BgWorkerCommand.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
namespace Avalonia.Gif
{
internal enum BgWorkerCommand
{
Null,
Play,
Pause,
Dispose
}
}
12 changes: 12 additions & 0 deletions Avalonia.Gif/BgWorkerState.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
namespace Avalonia.Gif
{
internal enum BgWorkerState
{
Null,
Start,
Running,
Paused,
Complete,
Dispose
}
}
10 changes: 10 additions & 0 deletions Avalonia.Gif/Decoding/BlockTypes.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
namespace Avalonia.Gif.Decoding
{
internal enum BlockTypes
{
Empty = 0,
Extension = 0x21,
ImageDescriptor = 0x2C,
Trailer = 0x3B,
}
}
8 changes: 8 additions & 0 deletions Avalonia.Gif/Decoding/ExtensionType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace Avalonia.Gif.Decoding
{
internal enum ExtensionType
{
GraphicsControl = 0xF9,
Application = 0xFF
}
}
10 changes: 10 additions & 0 deletions Avalonia.Gif/Decoding/FrameDisposal.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
namespace Avalonia.Gif.Decoding
{
public enum FrameDisposal
{
Unknown = 0,
Leave = 1,
Background = 2,
Restore = 3
}
}
36 changes: 36 additions & 0 deletions Avalonia.Gif/Decoding/GifColor.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
using System.Runtime.InteropServices;

namespace Avalonia.Gif
{
[StructLayout(LayoutKind.Explicit)]
public readonly struct GifColor
{
[FieldOffset(3)]
public readonly byte A;

[FieldOffset(2)]
public readonly byte R;

[FieldOffset(1)]
public readonly byte G;

[FieldOffset(0)]
public readonly byte B;

/// <summary>
/// A struct that represents a ARGB color and is aligned as
/// a BGRA bytefield in memory.
/// </summary>
/// <param name="r">Red</param>
/// <param name="g">Green</param>
/// <param name="b">Blue</param>
/// <param name="a">Alpha</param>
public GifColor(byte r, byte g, byte b, byte a = byte.MaxValue)
{
A = a;
R = r;
G = g;
B = b;
}
}
}
Loading
Loading