[Bug]: WireUpControls throws exception in net8.0-android

Describe the bug 🐞
When calling ReactiveUI.ControlFetcherMixin.WireUpControls() in a .NET 8 Android app (net8.0-android) in non-debug configuration, even though the correct resource ID is specified, a  MissingFieldException is thrown.
This issue was fixed with bug report #3714 , but only for Debug builds by the looks of it. When deploying Release builds the exception is still present.
I narrowed it down to one specific .csproj property, that is this one:
<AndroidLinkMode>SdkOnly</AndroidLinkMode>

When I change this to <AndroidLinkMode>None</AndroidLinkMode> it all works perfectly.
Stracktrace:
07-08 10:38:08.523 I/MonoDroid( 5668): UNHANDLED EXCEPTION:
07-08 10:38:08.525 I/MonoDroid( 5668): Android.Runtime.JavaProxyThrowable: Exception_WasThrown, Android.Runtime.JavaProxyThrowable
07-08 10:38:08.525 I/MonoDroid( 5668):
07-08 10:38:08.525 I/MonoDroid( 5668):   --- End of managed Android.Runtime.JavaProxyThrowable stack trace ---
07-08 10:38:08.525 I/MonoDroid( 5668): android.runtime.JavaProxyThrowable: [System.MissingFieldException]: Failed to wire up the Property XXXXXXX to a View in your layout with a corresponding identifier
07-08 10:38:08.525 I/MonoDroid( 5668): 	at ReactiveUI.ControlFetcherMixin.WireUpControls(Unknown Source:0)
07-08 10:38:08.525 I/MonoDroid( 5668): 	at XXXXXXXX.StartActivity.OnCreate(Unknown Source:0)
07-08 10:38:08.525 I/MonoDroid( 5668): 	at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_(Unknown Source:0)
07-08 10:38:08.525 I/MonoDroid( 5668): 	at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPL_V(Unknown Source:0)
07-08 10:38:08.525 I/MonoDroid( 5668): 	at crc64763ea4d78b8a71b3.StartActivity.n_onCreate(Native Method)
07-08 10:38:08.525 I/MonoDroid( 5668): 	at crc64763ea4d78b8a71b3.StartActivity.onCreate(StartActivity.java:42)
07-08 10:38:08.525 I/MonoDroid( 5668): 	at android.app.Activity.performCreate(Activity.java:8595)
07-08 10:38:08.525 I/MonoDroid( 5668): 	at android.app.Activity.performCreate(Activity.java:8573)
07-08 10:38:08.525 I/MonoDroid( 5668): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1456)
07-08 10:38:08.525 I/MonoDroid( 5668): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3764)
07-08 10:38:08.525 I/MonoDroid( 5668): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3922)
07-08 10:38:08.525 I/MonoDroid( 5668): 	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
07-08 10:38:08.525 I/MonoDroid( 5668): 	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:139)
07-08 10:38:08.525 I/MonoDroid( 5668): 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:96)
07-08 10:38:08.525 I/MonoDroid( 5668): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2443)
07-08 10:38:08.525 I/MonoDroid( 5668): 	at android.os.Handler.dispatchMessage(Handler.java:106)
07-08 10:38:08.525 I/MonoDroid( 5668): 	at android.os.Looper.loopOnce(Looper.java:205)
07-08 10:38:08.525 I/MonoDroid( 5668): 	at android.os.Looper.loop(Looper.java:294)
07-08 10:38:08.525 I/MonoDroid( 5668): 	at android.app.ActivityThread.main(ActivityThread.java:8177)
07-08 10:38:08.525 I/MonoDroid( 5668): 	at java.lang.reflect.Method.invoke(Native Method)
07-08 10:38:08.525 I/MonoDroid( 5668): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
07-08 10:38:08.525 I/MonoDroid( 5668): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
07-08 10:38:08.525 I/MonoDroid( 5668):

project .csproj file
<Project Sdk="Microsoft.NET.Sdk">
	<PropertyGroup>
		<TargetFramework>net8.0-android</TargetFramework>
		<SupportedOSPlatformVersion>24</SupportedOSPlatformVersion>
		<RootNamespace>ReactiveUI_WireUpControls_Issue</RootNamespace>
		<OutputType>Exe</OutputType>
		<Nullable>enable</Nullable>
		<ImplicitUsings>enable</ImplicitUsings>
		<ApplicationId>com.companyname.ReactiveUI_WireUpControls_Issue</ApplicationId>
		<ApplicationVersion>1</ApplicationVersion>
		<ApplicationDisplayVersion>1.0</ApplicationDisplayVersion>
		<Configurations>Debug;Release</Configurations>
		<WarningLevel>4</WarningLevel>
		<ReleaseVersion>1.0.0</ReleaseVersion>
		<RuntimeIdentifiers>android-arm;android-arm64;android-x86;android-x64</RuntimeIdentifiers>
		<AndroidDexTool>d8</AndroidDexTool>
		<EnableLLVM>false</EnableLLVM>
		<AndroidEnableProfiledAot>false</AndroidEnableProfiledAot>
		<BundleAssemblies>false</BundleAssemblies>
	</PropertyGroup>
	<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
		<DebugSymbols>true</DebugSymbols>
		<DebugType>full</DebugType>
		<Optimize>false</Optimize>
		<ErrorReport>prompt</ErrorReport>
		<ConsolePause>false</ConsolePause>
		<EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
		<AndroidUseAapt2>true</AndroidUseAapt2>
		<AndroidUseSharedRuntime>true</AndroidUseSharedRuntime>
		<AndroidEnableSGenConcurrent>false</AndroidEnableSGenConcurrent>
		<AndroidLinkMode>None</AndroidLinkMode>
	</PropertyGroup>
	<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
		<DebugSymbols>false</DebugSymbols>
		<DebugType>None</DebugType>
		<Optimize>true</Optimize>
		<AndroidLinkMode>SdkOnly</AndroidLinkMode>
	</PropertyGroup>
	<ItemGroup>
		<PackageReference Include="ReactiveUI" Version="19.6.12" />
	</ItemGroup>
</Project>

Step to reproduce

Install .NET 8. (I installed 8.0.302)
Create a new net8.0-android project using dotnet new android command.
Add reference to ReactiveUI version 19.6.12
Open MainActivity.cs and change it so that MainActivity inherits ReactiveUI.ReactiveActivity

public class MainActivity : ReactiveActivity

Assign an ID(android:id) to the TextView in activity_main.xml and add a member to MainActivity.cs to wire it up.

    <TextView
        android:id="@+id/app_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="@string/app_text"
    />
    [WireUpResource("app_text")]
    public TextView AppText { get; private set; }

Add a call to WireUpControls() after SetContentView() in OnCreate().

this.WireUpControls();

Build and launch application with Release configuration
MissingFieldException is thrown from WireUpControls().
Also you could change AndroidLinkMode to SdkOnly in the Debug config, this will result in same exception.

Reproduction repository
https://github.com/gerardvanderkruijs/ReactiveUI-WireUpControls-Issue
Expected behavior
After launching the application In Release configuration, the TextView should be wired up correctly, and the initial screen should be displayed.
AndroidLinkMode set to SdkOnly should not throw a MissingFieldException.
Screenshots 🖼
No response
IDE
Rider macOS
Operating system
Android
Version
13
Device
Emulator
ReactiveUI Version
19.6.12
Additional information ℹ
Since this report is almost identical to #3714 I mainly used all the info and sample project provided by @tommy10344, so thank you for that :-)

@ChrisPulman Do you perhaps have any clue about this? You fixed the same issue in #3714, so maybe your magic can solve this issue too 😇

Hi @gerardvanderkruijs I will try to take a look this weekend, unfortunately I am away until Friday evening so don't think I'll get much time until then.

Hi @ChrisPulman , no worries that’s perfect! Thank you so much 🙏

@gerardvanderkruijs  Just wondering if there is a specific requirement to use V19.6.12

@gerardvanderkruijs I did some research and as we are using reflection within ReactiveUI using linkers with AOT Compilation will not work as desired, the _Microsoft.Android.Resource.Designer.dll gets stripped of its code by being trimmed. I will see if I can find a way to do the same thing without using reflection. It seems that the _Microsoft.Android.Resource.Designer library may also not AOT friendly so may need to see what can be done about that first.
If the legacy AndroidLinkMode setting is used, both SdkOnly and Full will default to equivalent linker settings:
<PublishTrimmed>true</PublishTrimmed>
<TrimMode>link</TrimMode>

With AndroidLinkMode=SdkOnly only BCL and SDK assemblies marked with %(Trimmable) will be linked at the member level. AndroidLinkMode=Full will set %(TrimMode)=link on all .NET assemblies similar to the example in the trimming documentation.
It is recommended to migrate to the new linker settings, as AndroidLinkMode will eventually be deprecated.
For the time being in your project I would set the following:
<IsTrimmable>True</IsTrimmable>
<TrimMode>link</TrimMode>
<PublishTrimmed>false</PublishTrimmed> // will remove the resources if true
<RunAOTCompilation>false</RunAOTCompilation> // will remove the resources if true

Then set the following:
[DynamicDependency(DynamicallyAccessedMemberTypes.All, "ResourceConstant", "_Microsoft.Android.Resource.Designer")]
protected override void OnCreate(Bundle? savedInstanceState)

Further Documentation can be found here Linking with .NET Android

Trimming incompatibilities
Some further pointers to why Trimming can fail

Hi @ChrisPulman ,
Thanks for the super clear explanation and for the (temp) solution!
I've been playing around this morning and everything seems to be working alright again now 🙌
The reason we're still using 19.6.12 is because 20.x.x results in another error in our Android project.
Of course this is not the thread for it, but it throws the following exception:
System.MethodAccessException: Method `ReactiveUI.ControlFetcherMixin.GetWireUpMembers(object,ReactiveUI.ControlFetcherMixin/ResolveStrategy)' is inaccessible from method `ReactiveUI.AndroidX.ControlFetcherMixin.WireUpControls(AndroidX.Fragment.App.Fragment,Android.Views.View,ReactiveUI.ControlFetcherMixin/ResolveStrategy)'
   at ReactiveUI.AndroidX.ControlFetcherMixin.WireUpControls(Fragment fragment, View inflatedView, ResolveStrategy resolveMembers) in /_/src/ReactiveUI.AndroidX/ControlFetcherMixin.cs:line 35
   at ***.OnViewCreated(View view, Bundle savedInstanceState) in ***.cs:line 84
   at AndroidX.Fragment.App.Fragment.n_OnViewCreated_Landroid_view_View_Landroid_os_Bundle_(IntPtr jnienv, IntPtr native__this, IntPtr native_view, IntPtr native_savedInstanceState) in C:\a\_work\2\s\generated\androidx.fragment.fragment\obj\Release\net7.0-android\generated\src\AndroidX.Fragment.App.Fragment.cs:line 2742
   at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPLL_V(_JniMarshal_PPLL_V callback, IntPtr jnienv, IntPtr klazz, IntPtr p0, IntPtr p1) in /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Android.Runtime/JNINativeWrapper.g.cs:line 198

