The Palaso repo is a collection of shared libraries that are used in SIL .NET applications. The libraries are mostly cross-platform compatible. All non-test assemblies have a corresponding nuget package.
The Palaso library adheres to Semantic Versioning and keeps a Changelog to record noteworthy changes.
Every commit creates a nuget package that is available on nuget.org.
To get the source code, you'll need Git. Then from a command line, give this command:
git clone https://github.com/sillsdev/libpalaso
These libraries cannot currently be built on Linux releases later than Focal without some additional steps/dependencies (because dotnet-sdk-5.0 is no longer supported and does not have a package installer for more recent versions and ).
Add access to packages.microsoft.com repo for dotnet sdk:
wget https://packages.microsoft.com/config/ubuntu/$(lsb_release -s -r)/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
Add access to download.mono-project.com for mono 6 by following instructions at https://www.mono-project.com/download/stable.
To get unit tests to pass, you have to install libcanberra-gtk-module
Install the dependencies with:
sudo apt update
sudo apt install libicu-dev dotnet-sdk-6.0 mono-devel msbuild libcanberra-gtk-module
Note: Newer Ubuntu versions have .NET 6+ and Mono 6 in their package repos. However, those packages are missing some required files so that building libpalaso won't succeed. Therefore it's recommended to install .NET 6+ and Mono from Microsoft's/Mono's package repos.
Create a local topic branch:
git fetch
git checkout -b my-work origin/master
Build:
Open Palaso.sln
in Visual Studio and build.
Open and build Palaso.sln
in JetBrains Rider.
Or use the commandline. environ
is not needed if you installed mono-complete version 6.
build/build
Verify that there were no new unit test failures:
build\TestBuild Debug Test
build/TestBuild Debug Test
Test in client projects (as applicable):
LOCAL_NUGET_REPO
with the path to a folder on your computer (or local network) to publish locally-built packagesbuild /t:pack
will pack nuget packages and publish them to LOCAL_NUGET_REPO
Further instructions at https://github.com/sillsdev/libpalaso/wiki/Developing-with-locally-modified-nuget-packages
Commit. Push:
$ git push origin TOPICBRANCHNAME
Send a pull request (https://help.github.com/articles/using-pull-requests). Specify destination branch if not master
.
Palaso is localized with L10NSharp. Palaso-specific documentation is under l10n/README.md
.
The palaso library follows semantic versioning. For APIs this means: