Skip to content
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

ICU isn't getting bundled in when built on the build server #531

Closed
tjcouch-sil opened this issue Oct 4, 2023 · 0 comments · Fixed by #535
Closed

ICU isn't getting bundled in when built on the build server #531

tjcouch-sil opened this issue Oct 4, 2023 · 0 comments · Fixed by #535
Assignees
Labels
bug Something isn't working

Comments

@tjcouch-sil
Copy link
Member

Describe the bug
The build servers aren't bundling ICU into the Windows build. This causes the resource viewer to display "Loading".

Log:

[2023-10-02 13:28:38.289] [error] [dotnet data provider error] Unhandled exception.
[2023-10-02 13:28:38.425] [error] 
[dotnet data provider error]
System.IO.FileLoadException: Can't load ICU library (version 0)
File name: 'icuuc'
   at Icu.NativeMethods.LoadIcuLibrary(String libraryName)
   at Icu.NativeMethods.get_IcuCommonLibHandle()
   at Icu.NativeMethods.u_init(ErrorCode& errorCode)
   at Icu.Wrapper.Init()
   at Paratext.Data.Languages.WritingSystemRepository.Initialize(IWritingSystemRepository`1 repository)
   at Paratext.Data.ParatextData.Initialize(String settingsDir, Boolean initializePt7Data)
   at Paranext.DataProvider.ParatextUtils.ParatextGlobals.Initialize(String dataFolderPath) in /Users/runner/work/paranext-core/paranext-core/c-sharp/ParatextUtils/ParatextGlobals.cs:line 37
   at Paranext.DataProvider.NetworkObjects.UsfmDataProvider..ctor(PapiClient papiClient, String dataFolderPath, String collectionName) in /Users/runner/work/paranext-core/paranext-core/c-sharp/NetworkObjects/UsfmDataProvider.cs:line 22
   at Paranext.DataProvider.Program.Main() in /Users/runner/work/paranext-core/paranext-core/c-sharp/Program.cs:line 35
   at Paranext.DataProvider.Program.Main() in /Users/runner/work/paranext-core/paranext-core/c-sharp/Program.cs:line 51
   at Paranext.DataProvider.Program.<Main>()
[/dotnet data provider error]

From Matt:

That error happens when the .config file that comes with ICUNET doesn't get bundled appropriately. I thought this was solved months ago when this was added to the .csproj file:

  <!--
    IMPORTANT: The version number below should match the version from the icu.net PackageReference
    For some reason, the .config file only copies inconsistently from the NuGet package without this explicit reference.
  -->
  <ItemGroup>
    <None Update="$(NuGetPackageRoot)\icu.net\2.9.0\contentFiles\any\any\icu.net.dll.config">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
  </ItemGroup>

Now, there is an additional complication on Macs regarding ICU. #264

On Macs specifically there will be ICU errors even if the .config file is there.

To Reproduce
Steps to reproduce the behavior:

  1. Download app-windows from https://github.com/paranext/paranext-core/actions/runs/6382415492 and unzip it
  2. Run it on your machine
  3. See the Resource Viewer shows "loading"

Expected behavior
ICU is bundled into the Windows build appropriately.

@tjcouch-sil tjcouch-sil added the bug Something isn't working label Oct 4, 2023
@lyonsil lyonsil self-assigned this Oct 5, 2023
@lyonsil lyonsil linked a pull request Oct 5, 2023 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
Status: ✅ Done
Development

Successfully merging a pull request may close this issue.

2 participants