Also, there is no 20.x.x version of the ReactiveUI.AndroidX package, the last version is 19.6.12, I assume we still need this package to wire up our controls in our .NET Android project?

ReactiveUI.AndroidX was aimed at pre net6.0 targeted versions of Android, as far as I am aware you should be able to achieve the same with just the ReactiveUI base package. I will certainly check again though.

Ah okay! Good to know.
When I remove the ReactiveUI.AndroidX package there's a lot of errors, which is not necessarily a big issue if I would be able to fix them.
For example, where did the class ReactiveRecyclerViewViewHolder go? Or ReactiveRecyclerViewAdapter, ReactiveAppCompatActivity and so on.

@ChrisPulman Were you by any chance able yet to have a look at this?
The v19.x version of the ReactiveUI package is slowly causing a dependency issue for us, with conflicting versions because of other Android packages.
I would be happy to remove the ReactiveUI.AndroidX but this is causing a lot of issues for us right now.
Any help would be super appreciated! 🙏

@ChrisPulman Were you by any chance able yet to have a look at this? The v19.x version of the ReactiveUI package is slowly causing a dependency issue for us, with conflicting versions because of other Android packages. I would be happy to remove the ReactiveUI.AndroidX but this is causing a lot of issues for us right now. Any help would be super appreciated! 🙏

@gerardvanderkruijs Hi, I was waiting for the latest release with net 8 support to reproduce the AndriodX functionality, they released the base packages on the 29th hopefully we can get a release out soon.
Are we able to close this issue now?

Hi @ChrisPulman!
I think we can't close this issue until this exception is resolved.
I don't see any package updates yet, but will keep an eye out!
For now the ReactiveUI package version 20.x.x still throws the MissingFieldException on net8.0-android projects.

Hi @ChrisPulman ,
Any news on this issue and the release of the package updates?

working on some of that as we speak now, We had issues getting issued a certificate which has been solved. Hopefully today but can't promise depending on technical glitches I'm having

Ah amazing @glennawatson !
No promises needed for today :-) It would be perfectly fine if it's next week or in a few weeks, just checking in every now and again.
I'll keep an eye out on the nuget packages!
Thanks again

I'm chasing up some certificate weirdness with the nuget team. Very strange stuff happening.

Everything should be out now

Probably worth opening a new issue with the dependency issue with the other package for tracking


Could not determine artifacts for pub.devrel:easypermissions:0.2.0

FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':app:checkProdDebugAarMetadata'.

Could not resolve all dependencies for configuration ':app:prodDebugRuntimeClasspath'.
Could not determine artifacts for pub.devrel:easypermissions:0.2.0: Skipped due to earlier error

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Get more help at https://help.gradle.org

BUILD FAILED in 7m 40s
Exception: Gradle task assembleProdDebug failed with exit code 1

I got this message when trying to run debug on my android phone

@MasIzzudin
This seems to be an issue with the plugin you are using pub.devrel:easypermissions:0.2.0 which is 3rd party.
Please ask this question on support channels like StackOverflow.
Closing from here as this isn't a Flutter issue.

easypermissions

but i don't use 'easypermissions' 3rd party inside my yaml


Duplication/Forking vs Collaboration

Hi,
I sincerely hope that my comments here will be purely seen in the spirit of constructive feedback.
I do not comment (not anymore!) when I see fragmentation and duplication of implementations but I felt (based on your README) that, unlike many engineers who systematically re-invent the wheel you still have been cognizant about it (by creating interop with TFP and clearly stating that it is not a replacement of TFP) and I appreciate you for that.
However, here is what I infer from your README -
One of the primary goals of this library is to be able to create custom distributions & bijectors easily. That said, indirectly it does imply that it is difficult to do it in TFP.
And somewhere based on my experience with TFP, I am inclined to agree with you. That said, wouldn't it be a better approach to make it easier by either modifying/augmenting the TFP APIs to achieve the said goal and/or enhancing its documentation & guides?
TFP developers have made an attempt to have both JAX and TF as the backend, and of course, trying to take care of multiple backends creates its own challenges but so far it seems that they have managed to do it. From a pure s/w engineering perspective, it is not something new to have multiple backends or design layers to target different systems.
As much as I appreciate JAX, it is very frustrating to see that the community believing in this technology is systematically keen on replicating the work (flax, Trax, haiku, neural-tangents, objax ... and many others) instead of choosing to collaborate and find common directions.
My apologies if this has come out to be harsh in any way.
Regards
Kapil

Hi, thanks for your comment and feedback,
Let me start by highlighting that we believe TFP to be a brilliant library, that serves it users very well, and whose API has been well thought through and is rightfully the industry standard for working with probability distributions. So why did we build distrax? I hope the following will be helpful to understand our motivations:
First, TFP supports both JAX and TF as the backend, but this came at a cost: TFP components are based on a single "source of truth" written in TF, from which the JAX code is automatically generated via a script. This was a good decision from a software engineering perspective, as it minimises code maintenance and ensures consistency of behaviour across backends; indeed, we also agree that if, as it is often the case, a user is only interested in using or combining existing components, this solution has no noticeable downsides.
Our researchers however, often need to modify existing components to explore some new research ideas, and to iterate quickly over new ideas, they need to be able to do so quickly in the language they are most familiar with (JAX). In this setting, the TFP approach to supporting both TF and JAX backends, requires researchers to read, understand and write TensorFlow code.
Our solution to this has been to embrace most of the TFP API, strive to ensure interoperability, but enable researchers to work with and modify JAX native distributions. We hope this strikes a good trade off between the specific needs of our researchers, and avoiding needlessly fragmenting a community that is already well served by TFP in many other aspects.


Redirect URI for Angular/Ionic App on Device

Please follow the issue template below. Failure to do so will result in a delay in answering your question.

Library

[X]<EMAIL_ADDRESS>
Framework
Ionic:
Ionic CLI                     : 6.12.2 (\npm\node_modules@ionic\cli)
Ionic Framework               : @ionic/angular 5.5.1
@angular-devkit/build-angular : 0.1002.0
@angular-devkit/schematics    : 10.0.8
@angular/cli                  : 10.0.8
@ionic/angular-toolkit        : 2.3.3
Cordova:
Cordova CLI       : 10.0.0
Cordova Platforms : 6.0.0, android 8.1.0, browser
Cordova Plugins   : not available
Utility:
cordova-res                          : not installed
native-run (update available: 1.2.2) : 0.2.7
System:
NodeJS : v10.15.2 (C:\Program Files\nodejs\node.exe)
npm    : 4.6.1
OS     : Windows 10
Description
I have tested the MSAL and MSAL-browser/angular library and all the versions work fine on Ionic Serve and NG serve. I have tested the angular sample and integrated it in my Ionic version and it works fine. The issue is on the actual device. Although I use loginredirect() instead of loginpopup() still on the phone a popup opens and after login the redirect URI can't be reached error comes. On PC the same both methods work. On the phone as the Popup opens and it leaves my app, i have no way to get back to the app. I am not even sure if i understand this correctly. So any help would be appreciated.
Error Message
This site can't be reached.
MSAL Configuration
auth: {
clientId: "",
redirectUri: "http://localhost:8100/",
postLogoutRedirectUri: "http://localhost:8100/",
},
cache: {
cacheLocation: BrowserCacheLocation.LocalStorage,
storeAuthStateInCookie: isIE, // set to true for IE 11
}
Expected behavior
The app on the phone opens the login page in the same app.
Browsers/Environment

[X] Chrome
[X] Android phone

@nomanshahsyed Can you clarify is the error message "This site can't be reached" thrown when trying to access http://localhost:8100? Localhost will not work on phones, you may need to configure Ionic to serve an external https address and that address will need to be registered as a redirectUri on your app registration.

Hi @tnorling , thanks for your reply. Yes localhost will not work on the phone. I wonder why the loginredirect() opens up a popup.
Yes i can try to serve on a local ip and access the app through the IP and test if it works on the phone. I will reply the result soon.
I only wonder how this will work if user downloads the app from playstore or appstore? I could try ionic auth connect but its for enterprise. Can you elaborate more about this external https address?

Well i cant serve on local ip as it is only http and Azure redirect URI needs to be https.

@nomanshahsyed When you are developing your app locally your development machine will need to host the app on an IP address that is accessible externally to the machine that's hosting it so that your phone can access it. As you noted, Azure requires that the redirectUri be https except for localhost so you will need to make sure that your app is hosted over https. You may need to use a tool such as ngrok to serve your local app externally. If you have further questions about hosting your app with Ionic you can take a look at this thread or open an issue on their repo
When you are ready to deploy your app to the playstore or appstore your app will need to be hosted on a public IP so that everyone else can access it.

Hi, thanks again. Yes i have tried that. The problem is leaving the app/opening of login via popup instead of redirect. Do i need to install something like in app browser? Because now with ngrook the popup login was redirected correctly to the ionic app on the same popup page. Isnt there a way to get back to the main app after the login?


Question: Cronjobs, automate builds

I want to make sure if this makes sense or if there are more elegant solutions.
I want the ports in my jails (supplied via list.txt) and on my host system rebuilt if newer on a daily or weekly basis.
I assume that portsnap fetch -I update isn't enough and that I can't use the -I flag for Synth to work?
Would this make sense:
portsnap cron update && synth just-build /folder/list.txt && synth rebuild-repository && pkg update

synth rebuild-repository isn't really correct.
If there are packages on the live system that aren't on list.txt, those will be rebuilt.
The impact of this isn't terrible so you can do it if you want.
I would not update automatically.  that seems like a bad idea to me.

also, your use case is "rebuild repository" weekly, not update package builder weekly.
The "pkg update" would be on the jails, not the host system.

why wouldn't you update automatically?
I don't upgrade, I just want the packages to be already built when I'm ready to upgrade.
There are a few packages on the live system that aren't in the list file but I don't see another possibility at this point.

pkg upgrade (which is no different that synth upgrade-system) upgrades the system.  That's beyond rebuilding repo.  so your command above does set system to upgrade unattended.

I'm doing pkg update, not pkg upgrade.
But it probably isn't needed on a regular basis since synth does this anyways ?
Or would I need to do this before calling Synth?

i have no idea why you are doing it.

To have a script compare the available packages later and write me an email if there are updates:
pkg -vIL=
Do I still need to call pkg update before that when I use Synth?

