[WIP] vertx migration 3.* -> 4.*

Description
Main Changes:

jdbcClient -> jdbcPool . Reason : jdbcClient is deprecated.
message.reply() -> message.replyAndRequest(). Resaon: message.reply() is removed.

Other Changes:

AnnotationVerticles.deleteProjectUUIDList() logic was modified. Initially was called two times causing logging problem.

PortfolioVerticles.getAllProjectsForAnnotationType() added ORDER BY in query to remove sorting inside method.
ClassifaiApp modification for better reading.

Tested on V1 & V2.
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Tested on?

[x] Windows
[x] Linux Ubuntu
[ ] Centos
[ ] Mac
[ ] Others  (State here -> xxx )

Checklist:

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

@codenamewei duplication unavoidable as the repeated codes are hard to refactor out, also it should stay in the class for easy reading.

removing logging created by vertx


Question: Is there a plan to support port forwarding in CNI

Hi,
I'd like to know if there is a plan to support port forwarding (e.g., forward the packet sent to a host port to a container port) in CNI plugin (e.g., bridge plugin). I think this is a common and useful feature, thanks!

Port forwarding is currently beyond the scope of CNI and there is currently no plans to change that. However if you have a good use-case please provide a thorough explanation and at best paired with a pull-request ;-)

Closing in favor of #46


Add one constructor for Uint types

Part of #1186
Addresses https://github.com/CosmWasm/cosmwasm/issues/1186#issuecomment-1151669778

Now it's being tested. :)


Add state to the progress bar in the plans table for Partially Completed plans

From a conversation with @vconzola brought up by https://bugzilla.redhat.com/show_bug.cgi?id=1951660. Currently a plan is marked Successful (green) if any of the VMs succeeded and none of them failed, even if some of the VMs were canceled. We do want to allow restarting a plan that has only successful and canceled VMs, but it's a weird experience to see a green checkmark with a retry button next to it.
The proposal is to add a state of the progress bar for "Partially Completed" plans, which would be plans that are done executing, have no failures, but not all VMs succeeded. (currently this means the rest of the VMs were canceled, but could be  more general if we add features in the future to e.g. execute only some VMs in a plan). The progress bar would be a unique color (grey?) and still be filled in with the proportion of succeeded to canceled VMs.

Related controller issue that would simplify the logic here: https://github.com/konveyor/forklift-controller/issues/270
Note that if this condition was added to the CR we could also use it to simplify the canPlanBeStarted logic.

Note, we do already have a state for "Finished - Incomplete" that appears if the plan:

has been started before
does not have the Executing, Succeeded, Canceled or Failed conditions
can be restarted according to canPlanBeStarted, which means it has some VM that does not have the Succeeded condition

Possibly we need to show this case if the plan has the Succeded condition but not every VM has the Succeeded condition. However it would be much cleaner if we could just have a partially-completed condition (konveyor/forklift-controller#270).
Also we should revisit the look and feel, I threw this together without much consultation with Vince:


EmployeeSpotlight: typescript compile failure on gulp serve

I was going to try a few of your samples and started with one I though could be useful to build from - the employee spotlight.  Cloned it, ran npm install, I tried running tsc install but I get an error that 'install.ts' is not there.  So I tried bypassing and doing a gulp serve but got errors.
Then tried installing typings globally, running npm install again, and then running gulp serve - same thing.  I'm new to Typescript so it may some oversight but in googling I see a lot of others with similar compile problems not exactly what I'm encountering.
Here are the errors along the versions at the end:

[14:28:52] Error - 'typescript' sub task errored after 2.05 s
TypeScript error(s) occurred.
[14:28:52] 'serve' errored after 2.75 s
[14:28:52]
[14:28:52] ==================[ Finished ]==================
Error - typescript - node_modules/@microsoft/sp-property-pane/node_modules/@microsoft/sp-component-base/dist/index-internal.d.ts(2553,48): error TS2312: An interface may only extend a class or another interface.
Error - typescript - node_modules/@microsoft/sp-property-pane/node_modules/@microsoft/sp-page-context/dist/index-internal.d.ts(164,22): error TS2304: Cannot find name 'AzureActiveDirectoryInfo'.
Error - typescript - node_modules/@microsoft/sp-property-pane/node_modules/@microsoft/sp-page-context/dist/index-internal.d.ts(586,20): error TS2304: Cannot find name 'O365GroupAssociation'.
Error - typescript - node_modules/@microsoft/teams-js/dts/MicrosoftTeams.d.ts(1,14): error TS2474: In 'const' enum declarations member initializer must be constant expression.
Error - typescript - node_modules/@microsoft/teams-js/dts/MicrosoftTeams.d.ts(2,10): error TS2474: In 'const' enum declarations member initializer must be constant expression.
Error - typescript - node_modules/@microsoft/teams-js/dts/MicrosoftTeams.d.ts(3,14): error TS2474: In 'const' enum declarations member initializer must be constant expression.
Error - typescript - node_modules/@microsoft/teams-js/dts/MicrosoftTeams.d.ts(4,10): error TS2474: In 'const' enum declarations member initializer must be constant expression.
Error - typescript - node_modules/@microsoft/teams-js/dts/MicrosoftTeams.d.ts(85,19): error TS1066: In ambient enum declarations member initializer must be constant expression.
Error - typescript - node_modules/@microsoft/teams-js/dts/MicrosoftTeams.d.ts(86,18): error TS1066: In ambient enum declarations member initializer must be constant expression.
Error - typescript - node_modules/@microsoft/teams-js/dts/MicrosoftTeams.d.ts(270,12): error TS2474:
In 'const' enum declarations member initializer must be constant expression.
Error - typescript - node_modules/@microsoft/teams-js/dts/MicrosoftTeams.d.ts(271,13): error TS2474:
In 'const' enum declarations member initializer must be constant expression.
Error - typescript - node_modules/@microsoft/teams-js/dts/MicrosoftTeams.d.ts(272,12): error TS2474:
In 'const' enum declarations member initializer must be constant expression.
Error - typescript - node_modules/@microsoft/teams-js/dts/MicrosoftTeams.d.ts(378,24): error TS2474:
In 'const' enum declarations member initializer must be constant expression.
Error - typescript - node_modules/@microsoft/teams-js/dts/MicrosoftTeams.d.ts(379,27): error TS2474:
In 'const' enum declarations member initializer must be constant expression.
Error - typescript - node_modules/@microsoft/teams-js/dts/MicrosoftTeams.d.ts(943,42): error TS2304:
Cannot find name 'object'.
Error - typescript - node_modules/sp-client-custom-fields/node_modules/@microsoft/sp-component-base/dist/index-internal.d.ts(2553,48): error TS2312: An interface may only extend a class or another interface.
Error - typescript - node_modules/sp-client-custom-fields/node_modules/@microsoft/sp-page-context/dist/index-internal.d.ts(164,22): error TS2304: Cannot find name 'AzureActiveDirectoryInfo'.
Error - typescript - node_modules/sp-client-custom-fields/node_modules/@microsoft/sp-page-context/dist/index-internal.d.ts(586,20): error TS2304: Cannot find name 'O365GroupAssociation'.
Error - typescript - node_modules/sp-client-custom-fields/node_modules/@microsoft/sp-webpart-base/dist/index-internal.d.ts(248,99): error TS2304: Cannot find name 'IPropertyPaneConsumer'.
Error - typescript - node_modules/sp-client-custom-fields/node_modules/@microsoft/sp-webpart-base/dist/index-internal.d.ts(978,66): error TS2312: An interface may only extend a class or another interface.
Error - typescript - src/webparts/employeeSpotlight/EmployeeSpotlightWebPart.ts(133,44): error TS2304: Cannot find name '$'.
Error - typescript - src/webparts/employeeSpotlight/EmployeeSpotlightWebPart.ts(428,65): error TS2345: Argument of type '{ label: string; initialColor: string; disabled: false; onPropertyChange: any; properties: IEmplo...' is not assignable to parameter of type 'IPropertyFieldColorPickerMiniProps'.
Error - typescript - src/webparts/employeeSpotlight/EmployeeSpotlightWebPart.ts(438,67): error TS2345: Argument of type '{ label: string; initialColor: string; disabled: false; onPropertyChange: any; properties: IEmplo...' is not assignable to parameter of type 'IPropertyFieldColorPickerMiniProps'.
Error - 'typescript' sub task errored after 2.05 s
TypeScript error(s) occurred.
[14:28:53] Project js-employee-spotlight version: 0.0.1
[14:28:53] Build tools version: 2.10.2
[14:28:53] Node version: v8.11.4
[14:28:53] Total duration: 5.14 s
[14:28:53] Task errors: 24

Package.json has these dependencies and dev dependencies:
"dependencies": {
"@microsoft/sp-client-base": "~1.0.0",
"@microsoft/sp-core-library": "~1.0.0",
"@microsoft/sp-webpart-base": "~1.0.0",
"@types/webpack-env": ">=1.12.1 <1.14.0",
"immutability-helper": "2.2.0",
"sp-client-custom-fields": "^1.3.4"
},
"devDependencies": {
"@microsoft/sp-build-web": "~1.0.1",
"@microsoft/sp-module-interfaces": "~1.0.0",
"@microsoft/sp-webpart-workbench": "~1.0.0",
"@types/chai": ">=3.4.34 <3.6.0",
"@types/mocha": ">=2.2.33 <2.6.0",
"gulp": "~3.9.1",
"gulp-util": "^3.0.8"
}
Any help would be appreciated.

I am having the same issue with the build

Any update on this?  I was hoping to make use of these files but can't move forward with this issue unfortunately.

I am having the same issue with the build

Any update on this?

Any update on this? I was hoping to make use of these files but can't move forward with this issue unfortunately.

Any update on this?

@alwaysrcorliss did you ever resolve this issue?
I'll go ahead and close this issue as there has been no activity here for a while and I suspect this issue was related to older versions of SPFx.
If you're still experiencing issues, feel free to open a new issue and hopefully, we can get someone's attention.


git-credential-manager-core reported as both out of date and installed

I'm experiencing exact same error as described in this issue
Output of brew config and brew doctor commands
% brew config
HOMEBREW_VERSION: 3.0.3
ORIGIN: https://github.com/Homebrew/brew
HEAD: 9d2ee344f6a0f5e032618802e624777fc7812ae3
Last commit: 26 hours ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: 2dd74ff14b52d13d41990731229051b455f9cc9a
Core tap last commit: 2 hours ago
Core tap branch: master
HOMEBREW_PREFIX: /usr/local
HOMEBREW_CASK_OPTS: []
HOMEBREW_MAKE_JOBS: 16
Homebrew Ruby: 2.6.3 => /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.6.3_2/bin/ruby
CPU: 16-core 64-bit kabylake
Clang: 12.0 build 1200
Git: 2.30.1 => /usr/local/bin/git
Curl: 7.64.1 => /usr/bin/curl
macOS: 10.15.7-x86_64
CLT: <IP_ADDRESS>.1.1610135815
Xcode: 12.4

%brew doctor
Your system is ready to brew.

Brewfile

brew "michaeleisel/zld/zld"
brew<EMAIL_ADDRESS>brew "git"
brew "git-lfs"
brew "dotnet"

brew "carthage"

When I run brew bundle check --file="Brewfile" -vvvv I get this:
brew bundle can't satisfy your Brewfile's dependencies.
→ Cask git-credential-manager-core needs to be installed or updated.
Satisfy missing dependencies with `brew bundle install`.

If then I run brew bundle install --file="Brewfile" -vvvv it produces the following output:
Installing git-credential-manager-core cask. It is not currently installed.
Warning: Cask 'git-credential-manager-core' is already installed.

To re-install git-credential-manager-core, run:
  brew reinstall git-credential-manager-core
Installing git-credential-manager-core
Skipping install of zld formula. It is already up-to-date.
Using michaeleisel/zld/zld
Skipping install of<EMAIL_ADDRESS>formula. It is already up-to-date.
Using<EMAIL_ADDRESS>Skipping install of git formula. It is already up-to-date.
Using git
Skipping install of git-lfs formula. It is already up-to-date.
Using git-lfs
Skipping install of dotnet formula. It is already up-to-date.
Using dotnet
Skipping install of carthage formula. It is already up-to-date.
Using carthage
Homebrew Bundle complete! 7 Brewfile dependencies now installed.

If I run check again
Output of brew config and brew doctor commands
% brew config
HOMEBREW_VERSION: 3.0.3
ORIGIN: https://github.com/Homebrew/brew
HEAD: 9d2ee344f6a0f5e032618802e624777fc7812ae3
Last commit: 26 hours ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: 2dd74ff14b52d13d41990731229051b455f9cc9a
Core tap last commit: 2 hours ago
Core tap branch: master
HOMEBREW_PREFIX: /usr/local
HOMEBREW_CASK_OPTS: []
HOMEBREW_MAKE_JOBS: 16
Homebrew Ruby: 2.6.3 => /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.6.3_2/bin/ruby
CPU: 16-core 64-bit kabylake
Clang: 12.0 build 1200
Git: 2.30.1 => /usr/local/bin/git
Curl: 7.64.1 => /usr/bin/curl
macOS: 10.15.7-x86_64
CLT: <IP_ADDRESS>.1.1610135815
Xcode: 12.4

%brew doctor
Your system is ready to brew.

What does brew list --cask and brew outdated --cask output?

brew list --cask
git-credential-manager-core

And brew outdated --cask
has no output

It's not in your Brewfile, what's trying to install it?

Sorry, I missed first line of Brewfile while pasting it. Here is the correct one.
cask "git-credential-manager-core"

brew "michaeleisel/zld/zld"
brew<EMAIL_ADDRESS>brew "git"
brew "git-lfs"
brew "dotnet"

brew "carthage"

Just wanted to update and close this ticket.
I was missing to install Java for sorting this issue.

Glad you got it fixed.


[BUG] tsp script, avoid overwrite emitter-output-dir

https://github.com/Azure/azure-sdk-for-java/blob/main/eng/scripts/Language-Settings.ps1#L756-L758
Check if we should change it to e.g.
--arg="java-sdk-folder=$repositoryRoot"

to make sure it works consistently with tspconfig in spec repo.
https://github.com/Azure/azure-rest-api-specs/blob/main/specification/contosowidgetmanager/Contoso.WidgetManager/tspconfig.yaml

Hi @weshaggard / @weidongxu-microsoft,
To avoid overwrite emitter-outoput-dir, I tried to set java-sdk-folder, I tested locally, we can use --arg java-sdk-folder=C:\\workspace\\azure-sdk-for-java to generate source code in correct directiory, here C:\\workspace\\azure-sdk-for-java is my local java sdk folder. I updated Language-Settings.ps1 to set the java-sdk-folder to my local dir and run the TypeSpec-Project-Generate.ps1 script (PS: I deleted the FakedSharedModel and related improts in main.tsp as we have this issue to make codegen successfully). Please see below screeshot for more details.
One problem is the API Get-java-EmitterAdditionalOptions does not have project root folder (i.e. the java sdk folder) as an input parameter, so I hard coded --arg java-sdk-folder=C:\\workspace\\azure-sdk-for-java in my local Language-Settings.ps1 code. I think we will need to update this API to include another parameter $projectRoot, code in Language-Settings.ps1 may look like below. @weshaggard @m-nash, what do you think? Could we support this?
function Get-java-EmitterAdditionalOptions([string]$projectDirectory, [string]$projectRoot) {
  return "--arg java-sdk-folder=$projectRoot"
}

Follow-up could depends on whether/how design of emitter-output-dir in tspconfig.yaml changes.
If we had a shared script to create/update tsp-location.yaml in SDK repo (for first package, that script can use the path of emitter-output-dir to create the tsp-location.yaml on correct folder), and this "Get-java-EmitterAdditionalOptions" can remain unchanged.
Steps could be

TypeSpec-Project-TspLocation.ps1 reads the emitter-output-dir, resolve it via provided java-sdk-folder and the default service-directory-name, create or update the tsp-location.yaml at emitter-output-dir.
TypeSpec-Project-Sync.ps1 checkout the spec repo via tsp-location.yaml.
TypeSpec-Project-Generate.ps1 generates the code, with projectDirectory be the location of tsp-location.yaml folder (which would be same of the resolved emitter-output-dir, guaranteed by step 1).

If there is different design, we may need to handle it differently in Language-Settings.ps1

@weidongxu-microsoft I don't know that we want to avoid this.  @raych1 / @weshaggard we were supposed to discuss how the project-root would come in for all scenarios and hopefully avoid any env variables.  I would hold off on this issue until we have clarity in that area.

Sure, we will wait till we had complete design on the sdk automation procedure.

@haolingdong-msft if project-root == repo-root you can find this by running this command $root = git rev-parse --show-toplevel inside your function and doing any concatenation that is needed. However this should already be part of the path in the $projectDirectory parameter that is passed in.
You could also find it via a relative path to the running script since that will always be in {repo-root}/eng

Thanks Micheal, I will try.

@raych1 is the one working on a design for how we handle these paths. Some of the ideas are in his PR https://github.com/Azure/azure-rest-api-specs/pull/23768.
Ray do you have plan for how we to handle this yet?

@m-nash correct based on @raych1 currently proposal at https://github.com/Azure/azure-rest-api-specs/pull/23875 and https://github.com/Azure/azure-rest-api-specs/pull/23866 we will continue to be setting the emitter-output-dir when calling the emitter in Language-Settings.ps1

OK, then we likely have NOOP on this task.
The tspconfig.yaml no longer have emitter-output-dir in emitter options, and automation with Script will have the $projectDirectory points to the location of the project (may be from tsp-location.yaml and ultimately from project-dir option in tspconfig.yaml).

Thanks @weshaggard, @m-nash for the info, we will keep the current code as it is.

The code that is passing in the emitter-output-path should remain the same but the 2 things that will still need to be updated is the java script will need to start calling @raych1's common wrapper script and the java emitter will need to add support for the package-dir property.


[Event Request] Codeunit 5707 TransferOrder-Post + Print - PrintReceipt - OnBeforePrintReceipt

Hi,
We would like to extend Codeunit TransferOrder-Post + Print PrintReceipt procedure like this:

OnBeforePrintReceipt(DocNo, IsHandled);
if IsHandled then
    exit;

[IntegrationEvent(false, false)]
local procedure OnBeforePrintReceipt(DocNo: Code[20]; var IsHandled: 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.


Allow to configure and disable the layers widget

This PR changes current widget behaviour to allow to configure the widget to be used for switching between the different layers. This way, it is possible to develop custom widgets for that purpose. In addition to this, it is also possible to disable layer switching at all by providing an empty value for the layer widget preference.

Coverage decreased (-0.4%) to 97.737% when pulling 9ebb81a458f56a9f89751f2fb6a8a9430b8969c5 on aarranz:feature/custom-layer-widget into b68bcc1ecc602674b7a76b4f55934a21569d630f on Wirecloud:develop.

@aarranz
I confirmed that the layerswidget option works. Thanks!

Great 👍. Glad to heard that this PR is useful 😄.
In any case, we think it is only the first step, we need to allow to configure the default base layer, improve the basic layer-selector widget, document how to create a custom widget for switching between layers and so on.


Allow for skipping tags in all cases regardless of amend vs no amend

I see the existing option of --skip-tag but this only works when you're amending.  Since we use external build systems (buddybuild) which creates our tags for us, we never want to generate tags based on the version bump.
I suggest the --skip-tags always allows  control of whether tags are created.

@tmchow RNV doesn't actually create tags, the --skip-tag option is there because it makes sense to update Git tags created by npm version ... by default. However, this is only done when you add RNV to the "version" or "postversion" npm script. In all other situations, RNV only bumps versions and it's up to the user to commit the changes and update any Git tags.


Serializing F# object expressions

Object expressions in F# (https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/object-expressions) is a great way to cut down on the amount of unnecessary types in your program. It would be especially useful when using a library like MassTransit which highly encourages you to use interfaces for all your message types. However, Json.net just returns an empty json when you try to serialize one of these.
Source/destination types
public interface MyInterfaceType
{
    int Id { get; }
    string Text { get; }
}

let myObject =
    { new MyInterfaceType with
         member x.Id = 42
         member x.Text = "Banana" }
let serialized = JsonConvert.SerializeObject(myObject)
// at this point, serialized is the string "{}"

Expected behavior
I expected this to serialize to something similar to this
{
    "Id": 42,
    "Text": "Banana"
}

Actual behavior
Instead I only get {}

Same thing happens when implementing the interface with an explicit type

The problem is that the type generated by F# has private properties and Json.NET only serializes public properties.
Is there a way to know that a type is from an object expression? If there was then Json.NET could serialize values from the interfaces it implements.

@JamesNK seems that the trouble is that the F# type has explicitly implemented properties.
Given an object expression
let myObject =
    { new IMyInterfaceType with
           override x.Id = 42
           override x.Text = "Banana"
}

They are available as you would expect
myObject.GetType().GetInterfaces()

But then ambiguity becomes a problem.

Frankly, the inability to implicitly Implement an interface in F# is a very awkward aspect of the language itself that causes many other impedance mismatches, and makes library consumption unnecessarily awkward. I think it was a bad language design decision.


Add search to CountrySelectorDropdown

What has been done

Added the ability to search in the country-selector dropdown

Closes #54

Added related tests

:tada: This PR is included in version 2.3.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


int overflow test and use hex notation

hex literal and test for int
hex notation for int64 and test
remove uint64 wrapper function

Pull Request Test Coverage Report for Build 1470
Details

3 of 11 (27.27%)  changed or added relevant lines in 1 file are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.004%) to 84.435%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

strconv/UInt64.mbt
3
11
27.27%

Files with Coverage Reduction
New Missed Lines
%

target/wasm-gc/debug/test/int64/__generated_driver_for_underscore_test.mbt
2
66.67%

Totals

Change from base Build 1469:
-0.004%

Covered Lines:
2989

Relevant Lines:
3540

💛  - Coveralls


Xylike tests

bug fixes in XYLike and more tests

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@4480ffb). Click here to learn what that means.
The diff coverage is 100%.

@@            Coverage Diff            @@
##             master     #281   +/-   ##
=========================================
  Coverage          ?   76.48%
=========================================
  Files             ?      132
  Lines             ?    13896
  Branches          ?        0
=========================================
  Hits              ?    10629
  Misses            ?     3267
  Partials          ?        0


Make .cabal meta-data more accurate

We need this so cabal (this is even more important with the upcoming
nix-style cabal features) can do a proper job so this is a pre-requisite
for the new build-system being used by default for GHC anyway, as we
need to be as accurate as possible with the build specification to give
git bisect a chance of remaining usable.

Thanks @hvr! One question: do you think it makes sense to add alex and happy into dependencies? Obviously they are not direct dependencies, but the build system is useless without them.

@snowleopard well, you could add dependencies to alex and happy as buildtools with proper version bounds (rather than as build-depends which would be wrong and may not even work with future cabal versions). However, this (i.e. automatic installation of build-tools) is one area that's still in flux in cabal. Adding as build-tools won't hurt however.

