Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
507 commits
Select commit Hold shift + click to select a range
c2fbb5c
Test coverage of motions
idealemu Aug 31, 2025
db80a2e
mend
idealemu Aug 31, 2025
4c319bd
Remove redundant check
idealemu Aug 31, 2025
5944984
Add two Catppuccin flavors
HeyMyian Sep 2, 2025
85c079d
Change Floral Midnight to be distinct from Catppuccin
HeyMyian Sep 2, 2025
635145e
Whitespace...
HeyMyian Sep 2, 2025
67bd251
Merge branch 'theme_fixes' of https://github.com/HeyMyian/novelWriter…
HeyMyian Sep 2, 2025
96841bd
Merge branch 'main' into theme_fixes
vkbo Sep 2, 2025
5806b9f
Credits
HeyMyian Sep 2, 2025
edd31be
Merge branch 'theme_fixes' of https://github.com/HeyMyian/novelWriter…
HeyMyian Sep 2, 2025
37516dd
Rename Catppuccin files and change some colours
HeyMyian Sep 4, 2025
a1da73a
New theme pair: Rosé Pine
HeyMyian Sep 4, 2025
25a1ecc
Catppuccin tooltips
HeyMyian Sep 13, 2025
f4c56a1
Merge release 2.7.5
vkbo Sep 14, 2025
4d398f1
Add back attribute lost when merging
vkbo Sep 14, 2025
98cdd4e
Merge 2.7.5 (#2524)
vkbo Sep 14, 2025
b7497fd
Merge branch 'main' into vim-mode
idealemu Sep 15, 2025
a858c8b
Fix, new commands, and bump test coverage
idealemu Sep 15, 2025
eee0cc5
Fix syntax
idealemu Sep 15, 2025
cbf055b
Fix imports
vkbo Sep 15, 2025
eeefa85
Add b and e commands and their tests
idealemu Sep 16, 2025
b23ffd3
Refactor vim tests
idealemu Sep 16, 2025
84c6faa
Refactor vim tests
idealemu Sep 16, 2025
d0efe8d
Refactor handleVim
idealemu Sep 16, 2025
49d23c0
Reformat the Vim mode code
vkbo Oct 4, 2025
b7c5477
Add the vimMode setting to the config file
vkbo Oct 4, 2025
5cb47ac
Add more cursor enum constants
vkbo Oct 4, 2025
8be040a
Move vim mode functions
vkbo Oct 4, 2025
31d139a
Fix new linting issues
vkbo Oct 4, 2025
fbee69a
Clean up some minor details
vkbo Oct 4, 2025
b3a8fc9
Update comments in tests
vkbo Oct 4, 2025
160d15b
Refactor vim mode handling
vkbo Oct 4, 2025
703d37c
Fix a few more cursor enums and remove unused variable
vkbo Oct 4, 2025
100aad1
Update linting due to new Ruff rules
vkbo Oct 4, 2025
42352e9
Add some more type constants
vkbo Oct 4, 2025
3d55b49
Update MacOS tests to run on latest
vkbo Oct 4, 2025
2bd1047
Minor refactoring and linting (#2536)
vkbo Oct 4, 2025
8be0c3c
Merge branch 'main' into pr/idealemu/2499
vkbo Oct 4, 2025
b2324a8
Add the last selection type enum value
vkbo Oct 4, 2025
0b973d5
Fix i18n of vim mode
vkbo Oct 4, 2025
1b671ab
Add colour to vim mode label
vkbo Oct 4, 2025
04198f3
Remove quiet flag from index rebuild
vkbo Oct 5, 2025
0344701
Add helper function to combine JSON strings as larger JSON file
vkbo Oct 5, 2025
8509763
Don't show index rebuild dialog when just upgrading index
vkbo Oct 5, 2025
050e3b0
Fix test coverage
vkbo Oct 5, 2025
fc622c7
Stop showing index rebuild dialog on upgrades (#2537)
vkbo Oct 5, 2025
a5513cc
Add Python 3.14 and update actions
vkbo Oct 13, 2025
b04dada
Add Python 3.14 to classifiers
vkbo Oct 13, 2025
8642086
Update CI/CD (#2538)
vkbo Oct 13, 2025
47ecf2e
Fix typos
vkbo Oct 15, 2025
c1968ba
Add dependency groups to pyproject and drop pytest-cov dependency
vkbo Oct 18, 2025
1019352
Update Linux test workflows
vkbo Oct 18, 2025
08d37dd
Fix bug in Linux test workflow
vkbo Oct 18, 2025
b4c9d7c
Fix coverage reporting
vkbo Oct 18, 2025
4aef01e
Make sure only novelwriter source files are included in coverage
vkbo Oct 18, 2025
7a9464c
Update MacOS and Linux workflows
vkbo Oct 18, 2025
177d39c
Move checkout source further up
vkbo Oct 18, 2025
af86448
Add setuptools to MacOS workflow
vkbo Oct 18, 2025
4036306
Update Windows workflow and try to fix MacOS
vkbo Oct 18, 2025
a6e29f0
Add more debug output
vkbo Oct 18, 2025
e66f199
Fix case conflict on MacOS and Windows
vkbo Oct 18, 2025
359d5f3
Remove debug settings from workflows
vkbo Oct 18, 2025
e21d944
Fix mac workflow and update linting job
vkbo Oct 18, 2025
41c58a5
Update Debian build
vkbo Oct 18, 2025
687bcc2
Update MacOS build
vkbo Oct 22, 2025
0b79bcd
Fix assets build job
vkbo Oct 22, 2025
06cb128
Remove dependencies on requirements files and generate when needed
vkbo Oct 22, 2025
2d7a42d
Remove requirements files
vkbo Oct 22, 2025
e676bdc
Drop support for Python 3.10
vkbo Oct 22, 2025
df2766d
Update linting
vkbo Oct 22, 2025
b3c1800
Add build for Ubuntu 26.04
vkbo Oct 22, 2025
9640d95
Fix docs a little
vkbo Oct 22, 2025
3ceaadd
Fix outdated docstring
vkbo Oct 22, 2025
3dd86a7
Switch to UV tooling (#2540)
vkbo Oct 22, 2025
ede6a94
Drop the pip command from pkgutils.py
vkbo Oct 22, 2025
59035ae
Clean up pkgutils.py (#2541)
vkbo Oct 22, 2025
979d65e
Merge branch 'main' into fix_docs
vkbo Oct 22, 2025
31b512e
Fix typos in docs (#2542)
vkbo Oct 22, 2025
20e1126
Allow named comments to be repeated (#2483)
vkbo Oct 22, 2025
10f0f64
Extend tests
vkbo Oct 22, 2025
f23ce71
Add stepwise and rerun commands to test runner script
vkbo Oct 22, 2025
ba5b2af
Allow repeated named comments (#2543)
vkbo Oct 22, 2025
0966864
Add a standard button generator
vkbo Oct 25, 2025
bb1d902
Update standard dialog boxes
vkbo Oct 25, 2025
1938969
Update icon themes
vkbo Oct 25, 2025
2d67cb7
Update tests and test coverage
vkbo Oct 25, 2025
1b0c339
Add more icons
vkbo Oct 25, 2025
c9c2b35
Update dialog buttons on all dialogs and tools
vkbo Oct 25, 2025
ce939a4
Clean up button types
vkbo Oct 25, 2025
5f34e92
Fix broken tests
vkbo Oct 25, 2025
af36a3b
Remove extra qtbase translations for buttons
vkbo Oct 25, 2025
a02254f
Make minor improvements to the code and fix test on MacOS
vkbo Oct 25, 2025
9339c9f
Standardise push buttons (#2544)
vkbo Oct 25, 2025
e492c65
Add theme update handling to manuscript build tool
vkbo Oct 26, 2025
8b02c95
Add theme update handling to manuscript build settings
vkbo Oct 26, 2025
e0bd7d8
Flip the boolean for scrollable combo boxes
vkbo Oct 26, 2025
a703e0b
Update tests and add more debug output
vkbo Oct 26, 2025
f2c2833
Update test coverage
vkbo Oct 26, 2025
66f445c
Manuscript theme update fix (#2545)
vkbo Oct 26, 2025
5a4930f
Fix role for close buttons
vkbo Oct 26, 2025
c4e9774
Update readmes
vkbo Oct 26, 2025
e032ef5
Minor fixes (#2546)
vkbo Oct 26, 2025
61d591e
Add theme field for white space
vkbo Oct 26, 2025
0a5261a
Update all themes
vkbo Oct 26, 2025
ba01a2a
Update documentation
vkbo Oct 26, 2025
2c1c46b
Add syntax colour for whitespace (#2548)
vkbo Oct 26, 2025
6db67e9
Add icon colour settings to themes and enforce them on all GUI icons
vkbo Oct 26, 2025
f74b151
Add default icon colours to all themes
vkbo Oct 26, 2025
4a94ab8
Add sidebar icon colour setting and rename format icon settings
vkbo Oct 26, 2025
073838a
Update theme files
vkbo Oct 26, 2025
d6911ed
Fix tests
vkbo Oct 26, 2025
75859ec
Make icon colours themable (#2549)
vkbo Oct 26, 2025
34ecfba
Remove the source section of the readme as it's also in teh contribut…
vkbo Oct 26, 2025
31437f3
Tune the readme a little
vkbo Oct 26, 2025
b31eb52
Update readme (#2550)
vkbo Oct 26, 2025
55df8a5
Merge branch 'main' into pr/idealemu/2499
vkbo Oct 26, 2025
53522ca
Merge branch 'main' into theme_fixes
HeyMyian Oct 27, 2025
7996108
Color adjustments
HeyMyian Oct 27, 2025
cc72d10
New theme pair: Jewel Case
HeyMyian Oct 27, 2025
bae59c0
Jewel Case whitespace was missing
HeyMyian Oct 27, 2025
27771f3
Adding [Icon] block where missing
HeyMyian Oct 27, 2025
cd8cc81
Themes and fixes (#2506)
vkbo Oct 27, 2025
a8a6d19
Always use scrollable combo box and manually update the style sheet i…
vkbo Oct 27, 2025
d3b0a48
Make manuscript tool copy button an action button
vkbo Oct 27, 2025
d9d8e54
Add am auto-update button to manuscript build settings
vkbo Oct 27, 2025
2d191c8
Update buttons and manuscript build (#2553)
vkbo Oct 27, 2025
7bbd204
Add permissions to test and linting jobs
vkbo Oct 27, 2025
23b2ca9
Add read permission to all build jobs
vkbo Oct 27, 2025
dc89935
Add permissions to workflows (#2554)
vkbo Oct 27, 2025
d2582b0
Add permissions to dependency assets job
vkbo Oct 27, 2025
4e61c6c
Merge branch 'main' into update_workflows
vkbo Oct 27, 2025
b60cbdf
Fix missing workflow permissions (#2555)
vkbo Oct 27, 2025
7381a44
Merge branch 'main' into vim-mode
vkbo Oct 27, 2025
0544599
Fix brush for disabled novel selector (#2482)
vkbo Oct 27, 2025
81a95ab
Fix dimmed novel selector (#2556)
vkbo Oct 27, 2025
8dc21fb
Issue a warning if a requested colour does not exist, and allow reset…
vkbo Oct 27, 2025
e7ee41f
Fix editor toolbar button colours
vkbo Oct 27, 2025
9628712
Update documentation
vkbo Oct 27, 2025
2f7b045
Fix button colour bug (#2557)
vkbo Oct 27, 2025
e316816
Put loading functions in a separate Method and called it, when Add Di…
Oct 28, 2025
df77fb6
Update novelwriter/gui/mainmenu.py
Reproog Oct 28, 2025
ad34d45
Update novelwriter/guimain.py
Reproog Oct 28, 2025
2b00831
Fix linting error and move spell check update slot to the correct loc…
vkbo Oct 28, 2025
df2840b
Dynamically update spell check dictionaries in the menu (#2562)
vkbo Oct 28, 2025
1fdabe3
Fix size of various icons and buttons (#2561)
vkbo Oct 28, 2025
72e274a
Adjust the size of alert icon and the colours of the status bar LEDs
vkbo Oct 28, 2025
ac7e31b
Fix tests
vkbo Oct 28, 2025
d830315
Update button and icon scales (#2563)
vkbo Oct 28, 2025
d8961c4
Add a tip about line height in the docs (#2559)
vkbo Oct 28, 2025
09f1793
Update tips & tricks in docs (#2564)
vkbo Oct 28, 2025
9982cc0
Bump version to 2.8 Beta 1
vkbo Oct 28, 2025
81ac5a4
Update changelog
vkbo Oct 28, 2025
703c9ad
Minor fixes to the changelog
vkbo Oct 28, 2025
35a1fdd
Fix typos and improve clarity in CHANGELOG.md
vkbo Oct 29, 2025
16c9ce9
Add missing entries in changelog
vkbo Oct 29, 2025
396b874
Release 2.8b1 (#2565)
vkbo Oct 29, 2025
cb36ee0
Split up build workflows
vkbo Oct 29, 2025
df7fd37
Split up build workflows (#2567)
vkbo Oct 29, 2025
b4e4cd9
Rename assets build workflow
vkbo Oct 29, 2025
0bf72de
Rename assets build workflow (#2568)
vkbo Oct 29, 2025
863d888
Upgrade Font Awesome icons to version 7.1
vkbo Nov 1, 2025
a8138ca
Populate empty project list by an entry that creates a sample project
vkbo Nov 1, 2025
1a62ad2
Fix typo in run_tests script
vkbo Nov 1, 2025
8c24b80
Improve reset project behaviour when copying a project
vkbo Nov 1, 2025
1775614
Extend sample project
vkbo Nov 1, 2025
939c58f
Make a few improvements
vkbo Nov 1, 2025
f960cd9
Fix pyright issue and tests
vkbo Nov 1, 2025
cd7c2ba
Remove the special comments and revert back to previous behaviour
vkbo Nov 1, 2025
cffa7c6
Fix some syntax highlighting issues
vkbo Nov 1, 2025
f9e2979
Update tests
vkbo Nov 1, 2025
2a5da2c
Add Alice in Wonderland example text
vkbo Nov 1, 2025
e6d2b0c
Improve sample project creation and usage (#2572)
vkbo Nov 1, 2025
f069b4e
Reduce samples to just Alice in Wonderland and fix some formatting
vkbo Nov 2, 2025
d2944d5
Reduce samples (#2574)
vkbo Nov 2, 2025
0043936
Block formatting on keyword and heading lines
vkbo Nov 2, 2025
006c0c8
Flash editor header red when the user tries to format text that canno…
vkbo Nov 2, 2025
eb0d29c
Improve error handling and test coverage
vkbo Nov 2, 2025
b7ceb17
Block formatting on meta data and headings (#2575)
vkbo Nov 2, 2025
be9270a
Centre app window on the screen if it is auto-resized or always if a …
vkbo Nov 3, 2025
8d896e8
Also centre Welcome dialog and message boxes
vkbo Nov 3, 2025
a11dd76
Fix tests
vkbo Nov 3, 2025
30f62a8
Centre windows at startup (#2580)
vkbo Nov 3, 2025
1d4b57b
Fix a couple of issues with PR #2580
vkbo Nov 3, 2025
61cbbc1
Fix centre on screen/app issues (#2581)
vkbo Nov 3, 2025
69ddd35
Add more space between icon and text on push buttons
vkbo Nov 5, 2025
1d28fa5
Increase spacing on push buttons (#2582)
vkbo Nov 5, 2025
bae385c
Temporary docs for vim-mode in markdown
idealemu Nov 8, 2025
48e8772
Add a customised font dialog
vkbo Nov 8, 2025
af57b9a
Update tests
vkbo Nov 8, 2025
ffc3953
Use geometry for window sizes in config
vkbo Nov 8, 2025
06101cc
Add test coverage of custom font dialog
vkbo Nov 8, 2025
d9d269d
Update function return type
vkbo Nov 8, 2025
7adbb9c
Update module docstring
vkbo Nov 8, 2025
c0f8502
Rename some variables in tests
vkbo Nov 8, 2025
2b5c536
Use a safer way to replace the font dialog buttons
vkbo Nov 8, 2025
1665361
Customise the font select dialog (#2584)
vkbo Nov 8, 2025
fd8f300
Fix the reject overload in NDialog class
vkbo Nov 8, 2025
b0f6f34
Update how writing stats dialog is closed
vkbo Nov 8, 2025
5e28f6f
Fix broken test
vkbo Nov 8, 2025
ea7101d
Fix dialog closing not keeping settings (#2585)
vkbo Nov 8, 2025
5dc0e38
Added de and db commands and tests
idealemu Nov 9, 2025
f448881
Added d$ motion, test coverage, and docs
idealemu Nov 9, 2025
4864aa6
Merge branch 'main' into pr/idealemu/2499
vkbo Nov 9, 2025
8c2ede0
Fix linting errors
vkbo Nov 9, 2025
12cee5f
Make sure we don't insert padding if there are no characters (#2586)
vkbo Nov 13, 2025
ea9b4a9
Add coverage of bug #2586
vkbo Nov 13, 2025
466ade8
Fix inserting line break when auto-padding is enabled (#2587)
vkbo Nov 13, 2025
9754a9e
Fixed coverage for de command and added docs
idealemu Nov 13, 2025
c3b15d7
Merge branch 'vim-mode' of github.com:idealemu/novelWriter into vim-mode
idealemu Nov 13, 2025
2d0cf16
Merge branch 'main' into vim-mode
vkbo Nov 13, 2025
746ebb7
Add Vim mode (#2499)
vkbo Nov 14, 2025
e4d08cc
Merge branch 'main' into refactor_vim_mode
vkbo Nov 14, 2025
2f92da9
Move processing of Vim commands to keyPressEvent handler
vkbo Nov 14, 2025
a487d6a
Add Vim mode setting to Preferences and fix editor reinit
vkbo Nov 14, 2025
5f68db7
Change how multi-line error messages are handled
vkbo Nov 26, 2025
498116b
Update tests
vkbo Nov 26, 2025
1033a3b
Update GUI questions
vkbo Nov 26, 2025
eb3e3e5
Move Vim mode setting to its own section and add confirmation box
vkbo Nov 26, 2025
bde1de5
Rename vim mode docs to rst
vkbo Nov 26, 2025
5ff9911
Re-format markdown to rst
vkbo Nov 26, 2025
e008113
Add some more detail to the Vim mode docs
vkbo Nov 26, 2025
e7e80a9
Update credits
vkbo Nov 26, 2025
2cea001
Update credit for Vim mode
vkbo Nov 27, 2025
c49cfdc
Make sure global escape still works in Vim mode
vkbo Nov 27, 2025
e492643
Simplify the Vim mode checker function
vkbo Nov 27, 2025
0f43706
Reshuffle the escape key processing again
vkbo Nov 27, 2025
5efca5e
Rephrase text in credits
vkbo Nov 27, 2025
c0a6734
Refactor Vim mode (#2588)
vkbo Nov 27, 2025
8962692
Bump version and update changelog
vkbo Nov 28, 2025
9ecac46
Update translation file
vkbo Nov 28, 2025
72880ef
Fix typo in GUI label
vkbo Nov 28, 2025
471f841
Handle cases where the user cancels the example project creation (#2590)
vkbo Nov 29, 2025
d05ed6f
Improve test coverage
vkbo Nov 29, 2025
d894375
Improve example project creation (#2592)
vkbo Nov 29, 2025
cf795c8
Merge branch 'main' into release_2.8rc1
vkbo Nov 29, 2025
b66f008
Update changelog and translation files
vkbo Nov 29, 2025
1b871fc
Update US English, Norwegian and Japanese
vkbo Nov 29, 2025
2045927
Add a language override setting to manuscript build settings (#2328)
vkbo Nov 29, 2025
830a2d9
Add language meta data to HTML export
vkbo Nov 29, 2025
8b86f90
Add a shared function to translate language names
vkbo Nov 29, 2025
b2148e5
Allow overriding language for manuscripts (#2593)
vkbo Nov 29, 2025
b1f6411
Merge branch 'main' into release_2.8rc1
vkbo Nov 29, 2025
6223bf2
Update changelog and add new translation string
vkbo Nov 29, 2025
200a77b
Update docs
vkbo Nov 29, 2025
b31120b
Update US English, Italian, Japanese and Norwegian
vkbo Nov 30, 2025
924d3d3
Update base translation files for remaining languages
vkbo Nov 30, 2025
8f01bde
Update changelog
vkbo Nov 30, 2025
ddceabe
Release 2.8 RC 1 (#2589)
vkbo Nov 30, 2025
609eed9
Fix broken link in docs
vkbo Nov 30, 2025
625be3a
Fix docs (#2595)
vkbo Nov 30, 2025
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
  •  
  •  
  •  
37 changes: 37 additions & 0 deletions .github/workflows/build_all.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: BuildAll

on: workflow_dispatch

jobs:
buildAssets:
uses: ./.github/workflows/part_assets.yml
permissions:
contents: read

buildLinux-AppImage:
needs: buildAssets
uses: ./.github/workflows/part_appimage.yml
secrets: inherit
permissions:
contents: read

buildMac-AMD64:
needs: buildAssets
uses: ./.github/workflows/part_macos_amd64.yml
secrets: inherit
permissions:
contents: read

buildMac-M1:
needs: buildAssets
uses: ./.github/workflows/part_macos_m1.yml
secrets: inherit
permissions:
contents: read

buildWin-X64:
needs: buildAssets
uses: ./.github/workflows/part_win_x64.yml
secrets: inherit
permissions:
contents: read
55 changes: 7 additions & 48 deletions .github/workflows/build_linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,54 +4,13 @@ on: workflow_dispatch

jobs:
buildAssets:
uses: ./.github/workflows/build_assets.yml
uses: ./.github/workflows/part_assets.yml
permissions:
contents: read

buildLinux-AppImage:
needs: buildAssets
# Needs to stay on 22.04 as long as we're using manylinux_2_28
# as libxcb-cursor0 in 22.04 supports glibc >= 2.17
runs-on: ubuntu-22.04
env:
PYTHON_VERSION: "3.13"
LINUX_TAG: "manylinux_2_28"
LINUX_ARCH: "x86_64"
steps:
- name: Python Setup
uses: actions/setup-python@v5
with:
python-version: "3.13"
architecture: x64

- name: Install Packages (apt)
run: |
sudo apt update
sudo apt install libxcb-cursor0

- name: Install Packages (pip)
run: pip install python-appimage setuptools

- name: Checkout Source
uses: actions/checkout@v4

- name: Download Artifacts
uses: actions/download-artifact@v4
with:
name: nw-assets
path: novelwriter/assets

- name: Build AppImage
id: build
run: |
wget https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-$LINUX_ARCH.AppImage
chmod +x appimagetool-$LINUX_ARCH.AppImage
export APPIMAGE_TOOL_EXEC="$(pwd)/appimagetool-$LINUX_ARCH.AppImage"
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $GITHUB_OUTPUT
python pkgutils.py build-appimage $LINUX_TAG $LINUX_ARCH $PYTHON_VERSION

- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-Linux-AppImage
path: dist_appimage/*.AppImage*
if-no-files-found: error
retention-days: 14
uses: ./.github/workflows/part_appimage.yml
secrets: inherit
permissions:
contents: read
68 changes: 11 additions & 57 deletions .github/workflows/build_mac.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,66 +4,20 @@ on: workflow_dispatch

jobs:
buildAssets:
uses: ./.github/workflows/build_assets.yml
uses: ./.github/workflows/part_assets.yml
permissions:
contents: read

buildMac-AMD64:
needs: buildAssets
runs-on: macos-latest
env:
PYTHON_VERSION: "3.13"
PACKAGE_ARCH: x86_64
MINICONDA_ARCH: x86_64
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Download Artifacts
uses: actions/download-artifact@v4
with:
name: nw-assets
path: novelwriter/assets

- name: Build App Bundle
id: build
run: |
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $GITHUB_OUTPUT
./setup/macos/build.sh $PYTHON_VERSION $PACKAGE_ARCH $MINICONDA_ARCH

- name: Upload DMG
uses: actions/upload-artifact@v4
with:
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-MacOS-AMD64-DMG
path: dist_macos/*.dmg*
if-no-files-found: error
retention-days: 14
uses: ./.github/workflows/part_macos_amd64.yml
secrets: inherit
permissions:
contents: read

buildMac-M1:
needs: buildAssets
runs-on: macos-latest
env:
PYTHON_VERSION: "3.13"
PACKAGE_ARCH: aarch64
MINICONDA_ARCH: arm64
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Download Artifacts
uses: actions/download-artifact@v4
with:
name: nw-assets
path: novelwriter/assets

- name: Build App Bundle
id: build
run: |
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $GITHUB_OUTPUT
./setup/macos/build.sh $PYTHON_VERSION $PACKAGE_ARCH $MINICONDA_ARCH

- name: Upload DMG
uses: actions/upload-artifact@v4
with:
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-MacOS-M1-DMG
path: dist_macos/*.dmg*
if-no-files-found: error
retention-days: 14
uses: ./.github/workflows/part_macos_m1.yml
secrets: inherit
permissions:
contents: read
62 changes: 8 additions & 54 deletions .github/workflows/build_win.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,59 +4,13 @@ on: workflow_dispatch

jobs:
buildAssets:
uses: ./.github/workflows/build_assets.yml
uses: ./.github/workflows/part_assets.yml
permissions:
contents: read

buildWin64:
buildWin-X64:
needs: buildAssets
runs-on: windows-2022
steps:
- name: Python Setup
uses: actions/setup-python@v5
with:
python-version: "3.13"
architecture: x64

- name: Checkout Source
uses: actions/checkout@v4

- name: Download Assets
uses: actions/download-artifact@v4
with:
name: nw-assets
path: novelwriter/assets

- name: Build Setup Installer
id: build
run: |
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $Env:GITHUB_OUTPUT
python pkgutils.py build-win-exe

- name: Upload Unsigned Artifacts
id: upload-unsigned-artifact
uses: actions/upload-artifact@v4
with:
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-Win-Setup
path: dist/*.exe
if-no-files-found: error
retention-days: 14

- name: Submit Signing Request
uses: signpath/github-action-submit-signing-request@v1
with:
api-token: "${{ secrets.SIGNPATH_API_TOKEN }}"
organization-id: "0471e52c-66fa-4e9a-bfb9-36167095ca3f"
project-slug: "novelWriter"
signing-policy-slug: "release-signing "
github-artifact-id: "${{ steps.upload-unsigned-artifact.outputs.artifact-id }}"
wait-for-completion: true
output-artifact-directory: "dist/"
parameters: |
version: "${{ steps.build.outputs.BUILD_VERSION }}"

- name: Upload Signed Artifacts
uses: actions/upload-artifact@v4
with:
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-Win-Setup-Signed
path: dist/*.exe
if-no-files-found: error
retention-days: 14
uses: ./.github/workflows/part_win_x64.yml
secrets: inherit
permissions:
contents: read
4 changes: 3 additions & 1 deletion .github/workflows/build_win_launcher.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@ on: workflow_dispatch
jobs:
buildLauncherWin64:
runs-on: windows-latest
permissions:
contents: read
steps:
- name: Checkout Source
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: Build Launcher
id: build
Expand Down
17 changes: 11 additions & 6 deletions .github/workflows/i18n.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,25 +8,30 @@ on:
jobs:
buildI18n:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Python Setup
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: "3.13"
architecture: x64
- name: Install Packages (apt)

- name: Checkout Source
uses: actions/checkout@v5

- name: Install System Packages
run: |
sudo apt update
sudo apt install qttools5-dev-tools
- name: Checkout Source
uses: actions/checkout@v4

- name: Build Assets
run: python pkgutils.py qtlrelease

- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: nw-i18n
path: |
novelwriter/assets/i18n/*.qm
path: novelwriter/assets/i18n/*.qm
if-no-files-found: error
retention-days: 7
55 changes: 55 additions & 0 deletions .github/workflows/part_appimage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Part-AppImage

on: workflow_call

jobs:
buildLinux-AppImage:
# Needs to stay on 22.04 as long as we're using manylinux_2_28
# as libxcb-cursor0 in 22.04 supports glibc >= 2.17
runs-on: ubuntu-22.04
permissions:
contents: read
env:
PYTHON_VERSION: "3.13"
LINUX_TAG: "manylinux_2_28"
LINUX_ARCH: "x86_64"
steps:
- name: Python Setup
uses: actions/setup-python@v6
with:
python-version: "3.13"
architecture: x64

- name: Install Packages (apt)
run: |
sudo apt update
sudo apt install libxcb-cursor0

- name: Install Packages (pip)
run: pip install python-appimage setuptools

- name: Checkout Source
uses: actions/checkout@v5

- name: Download Artifacts
uses: actions/download-artifact@v4
with:
name: nw-assets
path: novelwriter/assets

- name: Build AppImage
id: build
run: |
wget https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-$LINUX_ARCH.AppImage
chmod +x appimagetool-$LINUX_ARCH.AppImage
export APPIMAGE_TOOL_EXEC="$(pwd)/appimagetool-$LINUX_ARCH.AppImage"
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $GITHUB_OUTPUT
python pkgutils.py build-appimage $LINUX_TAG $LINUX_ARCH $PYTHON_VERSION

- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-Linux-AppImage
path: dist_appimage/*.AppImage*
if-no-files-found: error
retention-days: 14
Loading