normally I would say no.  Most pkg commands auto-update the repository data anyway unless you tell it not to with the -U comman.
However, if you have a specific reason (e.g. need to force the update for a script) I guess that's fine.
(obviously synth makes pkg update the repo information when it's the one issuing the install commands)

This is going to be nasty, but I'm going to rename "synth rebuild-repository" to "synth prepare-system" and then reuse "synth rebuild-repository" to rebuild the repository on command (no packages built first)

Now that 0.99_3 is released, I think we can close this.


Move lens contracts to other repository

Remove lens contracts from rosettanet and move into https://github.com/Digine-Labs/rosettacontracts repo

Also remove contracts ci from this repo.


Fixing paginator class in response factory

This seems to accomplish the goal.  Switches the class to using the Paginator class that fractal expects and snags the collection in the Response to properly display the results.

Pretty sure this whole PR wont work quite like I expected.  The result has the proper amount of results, but does not contain the fractal metadata for pagination.


Error

NPCLib usage option
1
NPCLib JAR name
npclib-plugin-2.0.1-SNAPSHOT.jar
Server version
Spigot 1.8.8
To Reproduce
private NPCLib library;

@Override
public void onEnable() {
    this.library = new NPCLib(this);
}

Additional context
[11:17:27 INFO]: [LeafSK] Enabling LeafSK v2.0.4
[11:17:27 INFO]: NPCLib Attempting to inject into netty
[11:17:27 ERROR]: Error occurred while enabling LeafSK v2.0.4 (Is it up to date?)
java.lang.RuntimeException: Cannot invoke method static java.util.List net.minecraft.server.v1_8_R3.ServerConnection.access$0(net.minecraft.server.v1_8_R3.ServerConnection)
        at com.comphenix.tinyprotocol.Reflection.lambda$getTypedMethod$0(Reflection.java:231) ~[?:?]
        at com.comphenix.tinyprotocol.TinyProtocol.registerChannelHandler(TinyProtocol.java:189) ~[?:?]
        at com.comphenix.tinyprotocol.TinyProtocol.<init>(TinyProtocol.java:86) ~[?:?]
        at net.jitse.npclib.listeners.PacketListener$1.<init>(PacketListener.java:43) ~[?:?]
        at net.jitse.npclib.listeners.PacketListener.start(PacketListener.java:43) ~[?:?]
        at net.jitse.npclib.NPCLib.<init>(NPCLib.java:53) ~[?:?]
        at com.leaf.Leaf.onEnable(Leaf.java:49) ~[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) ~[paper.jar:git-PaperSpigot-"4c7641d"]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:332) [paper.jar:git-PaperSpigot-"4c7641d"]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:407) [paper.jar:git-PaperSpigot-"4c7641d"]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:359) [paper.jar:git-PaperSpigot-"4c7641d"]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:318) [paper.jar:git-PaperSpigot-"4c7641d"]
        at net.minecraft.server.v1_8_R3.MinecraftServer.s(MinecraftServer.java:408) [paper.jar:git-PaperSpigot-"4c7641d"]
        at net.minecraft.server.v1_8_R3.MinecraftServer.k(MinecraftServer.java:372) [paper.jar:git-PaperSpigot-"4c7641d"]
        at net.minecraft.server.v1_8_R3.MinecraftServer.a(MinecraftServer.java:327) [paper.jar:git-PaperSpigot-"4c7641d"]
        at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:267) [paper.jar:git-PaperSpigot-"4c7641d"]
        at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:563) [paper.jar:git-PaperSpigot-"4c7641d"]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_221]
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_221]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_221]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_221]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_221]
        at com.comphenix.tinyprotocol.Reflection.lambda$getTypedMethod$0(Reflection.java:229) ~[?:?]
        ... 17 more
Caused by: java.lang.NullPointerException
        at net.minecraft.server.v1_8_R3.ServerConnection.access$0(ServerConnection.java:63) ~[paper.jar:git-PaperSpigot-"4c7641d"]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_221]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_221]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_221]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_221]
        at com.comphenix.tinyprotocol.Reflection.lambda$getTypedMethod$0(Reflection.java:229) ~[?:?]
        ... 17 more

Seems to be an anomaly with the initialization of TinyProtocol. Were you able to reproduce this on multiple occasions?

it always happens, here is the src https://github.com/andrei923/test

I’m not exactly sure how you’re shading my plugin. The repository contains a pom file, why don’t you shade the NPCLib artifact that’s on OSSRH? Are you trying to use Jitpack?

updated the pom, nothing changed.

I cloned your test repository and have been unsuccessful in reproducing your error. Are you using a modified Spigot fork by any chance?
If not, you could try to rebuild your Spigot 1.8.8 JAR using BuildTools.

you could try to rebuild your Spigot 1.8.8 JAR using BuildTools.
did this now, nothing changed.

I doubt this will work, but I have no idea where it could come from otherwise... try updating to 2.2-SNAPSHOT. It's the latest version I released a few hours ago.

updated to 2.2, reinstalled java JDK, tried to build it with IntelliJ, nothing changed.

This is strange for sure. 🤔

Okay, what if you try one of my example classes. Try creating a plugin without the Skript dependency and it doesn't matter if it's a Maven project or an Eclipse/IntelliJ project (i.e. usage option).

removed skript dependency, this in the main and only class
package com.leaf;
import net.jitse.npclib.NPCLib;
import org.bukkit.plugin.java.JavaPlugin;

public class Leaf extends JavaPlugin {
	public static Leaf plugin;
	private NPCLib library;

	public Leaf() {
		if (plugin != null)
			throw new IllegalStateException("LeafSK can't have two instances.");
		plugin = this;
	}
	@Override
	public void onEnable() {
		this.library = new NPCLib(this);
		};
	public static Leaf getInstance(){
		return plugin;
	}
	public NPCLib getNPCLib() {
	    return library;
	}
}

Similar behavior found on the SpigotMC forum: https://www.spigotmc.org/threads/protocollib.36230/page-35#post-1967655

Hmm. What happens if you create a new server with the Spigot JAR and the plugin you wrote? Do you still get the error then?
At this point I'm just trying to help you debug. I'm sorry... 🙄

deleting old server files made it work somehow, thanks a lot for your help.

Ah, good to hear that.
Best of luck!


Incremental build after changing property on command line produces non-runnable app

Describe the bug
While investigating incremental build issues with MAUI app's WinUI projection, I have discovered that switching from packaged to unpackaged mode when building produces broken app. I have discovered that culprit is that second build, with /p:WindowsPackageType=None retained same resources.pri as packaged build, which breaks the app.
Repro is with a MAUI app, but I didn't test with plain WinUI app, although I expect that it would hit the same issue.
Steps to reproduce the bug

Create a MAUI app
Rebuild it once in packaged mode:

msbuild /r /t:Rebuild MauiApp1.csproj

Observe size and content of resources.pri under bin\Debug\net7.0-windows10.0.19041.0\win10-x64\resources.pri.

It should be around 140Kb

Run incremental build, forcing unpackaged mode:

msbuild /p:WindowsPackageType=None MauiApp1.csproj

Try launching bin\Debug\net7.0-windows10.0.19041.0\win10-x64\MauiApp1.exe

App crashes.

Observe size and content of resources.pri under bin\Debug\net7.0-windows10.0.19041.0\win10-x64\resources.pri.

It is still 140Kb, while it should be over 1Mb

WORKAROUND:

Delete \obj\Debug\net7.0-windows10.0.19041.0\win10-x64\priconfig.xml
Do incremental build:

msbuild /p:WindowsPackageType=None MauiApp1.csproj

Observe size and content of resources.pri under bin\Debug\net7.0-windows10.0.19041.0\win10-x64\resources.pri.

Now it is expected 1Mb+ in size.

Try launching bin\Debug\net7.0-windows10.0.19041.0\win10-x64\MauiApp1.exe

App launches successfully.

Expected behavior

Launching MauiApp1.exe should succeed after switching mode incrementally.

Screenshots
No response
NuGet package version
None
Windows version
No response
Additional context
No response

While I agree this would be nice, there is an obvious workaround to do a clean build when changing the package type.


GFESuite requiring numpy

GFESuite fails to activate until numpy is installed through the normal python repositories.
INFO  2016-12-08 06:29:45,625 [EDEXMain] Executor: Waiting for async startup dependencies to complete...
INFO  2016-12-08 06:29:54,294 [pool-2-thread-1] GFESiteActivation: EDEX - Activation task in progress by another EDEX instance.  Waiting..
After doing "yum install numpy

Continued.. After doing "yum install numpy" EDEX started without issue


how can i make the data that are received  readable?

utf8.decode(value);
This should convert the data to readable format, assuming BLE device is sending in human readable data in bytes.
use it like following :
characteristic.value.listen((value) {
debugPrint("received => ${utf8.decode(value)}");
});


(Build) Fail on 60/merge branch.

This issue is created automatically by CI.
Linux Build State: failure
Windows Build State: success
Commit: 359911a5a62502807ffdaa72289ebc255dd84f84
Commit Branch: 60/merge
Commit Author: innerviewer

Issue is closed automatically by CI. Commit: 879b502f93acf4d6e37be3acbd76b18ecfe7df83


Is 7mb installation still called lightweight?

How can you guys call node fetch lightweight when it uses 7mb for installation?

it was lightweight until we imported web streams polyfill
closing as dupl of https://github.com/node-fetch/node-fetch/issues/1217


Remove Parquet implementation based on DuckDB

Description
Now that we have the native implementation for Parquet, we can remove the implementation based on DuckDB.
We must port existing DuckDB tests to Native and verify parity.

This will also help us to move to DuckDB 0.8.0. That has some fixes for empty frames for window functions.

This is complete.


Added high level Smart contracts description

