Electron client, extension host, and C# library for Paranext
This software is not yet ready for users. We'll update here with where you can install it when its ready.
To use .AppImage
files in Linux, install FUSE (you only need to do this once), for example, on Ubuntu (>= 22.04):
sudo apt install libfuse2
Then simply execute/run the .AppImage
file, which you can download from Releases.
Set up pre-requisites for building:
Add the system libraries needed for Electron, Build Instructions (Linux).
Install dotnet
.NET 7 SDK from here.
To check if dotnet
is installed run (ensure you have a v7 SDK):
dotnet --version
dotnet --list-sdks
Clone the repo and install dependencies:
git clone https://github.com/paranext/paranext-core.git
cd paranext-core
npm install
Start the app in the dev
environment:
npm start
After you run npm start
(or, in VSCode, launch Debug Paranext Core
), you can edit the code, and the relevant processes will hot reload.
To package apps for the local platform:
npm run package
- Create a branch of the form
release/*
, e.g.release/v1.2.3
, orrelease/v1.2.3-rc1
. - Update the version in your project's
release/app/package.json
file (e.g. 1.2.3). - Run
npm i
in that folder to update itspackage-lock.json
. - Create a new draft GitHub Release, ensure the following are included:
- a Tag version, e.g.
v1.2.3
, choose Create new tag on publish. - set the Target to the release branch.
- a copy of the change log. Click Generate release notes as a starting point.
- Click Save draft.
- a Tag version, e.g.
- Update
CHANGELOG.md
with changes in this release from the GitHub draft Release. - Commit these changes to your release branch and push the commit to GitHub.
- Once the GitHub build Action has finished, it will add build artifact files to the draft release. Remove the
.blockmap
files and leave the.yml
files and the installers and executable, e.g..exe
on Windows. - Publish the release on GitHub.
- Merge the release branch back into main with a merge commit.
On Windows, you can install WSL (Windows Subsystem for Linux) so you can test cross-platform compatibility on Linux (as well as Windows). You'll need to use a Linux distribution with WSL2 (rather than WSL1) so the X-Server windows can be opened for Electron.
- Here is how to install Linux on Windows with WSL.
- You'll want to follow that by setting up to use VS Code, Git and NodeJS with WSL. See the various tutorials.
- In the WSL distribution, add system libraries needed for Electron, see Linux Development Pre-requisites above.
- In the WSL distribution, clone the repo as described above under Developer Install.
You'll be running a copy of the repo in both Windows and WSL so make sure they are both up-to-date.
You can use VS Code from your host to access code in your WSL repo clone using the Microsoft Remote Development VS Code extension.
Extensions highly recommended for this repo are already displayed in VS Code through the Extensions Recommendations settings. These are optional extensions that our developers enjoy using:
Formatting happens automatically when you commit. If you use VS Code with this repo's recommended extensions it will format when you save.
To check TypeScript for readability, maintainability, and functionality errors, and to check a few other files for proper formatting, run the following from the repo root (or just use VS Code with this repo's recommended extensions)
npm run prettier
npm run lint
To check C# for readability, maintainability, and functionality errors, run the following from the repo root (or just use VS Code with this repo's recommended extensions)
cd c-sharp
dotnet tool restore
dotnet csharpier .
MIT © SIL International