Thanks @hvr! It seems less straightforward than I thought, so let's postpone adding alex and happy to the cabal file.
This is now merged.


Cannot generate BOM file

I'm trying to generate a BOM file, but I'm getting:
Could not get unknown property 'dependencyManagement' for object of type
org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication.

Indeed if I take the sample code from here and paste it into a new project and try to run any task, I get this error.
Any hints on what I'm doing wrong?
(I tried with a few Gradle versions, but I'm currently on 3.3.)

@viktornordling possibly you were following the previously-broken README example?  See the fix at https://github.com/nebula-plugins/nebula-dependency-recommender-plugin/pull/46

Yes, unless I time travelled, I was reading the broken version of the README. :) Thanks @ash211, I'll close this issue.


Simplify message filtering

Hi Frederik and Jonathan,
We discussed simplifying the message-filtering logic a few days ago. I played around with it for a bit and wanted your opinion. Nothing that's working yet, but for feedback on the general direction.
The idea is to simplify the current way of filtering messages to something like:
async with Client("test.mosquitto.org") as client:
    async with client.messages() as messages:
        await client.subscribe("measurements/#")
        async for message in messages:
            if message.matches("measurements/+/something"):
                print(message.payload)

For this, we need to reimplement paho-mqtt's message filtering logic in a new MqttMessage class that subclasses the paho-mqtt one.
In our initial discussion, you noted that you had an idea of how to add this in a backward-compatible way, Frederik. Could you give me some pointers how? 😊
Things I'm unsure about:

Should we need to check the given topic for validity? e.g. throw an exception for something like one/#/three
Match edge cases:

'one' matches('one/#')  # -> currently: False
'one' matches('one/+')  # -> currently: False
'$share/one' matches('one')  # -> currently: True

~ Felix

Hi Felix,
Why do we need to reimplement the filtering logic?
You have in the function rec use recurse, I think.
You can also use pre-commit before pushing.

Hi Jonathan,
Thanks for taking a look!

Why do we need to reimplement the filtering logic?

As far as I understand it, paho-mqtt builds a tree to filter messages when you pass a topic to filtered_messages(), and then uses that tree to generate iterators that return messages matching these topics. The part that makes the current asyncio-mqtt approach cumbersome is that we have multiple iterators.
I don't see a way to reuse the paho-mqtt filtering logic, at least not directly, to filter inside only one iterator. Maybe you have some idea?

You have in the function rec use recurse, I think.

True, that's an error.

You can also use pre-commit before pushing.

Good tip, thanks! I'll try to get that going. Maybe we can write a CONTRIBUTING.md with handy info like that.

Good tip, thanks! I'll try to get that going. Maybe we can write a CONTRIBUTING.md with handy info like that.

I have added one. Do you have any feedback?

Looks great, Jonathan! 😎 🚀 Maybe we can add pre-commit as a development dependency to the setup.py, or the pyproject.toml respectively. Then we don't have to run pip install pre-commit separately. I don't have experience with pre-commit though, so I don't know what the best practice is. What do you think?

I would keep the installation of pre-commit separate. I have never seen it in the extra dependencies.

All right, sounds good! 👍

Been a busy week at work, so I apologize for the delay. I'll try to set some time aside for asyncio-mqtt this weekend.
Great to see this PR as per our discussion! Let me have a look. :)

In our initial discussion, you noted that you had an idea of how to add this in a backward-compatible way, Frederik. Could you give me some pointers how? 😊

As long as we don't change the semantics of filtered_messages and unfiltered_messages then we are safe. :) The API that you propose accomplishes this via a new messages method. 👍 This is part of the reason why I didn't use the messages in the existing API (to leave it open for future use). ;)

Should we need to check the given topic for validity? e.g. throw an exception for something like one/#/three

In my oppinion, yes!
I propose that we do the following:

Change unfiltered_messages so that it allows multiple, simultaneous calls (this is easy and backwards-compatible)
Add a new messages method that wraps unfiltered_messages and wraps each message in a new asyncio_mqtt.Message class.
Add a new asyncio_mqtt.Message class. This class has the following properties:

Message.topic of type MqttTopic. On construction (in __init__) we check for topic validity according to the MQTT specification. Add a MqttTopic.matches method.
Message.payload with the raw message data.

This results in the following API (example):
async with Client("test.mosquitto.org") as client:
    async with client.messages() as messages:
        await client.subscribe("measurements/#")
        async for message in messages:
            if message.topic.matches("measurements/#"):
                print(f"Measurement: {message.payload}")
            if message.topic.matches("measurements/+/something"):
                print(f"Measurement something: {message.payload}")

Note that if the both if statements may be true at the same time. That is a valid use case. Let me know what you think of this API.
I vote that we keep the "old" filtered_messages and unfiltered_messages methods around to not break compatibility.
The biggest drawback of this new API is that we have to replicate existing paho-mqtt functionality in the MqttTopic.matches method. I don't like that aspect. I do really like the resulting API, though. 😅 Decisions, decisions. :)
Again thanks for this PR. I invite everyone to give their oppinion in this discussion. 👍
~Frederik

Should we need to check the given topic for validity? e.g. throw an exception for something like one/#/three

In my oppinion, yes!

mqtt.Client._filter_wildcard_len_check() implements it.

Thanks for the feedback, Frederik!

I propose that we do the following:

Change unfiltered_messages so that it allows multiple, simultaneous calls (this is easy and backwards-compatible)
Add a new messages method that wraps unfiltered_messages and wraps each message in a new asyncio_mqtt.Message class.
Add a new asyncio_mqtt.Message class. This class has the following properties:

Message.topic of type MqttTopic. On construction (in __init__) we check for topic validity according to the MQTT specification. Add a MqttTopic.matches method.
Message.payload with the raw message data.

Sounds good! Using an own Topic class is a good idea I think 👍 message.topic.matches() is clearer than message.matches().

mqtt.Client._filter_wildcard_len_check() called in mqtt.Client.subscribe() implements it.

Great find, thanks Jonathan!

Finally had some time again! 😊
Jonathan, following the CONTRIBUTING.md worked really nicely, I got pre-commit set up now 👍
I'm glad for all feedback, I'm still a bit unsure if what I'm doing makes sense 😄

Change unfiltered_messages so that it allows multiple, simultaneous calls (this is easy and backwards-compatible)

Here I got stuck a bit. We can't simply use message_callback_add (as we do for unfiltered_messages) as consecutive calls with the same topic value ("#") overwrite the old callback value.
I could set the _on_message callback each time with a function that calls all old _put_in_queue callbacks plus the new one. But then I don't know how to delete them again when we exit the context manager. Or am I going in the wrong direction?

Jonathan, following the CONTRIBUTING.md worked really nicely, I got pre-commit set up now +1
:tada:

Great to see continued work on this. Keep it up. 😄 👍

Here I got stuck a bit. We can't simply use message_callback_add (as we do for unfiltered_messages) as consecutive calls with the same topic value ("#") overwrite the old callback value.
I could set the _on_message callback each time with a function that calls all old _put_in_queue callbacks plus the new one. But then I don't know how to delete them again when we exit the context manager. Or am I going in the wrong direction?

I was thinking something like this:

Set the self._client.on_message callback to a new internal method, e.g., _broadcast_unfiltered_messages during __init__. Never change self._client.on_message since then.
Rework the unfiltered_messages method so that it simply adds cb to a client-wide set of "listeners". E.g., self._listener_cbs.add(cb). It removes cb from the same set in the finally block.
Inside _broadcast_unfiltered_messages we iterate through all cbs in self._listener_cbs and call it. This way, we effectively broadcast the message.

Does it make sense? If not, just let me know and I'll try to write up some pseudo code for it. :)

It's kind of a poor man's implementation of the Observer pattern. 😁

It removes cb from the same set in the finally block.

That's what I was missing! Thank you for your always very well thought out reviews, Frederik! 🎉

I think this is done from my side.
Summary of changes:

New message Topic class that implements a matches method to filter against wildcard topics
New Message class, ultimately only used to able to use our new Topic class
New messages() generator, that works like our unfiltered_messages() generator, but returns messages of our own Message class
Multiple messages() generators can be used at the same time; The old un/filtered_messages() generators work exactly the same as before
On calling them, issue warning that un/filtered_messages() will be removed in a future release
Updated tests and documentation

I'm glad about any feedback! When you give the approval I'll merge 😊

Thanks for the comments, Frederik! 🚀

Should we release a 1.0.0 before we merge this in?

Staying on 0.x is cheating a bit, but I think the flexibility is great for us maintainers, especially with new ideas like discussed in the anyio PR. In my opinion we're playing fair if we release 0.15 with this and then remove the old un/filtered_messages in the release after (together with other improvements). Like this the breaking change comes with enough warning.

Staying on 0.x is cheating a bit, but I think the flexibility is great for us maintainers, especially with new ideas like discussed in the anyio PR. In my opinion we're playing fair if we release 0.15 with this and then remove the old un/filtered_messages in the release after (together with other improvements). Like this the breaking change comes with enough warning.

Too hurt as few users as possible let's at least have a long deprecation period on the old (un)filtered_messages. Otherwise, I agree. 👍 As long as we are on 0.x.x we can break things. I do think that we should release a 1.0.0 soon, though.

Let me know if you need more feedback/review from me. 👍 It's been a busy week, so I kind of lost track of these PRs/issues.

hi @empicano . Sorry but the deprecation message was not very clear to me in regards to how to use messages() going forwards.
I currently have a code that looks like this:
https://github.com/flavio-fernandes/mqtt2kasa/blob/9269fba62be65a6f68ff336646c9e9057a4ba7dc/mqtt2kasa/main.py#L144-L154
Is it proper for me to simply change the last few line to looks like :
        messages = await stack.enter_async_context(client.messages())
        await client.subscribe("#")
        task = asyncio.create_task(handle_mqtt_messages(messages, main_events_q))
        tasks.add(task)

?  or is there a better recommended way? Please document a before and after example, so people like me don't have to bother you. ;)
Thanks,
-- flaviof

Hi Flavio,
Sorry for the confusion! I admit the deprecation message could be a bit more descriptive.
messages() is mostly the same as the deprecated unfiltered_messages(), so you should be able to simply switch it out in your case (minus the added await client.subscribe("#"); As far as I understand your code, you're doing more fine-grained subscriptions a few lines after). This PR mainly changed how filtering messages work, but you don't use the deprecated filtered_messages() as far as I can see.
The main difference between messages() and unfiltered_messages() is that messages() returns instances of our own Message class and not the paho-mqtt one.
Hope that helps! 🙂


⚠ Bofrost.at has degraded performance

In 24f91cc, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2059 ms

Resolved: Bofrost.at performance has improved in 2c7eaef after 311 days, 10 hours, 45 minutes.


-NoTitle in New-PodeWebCard doesnt seem to work.

As the title of the issue says when using -NoTitle in New-PodeWebCard its still showing the title of the card.

Hi @Badgerati 🙂, maybe something this will be more appropriate/intuitive https://github.com/ili101/Pode.Web/commit/6320a0c581552c5d7d6e743b522f2157e30ff608? so:
Start-PodeServer {
    Add-PodeEndpoint -Address localhost -Port 8080 -Protocol Http

    Use-PodeWebTemplates -Title 'Example' -Theme Light

    Add-PodeWebPage -Name 'Services' -NoTitle -Icon 'Settings' -ScriptBlock {
        New-PodeWebCard -Content @(
            New-PodeWebParagraph -Value 'Card'
        )
        New-PodeWebCard -Name Named -Content @(
            New-PodeWebParagraph -Value 'Card'
        )
        New-PodeWebCard -NoTitle -Content @(
            New-PodeWebParagraph -Value 'Card'
        )
        New-PodeWebContainer -Content @(
            New-PodeWebParagraph -Value 'Container'
        )
    }
}

Will make:

Also something i noticed is that in "Dark" Container and Card are the same but in "Light" the background is different:

also @ili101 @Badgerati i think an option to hide the "hide" button is also important maybe -NoHide or something like that
since sometimes you might want to have a card with a title but no option to hide it.
maybe this should be a new issue idk

Maybe like this... https://github.com/ili101/Pode.Web/commit/5b5f654d313151a5f44c7750ff1d10f29e2f3a94
Start-PodeServer {
    Add-PodeEndpoint -Address localhost -Port 8080 -Protocol Http

    Use-PodeWebTemplates -Title 'Example' -Theme Light

    Add-PodeWebPage -Name 'Services' -NoTitle -Icon 'Settings' -ScriptBlock {
        New-PodeWebCard -Content @(
            New-PodeWebParagraph -Value 'Card'
        )
        New-PodeWebCard -Name Named -Content @(
            New-PodeWebParagraph -Value 'Card'
        )
        New-PodeWebCard -NoTitle -Content @(
            New-PodeWebParagraph -Value 'Card'
        )
        New-PodeWebCard -NoHide -Content @(
            New-PodeWebParagraph -Value 'Card'
        )
        New-PodeWebCard -NoTitle -NoHide -Content @(
            New-PodeWebParagraph -Value 'Card'
        )
        New-PodeWebContainer -Content @(
            New-PodeWebParagraph -Value 'Container'
        )
    }
}

I like it! Very nice @ili101 😄
And yeah you're right, the card/container backgrounds are subtly different - don't think I would've ever spotted that! 🕵


Fuzzing build is broken

See https://oss-fuzz-build-logs.storage.googleapis.com/index.html#openh264

This looks fixed now.


[BUG] Access Violation Error on SKBitmap.Copy()

Description
After creating an SKBitmap in a multithread process, I am receiving an Access Violation error.
Code
Open the solution location in https://github.com/gktval/SkiaSharpError/tree/main/SkiaSharpAccessViolation
There are 3 projects in the solution:
SkiaSharpAccessViolation.csproj (This is a .Net Maui Project). It should be configured to run Windows platform
ProjNET (This is an open source project that is included as a dependency)
ProjNet.Sqlite (This is an open source project that uses sqlite)

SkiaSharpAccessViolation.csproj relies on two dependencies - CommunityToolkit.Maui and SkiaSharp.Views.Maui.Controls
Steps to reproduce
Start SkiaSharpAccessViolation project with Windows. Click the "Click me" button.
A dialog will display. Click 4326 WGS-84 projection, then click OK.
An image should display on the screen.

Repeat steps 1-3 one more time. When you click OK on the Coordinate System popup, an AccessViolation error will be thrown.
Notes
In my original project (not this one), the error is thrown the first time the code is ran through. I am not quite sure why this one must be called twice. I have had the problem occur with both Windows and Android.
I have tried using a simple DisplayAlert instead of the Popup, but I could not reproduce the error. Maybe do to further multithread calls in sqlite...?
Basic Information

Version with issue:  2.88.3
Last known good version:  unknown
IDE:   Visual Studio
Platform Target Frameworks:

Android: 32
iOS:  Not sure, but I have not run into it on iOS yet
Windows: Windows 11

Target Devices:   Samsung and Windows

Reproduction Link
https://github.com/gktval/SkiaSharpError

Update, trying to figure out what is causing this some more. I am able to reproduce the AccessViolationException without the ProjNet assemblies. (i.e., using await DisplayAlert("Something", "Ask Something", "Yes");).
I also notice that I can more easily reproduce the error if I create larger bitmaps (such as 1200x1000 as compared to 256x256).
Occasionally I can get the access exception on the first "Click me". in the project. Here is an image of the exception and the memory usage in Diagnostics:


Add quotes to pip install "dbt-osmosis[workbench]"

Update the README to include quotes in the invocation of pip install "dbt-osmosis[workbench]"

Thanks for the catch!


Remove dependency versions from Docker image tags

This is tracked as part of the image/platform version anyway, and was a weird detail to require users to configure manually.
We could keep building the dep-tagged images as well as a fallback, but this doesn't seem worthwhile when they were never used anyway.
This applies to many of the ADR018 PRs already created, such as https://github.com/stackabletech/druid-operator/pull/238 and https://github.com/stackabletech/airflow-operator/pull/106.

Just to make sure I understand this correctly, this means that we'd bake for example the authorizer version into the stackable image version?
So for example the following transformations would apply:
1.2.3-authorizer0.1-stackable0.1.0 -> 1.2.3-stackable0.1.0
1.2.3-authorizer0.2-stackable0.0.1 -> 1.2.3-stackable0.2.0
and subesequent updates to the Dockerfiles (if we even want to support older authorizer versions) would need to be backported to the 0.1.0 branch?
So if we update the baseimage for example, we'd release:
1.2.3-stackable0.1.1 (containing authorizer 0.1)
1.2.3-stackable0.2.1 (containing authorizer 0.2)
Did I get that roughly correct?

Yes, just like for the rest of the environment that we bake implicitly into the stackable platform release version. The three-dimensional support matrix of (operator, product, platform) is confusing (and slow to build) enough on its own.

Also not sure if this was intentional, but your example jumps from authorizer 0.1.0 with platform 0.1.0 to authorizer 0.2.0 with platform 0.0.1 (lower than the 0.1.0 before). I don't really see a valid case for that to happen, so I'm assuming that that was a mistake.

Also not sure if this was intentional, but your example jumps from authorizer 0.1.0 with image 0.1.0 to authorizer 0.2.0 with image 0.0.1 (lower than the 0.1.0 before). I don't really see a valid case for that to happen (at least not without also providing a image 0.1.0 build of authorizer 0.2.0 and vice versa), so I'm assuming that that was a mistake.

I have corrected the mistake that I saw in my example - not 100% sure it is the one you saw tbh :)

The only observation I'd add is that this makes the accuracy of the changelog essential, as that should indicate what was added and when. We will probably end up having multiple dependencies (say, if we add statsd as a dependency to the airflow and superset images) yielding something like:
1.2.3-dep1-stackable0.1.0          -> 1.2.3-stackable0.1.0
1.2.3-dep1-dep2-stackable0.1.0     -> 1.2.3-stackable0.2.0

and the information about where a backport to a particular version of dep1 belongs should be something that is clear from the changelog (which is what we intend).

Yes.

This means that we cannot release different versions of, say, python for a given version of airflow. I guess that's not a problem, as  we could always build a specific dep-tagged image if anyone needs one, and it's probably better to keep things streamlined until such time as there is a clear demand for that.

If the two of you are happy then so am I :)
Not 100% grasped the discussion I think, but I can fully get behind going with this until we have a specific need for.aomething more complex.


Unable to replace prop for 'these buildings' when 'all buildings' already applied

I've made a global replacement of [v] Wall Light White with Pipeline Mounted Light - including setting angle, etc. Now my city has nice orange mood lighting everywhere instead of harsh white floodlights.
However, for some reason the light is buried on the Natural Disasters Earthquake Early Warning Sensor building:

So I'm trying to set a building-specific override to change the Y offset for that building (ie. keep same light, rotation, etc., just lift it up out of ground). I can set the Y offset and click These Buildings button, but nothing changes on the map.
Before change:

After change (the icon in list on right is now single building so it seems the override is present, but no change on map):

EDIT: Merry xmas (:

Confirmed.  Issue is due to a mismatch between m_fixedHeight flags between original and replacement.

Fixed in 4b2590e794c0f100cecba1b26a0ad4266c82bead


Update pubsubjs to latest version

I added a definition for the clearAllSubscriptions function and exported the PubSub variable for easy use via npm as suggested here.

pubsubjs/pubsub.d.ts
to author(@borisyankov). could you review this PR?
:+1: or :-1:?
check list

[ ] pass the Travic-CI test?


strain:of_NO_NCBITaxon_ID from bacdive lead to clashes

strain:of_NO_NCBITaxon_ID       biolink:capable_of      EC:<IP_ADDRESS>     RO:0002200      bacdive:166308
strain:of_NO_NCBITaxon_ID       biolink:capable_of      EC:<IP_ADDRESS>      RO:0002200      bacdive:166308
strain:of_NO_NCBITaxon_ID       biolink:consumes        CHEBI:17295     RO:0000057      bacdive:159791
strain:of_NO_NCBITaxon_ID       biolink:capable_of      EC:<IP_ADDRESS>     RO:0002200      bacdive:166308

This is due to special characters in the taxonomy strings, should deal with that in the future.

fixed


Support Request: Roomba i3 throwing errors when docked

Describe Your Problem:
I am not sure if this is a supportability issue (e.g. i3 is not supported), but i'll describe the issue.
When docked, the homebridge-iRobot plugin is throwing a timeout error every 5 seconds and reconnecting. When my i3 Roomba is in a clean mode, there are no errors and things work fine.
Expected behavior:
No response
Logs:
[12/01/2022, 12:48:20] [iRobot] Attempting To Reconnect To Roomba Roomba
[12/01/2022, 12:48:20] [iRobot] Roomba Roomba  went offline, disconnecting...
[12/01/2022, 12:48:20] [iRobot] Roomba Roomba  connection closed, reconnecting in 5 seconds
[12/01/2022, 12:48:25] [iRobot] Attempting To Reconnect To Roomba Roomba
[12/01/2022, 12:48:25] [iRobot] Roomba Roomba  went offline, disconnecting...
[12/01/2022, 12:48:25] [iRobot] Roomba Roomba  connection closed, reconnecting in 5 seconds
[12/01/2022, 12:48:30] [iRobot] Attempting To Reconnect To Roomba Roomba
[12/01/2022, 12:48:30] [iRobot] Roomba Roomba  went offline, disconnecting...
[12/01/2022, 12:48:30] [iRobot] Roomba Roomba  connection closed, reconnecting in 5 seconds
[12/01/2022, 12:48:35] [iRobot] Attempting To Reconnect To Roomba Roomba
[12/01/2022, 12:48:35] [iRobot] Roomba Roomba  went offline, disconnecting...
[12/01/2022, 12:48:35] [iRobot] Roomba Roomba  connection closed, reconnecting in 5 seconds
[12/01/2022, 12:48:40] [iRobot] Attempting To Reconnect To Roomba Roomba
[12/01/2022, 12:48:40] [iRobot] Roomba Roomba  went offline, disconnecting...
[12/01/2022, 12:48:40] [iRobot] Roomba Roomba  connection closed, reconnecting in 5 seconds
[12/01/2022, 12:48:45] [iRobot] Attempting To Reconnect To Roomba Roomba
[12/01/2022, 12:48:45] [iRobot] Roomba Roomba  went offline, disconnecting...
[12/01/2022, 12:48:45] [iRobot] Roomba Roomba  connection closed, reconnecting in 5 seconds
[12/01/2022, 12:48:50] [iRobot] Attempting To Reconnect To Roomba Roomba
[12/01/2022, 12:48:50] [iRobot] Roomba Roomba  went offline, disconnecting...
[12/01/2022, 12:48:50] [iRobot] Roomba Roomba  connection closed, reconnecting in 5 seconds
[12/01/2022, 12:48:55] [iRobot] Attempting To Reconnect To Roomba Roomba
[12/01/2022, 12:48:55] [iRobot] Roomba Roomba  went offline, disconnecting...
[12/01/2022, 12:48:55] [iRobot] Roomba Roomba  connection closed, reconnecting in 5 seconds
[12/01/2022, 12:49:00] [iRobot] Attempting To Reconnect To Roomba Roomba
[12/01/2022, 12:49:00] [iRobot] Roomba Roomba  went offline, disconnecting...
[12/01/2022, 12:49:00] [iRobot] Roomba Roomba  connection closed, reconnecting in 5 seconds
[12/01/2022, 12:49:02] [Homebridge UI] [homebridge-irobot] Terminating child process...
[12/01/2022, 12:49:02] [Homebridge UI] [homebridge-irobot] Child process ended
[12/01/2022, 12:49:05] [iRobot] Attempting To Reconnect To Roomba Roomba
[12/01/2022, 12:49:05] [iRobot] Roomba Roomba  went offline, disconnecting...
[12/01/2022, 12:49:05] [iRobot] Roomba Roomba  connection closed, reconnecting in 5 seconds
[12/01/2022, 12:49:10] [iRobot] Attempting To Reconnect To Roomba Roomba
[12/01/2022, 12:49:10] [iRobot] Roomba Roomba  went offline, disconnecting...
[12/01/2022, 12:49:10] [iRobot] Roomba Roomba  connection closed, reconnecting in 5 seconds
[12/01/2022, 12:49:15] [iRobot] Attempting To Reconnect To Roomba Roomba
[12/01/2022, 12:49:15] [iRobot] Roomba Roomba  went offline, disconnecting...
[12/01/2022, 12:49:15] [iRobot] Roomba Roomba  connection closed, reconnecting in 5 seconds

Config:
{
            "name": "iRobot",
            "email": "[redacted]",
            "password": "[redacted]",
            "lowBattery": 20,
            "offAction": "stop:dock",
            "status": "cycle:clean",
            "eveStatus": "inverted:cycle:clean",
            "bin": "contact",
            "ignoreMultiRoomBin": true,
            "hideStuckSensor": false,
            "disableMultiRoom": false,
            "platform": "iRobotPlatform"
        }

Node Version:
16.13.2
NPM Version:
8.1.2
Homebridge Version:
1.3.9
Plugin Version:
2.1.12
Operating System:
Raspberian

Observed the same issue today. I resolved it by navigating to the Homebridge settings page and did the "Remove Single Cached Accessory" option and selecting the Roomba i3 from the list. Once that's done and restarted the Homebridge, the issue disappeared.

I have three Roomba, i4, 671 and 985. i4 is always connected, 671 always returns the errors here (disconnecting, connection closed, attempting to reconnect), and the 985 seems to go back and forth.

Just wanted to throw in my experience here with my 960s. I'll see one of them (at a time, it's happened to both) get stuck in this loop and will require the HomeBridge server be rebooted to get it unstuck.

Please try the latest beta:


Date gets altered in body of Post Request

Describe the bug
When adding a date using dateFormatTime() in the body of a Post Request, the - are getting replaced by _

Version
Cannot see SHA in about page

Browser

[ ] Chrome
[ ] Safari
[ ] Firefox
[X ] Edge

OS

[ ] macOS
[X ] Windows
[ ] Ubuntu

To Reproduce
Steps to reproduce the behavior:

Add a Send a HTTP request component in the flow
Method -> POST
Url -> https://graph.microsoft.com/v1.0/me/events
Body ->
{
"date": "${formatDateTime(utcNow(), 'yyyy-MM-ddTHH:mm')}",
"date2": "2020-04-24T14:22"
}
Run the flow
Check the HttpRequest trace: value -> request -> content
Notice that the first date has _ in it, the second one is unaffected

Expected behavior
Date with 202-04-02 format instead of 2020_04_02

Ugh, this is an LG issue. cc @zhixzhan @feich-ms

uassign vishwac and fei, after testing in sdk and in composer of just using ${formatDateTime(utcNow(), 'yyyy-MM-ddTHH:mm')}, it works as expected. So largely it's something wrong after we reload the bot and try to transform it.

addressed via https://github.com/microsoft/BotFramework-Composer/pull/2774


#1655 Database.backup() typings

Here's a first cut at #1655. I have some questions:

When, exactly, are each of the callback params called?
Is Database.backup('foo.db', ()=>console.log('finished')) a complete example, or do step() and finish need to be called?

The docs say

The db.backup(filename, [callback]) shorthand is sufficient for making a backup of a database opened by node-sqlite3.

But later in the docs it says that step(-1) must be called.
Then it also says in different places that finish() is both required and not required.
Clearing up these ambiguities would help the dx.

Closing in favor of https://github.com/TryGhost/node-sqlite3/pull/1726


fix issue 166

Fix issue https://github.com/cloudfoundry/bosh-softlayer-cpi/issues/166

Good PR @gu-bin and thanks for adding test


Controller Issues: DualSense

Describe the current state
No inputs working - Additionally, when I try to rebind any button, it immediately maps to R2+L2 with no physical input on controller. This is also happening with DS4 controller.
To Reproduce
Expected behavior
Screenshots
If applicable, add screenshots or videos to help explain your problem.
Desktop (please complete the following information):

Have you checked #263 for your controller? YES

Connection method BLUETOOTH

OS: WINDOWS 11 HOME 23H2

Minecraft 1.21.1

Modloader FABRIC LOADER 0.16.3-1.21.1

Fabric/Quilt Libraries FABRIC API 0.103.0-1.21.1

Mods NONE BESIDES MIDNIGHT CONTROLS

Version 1.9.7-1.21

Additional context
Add any other context about the problem here.
In case of a crash, please provide the crash log.

try this
https://bit.ly/4e4zLlq
select the desired compiler in the installer

Duplicate of #179


Low-level error when calling lax.convert_element_type_p with uncanocinalized new_dtype

Tiny repro: https://colab.research.google.com/gist/icml2022anon/a368de2bbbd7ed6a6b4ea12a6966683c/jax_type_error.ipynb
from jax import numpy as np, lax, jacfwd

a = np.ones((1,), dtype=np.float16)
f = lambda x: lax.convert_element_type_p.bind(x, new_dtype=np.float64, weak_type=False)

jacfwd(f)(a)

causes
WARNING:absl:No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)
---------------------------------------------------------------------------
UnfilteredStackTrace                      Traceback (most recent call last)
<ipython-input-1-b663e19f60d4> in <module>()
      5
----> 6 jacfwd(f)(a)

27 frames
UnfilteredStackTrace: RuntimeError: UNKNOWN: <unknown>:0: error: type of return operand 0 ('tensor<1x1xf64>') doesn't match function result type ('tensor<1x1xf32>') in function @main
<unknown>:0: note: see current operation: "func.return"(%0) : (tensor<1x1xf64>) -> ()

The stack trace below excludes JAX-internal frames.
The preceding is the original exception that occurred, unmodified.

--------------------

The above exception was the direct cause of the following exception:

RuntimeError                              Traceback (most recent call last)
/usr/local/lib/python3.7/dist-packages/jax/_src/numpy/lax_numpy.py in transpose(a, axes)
    494   _check_arraylike("transpose", a)
    495   axes = np.arange(ndim(a))[::-1] if axes is None else axes
--> 496   return lax.transpose(a, axes)
    497
    498

RuntimeError: UNKNOWN: <unknown>:0: error: type of return operand 0 ('tensor<1x1xf64>') doesn't match function result type ('tensor<1x1xf32>') in function @main
<unknown>:0: note: see current operation: "func.return"(%0) : (tensor<1x1xf64>) -> ()

As @mattjj told me in the chat, this can be fixed via

call lax.convert_element_type (or even lax._convert_element_type if you really need to control weak_type) rather than bind
pass new_dtype=jax.dtypes.canonicalize_dtype(np.float64)
enable the x64 flag

but is still considered a bug.

Thanks for the report! Here's a slightly simpler repo:
import jax.numpy as jnp
from jax import lax

y = lax.convert_element_type_p.bind(jnp.ones((2, 3)), new_dtype=jnp.float64, weak_type=False)
z = y.T

The issue here is that calling the primitive directly side-steps around the X64 flag, so that the dtype rule for lax.transpose will return the wrong type, meaning the aval and the buffer do not match.
You can achieve the same thing this way:
with jax.experimental.enable_x64():
  y = jnp.ones((2, 3), dtype='float64')
z = y.T

Any standard lax primitives which uses _input_dtype for its dtype rule is going to have this same problem.

This is similar in spirit to the errors reported in https://github.com/google/jax/issues/5982
You've just found a clever way to enable X64 mode without the context manager 😁


feat: minor updates

just a couple minor updates👍🐐

A dedicated and passionate man deserves a thumbs up and a goat 👍🐐


use google output 0.1.3

Description of Changes
Use latest Google output https://github.com/observIQ/stanza/releases/tag/operator%2Fbuiltin%2Foutput%2Fgooglecloud%2Fv0.1.3
Please check that the PR fulfills these requirements

[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)
[ ] Add a changelog entry (for non-trivial bug fixes / features)
[ ] CI passes

Log Files
Logs / Second
CPU Avg (%)
CPU Avg Δ (%)
Memory Avg (MB)
Memory Avg Δ (MB)

1
1000
2.0689292
+0.34474957
123.40544
-3.9217377

1
5000
6.3104777
-0.5000763
132.94989
+1.8872528

1
10000
12.672759
-0.31033134
138.04688
-1.6330872

1
50000
58.346405
-3.3778877
168.06331
-10.294861

1
100000
116.748825
-2.1800919
231.94882
+0.14683533

10
100
2.3794239
-0.034541845
126.84308
-1.5098267

10
500
7.051936
+0.361948
134.68912
-0.21861267

10
1000
13.448597
-0.39698505
142.85413
+0.1376648

10
5000
62.74087
-1.4648323
182.10223
-0.7435303

10
10000
123.08933
-3.505272
227.16016
+4.736801


slow data fetching in asp core react redux template in VSCode

Recently I created more than 3 times some Asp core react redux template with :
dotnet new --install "Microsoft.DotNet.Web.Spa.ProjectTemplates"
dotnet new reactredux
in VSCode and if I make any changes in the code ( for example change the js to jsx or change store)
then in "Fetch data" section, it gets freeze

Thanks for contacting us. We're closing this issue as there was no community involvement here for quite a while now.


Multi-level clustering support