What does this PR fix/introduce?
Add Smart contracts concepts entry
Checklist
(Delete any that aren't relevant)

[x ] Docs are successfully building - yarn install && yarn run build.
[ x] For new internal links I used relative file paths (with .md extension) - e.g. ../../faq/faq-general.md - instead of introducing absolute file path, or relative/absolute URL.
[ x] All external links have been verified with yarn run check:externals.
[ x] My changes follow the Casper docs style guidelines.
[ x] All technical procedures have been tested (if you want help with this, mention it in Reviewers).
[ x] If structural changes are introduced (not just content changes), cross-broswer testing has been completed.

Reviewers
// Tag whoever needs to review. If you're not sure, leave blank.
@KMCreatesWorlds

I resolved conf!icts.

Again, unrelated changes are introduced in this PR:

Removed existing slug from developers/writing-onchain-code/index.md,
Changed target of Writing On-Chain Code link.


Trying to send POST payload

I'm trying to send off a payload, but it's not working.
Sending script:
requestify.post('http://localhost/rest.php',  {test:'123',foo:'bar'})
.then(function(response) {
    // get the response body
    console.log('got response');

    response.getBody();

 res.send(response.body);

});

Here's the PHP script that accepts:
<?php

print_r($_POST);

and returns an empty
Array ( )

I get
verbose: Attempted to retry bodyParse as JSON.  But no luck. Error: invalid json, empty body

Any ideas?  I hate to go back to using raw express http.request

For the record, ranm8's suggestion worked for me.


Clip + Draw combined with shadow produce weird rendering errors

Godot version
v4.2.dev3.official [013e8e3af]
System information
Godot v4.2.dev3 - Windows 10.0.19045 - Vulkan (Forward+) - dedicated AMD Radeon RX 6700 XT (Advanced Micro Devices, Inc.; 31.0.21029.1006) - Intel(R) Core(TM) i5-9600K CPU @ 3.70GHz (6 Threads)
Issue description
I dont know whats happening internally, but the shadow of panels with clip + draw enabled seem to show previous frames, similar to the "artifacts" TAA has
https://github.com/godotengine/godot/assets/102416174/c41ca7c6-b33b-4365-9e7b-e1d4a50de812
No anti aliasing is applied to 2D or screen space
Steps to reproduce
Create a Panel with a shadow and enable clip+draw
Minimal reproduction project
N/A (should be easy to reproduce)

I'm having the same problem on macOS.


handling http error message

Building DAG of jobs...
Using shell: /usr/bin/bash
Provided cores: 2
Rules claiming more threads will be scaled down.
Job counts:
count   jobs
1       upload
1
[Mon Feb 18 09:24:58 2019]
rule upload:
input: results/SRR5580156_phages_viruses_1.csv, results/SRR5580156_phages_viruses_2.csv, results/SRR5580156_phages_viruses_3.csv, results/$
output: results/SRR5580156_phages_viruses.csv.tar.gz
jobid: 0
wildcards: sample=SRR5580156, result=phages_viruses, ext=csv
Activating conda environment: /gpfs/hpchome/radko/Projects/prjna361402/.snakemake/conda/4f3133f2
Traceback (most recent call last):
File "/gpfs/hpchome/radko/Projects/prjna361402/.snakemake/scripts/tmp_ko7y956.wrapper.py", line 50, in
raise requests.HTTPError(f"Error in data upload, status code: {r.status_code}   {r.json()['message']}")
File "/gpfs/hpchome/radko/Projects/prjna361402/.snakemake/conda/4f3133f2/lib/python3.6/site-packages/requests/models.py", line 897, in json
return complexjson.loads(self.text, **kwargs)
File "/gpfs/hpchome/radko/Projects/prjna361402/.snakemake/conda/4f3133f2/lib/python3.6/json/init.py", line 354, in loads
return _default_decoder.decode(s)
File "/gpfs/hpchome/radko/Projects/prjna361402/.snakemake/conda/4f3133f2/lib/python3.6/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/gpfs/hpchome/radko/Projects/prjna361402/.snakemake/conda/4f3133f2/lib/python3.6/json/decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
[Mon Feb 18 09:26:54 2019]
Error in rule upload:
RuleException:
CalledProcessError in line 267 of /gpfs/hpchome/radko/Projects/vs/rules/blast.smk:
Command 'source activate /gpfs/hpchome/radko/Projects/prjna361402/.snakemake/conda/4f3133f2; set -euo pipefail;  python /gpfs/hpchome/radko/Pr$
File "/gpfs/hpchome/radko/Projects/vs/rules/blast.smk", line 267, in __rule_upload
File "/gpfs/hpchome/radko/miniconda3/envs/snakemake/lib/python3.6/concurrent/futures/thread.py", line 56, in run
Removing output files of failed job upload since they might be corrupted:
results/SRR5580156_phages_viruses.csv.tar.gz
Shutting down, this might take some time.
Exiting because a job execution failed. Look above for error message

Status code was 504.
Request failed, due to an internal server error. Error response NOT included. Don’t worry, Zenodo admins have been notified and will be dealing with the problem ASAP.

Solved by tpall@da2f6f7dcd130a4b66534f86dadb93ab701afb56


Feature suggestion and pull request idea: Docker FreshRSS setup and k8s default cluster setup

Hi Chris:
Since you show me FreshRSS to replace my newsboat and increase my productivity a lot, I really want to know if you would like a PR with that feature. I could try to make it in the coming weeks because I'm a little busy right now but I really want to help you with this proyect when I can. Also since I have a devops background: It's fine now or for this project to put a  default kubernetes installation using kubeadm like this https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ ?
Please let me know if putting this kind of stuff and devops tools in general  is fine for your project or not.
Nevertheless thanks for your knowledge in the past years !
Have a nice week
Cheers

On July 17, 2024 12:32:52 AM GMT+02:00, CarlosR759 @.***> wrote:

Hi Chris:
Since you show me FreshRSS to replace my newsboat and increase my productivity a lot, I really want to know if you would like a PR with that feature. I could try to make it in the coming weeks because I'm a little busy right now but I really want to help you with this proyect when I can. Also since I have a devops background: It's fine now or for this project to put a  default kubernetes installation using kubeadm like this https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ ?
Please let me know if putting this kind of stuff and devops tools in general  is fine for your project or not.
Nevertheless thanks for your knowledge in the past years !
Have a nice week
Cheers

I think kubernetes is is an overkill, but a docker install script including adding the user to the correct group would be nice.

On July 17, 2024 12:32:52 AM GMT+02:00, CarlosR759 @.***> wrote: Hi Chris: Since you show me FreshRSS to replace my newsboat and increase my productivity a lot, I really want to know if you would like a PR with that feature. I could try to make it in the coming weeks because I'm a little busy right now but I really want to help you with this proyect when I can. Also since I have a devops background: It's fine now or for this project to put a default kubernetes installation using kubeadm like this https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ ? Please let me know if putting this kind of stuff and devops tools in general is fine for your project or not. Nevertheless thanks for your knowledge in the past years ! Have a nice week Cheers
I think kubernetes is is an overkill, but a docker install script including adding the user to the correct group would be nice.

I agree, installing freshRSS in a simple way, and be able to import a previous data base easily will save me a lot of time each time I need to install it. I could do it with the quick run option and without using the docker-compose approach so less yaml files for the script :D
About the k8s stuff, Since also cloud providers have quick setups configurations I know that could be overkill as you said, that's why I'm asking first. I'm suggesting this because Installing locally an only functional k8s cluster + Prometheus + grafana will take you some time if you want to do that, but probably this requirement will be use only by a niche group of people that want to learn this tools in a home environment. But if it's not needed I could work with the docker stuff and helping with scripting in general. But I'll wait for Chris response so I could know how to work the FreshRSS installation ( And also I need to learn how to use the new Rust gui ) and where to put this in the program, because maybe if we are going to put a lot of docker containers in the feature it could be usefull to have some special folder for that :upside_down_face: .

/close
Docker has been added into Linutil #317


Standard Code Style

Codecov Report

Merging #11 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master    #11   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           2      2
  Lines          47     47
=====================================
  Hits           47     47

Impacted Files
Coverage Δ

src/index.js
100% <100%> (ø)
:arrow_up:

src/string.js
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update cceec0f...190b7ad. Read the comment docs.


Automated run to convert to PSR-2

This is an automatic conversion of the style to be PSR-2 (http://www.php-fig.org/psr/psr-2/) via
find src \
    -type f \
    -path '*.php' \
    -exec phpcbf \
        --standard=PSR2 {} \;

I'd love to hear from folks that wish I wouldn't commit this before they merge their patches in.

Sorry, we could not display the entire diff because it was too big.

Could not review it all online :) I'll try to check more later

An automated conversion to PSR-2 was pushed in https://github.com/etsy/phan/commit/761b9cdf7f191e01968c2141ab819a29e8a2fcf2


Remove Boost from CMakeLists

See title.

Marking as closed because it doesn't need to be done. Only the uBLAS' libraries had to be removed, as I was still using a Boost for random real number generation.


How is lastmod supposed to work?

Hi,
In the default template a property "lastmod" is included.  When I modify a file, this value does not change.  How is it supposed to work?
Thanks, Jeff

Hey there pal, the lastmod is used inside the obsidian-linter plugin and is updated each time you save your file.
You can configure it inside the obsidian-linter plugin settings, which is related to this part of the template.
Hope it helps ! Please close the ticket if it is good for you !

Thanks, I didn’t even know the concept of “save file” existed - Obsidian seems to do that automatically, but the automatic save does not update that field - a manual save will.
JT

On 23 Oct 2024, at 23:18, Mathis Gauthey @.***> wrote:
Hey there pal, the lastmod is used inside the obsidian-linter plugin and is updated each time you save your file.
You can configure it inside the obsidian-linter plugin settings, which is related to this part of the template https://github.com/mathisgauthey/obsidian-workflow-template/blob/ead0135038481ffbb08849962ca75a98ed0263a2/.obsidian/plugins/obsidian-linter/data.json#L56.
Hope it helps ! Please close the ticket if it is good for you !
—
Reply to this email directly, view it on GitHub https://github.com/mathisgauthey/obsidian-workflow-template/issues/19#issuecomment-2433482816, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAI5BOLSF6T6IE36QVGMM2TZ5AHDPAVCNFSM6AAAAABQOD5NUOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMZTGQ4DEOBRGY.
You are receiving this because you authored the thread.


Support merging of file joins with conflicts.

Suppose we start with two files, A.txt and B.txt in some base commit.
On our branch we join these two files together to get just A.txt, but with some editing going on in the resulting file prior to committing it. So two files have become one with an edit mixed in, say in the section originally from A.txt (but it could equally well be the section that used to be B.txt).
On their branch, they edit A.txt in the same location (equally, they could edit B.txt in the same location) and then commit.
We expect the join to be merged cleanly, so there should be a single file A.txt - but the merge should exhibit conflicts due to the edits made in the same source location across the two branches.
We can placate Git by writing A.txt with the necessary conflict markers in the working directory, but we know that IntelliJ uses the staging area as the input for its own merge resolution tool. What do we put in?
Investigation of an edit conflict mixed in with a simple non-divergent rename on their branch shows that Git loads the staging area for the renamed file path, but uses blobs corresponding to the original filename for stage 1 (the base commit) and stage 2 (our branch) - the blob for stage 3 corresponds to the renamed file in their branch.
This makes sense, as Git as really tracking content; the filename at a given commit is a secondary concern - and this is verified by making a commit that is a pure file rename - the blob is reused, so multiple file paths in different commits can share the same blob.
So in the example above, we can use the obvious blobs for A.txt in its original and joined form on our branch to make the stage 1 and stage 2 entries - but how about stage 3? We could do the simple thing and just use A.txt as it is on their branch, ignoring  B.txt completely. That will certainly work if the conflicts lie in the source code that used to belong to A.txt in the base commit.
If on the other hand it is the source code that used to belong to B.txt in the base commit, then this gets a bit messier - it won't show up in the stage 3 entry at all. Now if IntelliJ is looking only at the staged entries, then it will have no idea about the edits made to B.txt on their branch, and no conflict will be reported at all - it will simply see a nice clean contribution of our branches joining of B.txt on to A.txt and will merge that without a second thought.
So ... if Git is relaxed about blobs versus filenames, it should be possible (actually, some experimentation shows it is possible, and will work with IntelliJ) to build a synthetic blob that represents the fusion of A.txt and B.txt on their branch - essentially this anticipates what the merge will do to their content.

It's OK to use synthetic blobs for staging entries as in order to finally complete the merge, some editing of the content has to be done - once the merge commit is made, that will be yet another blob, and the synthetic one will simply be loose.
In fact, running git prune will remove any such loose blob, so we aren't going to kill Git this way.


Vram management problem discussion.

This is very nice work!
I use both webui & comfy.
In other side, Webui'extension was provided by HuChenlei. It's asesome. but where is Vram leak issue:
https://github.com/Mikubill/sd-webui-controlnet/issues/2862
I wonder if anyone can figure out what the problem is and give a fix.
Thanks for all great work!

you mean both versions have vram leak?

you mean both versions have vram leak?

problem only  in webui version , I found comfy work very well with pulid.

okay then I'm closing this for now since it's not related to this extension


filter fixes

as noted by a user on discord:
"if you set renounce to true and freezable to false, it will reject every token automatically"
this is my fix on the last commit of the file.

added active positions in bot.ts file
attention, this change is based on the "beta" https://github.com/fdundjer/solana-sniper-bot
it won't work as it is on the master


No corresponding ONNX op matches type FloorMod,MaxPool,FloorMod

When I use keras-onnx to convert centernet(Keras Implementation keras-CenterNet)
the console outputs some warnings:
tf executing eager_mode: True
tf.keras model eager_mode: False
WARN: No corresponding ONNX op matches the tf.op node lambda/mod_1 of type FloorMod
      The generated ONNX model needs run with the custom op supports.
WARN: No corresponding ONNX op matches the tf.op node lambda/MaxPool2d of type MaxPool
      The generated ONNX model needs run with the custom op supports.
WARN: No corresponding ONNX op matches the tf.op node lambda/mod of type FloorMod
      The generated ONNX model needs run with the custom op supports.
The ONNX operator number change on the optimization: 584 -> 189

Could someone give me some hints? How to fix these warnings？
Thanks！

Need support these tf op conversion in _builtin.py. Contributions are welcome.

Both tf ops FloorMod and MaxPool has been supported, please pull latest keras2onnx master branch and try again.

Thanks for your work，these warnings have disappeared.


Vulnerability: UNKNOWN READ in spvtools::val::ValidateAccessChain affecting

From OSS-Fuzz report: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66956
Crash type: UNKNOWN READ
Crash state:
spvtools::val::ValidateAccessChain
spvtools::val::MemoryPass
spvtools::val::ValidateBinaryUsingContextAndValidationState

Fixed by #5592


rotate_compress documentation needs updating

I have followed the log documentation here: https://caddyserver.com/docs/log and added the following to my Caddyfile:

log /var/log/caddy/access.log {
rotate_size 50
rotate_age  90
rotate_keep 20
rotate_compress
}

caddy is throwing the following error:

caddy[875]: 2017/07/18 16:50:28 /etc/caddy/Caddyfile:15 - Parse error: Wrong argument count or unexpected line ending after 'rotate_compress'

Thanks for reporting, but I think this is a duplicate of #1761.


Document m.room.summary

https://github.com/matrix-org/synapse/pull/3901 introduces the concept of an m.room.summary event, which is a 'fake' state event which can be included in the invite_state of an invite in order to describe a snapshot of the summary of that room.  It's not particularly pleasant, but means that clients will be able to show the correct avatar & other summary metadata about the room prior to joining it.
This is such a small change I'm not sure it merits an MSC.

actually, this is flawed; ignore it.


Incorrect runtime.placement in meta.json

runtime.placement in meta.json reports 0.01s, which doesn't match the VPR log:
# Placement took 98.69 seconds (max_rss 3473.6 MiB, delta_rss +0.0 MiB)

https://hydra.vtr.tools/build/19297

I see this also in Kokoro.


[Feature] Create random integer provider

Issue to track the Implemention of a random integer provider.
Optional min and max

#21 is merged, issue is solved !


[typescript] Smarter logic?

Problem description
Button has href prop. If that prop is set, a element is used to render the button (https://material-ui-1dab0.firebaseapp.com/api/button/). It would be nice if Button had also target property.
Versions

Material-UI: 1.0.0-beta.8

Any other properties supplied will be spread to the root element.

So you can provide a target property too.

@oliviertassinari I can't because I am using typescript and you have incorrect typings, so it complains that property target does not exists.

This is also linked to #8043

cc @benbayard

@benbayard  I think this way should work for router links:
<Button component={props => <RouterLink {...props} to="/" />} />

@nenadalm and also for simple link:
<Button component={props => <a {...props} href="/" target="_blank" />} />

@oliviertassinari In TS typings component prop for Button should be string | React.Component<any> not React.ReactNode

We hat this "smarter logic" in the typings, but it didn't work out like we wanted it to :-/
You can read the reason why here: https://github.com/Microsoft/TypeScript/issues/17882
The only thing we can do is to allow all possiblities on the component. Meaning, allow all props from <a>.

Talking about typings, ButtonProps for example misses style?: React.CSSProperties from its typing.

@mctep That looks fine to be, but it should be noted that inline lambdas are highly unperformant. If I were to write docs for this I would write it as:
function buttonLinkCreator(to: string) {
  return (props: ButtonProps) => <Link {...props} to={to} />
}

const HomePageLink = buttonLinkCreator('/');

class Blah extends React.Component {
  return <Button component={HomePageLink} />;
}

@xaviergonz Thanks for noting that. The new typings actually function the same way. If we missed one, please open up an issue! :)
@all I guess the easy fix would just be to make ButtonBase inherit from ButtonHTMLAttributes & AnchorHTMLAttributes. I am still hesitant to allow any props, which would mean adding the index signature to the ButtonBaseProps. If we do this, there is no protection against typos anymore.
What you all think?

Best would be to type it as good as typescript allows (so whitelist all possible allowed properties).

What about using Pick from the react types we may need?
Pick is used like this:
interface Task {
 id: string,
 name: string,
 assignee: string,
 contacts: any[], //for brevity
 associatedJob: string,
 submissionDate: string,
 allocatedTime: number,
 expectedCompletion: string,
 invoiceNumber: string,
 invoiceDueDate: string,
 comment: string,
 taskAddress: string
 ...
}

type PartialTast = Pick<Task, 'id' | 'name' | 'contacts'> // an interface with only those properties from the original interface

so we could do something like
interface ButtonProps extends Pick<React.HTMLAttributes<HTMLButtonElement>, 'id' | 'className' | 'style' | 'title' | 'tabIndex'> {
  x: number;
  // whatever custom props including children
}

@xaviergonz Why are we picking some properties out of button? Is it because there are some that are not supported. If so, you can use an Omit type which looks like this. It's much easier to maintain this way.
  /**
   * From https://github.com/Microsoft/TypeScript/issues/12215#issuecomment-307871458
   * The Diff type is a subtraction operator for string literal types. It relies on:
   *  - T | never = T
   *  - T & never = never
   *  - An object with a string index signature can be indexed with any string.
   */
  export type StringDiff<T extends string, U extends string> = (
    {[K in T]: K} &
    {[K in U]: never} & {[K: string]: never}
  )[T];

  /**
   * From https://github.com/Microsoft/TypeScript/issues/12215#issuecomment-311923766
   * Omits keys in K from object type T
   */
  export type ObjectOmit<T extends object, K extends keyof T> = Pick<T, StringDiff<keyof T, K>>;

I didn't even know that was possible in TS oO

We're actually using this because some of the native APIs and the APIs of material-ui are sometimes not compatible 😉
https://github.com/callemall/material-ui/blob/1d84cb89a97755245d6b02921e983b39e4468204/src/Radio/RadioGroup.d.ts#L1-L11

But I think this discussion goes a little bit in the wrong direction. Why should we pick or omit things from the native elements.
@nenadalm wrote:

Best would be to type it as good as typescript allows (so whitelist all possible allowed properties).

This is actually why we didn't decide on that yet and the typings are (actually) kinda broken. IMHO the typings for ButtonBase should have the API provided by material-ui + <button> + <a>. If someone is (ab-)using the component prop and needs more/different API s/he can still to this, but loses type-safety (has to use as any). My guess is that the later will only be rarely used. Most people will use the components as a button or an anchor and we should primarily support this case and try to have as type-safe typings as possible, which we would have in my opinion we the aforementioned approach.

I'd rather have the code compile and maybe get some runtime warnings from proptypes than having to use hacks like what I'm using right now for untyped properties, e.g:
<Button
  color="primary"
  {...{
    title: "A button tooltip" // this works but is never type checked :(
  }}
>
  hi
</Button>

@sebald I asked the same question, why are we picking any thing? (I'd prefer omiting over picking).
I think the component prop is perfect for creating a type-safe component until typescript can get bi-furcating types.

@xaviergonz With the proposed approach this would actually not be necessary, since title and a ton of other basic HTML attributes are covered by React.HTMLAttributes.
@benbayard Could you explain to me what you mean by "the component prop is perfect for creating a type-safe component"?

I made a PR with the mentioned approach, so when @oliviertassinari cuts a release on the weekend the typings will (hopefully) be better for everyone. If this is not enough, I'll add the index signature.
Notet that this would affect the following components:

ButtonNavigationButton
Butotn
ButtonBase
IconButotn
ListItem
TableSortLabel
Tab
Tabs
TabScrollButton

@sebald Great! :)

Hi,  How would you type/fix this :
<ListItem
    component={Link}
    to="/about"
>

I have the following error:
file: 'file:///Users/stunaz/Sites/pegase-react-ts/src/modules/demo/Demo.tsx' severity: 'Error' message: 'Property 'to' does not exist on type 'IntrinsicAttributes & ListItemProps & { children?: ReactNode; }'.' at: '78,37' source: 'ts'

@pelotom @sebald is the above supported ? if no is there a way around it?

You can always use spread and any as a workaround. This should work
<ListItem
    component={Link}
    {...{ to: '/about' } as any}
>

Though you will lose type safety.

I am not sure if to was ever support 😐  But I guess we could try to use tagged union types, to have better typings.

to is a props used for the Link Component (react-router).
Currently with the ListItem I could pass as component={MyOwnComponent} and add additionals props destined for MyOwnComponent.
Ideally ListItem should accept his own props and props from the component'props.
The same goes for several others component as Grid, Card, Paper ...

It might be worth considering adding
  button?: boolean;
  component?: React.ReactType;
+ additionalProps: {};
  dense?: boolean;
  disabled?: boolean;
  disableGutters?: boolean;
  divider?: boolean;

to ListItemProps and likewise all other components that allow overriding their root component. Then you could do
<ListItem
  component={Link}
  additionalProps={{ to: "/about" }}
/>

without being hampered by the type system. An escape hatch like this would allow us to avoid compromising the strict typing of the rest of the props, and just say, "if you're providing your own component you can throw whatever extra properties you like in here... use at your own risk!"
This will of course require a corresponding change to the .js implementations of all these components.

Here's a simpler, less invasive and more type safe idea: define a HOC
declare const overrideComponent:
  <BaseProps extends { component?: React.ReactType}>(BaseComponent: React.ComponentType<BaseProps>) =>
  <CustomProps>(CustomComponent: React.ComponentType<CustomProps>) =>
  React.ComponentType<Replace<BaseProps, CustomProps>>

whose implementation is just
export default BaseComponent => CustomComponent => props =>
  <BaseComponent component={CustomComponent} {...props} />

and then you can do
const LinkListItem = overrideComponent(ListItem)(Link)

const elem = <LinkListItem to="/about" />

and it's completely type safe.

Something else to consider:
<ListItem component={props => <Link to="/about" {...props} />}>
  // ...
</ListItem>

@oliviertassinari that's a great way to do it!

just tested @oliviertassinari solution, worked fine, more more typings issue 👍
thanks all again

This no longer works as per "@types/react": "^16.0.36",


[EN Unit Dimension] Include recognition of unit of dimension such as weight, distance, volume.

Is your feature request related to a problem? Please describe.
Not a problem but it provides better definition of the Unit Dimension type to have the Weight, Distance, Speed, Volume and Length.
Describe the solution you'd like
Instead of recognizing "100 lbs" as Unit-Dimensions, it will be typed as Unit-Weight just like "36.4°C" is recognized as Unit-Temperature.
Describe alternatives you've considered
None.
Additional context
None

Modifying the type would be considered a breaking change.
Would it be reasonable to return an extra attribute with the Dimension sub-type? This schema is already used for numbers. E.g.,
"TypeName": "number", "Resolution": {     "subtype": "fraction",      ... }

Yes that is what I am proposing, sorry it is not clear.
Unit-Weight is TypeName: Unit, Subtype: Weight

@joaopsousa FYI and tracking.


Header downloader - step 1

This partially implement #297
Here we have the "responder" part of the downloader: it is able to connect to the sentry and respond to external request.
Also we have almost all packets (with test) and rpcs.

I think you should change the stage1 directory name to downloader, i think we might want to reuse it to put all of the future work to be done on block bodies.

Done:

[x] moved code to silkworm/db
[x] added build target for test in silkworm/db - all test (47) pass, 10 are about the downloader
[x] fixed some code-style issues
[x] removed c++20 dependencies - refactored the entire rlp::encode overload set (of the downloader) - tested with gcc 10.2

Todo:

[ ] fix circle/ci issues
[ ] fix MSVC build issues
[ ] check clang compile/build

Future improvements of the code base:

rework the rlp::encode function template overload set (remove template?) and avoid code duplication [encode(vector), encode(packet66)]
add interfaces as submodule https://github.com/ledgerwatch/interfaces

Please consider this post that can help the reviewing process https://github.com/torquem-ch/silkworm/issues/297#issuecomment-889698577


Escape special characters in PR title

Correctly display PR titles that contain special characters, e.g.

instead of

(pull request title is 'Upgrade 1.0.0 > 1.0.1')
Fixes #72

@pragbits @rrobert42 any chance of a review / merge?

Fixed.


Update ingress commands for different cloud deployments

A somewhat open question concerning cloud deployments of rollups is how much automation we want to have when it comes to setting up ingress for different providers.
Currently this is all very manual.
Because similar steps need to be taken within dev-cluster to deploy things, it may be possible to create some new commands to help simplify deployment for various cloud providers.

Closing this as the cloud deployment sections have been removed.


netherite tools/items not working

Describe the bug
Enchantments in book form dont apply on netherite tools/armor and just sent the chat message the item loved this book. However the enchantment never gets applied to it.
Versions (please complete the following information):

Minecraft Server Version: git-Paper-132 (MC: 1.19.2)
Plugin Version: 1.9.5-42

Pastebin any errors in console
there are no errors.
Screenshots

It does not work in Creative Mode.

oh yes i can confirm that. wierd enough it did work with creative before.


Some information in the platform about the models

The user can have some information in the model form
subtask of #44

The user can see the list of inputs and outputs on the model form (model info tab)


exportImage: add option to specify filename

currently the downloaded image's name is 'screenshot.png'. If I do the screenshot several times, Chrome adds 'screenshot(2).png' . So I need to rename it.

I refactored the image generation (5ca95ef6577da48a2b9aa40c968eb6e37e4f068a) and stage.makeImage now returns a Blob via a Promise. So you can trigger download with whatever name you like. You can also send the Blob-bytes to the Python kernel in nglview.
stage.makeImage( {
    factor: 1,
    antialias: true,
    trim: false,
    transparent: false
} ).then( function( blob ){
    NGL.download( blob, "screenshot.png" );
} );

that's perfect. Can't wait to have new NGL in NGLView.


influxd inspect should skip non-exists tsm file

Proposal:
Make influxd inspect could running on-the-flight.
Current behavior:
influxd inspect will exit when some file not exist:
error: /data1/influxdb/engine/data/000000000232006-000000001.tsm: open /data1/influxdb/engine/data/000000000232006-000000001.tsm: no such file or directory. Exiting.
Error: open /data1/influxdb/engine/data/000000000232006-000000001.tsm: no such file or directory

Desired behavior:
Just skip these file, or refresh tsm file list.
Alternatives considered:
Disable influxd compaction temporarily during influxd inspect.
Use case:
Analyze tsm file on-the-flight.

@STRRL thanks for the issue. Could you add what version of influxd you are running?

@russorat  2.0.0-beta.14
#influxd version
InfluxDB 2.0.0-beta.14 (git: c8af0f35be) build_date: 2020-07-08T20:42:23Z

Something to keep in mind while implementing #20273

This was fixed in influxd inspect export-lp, added in v2.0.4


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-target_8efe8c32-c94e-42f9-98e1-4b8fba1b9661/pull/1 is merged into live branch.
Auto archive content to https://github.com/opstest2/docs-archive-test-target_8efe8c32-c94e-42f9-98e1-4b8fba1b9661.git

Docs Build status updates of commit 63cec91:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error-UserAccountBuildPermissionInsufficientError] Owner v-alji no longer has Read permission of the repository https://github.com/opstest2/docs-archive-test-source. It might be due to recent GitHub changes on SSO. Please ask the owner v-alji to logon to Docs Portal https://ops.microsoft.com once again. If it is not the case, please ask anyone of Admin permission of the repo to assign a new owner via Docs Portal https://ops.microsoft.com

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 63cec91:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error-UserAccountBuildPermissionInsufficientError] Owner v-alji no longer has Read permission of the repository https://github.com/opstest2/docs-archive-test-source. It might be due to recent GitHub changes on SSO. Please ask the owner v-alji to logon to Docs Portal https://ops.microsoft.com once again. If it is not the case, please ask anyone of Admin permission of the repo to assign a new owner via Docs Portal https://ops.microsoft.com

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Change the colour of the first X meters of the track

