-
-
Notifications
You must be signed in to change notification settings - Fork 33
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
fix invalid Uri error when running in a Single file application #201
Merged
hahn-kev
merged 2 commits into
sillsdev:master
from
hahn-kev:support-single-file-deployment
Jul 4, 2024
Merged
fix invalid Uri error when running in a Single file application #201
hahn-kev
merged 2 commits into
sillsdev:master
from
hahn-kev:support-single-file-deployment
Jul 4, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…n attempting to determine the location of the icu.net assembly. Assembly.Location will be an empty string when publishing SingleFile.
hahn-kev
added a commit
to sillsdev/languageforge-lexbox
that referenced
this pull request
Jul 2, 2024
…gle file until sillsdev/icu-dotnet#201 is merged.
ermshiperete
approved these changes
Jul 2, 2024
hahn-kev
added a commit
to sillsdev/languageforge-lexbox
that referenced
this pull request
Jul 5, 2024
* define parts of speech models in MiniLcm, implement tests and updates for the FwDataBridge pull part of speech helper methods into their own utility class rewrite semantic domain implementation to support them being objects that are referenced, instead of just being a string. prevent json patch changes from having index references, this will avoid conflicts where the index changes due to merges. introduce json patch rewriting to convert patches into specific changes. Rewrite changes to Sense.PartOfSpeechId into SetPartOfSpeechChange. allow creating parts of speech as CRDTs and setup a PoC of pre seeding them. allow creating semantic domains and referencing them in senses, rewrite json patch to change semantic domains of senses. Add tests for creating senses with and without semantic domains, and with and without part of speeches. * remove duplicate field, fix overloaded GetEntries function causing build error due to 2 overloads not requiring parameters. * add WritingSystemTests.cs, and make the project loader fixture a collection fixture so it's shared by all tests in the project. * reduce allocations in ContributeExemplars by ~50% by using spans of chars instead of strings. * use string contains with StringComparison instead of calling ToLowerInvariant on each string. * optimize ws lookup when populating exemplars by using a frozen dictionary, and set the MultiString capacity when converting a LcmMultiString to a MiniLcmMultiString * Populate UI with parts-of-speech * Search improvements * Index dictionary by first grapheme instead of first char * Revert "Index dictionary by first grapheme instead of first char", because first-char sounds like a better way to go (https://sil-lt.slack.com/archives/C806BLR42/p1718797173733449) This reverts commit 614dbd5. * Fix exemplar lookup not always working * Add loading indicators * Improve index character overlay size * Option type cleanup * Add Sandbox to reproduce open bug * Populate semantic domain dropdown (WIP) * Make entry list always fully visible. * Prevent unnecessary change events * Fix type error * Use less peculiar icon * Display search keyboard shortcut * Redesign home page * Resize keys * Fix Part of speech changes not being persisted * Uppercase index exemplars to prevent duplicates * Store selected-entry, selected-index-char and search in URL * Add transition so increased debounce is not so noticeable. * Add save status indicator * Layout and mobile fixes * Cheap fix for semantic domain list being way to big * Format selected semantic domains * gracefully handle null order by text * rework CrdtMultiOptionField to support editing object lists * add parts of speech to CrdtLexboxApi.cs to fix failing tests * add parts of speech and semantic domains to the lf classic api * disable server garbage collection to reduce memory usage. Disable single file until sillsdev/icu-dotnet#201 is merged. * apply some suggested feedback from review. * normalize exemplar to NFD before using it for comparison --------- Co-authored-by: Tim Haasdyk <tim_haasdyk@sil.org>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When publishing a Single file application we would get an error when trying to initlize Icu. This PR fixes that issue.
To test run the following in the TestHelper project
the resulting exe can be found in
icu-dotnet\output\Release\TestHelper\net8.0\win-x64\publish
, copy in the native ICU dlls to that folder and run that with the following (numbers being the icu version range).\TestHelper.exe 70 72
before this PR you would get this exception:
this is because
Assembly.Location
returns an empty string. Per the warning, I'm usingAppContext.BaseDirectory
when location returns an empty string.It would be nice to have an automated test for this, but doing that would require doing something similar to above where we publish a SingleFile project and run it, not sure if that's worth it.