[Do Not Merge] Fixes getmasternodeoutputs outputs

Fixes getmasternodeoutputs outputs for actual collateral transactions amounts given in the schedule in main.h
This is a reminder for a possible patched wallet. If the new major version update will come soon, ignore this pull request. If not, merge this pull request and release as a minor update.

Thank you


The sample code in the readme makes Sendgrid send back a 400.

When I format the to address as directed in the readme I get a 400 back from Sendgrid.
mail = EmailMultiAlternatives(
  subject="Your Subject",
  body="This is a simple text email body.",
  from_email="Yamil Asusta<EMAIL_ADDRESS><EMAIL_ADDRESS>  headers={"Reply-To"<EMAIL_ADDRESS>)

{
	"errors": [{
		"message": "Invalid type. Expected: string, given: array.",
		"field": "personalizations.0.to.0.email",
		"help": "http://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/errors.html#message.personalizations.to"
	}]
}

This is fixed by #58. Recommend closing.
Evidence: https://github.com/jayhale/sendgrid-django-64

Thanks @jayhale!


Upgrades to Object key correctness and type inference.

Suggestion
Add new type syntax, including a ! modifier for optional types and a concept for closed types, for more succinct type building and checking.
🔍 Search Terms
for-in, infer, exact, closed, type
✅ Viability Checklist
My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

⭐ Suggestion
Part 1: Strictly Optional types and the ! modifier.
The ! modifier can be affixed to properties instead of ? indicating those keys are optional, but may not be set to undefined, only delete-ed. Take this sample:
type Person = {
  name: string,
  title!: string
}

No strictly optional property may specify undefined in its type, unlike an optional property which allows it. However, the final type is still a union of the property type and undefined.
Instances of Person can now be defined either with title omitted, or definitely some string.
const person: Person = { name: "Chris" }; // good
const person: Person = { name: "Chris", title: undefined }; //bad

Additionally, if authors wish to remove the title property from a Person, they must delete it, rather than setting it to undefined.
person.title = undefined; // bad
delete person.title; // good

In mapped types, ! is expressed quite naturally as would a ?:
type AltPerson = {
  [P in keyof Person]!: string
}

type AltPerson = {
  name!: string,
  title!: string
}

A type with strictly optional properties may freely be cast into one with plainly optional properties, but the opposite will not always be true. The author will have to iterate over the object's properties and ensure none are set to undefined.
For convenience, a StrictlyOptional<T>  type can be used to convert optional ? properties to strictly optional ! properties.
type AltPerson = StrictlyOptional<Partial<Person>>

StrictlyOptional<T> must not effect non-optional properties.  Partial<T> applied to a strictly optional type T should convert all its strictly optional properties to plainly optional.
If the author wishes to modify a strictly optional property arbitrarily, a cast to any will not suffice. The author must cast to unknown first, as to signal to the compiler a desire to evade ! type checking.
A readonly property of type T should remain readonly in StrictlyOptional<T>. satisfies fails if attempting to satisfy a strictly optional property with a plainly optional one.
Part 2: closed and Closed<T> types.
Often we create objects guaranteed not to deviate from an exact set of properties. To encourage strict adherence, a new closed modifier can be used to marks types for objects whose property set will never differ from the defined interface.
A closed type can be declared as follows:
closed type Preferences = {
  useSystemTheme: boolean,
  forceDarkTheme: boolean,
  language: string
}

Instances of Preferences must contain only those properties declared in Preferences.
Already when constructing a Preferences, the author must not declare more keys than strictly necessary.
const myPreferences: Preferences = {
  useSystemTheme: true,
  forceDarkTheme: true,
  language: "Esperanto",
  color: "green" // bad
}

But instances of closed types cannot be cast to other types that do not have the same properties. Casting myPreferences as Record<string, any> becomes invalid in closed contexts.
Objects can become closed either with the closed keyword or using the Closed<T> type, only if their properties can be inferred in advance:
const record = myPreferences as Record<string, any>; // bad
const record = { foo: "Foo", bar: "Bar" } as closed; // good
// typeof record = closed { foo: "Foo", bar: "Bar" }

const tuple = [1, 2, 3] as closed; // good
// type of record = closed [ 1, 2, 3 ]

const other: Closed<[string, number]> = ["<", 3];

A readonly property of T should remain readonly in Closed<T>. A frozen object of type T could be typed as Readonly<Closed<T>>  or in shorthand Frozen<T>.
💻 Use Cases
A combination of Closed<T> and ! can help narrow down types in places such as for-in loops where iterating over a known key set is still treated as unsafe.
In one of my projects, I use a reducer inside of a react hook to update a set of user preferences from within the app. My reducer looks like this:
type Preferences = {
  readonly option1: string,
  ...
  readonly optionN: string
}

function tryWritePreference(key: keyof Preferences, value: Preferences[typeof key]);

function reducePreferences(state: Preferences, partial: Partial<Preferences>) {
  for (const k in partial) {
    // k is a string
    tryWritePreference(k as keyof Preferences, partial[k as keyof Preferences]!);
    // partial[k] is guaranteed from the rest of the project to be defined, as `partial` has really only strictly optional keys
  }
  return {...state, ...partial};
}

Preferences is not strictly a Record<string, string>, but casting state or partial to such would only move the problem of type assertions. A construct like Closed<T> in conjunction with ! would not only provide needed hints to the compiler, but also help propagate certain guarantees as to ensure the correct use of reducePreferences in my app.
A better definition could be the following:
type Preferences = {
  readonly option1: string,
  ...
  readonly optionN: string
}

function tryWritePreference(key: keyof Preferences, value: Preferences[typeof key]);

function reducePreferences(state: Preferences, partial: StrictlyOptional<Partial<Preferences>>) {
  for (const k in partial) {
    // k is still string with the added bonus that partial[k] is always defined
    tryWritePreference(k as keyof Preferences, partial[k]);
  }
  return {...state, ...partial};
}

This definition also helps me ensure that only definitely not undefined properties end up in partial.
Additionally, the concept of closed types can further hint that it is unacceptable to give partial any more properties than expected. Thus, the final script becomes:
closed type Preferences = {
  readonly option1: string,
  ...
  readonly optionN: string
}

function tryWritePreference(key: keyof Preferences, value: Preferences[typeof key]);

function reducePreferences(state: Preferences, partial: StrictlyOptional<Partial<Preferences>>) {
  for (const k in partial) {
    // k is now definitely "option1" | ... | "optionN"
    tryWritePreference(k, partial[k]);
  }
  return {...state, ...partial};
}

Re: Strictly optional properties: you can already use exactOptionalPropertyTypes to prevent assigning undefined to optional properties.
Re: Closed types - This sounds like exact types, which is a duplicate of #12936.


desiredReplicas ignored in scaledObject with trigger cron

Report
desiredReplicas is ignored completely when using trigger cron for CRD based deployment
ScaledObject:
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: backend
  namespace: test
spec:
  scaleTargetRef:
    apiVersion: deployment.xxx.com/v1alpha1
    kind: ApplicationDeployment
    name: backend
  triggers:
    - metadata:
        desiredReplicas: '5'
        end: 30 * * * *
        start: 0 * * * *
        timezone: Europe/Riga
      type: cron

Expected Behavior
desiredReplicas should be respected by scaledObject cron based feature
triggers:
    - metadata:
        desiredReplicas: '5'

Actual Behavior
ScaledObject ref always restored to replicas: 1 ignoring desiredReplicas
2024-05-15T11:00:11Z	INFO	scaleexecutor	Successfully updated ScaleTarget	{"scaledobject.Name": "backend", "scaledObject.Namespace": "ivp-test", "scaleTarget.Name": "backend", "Original Replicas Count": 0, "New Replicas Count": 1}

Steps to Reproduce the Problem

Create CRD based deployment with replicas = 5
Create ScaledObject for the ref in step1 with triggers: -metadata: desiredReplicas: '5'
Wait for scale down action
Wait for scale up action

Logs from KEDA operator
2024-05-15T10:33:11Z	INFO	scaleexecutor	Successfully set ScaleTarget replicas count to ScaledObject minReplicaCount	{"scaledobject.Name": "backend", "scaledObject.Namespace": "ivp-test", "scaleTarget.Name": "backend", "Original Replicas Count": 5, "New Replicas Count": 0}
2024-05-15T11:00:11Z	INFO	scaleexecutor	Successfully updated ScaleTarget	{"scaledobject.Name": "backend", "scaledObject.Namespace": "ivp-test", "scaleTarget.Name": "backend", "Original Replicas Count": 0, "New Replicas Count": 1}

KEDA Version
2.14.0
Kubernetes Version
1.27
Platform
Microsoft Azure
Scaler Details
No response
Anything else?
No response

This is by design, I believe, but I still think we should kill it in favor of https://github.com/kedacore/keda/issues/3566 @kedacore/keda-maintainers

What exactly is by design here? desiredReplicas is a part of ScaledObject/triggers spec and it's not working as expected.

Hello @gerbil
It's working as expected because the scaling to 5 is happening, as we can see here:
2024-05-15T10:33:11Z	INFO	scaleexecutor	Successfully set ScaleTarget replicas count to ScaledObject minReplicaCount	{"scaledobject.Name": "backend", "scaledObject.Namespace": "ivp-test", "scaleTarget.Name": "backend", "Original Replicas Count": 5, "New Replicas Count": 0}

KEDA is scaling from 0 to 1 because KEDA relies on the HPA to scaling from 1 to N, so the "usual" process is that KEDA scales from 0 to 1 when there is at least 1 active trigger, and then the HPA scales the workload from 1 to N. desiredReplicas is the value that the trigger will return to the HPA Controller. In the same way as with other scalers, if your queue returns 50, KEDA won't scale from 0 to 50 directly.
This is explained here: https://keda.sh/docs/2.14/concepts/scaling-deployments/#activating-and-scaling-thresholds
Given this, if you want to scale from 0 to 5 directly, it's doable. You can use idleReplicaCount option to allow scaling to 0 with min replicas 5, and then KEDA will scaling from 0 to 5 and from 5 to 0 without passing from 1 and the HPA:
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: backend
  namespace: test
spec:
  minReplicaCount: 5
  idleReplicaCount: 0
  scaleTargetRef:
    apiVersion: deployment.xxx.com/v1alpha1
    kind: ApplicationDeployment
    name: backend
  triggers:
    - metadata:
        desiredReplicas: '5'
        end: 30 * * * *
        start: 0 * * * *
        timezone: Europe/Riga
      type: cron

Working fine, thank you!


Pusher only work once

i write test push in my controller like this:
$pusher->push(['msg' => 'helllo'], 'acme_topic');

and this work at first run. in second run symfony server exit with Signal 11. and show me these error.
AMQPConnectionException
Parameter 'password' exceeds 128 character limit.

whats wrong?
--
ubuntu 18.04 bionic
php 7.3
all component updated

Without seeing more code or knowing more of your configuration I honestly can't help you with this (or any) of your issues.  Like I said earlier, I'm not running AMQP so there may be some goofy behavior in that pusher that doesn't exist with the WAMP pusher or there may be an application bug or there may be some other problem.

i use symfony 4.2.
my gos_web_socket.yaml configured as:
gos_web_socket:
  server:
    host: <IP_ADDRESS>   #The host ip to bind to
    port: 8080        #The port the socket server will listen on
    router:
      resources:
        - '../src/uscon/routing.yaml'

  client:
    session_handler<EMAIL_ADDRESS>    firewall:               main
    storage:
      driver<EMAIL_ADDRESS>      ttl:                  28800
      prefix:               'client'
      decorator<EMAIL_ADDRESS>
  shared_config: true

  pushers:
    amqp:
      default:              true
      host:                 <IP_ADDRESS>
      port:                 5672
      login:                guest
      password:             guest
      vhost:                ACME
      queue_name:           gos_websocket
      exchange_name:        gos_websocket_exchange

    wamp:
      host:                 <IP_ADDRESS>
      port:                 8080
      ssl:                  false
      origin:               null

topic and rds registed as:
acme.rpc_service:
    class: App\uscon\Rpc\AcmeRpc
    tags:
      - { name: gos_web_socket.rpc }

acme.topic_service:
    class: App\uscon\Topic\AcmeTopic
    arguments<EMAIL_ADDRESS>    tags:
      - { name: gos_web_socket.topic }

and my pusher bind to controller:
App\Controller\:
    resource: '../src/Controller'
    tags: ['controller.service_arguments']
    bind:
      $pusher<EMAIL_ADDRESS>
here my composer.json
"php": "^7.1.3",
        "ext-amqp": "^1.7",
        "ext-bcmath": "^7.2",
        "ext-ctype": "*",
        "ext-curl": "*",
        "ext-iconv": "*",
        "ext-intl": "^7.3",
        "ext-json": "*",
        "ext-redis": "^4.2",
        "beelab/tag-bundle": "2.1.x-dev",
        "doctrine/annotations": "^1.6",
        "doctrine/doctrine-cache-bundle": "^1.3",
        "econea/nusoap": "^0.9.6",
        "fresh/doctrine-enum-bundle": "^6.2",
        "friendsofsymfony/elastica-bundle": "^5.0",
        "gos/react-amqp": "^0.2.0",
        "gos/web-socket-bundle": "^1.8",
        "jms/i18n-routing-bundle": "^3.0",
        "jsor/doctrine-postgis": "^1.7",
        "limenius/liform-bundle": "^0.13.0",
        "meysampg/intldate": "^1.2",
        "nelmio/cors-bundle": "^1.5",
        "php-amqplib/php-amqplib": "^2.8",
        "predis/predis": "^1.1",
        "sensio/framework-extra-bundle": "^5.1",
        "seretalabs/monolog-fluentd-bundle": "^0.5.0",
        "snc/redis-bundle": "^2.1",
        "symfony/asset": "4.1.*",
        "symfony/console": "4.1.*",
        "symfony/expression-language": "4.1.*",
        "symfony/filesystem": "4.1.*",
        "symfony/flex": "^1.1",
        "symfony/form": "4.1.*",
        "symfony/framework-bundle": "4.1.*",
        "symfony/monolog-bundle": "^3.3",
        "symfony/orm-pack": "*",
        "symfony/process": "4.1.*",
        "symfony/security-bundle": "4.1.*",
        "symfony/serializer": "4.1.*",
        "symfony/serializer-pack": "*",
        "symfony/swiftmailer-bundle": "^3.1",
        "symfony/translation": "4.1.*",
        "symfony/twig-bundle": "4.1.*",
        "symfony/validator": "4.1.*",
        "symfony/web-link": "4.1.*",
        "symfony/webpack-encore-bundle": "^1.0",
        "symfony/yaml": "4.1.*",
        "willdurand/js-translation-bundle": "^2.6"

I'll try spinning up a server in the next week with AMQP built into the stack and see if I can run recreate any of the problems you're having.  I've got some client work keeping me busy the next couple of nights and another backlog item for open source that I want to try and tackle then I can catch back up on some stuff in this repo.

thx @babker. i dont know why but fresh server installation solve problem.


fix: use execv in proxyexe

Potential fix for #13 on POSIX and Windows systems.
On non-posix/windows systems still uses the old behaviour using startProcess. Use --undef:useExec to switch back to old behaviour on posix too.

Great work! You do mention however on the forum that some manual steps are required to replace the proxy executables. Maybe it would be better to add something in updateSelf so that a simple choosenim update self would also rebuild these? Not sure why that's not already done, the way it is now the choosenim version only pertains to the actual choosenim binary and the proxy exes are just whichever version you happened to start your choosenim install on.

Maybe it would be better to add something in updateSelf so that a simple choosenim update self would also rebuild these?

The proxyexe binary is built into the choosenim executable. It gets written to ~/.nimble/bin/{nim,...}, when choosenim switches to a different Nim channel/version.
So actually, contrary to what I wrote on the forum, currently it isn't necessary to remove the old proxyexe binaries, just to switch to a new (or the same) version of Nim with choosenim after updating choosenim. See the code here:
https://github.com/nim-lang/choosenim/blob/fc240acbcfaff5fe8f3eda4bcf5fbafe84a86add/src/choosenimpkg/switcher.nim#L270
(areProxiesInstalled also checks whether the proxyexe file is up-to-date.)
Updating the proxyexe binaries when choosenim updates itself, can be easily done (see below), but belongs in a different PR, imho, and also doesn't help when somebody just updates choosenim using nimble install choosenim or via a Linux distro package.
diff --git a/src/choosenim.nim b/src/choosenim.nim
index 3306e01..c1b628a 100644
--- a/src/choosenim.nim
+++ b/src/choosenim.nim
@@ -167,6 +167,27 @@ proc updateSelf(params: CliParams) =
   display("Info:", "Updated choosenim to version " & $version,
           Success, HighPriority)

+  # Any Nim installation currently activated by choosenim?
+  if $getCurrentVersion(params) != "":
+    var proxiesToInstall = @proxies
+
+    # Handle MingW proxies.
+    when defined(windows):
+      if not isDefaultCCInPath(params):
+        let mingwBin = getMingwBin(params)
+        if not fileExists(mingwBin / "gcc".addFileExt(ExeExt)):
+          let msg = "No 'gcc' binary found in '$1'." % mingwBin
+          raise newException(ChooseNimError, msg)
+
+        proxiesToInstall.add(mingwProxies)
+
+    if not params.areProxiesInstalled(proxiesToInstall):
+      # Create the proxy executables.
+      for proxy in proxiesToInstall:
+        writeProxy(proxy, params)
+
+
+
 proc update(params: CliParams) =
   if params.commands.len != 2:
     raise newException(ChooseNimError,
diff --git a/src/choosenimpkg/switcher.nim b/src/choosenimpkg/switcher.nim
index 2965859..c195e13 100644
--- a/src/choosenimpkg/switcher.nim
+++ b/src/choosenimpkg/switcher.nim
@@ -107,7 +107,7 @@ proc getSelectedPath*(params: CliParams): string =
 proc getProxyPath(params: CliParams, bin: string): string =
   return params.getBinDir() / bin.addFileExt(ExeExt)

-proc areProxiesInstalled(params: CliParams, proxies: openarray[string]): bool =
+proc areProxiesInstalled*(params: CliParams, proxies: openarray[string]): bool =
   result = true
   let proxyExe = proxyToUse()
   for proxy in proxies:
@@ -173,7 +173,7 @@ proc getNimbleVersion(toolchainPath: string): Version =
     display("Warning:", "Could not find toolchain's Nimble version.",
             Warning, MediumPriority)

-proc writeProxy(bin: string, params: CliParams) =
+proc writeProxy*(bin: string, params: CliParams) =
   # Create the ~/.nimble/bin dir in case it doesn't exist.
   createDir(params.getBinDir())

Now that there is an implementation of this PR for Windows as well, I will try to add sensible tests. Not sure how yet, but I will come up with something.


Login with email and password instead of token as client

General Troubleshooting
Hey there! Before you report a bug or suggest a new feature,
please make sure to follow these steps first!

[x] I have checked for similar issues.
[x] I have updated to the latest JDA version.
[x] I have checked the branches or the maintainers' PRs for upcoming features/bug fixes.

This is not the place to learn Java. Please refer to StackOverflow
for your general programming questions.

Issue
Issue Type

[ ] Bug Report
[x] Feature Request

For questions join the official JDA discord server: https://discord.gg/0hMr4ce0tIl3SLv5

Description
Please add support for login with email and password not with the token as client.

Selfbots/Custom Clients are not allowed and a bannable offense. We are not adding any client-api features to JDA.
The login with email/password has been explicitly prohibited by the discord developers and will not be supported.


Flaky integration test for overflowed buffers

The remote_delivery_overflow_network_thread_buffers continues to be flaky.
I'll add #[ignore] flag to it for now and will revisit after issue #82 has been resolved to see if I can make the desired test less flaky using the NetworkMetaPort somehow.

Add network_status_port_established_lost_dropped_connection to your to do list. It's failing about every second or third run for me.


Update storageAccount.bicep to require minimum TLS 1.2

Benefit/Result/Outcome
So that connections to MLZ storage accounts are using the most current encryption.
Description
The current minimum TLS version for Microsoft.Storage/storageAccounts@2019-06-01 is 1.0. Clients can connect with 1.0, 1.1, or 1.2. We want to require 1.2 in order to force the most recent encryption standards per this documentation
Acceptance Criteria

The storage accounts deployed by MLZ require TLS 1.2.
Bicep and Terraform deployments have the same setting.

Bicep change presently in branch;
investigating terraform equivalent.
From the documentation it appears this can be completed via min_tls_version = "TLS1_2" in the definition of the storage module. Appears in the release notes, as long as we are using v2.22.0: https://github.com/hashicorp/terraform-provider-azurerm/blob/v2.22.0/CHANGELOG.md

Unfortunately, I would not advise setting this at this time for Terraform; it appears that the latest stable released version for Terraform as of this date is v1.1.7 which is not new enough to incorporate this proposed change.
Need to verify if this is potentially out of scope for the ask here.


Add time select component

This adds the component that allows users to select the timeframe for the data they are viewing.
It also updates the view to use the component, and updates related tests.
This can be seen at
http://content-data-admin.dev.gov.uk/component-guide/time-select
or single content item pages such as
http://content-data-admin.dev.gov.uk/metrics/government/publications/self-assessment-tax-return-sa100?utf8=✓&date_range=last-2-years
(note that this branch has inherited the satisfaction score bug from master, so you'll need to work around that to view it - remove the satisfaction graph in the view and line 4 of app/services/metrics_service.rb)

@KyleMacPherson fixed the if, good to merge now?


SplitButton / DropdownButton

Is there any plans to get the SplitButton / DropDownButton styles working correctly on a toolbar? I can place the controls on a toolbar no problem but they still use the style they use outside the toolbar rather than adopting a similar look and feel to the rest of the toolbar controls.

In the end I used something based on this ButtonStyle="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" if anyone is interested :)


Internal Server Error Source Control - Azure Automation in Portal

Internal Server Error while integrating Source Control with Azure Automation Account.
Internal Server Error While connecting Source Control with Azure Automation Account.
Attaching Reference video for reference. The User has Run-As- Account rights.
Azure-Automation-SourceControl Integration Error.zip

Thanks for reaching out to us , but at this time it does not look like you are referring to a document but to a specific scenario . If that's the case we request you to please post your question on MSDN and other forums , we have our engineers and others who are monitoring them and will be happy to help .
If you have a document which you are following and if you think it needs  an update , please let us know about that here .

I am not referring to any specific scenario.
I am referring to Microsoft Docs for Source Control with Azure Automation using Portal.
Here is the URL for doc:
https://docs.microsoft.com/en-us/azure/automation/source-control-integration
You can refer the attached steps and error recording for reference.
Azure-Automation-SourceControl Integration Error.zip

@psatyaa, Thanks for sharing additional details, we will look into this and get back to you soon.

@psatyaa Apologize for the inconvenience. I tried to reproduce the issue but was successfully able to add source control. As at this point it appears that there's no edits or updates needed for reference documentation so I suggest you to open a thread and ask for suggestions and answers in communities MSDN Forum or Stack Overflow. Or as in your case it is hard to say what is causing you to hit the issue, support would be able to determine this with more information. So here are the steps to raise a support ticket with Azure technical support if you already have a support plan. But if you don't, then please send mail to<EMAIL_ADDRESS>with your subscription ID and a link of this Github thread (for context) and we will assist you with engaging Azure technical support.

@psatyaa Closing this issue for now. If there are further questions regarding this matter or questions or feedback on the documentation, please do let us know and we will gladly continue the discussion.

Hi Support team
I would agree with @psatyaa
i am still having issues connecting to source control (devOps).
"The authorization process could not be completed."
I have multiple other Automation accounts working fine. But i cannot repeat the process anymore.


when  i  run   in  windows，have a error?

Hi I think this is the same as #141! It seems like some paths on Windows-based nodejs installations are different, but we unfortunately don't have a Windows machine to test this.
If you're able to fix the issue (should be in this file) a PR would be welcome; otherwise you can either:

Install from pip.
Manually build the client. This requires installing nodejs and running yarn build from src/viser/client.

Hi I think this is the same as #141! It seems like some paths on Windows-based nodejs installations are different, but we unfortunately don't have a Windows machine to test this.
If you're able to fix the issue (should be in this file) a PR would be welcome; otherwise you can either:

Install from pip.
Manually build the client. This requires installing nodejs and running yarn build from src/viser/client.

I have solved it ，When node.exe generates a link, the permission is not enough error, need to install manually, to solve this problem, I will PR
https://github.com/buaacyw/GaussianEditor/files/13672309/_client_autobuild.txt

Hi I think this is the same as #141! It seems like some paths on Windows-based nodejs installations are different, but we unfortunately don't have a Windows machine to test this.
If you're able to fix the issue (should be in this file) a PR would be welcome; otherwise you can either:

Install from pip.
Manually build the client. This requires installing nodejs and running yarn build from src/viser/client.

I have push a PR  about  windows build，Please check it


How can I set the DPI of captured screen JPEG image?

Hi All,
I'm using phantomjs-node for generate images of webpage but all images are generating with 72 DPI which is a good quality for web but not a good quality for printing
I have tried with page.set('paperSize',{dpi:150}); but images generated with same 72 default DPI.
Please help if any one knows.
Thanks in Advance.
Subhash

This should be working now.


Multiple modules error

While trying to build a react app with langchain js, I get multiple Module not found errors:
./node_modules/.pnpm/langchain@0.0.33/node_modules/langchain/dist/llms/calculateMaxTokens.js:22:37
Module not found: Can't resolve '@dqbd/tiktoken'

./node_modules/.pnpm/langchain@0.0.33/node_modules/langchain/dist/llms/cohere.js:61:38
Module not found: Can't resolve 'cohere-ai'

./node_modules/.pnpm/langchain@0.0.33/node_modules/langchain/dist/llms/hf.js:74:34
Module not found: Can't resolve '@huggingface/inference'

What is the correct way to install langchainjs then?

Im facing this error as well, if I install them in the root, it's showing more unresolved errors!

Hi

Langchain doesn't currently support being run in a browser, so if you're using it in a react app we don't necessarily expect it work
Those modules are peer dependencies. You can instruct your bundler (eg. webpack) to treat those as externals

@nfcampos
Bundling with Webpack...
ERROR in ../../langchain/dist/llms/calculateMaxTokens.js 22:45-69
Module not found: Error: Can't resolve '@dqbd/tiktoken' in '/Users/sjn/Dev/test/node_modules/langchain/dist/llms'
 @ ../../langchain/dist/llms/openai.js 6:0-61 217:38-56
 @ ../../langchain/dist/llms/index.js 2:0-56 2:0-56 2:0-56
 @ ../../langchain/dist/index.js 3:0-41 3:0-41
 @ ../../langchain/index.js 1:0-31 1:0-31
 @ ../../../src/handlers/post-processor.ts 20:0-35 49:20-26

ERROR in ../../langchain/dist/llms/hf.js 74:42-74
Module not found: Error: Can't resolve '@huggingface/inference' in '/Users/sjn/Dev/test/node_modules/langchain/dist/llms'
 @ ../../langchain/dist/llms/index.js 5:0-47 5:0-47
 @ ../../langchain/dist/index.js 3:0-41 3:0-41
 @ ../../langchain/index.js 1:0-31 1:0-31
 @ ../../../src/handlers/post-processor.ts 20:0-35 49:20-26

ERROR in ../../langchain/dist/sql_db.js 113:41-58
Module not found: Error: Can't resolve 'typeorm' in '/Users/sjn/Dev/test/node_modules/langchain/dist'
 @ ../../langchain/dist/chains/sql_db/sql_db_chain.js 4:0-46 116:34-63
 @ ../../langchain/dist/chains/index.js 10:0-60 10:0-60
 @ ../../langchain/dist/index.js 2:0-45 2:0-45
 @ ../../langchain/index.js 1:0-31 1:0-31
 @ ../../../src/handlers/post-processor.ts 20:0-35 49:20-26

ERROR in ../../langchain/dist/text_splitter.js 224:25-49
Module not found: Error: Can't resolve '@dqbd/tiktoken' in '/Users/sjn/Dev/test/node_modules/langchain/dist'
 @ ../../langchain/dist/chains/analyze_documents_chain.js 2:0-70 40:39-69
 @ ../../langchain/dist/chains/index.js 5:0-68 5:0-68
 @ ../../langchain/dist/index.js 2:0-45 2:0-45
 @ ../../langchain/index.js 1:0-31 1:0-31
 @ ../../../src/handlers/post-processor.ts 20:0-35 49:20-26

I am running into this when trying to deploy in AWS Lambda env using Serverless Framework. @nfcampos Are these peer deps not required at all? I am building with via rebuild using serverless-bundle.

@dokluch Did you manage to get huggingface/inference working with this lib?

@ShantanuNair these are optional peer dependencies (they are marked as such in our package.json but it appears that the bundler you're using sadly ignores that). If you're not using the functionality they power, ie.

@dqbd/tiktoken, TextSplitters and passing maxTokens: -1 to OpenAI LLM
typeorm, SQLDatabaseChain
@huggingface/inference, the HuggingFace LLM
Then you can mark all 3 as external in your bundler, and then it should work.

Let me know if not

Thanks @nfcampos 💖
I've the same problem with next.js config and "externals" webpack config has solved my problem of "Module not found: Can't resolve 'chromadb'":
const nextConfig = {
  reactStrictMode: true,
  experimental: {
    appDir: true,
  },
  webpack(config) {
    config.externals = config.externals || [];
    config.externals.push({
      chromadb: "chromadb",
    });
    config.experiments = { ...config.experiments, topLevelAwait: true };
    return config;
  },
};


Gizmo handles are transparent

closes #36153
set_on_top_of_alpha() disabled alpha so set_transparency() needs to be called last

Thanks!


Only preventDefault if key is actually handled

Description
Fixes https://github.com/mitmproxy/mitmproxy/issues/4132
This is untested
Note I do not know why you need to return a lambda function there, but I guess this is some React-thing I don't know.
Checklist

[ ] I have updated tests where applicable.
[ ] I have added an entry to the CHANGELOG.

Note I do not know why you need to return a lambda function there, but I guess this is some React-thing I don't know.

Same. It's a redux thing and I can't wrap my head around it.
I assume it happens asynchronously. e is available in this scope, but you need to preventDefault synchronously, so it's too late inside the lambda function.
As a quick fix for your issue we could just add the function keys and call it a day, not sure if @mhils would be excited about that. Something like this:
if (e.ctrlKey || e.metaKey || /^F[0-9]+$/.test(e.key)) {

Ohh yet another workaround. Whitelisting ctrl and meta is already a workaround… :see_no_evil:

Yes, welcome to the world of redux, redux-thunk, and pain. Lot of the latter I guess 😄
The problem is that we need the application state in the key handler, and redux-thunk requires that callback. One workaround would be to pass the entire redux store to ProxyApp as a prop, but we need to make sure that this doesn't cause a repaint on every state change. It's honestly a long time since I looked at any of this. If someone wants to take a look at this, please do!
I'm closing this here for now, but we can merge a PR that deals with function keys as a workaround if that helps your particular use case. :)


[FLINK-5831] [webui] order, search and filter metrics

When adding metrics, available metrics are now ordered alphabetically and filtered via a search box

Thank you for opening a PR.
Can you provide a screenshot of the change. Also, the PR is conflicting with the current master, so we can not just merge it:

Can you rebase the PR on the current master?

Yes, here is the screenshot ... also will rebase on master


feat(*): rewrite

This PR rewrites most files, as well as additions of meta files, and general cleanup. It is currently a WIP. It aims to make this repository look better.
Currently these are being implemented:

[x] .gitattributes
[x] Issue and PR templates.
[x] General ReadMe file makeover.
[x] LICENSE.
[x] CODEOWNERS.
[x]  CODE_OF_CONDUCT.
[x] Repository settings.
[x] Workflows (if needed).

Apparently Git caused issues with the force push, going to make a new PR.
(cc @J-Human)


Pin mtenn version for pydantic 2

mtenn was recently updated to pydantic 2, so pin the pydantic 1 version until asapdiscovery is updated. Closes #1244.

@hmacdope I think this ought to do it?

@kaminow we didn't update the feedstock, doing now.

@kaminow spooling out now, if you kick the CI soon it should work.


readd support for changing SYSCONFDIR

used by homebrew dmd recipe

this would be great, it's a pain having the homebrew dmd head version not working.

No idea what's going on here, but I'm sure you'll fix it if it breaks something.

Auto-merge toggled on


l10n updates

This PR updates localizations with the latest localizations from Flutter's l10n team.
Addresses https://github.com/flutter/flutter/issues/80540.
Pre-launch Checklist

[X] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
[X] I read the [Tree Hygiene] wiki page, which explains my responsibilities.
[X] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
[X] I signed the [CLA].
[X] I listed at least one issue that this PR fixes in the description above.
[X] I updated/added relevant documentation (doc comments with ///).
[ ] I added new tests to check the change I am making or feature I am adding, or Hixie said the PR is test-exempt.
[X] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on [Discord].

@kf6gpe Could you also go into the root of the repo and run:
./bin/dart dev/tools/localization/bin/gen_localizations.dart --overwrite

This generates the Dart files that the framework uses for localizations

Excellent, thanks for the pointer, @shihaohong.
Spookily, that fails on the corp-enrolled google machine I have, but not on my mac --- I got the updates to the CL by pulling my repo to my mac and running it there. That also addresses @jonahwilliams's observation about localized characters vs. unicode, too.
I think the only remaining question is (per chat with @Hixie, with whom I firmly agree) --- do you know if we have at least some spot tests for l10n anywhere? If not, I'll set up time offline with you to have you show me where they ought to go, etc; I've not written tests for the flutter repo before, and could use some pointers.

Weird that it fails to run on your corp machine -- Could you file an issue with the logs if it's convenient? I want to look into it!
As for testing, I created a PR to your branch (https://github.com/kf6gpe/flutter/pull/1/files) with the tests for this PR :) In the future, we can add more spot checks to that particular test as we periodically update the translations

Wow! I go to dinner and get tests! Now, there's service! Thanks so. much, @shihaohong. I'll take this example and if I have time tomorrow add a few more tests as well, but I think pending other reviews this PR is probably good to go. I'll let it sit overnight and then look for LGTMs tomorrow.

Filed https://github.com/flutter/flutter/issues/80583 about the gen_localizations issue, too. We'll track that problem over there. Thanks again!

@shihaohong do we have a process around adding new fields here (for example, it looks like this whole diff is due to the fields firstPageTooltip and lastPageTooltip being added since the last branch cut, when last a TPM ran the migration script.
Spot tests will catch regressions, but not a failure translate newly added fields. In my head I'm imagining something like:
If you add a new field that would require localization, you must add a test to a special release shard (which I can add) that asserts that the contents have been translated. This shard would be skipped on master, but run on release branches, and thus verify that the translations have been migrated on the release branch.
WDYT?


update default image to use docker hub  rather than baidubce

Description
update default image to use docker hub  rather than hub.baidubce.com
Type of change

[x] New feature (non-breaking change which adds functionality)

Codecov Report

Merging #16 (7da06b4) into main (0dd67e7) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #16   +/-   ##
=======================================
  Coverage   59.38%   59.38%
=======================================
  Files          14       14
  Lines         746      746
=======================================
  Hits          443      443
  Misses        249      249
  Partials       54       54

Impacted Files
Coverage Δ

mkfile/runner.go
9.58% <ø> (ø)

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 0dd67e7...7da06b4. Read the comment docs.


Requirements for network setup?

Does the proxy assume any specific network setup, are there any required configurations? I have an Argus Eco in my local network, but the camery proxy does not seem to detect it or resolve its address.
Is it possible to configure the camera IP address directly?

The firewall is the culprit.
After looking into it and realising that the Reolink app can only connect when the Android phone has no additional firewall, the camera proxy works with the local firewall disabled. Not a permanent solution, but a first step...

I created https://github.com/vherrlein/camera_proxy/pull/3 to address the firewall issues and to improve network traffic.


simple Decimal number type

Patch to parse numeric values of the form 12.1, -0.123, +.42, etc. The focus is on "human scale" numbers, there is no support for scientific notation, NaN or other values that would be part of a generic float implementation.

Looks great. Thanks so much for the contribution!


Replace tab with space on script

It may inconsistent on different hosts(8/4 spaces per tab).
This change remove 2 tabs and add 8 spaces.
Signed-off-by: Hu Keping<EMAIL_ADDRESS>

ping @cyli

@HuKeping Oops!  Sorry I missed this.  LGTM, and thank you for fixing!  :)


Notification received event is not trigger and unable to fetch payload in iOS

Report

[ ] I have searched existing issues and this is not a duplicate.

Environment

Platforms: iOS

iOS version: 9.0
React-Native: 0.62.1
react-native-azurenotificationhub - 0.9.5-Patched.1

Issues and Steps to Reproduce
Start the iOS application.
Press Home button (pause/background).
Fire Notification.
Receive Notification (shows in Notification list).
either:
Open up the application (resume).
Click on the notification
or
Directly click on the notification
No 'remoteNotificationReceived' event receive. Not a single function of AppDelegate.m(for receiving notification) is being invoked. I tried putting debugger on these events but sadly it doesn't come across these.
Expected Behavior
Start the iOS application.
Press Home button (pause).
Fire Notification.
Receive Notification (shows in Notification list).
either:
Open up the application (resume).
Click on the notification
or
Directly click on the notification
Receive notification event and fetch payload in it.
Actual Behavior
No notification event receive in background or foreground of iOS.
It seems like the notification receive event is not working. Neither localNotification is being invoked nor the remote notification event is being invoked. I even tried getInitialNotification() but this is also not triggered in iOS.

@kumarparth380 Did you manage to get anywhere with this? I've got the same issue

@kumarparth380 and @olie-chan Did you find solution about this? I have same issue and I don't know where is a problem.


Is there any way to provide functionality of changing the year?

I want to provide buttons for changing year and also month, is there any way i can do that?

Hi, you can use date prop and change it manually.
https://github.com/acro5piano/react-native-big-calendar/blob/d93bc11783f5b6cce0cd1f86cde881a4b40f1e07/stories/desktop.stories.tsx#L140-L157
If you have questions, feel free to ask here.


x/pkgsite: package removal request for https://pkg.go.dev/github.com/zebon43/tempProto

What is the path of the package that you would like to have removed?
https://pkg.go.dev/github.com/zebon43/tempProto
Are you the owner of this package?
Yes. And I have deleted the repo from gitHub.
What is the reason that you could not retract this package instead?
I forgot to do the retract before deleting the repo.

Done.


Refactor markers handling

In an attempt at fixing https://github.com/atom/atom/issues/14836 and https://github.com/atom/atom/pull/14844 in Hydrogen using Reacts onDidUpdate handler, some refactors where necessary.
This moves all the marker handling to store/markers.js and adds tests for it.
All storage is now handled by store/ which means we can move functionality out of main.js into separate files. This makes it possible to better test the codebase.

I would merge this now, but thought @t9md may want to weigh in first with all his work involving markers. I do not think this will change any functionality though.

After 5min of behavioral check, I found two breaking.

toggle-bubble cannot add bubble on the editor which is not evaluated by kernel.

Should be able to add bubble before any code evaluation, but no longer with this PR.

Deactivating package call un-exisiting clearBubble function throw error.

TIPS(Self promotion): Tool to help refactoring.
I created atom-narrow package, which allow me interactive project-wide search by ag or rg from Atom editor.
I keymap enter key to narrow:search-by-current-word in vim-mode-plus's normal-mode.
So when I rename or remove some variable/function used in project.
My workflow is like this.

Decided to remove clearResultBubbles.
Hit enter on clearResultBubbles it fire narrow:search-by-current-word
Then I know where this function is used within project.
While I removing, the result list is auto-updated, so I can know the remaining call to clearResultBubbles which I have to make it emptied. It's kind of TODO list to this removing-function-task.

This workflow greatly reduce change of overlook, time of investigation.
Happy if you guys try and find it useful.

@t9md Good catch!
I messed up the rebase onto #885 and #875. I'll try narrow next time 😇

toggle-bubble cannot add bubble on the editor which is not yet evaluated by kernel.

I mistakenly thought that this is expected behavior since insertResultBubble is called with a wrong
signature here, I don't know why that worked before. Will fix that!

I mistakenly thought that this is expected behavior since insertResultBubble is called with a wrong
signature here, I don't know why that worked before. Will fix that!
Oh, I didn't noticed my mistake, thanks. Strangely worked as expected 😅

Thanks a lot for the review 👍

Oh, I didn't noticed my mistake, thanks. Strangely worked as expected 😅

No problem, I changed the signature in #883 so that's why it was broken 😇

This should be good to go now.

This should be good to go now.

Agree.
I'm not sure I'm OK to merge it. (I'm new to hydrogen community, Any consensus for merge procedure?)

@t9md sounds like you approve and we have given enough time for anyone to chime in with issues! I'll merge this, but you are as welcome as I am to merge reviewed/approved PR's!


pubsub: publish deep copied object instead of value by ref

In Publish() func in PublishImpl we create a deep copy of an object we are publishing, because caller can change map values, or object itself, etc. However, for some reason we are marshalling byte slice of item, not its copy, which could lead to saving publication of another type.

Is the concern that the caller who calls Publish of the item might concurrently (in a separate goroutine) modifying that item? Or some other concern?

@uncleDecart I assume this was the source of the bug you were dealing with last week?
I have the same question. Why would the item switch midway through?

Is the concern that the caller who calls Publish of the item might concurrently (in a separate goroutine) modifying that item?
That was the concern, but actually now that I've tested my metadata server PR without this change and it worked. So I believe this is not related. I'll close this PR


[DO NOT MERGE] ndm_reset debug

./util/dvsim/dvsim.py -t vcs -w  fsdb hw/top_earlgrey/dv/chip_sim_cfg.hjson -i chip_rv_dm_ndm_reset_req -s 1 -r 1
The SV side issues ndm_reset and waits for the life cycle controller to reset.
Once it does, it issues another dummy write (sets ndm_reset to 1 again), waits for life cycle controller to initialize again, and then finally de-asserts ndm_reset.
What happens is that when the dummy write is issued, the rv_dm dmi has no clock. So this means the transaction is deposited in the FIFO, but no one actually acts on it.  However, the response at this point is "OKAY" instead of "BUSY".  So all the retry code on the DV side doesn't activate (the DV side very helpfully also issues an interface is clear). This means subsequent transactions actually seem to get ..confused. As a result, in this test at least, the ndm reset request never gets de-asserted and the test resets forever and ever.
I think the continuous reset is just a symptom, what's less clear to me is what "should" happen when a dmi transaction is issued as the dmi has no ability to respond at all.  It feels like in the WaitforWrite state the status should already be BUSY.

Closed this since the PR is not needed anymore.


Fix typo (MGS -> MSG) in README.md

I spend 10 minutes to solve the problem because i've copied MGS instead of MSG.

Thanks!


Why there are 10 slots in the buffer?

Hi.
I'm trying to understand RAdam implementation:
defaults = dict(..., buffer=[[None, None, None] for _ in range(10)])
...
for group in self.param_groups:
    for p in group['params']:
        ...
        state = self.state[p]
        ...
        state['step'] += 1
        buffered = group['buffer'][int(state['step'] % 10)]
        if state['step'] == buffered[0]:
            ...  # Reuse rectification constants computed during handling of a previous param.
        else:
            ...  # Compute rectification constants for a new step.

To me, it looks like state['step'] is steadily incremented by one, and only the values for a previous step can possibly be reused, so a buffer with a capacity of one would be sufficient. But the actual buffer has 10 entries. What for?

Thanks for asking : -)
In some applications, some parameters may be fixed in some epoches (e.g., pre-training). I feel buffering ten entries costs almost nothing (comparing to one), but is more flexible in some corner cases.


Add link to source

Fixed in https://github.com/ardc-fair-checklist/ssg/tree/e30f3ddb34bfc54a65c636a16c4183cb0f9233e7


Amcrest AD110: Error: 400, message='Bad Request', url=URL('http://<IP_ADDRESS>:80/cgi-bin/snapshot.cgi?channel=1')

I know that the Amcrest AD110 is not officially supported, but ...  :-)
Home Assistant Core 2022.6.7
Home Assistant Supervisor 2022.05.3
Home Assistant OS 8.2
Dahua Integration: 0.9.40
FYI: The problem has existed for a while.
`Logger: aiohttp.server
Source: custom_components/dahua/client.py:722
Integration: Dahua (documentation, issues)
First occurred: 17:05:09 (15 occurrences)
Last logged: 17:18:10
Error handling request
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/aiohttp/web_protocol.py", line 435, in _handle_request
resp = await request_handler(request)
File "/usr/local/lib/python3.9/site-packages/aiohttp/web_app.py", line 504, in _handle
resp = await handler(request)
File "/usr/local/lib/python3.9/site-packages/aiohttp/web_middlewares.py", line 117, in impl
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 60, in security_filter_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 100, in forwarded_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 79, in ban_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 220, in auth_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 137, in handle
result = await result
File "/usr/src/homeassistant/homeassistant/components/camera/init.py", line 741, in get
return await self.handle(request, camera)
File "/usr/src/homeassistant/homeassistant/components/camera/init.py", line 759, in handle
image = await _async_get_image(
File "/usr/src/homeassistant/homeassistant/components/camera/init.py", line 179, in _async_get_image
if image_bytes := await camera.async_camera_image(
File "/config/custom_components/dahua/camera.py", line 233, in async_camera_image
return await self._coordinator.client.async_get_snapshot(self._channel_number)
File "/config/custom_components/dahua/client.py", line 74, in async_get_snapshot
return await self.get_bytes(url)
File "/config/custom_components/dahua/client.py", line 722, in get_bytes
response.raise_for_status()
File "/usr/local/lib/python3.9/site-packages/aiohttp/client_reqrep.py", line 1004, in raise_for_status
raise ClientResponseError(
aiohttp.client_exceptions.ClientResponseError: 400, message='Bad Request', url=URL('http://<IP_ADDRESS>:80/cgi-bin/snapshot.cgi?channel=1')
OK there is a problem with the URL for the snapshot.cgi but what problem exactly? I have no way of changing the URL.
The setting auto or live for camera_view doesn't matter either.
`type: grid
square: false
columns: 1
cards:

type: entities
entities:

entity: binary_sensor.ad110_haustur_audio_mutation
name: Audio Mutation
entity: binary_sensor.ad110_haustur_button_pressed
name: Button Pressed
entity: binary_sensor.ad110_haustur_call_no_answered
name: Call No Answered
entity: binary_sensor.ad110_haustur_door_status
name: Door Status
entity: binary_sensor.ad110_haustur_invite
name: Invite
entity: binary_sensor.ad110_haustur_motion_alarm
name: Motion Alarm
entity: binary_sensor.ad110_haustur_video_loss
name: Video Loss
title: AD110 Haustür

show_state: true
show_name: true
camera_view: auto
type: picture-entity
entity: camera.ad110_haustur_main`

Maybe you can solve the problem, because otherwise the integration works with the Amcrest AD110.
If the error has already been mentioned here and I missed it: Sorry.

Same issue here, as well. Using the url in browser to take snapshot works, so maybe something with the request is off?

I see a similar error with the regular amcrest integration for one of my cameras. I suspect that it's an issue with Wifi signal but can't be sure.

I just bought the AD110 and am new to Home Assistant.  I have the dahua folder in HA but I'm not getting ant live stream.  I am sure I have to change something somewhere but I don't know where to start.  Any help is much appreciated!!

Same issue on latest core as well. Anyone have a way they updated this or solved?
TIA


How to add a mamba backbone as an encoder for training

Hey @ljb-1! Thanks for the question, at the moment it's not supported out of the box. You can make your own backbone based on timm_universal and/or mix_transformer backbones.

Hey @ljb-1,
Mamba out encoders are supported with the latest main branch, check this out with the following encoders (add tu- prefix to names)
mambaout_base
mambaout_base_plus_rw
mambaout_base_short_rw
mambaout_base_tall_rw
mambaout_base_wide_rw
mambaout_femto
mambaout_kobe
mambaout_small
mambaout_small_rw
mambaout_tiny


Add documentation for Optimum Furiosa

What does this PR do?

As per title.
Before submitting

[ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
[ ] Did you make sure to update the documentation with your changes?
[ ] Did you write any new necessary tests?

Doc build failing, need to find a way to install furiosa-libnux

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

the reference and how-to-guide sections are also showing FuriosaAI. Any idea?

the reference and how-to-guide sections are also showing FuriosaAI. Any idea?

Yeah there was a bug that I just fixed.
I'm also reverting to "FURIOSA" in the side bar as "FURIOSAAI" looks a bit ugly IMO.

@mht-sharma It should be better now. LEt me know if it's okay to merge!


"Toggle Details" should have a setting to be enabled/disabled/toggled

Describe the feature you'd like
I would like to not have to click "Toggle Details" in order to show snippets of text; I would prefer that these snippets are always shown. Others may prefer that snippets are always off, or that they be toggle-able. Therefore, I am proposing that a new setting be added so that the following can be done on a user and/or instance level:

Always show snippets
Always hide snippets
Show a toggle button; default to open
Show a toggle button; default to closed

Describe the benefits this feature would bring to BookStack users
Not having to click "Toggle Details" on every single page load. Providing more context by default and with less work. Better representing the preferences of users.
Additional context

As of v0.26 the "Toggle Details" button will remember it's state so will therefore close this.


serverpod_cli null check thrown for cmdLanguageServer _printUsage

Describe the bug
The parser.commands[cmdLanguageServer] are apparently not defined yet, so line 407 in serverpod_cli.dart throws a null check operator on null value error.
To Reproduce
Steps to reproduce the behavior:

Clone the repo.
Run util/pub_get_all
Add export SERVERPOD_HOME=/path/to/serverpod to profile and (source the profile or open a new shell).
Run serverpod with no arguments.
Note the following exception thrown:

Yikes! It is possible that this error is caused by an internal issue with the
Serverpod tooling. We would appreciate if you filed an issue over at Github.
Please include the stack trace below and describe any steps you did to trigger
the error.
https://github.com/serverpod/serverpod/issues
Null check operator used on a null value
#0      _printUsage (file:///Users/tom/serverpod/tools/serverpod_cli/bin/serverpod_cli.dart:407:39)
#1      _main (file:///Users/tom/serverpod/tools/serverpod_cli/bin/serverpod_cli.dart:375:3)
<asynchronous suspension>
#2      main.<anonymous closure> (file:///Users/tom/serverpod/tools/serverpod_cli/bin/serverpod_cli.dart:42:9)
<asynchronous suspension>
#3      main (file:///Users/tom/serverpod/tools/serverpod_cli/bin/serverpod_cli.dart:39:3)
<asynchronous suspension>

Expected behavior
Running serverpod without arguments or with an incomplete argument should generate a help message and not throw.
Screenshots
If applicable, add screenshots to help explain your problem.
Serverpod versions

CLI Version: 1.1.0 cloned today from main
Library version: 1.1.0 cloned today from main

Platform information
M1 MacBook Pro, macOS Ventura 13.4 (22F66)
Temporary Fix
I was able to fix this on my local clone using a null guard, like this:
  if (parser.commands[cmdLanguageServer] != null) {
    _printCommandUsage(
      cmdLanguageServer,
      'Launches a serverpod language server communicating with JSON-RPC-2 intended to be used with a client integrated in an IDE.',
      parser.commands[cmdLanguageServer]!,
    );
  }

And also by removing the bang, like this:
    _printCommandUsage(
      cmdLanguageServer,
      'Launches a serverpod language server communicating with JSON-RPC-2 intended to be used with a client integrated in an IDE.',
      parser.commands[cmdLanguageServer],
    );

Fixed in PR, thanks for the report!

Fixed on main.


Add routing of the configuration to make the PSI API integration configurable from an external consumer

Feature Description
An abstraction layer for routing the configuration throughout the entire pipeline was already partially built. However, right now, it is not directly being fed by an external consumer, and there is no way to provide the configuration from the outside.
An external consumer like the PX for WP plugin should be able to provide a full configuration when instantiating the pipeline, and potentially even filter it after instantiation or while it is running via the events subsystem.

Working on PR for this. I'll create a draft PR today.


Removes CustomerioSmsBroadcast

Removes customerio-sms-broadcast webhook and related resources, as Gambit Conversations POST /v1/import-message has been deprecated (https://github.com/DoSomething/gambit-conversations/pull/294)

Updates integration test as CustomerIoGambitBroadcastWorker.test.js

Updated! Was hoping the Procfile change would remove the queue from the RabbitMQ Management list of queues. Any idea how we remove it from there?

It would have to be removed manually. Since it was created as a persistent queue. Removing it from the Procfile just stops Blink from trying to re-assert it (it would fail because it no longer exist in the codebase) in case we manually deleted it.


CORONA-Boom Town

Describe the project you want to add with tech stack

The project helps us to check Why outbreaks like coronavirus spread exponentially, and how to “flatten the curve”.
I will be using Vallina javascript to implement this idea.
We implement a visual effect using nearest-neighbor graphs. In these graphs, the nodes (vertices) move, and graph links update. We test different nearest neighbor graphs like KNN, Gabriel and XNN and discuss aspect and time complexity.
Expected behavior

This simulation will help us to detect the exponential growth of the COVID-19 virus.
All the behavior of infected and non-infected will be seen respectively.
Screenshots (optional)

Additional context (optional )

@pranjay-poddar Please assign me as GSSOC 23 contributor to add a new project in this repository.


TLS fix

Changes on the TLS constructor and connection methods of Connector.ts
Added one test to check. To connect to a mikrotik that doesn't have a certificate, use the ciphers: 'ADH-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384'tls option.

This is gonna take a while, I need it written in a way Typescript can compile so it might need some adaptation.

Nicely done!
Quick note though, try not to commit distributable code (a.k.a. dist/ folder) with the source code, check the .gitignore if it's there.
Regardless, good work! Merged!


Fixes #10330 : Revamp entity tags style and added icon based on it's type

Describe your changes:
Fixes #10330

I worked on Revamp entity tags style and added icon based on it's type
Also the styling of table columns tags

Type of change:

[ ] Bug fix
[x] Improvement
[ ] New feature
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation

Checklist:

[x] I have read the CONTRIBUTING document.
[x] My PR title is Fixes <issue-number>: <short explanation>
[ ] I have commented on my code, particularly in hard-to-understand areas.
[ ] For JSON Schema changes: I updated the migration scripts or explained why it is not needed.

@chirag-madlani  No we are not sorting them as to maintain the order with the databas!


ISPN-7917 REST with ssl configuration template

https://issues.jboss.org/browse/ISPN-7917

Merged, thanks


Add support for probabilistic boolean queries

Currently, only set-based probabilistic queries are implemented and tested.
It should not be too hard to also support boolean queries, given that we already support set-based queries.
This would make it possible to solve queries such as query() :- Z(y) where y is existentially quantified.

@tgy this has been solved, hasn't it?

It seems to be! I added a small test here https://github.com/NeuroLang/NeuroLang/pull/631 and it passes


Web2 Social login

Part of #460

[ ] https://joy.id/
[ ] https://sui.io/zklogin
[ ] https://github.com/zkemail
[ ] Github
[ ] Telegram

I'll try this task

@jolestar I drew a data flow diagram using Rooch to implement zkLogin (privacy is not guaranteed):

Rooch implements the OAuth login process:

The user authenticates their identity through the OAuthProvider and obtains a JWT.

Using the RoochSDK, the user generates a zero-knowledge proof that they possess a valid JWT without revealing the content of the JWT. This proof includes a proof and some public signals, such as nonceValid, jwtValid, and roochAddress.

The user creates a CreateSessionKey transaction using the RoochSDK, including the public key, zero-knowledge proof, public signals, expiration time, and the scopes that define the modules on the chain that the session key can access.

The RoochSDK sends the transaction to the RoochServer. The RoochServer uses the JWTZKProofAuthValidator validator to validate this transaction. If the transaction is invalid, the validator will throw an error.

If the transaction is valid, the RoochServer stores the public key and the associated scopes in the user's Rooch account. The user retains the private key for subsequent transactions.

The user can use their private key to initiate new transactions via the RoochSDK within the defined scopes until the Session Key expires.

This process ensures that users can authenticate their identity on the Rooch chain using their OAuthProvider account while protecting their privacy. Zero-knowledge proof allows users to prove that they have a valid JWT without revealing the content of the JWT. In addition, by using the Session Key and defining scopes, users can initiate multiple transactions over a period of time without having to authenticate their identity each time, and the access to the modules on the chain is controlled.

The zero-knowledge proof circuit should include the following logic:

JWT Verification: The circuit needs to verify the validity of the JWT. This could include decoding the JWT, verifying the signature, checking the issuer and subject, etc.

Nonce Verification: The circuit needs to verify the validity of the nonce. This typically means checking if the nonce matches the expected value.

Rooch Address Generation: The circuit needs to generate a Rooch address based on the JWT. This could involve using certain parts of the JWT (such as the user ID) as input, and then generating the address through some hash or encoding algorithm.

Public Signal Generation: The circuit needs to generate some public signals, such as nonceValid, jwtValid, and the generated roochAddress. These signals can be verified externally to the circuit to ensure the correctness of the zero-knowledge proof.

The zero-knowledge proof circuit specification:
The zero-knowledge circuit should accept the following input parameters:

JWT: The JSON Web Token obtained by the user from the OAuthProvider.

OAuthProvider Public Key: The public key used to verify the JWT signature.

Issuer Public Key: The public key used to verify the JWT issuer.

sequence_number: The sequence_number of the user's Rooch account, used to generate public signals and prevent replay attacks.

The zero-knowledge circuit should perform the following operations:

Verify the signature using the OAuthProvider's public key and the header and payload of the JWT.

Verify the issuer using the predefined issuer public key.

Verify whether the JWT has expired.

Generate roochAddress based on the information in the JWT.

Generate some public signals, such as sequence_number, jwtValid, and roochAddress.

The zero-knowledge circuit should output the following parameters:

Zero-knowledge proof: A proof that the user has a valid JWT, without revealing the content of the JWT.

Public signals: Including sequence_number, jwtValid, and roochAddress.

Example Implements:
    include "../../node_modules/circomlib/circuits/eddsaproof.circom";
    include "../../node_modules/circomlib/circuits/comparators.circom";
    include "../../node_modules/circomlib/circuits/merklehash.circom";

    template VerifyJWT() {

      signal input jwt;
      signal input oauthPubKey;
      signal input issuerPubKey;
      signal input sequence_number;

      // 1. 验证签名
      component verifySignature = EDDsaVerify();
      verifySignature.pubKey <== oauthPubKey;
      verifySignature.signature <== jwt.signature;
      verifySignature.msgHash <== jwt.header && jwt.payload;

      // 2. 验证签发者
      component verifyIssuer = EdDSAPubKeyEq();
      verifyIssuer.in[0] <== issuerPubKey;
      verifyIssuer.in[1] <== jwt.header.iss;

      // 3. 验证是否过期
      component isExpired = LessThan(64);
      isExpired.in[0] <== jwt.payload.exp;
      isExpired.in[1] <== now;

      // 4. 生成roochAddress
      component generateAddress = Pedersen(21888242871839275222246405745257275088548364400416034343698204186575808495617);
      generateAddress.in <== sequence_number;

      // 5. 生成公共信号
      signal jwtValid = verifySignature.out && verifyIssuer.out && !isExpired.out;
      signal roochAddress = generateAddress.out;

      // 输出
      signal output zkProof;
      signal output sequence_number;
      signal output jwtValid;
      signal output roochAddress;
    }

    component main {public} = VerifyJWT();

I feel like using Halo2 from zcash might be a more succinct solution in the future?
https://github.com/zcash/halo2

I feel like using Halo2 from zcash might be a more succinct solution in the future?
https://github.com/zcash/halo2

I considered snarkjs because the game Dark Forest also uses this library. snarkjs uses circom to write verification circuits and compile them into wasm files, which can generate proofs directly in the browser.
I don’t know much about Halo2, can you elaborate on the advantages of Halo2?

I feel like using Halo2 from zcash might be a more succinct solution in the future?
https://github.com/zcash/halo2

I considered snarkjs because the game Dark Forest also uses this library. snarkjs uses circom to write verification circuits and compile them into wasm files, which can generate proofs directly in the browser.
I don’t know much about Halo2, can you elaborate on the advantages of Halo2?

Halo2 is a PLONKish arithmetization scheme zero-knowledge proof which produces larger size of proofs than Groth16, does not require trusted setups and can be used to customize custom gates and lookup tables.
There's an article describing the efficiency of each ZKP frameworks, PLONKish, R1CS, etc.:
https://ethresear.ch/t/benchmarking-zkp-development-frameworks-the-pantheon-of-zkp/14943
Here's an implementation using WASM with Halo2:
https://github.com/axiom-crypto/halo2-wasm/tree/main

I may help design with you together for this issue. @yubing744

@feliciss Does Sui use Halo2 or circom? I found that zkemail(https://github.com/zkemail/) also tried to adopt Halo2

@jolestar sui supports Zero-knowledge proof verification (Groth16)

RSA verification circuit implementation reference:

https://github.com/zkp-application/circom-rsa-verify
https://github.com/zkemail/zk-email-verify/blob/main/packages/circuits/helpers/rsa.circom
https://github.com/dmpierre/zkrsa

@jolestar @feliciss I have completed the JWT validation circuit and passed the unit test.
https://github.com/yubing744/rooch/blob/feature-owen-zklogin-circuit-verify/sdk/zklogin/circuits/zklogin/tests/jwt.test.ts

@feliciss Does Sui use Halo2 or circom? I found that zkemail(https://github.com/zkemail/) also tried to adopt Halo2

No. Sui uses Groth16 that's different from PLONKish implementation. Sorry for the late reply.

@feliciss Does Sui use Halo2 or circom? I found that zkemail(https://github.com/zkemail/) also tried to adopt Halo2

No. Sui uses Groth16 that's different from PLONKish implementation. Sorry for the late reply.

circom also supports generating Groth16 proofs. We plan to implement Rooch’s Groth16 verification with reference to Sui.


Version chooser regression

About
The version chooser is missing.
Rendering the reference documentation with the updated theme (version 0.28.0) revealed this regression, so the release has been yanked from PyPI.

Reference

https://github.com/crate/crate/pull/14487

e9cdfe17170 will fix the regression on behalf of GH-406.


Update Team Page to include Board and Committees

On the Team Page (https://suncoast.io/team)
Beside Staff, Volunteers, and Advisory Board... add Alumni Committee and Board of Directors. Update Advisory Board to Advisory Committee. Please put them in order of Staff, Board of Directors, Advisory Committee, Alumni Committee, and Volunteers.
THANK YOU!

@ambethia Checking in on this


Tweak the size of the multiline text edit popup dialog

This caps its size on large displays. This in turn prevents lines from becoming very long, which could hamper text readability.
Preview
Previews below were taken with a window size of 2560×1440 at 100% scaling.
Before

After

Thanks!


Block encoding bloq

Hopefully addressing the comment from #392 (which I will close in favour of this). Also rips out BlackBoxSelect and BlackBoxPrepare from #300, and uses #502.
This is a first step towards implementing some of the higher level block encodings like this

I'll follow up with bloqs for the above picture but here I just added a BlockEncodingBloq. Similar to #300 I added a BlackBoxBlockEncoding(Bloq) which expects a SelectOracle and PrepareOracle Bloq. Unlike the picture above we define 3 registers (two ancilla registers and a system register). These are then partitioned according to the details of Select and Prepare. Ideally I think I'd like just two in keeping with the _a and _s convention often used, I guess another Parition could achieve this in Prepare. I should also move Select and Prepare to their own files (or the existing select_and_prepare).

Actually there's an issue here which is select may expect control registers (which may be prepared in junk during prepare). I need to think about how to wire these up properly.

Actually there's an issue here which is select may expect control registers (which may be prepared in junk during prepare). I need to think about how to wire these up properly.

Actually, my thinking was wrong here. The control registers internal to select are separate from the control_registers abstract property which are for controlling the whole bloq.


golang 1.18.1

Codecov Report

Merging #250 (963ab09) into main (024b8ed) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #250   +/-   ##
=======================================
  Coverage   60.70%   60.70%
=======================================
  Files          63       63
  Lines        3980     3980
=======================================
  Hits         2416     2416
  Misses       1230     1230
  Partials      334      334

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 024b8ed...963ab09. Read the comment docs.


Consider using pionxzh/wakaru instead of/alongside webcrack

I only came across webcrack, wakaru, and this project today; but in some basic tests I was doing between webpack and wakaru, I found that the latter seemed to produce much nicer output by default when used on webpacked files:

https://github.com/pionxzh/wakaru

Javascript decompiler, unpacker and unminify toolkit

I wonder if it would make a good addition to this humanify tool?

That's a great addition, thanks! I was searching for similar tools like webcrack, but I think I've missed wakaru. I'll definitely give it a try!

It seems that wakaru does not yet have a (functioning) npm package, which makes usage harder. I'll add an issue to their repo about it. I think I can come up with a PoC without a package too, but for official support it would be better to have a sane way to have it as a dependency 😅

That's a great addition, thanks! I was searching for similar tools like webcrack, but I think I've missed wakaru

@jehna No worries :) Yeah, I was looking pretty deep in this space only like 4 months ago and didn't come across webcrack or wakaru, so was exciting to be able to update my gist with a bunch of new resources today!

I think I can come up with a PoC without a package too, but for official support it would be better to have a sane way to have it as a dependency

@jehna Yeah, definitely agree.

NPM package has been released. You can check the README for more information.
Originally posted by @pionxzh in https://github.com/pionxzh/wakaru/issues/39#issuecomment-1817901544

https://github.com/pionxzh/wakaru#-using-the-api

📦 Using the API
npm install @wakaru/unpacker @wakaru/unminify
# or
pnpm install @wakaru/unpacker @wakaru/unminify
# or
yarn add @wakaru/unpacker @wakaru/unminify

@wakaru/unpacker
import { unpack } from '@wakaru/unpacker';

const { modules, moduleIdMapping } = await unpack(sourceCode);
for (const mod of modules) {
  const filename = moduleIdMapping[mod.id] ?? `module-${mod.id}.js`;
  fs.writeFileSync(outputPath, mod.code, 'utf-8');
}

@wakaru/unminify
import { runDefaultTransformation, runTransformations } from '@wakaru/unminify';

const file = {
  source: '...', // source code
  path: '...',   // path to the file, used for advanced usecases. Can be empty.
}
// This function will apply all rules that are enabled by default.
const { code } = await runDefaultTransformation(file);

// You can also specify the rules to apply. Order matters.
const rules = [
  'un-esm',
  ...
]
const { code } = await runTransformations(file, rules);

You can check all the rules at /unminify/src/transformations/index.ts.
Please aware that this project is still in early development. The API might change in the future.
And the bundle size of these packages are huge. It might be reduced in the future. Use with caution on the browser (Yes, like the playground, it can run on the browser).

wakaru certainly didn't help de obfuscating code.

@Acters Wakaru is specifically not a de-obfuscator. It's an un-minimiser.

I say we wait for the wakaru package to mature before implementing it.

@Acters I would personally suggest running both against non-obfuscated code and comparing/contrasting their output. I haven't checked for a while now, but at the time I made this suggestion, wakaru's output on non-obfuscated code was drastically better. I know there has been a bunch of improvement in webcrack since then; but given I believe this lib is pinned to an old version anyway, i'm not sure those improvements would even be seen here.

Thank you for your feedback on Wakaru. I'd like to address some points you raised:

Unrolling: Wakaru uses aggressive destructuring to improve variable names. However, when combined with prettier, it can lead to multi-line formatting that might not be ideal. We appreciate any samples or insights you can provide to help with this refinement.
Formatting: We understand that prettier's output may not always be ideal. This is why we are exploring integration with other formatting tools to offer better flexibility and results. We have ongoing branches and PRs addressing this concern.

Wakaru is primarily a rule-based unminifier, not a deobfuscator. Our documentation should have highlighted this more clearly. Users have the flexibility to pick and choose rules that suit their needs, and they can remove those they find unnecessary (including prettier).
We are integrating large-scale snapshot testing to better understand Wakaru's impact on larger codebases. This will help us fine-tune the rules and improve overall functionality.

I was thinking about this more today, and given the current usage of webcrack is pretty localised within the unminify function; I could imagine it being relatively straightforward to lift that into an 'unbundle plugin' sort of thing (similar to how there are currently different LLM plugins), and then allowing wakaru to be another option:
https://github.com/jehna/humanify/blob/64a1b9511d2e42b705df0858674eab1f5e83dd0d/src/unminify.ts#L6-L13


Apps not uploaded to intune when there are no existing apps in intune

If there are no win32 apps defined in intune already, the pipeline does not work.
This might be related to line 268-269 in test-applist.ps1 where a graph call to intune is made, but if the result is $null it is asumed to be an error.
Workaround: manually create a first win32 app in intune.

Hi Kurt,
could you post an example of the test-applist.ps1 output so I can help troubleshoot?
The applist.json should be the be-all-end-all for apps being uploaded, so the win32 already existing shouldn't be needed.

Hi Kurt,
As for the following code part:

This covers if the onboarded app could be found in the specified app source.
If there's no existing instance of the given application in Intune, by the name you've specified in the appList.json file, the $Win32Apps variable would be empty and the else statement should pick that up.
Is that not what you're experiencing?


adds all monitoring samples

These tests are failing because of an issue in Stackdriver Monitoring. Unfortunately there's not a straightforward way to fix this without switching everything over to a different project.


[HUDI-1865] Make embedded time line service singleton

The filesystem view takes too much memory, make it process singleton,
the flink write task may use the view multiple times in one process.
Tips

Thank you very much for contributing to Apache Hudi.
Please review https://hudi.apache.org/contributing.html before opening a pull request.

What is the purpose of the pull request
(For example: This pull request adds quick-start document.)
Brief change log
(for example:)

Modify AnnotationLocation checkstyle rule in checkstyle.xml

Verify this pull request
(Please pick either of the following options)
This pull request is a trivial rework / code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end.
Added HoodieClientWriteTest to verify the change.
Manually verified the change by running a job locally.

Committer checklist

[ ] Has a corresponding JIRA in PR title & commit

[ ] Commit message is descriptive of the change

[ ] CI is green

[ ] Necessary doc changes done or have another open PR

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

Codecov Report

Merging #2899 (94ff012) into master (3867676) will decrease coverage by 21.83%.
The diff coverage is n/a.

@@              Coverage Diff              @@
##             master    #2899       +/-   ##
=============================================
- Coverage     69.75%   47.91%   -21.84%
- Complexity      375     3422     +3047
=============================================
  Files            54      488      +434
  Lines          1997    23529    +21532
  Branches        236     2501     +2265
=============================================
+ Hits           1393    11274     +9881
- Misses          473    11274    +10801
- Partials        131      981      +850

Flag
Coverage Δ
Complexity Δ

hudicli
39.53% <ø> (?)
220.00 <ø> (?)

hudiclient
∅ <ø> (∅)
0.00 <ø> (ø)

hudicommon
50.41% <ø> (?)
1976.00 <ø> (?)

hudiflink
59.67% <ø> (?)
537.00 <ø> (?)

hudihadoopmr
33.33% <ø> (?)
198.00 <ø> (?)

hudisparkdatasource
73.33% <ø> (?)
237.00 <ø> (?)

hudisync
46.73% <ø> (?)
144.00 <ø> (?)

huditimelineservice
64.36% <ø> (?)
62.00 <ø> (?)

hudiutilities
9.36% <ø> (-60.40%)
48.00 <ø> (-327.00)

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

Hi @vinothchandar Can you take a look, this PR is small and we need this in emergency.

This change is introducing another instance which will double the overhead. What benefits do you see by doing this ?

Would it though? I mean, its just an object reference right? I am more concerned about the timeline not being refreshed across instantiations of writeclient from the same jvm

AbstractHoodieClient

They are not singleton, as i said, each writer task takes a AbstractWriteClient, and there may be multiple write tasks in one process.
I agree we should avoid adding state in helper methods, but it's fine for singleton pattern.

Looking at the usage of createEmbeddedTimelineService(), there are broadly two.

AbstractHoodieClient can start (during intiialization) and stop (during close()) the embedded server view. If we return the same static instance, it will be tied to the same underlying file system view which may be stale i.e may not see the new commit. See createInMemoryFileSystemView() in FileSystemViewManager for e.g which is initialized during the timeline server creation.
DeltaStreamer in DeltaSync#reInitWriteClient actually keeps a single instance of the embedded timeline server. it would n't reinit each time.

Overall, can we think through any side effects of this change?

Yes, so we should reload the active timeline each time we fetch the filesystem view from the meta client, the TimelineService would check the timeline hashcode from client right ?

Looking at the usage of createEmbeddedTimelineService(), there are broadly two.

AbstractHoodieClient can start (during intiialization) and stop (during close()) the embedded server view. If we return the same static instance, it will be tied to the same underlying file system view which may be stale i.e may not see the new commit. See createInMemoryFileSystemView() in FileSystemViewManager for e.g which is initialized during the timeline server creation.
DeltaStreamer in DeltaSync#reInitWriteClient actually keeps a single instance of the embedded timeline server. it would n't reinit each time.

Overall, can we think through any side effects of this change?

Yes, so we should reload the active timeline each time we fetch the filesystem view from the meta client, the TimelineService would check the timeline hashcode from client right ?

Yes, this is already happening in RemoteHoodieTableFileSystemView.

@vinothchandar Thanks, i have added the config options in the PR, i'm also wondering the details how the filesystem view was synced with a new client instant time request, could you give some help @bvaradar ?

@danny0405 : The logic to determine timeline staleness in the timeline server is in https://github.com/apache/hudi/blob/master/hudi-timeline-service/src/main/java/org/apache/hudi/timeline/service/RequestHandler.java#L100
Basically, the timeline-server relies on the last timeline instant known to the client to determine if it is holding a stale copy

@danny0405 : Agree with @vinothchandar  in what this change would accomplish. If we have incremental syncing enabled and move timeline server hosting to Job Manager, we will get the full benefit of storage RPC call reductions here.
With this change, the reusability  is limited to tasks running within a Task Manager at the scope of a single Hudi commit. For the next Hudi commit, a full resync of file-system view will happen.
Now for the incremental timeline sync, we definitely need to enable this but we need to see if this issue  is still present in master  using a  long running job and get to the root cause.

@danny0405 : Agree with @vinothchandar in what this change would accomplish. If we have incremental syncing enabled and move timeline server hosting to Job Manager, we will get the full benefit of storage RPC call reductions here.
With this change, the reusability is limited to tasks running within a Task Manager at the scope of a single Hudi commit. For the next Hudi commit, a full resync of file-system view will happen.
Now for the incremental timeline sync, we definitely need to enable this but we need to see if this issue is still present in master using a long running job and get to the root cause.

I saw that the timeline in RemoteHoodieTableFileSystemView was initialized in its constructor, and never refresh again for its lifecycle, so if a got a long running timeline service there, the RemoteHoodieTableFileSystemView expects to be always behind right ? Different write task still got duplicate sync request even if some write task already triggers the sync.

@danny0405 : Agree with @vinothchandar in what this change would accomplish. If we have incremental syncing enabled and move timeline server hosting to Job Manager, we will get the full benefit of storage RPC call reductions here.
With this change, the reusability is limited to tasks running within a Task Manager at the scope of a single Hudi commit. For the next Hudi commit, a full resync of file-system view will happen.
Now for the incremental timeline sync, we definitely need to enable this but we need to see if this issue is still present in master using a long running job and get to the root cause.

I saw that the timeline in RemoteHoodieTableFileSystemView was initialized in its constructor, and never refresh again for its lifecycle, so if a got a long running timeline service there, the RemoteHoodieTableFileSystemView expects to be always behind right ? Different write task still got duplicate sync request even if some write task already triggers the sync.

The scope is managed at the HoodieTable level. Every Hudi operation like commit, compact will create a new meta client and  new HoodieTable which would create a new FileSystemViewManager object -> which would create a RemoteHoodieTableFileSystemView lazily the first time called. This way, we have one single consistent view for one Hudi operation for clients.

Thanks @vinothchandar for the review, i have addressed your comments ~

@danny0405 we left this hanging a bit. Let me re-review this and get it landing in some form.

@danny0405 please take a look. Once CI passes, we can land.

@danny0405 please take a look. Once CI passes, we can land.

Did not join the discussion. Only merge it follow your suggestion.


npm fails to install restify on Kubuntu 11.10

npm told me to post this, so I did...
flw@ubuntu:~/at/server/scripts$ npm install restify
npm WARN publish-everything<EMAIL_ADDRESS>Adding entire directory to tarball. Please add a
npm WARN publish-everything<EMAIL_ADDRESS>.npmignore or specify a 'files' array in the package.json
npm ERR! Error: Using '>=' with 0.4.x makes no sense. Don't do it.
npm ERR!     at /usr/share/npm/lib/utils/semver.js:94:29
npm ERR!     at String.replace (native)
npm ERR!     at replaceXRange (/usr/share/npm/lib/utils/semver.js:88:25)
npm ERR!     at Array.map (native)
npm ERR!     at replaceXRanges (/usr/share/npm/lib/utils/semver.js:84:17)
npm ERR!     at Array.map (native)
npm ERR!     at toComparators (/usr/share/npm/lib/utils/semver.js:66:8)
npm ERR!     at Object.validRange (/usr/share/npm/lib/utils/semver.js:138:11)
npm ERR!     at testEngine (/usr/share/npm/lib/utils/read-json.js:244:44)
npm ERR!     at /usr/share/npm/lib/utils/read-json.js:183:10
npm ERR! Report this entire log at http://github.com/isaacs/npm/issues
npm ERR! or email it to<EMAIL_ADDRESS>npm ERR!  ;)

Seems to be quite popular these days. :)


NeoForge: Migrate UserCapability to use Data Attachment API

This would fix LuckPerms/LuckPerms#3963. I have built the jar on my own and tested locally; clients can join the server again now.
However, I strongly believe that this is not the proper way to do it. In particular, to register a data attachment type, I must have to register a new listener to the modBus found in NeoForgeLoaderPlugin - which, requires ugly reflection at this moment.
Thus I left this pull request as draft. Feedbacks are welcomed.

hey if https://github.com/teaconmc/LuckPerms/tree/fix/gh-3963 the newest version it doesn´t worked at me i buid it for my own and get still "Capability has not been initialised" ( modpack server) but on the new neoforge server without all other mods it worked

Looks like there is another issue involved. I'd like to have a discuss with lucko on that, but apparently lucko is busy with other things recently...

hey if https://github.com/teaconmc/LuckPerms/tree/fix/gh-3963 the newest version it doesn´t worked at me i buid it for my own and get still "Capability has not been initialised" ( modpack server) but on the new neoforge server without all other mods it worked

Looks like there is another issue involved. I'd like to have a discuss with lucko on that, but apparently lucko is busy with other things recently...

Hi, how can I help? Happy to be guided by yourself/others on NeoForge best practices - I support a lot of platforms for both LP and spark and it can sometimes be difficult for a single person (me) to keep up with the API changes on each of them.

See comment in #4002, should be fixed by b18717edefabae99a8aa75ee5f49cda2e2ee823c


npm v1.0.2 of this package is broken

package.json included in npm install does not reflect commit fb476c682da02e10c2321a8d4494d6aed601f37f, so main is expected to be source/lifx.js which no longer exists.

This is still broken in the npmjs.org package. What is more, the fix here maintains the same version number, making the working (source) version indistinguishable from the broken (packaged) version.
Can you publish the fixed version up to npmjs.org with an updated semver?

Hey @alisdairjsmyth & @sburr thanks for the heads up, I bumped up the version to 1.0.3 and published a new package. I hope this fixes your issue.

Thanks!


Adjust the path to the shoot CA certificate in the blackbox exporter

How to categorize this PR?
/area monitoring
/kind bug
What this PR does / why we need it:
The blackbox exporter, which is running as a sidecar of the prometheus
in the shoot control plane namespace is used to probe the shoot api server
via its external endpoint. See the red path in the documentation:
https://github.com/gardener/gardener/blob/dc1abd68d3e04679cf810d86086611cbbefa0a66/docs/monitoring/connectivity.md
The TLS connection to the api server does not work which results in
false positive alerts: "ApiServerNotReachable".
The underlying error message is:
unable to load specified CA cert /var/run/secrets/shoot-ca/ca.crt:
  open /var/run/secrets/shoot-ca/ca.crt: no such file or directory

The blackbox exporter does not have access to the CA certificate that
it needs to verify the certificate of the shoot API server, and hence
the TLS connection fails.
This issue is related to the CA rotation epic, which introduced a different
name for the certificate to support the rotation process.
The path is pointing to this volume:
https://github.com/gardener/gardener/blob/dc1abd68d3e04679cf810d86086611cbbefa0a66/charts/seed-monitoring/charts/core/charts/prometheus/templates/prometheus.yaml#L196
where the file name changed from "ca.crt" to "bundle.crt".

Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Release note:

Fix a blackbox exporter configuration issue (path to shoot CA) that resulted in false positive "ApiServerNotReachable" alerts

/assign
/kind regression

Thanks for noticing!
/lgtm
/approve

/cherrypick release-v1.46