Is it possible to have a different colour for the GPX route for the first X meters?

Not within a given track segment; you'd need to use different segments, each with their own styling definition, as explained in https://github.com/mpetazzoni/leaflet-gpx#line-styling.


fix: update kubelet --kubeconfig description

The description of --kubeconfig is looks outdated. Its default value was also changed.
This PR updates the description base on
https://github.com/kubernetes/kubernetes/blob/master/cmd/kubelet/app/options/options.go#L376

seems the file are auto-generated, that's true? @tengqm

seems like the kubelet ref docs are not up to date with the source code for some reason.
cc @jimangel

/lgtm
/approve


Block Json Parse

In block_editor_controller.js, updateBlockDefinition sets the current block's JSON using FactoryUtils.getBlockDefinition(). getBlockDefinition returns a formatted string used to display the block definition. In order to then add this JSON to the block (and use it later for saving/loading), it has to be remade in to an object. This is currently being worked around using JSON.parse(), but is a temporary workaround and will be modified for future clarity.

I think storing the JSON string in BlockDefinition is a very reasonable thing to do.  Serialization is very common, and the parsed JSON-like objects will take a larger memory footprint. Parsing JSON, especially for these small strings is relatively cheap, and will ensure there is no non-JSON (cycles, external references, functions) contained in the stored form.


