Remove cursor while remove non-durable subscription

Motivation
Remove cursor from cursors of managed ledger while remove non-durable subscription.  The data deletion is depends the mark delete position of all cursors, if left a unused cursor in the cursors of managed ledger, data can't be delete as expected.
Modifications
Remove cursor while remove non-durable subscription
Verifying this change
Add new unit test to cover this change
Does this pull request potentially affect one of the following parts:
If yes was chosen, please highlight the changes

Dependencies (does it add or upgrade a dependency): (no)
The public API: (no)
The schema: (no)
The default values of configurations: (no)
The wire protocol: (no)
The rest endpoints: (no)
The admin cli options: (no)
Anything that affects deployment: (no)

Documentation

Does this pull request introduce a new feature? (no)

run java8 tests

run java8 tests
run cpp tests

run java8 tests
run cpp tests

run java8 tests
run cpp tests

run cpp tests
run java8 tests

The failed tests seems related with this change. and @codelipenghui is working on it.

We need an approach related to seek position, current approach will close all consumers while seek position happens,  but this PR will remove the non-durable cursor while all consumers of the non-durable subscription are disconnected. So the reconnected consumer will create a new non-durable cursor using last message id, the unit test can't passed.
It's better to have an approach to handle the position seek, there are two point we need to careful handling:

Consumers acknowledge by outstanding message ids
Avoid consumer to process the outstanding messages

Here, the outstanding messages means messages already dispatched to consumers but the cursor is reset.
For the first point, i think we can use the read position, the read position always larger than the mark delete position except the cursor reset happens, so if the broker ignore the acknowledge requests which the acknowledge position is larger than read position, because there is cursor reset happens.
For the second point, if the consumer cache to many outstanding messages, it's waste of resources if process all of these messages, so it's better to send a cursor reseted notify to consumers before dispatch messages after the cursor reset to consumers, consumers can reset their stat, clear the outstanding messages. currently close consumers also can reset consumer state, clear outstanding messages.
And in https://github.com/apache/pulsar/pull/5278, we also have discussed about the reset consumer state when cursor reset happens.
For this PR, i think we can don't close the readers first, and then create a new PR to improve cursor reset since it might need to change the wire protocol.

@codelipenghui shall we move this to 2.5.1 or 2.6.0 release?

Seems @merlimat already have a PR #5022 related to this issue, so we can close this PR

run java8 tests

run java8 tests

run java8 tests


Allow customization of properties

The script that generates go-releaser files makes assumptions that are not always true. For instance, the container image for the core distribution defaults to "otel/otelcol:v0.35.0", when it should in fact use "otel/opentelemetry-collector:0.35.0"

This may have already been answered at some point, but is there any possibility to use the opentelemetry docker org? That way the name could just be opentelemetry/collector. Not sure if we know who owns that docker org though.

I think people tried to get handle of that org on Docker Hub but were unable to do so: https://github.com/open-telemetry/community/issues/164


add cloud benchmarks

An umbrella issue for push/pull/etc benches for different clouds (mostly for the most important ones, no need to test every weird cloud). Related: https://github.com/iterative/dvc-bench/issues/246

[x] s3
[ ] gs
[ ] azure
[ ] ssh

Also, important to have end-to-end tests that make sure that data didn't get corrupted after push/pull.

As mentioned in https://discord.com/channels/485586884165107732/485596304961962003/831500146772148244, s5cmd might be a good benchmark for s3.

Also, rsync might be a good one for ssh: https://discord.com/channels/485586884165107732/563406153334128681/838714168420073523

Ruslan and I talked about this and decided to prioritize it. Regarding the actual implementation, I was exploring the options and noticed that there is already support for parametrized benchmarks in asv so I guess that would be the way forward: https://asv.readthedocs.io/en/stable/writing_benchmarks.html#parametrized-benchmarks.

The parameter values can be any Python objects. However, it is often best to use only strings or numbers, because these have simple unambiguous text representations.

I think the parameters are displayed in the web UI (?) so it would be better to give parameters as ['s3', 'gs', 'azure'] etc. and give the actual settings (like the url, credentials etc) separately in the setup. We could prepare a JSON file similar to this;
{
   's3': {
        'x': 'y'
   },
   'gs': {
      'y': 'z'
   },
   'azure': {
      'u': 'q'
   }
}

and dump it to remotes.json. Each test would be responsible with configuring those (and probably share a common setup() method to do so). Other than that I don't expect to see major changes on the actual implementation of benchmarks.

@karajan1001 you mentioned that it would be good to have oss benchmarks? Should we reopen this issue?

@pared , As there wasn't so much user with oss, and a new cloud benchmark test took so much time, I don't think we need to add it to the daily tests benchmark. But I still need some tests for the new fs's performance. So maybe the dvc-bench needs to be divided into serval different levels, some of them were those we mainly focused on, while the others would only be tested when some big changes were done or there were users' complain about them.

@karajan1001 this is a good idea, though we probably don't have enough capacity to take care of that soon. Still I think we could aim for that at some point. Would you create issue for that, or can I do that?


Fix TextEdit IME issues

Fixes IME issues in https://github.com/godotengine/godot/issues/86863
Extracted from #86978

IME text is now applied before most actions, so editing text and changing carets won't cause issues.
IME is applied before the right click context menu appears, before using the edit menu for any operation, and when clicking elsewhere in the TextEdit.
Scrolling with the mousewheel is no longer blocked when the IME is open.
Updating the IME will adjust the view to the caret and update the IME window position.

Likely fixes #83795. I tested the big PR and found that the issue I deducted here has been fixed.

Thanks!


Why does naming an interface 'Props' not give correct type-checking with a functional React Native component?

Bug Report

tslint-microsoft-contrib version: ^5.2.1
TSLint version: ^5.11.0
TypeScript version: ^3.1.6
Running TSLint via: VS Code

TypeScript code being linted
import * as React from 'react'
import { View } from 'react-native'

interface Props {
  name: string
  color: string
  price: string
}

const Card = ({ name, color, price }: Props) => (
  <View style={{ backgroundColor: color }} />
)

export default Card

with tslint.json configuration:
{
  "defaultSeverity": "error",
  "extends": [
    "tslint:recommended",
    "tslint-config-standard",
    "tslint-react",
    "tslint-config-prettier"
  ],
  "jsRules": {},
  "rulesDirectory": ["node_modules/tslint-microsoft-contrib"],
  "rules": {
    "ordered-imports": false,
    "object-literal-sort-keys": false,
    "member-ordering": false,
    "jsx-no-lambda": false,
    "jsx-boolean-value": false,
    "interface-name": false,
    "semicolon": false,
    "react-unused-props-and-state": [
      true,
      { "props-interface-regex": "Props$", "state-interface-regex": "State$" }
    ]
  }
}

Actual behavior
Typescript does not pick up on the fact that the color property has been used in the component, and reports: [tslint] Unused React property defined in interface: name [react-unused-props-and-state], at the interface level.
However, if the functional component is changed to a class component, or simply, if the interface is named something other than Props e.g. CardProps - it picks up on the property's usage as expected.
Expected behavior
I would expect the compiler to pick up on the fact that the property is being used within the component, as it does in the other scenarios mentioned above.

Shouldn't TypeScript's --noUnusedParameters flag _(or TSLint's no-unused-variable if you're still using it) pick up on this instead?

Options are:

Disable this rule until it is fixed (I'd propose this one).

Disable this rule on file by file basis with // tslint:disable react-unused-props-and-state  comment
(only if have a ton of class components (that do not use destructuring on this.props/this.state) and can benefit from this rule in general)

Use different naming conventions for class and function in a way so props type name won't match regexp for class components props type name
(worst option because this will introduce unneeded differences in naming, another thing to remember)

Generally you should stick with rules that allow you to avoid errors/mistakes, enforce code style or, be more productive.
react-unused-props-and-state supposed to catch potential mistakes, but in its current state produces false positives for all functional components and may negatively affect productivity.

Closing as a duplicate of #339. Thanks for the discussion folks!


Bypassing MSW does not work with MSW 2.X

This is more of a FYI.
In version 3.1.0, the x-msw-bypass header was introduced in order to have better out of the box support for MSW.
MSW released a new version two weeks ago. Version 2.0 no longer respects the x-msw-bypass header. It seems that this header was considered to be an implementation detail as it's not documented as a breaking change.
MSW 2.0 has a new utility called bypass. Based on the implementation, it seems that the new header that gets bypassed is:
'x-msw-intention': 'bypass'

I'm not suggesting similar support should be implemented for MSW 2.x as existed fro MSW 1.x. I just want to bring this change into your attention.
Alternatives and workarounds
As a workaround, the old header can be respected in userland:
  server.listen({
    onUnhandledRequest(request, print) {
      if (request.headers.get('x-msw-bypass') === 'true') {
        return;
      }

      print.warning();
    },
  })
);

Not sure if the new bypass utility can be used in some way that allows the implementation to not depend on implementation details.

Thanks for this! I'll release an update shortly.

:tada: This issue has been resolved in version 3.2.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[Discussion] who is using nestia in production?

If you're using nestia in production level, can you introduce me?
It would better if you are pasting production homepage URL with logo image.

I am using nestia in prod
here is the repo https://github.com/viaprize/viaprize

If you're using nestia in production level, can you introduce me?
It would better if you are pasting production homepage URL with logo image.

what do you think of swagger code gen

The swagger code gen means something like this?
https://nestia.io/docs/migrate/

I'm currently testing it in production, I have no url to provide as it's all in private
But for what I could see Nestia is really helpful for what the controller decorator provide, such as data type transformation/validation
I'm still not sure about the sdk for swagger as currently there is some lib that create DTO with Swagger decorator all extracted from your db schema (in my POV that seem as a more secure way of keeping the docs updated as there is no human manipulation) and the sdk look painful to maintain for docs
Except for the swagger part that is personnal, when configured nestia can't be push to production without manual modification
In production we don't install the package in devDendencies, and you have to run the prepare command to make nestia work on service start, if ts-patch and typescript are not moved to dependencies, your service will not be able to start in production
in my POV typescript should not be in production, so maybe there is something to improve here ?
If you have some information about any of the point I wrote, I would be happy to discuss about it, maybe it's only me that missed some step in your documentation

Yes, splitting it into transformer and runtime packages would be nice.
@Valetek: You can run ts-patch in life mode (without patching). See here.

I'm looking for a swagger code gen too. But in the other direction: Generating swagger spec from your typescript types.
Not sure if it's Typia's purpose to solve this, or this might be a new project...
But it would be cool to have such in a ts-patch transformer, so i could integrate that into the restfuncs ecosystem and give the user a zero-conf experience for downloading openAPI spec.

Some tools provide swagger generating tools, as prisma community do

@samchon we with big team are rewriting the whole Backend using Nestia. Code is not an opensource thugh. We're facing some limitations and bugs, but successfully found solutions for most of them. So we decided to continue

@samchon we with big team are rewriting the whole Backend using Nestia. Code is not an opensource thugh. We're facing some limitations and bugs, but successfully found solutions for most of them. So we decided to continue

If solved some limitations and bugs, please report those bugs or share some knowhows please.

I am looking into using this in Production as well, however, the only issue I am running into is the requirement for explicit return types on Controller Methods. Due to us using a query builder that automatically handles return type inference for us we avoid having to manually create response types for each controller. For me to get the team on board it would be easier if the explicit return type wasn't required.

I am looking into using this in Production as well, however, the only issue I am running into is the requirement for explicit return types on Controller Methods when generating swagger docs. Due to us using a query builder that automatically handles return type inference for us we avoid having to manually create response types for each controller. For me to get the team on board it would be easier if the explicit return type wasn't required.

Upgrade to v3.9.0 patch, then npx nestia swagger will not check implicit type.
However, npx nestia sdk still validates it.

I am looking into using this in Production as well, however, the only issue I am running into is the requirement for explicit return types on Controller Methods when generating swagger docs. Due to us using a query builder that automatically handles return type inference for us we avoid having to manually create response types for each controller. For me to get the team on board it would be easier if the explicit return type wasn't required.

Upgrade to v3.9.0 patch, then npx nestia swagger will not check implicit type.
However, npx nestia sdk still validates it.

Thank you. Is there currently support for allowing the swagger docs to generate the response type based on type inference, without having to specify the type? I believe the only library i've seen do this is TSOA but it'd be amazing if Nestia had this as well.

We are using Nestia in production for our startup:
Recap app
it's a mail client on top of gmail


Resource should be extensible

Currently when AppMaster is requesting resources it provides a Resource class
case class Resource(slots : Int)
case class ResourceRequest(resource: Resource,  workerId: Int = 0, priority: Priority = NORMAL, relaxation: Relaxation = ANY)

However Master and related schedulers may need specific information within the Resource such as SLA, capacity, vmcores, etc. Because schedulers are configurable they should be able to receive Resource parameterized by specific resource information. This will also ease any integration or coexistence within  YARN.

We can reopen this when the requirement is solid and clear.


feat: Add minValues flexibility to the NodePool requirement.

Description
This PR adds minValues flexibility to the NodePool requirement. The new NodePool requirement will be represented as:
type NodeSelectorRequirementWithMinValues struct {
	v1.NodeSelectorRequirement `json:",inline"`
	// MinValues is the minimum number of unique values required to define the flexibility of the specific requirement.
	// +kubebuilder:validation:Minimum:=1
	// +kubebuilder:validation:Maximum:=100
	// +optional
	MinValues *int `json:"minValues,omitempty"`
}

minValues represents the minimum number of unique values that needs to be considered for a particular requirement. So, this value ensures that the scheduler creates NodeClaims meeting this new requirement.
This PR has a dependency on another PR (Karpenter-sigs) that I am going to send out shortly (Update: Here is the PR: https://github.com/nikmohan123/karpenter/pull/1/files). Most of the changes in this PR is about changing the requirement struct to a new one that has flexibility of minValues in it. The main changes are related to lifting the restrictions/truncation logic that we have for the list of InstanceTypes that we send today to CreateFleet and also bypassing the logic that filters the expensive instanceTypes. This is to ensure that the minValues flexibility of the requirement is not compromised.
More details in: https://github.com/kubernetes-sigs/karpenter/pull/966
How was this change tested?
Functional tests added.
Manually tested as well.
Does this change impact docs?

[ ] Yes, PR includes docs updates
[X] Yes, issue opened: #
[] No

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

-2 of 66 (96.97%)  changed or added relevant lines in 4 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.08%) to 82.595%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/fake/utils.go
54
56
96.43%

Totals

Change from base Build<PHONE_NUMBER>:
0.08%

Covered Lines:
5054

Relevant Lines:
6119

💛  - Coveralls


Incorrect instance passed to method

Factory/DefaultAuthenticationListenerFactory.php
 $oauth2Server = $this->createOAuth2Server($services);

        if ($oauth2Server) {
            $listener->setOauth2Server($oauth2Server);
        }

In version 1.0.3 the createOAuthServer returns an instance of ZF\OAuth2\Factory\OAuth2ServerInstanceFactory whereas the setOauth2Server method requires an instance of OAuth2\Server.
Authentication\DefaultAuthenticationListener.php
public function setOauth2Server(OAuth2Server $oauth2Server)

The Listener has been rewritten in later versions of zf-mvc-auth, however zf-apigility/composer.json dev-master still references version 1.0.0 and overriding zf-mvc-auth version in composer results in conflicts.
It would we good if we could just add a verification on the $oauth2Server type and if a OAuth2ServerInstanceFactory object  then invoke it to ensure the correct OAuth2\Server object is passed onto the setOauth2Server method:
https://github.com/matwright/zf-mvc-auth/blob/1.0.4-branch/src/Factory/DefaultAuthenticationListenerFactory.php#L38
Error for reference/
Argument 1 passed to ZF\MvcAuth\Authentication\DefaultAuthenticationListener::setOauth2Server() must be an instance of OAuth2\Server, instance of ZF\OAuth2\Factory\OAuth2ServerInstanceFactory given, called in /vendor/zfcampus/zf-mvc-auth/src/Factory/DefaultAuthenticationListenerFactory.php on line 41 and defined

It would we good if we could just add a verification on the $oauth2Server type and if a OAuth2ServerInstanceFactory object then invoke it to ensure the correct OAuth2\Server object is passed onto the setOauth2Server method:

Sorry, but your suggestion absolutely makes no sense. Having a method that instantiates a new Oauth2Server object, and declares to return such type, under all circumstances MUST return that object. If not, it is a bug that should be fixed, but never worked around like that.

@SvenRtbg the method createOAuth2Server does not return the object it is declared to return.
It is declared to return a OAuth2\Server object or bool false. However in the case I document above, it returns an ZF\OAuth2\Factory\OAuth2ServerInstanceFactory object. So docblock return type is incorrect.
Either the method should return type should include OAuth2ServerInstanceFactory and then a verfication is applied as per comment (its not good practice I know its just an attempt to get the function working) or if it is a bug then it needs pushing upstream to the dependancy (I thinks its Oauth module from memory) but I doubt very much that that will happen any time soon.

There are 4 return statements in the createOAuth2Server() method. Two return false, one returns the result of "new Oauth2Server()" (an alias to \Oauth2\Server), and the last one returns the result of the service manager when asked for $services->get('ZF\OAuth2\Service\OAuth2Server'), if present.
If this doesn't return an instance of Oauth2\Server, then the service manager is incorrectly configured. Can you provide a short code example that reproduces the problem? What is configured for this key in your service manager?

To take this further, the actual call that results in returning an object of an incorrect type is here:
https://github.com/zfcampus/zf-mvc-auth/blob/d9a834f46f68224019d3433e6bcb6ffb090a11ff/src/Factory/DefaultAuthenticationListenerFactory.php#L90
        // If the service locator already has a pre-configured OAuth2 server, use it
        if ($services->has('ZF\OAuth2\Service\OAuth2Server')) {
            return $services->get('ZF\OAuth2\Service\OAuth2Server');
        }

The ZF\OAuth2\Service\OAuth2Server is configured within the zf-oauth2 module and returns the object of type ZF\OAuth2\Factory\OAuth2ServerFactory. Either way there is a lack of type checking and the result is that this module is not currently useable with the oauth module.
The type check could alternatively be applied to the above code:
        // If the service locator already has a pre-configured OAuth2 server, use it
        if ($services->has('ZF\OAuth2\Service\OAuth2Server') && $services->get('ZF\OAuth2\Service\OAuth2Server') instanceof OAuth2\Server) {
            return $services->get('ZF\OAuth2\Service\OAuth2Server');
        }

Again its not pretty at all, but it is a workaround to at least get this module working with zf-oauth2.

My above comment was posted before reading your own comment.
To answer your question, the service is configured within the zf-oauth2 module:
 'ZF\OAuth2\Service\OAuth2Server'  => 'ZF\OAuth2\Factory\OAuth2ServerFactory'

and the ZF\OAuth2\Factory\OAuth2ServerFactory class returns an object of type ZF\OAuth2\Factory\OAuth2ServerInstanceFactory

I've looked at this: What a mess... For some unexplained reason, that zf-oauth2 module returns a factory object instead of the really needed instance - probably to improve performance or something.
If it is true that the service manager of zf-oauth2 will always return a factory object when asked for 'ZF\OAuth2\Service\OAuth2Server', then your patch is wrong. Fix the function createOAuth2Server() to correctly unpack the real object from the factory and return it.

@SvenRtbgYes that is what I have been telling you all along ! And your 'fix the function...' is also what I suggested in my previous post .
Could you please create a new branch and I'll patch and send a PR right away.
You'll need to create the branch off the last 1.x commit as this is a version 1x issue as explained in my first comment. Thanks.

Here is a fix:
https://github.com/matwright/zf-mvc-auth/blob/hotfix/oauth2/src/Factory/DefaultAuthenticationListenerFactory.php#L93
If a Service is already being managed with this key, we check the type, if it is a OAuth2ServerInstanceFactory the object is __invoked to ensure we get the correct OAuth2Server object.

Here's the commit that broke the interface contract between zfcampus/zf-mvc-auth and zfcampus/zf-oauth2: https://github.com/weierophinney/zf-oauth2/commit/1eea5a1512419d350ad288bf3a25bcbdecfd9764
@matwright I still don't understand your initial comment:

however zf-apigility/composer.json dev-master still references version 1.0.0 and overriding zf-mvc-auth version in composer results in conflicts.

This confuses me because if zf-mvc-auth 1.0.0 would be referenced, then the problem with 1.0.3 would not happen. The bug was introduced with zf-oauth2 version 1.1.1, which wasn't a bugfix, but an interface incompatible change (if you count the service manager configuration to be an interface). Where is the code you are using with that reference from?

zf-mvc-auth version
references zf-oauth2
works with zf-oauth2
breaks with zf-oauth2

1.0.0 to 1.0.2
~1.0
1.0.0 and up
none

1.0.3
~1.0
up to 1.1.0
1.1.1 or later

1.1.0
~1.1
1.1.0
1.1.1 or later

1.1.1
^1.1.1
1.1.1 and later
-

The change in zf-oauth2 shouldn't have happened as a bug fix. It was an incompatible change and should have been tagged as version 2.0.0 of zf-oauth2.

@SvenRtbg  Yes sorry my comment should have read version ~1.0 not 1.0.0
So as you confirm in the table above, the break occurs with v 1.0.3 of zf-mvc-auth because the ~1.0 ref for zf-oauth will require the next significant release version, in my case when running composer in v 1.0.3 this installs zfcampus/zf-oauth2 v 1.1.2 and hence the break.
So this may just be an issue with the composer config in v 1.0.3. Instead of zf-oauth2 : ~1.0 it should be zf-oauth2 : <1.1.1 to avoid the break.
I will test and confirm.

@SvenRtbg I believe we need a version 1.0.4 of zf-mvc-auth which constrains the version of zf-oauth to less than 1.1.1 in composer. This resolves the BC break.

@SvenRtbg I'm going to close this, given the info you have left above, I'm going to work around the issue  otherwise. I'm caught up in the v1.0.3 break because of a separate ongoing issue with zf-oauth module also. I will deal with it otherwise.

You can add a dependency that restricts the choices of Composer to the composer.json of your project.
"require": {
    "zfcampus/zf-oauth2": "<1.1.1",
    ....
}