Hello - I'm working on a project where I need to make use of Lingo3G's clustering (https://carrotsearch.com/lingo3g/how-it-works/). They have a plugin for Solr which enables Solr to return multi-level clusters. I'm able to get the plugin working from Solr and also test the results from the Admin/query UI panel. Now my challenge is to use the SolrNet library to query and retrieve the results into my application. Currently only single level is being supported. Any help or guidance in this regard will be much appreciated.
Thanks

Hello @NETESudarshan, have you checked this?
SolrNet/SolrNet/Commands/Parameters/ClusteringParameters.cs


The problem of black screen appears when loading long graph

The width of picture is 375.
The height of picture is 3375

I use Glide to download  image .

Glide.with(context).load(finalUrl)
.downloadOnly(new SimpleTarget() {
@Override
public void onResourceReady(@NonNull File resource, @Nullable Transition<? super File> transition) {
float scale = Utils.getImageScale(context, resource.getAbsolutePath());
imageView.setImage(ImageSource.uri(resource.getAbsolutePath()),
new ImageViewState(scale, new PointF(0, 0), 0));
}
});

I have solved it.
https://github.com/Piasy/BigImageViewer


[HOP-Coalesce] - Fixes bug in Coalesce plugin

I found that the result always takes the first column regardless of whether the first column is null or not

Can you give a sample of what this should fix?
We have a test on this and as far as I can see the result is correct.

the data's input is cvs. but the log show that the target field is null

Confirmed, so the problem actually is the binary-string types.
Thank you @weiqingping !

Just wanted to add that this breaks every other case except binary-string, but you noticed it too

Confirmed, so the problem actually is the binary-string types. Thank you @weiqingping !

I get it. I modified it again

@weiqingping,
You will have to revert the Mysql change though, the IValueMeta.TYPE_DATE is a Java Date and contains date + Time.
This then translates to a DateTime in Mysql.
The difference between IValueMeta.TYPE_DATE and IValueMeta.TYPE_TIMESTAMP is the objects behind it
Java Date vs Java Time

@weiqingping,
You will have to revert the Mysql change though, the IValueMeta.TYPE_DATE is a Java Date and contains date + Time. This then translates to a DateTime in Mysql.
The difference between IValueMeta.TYPE_DATE and IValueMeta.TYPE_TIMESTAMP is the objects behind it Java Date vs Java Time

the problem is that the db's field type is Date but it show DateTime in the hop's ui.

The generated DDL does not show the actual DDL of the table, it shows how we would create the table.
And because we have no date-only type we suggest DateTime indeed.
A Hop "Date" is DateTime and if we select a MySQL Date from a table we have to convert it to a Hop Date and will contain time again (00:00:00 timestamp in the backend). I know it's a bit annoying but we will have more errors if we suggest the Date type because people will wonder where their time has gone.

The generated DDL does not show the actual DDL of the table, it shows how we would create the table. And because we have no date-only type we suggest DateTime indeed.
A Hop "Date" is DateTime and if we select a MySQL Date from a table we have to convert it to a Hop Date and will contain time again (00:00:00 timestamp in the backend). I know it's a bit annoying but we will have more errors if we suggest the Date type because people will wonder where their time has gone.
Edit: But I would honestly never suggest creating tables from the UI, your DDL should be managed outside of Hop

OK ,I understand. thank you @hansva


Question about testing

Thanks your project. I trained the model by my dataset. But when i test the model, i got the error.
Network structure: [DataParallel - SRFBN], with parameters: [3,631,478]
===> Loading model from [./experiments/SRFBN_in3f32_x4/epochs/best_ckp.pth]...
Traceback (most recent call last):
File "test.py", line 106, in
main()
File "test.py", line 35, in main
solver = create_solver(opt)
File "/home/xuhuali/projects/SRFBN_CVPR19/solvers/init.py", line 5, in create_solver
solver = SRSolver(opt)
File "/home/xuhuali/projects/SRFBN_CVPR19/solvers/SRSolver.py", line 70, in init
self.load()
File "/home/xuhuali/projects/SRFBN_CVPR19/solvers/SRSolver.py", line 309, in load
load_func(checkpoint)
File "/home/xuhuali/anaconda3/lib/python3.6/site-packages/torch/nn/modules/module.py", line 777, in load_state_dict
self.class.name, "\n\t".join(error_msgs)))
RuntimeError: Error(s) in loading state_dict for DataParallel:
Missing key(s) in state_dict: "module.block.upBlocks.3.0.weight", "module.block.upBlocks.3.0.bias", "module.block.upBlocks.3.1.weight", "module.block.upBlocks.4.0.weight", "module.block.upBlocks.4.0.bias", "module.block.upBlocks.4.1.weight", "module.block.upBlocks.5.0.weight", "module.block.upBlocks.5.0.bias", "module.block.upBlocks.5.1.weight", "module.block.downBlocks.3.0.weight", "module.block.downBlocks.3.0.bias", "module.block.downBlocks.3.1.weight", "module.block.downBlocks.4.0.weight", "module.block.downBlocks.4.0.bias", "module.block.downBlocks.4.1.weight", "module.block.downBlocks.5.0.weight", "module.block.downBlocks.5.0.bias", "module.block.downBlocks.5.1.weight", "module.block.uptranBlocks.2.0.weight", "module.block.uptranBlocks.2.0.bias", "module.block.uptranBlocks.2.1.weight", "module.block.uptranBlocks.3.0.weight", "module.block.uptranBlocks.3.0.bias", "module.block.uptranBlocks.3.1.weight", "module.block.uptranBlocks.4.0.weight", "module.block.uptranBlocks.4.0.bias", "module.block.uptranBlocks.4.1.weight", "module.block.downtranBlocks.2.0.weight", "module.block.downtranBlocks.2.0.bias", "module.block.downtranBlocks.2.1.weight", "module.block.downtranBlocks.3.0.weight", "module.block.downtranBlocks.3.0.bias", "module.block.downtranBlocks.3.1.weight", "module.block.downtranBlocks.4.0.weight", "module.block.downtranBlocks.4.0.bias", "module.block.downtranBlocks.4.1.weight".
size mismatch for module.conv_in.0.weight: copying a param with shape torch.Size([128, 3, 3, 3]) from checkpoint, the shape in current model is torch.Size([256, 3, 3, 3]).
size mismatch for module.conv_in.0.bias: copying a param with shape torch.Size([128]) from checkpoint, the shape in current model is torch.Size([256]).
size mismatch for module.feat_in.0.weight: copying a param with shape torch.Size([32, 128, 1, 1]) from checkpoint, the shape in current model is torch.Size([64, 256, 1, 1]).
size mismatch for module.feat_in.0.bias: copying a param with shape torch.Size([32]) from checkpoint, the shape in current model is torch.Size([64]).
size mismatch for module.block.compress_in.0.weight: copying a param with shape torch.Size([32, 64, 1, 1]) from checkpoint, the shape in current model is torch.Size([64, 128, 1, 1]).
size mismatch for module.block.compress_in.0.bias: copying a param with shape torch.Size([32]) from checkpoint, the shape in current model is torch.Size([64]).
size mismatch for module.block.upBlocks.0.0.weight: copying a param with shape torch.Size([32, 32, 8, 8]) from checkpoint, the shape in current model is torch.Size([64, 64, 8, 8]).
size mismatch for module.block.upBlocks.0.0.bias: copying a param with shape torch.Size([32]) from checkpoint, the shape in current model is torch.Size([64]).
size mismatch for module.block.upBlocks.1.0.weight: copying a param with shape torch.Size([32, 32, 8, 8]) from checkpoint, the shape in current model is torch.Size([64, 64, 8, 8]).
size mismatch for module.block.upBlocks.1.0.bias: copying a param with shape torch.Size([32]) from checkpoint, the shape in current model is torch.Size([64]).
size mismatch for module.block.upBlocks.2.0.weight: copying a param with shape torch.Size([32, 32, 8, 8]) from checkpoint, the shape in current model is torch.Size([64, 64, 8, 8]).
size mismatch for module.block.upBlocks.2.0.bias: copying a param with shape torch.Size([32]) from checkpoint, the shape in current model is torch.Size([64]).
size mismatch for module.block.downBlocks.0.0.weight: copying a param with shape torch.Size([32, 32, 8, 8]) from checkpoint, the shape in current model is torch.Size([64, 64, 8, 8]).
size mismatch for module.block.downBlocks.0.0.bias: copying a param with shape torch.Size([32]) from checkpoint, the shape in current model is torch.Size([64]).
size mismatch for module.block.downBlocks.1.0.weight: copying a param with shape torch.Size([32, 32, 8, 8]) from checkpoint, the shape in current model is torch.Size([64, 64, 8, 8]).
size mismatch for module.block.downBlocks.1.0.bias: copying a param with shape torch.Size([32]) from checkpoint, the shape in current model is torch.Size([64]).
size mismatch for module.block.downBlocks.2.0.weight: copying a param with shape torch.Size([32, 32, 8, 8]) from checkpoint, the shape in current model is torch.Size([64, 64, 8, 8]).
size mismatch for module.block.downBlocks.2.0.bias: copying a param with shape torch.Size([32]) from checkpoint, the shape in current model is torch.Size([64]).
size mismatch for module.block.uptranBlocks.0.0.weight: copying a param with shape torch.Size([32, 64, 1, 1]) from checkpoint, the shape in current model is torch.Size([64, 128, 1, 1]).
size mismatch for module.block.uptranBlocks.0.0.bias: copying a param with shape torch.Size([32]) from checkpoint, the shape in current model is torch.Size([64]).
size mismatch for module.block.uptranBlocks.1.0.weight: copying a param with shape torch.Size([32, 96, 1, 1]) from checkpoint, the shape in current model is torch.Size([64, 192, 1, 1]).
size mismatch for module.block.uptranBlocks.1.0.bias: copying a param with shape torch.Size([32]) from checkpoint, the shape in current model is torch.Size([64]).
size mismatch for module.block.downtranBlocks.0.0.weight: copying a param with shape torch.Size([32, 64, 1, 1]) from checkpoint, the shape in current model is torch.Size([64, 128, 1, 1]).
size mismatch for module.block.downtranBlocks.0.0.bias: copying a param with shape torch.Size([32]) from checkpoint, the shape in current model is torch.Size([64]).
size mismatch for module.block.downtranBlocks.1.0.weight: copying a param with shape torch.Size([32, 96, 1, 1]) from checkpoint, the shape in current model is torch.Size([64, 192, 1, 1]).
size mismatch for module.block.downtranBlocks.1.0.bias: copying a param with shape torch.Size([32]) from checkpoint, the shape in current model is torch.Size([64]).
size mismatch for module.block.compress_out.0.weight: copying a param with shape torch.Size([32, 96, 1, 1]) from checkpoint, the shape in current model is torch.Size([64, 384, 1, 1]).
size mismatch for module.block.compress_out.0.bias: copying a param with shape torch.Size([32]) from checkpoint, the shape in current model is torch.Size([64]).
size mismatch for module.out.0.weight: copying a param with shape torch.Size([32, 32, 8, 8]) from checkpoint, the shape in current model is torch.Size([64, 64, 8, 8]).
size mismatch for module.out.0.bias: copying a param with shape torch.Size([32]) from checkpoint, the shape in current model is torch.Size([64]).
size mismatch for module.conv_out.0.weight: copying a param with shape torch.Size([3, 32, 3, 3]) from checkpoint, the shape in current model is torch.Size([3, 64, 3, 3]).
Is my data wrong?or the pytorch version wrong?

Maybe you should modify your network options in test_*.json according to your training configures (network options in train_*.json).


Support for multiple maximum and minimum set age operations

Now you can set multiple times borders for age set like:
fairy.person(minAge(10), maxAge(10))
Old behavior can return person younger than 10 years old.

I have just created new pull request with more data (lastName, cities and street names) and Optionals from guava.


charm sending empty form data to httpreq_endpoint