What's the function of WEBSITE_CONTENTOVERVNET

I've tried to go across the article, however it's missing what's the scenario and why should we set WEBSITE_CONTENTOVERVNET setting.
Can we kindly please elaborate it for a better understanding?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: aa989bf6-c8f7-71fc-e823-f2726dfc8935
Version Independent ID: 8dc810a4-bfd2-aba7-c48d-b0b1e8aaa8e1
Content: How to configure Azure Functions with a virtual network
Content Source: articles/azure-functions/configure-networking-how-to.md
Service: azure-functions
GitHub Login: @ggailey777
Microsoft Alias: glenga

Hello @hrmsft - Thank you for your feedback! We will review and update as appropriate.

@hrmsft , Thanks for your feedback. I have added more information about the WEBSITE_CONTENTOVERVNET setting. It will be published soon


Don't render certain elements marked with specific data-attribute

🧩 Feature request or Docs Update
When rendering pages with Scully all scripts that the page will load are executed on the server.
This can cause some problem with Scripts like for example Cookie Banner scripts (like cookiebot.com)  that need to be inserted in the head of the index.html
<script
  id="Cookiebot"
  src="https://consent.cookiebot.com/uc.js"
  data-cbid="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
  data-blockingmode="auto"
  type="text/javascript"
></script>

As the HTML of the banner is rendered via Scully the resulting banner is not interactive anymore and the layout is broken.
I checked the isScullyRunning() function and found the internal check that is used. I then adapted the insertion-script to check for window && window["ScullyIO"] === "running" and only then insert the script in the head. But this is not really future proof as any change in Scully regarding the global variable might break this.
    <script>
      (function (i, s, o, g, a, m) {
        if (window && window["ScullyIO"] === "running") return;
        (a = s.createElement(o)), (m = s.getElementsByTagName(o)[0]);
        a.id = "Cookiebot";
        a.setAttribute("data-cbid", "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX");
        a.setAttribute("data-blockingmode", "auto");
        a.type = "text/javascript";
        a.src = g;
        m.parentNode.insertBefore(a, m);
      })(window, document, "script", "https://consent.cookiebot.com/uc.js");
    </script>

Describe the solution you'd like
I would love to just add a data attribute to elements (in and especially outside of Angular!) like data-scully-ignore="true which then scully removes from the DOM before rendering.
Describe alternatives you've considered
A working Gist of my solution described above can be found here: https://gist.github.com/denisyilmaz/29d8ff1c601e1a9084d271df65e08bf6
I guess this is also a valid solution. Maybe this could be added as a note to the Docs for people having similar problems.

@denisyilmaz You can safely take that this will not change. Significant parts of our system depend on it.
The change you propose is possible, but very costly, as we need to analyze all elements on all pages on every render.
If this is what you want, you can create a plugin, and use that to take out the things you want to take out
registerPlugin('postProcessByDom', 'removeAttributeReove', async (dom, route) => {
    /** traverse dom and remove/replace */
    return dom;
}

But it does take its time, on every page where it is used.
That is why we do provide the global on the window, as this is a very cost-effective way to create execeptions


Winget install location configuration

Suggested new feature or improvement
A setting that sets the default install location for winget packages via dev home, for example on another Drive
Scenario
Limited Space on C? just set another Dedicated Drive and Path for the Install locations
Additional details
No response

/dup #1003


start-alias crash

Using start-alias / start-missing /start-all may crash the wallet.

seems like a deadlock issue. will need to test my fix for the next release but i've got one in place on my github.

should be fixed with next release. if not please re-open this issue.


Readme is for Swift 3

The current example in the readme is for swift 3 and so will not work if you try and make it.

Fixed in https://github.com/IBM-Swift/Kitura-WebSocket/pull/26


Cannot clear messages

Copilot Chat Extension Version: v0.21.2
VS Code Version: <IP_ADDRESS>
OS Version: Windows 23H2

Steps to Reproduce:

Send messages to copilot
Type /clear or click "+" in upper right
Nothing appends, sometimes an error:

That's interesting, are you able to copy the conversation? Right click > Copy All
Can you tell me about what sort of content is in the conversation?
Are there any more error details in the Window output channel?

Sorry for the delay in replying, so "copy all" actually works perfectly, and the bug occurs for any type of conversation, no matter the conversation. And I haven't found any other details, knowing that even the error message doesn't always appear during the bug

for any type of conversation, no matter the conversation

Are you saying that it always happens, and happens in every window? Even a fresh one with no previous chat content?

For my own reference, from the error, seems like there is a context key/ContextKeyExpression in the chat session, which probably comes from a widget or service that shouldn't be in there, but I don't know how it got in there.

for any type of conversation, no matter the conversation

Are you saying that it always happens, and happens in every window? Even a fresh one with no previous chat content?

Now, after the updates, the button works, but every in every window, every restart of my pc, the "/clear" command don't work. But I don't see any error for this command

Hm, you don't see any errors in the Window output channel when running clear? Do you see the request with /clear rendered in the chat list? Can you send a screenshot?

I think all these problems are related, but I really don't know what's happening

every restart of my pc, the "/clear" command don't work

Are you saying that if you use the + button, then chat, then do /clear, it works? But if you restart your pc (or just reload the VS Code window) then it doesn't work? I can sort of imagine the kind of problem that would lead to this.
But do you see any errors in the WIndow output channel?
Also, could you do this

F1 > Set Log Level > Trace
F1 > Reload Window
Run /clear in chat
Share the log from the Window output channel

That would help me understand how the chat service got out of sync and is not able to find and clear your chat session.

even without restarting my computer, /clear does not work, and I followed the steps for the logs, I see them but when I command there is no new log that appears, I mean, the logs before and after the command do not change


5.0: Add constants for known date formatters

I think it would be helpful to provide some known constant values for things like date formatters: https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-date-format.html#built-in-date-formats
What are your thoughts on this? Also, should a default one be sent in elastic 5 (dateOptionalTime was sent in 1.x).

Known date formats seems like a good idea 👍

+1 on adding a DateFormat enum.  This means adding an overload everywhere we take a string though.

We now have constants on DateFormat.* thanks for the suggestion @niemyjski 👍


TextInput component : add more prope

It's not always that a user wants to have a rounded TextInput component, this could hence be updated for user code flexibility
( es6)
 : default, no styling
  : bordered TextInput
and others like rounded and also custom styling liberty to user

Hi @shubhamkakkar,
I will soon do a review over the input components and let you know when a change is made.

Hi @shubhamkakkar,
I updated all Form Input Atoms to allow custom styles. To use it, you will need to first include the noStyle boolean prop, then include a style object for the following props;
style: the style of form Input in the inactive state
activeStyle: the style of form Input in the active state
errorStyle: the style of form Input when a validation error occurs.


A descriptor guard?

We should probably add a descriptor guard, so that users will not accidentally leak any descriptor.
Something like std::unique_ptr<Descriptor> desc

Yes. Just one quick thought: maybe construct something hidden from the user, say return a GuardedDescriptor that has (1) descriptor pointer and (2) a guard. The guard gets destructed as GuardedDescriptor goes out of range, and calls descriptor abort transparently if the user didn't call it.


Add Preconditions.CheckArgument

This is to make it simpler to check argument values for things other than nullity.

Nit on the doc comments, other than that :shipit:


"TypeError: coercing to Unicode" with colored output

A minor bug, but was confusing when I stumbled across it. puts(colored.red(1)) works as expected normally, but doesn't degrade correctly when colors aren't supported.
test1.py:
from clint.textui import puts, colored
puts(colored.red(1))

test2.py:
from clint.textui import puts, colored
puts(colored.red('1'))

$ python test1.py
1 (colored)
$ python test1.py | cat
TypeError: coercing to Unicode: need string or buffer, int found
$ python test2.py
1 (colored)
$ python test2.py | cat
1

+1


lower job priority if configs/splits exceed threashold

Fix for https://github.com/huggingface/datasets-server/issues/2048
I set MAX_CONFIGS_THRESHOLD_TO_LOWER_PRIORITY and MAX_SPLITS_THRESHOLD_TO_LOWER_PRIORITY constants = 500 but this could be changed if someone considers a better value.
I thought about the possibility of having these values as env variables but we would have to validate them and I don't think this is something we will be changing frequently.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (70884d9) 90.69% compared to head (0ad7dbb) 84.00%.
Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2132      +/-   ##
==========================================
- Coverage   90.69%   84.00%   -6.69%
==========================================
  Files         263       42     -221
  Lines       16030     1851   -14179
==========================================
- Hits        14538     1555   -12983
+ Misses       1492      296    -1196

Flag
Coverage Δ

jobs_cache_maintenance
?

jobs_mongodb_migration
?

libs_libapi
?

libs_libcommon
?

services_admin
86.56% <ø> (ø)

services_api
83.15% <ø> (-3.94%)
:arrow_down:

services_rows
?

services_search
80.48% <ø> (ø)

services_sse-api
?

services_worker
?

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

I think it's a good idea to lower the priority depending on the number of splits. But I don't know of we can do it with the current concepts.
Indeed, of it's HIGH, generally it's because we launched it on purpose via the admin page. I don't think we want to move the priority to LOW, since it's done on purpose.
If it's already LOW: no effect.
And if it's NORMAL,... Ok, why not.
But maybe we should not mix theses priority levels, and instead penalize the datasets that have a lot of pending jobs, in the mongo query? Or change the priority enum to an int, as we do with difficulty?

But maybe we should not mix theses priority levels, and instead penalize the datasets that have a lot of pending jobs, in the mongo query? Or change the priority enum to an int, as we do with difficulty?

I think we can achieve the penalization only with an int value to use it on the order by statement right?
I will probably need to: If adding/changing the data type needs a new index or a change on one of the existing ones. Also I think the impact will be bigger, if it is ok I can propose another PR and close this one. WDYT @severo?


Rename Project

We all know Rockstar is quite litigious and so the project should be renamed as to avoid the possibility that they will sue or send a C&D. Love what this project is doing, but I also don't want to see it go dark as a result of unfortunate garbage from them.

and renaming the project wont help as it doesn't change the content or what the project already is

Nothing you said has any relation to whether something violates trademarks. Trademarks and copyrights are entirely different beasts. And with that, everything you suggest is contrary to what has been the law of the land for decades.

2023 and the repo still here..


Issues with waking up when chrome using nvidia video card.

My computer has a intel and nvidia card in it (Intel HD 530, Nvidia gforce 940MX).  For some reason I configured the system to use the nvidia card to handle chrome.
When in this configuration, and I run vscode, and let the display go to sleep, upon wake up code is displaying its window, but not its title bar or borders, and all the rest of the os desktop and all other apps are black with no display.  I have to power cycle the machine to fix.
Once I adjusted the settings so that chrome was using the intel card, the problem goes away.
Also, chrome itself does not exhibit this behavior, just vscode.  I dont have any other electron apps to test it with.

VSCode Version: Code 1.6.1 (9e4e44c19e393803e2b05fe2323cf4ed7e36880e, 2016-10-13T16:21:53.542Z)
OS Version: Windows_NT ia32 10.0.14393
Extensions: donjayamanne.githistory-0.1.0, donjayamanne.python-0.4.2, DotJoshJohnson.xml-1.6.0, DougFinke.vscode-pandoc-0.0.8, dracula-theme.theme-dracula-1.2.5, Ionide.Ionide-FAKE-1.1.0, Ionide.Ionide-fsharp-2.6.11, Ionide.Ionide-Paket-1.2.2, lukehoban.Go-0.6.44, mjmcloug.vscode-elixir-0.0.8, ms-vscode.csharp-1.4.1, ms-vscode.PowerShell-0.7.2, msjsdiag.debugger-for-chrome-1.2.0, pgourlain.erlang-0.0.9, robertohuertasm.vscode-icons-3.0.4, samverschueren.yo-0.8.5, sandy081.todotasks-0.4.0, saviorisdead.RustyCode-0.19.1, sbrink.elm-0.8.3

Steps to Reproduce:

Configure chrome to use nvidia card in nvidia control panel
Let screen go to sleep
Wake up

Marking as upstream because this sounds like an issue with Electron or Chrome. Please try if possible to reproduce with Electron or Atom.

I installed atom and tested.  It DOES NOT happen with atom, nor with chrome by itself.  Just with Code.

@sillyotter make sure to try with Atom Beta as they use a comparable Electron version as we do (not Atom stable).

The problem also happens with Atom 1.12.0-beta2 so its definitely electron.

That is what I expected, thanks 👍

@sillyotter  we just updated Electron again, was wondering if that helps you: http://code.visualstudio.com/Download#insiders

Based on the hand full of tests I've run with no problem, I'd say electron has fixed this issue.  Everything seems to be fine now.

Nice, thanks 👍


FCS_COP.1/KeyedHash

Looks like ref to FIPS 198-1 (HMAC) is missing.
A new version of ISO/IEC 9797-2 was published in June 2021, but what is in it?
Should this ref be updated?

Updated to the new ISO version


Debugging node app pauses unexpectedly when a Worker is created

Issue Type: Bug
After updating my VS Code, my debugging experience became unpredictable and would pause unexpectedly.  I've traced down the root cause in my code to an instantiation of a node Worker (from the worker_threads module).
I have created a simple reproducible scenario with instructions here.
The problem manifests when a worker is created with an env option that doesn't include NODE_OPTIONS in the environment variable.  (NOTE: I wanted the worker thread to act as a sort of "safe" sandbox, with no knoweldge of the owning thread's environment settings):
  import { Worker } from 'worker_threads';

  // This line will cause an unexpected pause in the "Worker1" call stack
  const worker = new Worker(new URL('./worker.js', import.meta.url), { env: {} } );

  // This line will not cause an unexpected pause in the call stack
  const worker = new Worker(new URL('./worker.js', import.meta.url), { env: {NODE_OPTIONS: process.env.NODE_OPTIONS} } );

Steps to Reproduce:

Clone this repo: https://github.com/hogpilot/vscode-debug-test
Open the repo in VS Code
Run the following commands in the terminal:

npm install
npm run build

From VS Code's "Run and Debug" tab, select "Launch Program" (from my launch.json)
The code will pause in the Worker1 stack (without any breakpoints set) when it creates the new Worker

Workaround:

When creating the new Worker with an env option, add NODE_OPTIONS to the env object.

NOTE: I am using webpack5 to build the code, following their guidance for instantiating worker threads

Node version: v14.16.1
Webpack version: 5.38.1

VS Code version: Code 1.56.2 (054a9295330880ed74ceaedda236253b4f39a335, 2021-05-12T17:13:13.157Z)
OS version: Windows_NT x64 10.0.17763

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-9850H CPU @ 2.60GHz (12 x 2592)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onrasterization: enabledskia_renderer: enabled_onvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
31.73GB (11.64GB free)

Process Argv
--crash-reporter-id f3ef9d22-974e-4c16-bdee-33c2342fccfa

Screen Reader
no

VM
0%

Extensions (6)

Extension
Author (truncated)
Version

vscode-eslint
dba
2.1.20

xml
Dot
2.5.1

vscode-env
Iro
0.1.0

mdx
sil
0.1.0

code-eol
soh
0.3.3

code-spell-checker
str
1.10.2

A/B Experiments
vsliv368:30146709
vsreu685:30147344
python383cf:30185419
pythonvspyt602:30300191
vspor879:30202332
vspor708:30202333
vspor363:30204092
vswsl492:30256859
pythonvspyt639:30300192
pythontb:30283811
pythonvspyt551:30311712
vspre833cf:30267465
pythonptprofiler:30281270
vshan820:30294714
vscoreces:30290705
pythondataviewer:30285071
vscus158cf:30286554
vscgsv2ct:30307505
vscorehov:30309549
bridgeflight:30312182
vscod805cf:30301675

This appears to be an issue in Node.js, I've reported it here: https://github.com/nodejs/node/issues/38934
We could patch around it in js-debug, PR's welcome. Code pointer: https://github.com/microsoft/vscode-js-debug/blob/3a3436a299113045c69fe8e07bb1b70b6ecde950/src/adapter/threads.ts#L626

I would love to help in solving this issue @connor4312. Can you guide me a little?

@Patil2099 take a look at https://github.com/nodejs/node/issues/38934 :)

Yea, you could patch Node (I'm not familiar with their internals enough to give pointers) or, inside _onPaused in js-debug, call this.resume() if we identify a paused worker. It looks like the event reason is "Break on start" in that case. You could make the type() in the NodeWorkerTarget something like node_worker, and then be able to identify in _onPaused that if the target is a node_worker and reason is break on start, then we should actually resume.

I'm not sure if I did this right. I followed the directions. I got the results below. What should I do next? I'd like to help. I used ATOM.
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch Program",
"program": "${workspaceFolder}/dist/main.js",
"request": "launch",
"skipFiles": [
"<node_internals>/**"
],
"type": "pwa-node"
}
]
}npm i
npm run build


x/net/http2: outdated README

Reading http2 docs at https://pkg.go.dev/golang.org/x/net/http2, the first thing you see is this old text:
This is a work-in-progress HTTP/2 implementation for Go.

It will eventually live in the Go standard library and won't require
any changes to your code to use.  It will just be automatic.

Status:

* The server support is pretty good. A few things are missing
  but are being worked on.
* The client work has just started but shares a lot of code
  is coming along much quicker.

Docs are at https://godoc.org/golang.org/x/net/http2
...

Probably time to update that.

CC @neild, @tombergan via owners.

The package comment is more up to date and also shows up on pkg.go.dev. Maybe the README should just be deleted from that directory to avoid overlap.


[EyeDropper] Restrict API access to content area

[Writing on behalf of Chrome Security and Privacy teams. CC\ @camillelamy ]
The explainer states this as a goal:

Provide access to the color values of one or more user-selected pixels, including pixels rendered by different origins, or outside of the browser.

However, it is preferable to restrict API access only to the page content area only. Access to  the browser window/controls area, or area outside of the browser could make clickjacking attacks possible; and potentially reveal fingerprintable information about the user (e.g. OS preferences).

@krgovind, we prefer not to restrict it to the page content area.  This API competes with system color dialogs which can select any pixel on the screen.  Some browsers use those system color dialogs today for input[type=color] elements.  Does this API introduce a new threat, and if so, can you expand on what makes it more vulnerable?
Also, in case you didn't see it, we plan to gate entry into EyeDropper mode with user activation and require that the user explicitly select a color while in EyeDropper mode (for example by clicking the mouse button) before any information is sent back to the web page.  More on this in this section of the explainer.

@krgovind, we prefer not to restrict it to the page content area.  This API competes with system color dialogs which can select any pixel on the screen.  Some browsers use those system color dialogs today for input[type=color] elements.  Does this API introduce a new threat, and if so, can you expand on what makes it more vulnerable?
Also, in case you didn't see it, we plan to gate entry into EyeDropper mode with user activation and require that the user explicitly select a color while in EyeDropper mode (for example by clicking the mouse button) before any information is sent back to the web page.  More on this in this section of the explainer.

@krgovind, we prefer not to restrict it to the page content area. This API competes with system color dialogs which can select any pixel on the screen. Some browsers use those system color dialogs today for input[type=color] elements. Does this API introduce a new threat, and if so, can you expand on what makes it more vulnerable?

+1, as a potential user of this feature grabbing the color from somewhere out of the current tab (for example, from a vector image I'm editing in a different app) is a key usage scenario.

@krgovind, we prefer not to restrict it to the page content area. This API competes with system color dialogs which can select any pixel on the screen. Some browsers use those system color dialogs today for input[type=color] elements. Does this API introduce a new threat, and if so, can you expand on what makes it more vulnerable?

+1, as a potential user of this feature grabbing the color from somewhere out of the current tab (for example, from a vector image I'm editing in a different app) is a key usage scenario.

@krgovind I just noticed that @ericlaw1979 commented here with a potential attack that I think illustrates your concern.  I suggested these mitigations.  Let me know if they would address your concerns.
Thank you!

@krgovind I just noticed that @ericlaw1979 commented here with a potential attack that I think illustrates your concern.  I suggested these mitigations.  Let me know if they would address your concerns.
Thank you!


Feature Request: Rename collections, sub-collections and documents

Feature Request
Currently, it is not possible to rename any collection, sub-collection or document. This is not possible in refi or in the default firebase-ui. To my mind, with refi, we have the opportunity to add such a function.
How should it work?
As said before, there is no default way to rename a collection, sub-collection or document. What I have in mind is the following:
Collection renaming
The user "right-clicks on nav-menu > rename collection". Then a pop-up comes up where the user puts a new name. Under the text-field there is a warning text saying:
"BE AWARE.  This will result in many reads and writes, and one should be cautious with big collections!
Collection renaming screenshot (pop-up)

Document renaming
The user "right clicks on nav-menu-document > rename document". Then a pop-up comes up there the user puts a new name. Under the text-field there is a warning text saying
"BE AWARE.  This will result in a read and write result, and one should be cautious with a big document!"
Documen renaming screenshot (pop-up)
See header "Collection renaming screenshot"
How to program collection renaming (Pseudocode)

Start Transaction
Write query on desired collection
Check: Has collection > 500 documents
IF YES: Split renaming into multiple parts, as Transaction can only read up to 500 documents
Read all documents from collection
Create new collection and put all read documents in there
Check if successful
Delete old collection
End Transaction

How to program document renaming (Pseudocode9

Start Transaction
Get desired document
Write new document with desired name
Delete old document
End Transaction

Hey @Berki2021 you can delete the collection on the left tree

Because Refi App has a feature to review the change before committing to the DB. So I think a confirm step is a little bit redundant


Make the Gospel type-checker modular

Currently, when the type checker encounters a dependency, it will load and type it on the fly. So common dependencies get type-checked over and over again, uselessly.
It would be nice to modularize the type-checker so that typing a module requires the digested type information of its dependencies instead of retyping them.
This could be done either with dedicated type files (see #376) or trying to piggy-back on current OCaml infrastructure by storing this information in standard files (it would be possible at least in .cmti files, by encoding the information as a special global attribute; could be done in cmi files?).
The expected benefits would be:

improved performance,
easier integration with the standard toolchain, if we manage to have gospel check abc.mli require the same files as ocamlc -c abc.mli.

gospel type checking can't take any arguments (as it is in a ppx)

It can still grab info from environment variables, I expect, which could give us a way to feed it the information we need.

Modularizing the type-checker is expected to break how unicity of identifier is guaranteed in the current implementation.
I've raised #381 for discussing this particular topic.


Migrate drainpipe to jetstream

The jetstream library code in packages-rs/drainpipe/src/jetstream is forked from https://github.com/videah/jetstream-oxide with some modifications to allow for non-bsky lexicons.
todo

[x] Add jetstream to local-infra
[ ] After merge, backfill from the last consumed relay seq (probably by running locally)

test