Skip to content

Conversation

@moljac
Copy link
Contributor

@moljac moljac commented May 5, 2021

bintray/jcenter/jfrog removal/replacements

Context: https://blog.gradle.org/jcenter-shutdown

Context: https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/

JCenter is shutting down. It is no longer browsable as of May 1, and artifacts hosted on JCenter repository will be read-only accessible indefinitely.

Stop using JCenter, and instead use Maven Central.

NOTE: unable to find url replacements:

  • jetbrains runtime jbrsdk
  • twitter-core
./build-tools/xaprepare/xaprepare/ConfigAndData/Configurables.cs:35:			// https://bintray.com/jetbrains/intellij-jdk/download_file?file_path=jbrsdk-8u202-linux-x64-b1483.37.tar.gz
./build-tools/xaprepare/xaprepare/ConfigAndData/Configurables.cs:36:			// https://bintray.com/jetbrains/intellij-jdk/download_file?file_path=jbrsdk-8u202-osx-x64-b1483.37.tar.gz
./build-tools/xaprepare/xaprepare/ConfigAndData/Configurables.cs:37:			// https://bintray.com/jetbrains/intellij-jdk/download_file?file_path=jbrsdk-8u202-windows-x64-b1483.37.tar.gz


./src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs:3277:				WebContent = "https://dl.bintray.com/twitteross/twitterkit/com/twitter/sdk/android/twitter-core/3.3.0/twitter-core-3.3.0.aar",

Related:

dotnet/java-interop@9444570

Copy link
Member

@jonathanpeppers jonathanpeppers left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested a couple of these URLs and they seem to work.

This looks good if the build ends up green. 👍

@moljac
Copy link
Contributor Author

moljac commented May 5, 2021

thanks

What about jbrsdk? Just wait and see when and where it will be moved?

https://blog.gradle.org/jcenter-shutdown

https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/

JCenter repo will be read-only forever. Seems that downloads will be possible and even after 2022-02-01

@jonathanpeppers
Copy link
Member

Honestly, I think it would be fine to wait and only fix URLs that break. Most of these are just unit tests.

jonathanpeppers and others added 2 commits May 5, 2021 15:41
…#5898)

Context: https://github.com/dotnet/designs/pull/188/files#diff-8fcaa29d8e6f00b34b3cb1830d93f33e75f04424780a66a3c658c7021048e74fR125
Context: https://github.com/NuGet/NuGet.Client/blob/c529bd75d247430ed19b1713041de0b5b240ef0d/src/NuGet.Core/NuGet.Build.Tasks.Pack/NuGet.Build.Tasks.Pack.targets#L220-L281

The `$(PackageId)` of our workload `.nupkg` needs to be:

	Microsoft.NET.Sdk.Android.Manifest-6.0.100

While the `$(PackageVersion)` remains the same as before.

The layout on disk will change to:

	dotnet\sdk-manifests\6.0.100\Microsoft.NET.Sdk.Android\
	    WorkloadManifest.json
	    WorkloadManifest.targets

Note that `.Manifest` and `-6.0.100` are not in the folder name
on disk.

The generated filename will be e.g.

	Microsoft.NET.Sdk.Android.Manifest-6.0.100.11.0.200-ci.microsoft-net-sdk-android-manifest.255.nupkg

We could find no way to "visually separate" the ".NET version band"
of `6.0.100` from the Microsoft.NET.Sdk.Android version of `11.0.200`.

Additionally, update `version` in `WorkloadManifest.json` so it
contains the proper version for our workload.  This used to not be
possible because `version` was a `long`, but it now is a `string`
where we can put our version.
@jonpryor
Copy link
Contributor

jonpryor commented May 5, 2021

For commit message purposes, this could be repurposed: dotnet/java-interop@9444570

jonathanpeppers and others added 10 commits May 6, 2021 16:44
Context: https://devdiv.visualstudio.com/DevDiv/_build/results?buildId=4728381&view=ms.vss-test-web.build-test-results-tab&runId=21435278&resultId=100052&paneView=attachments

CI on some of our release branches is failing with errors such as:

    UnnamedProject.csproj: warning MSB4242: The SDK resolver "Microsoft.DotNet.MSBuildWorkloadSdkResolver" failed to run. An item with the same key has already been added. Key: microsoft-android-sdk-full
    Microsoft.NET.Sdk.ImportWorkloads.props(14,3): warning MSB4242: The SDK resolver "Microsoft.DotNet.MSBuildWorkloadSdkResolver" failed to run. An item with the same key has already been added. Key: microsoft-android-sdk-full
    Microsoft.NET.Sdk.ImportWorkloads.props(14,38): error MSB4236: The SDK 'Microsoft.NET.SDK.WorkloadAutoImportPropsLocator' specified could not be found.