This will be evaluated in addition to the constraints of all the other packages. So if zf-mvc-auth 1.0.3 allows ~1.0 (which includes the broken versions), this would fix it by disallowing the broken versions. A slightly better approach would be to even go one step down in the version history and require ~1.0.0 of zf-oauth2. This would allow bugfixes in the 1.0 series, because it won't install the 1.1.0 version as the last allowed one (and I bet the reason for 1.1.1 and up to exist is bug fixes).

thanks @SvenRtbg yes that is what I've done, it's further complicated though because of an ongoing issue with the zf-oauth module, but thats another story. Thanks for your help.

@SvenRtbg and @matwright The change that was made was done to support the possibility of per-API (vs per-application) authentication. In the case of per-API authentication, we need to be able to pass information to the factory creating the instance, which necessitated changing this particular factory to return a factory instead of an instance.
If you have overridden the service to invoke your own factory, all you need to do is change your factory to return a closure that will return the server instance (instead of returning the server instance itself):
class MyOAuth2ServerFactory
{
    public function __invoke($services)
    {
        // If before you did this:
        // return new OAuth2\Server();
        // now you would do this:
        return function () {
            return OAuth2\Server();
        };
    }
}

This was a necessary BC break to allow existing zf-oauth2 config to work alongside the updated zf-oauth2/zf-mvc-auth combination. We should have messaged it better.


publish the types to npm registry [FR]

Is your feature request related to a problem? Please describe.
To use libraries with typescript, we need the types in npm registry
but typing npm install --save @types/firebase-admin produces an error
npm ERR! 404 '@types/firebase-admin@latest' is not in the npm registry
Describe the solution you'd like
I would like firebase-admin types to be available in npm registry for ease of use with typescript
Describe alternatives you've considered
Generating the types my self npx typings install github:firebase/firebase-admin-node/src/index.d.ts Not ideal because its probably the wrong version

firebase-admin ships with types included. You don't need a separate @types/* package to use it with TypeScript.


fix: Install plugins correctly given multiple levels of inheritance

The venv_name property of a plugin is used to determine if it installed or skipped based on whether or not the venv directory has been "seen".
https://github.com/meltano/meltano/blob/28bc90be783123655e837e23175db4cf64724393/src/meltano/core/plugin_install_service.py#L215
Previously, for an inherited plugin (i.e. defines inherits_from) only its immediate parent was taken into account when resolving the venv name. For one level of inheritance this is fine, but at soon as you start inheriting from inherited plugins the venv name is resolved as the parent inherited plugin name, not the base plugin name.
The fix is actually super simple - instead of getting the parent  name, get its venv_name to recursively resolve the base plugin name.

Given meltano.yml from https://meltano.slack.com/archives/C0695LLCGVC/p1726488890814789:
version: 1
default_environment: dev
project_id: 805c9ea1-931b-4722-9761-d6074594b175
environments:
- name: dev
- name: staging
- name: prod
plugins:
  extractors:
  - name: tap-oracle
    variant: s7clarke10
    pip_url:
      git+https://github.com/s7clarke10/pipelinewise-tap-oracle.git@53bb75ed27d7796d2f492e74cec87f10f1bce4d4
    config:
      use_ora_rowscn: false
      ora_python_driver_type: thick
      use_singer_decimal: true

  - name: tap-oracle-demo_foo
    inherit_from: tap-oracle
    config:
      user: demo
      host: 123
      port: 420
      service_name: foo

  - name: tap-oracle-demo_foo-full_table
    inherit_from: tap-oracle-demo_foo
    config:
      default_replication_method: FULL_TABLE

  - name: tap-oracle-demo_foo-full_table-bar_baz
    inherit_from: tap-oracle-demo_foo-full_table
    select:
     - bar-baz.*

  - name: tap-oracle-demo_foo-full_table-asd_qwe
    inherit_from: tap-oracle-demo_foo-full_table
    select:
      - asd-qwe.*

Before fix:

After fix:

Related to #8783

It trips me a bit that tests continue passing and coverage didn't complain about a missing patch 😅, so I'll try to break it and see why we missed this.

Thanks @ReubenFrankel!


Update link to website on NPM

The link to the website is outdated on NPM: https://www.npmjs.com/package/svelte-multiselect

Should be updated to: https://janosh.github.io/svelte-multiselect

It's already updated actually:
https://github.com/janosh/svelte-multiselect/blob/2e88108a35d75f88b1a6e754caf338600de16e07/package.json#L5
Just needs a new release to be reflected on NPM.
Note there are unresolved navigation issues with the GitHub Pages deployment (tracked over at https://github.com/sveltejs/kit/issues/7742). I may have jumped the gun a little here with moving away from Netlify.


fix endpoint restoration

Please ensure your pull request adheres to the following guidelines:

[ ] For first time contributors, read Submitting a pull request
[ ] All code is covered by unit and/or runtime tests where feasible.
[ ] All commits contain a well written commit description including a title,
description and a Fixes: #XXX line if the commit addresses a particular
GitHub issue.
[ ] All commits are signed off. See the section Developer’s Certificate of Origin
[ ] Provide a title or release-note blurb suitable for the release notes.
[ ] Thanks for contributing!

Fixes: #18923
<!-- Enter the release note text here if needed or remove this section! -->

@zhanghe9702 please add fill out the release note section of your first comment. Thanks!


samples: mesh: nrf52: added delay before executing inst. transition

Added delay before executing instantaneous transition
Added some Kconfig parameters in prj.conf

In hurry I forgot to test the result for condition where user could set transition time(tt) = 0 & Delay = non-zero value. In such transition, we could not consider it as fully instantaneous so we have to depend upon timer for proper working.

Please don't merge as of now.
I've to add one more commit.

I've submitted last commit from my side.

@trond-snekvik Please review.

@jhedberg Please merge.


🪲 TPCH Query 1 doesn't plan

Thank you for taking the time to report a problem with Opteryx.
To help us to respond to your request we ask that you try to provide the below detail about the bug.
select
    l_returnflag,
    l_linestatus,
    sum(l_quantity) as sum_qty,
    sum(l_extendedprice) as sum_base_price,
    sum(l_extendedprice * (1 - l_discount)) as sum_disc_price,
    sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) as sum_charge,
    avg(l_quantity) as avg_qty,
    avg(l_extendedprice) as avg_price,
    avg(l_discount) as avg_disc,
    count(*) as count_order
from
    testdata.tpch.lineitem
where
    l_shipdate <= '1998-09-16'
group by
    l_returnflag,
    l_linestatus
order by
    l_returnflag,
    l_linestatus;

Appears to be a problem with the binding of expressions within an aggregate, although it's not a fundamental flaw as this query works as expected:
select sum(id * (1 - gravity)) as one_plus from $planets

the problem is at the bind phase, the step dealing with the aggregates and groupings.
this is the execution plan
   └─ ORDER BY (l_returnflag, l_linestatus)
      └─ PROJECT (l_returnflag, l_linestatus, SUM(l_quantity), SUM(l_extendedprice), SUM(l_extendedprice * (1 - l_discount)), SUM(l_extendedprice * (1 - l_discount) * (1 + l_tax)), AVG(l_quantity), AVG(l_extendedprice), AVG(l_discount), COUNT(*))
         └─ AGGREGATE (SUM(l_quantity), SUM(l_extendedprice), SUM(l_extendedprice * (1 - l_discount)), SUM(l_extendedprice * (1 - l_discount) * (1 + l_tax)), AVG(l_quantity), AVG(l_extendedprice), AVG(l_discount), COUNT(*)) GROUP BY (l_returnflag, l_linestatus)
            └─ FILTER (l_shipdate <= 1998-09-16)
               └─ SCAN (testdata.tpch.lineitem)

It's the same memoization but as #1320, closing and tracking under that one


duty cycle 7.5% slightly different from my servo tester's

It's probably OK. Just calibrate each unit.


Created Design Report Presentation Template from Sample

After reviewing your asks I wasn't certain if you wanted the skeleton for the Solution Design Report Presentation Template revised based on the Sample flow so I split it into a separate Pull Request to for easier management

thx Gavin, valid update so let's take this one in as well.


druid-basic-security Non-coordinator services repeatedly logging JsonMappingException

Fixes #8678
Description
Non-coordinator services are repeatedly logging JsonMappingException when using druid-basic-security extension with an authenticator (metadata/ldap) that has no users setup in the metastore.

Fixed the bug ...
Added a check for empty/zero byte array in CoordinatorPollingBasicAuthenticatorCacheManager class' tryFetchUserMapFromCoordinator method before attempting to deserialize

This PR has:

[ ] been self-reviewed.

[ ] using the concurrency checklist (Remove this item if the PR doesn't have any relation to concurrency.)

[ ] added documentation for new or modified features or behaviors.
[ ] added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links.
[ ] added or updated version, license, or notice information in licenses.yaml
[ ] added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.
[ ] added unit tests or modified existing tests to cover new code paths.
[ ] added integration tests.
[ ] been tested in a test Druid cluster.

Key changed/added classes in this PR

Changed/updated CoordinatorPollingBasicAuthenticatorCacheManager.java class' tryFetchUserMapFromCoordinator method

Can you update the PR title and description to describe the fix, and remove "Issue 8678" from the title? We don't usually refer to the issue numbers in the PR title, it should be referenced by

Fixes #XXXX.

in the PR description.

@jon-wei Update the PR title and description

@jon-wei Thank you!
@capistrant Thanks for discovering this issue

Please refer this issue and help me
ERROR [qtp1604271704-130] org.apache.druid.security.basic.authentication.validator.LDAPCredentialsValidator - Exception during user lookup #9303

Is there a workaround for this?  I'm attempting to upgrade our cluster to 0.17 and I'm encountering this issue.  I have users set up on 0.16.


feat: support Memory.graph_store.llm independent from Memory.llm

Description
This PR addresses a limitation in the memory system's LLM configuration that currently requires the main memory.llm to use OpenAI's function calling format. The issue stems from the _search function in the graph memory implementation being tightly coupled to OpenAI's tool format, which blocks usage with LLMs that use different function/tool calling schemas (like Anthropic's tools).
There is already an optional llm: LlmConfig in the GraphStoreConfig definition but the current logic to set the graph_store.llm only checks for the existence of a graph_store.llm.provider to override the default "openai_structured" provider, while only considering the top level Memory.llm_config to configure the Memory.graph_store.llm. This inherently locks Memory LLM model configurations only to those adhering to the OpenAi FunctionDefinition spec.
This change allows the main memory interface to use any LLM provider while keeping graph operations (which require OpenAI's tool format) isolated. Until the tool definitions are made provider-agnostic, graph store operations will remain limited to LLMs that follow the OpenAI tool schema.
Key changes:

Added support for separate LLM configuration in graph store operations
Updated MemoryGraph initialization to properly handle graph-specific LLM config
Clear separation between conversation LLM and graph operation LLM

Fixes # (issue)
Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)

How Has This Been Tested?

Very minor change, full backwards compatibility with previous implementation while leveraging an already existing mostly unused configuration
Testing on integration with another project I'm working on to integrate mem0 w/ autogen and anthropic :
2024-11-24 03:53:12,189 - anthropic._base_client - DEBUG - Sending HTTP Request: POST https://api.anthropic.com/v1/messages
2024-11-24 03:53:12,189 - httpcore.connection - DEBUG - connect_tcp.started host='api.anthropic.com' port=443 local_address=None timeout=600 socket_options=None
2024-11-24 03:53:12,192 - openai._base_client - DEBUG - Request options: {'method': 'post', 'url': '/chat/completions', 'files': None, 'json_data': {'messages': [{'role': 'system', 'content': "You are a smart assistant who understands the entities, their types, and relations in a given text. If user message contains self reference such as 'I', 'me', 'my' etc. then use test_user as the source node. Extract the entities."}, {'role': 'user', 'content': 'The capital of France is Paris.'}], 'model': 'gpt-4-turbo-preview', 'max_tokens': 4096, 'temperature': 0.7, 'tool_choice': 'auto', 'tools': [{'type': 'function', 'function': {'name': 'search', 'description': 'Search for nodes and relations in the graph.', 'strict': True, 'parameters': {'type': 'object', 'properties': {'nodes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'List of nodes to search for.'}, 'relations': {'type': 'array', 'items': {'type': 'string'}, 'description': 'List of relations to search for.'}}, 'required': ['nodes', 'relations'], 'additionalProperties': False}}}], 'top_p': 0}}
2024-11-24 03:53:12,192 - openai._base_client - DEBUG - Sending HTTP Request: POST https://api.openai.com/v1/chat/completions
2024-11-24 03:53:12,192 - httpcore.connection - DEBUG - connect_tcp.started host='api.openai.com' port=443 local_address=None timeout=5.0 socket_options=None
2024-11-24 03:53:12,199 - httpcore.connection - DEBUG - connect_tcp.complete return_value=<httpcore._backends.sync.SyncStream object at 0x106c2bcb0>
2024-11-24 03:53:12,199 - httpcore.connection - DEBUG - start_tls.started ssl_context=<ssl.SSLContext object at 0x1447d23d0> server_hostname='api.anthropic.com' timeout=600
2024-11-24 03:53:12,199 - httpcore.connection - DEBUG - connect_tcp.complete return_value=<httpcore._backends.sync.SyncStream object at 0x116e5e6f0>
2024-11-24 03:53:12,199 - httpcore.connection - DEBUG - start_tls.started ssl_context=<ssl.SSLContext object at 0x155cd3d50> server_hostname='api.openai.com' timeout=5.0
2024-11-24 03:53:12,219 - httpcore.connection - DEBUG - start_tls.complete return_value=<httpcore._backends.sync.SyncStream object at 0x116e5e600>
2024-11-24 03:53:12,219 - httpcore.http11 - DEBUG - send_request_headers.started request=<Request [b'POST']>
2024-11-24 03:53:12,219 - httpcore.http11 - DEBUG - send_request_headers.complete
2024-11-24 03:53:12,220 - httpcore.http11 - DEBUG - send_request_body.started request=<Request [b'POST']>
2024-11-24 03:53:12,222 - httpcore.http11 - DEBUG - send_request_body.complete
2024-11-24 03:53:12,222 - httpcore.http11 - DEBUG - receive_response_headers.started request=<Request [b'POST']>
2024-11-24 03:53:12,224 - httpcore.connection - DEBUG - start_tls.complete return_value=<httpcore._backends.sync.SyncStream object at 0x106c2be30>
2024-11-24 03:53:12,225 - httpcore.http11 - DEBUG - send_request_headers.started request=<Request [b'POST']>
2024-11-24 03:53:12,225 - httpcore.http11 - DEBUG - send_request_headers.complete
2024-11-24 03:53:12,225 - httpcore.http11 - DEBUG - send_request_body.started request=<Request [b'POST']>
2024-11-24 03:53:12,226 - httpcore.http11 - DEBUG - send_request_body.complete
2024-11-24 03:53:12,226 - httpcore.http11 - DEBUG - receive_response_headers.started request=<Request [b'POST']>
2024-11-24 03:53:14,879 - httpcore.http11 - DEBUG - receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'OK', [(b'Date', b'Sun, 24 Nov 2024 08:53:14 GMT'), (b'Content-Type', b'application/json'), (b'Transfer-Encoding', b'chunked'), (b'Connection', b'keep-alive'), (b'anthropic-ratelimit-requests-limit', b'1000'), (b'anthropic-ratelimit-requests-remaining', b'999'), (b'anthropic-ratelimit-requests-reset', b'2024-11-24T08:53:12Z'), (b'anthropic-ratelimit-input-tokens-limit', b'40000'), (b'anthropic-ratelimit-input-tokens-remaining', b'40000'), (b'anthropic-ratelimit-input-tokens-reset', b'2024-11-24T08:53:14Z'), (b'anthropic-ratelimit-output-tokens-limit', b'8000'), (b'anthropic-ratelimit-output-tokens-remaining', b'8000'), (b'anthropic-ratelimit-output-tokens-reset', b'2024-11-24T08:53:14Z'), (b'anthropic-ratelimit-tokens-limit', b'48000'), (b'anthropic-ratelimit-tokens-remaining', b'48000'), (b'anthropic-ratelimit-tokens-reset', b'2024-11-24T08:53:14Z'), (b'request-id', b'req_01LLdsha4zvtDV4eTQDJBpzj'), (b'via', b'1.1 google'), (b'CF-Cache-Status', b'DYNAMIC'), (b'X-Robots-Tag', b'none'), (b'Server', b'cloudflare'), (b'CF-RAY', b'8e782ad00b58676f-ATL'), (b'Content-Encoding', b'gzip')])
2024-11-24 03:53:14,879 - httpx - INFO - HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK"
2024-11-24 03:53:14,879 - httpcore.http11 - DEBUG - receive_response_body.started request=<Request [b'POST']>
2024-11-24 03:53:14,879 - httpcore.http11 - DEBUG - receive_response_body.complete
2024-11-24 03:53:14,880 - httpcore.http11 - DEBUG - response_closed.started
2024-11-24 03:53:14,880 - httpcore.http11 - DEBUG - response_closed.complete
2024-11-24 03:53:14,880 - anthropic._base_client - DEBUG - HTTP Response: POST https://api.anthropic.com/v1/messages "200 OK" Headers({'date': 'Sun, 24 Nov 2024 08:53:14 GMT', 'content-type': 'application/json', 'transfer-encoding': 'chunked', 'connection': 'keep-alive', 'anthropic-ratelimit-requests-limit': '1000', 'anthropic-ratelimit-requests-remaining': '999', 'anthropic-ratelimit-requests-reset': '2024-11-24T08:53:12Z', 'anthropic-ratelimit-input-tokens-limit': '40000', 'anthropic-ratelimit-input-tokens-remaining': '40000', 'anthropic-ratelimit-input-tokens-reset': '2024-11-24T08:53:14Z', 'anthropic-ratelimit-output-tokens-limit': '8000', 'anthropic-ratelimit-output-tokens-remaining': '8000', 'anthropic-ratelimit-output-tokens-reset': '2024-11-24T08:53:14Z', 'anthropic-ratelimit-tokens-limit': '48000', 'anthropic-ratelimit-tokens-remaining': '48000', 'anthropic-ratelimit-tokens-reset': '2024-11-24T08:53:14Z', 'request-id': 'req_01LLdsha4zvtDV4eTQDJBpzj', 'via': '1.1 google', 'cf-cache-status': 'DYNAMIC', 'x-robots-tag': 'none', 'server': 'cloudflare', 'cf-ray': '8e782ad00b58676f-ATL', 'content-encoding': 'gzip'})
2024-11-24 03:53:14,880 - anthropic._base_client - DEBUG - request_id: req_01LLdsha4zvtDV4eTQDJBpzj
2024-11-24 03:53:14,882 - openai._base_client - DEBUG - Request options: {'method': 'post', 'url': '/embeddings', 'files': None, 'post_parser': <function Embeddings.create..parser at 0x1450c89a0>, 'json_data': {'input': ['The capital of France is Paris'], 'model': 'text-embedding-3-small', 'encoding_format': 'base64'}}
2024-11-24 03:53:14,882 - openai._base_client - DEBUG - Sending HTTP Request: POST https://api.openai.com/v1/embeddings
2024-11-24 03:53:14,882 - httpcore.connection - DEBUG - connect_tcp.started host='api.openai.com' port=443 local_address=None timeout=5.0 socket_options=None
2024-11-24 03:53:14,891 - httpcore.connection - DEBUG - connect_tcp.complete return_value=<httpcore._backends.sync.SyncStream object at 0x116e5c0e0>
2024-11-24 03:53:14,891 - httpcore.connection - DEBUG - start_tls.started ssl_context=<ssl.SSLContext object at 0x1447cb750> server_hostname='api.openai.com' timeout=5.0
2024-11-24 03:53:14,903 - httpcore.connection - DEBUG - start_tls.complete return_value=<httpcore._backends.sync.SyncStream object at 0x116e5f200>
2024-11-24 03:53:14,903 - httpcore.http11 - DEBUG - send_request_headers.started request=<Request [b'POST']>
2024-11-24 03:53:14,903 - httpcore.http11 - DEBUG - send_request_headers.complete
2024-11-24 03:53:14,903 - httpcore.http11 - DEBUG - send_request_body.started request=<Request [b'POST']>
2024-11-24 03:53:14,903 - httpcore.http11 - DEBUG - send_request_body.complete
2024-11-24 03:53:14,903 - httpcore.http11 - DEBUG - receive_response_headers.started request=<Request [b'POST']>
2024-11-24 03:53:15,258 - httpcore.http11 - DEBUG - receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'OK', [(b'Date', b'Sun, 24 Nov 2024 08:53:15 GMT'), (b'Content-Type', b'application/json'), (b'Transfer-Encoding', b'chunked'), (b'Connection', b'keep-alive'), (b'access-control-allow-origin', b''), (b'access-control-expose-headers', b'X-Request-ID'), (b'openai-model', b'text-embedding-3-small'), (b'openai-organization', b'user-c5lzfxolohvf9t9d9ydybprb'), (b'openai-processing-ms', b'120'), (b'openai-version', b'2020-10-01'), (b'strict-transport-security', b'max-age=31536000; includeSubDomains; preload'), (b'x-ratelimit-limit-requests', b'5000'), (b'x-ratelimit-limit-tokens', b'1000000'), (b'x-ratelimit-remaining-requests', b'4999'), (b'x-ratelimit-remaining-tokens', b'999993'), (b'x-ratelimit-reset-requests', b'12ms'), (b'x-ratelimit-reset-tokens', b'0s'), (b'x-request-id', b'req_a3d28ec9e413f819397cb768aad6f418'), (b'CF-Cache-Status', b'DYNAMIC'), (b'Set-Cookie', b'__cf_bm=KbmYT.W_TepriyrbCZ2ZgQYiPg6ubWk0dolTe_zOVsc-1732438395-<IP_ADDRESS>-qByw.GppwMie9NvPTyBIRO8EzvIo1iQfBTUMMDalgUSNrA3tZWWfkojCFYYc8lJut5afMaqEQUPWmMqXchIE9A; path=/; expires=Sun, 24-Nov-24 09:23:15 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None'), (b'X-Content-Type-Options', b'nosniff'), (b'Set-Cookie', b'_cfuvid=LcAuv0OP1d.cZhDQl4VvwDas.UbyKNvx5g4qVNYTMzw-1732438395350-<IP_ADDRESS>-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None'), (b'Server', b'cloudflare'), (b'CF-RAY', b'8e782ae0ce6053a9-ATL'), (b'Content-Encoding', b'gzip'), (b'alt-svc', b'h3=":443"; ma=86400')])
2024-11-24 03:53:15,259 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/embeddings "HTTP/1.1 200 OK"
2024-11-24 03:53:15,259 - httpcore.http11 - DEBUG - receive_response_body.started request=<Request [b'POST']>
2024-11-24 03:53:15,260 - httpcore.http11 - DEBUG - receive_response_body.complete
2024-11-24 03:53:15,260 - httpcore.http11 - DEBUG - response_closed.started
2024-11-24 03:53:15,260 - httpcore.http11 - DEBUG - response_closed.complete
2024-11-24 03:53:15,260 - openai._base_client - DEBUG - HTTP Response: POST https://api.openai.com/v1/embeddings "200 OK" Headers([('date', 'Sun, 24 Nov 2024 08:53:15 GMT'), ('content-type', 'application/json'), ('transfer-encoding', 'chunked'), ('connection', 'keep-alive'), ('access-control-allow-origin', ''), ('access-control-expose-headers', 'X-Request-ID'), ('openai-model', 'text-embedding-3-small'), ('openai-organization', 'user-c5lzfxolohvf9t9d9ydybprb'), ('openai-processing-ms', '120'), ('openai-version', '2020-10-01'), ('strict-transport-security', 'max-age=31536000; includeSubDomains; preload'), ('x-ratelimit-limit-requests', '5000'), ('x-ratelimit-limit-tokens', '1000000'), ('x-ratelimit-remaining-requests', '4999'), ('x-ratelimit-remaining-tokens', '999993'), ('x-ratelimit-reset-requests', '12ms'), ('x-ratelimit-reset-tokens', '0s'), ('x-request-id', 'req_a3d28ec9e413f819397cb768aad6f418'), ('cf-cache-status', 'DYNAMIC'), ('set-cookie', '__cf_bm=KbmYT.W_TepriyrbCZ2ZgQYiPg6ubWk0dolTe_zOVsc-1732438395-<IP_ADDRESS>-qByw.GppwMie9NvPTyBIRO8EzvIo1iQfBTUMMDalgUSNrA3tZWWfkojCFYYc8lJut5afMaqEQUPWmMqXchIE9A; path=/; expires=Sun, 24-Nov-24 09:23:15 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None'), ('x-content-type-options', 'nosniff'), ('set-cookie', '_cfuvid=LcAuv0OP1d.cZhDQl4VvwDas.UbyKNvx5g4qVNYTMzw-1732438395350-<IP_ADDRESS>-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None'), ('server', 'cloudflare'), ('cf-ray', '8e782ae0ce6053a9-ATL'), ('content-encoding', 'gzip'), ('alt-svc', 'h3=":443"; ma=86400')])
2024-11-24 03:53:15,260 - openai._base_client - DEBUG - request_id: req_a3d28ec9e413f819397cb768aad6f418
2024-11-24 03:53:15,263 - root - INFO - Total existing memories: 0
2024-11-24 03:53:15,264 - anthropic._base_client - DEBUG - Request options: {'method': 'post', 'url': '/v1/messages', 'timeout': 600, 'files': None, 'json_data': {'max_tokens': 4096, 'messages': [{'role': 'user', 'content': 'You are a smart memory manager which controls the memory of a system.\n    You can perform four operations: (1) add into the memory, (2) update the memory, (3) delete from the memory, and (4) no change.\n\n    Based on the above four operations, the memory will change.\n\n    Compare newly retrieved facts with the existing memory. For each new fact, decide whether to:\n    - ADD: Add it to the memory as a new element\n    - UPDATE: Update an existing memory element\n    - DELETE: Delete an existing memory element\n    - NONE: Make no change (if the fact is already present or irrelevant)\n\n    There are specific guidelines to select which operation to perform:\n\n    1. Add: If the retrieved facts contain new information not present in the memory, then you have to add it by generating a new ID in the id field.\n        - Example:\n            - Old Memory:\n                [\n                    {\n                        "id" : "0",\n                        "text" : "User is a software engineer"\n                    }\n                ]\n            - Retrieved facts: ["Name is John"]\n            - New Memory:\n                {\n                    "memory" : [\n                        {\n                            "id" : "0",\n                            "text" : "User is a software engineer",\n                            "event" : "NONE"\n                        },\n                        {\n                            "id" : "1",\n                            "text" : "Name is John",\n                            "event" : "ADD"\n                        }\n                    ]\n\n                }\n\n    2. Update: If the retrieved facts contain information that is already present in the memory but the information is totally different, then you have to update it. \n        If the retrieved fact contains information that conveys the same thing as the elements present in the memory, then you have to keep the fact which has the most information. \n        Example (a) -- if the memory contains "User likes to play cricket" and the retrieved fact is "Loves to play cricket with friends", then update the memory with the retrieved facts.\n        Example (b) -- if the memory contains "Likes cheese pizza" and the retrieved fact is "Loves cheese pizza", then you do not need to update it because they convey the same information.\n        If the direction is to update the memory, then you have to update it.\n        Please keep in mind while updating you have to keep the same ID.\n        Please note to return the IDs in the output from the input IDs only and do not generate any new ID.\n        - Example:\n            - Old Memory:\n                [\n                    {\n                        "id" : "0",\n                        "text" : "I really like cheese pizza"\n                    },\n                    {\n                        "id" : "1",\n                        "text" : "User is a software engineer"\n                    },\n                    {\n                        "id" : "2",\n                        "text" : "User likes to play cricket"\n                    }\n                ]\n            - Retrieved facts: ["Loves chicken pizza", "Loves to play cricket with friends"]\n            - New Memory:\n                {\n                "memory" : [\n                        {\n                            "id" : "0",\n                            "text" : "Loves cheese and chicken pizza",\n                            "event" : "UPDATE",\n                            "old_memory" : "I really like cheese pizza"\n                        },\n                        {\n                            "id" : "1",\n                            "text" : "User is a software engineer",\n                            "event" : "NONE"\n                        },\n                        {\n                            "id" : "2",\n                            "text" : "Loves to play cricket with friends",\n                            "event" : "UPDATE",\n                            "old_memory" : "User likes to play cricket"\n                        }\n                    ]\n                }\n\n\n    3. Delete: If the retrieved facts contain information that contradicts the information present in the memory, then you have to delete it. Or if the direction is to delete the memory, then you have to delete it.\n        Please note to return the IDs in the output from the input IDs only and do not generate any new ID.\n        - Example:\n            - Old Memory:\n                [\n                    {\n                        "id" : "0",\n                        "text" : "Name is John"\n                    },\n                    {\n                        "id" : "1",\n                        "text" : "Loves cheese pizza"\n                    }\n                ]\n            - Retrieved facts: ["Dislikes cheese pizza"]\n            - New Memory:\n                {\n                "memory" : [\n                        {\n                            "id" : "0",\n                            "text" : "Name is John",\n                            "event" : "NONE"\n                        },\n                        {\n                            "id" : "1",\n                            "text" : "Loves cheese pizza",\n                            "event" : "DELETE"\n                        }\n                ]\n                }\n\n    4. No Change: If the retrieved facts contain information that is already present in the memory, then you do not need to make any changes.\n        - Example:\n            - Old Memory:\n                [\n                    {\n                        "id" : "0",\n                        "text" : "Name is John"\n                    },\n                    {\n                        "id" : "1",\n                        "text" : "Loves cheese pizza"\n                    }\n                ]\n            - Retrieved facts: ["Name is John"]\n            - New Memory:\n                {\n                "memory" : [\n                        {\n                            "id" : "0",\n                            "text" : "Name is John",\n                            "event" : "NONE"\n                        },\n                        {\n                            "id" : "1",\n                            "text" : "Loves cheese pizza",\n                            "event" : "NONE"\n                        }\n                    ]\n                }\n\n    Below is the current content of my memory which I have collected till now. You have to update it in the following format only:\n\n    \n    []\n    \n\n    The new retrieved facts are mentioned in the triple backticks. You have to analyze the new retrieved facts and determine whether these facts should be added, updated, or deleted in the memory.\n\n    \n    [\'The capital of France is Paris\']\n    \n\n    Follow the instruction mentioned below:\n    - Do not return anything from the custom few shot prompts provided above.\n    - If the current memory is empty, then you have to add the new retrieved facts to the memory.\n    - You should return the updated memory in only JSON format as shown below. The memory key should be the same if no changes are made.\n    - If there is an addition, generate a new key and add the new memory corresponding to it.\n    - If there is a deletion, the memory key-value pair should be removed from the memory.\n    - If there is an update, the ID key should remain the same and only the value needs to be updated.\n\n    Do not return anything except the JSON format.\n    '}], 'model': 'claude-3-opus-20240229', 'system': '', 'temperature': 0.7, 'top_p': 0}}
2024-11-24 03:53:15,266 - anthropic._base_client - DEBUG - Sending HTTP Request: POST https://api.anthropic.com/v1/messages
2024-11-24 03:53:15,266 - httpcore.http11 - DEBUG - send_request_headers.started request=<Request [b'POST']>
2024-11-24 03:53:15,266 - httpcore.http11 - DEBUG - send_request_headers.complete
2024-11-24 03:53:15,267 - httpcore.http11 - DEBUG - send_request_body.started request=<Request [b'POST']>
2024-11-24 03:53:15,267 - httpcore.http11 - DEBUG - send_request_body.complete
2024-11-24 03:53:15,267 - httpcore.http11 - DEBUG - receive_response_headers.started request=<Request [b'POST']>
^C2024-11-24 03:53:18,965 - httpcore.http11 - DEBUG - receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'OK', [(b'Date', b'Sun, 24 Nov 2024 08:53:19 GMT'), (b'Content-Type', b'application/json'), (b'Transfer-Encoding', b'chunked'), (b'Connection', b'keep-alive'), (b'anthropic-ratelimit-requests-limit', b'1000'), (b'anthropic-ratelimit-requests-remaining', b'999'), (b'anthropic-ratelimit-requests-reset', b'2024-11-24T08:53:15Z'), (b'anthropic-ratelimit-input-tokens-limit', b'40000'), (b'anthropic-ratelimit-input-tokens-remaining', b'40000'), (b'anthropic-ratelimit-input-tokens-reset', b'2024-11-24T08:53:19Z'), (b'anthropic-ratelimit-output-tokens-limit', b'8000'), (b'anthropic-ratelimit-output-tokens-remaining', b'8000'), (b'anthropic-ratelimit-output-tokens-reset', b'2024-11-24T08:53:19Z'), (b'anthropic-ratelimit-tokens-limit', b'48000'), (b'anthropic-ratelimit-tokens-remaining', b'48000'), (b'anthropic-ratelimit-tokens-reset', b'2024-11-24T08:53:19Z'), (b'request-id', b'req_01BYUvsvS5ftRxpx8qwKvQAS'), (b'via', b'1.1 google'), (b'CF-Cache-Status', b'DYNAMIC'), (b'X-Robots-Tag', b'none'), (b'Server', b'cloudflare'), (b'CF-RAY', b'8e782ae31c4c676f-ATL'), (b'Content-Encoding', b'gzip')])
2024-11-24 03:53:18,965 - httpx - INFO - HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK"
2024-11-24 03:53:18,965 - httpcore.http11 - DEBUG - receive_response_body.started request=<Request [b'POST']>
2024-11-24 03:53:18,966 - httpcore.http11 - DEBUG - receive_response_body.complete
2024-11-24 03:53:18,966 - httpcore.http11 - DEBUG - response_closed.started
2024-11-24 03:53:18,966 - httpcore.http11 - DEBUG - response_closed.complete
2024-11-24 03:53:18,966 - anthropic._base_client - DEBUG - HTTP Response: POST https://api.anthropic.com/v1/messages "200 OK" Headers({'date': 'Sun, 24 Nov 2024 08:53:19 GMT', 'content-type': 'application/json', 'transfer-encoding': 'chunked', 'connection': 'keep-alive', 'anthropic-ratelimit-requests-limit': '1000', 'anthropic-ratelimit-requests-remaining': '999', 'anthropic-ratelimit-requests-reset': '2024-11-24T08:53:15Z', 'anthropic-ratelimit-input-tokens-limit': '40000', 'anthropic-ratelimit-input-tokens-remaining': '40000', 'anthropic-ratelimit-input-tokens-reset': '2024-11-24T08:53:19Z', 'anthropic-ratelimit-output-tokens-limit': '8000', 'anthropic-ratelimit-output-tokens-remaining': '8000', 'anthropic-ratelimit-output-tokens-reset': '2024-11-24T08:53:19Z', 'anthropic-ratelimit-tokens-limit': '48000', 'anthropic-ratelimit-tokens-remaining': '48000', 'anthropic-ratelimit-tokens-reset': '2024-11-24T08:53:19Z', 'request-id': 'req_01BYUvsvS5ftRxpx8qwKvQAS', 'via': '1.1 google', 'cf-cache-status': 'DYNAMIC', 'x-robots-tag': 'none', 'server': 'cloudflare', 'cf-ray': '8e782ae31c4c676f-ATL', 'content-encoding': 'gzip'})
2024-11-24 03:53:18,966 - anthropic._base_client - DEBUG - request_id: req_01BYUvsvS5ftRxpx8qwKvQAS
2024-11-24 03:53:18,966 - root - INFO - {'id': '0', 'text': 'The capital of France is Paris', 'event': 'ADD'}
2024-11-24 03:53:18,966 - root - INFO - Creating memory with data='The capital of France is Paris'
2024-11-24 03:53:18,984 - mem0.vector_stores.qdrant - INFO - Inserting 1 vectors into collection mem0
^C2024-11-24 03:53:20,890 - httpcore.http11 - DEBUG - receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'OK', [(b'Date', b'Sun, 24 Nov 2024 08:53:20 GMT'), (b'Content-Type', b'application/json'), (b'Transfer-Encoding', b'chunked'), (b'Connection', b'keep-alive'), (b'access-control-expose-headers', b'X-Request-ID'), (b'openai-organization', b'user-c5lzfxolohvf9t9d9ydybprb'), (b'openai-processing-ms', b'8562'), (b'openai-version', b'2020-10-01'), (b'x-ratelimit-limit-requests', b'500'), (b'x-ratelimit-limit-tokens', b'450000'), (b'x-ratelimit-remaining-requests', b'499'), (b'x-ratelimit-remaining-tokens', b'445837'), (b'x-ratelimit-reset-requests', b'120ms'), (b'x-ratelimit-reset-tokens', b'555ms'), (b'x-request-id', b'req_88783e8f5ee62fc03cb6cbc352057df5'), (b'strict-transport-security', b'max-age=31536000; includeSubDomains; preload'), (b'CF-Cache-Status', b'DYNAMIC'), (b'Set-Cookie', b'__cf_bm=KUKrAjD6KB37csI2ow.k6bWCR.rhBBcxMEHJ7vVov7U-1732438400-<IP_ADDRESS>-G8rrOBsbYCDFjuUVMLDBZKJqqHH2w7_swlFp5wTqucKHQa.ukBVkuPYtghbWI6iFBsXn7HBDPCTR4dWGpdUTMg; path=/; expires=Sun, 24-Nov-24 09:23:20 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None'), (b'X-Content-Type-Options', b'nosniff'), (b'Set-Cookie', b'_cfuvid=IeGMetCoJLPlY18dYwQjWyra3b9zdpT7uKat7AkhLzo-1732438400982-<IP_ADDRESS>-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None'), (b'Server', b'cloudflare'), (b'CF-RAY', b'8e782ad00a8eadd7-ATL'), (b'Content-Encoding', b'gzip'), (b'alt-svc', b'h3=":443"; ma=86400')])
2024-11-24 03:53:20,893 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2024-11-24 03:53:20,894 - httpcore.http11 - DEBUG - receive_response_body.started request=<Request [b'POST']>
2024-11-24 03:53:20,894 - httpcore.http11 - DEBUG - receive_response_body.complete
2024-11-24 03:53:20,895 - httpcore.http11 - DEBUG - response_closed.started
2024-11-24 03:53:20,895 - httpcore.http11 - DEBUG - response_closed.complete
...

Test configuration:

Main LLM: Claude-3-opus (Anthropic)
Graph Store LLM: GPT-4-turbo (OpenAI)
Neo4j for graph storage
Python 3.12

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules
[x] I have checked my code and corrected any misspellings

Future Considerations

Consider making tool definitions provider-agnostic to support more LLM providers for graph operations
Add validation to ensure graph store LLM config uses a compatible provider
Document provider compatibility requirements in configuration schema

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


SyntaxError: Unknown token 3:1 in lockfile

Originally reported by Anonymous

#!javascript

yarn-tools list-duplicates yarn.lock

SyntaxError: Unknown token 3:1 in lockfile
    at Parser.unexpected (C:\Users\predrags\AppData\Local\Yarn\config\global\node_modules\@yarnpkg\lockfile\index.js:4276:11)
    at Parser.parse (C:\Users\predrags\AppData\Local\Yarn\config\global\node_modules\@yarnpkg\lockfile\index.js:4381:14)
    at parse (C:\Users\predrags\AppData\Local\Yarn\config\global\node_modules\@yarnpkg\lockfile\index.js:4450:17)
    at Object.module.exports.exports.default (C:\Users\predrags\AppData\Local\Yarn\config\global\node_modules\@yarnpkg\lockfile\index.js:4062:96)
    at module.exports (C:\Users\predrags\AppData\Local\Yarn\config\global\node_modules\yarn-tools\modules\list-duplicates.js:8:27)
    at Command.commander.command.description.action (C:\Users\predrags\AppData\Local\Yarn\config\global\node_modules\yarn-tools\index.js:17:33)
    at <anonymous>

First 30 lines of yarn.lock:
#!javascript

# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1

"<EMAIL_ADDRESS>  version "2.0.1"
  resolved<EMAIL_ADDRESS>  dependencies:
    concat-stream "~1.5.1"
    jsonlint-lines "1.7.1"
    minimist "1.2.0"
    vfile "2.0.0"
    vfile-reporter "3.0.0"

"<EMAIL_ADDRESS>  version "1.13.4"
  resolved<EMAIL_ADDRESS>  dependencies:
    "@sailshq/qs" "^4.0.1"
    bytes "2.1.0"
    content-type "~1.0.1"
    debug "~2.2.0"
    depd "~1.0.1"
    http-errors "~1.3.1"
    iconv-lite "0.4.11"
    on-finished "~2.3.0"
    raw-body "~2.1.2"
    type-is "~1.6.6"

Bitbucket: https://bitbucket.org/atlassian/yarn-tools/issue/3

I also ran into this. I resolved it by copy and pasting between the resolved file and the actual file. The error was on "line 1, col 0". Maybe there is an a unexpected BOM (utf-8) present?


canny edge detection added to the image

Hi @ashwanisng the issue is to use multiple edge detection techniques but you have only completed canny edge detection. Please complete the task and let me know.

updated the file. please review @Anujg935 @akshitagupta15june

[x]  Laplacian

[x]  sobel operator

[x]  canny edge detection

great work 👍

Thanks 😃 @akshitagupta15june @Anujg935


Investigate tree shaking of common js utilities

What
Investigate ways to ensure that our common js utilities, primarily the multiple modules in common/index/mjs, are correctly tree-shaken when bundled. This includes but is not limited to splitting the modules in index.mjs into their own files.
Why
We found during https://github.com/alphagov/govuk-frontend/issues/4957 that whilst we were able to effectively get tree shaking to work as expected for components, bundlers were importing all of common/index.mjs when not all of common was being used. It would be good to further optimise our js and understand why our "sideEffects": true solution in https://github.com/alphagov/govuk-frontend/pull/4961 didn't work for common.
Who needs to work on this
Developers
Who needs to review this
Developers
Done when

[ ] Test if splitting out common/index.mjs fixes tree shaking
[ ] Optional: Investigate alternative methods to fix the tree shaking

The issue appears to be Webpack specific. For Rollup and Vite[^1], functions fromcommon/index.mjs that are not used by the Button component, like getFragmentFromURL, are properly absent from the built single-component.mjs.
[^1]: Vite was tested by building a single entry point to avoid the issue listed in https://github.com/alphagov/govuk-frontend/issues/4978 regarding how code is split by Vite automatically


Test failed on master branch

Well, when I noticed that v0.93 was released sometime in the past, I tried to check out the latest code, rebuilt the tool, ran the test, and then this problem occurred
$ cd riscv-bitmanip/tests
$ sh run.sh

+ gcc -o testgen -Wall -O1 -I../cproofs testgen.cc
+ ./testgen
+ /opt/riscv64b/bin/riscv64-unknown-elf-gcc -Wall -march=rv64gb -Os -o tests tests.c
+ /opt/riscv64b/bin/spike --isa=RV64GCB pk tests
bbl loader
test_zbb  0x6ee99663 ERROR

My environment is as belows, they are all built by riscv-bitmanip/tools/build-all.sh
riscv-bitmanip
    commit: 2d5ca17db360f1083ab7b3867071518ae442208b(latest)

riscv64-unknown-elf-gcc
    --version: riscv64-unknown-elf-gcc (GCC) 10.0.0 20190929 (experimental)

spike
    --version: Spike RISC-V ISA Simulator 1.0.1-dev,
    commit: 8faa928819fb551325e76b463fc0c978e22f5be3(latest)

I can't determine where the problem is :)

I think gcc mistaken the encoding of max and minu when compiling, after modifying the code in https://github.com/riscv/riscv-bitmanip/blob/master/tests/test_zbb.c#L76-L80 test_zbb can run normally,
But at the same time spike will hang when executing test_zbs, I suspect that the gcc and spkie versions are inconsistent.
+ /opt/riscv64b/bin/spike --isa=RV64GCB pk tests
bbl loader
test_zbb  0x90f45e4e OK
test_zbs <-----------------hang

@mohanson Yes the current binutils have a bug, see #93

That binutils bug was fixed in December.  Maybe you are using the wrong commitid or wrong branch?  I don't know how riscv-bitmanip testing works.

It can be easily reproduced, as long as you run the following command
$ git clone https://github.com/riscv/riscv-bitmanip
$ cd riscv-bitmanip

$ cd tools
$ sh build-all.sh

$ cd ..

$ cd tests
$ sh run.sh

It is probably riscv-bitmanip that is out of date.  It hasn't been maintained properly for months.  The main maintainer hasn't had enough time to work on it.


Unable to connect to the server: x509: certificate signed by unknown authority

Hello all! I am a beginner trying to use the operators on operatorhub.io. When I try to install one like this:
kubectl create -f https://operatorhub.io/install/wavefront.yaml
I always get:
Unable to connect to the server: x509: certificate signed by unknown authority
There is certainly some authentication step I am missing but I fail to see what exactly.
Thank you for your help.

@maxclac this may be the solution you're looking for https://github.com/kubernetes/kubectl/issues/823

Thanks a lot!

@maxclac can you please close this issue? Thanks!


Translation error on Spanish for "Comment" button

Buttons should use verbs instead of nouns. The verb for "Comment" in Spanish is "Comentar". The current value "Comentario" is the noun, which feels really weird in a button.
I expect this to be as simple as modifying the common.json for Spanish, setting "comment" value to "Comentar" instead of "Comentario".

Feel free to send a PR! 😃


Several feedbak

http://forum.htpcbeginner.com/showthread.php?tid=214

typo

All improvements implemented in dev.


False Positive (Virus Total/Hybrid Analysis)

Find out the file downloaded detected as below.

SHA-256 - 9619df23415da415550e20e3e442f998e85496be817062d946bc0af00ea89950
File Name - protonmail-desktop-setup-0.5.8.exe
File Size - 78.28 MB
Date Scanned : 2018-04-30 03:22:08 UTC
GitHub File : HERE
Virus Total Result : HERE

Thanks! What does "HW32.Packed.3BAF" mean? I couldn't find any information about it

Hey, below are result by Hybrid Analysis.
Hope that this will help you to analyze this "HW32.Packed.3BAF"
Hybrid Analysis Result : HERE

1/64 anti virus services says it's malicious. I don't why it's triggered as malicious and therefore it's hard to find any fix for this. Any help would be appreciated.

This is now solved. I'll see if we can build a CI job that scans the files every week to detect this early, but I'm closing this issue since it's resolved.


Add relabel config to etcd scrape config

Add relabel config to etcd scrape config to include the provider label

This change depends on the following change:
https://github.com/giantswarm/prometheus-config-controller/pull/167
Here is the list of Alerts being introduced in this change and their testing status.
CP Alerts

[ ]   -ControlPlaneEtcdCommitDurationTooHigh
[ ]   - ControlPlaneEtcdDBSizeTooLarge
[ ]   - ControlPlaneEtcdNumberOfLeaderChangesTooHigh
[ ]   - ControlPlaneEtcdHasNoLeader

TC Alerts

[ ]   - TenantClusterEtcdCommitDurationTooHighAWS
[ ]   - TenantClusterEtcdCommitDurationTooHighAzure
[ ]   - TenantClusterEtcdCommitDurationTooHighKVM
[ ]   - TenantClusterEtcdDBSizeTooLargeAWS
[ ]   - TenantClusterEtcdDBSizeTooLargeAzure
[ ]   - TenantClusterEtcdDBSizeTooLargeKVM
[ ]   - TenantClusterEtcdNumberOfLeaderChangesTooHighAWS
[ ]   - TenantClusterEtcdNumberOfLeaderChangesTooHighAzure
[ ]   - TenantClusterEtcdNumberOfLeaderChangesTooHighKVM
[ ]   - TenantClusterEtcdHasNoLeaderAWS
[ ]   - TenantClusterEtcdHasNoLeaderAzure
[ ]   - TenantClusterEtcdHasNoLeaderKVM

Can confirm that the alerts that were missing the provider label on tc clusters now has the provider label with the changes to prometheus-config-controller.


Working with JMS Text/Bytes Messages and Stomp

According to https://activemq.apache.org/stomp.html header line "content-length" determs which message type JMS client will be accepted.
https://github.com/jmesnil/stomp-websocket/blob/master/lib/stomp.js#L39 has hard code for it. So can it be configurable?

Able to send the Json message as Text message using below command- Stomp (Python)
conn.send(body=json.dumps(json_content), destination=destination, headers={'amq-msg-type':'text'})


JWT invalid?

I can generate a JWT just fine but when I try to validate the JWT it is invalid somehow:
const jwt = await makeJwt({ header, payload, jwtSecretKey })
const isJwtValid = await validateJwt(jwt, jwtSecretKey, { isThrowing: false })

In this case isJwtValid === null.
Also jwt.io indicates that the signature is not valid when I put the secret and JWT in on their landing page.

Hi @richcorbs , would you be so kind to give me the exact input data?

const jwtSecretKey = 'my-secret-secret'
const header = { alg: "HS256", typ: "JWT" }
const payload = { iss: "richard", exp: (await setExpiration(new Date().getTime() + 60000)) }

@richcorbs I could not replicate this error but I have some ideas what might have caused it in your case.

Execute the file with deno run --reload file.ts.
Don't forget that the function setExpiration (which doesn't return a promise by the way) never returns the same result twice if you use it the way you did.

I checked the following code with jwt.io and I got the same results:
 const key = "my-secret-secret"
const header = { alg: "HS256" as const, typ: "JWT" }
const payload = {
  iss: "richard",
  exp:<PHONE_NUMBER>118,
}

const jwt = await makeJwt({ header, payload, key })
const isJwtValid = await validateJwt(jwt, key, { isThrowing: false })
console.log(jwt)
console.log(isJwtValid)


Detailed Speaker Data

wait for backend to provide the data

bio
image-link
placeholder for images/default


Settings are loaded in a docker but not in Kubernetes

I have a FastAPI implementation with Pydrantic settings to load Environmental Variables.
I have made a docker image and run it in docker and all worked fine, but when I load the same image in a k8s cluster, I get the following error:
 Traceback (most recent call last):
   File "/tmp/api/./src/main.py", line 3, in <module>
     from core.dependencies.settings import settings
   File "/tmp/api/src/core/dependencies/settings.py", line 70, in <module>
     settings = Settings()
                ^^^^^^^^^^
   File "/usr/local/lib/python3.11/site-packages/pydantic_settings/main.py", line 72, in __init__
     **__pydantic_self__._settings_build_values(
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "/usr/local/lib/python3.11/site-packages/pydantic_settings/main.py", line 160, in _settings_build_values
     return deep_update(*reversed([source() for source in sources]))
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "/usr/local/lib/python3.11/site-packages/pydantic_settings/main.py", line 160, in <listcomp>
     return deep_update(*reversed([source() for source in sources]))
                                   ^^^^^^^^
   File "/usr/local/lib/python3.11/site-packages/pydantic_settings/sources.py", line 252, in __call__
     field_value = self.prepare_field_value(field_name, field, field_value, value_is_complex)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "/usr/local/lib/python3.11/site-packages/pydantic_settings/sources.py", line 426, in prepare_field_value
     env_val_built = self.explode_env_vars(field_name, field, self.env_vars)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "/usr/local/lib/python3.11/site-packages/pydantic_settings/sources.py", line 527, in explode_env_vars
     env_var = env_var.setdefault(key, {})
               ^^^^^^^^^^^^^^^^^^
 AttributeError: 'str' object has no attribute 'setdefault'

I searched, but I haven't really found any solution on this.
I use python 3.11
code:
from dotenv import find_dotenv
from pydantic import BaseModel
from pydantic_settings import BaseSettings, SettingsConfigDict

class PostgreSQL(BaseModel):
    host: str | None = None
    port: int = 5432
    user: str | None = None
    password: str | None = None
    database: str | None = None

class JWT(BaseModel):
    key: str = ""
    algorithm: str = "HS256"

class Authorization(BaseModel):
    basic: bool = False
    bearer: bool = False
    jwt: JWT = JWT()

class Api(BaseModel):
    host: str = "<IP_ADDRESS>"
    port: int = 3000
    sessionTimeout: int = 1800
    authorization: Authorization = Authorization()

class Settings(BaseSettings):
    model_config = SettingsConfigDict(
        env_nested_delimiter="_",
        env_file=find_dotenv(),
        env_file_encoding="utf-8",
        secrets_dir="/run/secrets",
        extra="ignore",
    )

    api: Api = Api()
    postgresql: PostgreSQL = PostgreSQL()

settings = Settings()

Thanks @vkaramanis for reporting this.
Please let us know your current pydantic-settings version. ( I think it is the latest version 2.1.0)
Could you provide your environment variables values? It would be great to fetch them by connecting to the container and running env command there.

@hramezani thanks for the reply, yes I am using 2.1.0
After your comment, I found the problem. k8s was rewriting some of my env vars because they were present in other services on the same namespace.
For example: POSTGRESQL_PORT=tcp://<IP_ADDRESS>:5432 (I cannot share all my vars)
Although I checked some of my vars I didn't check all of them, and it was slipped, sorry for that (stupid).
So I added a prefix to all of them from SettingsConfigDict and now it runs smoothly.
However, as a side note, I still do not understand why it raises this error.

Thanks @vkaramanis for updating.
Yeah, that's weird for me. that's why I asked you to provide your env variables.
I need a way to reproduce the problem. So, I don't know what is the reason.
I close the issue for now. but feel free to reopen it or report a new issue if you face the problem again or find a way to reproduce the problem.


Multiple Screen (with Validator set) tabs in a TabControl: ArgumentNullException in ValidatingModelBase.GetErrors()?

Hello,
first and foremost I would like to thank you for your hard work on this lovely framework: it's lightweight, powerful, with great documentation and basically it's been a lifesaver!
I have been having some issues though while trying to set Screen tabs in a TabControl with the Validator property set (indeed they are needed for CRUD operations in MDI-ish environment). In this situation, the program throws an ArgumentNullException on line 273 of ValidatingModelBase.cs, in the GetErrors() method.
I figure I'm doing something wrong, I'm fairly new to both WPF and MVVM, but I'm really stumped and can't figure it out. If it's an actual bug, it should be easy to reproduce since I seem to have the same problem when I edit the provided Stylet.Sample.ModelValidation sample project like so:

In ShellView.xaml

<Window ...>
    <Grid>
        <TabControl Style="{StaticResource StyletConductorTabControl}" />
    </Grid>
</Window>

In ShellViewModel.cs

public class ShellViewModel : Conductor<IScreen>.Collection.OneActive {
    public ShellViewModel(UserViewModel userViewModel) {
        this.DisplayName = "Stylet.Samples.ModelValidation";
        this.Items.Add(userViewModel);

        this.ActiveItem = userViewModel;
    }
}

Let me take a look that, that for getting on touch
On 9 August 2016 12:06:37 BST, egilhardaeron<EMAIL_ADDRESS>wrote:

Hello,
first and foremost I would like to thank you for your hard work on this
lovely framework: it's lightweight, powerful, with great documentation
and basically it's been a lifesaver!
I have been having some issues though while trying to set Screen tabs
in a TabControl with the Validator property set (indeed they are
needed for CRUD operations in MDI-ish environment). In this situation,
the program throws an ArgumentNullException on line 273 of
ValidatingModelBase.cs, in the GetErrors() method.
I figure I'm doing something wrong, I'm fairly new to both WPF and
MVVM, but I'm really stumped and can't figure it out. If it's an actual
bug, it should be easy to reproduce since I seem to have the same
problem when I edit the provided Stylet.Sample.ModelValidation sample
project like so:

In ShellView.xaml

<Window ...>
   <Grid>
     <TabControl Style="{StaticResource StyletConductorTabControl}" />
   </Grid>
</Window>

In ShellViewModel.cs

public class ShellViewModel : Conductor<IScreen>.Collection.OneActive {
   public ShellViewModel(UserViewModel userViewModel) {
       this.DisplayName = "Stylet.Samples.ModelValidation";
       this.Items.Add(userViewModel);

       this.ActiveItem = userViewModel;
   }
}

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/canton7/Stylet/issues/11

Yep, it's my bug. I think WPF has changed the way that it calls INotifyDataErrorInfo.GetErrors() since I wrote that code. I'll get that fixed up shortly.

Sorry, I've been away on vacation for a week. I'm looking at this now.


UX of moving stable branches

Planned:

[ ] Print warning if init has not been run and exit
[x] Add makefile target that could run init if necessary and then script (#162)
[ ] (refactor) clean up the subprocess calls

looks like 3 months have passed, any other suggestions on how to improve it?
(I'll probably look into those already mentioned tomorrow)

will be closed by f5cc893346af0d41a1ff7143db56a52564939a7e


[Event Request] Trigger OnRun in Codeunit 1313 "Correct Posted Purch. Invoice"

Dear Team, we would like to have the following Publisher added to the OnRun Trigger in Codeunit 1313 "Correct Posted Purch. Invoice"
trigger OnRun()
var
    PurchaseHeader: Record "Purchase Header";
    ItemJnlPostLine: Codeunit "Item Jnl.-Post Line";
    RedoApplications: Boolean;
begin
    RedoApplications := UnapplyCostApplication(ItemJnlPostLine, "No.");
    // START NEW EVENT
    OnBeforeCreateCorrectivePurchCrMemo(Rec, PurchaseHeader, CancellingOnly);
    // END NEW EVENT
    CreateCopyDocument(Rec, PurchaseHeader, PurchaseHeader."Document Type"::"Credit Memo", false);
    PurchaseHeader."Vendor Cr. Memo No." := PurchaseHeader."No.";
    OnAfterCreateCorrectivePurchCrMemo(Rec, PurchaseHeader, CancellingOnly);

    CODEUNIT.Run(CODEUNIT::"Purch.-Post", PurchaseHeader);
    SetTrackInfoForCancellation(Rec);
    if RedoApplications then
        ItemJnlPostLine.RedoApplications;
    Commit;
end;

[IntegrationEvent(false, false)]
local procedure OnBeforeCreateCorrectivePurchCrMemo(PurchInvHeader: Record "Purch. Inv. Header"; var PurchaseHeader: Record "Purchase Header"; var CancellingOnly: Boolean)
begin
end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


Fix indent size calculation in "vin indent object" extention

Previously it ignored the first indent character, which caused errors with tabs. You wouldn't get any errors in behavior with spaces as you'd typically have 4 spaces at each indent level, so 1 in calculation doesn't make a difference.
Can be tested on following text. Easier with vii
first level selects all
{
	second level with tab. will still select all before fix
	{
		third level with tab. Will select also the second level before fix
	}
}

first level selects all
{
    second level with spaces. Will work before fix
    {
        third level with spaces. will only select that line
    }
}

Looks good to me, thank you!


Can't change PTYSHELL to wsl.exe, powershell.exe is hardcoded?

Describe the bug
I use wsl for kubernetes tools. I don't have even kubectl for Windows installed.
I try to override SHELL or PTYSHELL environment variable to wsl.exe and still powershell.exe is spawned.
To Reproduce
Steps to reproduce the behavior:

Go to pods list
Click on 'Pod shell'

Expected behavior
bash should be started
Environment (please complete the following information):

Lens Version: 4.0.8
OS: Windows 10 with WSL2 and Ubuntu 20.04

Do you mean to use the wsl shell in the Lens terminal? Or are you actually expecting the pod container to be able to run it?

Yes, I want to use wsl.exe instead of powershell.exe in Lens terminal. Currently this 2nd is hard-coded and I can't use anything else.


New icon request for new portal

1. Managed Apps
2. icon--managed-solutions.svg
3. Icon was chosen to be an Icon for Managed Apps portal (former Cloud Managed Application Services). This icon would  be used in our Managed Apps portal (console.bluemix.net/managed-solutions)
4. https://ibm.ent.box.com/folder/56969498761
5. Screen Shot

Hi 👋 thank you for reporting! Last screenshot seems to tell me that it's a service icon - Is it correct? If so, carbon-icons repo doesn't manage service icons. Each services are responsible for managing them. Feel free to let us know if you have any questions. Thanks!

Hi
Our UI is basically application managed services and that will reside in the IBM cloud catalog as part of an offering. If you say we have to manage our icons, could you please guide me how to do that?

I assume you can simply put your SVG to where you want, but architects in IBM Cloud core console team may know more about this. I'd suggest tapping them. Thanks!

Thanks!

This is more of an App icon request and the proposed icon is not compatible with our current design language. Please direct here to request/contribute an App icon: https://github.ibm.com/carbon/app-icons


tests: fix end-to-end-tests

PR Checklist
PR Structure

[x] This PR has reasonably narrow scope (if not, break it down into smaller PRs).
[x] This PR avoids mixing refactoring changes with feature changes (split into two PRs
otherwise).
[x] This PR's title starts with name of package that is most changed in the PR, ex.
paymentservice.stellar, or all or doc if the changes are broad or impact many
packages.

Thoroughness

[x] This PR adds tests for the most critical parts of the new functionality or fixes.

What
Fix end-to-end tests.
Why
SEP-31 flow was wrong because we were not creating a sender client. This started to break recently.
Also, SEP-38 now requires a "context" field.

Reference Server Preview is available here:https://anchor-ref-pr315.previews.kube001.services.stellar-ops.com/SEP Server Preview is available here:https://anchor-sep-pr315.previews.kube001.services.stellar-ops.com/


[Registration] cast data in LCC and Diffeo, enhance txt in Manual

From PR https://github.com/Inria-Asclepios/medInria-public/pull/861 on MUSICardio.
This PR enhances the Registration workspace:

LCC Log Demons and Diffeomorphic cast data before registering, instead of blocking if the inputs were not the same size, spacing, etc.
Manual Registration: users were not seeing so much the landmark number, this PR enhance the design of the text.

:m:

This PR has been updated with the casts, and some typos fixed from https://github.com/Inria-Asclepios/medInria-public/pull/861


Could NOT find Boost:

I use a ubuntu20.04 LTS virtual machine, but i cannot pip the gfootball, here is the error logs. thanks very much.
 -- Found Python: /home/zzh/anaconda3/lib/libpython3.9.so (found version "3.9") found components: Development
  Using Python: 3.9
  -- Could NOT find Boost: missing: python39 (found /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found version "1.71.0"))
  python39 not found. Trying other names.
  -- Could NOT find Boost: missing: python3-py39 (found /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found version "1.71.0"))
  python3-py39 not found. Trying other names.
  -- Could NOT find Boost: missing: python-py39 (found /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found version "1.71.0"))
  python-py39 not found. Trying other names.
  CMake Error at CMakeLists.txt:113 (message):
    Boost Python not found

  -- Configuring incomplete, errors occurred!
  See also "/tmp/pip-install-5avl6psx/gfootball_f24dfc15e0d24ff888c84e5c4eec7570/third_party/gfootball_engine/CMakeFiles/CMakeOutput.log".
  gfootball/build_game_engine.sh: 第 29 行： pushd: third_party/gfootball_engine: 没有那个文件或目录
  error: Google Research Football compilation failed
  [end of output]

Make sure that libboost is installed. You can install on Ubuntu with this command:
sudo apt install libboost-python-dev

Hope it helps.

By the way, this is the error after I installed libboost from apt
Traceback (most recent call last):
  File "/opt/conda/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/opt/conda/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/mnt/rldm/scripts/evaluate_checkpoint.py", line 19, in <module>
    import gfootball.env as football_env
  File "/opt/conda/lib/python3.7/site-packages/gfootball/__init__.py", line 17, in <module>
    from gfootball.env import scenario_builder
  File "/opt/conda/lib/python3.7/site-packages/gfootball/env/__init__.py", line 21, in <module>
    from gfootball.env import config
  File "/opt/conda/lib/python3.7/site-packages/gfootball/env/config.py", line 27, in <module>
    import gfootball_engine as libgame
  File "/opt/conda/lib/python3.7/site-packages/gfootball_engine/__init__.py", line 43, in <module>
    from _gameplayfootball import *
ImportError: /usr/lib/x86_64-linux-gnu/libboost_python38.so.1.71.0: undefined symbol: _Py_tracemalloc_config

I have no idea how this happened. I worked with the previous build of Docker before :(

I believe that my problem is surely different from the original issue. It happened in running in a Docker when called import gfootball. Does anyone see ImportError: /usr/lib/x86_64-linux-gnu/libboost_python38.so.1.71.0: undefined symbol: _Py_tracemalloc_config before? My Docker has libboost-all-dev and libboost-python-dev installed.

For those who got a problem similar to mine, I fixed it by upgrading my Python version to 3.8 instead. And the _Py_tracemalloc_config is gone.
As for the original issue, might need zzhuncle to update whether installing libboost-all-dev is fixed or not.
Sorry for jamming my issue here in the same thread. I thought it related to libboost similarly.

I think that @zzhuncle problem is happening because of Python version mismatch. Ubuntu 20.04 has Python 3.8 by default, so apt also installs Boost.Python 3.8 and not 3.9. To run football with Python 3.9 you need to compile Boost.Python against the same version.
Thanks for the comments @fonylew. I think your error can be explained by the same reasoning (you had Python 3.7). I've been working on replacing Boost.Python with Pybind11. Once the PR is ready, it will eliminate such problems, because Python version will be resolved dynamically during compilation of the engine.

I have met the same issue.
And I have solved it by install py-boost under Anaconda environment.
Here is a reference https://anaconda.org/anaconda/py-boost

I have met the same issue.
And I have solved it by install py-boost under Anaconda environment.
Here is a reference https://anaconda.org/anaconda/py-boost

I have met the same issue.
And I have solved it by install py-boost under Anaconda environment.
Here is a reference https://anaconda.org/anaconda/py-boost

I have met the same issue.
And I have solved it by install py-boost under Anaconda environment.
Here is a reference https://anaconda.org/anaconda/py-boost

I have met the same issue.
And I have solved it by install py-boost under Anaconda environment.
Here is a reference https://anaconda.org/anaconda/py-boost

Thank you!!!! [Yurui-Li](https://github.com/Yurui-Li) Your solution is the cleanest one that does save my time! Recommend this solution to everyone who encountered the same bug.

I have met the same issue. And I have solved it by install py-boost under Anaconda environment. Here is a reference https://anaconda.org/anaconda/py-boost

thanks!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


Use a copy of dask_gufuc_kwargs

[x] Closes #4399
[ ] Tests added
[x] Passes isort . && black . && mypy . && flake8
[ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
[ ] New functions/methods are listed in api.rst

Following the suggestion of @kmuehlbauer, I am using just a shallow copy since a deep one is not required.

Thanks @DangoMelon