{"id":13740945,"url":"https://github.com/sillsdev/libpalaso","last_synced_at":"2025-04-04T19:14:47.434Z","repository":{"id":12936629,"uuid":"15614464","full_name":"sillsdev/libpalaso","owner":"sillsdev","description":"Palaso Library: A set of .Net libraries useful for developers of Language Software.","archived":false,"fork":false,"pushed_at":"2024-05-23T04:56:06.000Z","size":35180,"stargazers_count":43,"open_issues_count":31,"forks_count":51,"subscribers_count":21,"default_branch":"master","last_synced_at":"2024-05-23T05:17:17.830Z","etag":null,"topics":["hacktoberfest","languages","linguistics","linux","windows"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sillsdev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-01-03T16:57:39.000Z","updated_at":"2024-06-06T09:07:54.624Z","dependencies_parsed_at":"2024-06-06T09:07:50.194Z","dependency_job_id":"8ee8af98-73a8-412b-a730-1ca5f96d5677","html_url":"https://github.com/sillsdev/libpalaso","commit_stats":{"total_commits":4298,"total_committers":75,"mean_commits":"57.306666666666665","dds":0.8268962308050256,"last_synced_commit":"737b667dee943500c3d8c18e2c459f38e8aa1197"},"previous_names":[],"tags_count":89,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sillsdev%2Flibpalaso","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sillsdev%2Flibpalaso/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sillsdev%2Flibpalaso/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sillsdev%2Flibpalaso/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sillsdev","download_url":"https://codeload.github.com/sillsdev/libpalaso/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247217174,"owners_count":20903008,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","languages","linguistics","linux","windows"],"created_at":"2024-08-03T04:00:53.848Z","updated_at":"2025-04-04T19:14:47.414Z","avatar_url":"https://github.com/sillsdev.png","language":"C#","readme":"# Palaso Library\n\nThe Palaso repo is a collection of shared libraries that are used in SIL .NET applications. The\nlibraries are mostly cross-platform compatible. All non-test assemblies have a corresponding nuget\npackage.\n\nThe Palaso library adheres to [Semantic Versioning](http://semver.org/) and\n[keeps a Changelog](http://keepachangelog.com/) to record noteworthy changes.\n\n## Documentation\n\n- Overview over the [assemblies](https://github.com/sillsdev/libpalaso/wiki/Assemblies)\n- See [wiki](https://github.com/sillsdev/libpalaso/wiki) for documentation\n\n## Binaries\n\nEvery commit creates a nuget package that is available on [nuget.org](https://www.nuget.org).\n\n## Source Code\n\nTo get the source code, you'll need Git. Then from a command line, give this command:\n\n`git clone https://github.com/sillsdev/libpalaso`\n\n## Development\n\n### Dependencies\n\n#### Windows\n\n- Building libpalaso requires .NET 5 or later. You might want to\n  install Visual Studio 2019 \u003e= 16.8, or JetBrains Rider.\n\n#### Ubuntu Linux\n\nThese 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 ).\n##### To build on Ubuntu 22.04 (Jammy), you have to:\n- Use mono-devel from Focal\n- Use dotnet-sdk-6.0\n- To get unit tests to pass, you have to install libcanberra-gtk-module (libcanberra-gtk-module/jammy,now 0.30-10ubuntu1 amd64). Not sure what is the correct way to get that dependency installed.\n\n##### The rest of the stuff:\n- Add access to packages.microsoft.com repo for dotnet sdk:\n\n  ```bash\n  wget https://packages.microsoft.com/config/ubuntu/$(lsb_release -s -r)/packages-microsoft-prod.deb -O packages-microsoft-prod.deb\n  sudo dpkg -i packages-microsoft-prod.deb\n  rm packages-microsoft-prod.deb\n  ```\n\n- Add access to download.mono-project.com for mono 6 by following\n  instructions at \u003chttps://www.mono-project.com/download/stable\u003e.\n\n- To get unit tests to pass, you have to install libcanberra-gtk-module\n\n- Install the dependencies with:\n\n  ```bash\n  sudo apt update\n  sudo apt install libicu-dev dotnet-sdk-6.0 mono-devel msbuild libcanberra-gtk-module\n  ```\n\n**Note:** Newer Ubuntu versions have .NET 6+ and Mono 6 in their package\nrepos. However, those packages are missing some required files so that\nbuilding libpalaso won't succeed. Therefore it's recommended to install\n.NET 6+ and Mono from Microsoft's/Mono's package repos.\n\n### Develop\n\n- Create a local topic branch:\n\n  ```bash\n  git fetch\n  git checkout -b my-work origin/master\n  ```\n\n- Build:\n\n  #### Windows\n\n  Open `Palaso.sln` in Visual Studio and build.\n\n  #### Linux\n\n  Open and build `Palaso.sln` in JetBrains Rider.\n  Or use the commandline. `environ` is not needed if you installed mono-complete version 6.\n\n  ```bash\n  build/build\n  ```\n\n- Verify that there were no new unit test failures:\n\n  #### Windows\n\n  ```bash\n  build\\TestBuild Debug Test\n  ```\n\n  #### Linux\n\n  ```bash\n  build/TestBuild Debug Test\n  ```\n\n- Test in client projects (as applicable):\n\n  * Set an environment variable `LOCAL_NUGET_REPO` with the path to a folder on your computer (or local network) to publish locally-built packages\n  * See [these instructions](https://docs.microsoft.com/en-us/nuget/hosting-packages/local-feeds) to enable local package sources\n  * `build /t:pack` will pack nuget packages and publish them to `LOCAL_NUGET_REPO`\n\nFurther instructions at https://github.com/sillsdev/libpalaso/wiki/Developing-with-locally-modified-nuget-packages\n\n- Updating langtags.json and ianaSubtagRegistry.txt:\n  * Instructions for updating the langtags.json and ianaSubtagRegistry.txt files are in [SIL.WritingSystems/Readme.md](SIL.WritingSystems/Readme.md)\n\n\n### Contribute\n\n- Commit. Push:\n\n  ```bash\n  $ git push origin TOPICBRANCHNAME\n  ```\n\n- Send a pull request (\u003chttps://help.github.com/articles/using-pull-requests\u003e). Specify destination branch if not `master`.\n\n### Localization\n\nPalaso is localized with [L10NSharp](https://github.com/sillsdev/l10nsharp). Palaso-specific documentation is under `l10n/README.md`.\n\n## API Policy\n\nThe palaso library follows semantic versioning. For APIs this means:\n\n- public APIs that become deprecated will be marked as obsolete.\n- The API and its obsolete tag will remain through the beta versions and at least one more stable version.\n- The API will be removed in one of the next stable versions.\n","funding_links":[],"categories":["Software"],"sub_categories":["Utilities"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsillsdev%2Flibpalaso","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsillsdev%2Flibpalaso","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsillsdev%2Flibpalaso/lists"}