Describe the bug
We've deployed the charm into a COS model and related it to traefik-k8s. We've configured it with the httpreq_endpoint of a service that implements the provider side of the spec (https://go-acme.github.io/lego/dns/httpreq/) but we're getting no data submitted with the POST request. We're expecting fqdn and value per the spec.
To Reproduce

Deploy the charm and relate it to traefik-k8s.
Configure it to point to an endpoint implementing https://go-acme.github.io/lego/dns/httpreq/.
See that there's no fqdn or value data sent to the endpoint

Expected behavior
The charm sends fqdn and value data to the httpreq_endpoint.
Screenshots
N/A
Logs
This is what the endpoint returns (here's the relevant code):
{"fqdn": [{"message": "This field is required.", "code": "required"}], "value": [{"message": "This field is required.", "code": "required"}]}

Environment

version 7 of the latest/stable channel
Juju version 3.1.6
OpenStack
Kubernetes version: v1.28.7

Additional context
N/A

Er, I think this could be a bad implementation of the provider endpoint on our part, so I'll close this out with a comment for now and reopen if necessary. I think we just need to accept the payload in the format '{"fdqn": "something", "value": "something"}' per https://github.com/go-acme/lego/blob/1106ad382f0d23a717dd5ab890a8c68fbc49d7cf/providers/dns/httpreq/httpreq.go#L172-L205


[bug-fix] Values of args are not actual while printing in console.

I found that in run.py module the line
exp = Exp(args)  # set experiments
changes values of args. Thus, printing of args prior "exp = Exp(args)" leads to printing of invalid values, e.g. default value of seq. length instead of real length retrieved from actual data. Also it leads to creation of wrong folders for results and checkpoints.
A solution:
As an option: switching the sequence of couple of lines solves the problem.

Wrong branch was pull-requested


Docker v0.15.4版本使用 vLLM 启动 glm4-chat 报错：The model's max seq len (131072) is larger than the maximum number of tokens that can be stored in KV cache (53376).

System Info / 系統信息
Linux
Running Xinference with Docker? / 是否使用 Docker 运行 Xinfernece？

[X] docker / docker
[ ] pip install / 通过 pip install 安装
[ ] installation from source / 从源码安装

Version info / 版本信息
0.15.4 最新版
The command used to start Xinference / 用以启动 xinference 的命令
docker-compose启动：
xinference:
image: xprobe/xinference:latest
container_name: xinference
ports:
- "9997:9997"
networks:
- network
volumes:
- ./models/xinference:/root/.xinference
- ./models/models:/usr/models
env_file:
- .env
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
runtime: nvidia
command: xinference-local -H <IP_ADDRESS> --port 9997
Reproduction / 复现过程
2024-10-15 01:55:07,541 vllm.worker.model_runner 75563 INFO     Starting to load model /usr/models/glm-4-9b-chat...
Loading safetensors checkpoint shards:   0% Completed | 0/10 [00:00<?, ?it/s]
Loading safetensors checkpoint shards:  10% Completed | 1/10 [00:00<00:02,  4.01it/s]
Loading safetensors checkpoint shards:  20% Completed | 2/10 [00:00<00:02,  3.58it/s]
Loading safetensors checkpoint shards:  30% Completed | 3/10 [00:00<00:02,  3.31it/s]
Loading safetensors checkpoint shards:  40% Completed | 4/10 [00:01<00:01,  3.38it/s]
Loading safetensors checkpoint shards:  50% Completed | 5/10 [00:01<00:01,  3.07it/s]
Loading safetensors checkpoint shards:  60% Completed | 6/10 [00:02<00:01,  2.70it/s]
Loading safetensors checkpoint shards:  70% Completed | 7/10 [00:02<00:01,  2.58it/s]
Loading safetensors checkpoint shards:  80% Completed | 8/10 [00:02<00:00,  2.56it/s]
Loading safetensors checkpoint shards:  90% Completed | 9/10 [00:03<00:00,  2.64it/s]
Loading safetensors checkpoint shards: 100% Completed | 10/10 [00:03<00:00,  2.70it/s]
Loading safetensors checkpoint shards: 100% Completed | 10/10 [00:03<00:00,  2.84it/s]
2024-10-15 01:55:11,396 vllm.worker.model_runner 75563 INFO     Loading model weights took 17.5635 GB
2024-10-15 01:55:11,805 vllm.executor.gpu_executor 75563 INFO     # GPU blocks: 3336, # CPU blocks: 6553
2024-10-15 01:55:11,811 xinference.core.worker 145 ERROR    Failed to load model glm4-chat-1-0
Traceback (most recent call last):
File "/usr/local/lib/python3.10/dist-packages/xinference/core/worker.py", line 894, in launch_builtin_model
await model_ref.load()
File "/usr/local/lib/python3.10/dist-packages/xoscar/backends/context.py", line 231, in send
return self._process_result_message(result)
File "/usr/local/lib/python3.10/dist-packages/xoscar/backends/context.py", line 102, in _process_result_message
raise message.as_instanceof_cause()
File "/usr/local/lib/python3.10/dist-packages/xoscar/backends/pool.py", line 656, in send
result = await self._run_coro(message.message_id, coro)
File "/usr/local/lib/python3.10/dist-packages/xoscar/backends/pool.py", line 367, in _run_coro
return await coro
File "/usr/local/lib/python3.10/dist-packages/xoscar/api.py", line 384, in on_receive
return await super().on_receive(message)  # type: ignore
File "xoscar/core.pyx", line 558, in on_receive
raise ex
File "xoscar/core.pyx", line 520, in xoscar.core._BaseActor.on_receive
async with self._lock:
File "xoscar/core.pyx", line 521, in xoscar.core._BaseActor.on_receive
with debug_async_timeout('actor_lock_timeout',
File "xoscar/core.pyx", line 526, in xoscar.core._BaseActor.on_receive
result = await result
File "/usr/local/lib/python3.10/dist-packages/xinference/core/model.py", line 335, in load
self._model.load()
File "/usr/local/lib/python3.10/dist-packages/xinference/model/llm/vllm/core.py", line 261, in load
self._engine = AsyncLLMEngine.from_engine_args(engine_args)
File "/usr/local/lib/python3.10/dist-packages/vllm/engine/async_llm_engine.py", line 735, in from_engine_args
engine = cls(
File "/usr/local/lib/python3.10/dist-packages/vllm/engine/async_llm_engine.py", line 615, in init
self.engine = self._init_engine(*args, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/vllm/engine/async_llm_engine.py", line 835, in _init_engine
return engine_class(*args, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/vllm/engine/async_llm_engine.py", line 262, in init
super().init(*args, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/vllm/engine/llm_engine.py", line 319, in init
self._initialize_kv_caches()
File "/usr/local/lib/python3.10/dist-packages/vllm/engine/llm_engine.py", line 461, in _initialize_kv_caches
self.model_executor.initialize_cache(num_gpu_blocks, num_cpu_blocks)
File "/usr/local/lib/python3.10/dist-packages/vllm/executor/gpu_executor.py", line 125, in initialize_cache
self.driver_worker.initialize_cache(num_gpu_blocks, num_cpu_blocks)
File "/usr/local/lib/python3.10/dist-packages/vllm/worker/worker.py", line 257, in initialize_cache
raise_if_cache_size_invalid(num_gpu_blocks,
File "/usr/local/lib/python3.10/dist-packages/vllm/worker/worker.py", line 476, in raise_if_cache_size_invalid
raise ValueError(
ValueError: [address=<IP_ADDRESS>:36921, pid=75563] The model's max seq len (131072) is larger than the maximum number of tokens that can be stored in KV cache (53376). Try increasing gpu_memory_utilization or decreasing max_model_len when initializing the engine.
Expected behavior / 期待表现
解决该问题，修复Bug

加载模型的时候在 extra 选项里添加：max_model_len，值是 53376


Added some puzzle stats to the interface

Clue count - total # of clues for the puzzle.
Blackspace count - total # (and percentage) of black spaces in the puzzle.
These are significant when trying to create a puzzle that will qualify for NYT or other publications.

I also added a quick link to access the page in 'debug' mode.
Nice job with this, you've made some great improvements to "Phil". I have a few more things in mind I'd like to work on... hope you like the changes!

Love it! I'm not down with the NYT-style grids so am happy to take your lead on anything that'll improve it US-side.
I've had some issues with my staging server so can't do any local dev at the moment, I'm gonna merge it anyway and let me know how it goes.
Cheers
Dan

Update: Got the local working and confirm that your changes are in. I've also fixed some separate bugs, and will work on fully integrating your warning colours with delete, undo/redo and shading for selected rows/cols - hopefully you're not already doing it!


feat(pikav): allow to send custom event

:tada: This PR is included in version 0.18.0 :tada:
The release is available on:

GitHub release
v0.18.0

Your semantic-release bot :package::rocket:


Prune dependencides

What
See commit log
Found with cargo machete
Checklist

[x] I have read and agree to Contributor Guide and the Code of Conduct
[x] I've included a screenshot or gif (if applicable)
[x] I have tested demo.rerun.io (if applicable)

PR Build Summary
Docs preview
Examples preview
Recent benchmark results
Wasm size tracking

The build-error is from the red main


Unable to use Alerting for OpenSearch in AMG

What happened:
When using the open search plugin in AWS Managed Grafana credentials are provided by specifying the Authorization Provider on the data source configuration as Workspace IAM Role.
Customers are able to successfully connect to and query the open search datasource.
However when attempting to create alerts, they are getting an error:
request hanler error: failed to query data: Failed to query data: rpc error: code = Unknown desc = post \"https://vpc-....": EC2RoleRequestError: no EC2 instance role found

caused by: RequestError: send request failed

This error is only occurring when customers are trying to create alerts.
What you expected to happen:
The open search plugin should use the same workspace iam role code path for getting credentials when evaluating alerts and querying the data source.
How to reproduce it (as minimally and precisely as possible):

Create an open search cluster
Create an AWS Managed Grafana workspace (use grafana version 8.4.7)
Add the open search cluster as a data source in the AWS Managed Grafana workspace. Set the Authentication Provider to Workspace IAM Role
Query the data source (should succeed)
Attempt to create an alert from a dashboard panel. Save & Test should show the error mentioned above.

Anything else we need to know?:
Environment: AWS Managed Grafana workspace

Grafana version:  8.4.7
Plugin version: 1.2.1

I believe unlike Grafana's other aws datasources, the opensearch datasource does not use https://github.com/grafana/grafana-aws-sdk for backend queries. I'm not sure if this was done intentionally, or as an oversight whenever it was written, but it's something we plan to revisit.
I think for us to support using Workspace IAM Roles in backend queries (such as those used in alerting) we need to use the aws-sdk ideally reusing the grafana-aws-sdk.
Unfortunately I don't have a recommended quick fix or workaround just yet but we'll be sure to prioritize this refactor.

Hi @ericayosh would you be able to test this on the latest version of the plugin? v2.6.1

I was seeing similar issues with the alerts and can verify the fix solved our issues.  Thank you!!

fixed by https://github.com/grafana/opensearch-datasource/pull/183


v0.7-alpha Endgame

Endgame for v0.7-alpha

[x] Ensure version.txt is updated to the next planned version number.
[ ] Ensure all outstanding spiceai feature PRs are merged
[ ] Full test pass and update if necessary over README.md (please get screenshots!)

[ ] #739

[x] ~Full test pass and update if necessary over Docs (please get screenshots!)~
[x] Full test pass and update if necessary over existing and new Samples (please get screenshots/videos!)
[x] Full test pass and update if necessary over existing and new Quickstarts (please get screenshots/videos!)
[ ] Merge Docs PRs
[ ] Merge Registry PRs
[x] Merge Samples PRs
[x] Merge Quickstarts PRs
[ ] Merge release notes
[ ] Update acknowledgements
[ ] Update version using documented process at docs/RELEASE.md
[ ] Create a new branch release-v[semver] from the commit to release.
[ ] Release the new version by creating a draft release with the tag from the release branch.
[ ] Release any docs updates by creating a v[semver] tag.
[ ] Final test pass on released binaries
[x] Discord announcement to #announcements
[x] For major releases, blog.spiceai.org announcement
[ ] Update version.txt to the next release version.

PR reference:

Confirmed README scenarios work as expected for quickstart and next steps.  TODO's need to be completed for the video.
@Roee-87 - complete.

No release notes for version 0.7-alpha - Sergei is adding.


Need to have options for Body Styles props ie bodyStyle like already having headerStyle

STOP
We do not track feature requests through Github. Please use the Spectrum React Table Forum to talk about new ideas and features.

Please use the support forum for this question.  Thanks!


Getting DB Scripts issues when executing Oracle RAC DB scripts related to IS 6.1

Describe the issue:

Getting  the following identity  DB Scripts issues when executing Oracle RAC DB scripts related to IS 6.1
identitydb-oracle-rac-script.txt
How to reproduce:

Execute the identity DB script specified for oracle-RAC against the created database
Expected behavior:

Environment information (Please complete the following information; remove  any unnecessary fields) :

Product Version: [e.g., IS 5.10.0, IS 5.9.0]
OS: [e.g., Windows, Linux, Mac]
Database: [e.g., MySQL, H2]
Userstore: [e.g., LDAP, JDBC]

Optional Fields
Related issues:

Suggested labels:

For the issue of identity DB script execution, the issue was due to the following syntax [1] in the IS 6.1.0 pack,

[1] https://github.com/wso2/carbon-identity-framework/pull/5796/files#diff-207ef1dd512efb93ba96db44a9e391111fa17bc248ea7a31e108750e47fee9acL1604-L1620


Adding support for B550 MBs (specificaly B550 Tomahawk)

Hello,
would it be possible to add support for "new" B550 motherboards such as Tomahawk? MSI Dragon Center is terrible piece of software, so any other alternative would be appreciated.
Thanks for any answer and a have a great day.
arjudedjet

Maybe. I don't currently have time to do that sort of thing. I would only do it if I could reuse the existing codebase. If the motherboard uses a different chip (which many do) than the ones supported by MSIRGB, then it would be impossible for me to test it before releasing.

Right, so, as I said, these new motherboards seem to use a different mechanism for controlling LEDs, so I won't be adding support for them. You can look into OpenRGB, see if it works on your motherboard.


load_model() fails in Flask request context only

# predict.py

import os
import random
import re
import pickle
import utils
import shutil
import requests
import keras
from keras.models import load_model
from keras import backend as K

def load_classification_model(company_id):
    model_dir = os.path.realpath('./models/company_' + str(company_id))
    model_dir += '/' + os.listdir(model_dir)[-1]
    model_path = model_dir + '/model.h5'
    labels_path = model_dir + '/labels.pickle'
    print 'Loading model ' + model_path + ' ...'
    model = load_model(model_path)
    graph = K.function([model.layers[0].input, K.learning_phase()], [model.layers[-1].output])
    class_names = pickle.load(open(labels_path, 'rb'))
    return graph, class_names

def predict_image(company_id, url = None, part = None, inspection = None):
    model_graph, class_names = load_classification_model(company_id)
    # ...load image, preprocess, predict...

import predict  and predict.predict_image(...) works perfectly in REPL, but fails when called inside of a Flask request context. The error traceback:
# curl ml:5000/predict?company=1&image_url=<image_url>

[top of traceback omitted for brevity]
  File "/code/app.py", line 22, in predict_route
    result = predict_image(company_id, url=image_url)
  File "/code/predict.py", line 34, in predict_image
    model_graph, class_names = load_classification_model(company_id)
  File "/code/predict.py", line 21, in load_classification_model
    model = load_model(model_path)
  File "/usr/local/lib/python2.7/site-packages/keras/models.py", line 242, in load_model
    topology.load_weights_from_hdf5_group(f['model_weights'], model.layers)
  File "/usr/local/lib/python2.7/site-packages/keras/engine/topology.py", line 3095, in load_weights_from_hdf5_group
    K.batch_set_value(weight_value_tuples)
  File "/usr/local/lib/python2.7/site-packages/keras/backend/tensorflow_backend.py", line 2193, in batch_set_value
    get_session().run(assign_ops, feed_dict=feed_dict)
  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 895, in run
    run_metadata_ptr)
  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 1071, in _run
    + e.args[0])
TypeError: Cannot interpret feed_dict key as Tensor: Tensor Tensor("Placeholder:0", shape=(2048, 64), dtype=float32) is not an element of this graph.

Seems like a tensorflow session collision maybe?
Possibly of relevance is that inside utils there is another load_model() for a 'pre-processing' model (frozen pre-trained model). The reason for this pre-model is that I am training many different (small) top classifier models to stack on top of the (large) pre-trained model. All will use the same large base model, just with different small classifier models on top.
What I don't understand is why this would only fail inside a Flask request context, and not with REPL predict.predict_image(...)

I just tried K.clear_graph() after loading the base model, which fixes this load_model() error but obviously creates the new problem of not being able to run the base model. Fairly confident this is a tf session handling problem now.

@brittohalloran https://github.com/fchollet/keras/issues/2397#issuecomment-254919212

Appreciate the input. I'm not able to load the model so I can't get to the step where I'd save the graph. Maybe if I save the graph from the base model and then clear the session?

You shouldn't load models in request handlers (with Flask, concurrency is best handled outside it :)

Thanks. I'll have to try a different strategy. I never did get to root cause of this error.
The reason I wanted to load each model on request is that I may (eventually) have tens or hundreds of models for which a prediction could be requested at any time, and I thought having them all loaded into memory would be a bad idea. I guess I'll cross that bridge when I get there and just load the couple models I need now.

I had the same issue. The following resolved it for me:
from keras import backend as K
K.clear_session()

This is biting me too.  Exact scenario. May gave to ditch flask no time...pity, I was really getting to like it.


Publish odelay to Maven Central

I'm trying to use a library that depends on undelay, which transitively depends on this project. Was wondering if you could publish 0.1.0 to Maven Central so maven resolves everything correctly?
Thanks!

+1
this would be nice

hey @softprops
any progress here?

published as a minor release 0.1.1 because sonatype required some extra pom metadata and bintray wouldn't let me publish over top of 0.1.0. Sonatype should sync up with maven central soon


docs: fix vi.fn signature

Make the argument optional as described:

Creates a spy on a function, though can be initiated without one.

test/basic.test.ts > basic > should have the correct title

Looks like some flaky test needs to resolved.


aws shared credential file

Type of change

[ ] Refactor
[ ] New feature
[ ] Bug fix
[x] Optimization
[ ] Documentation Update

Description

Related Tickets & Documents

Related Issue #
Closes #

Checklist before requesting a review

[ ] I have performed a self-review of my code.
[ ] If it is a core feature, I have added thorough tests.

Testing

Please describe the System Under Test.
Please provide detailed steps to perform tests related to this code change.
How were the fix/results from this change verified? Please provide relevant screenshots or results.

Codecov Report

Merging #351 (4f508b2) into master (967454d) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #351   +/-   ##
=======================================
  Coverage   79.06%   79.06%
=======================================
  Files          22       22
  Lines        1003     1003
=======================================
  Hits          793      793
  Misses        210      210

Flag
Coverage Δ

gha
79.06% <ø> (ø)

python-3.9
79.06% <ø> (ø)

unit
79.06% <ø> (ø)

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

Need https://github.com/cloud-bulldozer/scale-ci-deploy/pull/216 to be merged first


SpotX: Add version 1.2

SpotX blocks ads and updates for the desktop version of Spotify, disabling podcasts and more

/verify


Fix basic_streambuf:

prepare() is rewritten to operate more simply; the state of the container is always consistent even between internal operations.
Reviewers: @seelabs @scottschurr

All my suggestions as a commit: https://github.com/seelabs/rippled/commit/5c545de795919430ccf021f1d6e11457beaeef37

:+1: Assuming the CI failures are spurious. I restarted them.

Still :+1: after latest push.

:+1:  Looks good to me.  Thanks for clarifying my questions.

Current coverage is 68.34%

Merging #1655 into develop will decrease coverage by -0.06% as of ed626bc

@@            develop   #1655   diff @@
=======================================
  Files           939     939
  Stmts         69475   69474     -1
  Branches          0       0
  Methods           0       0
=======================================
- Hit           47527   47483    -44
  Partial           0       0
- Missed        21948   21991    +43

Review entire Coverage Diff as of ed626bc

Powered by Codecov. Updated on successful CI builds.


[ruby] Hash parameter in do-block

This PR handles:

Fixing parser crashing on HashParameter.
Modified blockParameter in grammar to use parameterList instead of blockParameterList

Resolves #4353

Note: Checking performance of this parser change before merging


too many toots displayed in some browsers

https://sampsyo.github.io/emfed/ includes data-toot-limit="4" but 5 are shown in firefox and duckduckgo.

I've found the cause of this.
 ` , o = s.dataset["toot-limit"] ?? "5"`

and
      , c = s.dataset["toot-account-id"] ?? await (async()=>{
datasets need to be accessed in camelCase, not hyphen-case
it should be s.dataset['tootLimit'] (or just s.dataset.tootLimit)


docs: expand thinking around master nodes and register=false

An "I wish" reported from coreos.com/kubernetes/docs/latest/deploy-master.html

I wish this page explained why register-node is false and talks about the errors in the kubelet logs

Sounds like we need to cover two things a bit more clearly:

register is false so that user pods don't land on the master machine(s). expand on the strategy/thinking behind this. maybe a trade off for when you'd want to do this
explicitly state that these logs are harmless and what causes them. related: https://github.com/coreos/coreos-kubernetes/issues/56

Closed by https://github.com/coreos/coreos-kubernetes/pull/128


Unable to export large report (more 5000 rows) with grouping.

STR

Create report with group by any field (not PK)
Add count(ID) column to report

report must have more 5000 rows
export report datagrid

Actual result
Count of rows on csv file and datagrid is equals, but export ended partially, only 5000 first records of report was export correctly. The next 5000 (the next chunks) records are repeated/duplicate from beginning of report. There are not records of the last datagrid page in the result.
Expected result
CSV export and datagrid must be equals

Hi @vtsykun,
What version of oro platform are you using?

Hi @anyt
oro/platform 3.1.7

Thank you. As a workaround, you can change the batch size to the size of a file
# services.yml
parameters:
    oro_importexport.export.size_of_batch: 5000

Internal ticket id #BAP-18931


Add istio support to gke-public-cluster

Ref: https://github.com/gruntwork-io/terraform-google-gke/issues/38
Add support for istio addon

Requested changes:

[ ] Add a README update describing the minimal setup needed to get started with Istio?
[ ] Update the variable block to say EXPERIMENTAL FEATURES and mention that these are not recommended to be enable unless you know what you are doing?
[ ] Add a regression test that verifies Istio setup?

Also would like to hear what @robmorgan and @autero1 thinks.

I hope it's ok. Thanks for the review.

It looks like the build failed. The problem appears to be that when Istio is turned on, none of the nodes actually get registered to the cluster.


Reduce code duplication for QR code scan

Follow up to https://github.com/inventree/InvenTree/pull/7960. Refactors QR code scan code to remove duplication

LGTM, thanks @matmair


Refactor handling OFFER req and update should_store db method

What was wrong?
We were accepting any content offered without checking if we are interested in the content.
How was it fixed?

Refactor the should_store DB method to improve performance. This requires bumping rocksdb crate version to have access to the more performant keym_may_exist method.
Remove the dummy should_store method and accept only content we are interested in.

To-Do

[ ] Add entry to the release notes (may forgo for trivial changes)
[ ] Clean up commit history

Interesting, if I'm understanding correctly this will result in a node sometimes not accepting data that it should accept.
Have you done any analysis on why & how often these false positives from key_may_exist will occur? I've glanced at the code but haven't come to a conclusion. I wonder whether it's worth the performance increase.
Also for what it's worth (if anything), Facebook doesn't use this function in production, at least in 2018:
https://github.com/facebook/rocksdb/issues/4149

Also for what it's worth (if anything), Facebook doesn't use this function in production, at least in 2018: facebook/rocksdb#4149

Hmm, It seems it is not as reliable as I expected, I will revert back to the get() method. Thanks for pointing this out!

Actually, get_pinned seems more appropriate to avoid unnecessary memory copy.