This could happen if both directories exist:

    dotnet/sdk-manifest/6.0.100/Microsoft.NET.Workload.Android
    dotnet/sdk-manifest/6.0.100/Microsoft.NET.Sdk.Android

Which would define the same Android workload twice.

xaprepare was setup to clean certain folders in
`$(AndroidToolchainDirectory)\dotnet`, but also needs to delete:

* sdk-manifests/6.0.100/*Android*
* template-packs/*Android*

I also changed some of the string comparisons to use
`StringComparison.OrdinalIgnoreCase`.
Context: dotnet/runtime#51274

In .NET 6, `libSystem.Security.Cryptography.Native.OpenSsl.so` needs
to be loaded and initialized in order for `System.Security` to be
usable.

Previously, nothing ensured that the library was loaded, which would
result in SIGSEGVs at runtime:

	[monodroid-assembly] Caching p/invoke entry libSystem.Security.Cryptography.Native.OpenSsl @ AndroidCryptoNative_CipherCreate
	[monodroid] MonodroidRuntime::monodroid_pinvoke_override ("libSystem.Security.Cryptography.Native.OpenSsl", "AndroidCryptoNative_CipherCreate")
	[libc] Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 5002 (anyname.Android), pid 5002 (anyname.Android)

Workaround this problem by updating `MonoPackageManager.java` so that
`System.Security.Cryptography.Native.OpenSsl` is always loaded from
Java as part of process startup.

This is not a desirable solution, as we want to keep *required*
process startup overheads as small as possible.  Thus, we wish to
remove this workaround in the future, once a proper solution is found.
…#5914)

Fixes: #5838
Context: e0da1f1

Partially reverts 522d7fb which, reverted d13d0f9.

The [`$(AndroidEnablePreloadAssemblies)`][0] property controls whether
or not *all* `.dll` files contained within a `.apk` are loaded during
process startup.  *Not* doing so reduces process startup times, which
is desirable, but this also caused certain Xamarin.Forms apps to fail
to run as they previously had, as not loading all assemblies during
startup broke their Dependency Injection infrastructure.

For .NET 6, we feel we have *some* "wiggle-room" to change default
semantics, so for .NET 6 projects set the default value of
`$(AndroidEnablePreloadAssemblies)` to False, so that assemblies are
*not* pre-loaded during process startup.

`$(AndroidEnablePreloadAssemblies)` can be set to True within the
app's `.csproj` file to return to "legacy" semantics.  This will cause
all assemblies to be loaded during startup, with a commensurate
increase in app startup overheads.

[0]: https://docs.microsoft.com/en-us/xamarin/android/deploy-test/building-apps/build-properties#androidenablepreloadassemblies
Changes: dotnet/installer@eceded1...8e4d77c
Changes: dotnet/linker@307f6b0...4afa105

* Update dependencies from https://github.com/dotnet/installer build 20210505.8

Microsoft.Dotnet.Sdk.Internal
 From Version 6.0.100-preview.5.21252.3 -> To Version 6.0.100-preview.5.21255.8

Dependency coherency updates

Microsoft.NET.ILLink.Tasks
 From Version 6.0.100-preview.5.21229.1 -> To Version 6.0.100-preview.5.21254.1 (parent: Microsoft.Dotnet.Sdk.Internal

* Update .apkdesc files

Co-authored-by: Jonathan Peppers <[email protected]>
Changes: dotnet/java-interop@df4c5e7...4d0cba6

  * dotnet/java-interop@4d0cba64: [build] target net6.0 instead of netcoreapp3.1 (#829)
  * dotnet/java-interop@9444570b: [java-source-utils] Use mavenCentral, not jcenter (#830)
  * dotnet/java-interop@4ef50813: [Xamarin.Android.Tools.Bytecode] hide Kotlin internal nested types (#827)

Other changes are required here to enable Java.Interop to target
the `net6.0` target framework.
This feature flag is now on by default in .NET 6.0.100-preview.4.21253.14 and higher.

We should stop generating `EnableWorkloadResolver.sentinel`, as it strongly ties our
installers to a specific version of the .NET SDK.
Changes: dotnet/java-interop@4d0cba6...12e670a

  * dotnet/java-interop@12e670a8: [generator] Support binding non-const Java interface fields (#831)
  * dotnet/java-interop@c925b784: [generator] Support varargs arrays in event listener methods (#832)
Copy link
Member

@pjcollins pjcollins left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Something seems funky with the merge/rebase attempt, I think we need to clean this diff up.

@moljac moljac closed this Jul 13, 2021
@moljac moljac deleted the bintray-url-removal branch July 13, 2021 16:42
@github-actions github-actions bot locked and limited conversation to collaborators Jan 24, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants