WIP: Add type signature to built-in functions

This PR introduces a type system for builtin functions. Was built to make https://github.com/influxdata/kapacitor/issues/1203 easier to implement.
Todo:

[x] Squash Commits

Todo Type System:

[x] Add Changelog entry
[x] Remove execution state from NodeEvaluator.Type function signature

Todo Missing and isPresent:

[x] Add Changelog entry
[x] Fix problem with is stateDuration and stateCount
[x] General Cleanup
[x] Better errors
[x] Add tests

@nathanielc One thing I'm not sure what to do about is task_master.go#L393-L394.

Hmm, I think we need to separate out dynamic methods vs dynamic functions. Where a method is always a function bound to an object and a function is global.
Right now the DynamicMethod bits are used for two purposes.

Allow UDFs to be dynamically part of TICKscript a la @myUDF()... the myUDF is a method call on the parent node.
Allow arbitrary global functions to be added to the scope, this is only used in the new alert matching logic for things like changed() and level().

Since those are really very different and the first case doesn't ever show up in a lambda expression I think they should be handled separately. I think the best way forward is to add DynamicFunctions and leave DynamicMethods alone. This code https://github.com/influxdata/kapacitor/blob/master/tick/stateful/eval_function_node.go#L65-L69 was added with the recent alert handler changes, which re-purposed DynamicMethods. In hind sight that wasn't a good change. Lets revert that change and have both DynamicFunctions and DynamicMethods. Then only Functions need declare their signature since methods are bound to an object and cannot be part of evaluating stateful expressions.
Does that help?

I think that makes sense. I'll get on that now.

@nathanielc So I'll still need a way to access the DynamicFunction. Should I add another field to the Scope struct for that? So scope will look like
type Scope struct {
    variables map[string]interface{}

    dynamicMethods map[string]DynamicMethod

    dynamicFunctions map[string]DynamicFunction
}

@desa Yes, that sounds good.

@nathanielc kk made suggested changes.

@nathanielc pending a review of the most recent couple commits and final squash I think things should be good to go.

I just tested this locally and got this error:
E! error while evaluating expression: invalid comparison operator > for type missing

with this TICKscript
stream
    |from()
        .measurement('missing')
    |where(lambda: "m1" > 6)
    |where(lambda: isPresent("m2"))
    |eval(lambda: "m2" + "m1")
        .as('m3')
    |log()

and sending this point:
missing m2=8

Can we make the error about the fact that the field m1 is missing not about the operator type error?

E! error while evaluating expression: invalid comparison operator > for type missing

Should be an easy fix

@nathanielc made changes you suggested.

@desa Now I am getting the error:
E! error while evaluating expression: left value is missing value

Can it include the name of the missing field/tag?

ah yes. I'll add that. Sorry for the oversight.

@nathanielc  should be good to go error message says
[miss:where2] 2017/04/20 15:02:56 E! error while evaluating expression: left value "m1" is missing value

now.

@desa There are still a few cases where errors can occur when the type is missing that doesn't include what the name of the field was that is missing.
For example:
stream
    |from()
        .measurement('m')
    |where(lambda: "t")
    |log()

Gives the error:
E! error while evaluating expression: TypeGuard: expression returned unexpected type missing, expected boolean

Since TypeGuard is an error type maybe we can simply have it check for the Missing Type and return a better error message?

@nathanielc I'll fix type guard to add missing variable name. I'll go through and do a scan for anywhere that might have that issue

@nathanielc I avoided the type guard error and opted to just check for missing types in the reference nodes. Figured it was better than changing type guard.
I did another comb through. I think there might be some way to get an unexpected error from an unary node, but I'm having a hard time reaching that case. I can write some additional check in just in case. Thoughts?

in particular I'm able to produce
[another:eval2] 2017/05/02 14:22:12 E! TypeGuard: expression returned unexpected type invalid type, expected missing

with this tickscript
stream
    |from()
        .measurement('m')
    |eval(lambda: -"t")
        .as('isk')
    |log()

fixed. should be good to go assuming I haven't missed anything

@nathanielc updated changelog


Automate deployment

If we can migrate HashBus to v7 and dotnetcore, it will be fairly easy to run in docker containers and run everything with docker-compose.

I'd prefer not to upgrade HashBus to v7 until RC.


Git commands permission denied makes build fail

So, I'm using Netlify to deploy my app. They have permissions that don't allow git commands. I tried to set some options manually to avoid having to get them with Git (I won't be able to set revision though):
new BugsnagDeployPlugin({
  apiKey: '...',
  releaseStage: 'production',
  repository: '...',
  branch: 'prod'
}),

But it's still trying to run some Git commands that fail from the getProjectDetails function. Is there any way to make the functions in git helper more resistant to errors? I tried a few things without success...
Thanks.

Hi @nicooprat,
Thanks for the issue - I really would love to get this working for you! I have published a new version (v0.1.4), which I hope will resolve the volatility of those helper functions with permission issues.
Please let me know if there is anything else. After Christmas break I will revisit this and see whether I can utilise something like nodegit to get around those permission issues. But for now this is the best I can do.
Thanks again :)

Hi @jmshal
Thanks for your quick answer. Looks like everything is working fine! 👍


Workaround for missing isopen check in FDWatcher

(possible multithread race with this still needs to be fixed)

macOS tests timed out so I restarted them.

Are we pretty sure https://github.com/JuliaLang/Downloads.jl/runs/4083466739?check_suite_focus=true was not a bug here?

The root error was this:
RequestError("https://untrusted-root.badssl.com", 28, "Connection timed out after 75933 milliseconds", Response(nothing, "https://untrusted-root.badssl.com/", 0, "", Pair{String,String}[]))

I guess it could be a bug but it seems more likely that the request either got lost or the server didn't reply in time.

Merging since this is an improvement in any case.


No notification in sandbox environment.

From @addikhann:

Can you please tell me how to test Sandbox account because in my Sandbox Environment show this<PHONE_NUMBER>9 number and i am calling this number subscription.NotificationEvent not fired. is C# SDK problem

Can you please tell me how to test Sandbox account because in my Sandbox Environment show this<PHONE_NUMBER>9 number  i am calling this number and dial extension 101 subscription.NotificationEvent not fired. is C# SDK problem

        var sdk = new SDK("", "", SDK.Server.Sandbox, "", "1.0.0");
        var platform = sdk.Platform;
        var response = platform.Login("", "", "", true);

        var subscription = sdk.CreateSubscription();
subscription.EventFilters.Add("/restapi/v1.0/account/~/extension/~/presence?detailedTelephonyState=true");

subscription.ConnectEvent += subscription_ConnectEvent;
subscription.NotificationEvent += subscription_NotificationEvent;
subscription.Register();
void subscription_ConnectEvent(object sender, RingCentral.Subscription.SubscriptionEventArgs e)
{
// var message = ((JObject)e.Message).SelectToken("body.changes[0].type").ToString();
MessageBox.Show(sender.ToString());
MessageBox.Show(e.Message.ToString());// throw new NotImplementedException();
}
    void subscription_NotificationEvent(object sender, RingCentral.Subscription.SubscriptionEventArgs e)
    {
        MessageBox.Show(sender.ToString());
        MessageBox.Show(e.Message.ToString());
    }

The following code works for me:
using System;
using System.Threading;
using RingCentral;
using RingCentral.Subscription;

namespace RingCentralTest20160715i
{
	class MainClass
	{
		private static SubscriptionService sub;
		public static void Main(string[] args)
		{
			var sdk = new SDK("appKey", "appSecret", SDK.Server.Production);
			var platform = sdk.Platform;
			platform.Login("username", "", "password", false);
			sub = sdk.CreateSubscription();
			sub.EventFilters.Add("/restapi/v1.0/account/~/extension/~/presence?detailedTelephonyState=true");
			sub.NotificationEvent += (sender, e) => {
				Console.WriteLine("Notification: " + e.Message);
			};
			sub.Register();
			while (true)
			{ // sleep forever becase we don't want the app to quit
				Thread.Sleep(999999999);
			}
		}
	}
}

However, I was doing testing with my own account in production environment. I was unable to get your number working. I have no idea what the root cause is. It's mostly an environment issue or configuration issue. Please send an email to<EMAIL_ADDRESS>to ask them to help you to fix issues with your sandbox environment/account.

i  was send you my Developer Credential from my side, for checking my API

@addikhann I've got your email, but it doesn't help at all. I am pretty sure that there is no problem with the C# SDK. I have justed tested at least 10 times, the same code works in production with my number but doesn't work in sandbox with your number. Apparently the root cause is your sandbox account, please send email to<EMAIL_ADDRESS>to get your sandbox account fixed.

Problem solved. I copy and paste the email for others' reference:

The key point is you need to download the RingCentral softphone (the app) and login with your sandbox account.
Please follow these steps:
Step 1: Please read https://developers.ringcentral.com/library/tutorials/test-account.html carefully and finish the steps in “Configure Softphone for Sandbox”
Step 2: Login RingCentral for Desktop application (either windows edition or mac edition) with your sandbox account.
Step 3: Start your app(the code you wrote to receive presence notifications). Some sample code FYI:
private SDK sdk;
private SubscriptionService sub;
public void MyMethod ()
{
    sdk = new RingCentral.SDK ("your app key", “your app secret", SDK.Server.Sandbox);
    sdk.Platform.Login ("your username", "", “your password", false);
    sub = sdk.CreateSubscription ();
    sub.EventFilters.Add("/restapi/v1.0/account/~/extension/~/presence?detailedTelephonyState=true");
    sub.NotificationEvent += (sender, e) => {
        Console.WriteLine(e.Message);
    };
    sub.Register ();
}

Step 4. Call your number and dial extension.  Both the softphone and your app will get notifications.
Please note that, you have to keep the softphone running during testing. I think this is a requirement for sandbox only. For production, you app will get notifications no matter there is softphone running or not.
P.S.  Softphone means the RingCentral for Desktop application.


Artist duos' metadata displaying on APP with truncated dates

On the artist profile page, artist duos with two dates entered in the birthday field are displaying with only the first of those two dates under their name, and without the deathday field.
For example,

Versus the full metadata as displayed on the Artwork page under Biography (the copy for which is displaying in an unclear way, but that's another story):

This issue is universal for the artist profile pages of artist duos with dates structured in this way.
This was reported when a partner, Blain|Southern, inquired over intercom about their new (highly publicized) representees, Jake & Dinos Chapman.

this is actually a problem with the way we have completely unstructured data for birthdates and dates of death. this has caused annoying problems in the past and the true solution is to have structured data that represents (a) when more than one unique artist are involved in a collaboration, (b) numerical birth and death years for each individual artist.
The data for this artist id (because according to the database they are treated as one Artist) is:
{
"data": {
"artist": {
"birthday": "1931–2007, 1934–2015",
"deathday": ""
}
}
}
so in the "b. 1931", this is a client-side attempt to normalize the birthday string, which sometimes is "b 1931", "born 1931", "1931-2000" etc. it takes the first instance of a number in an attempt to extract the birth year and prefixes it with 'b.' the text in the bio is simply the entire birthday string, untampered, which happens to be a string representation of two birthdays and death days (which is not how this field should be used, however there isn't a good alternative built into our schema for artist duos). I don't know a good solution for this other than fixing our schema and treating these years as numbers with some validation that they contain exactly four digits, and establish some relation between artists that represents a 'collaboration'

@briansw Can you decide what this should look like? And are there cases with even more artists that we need to worry about?

For reference, this is the formatting we do of this unstructured data for both Force and Eigen: https://github.com/artsy/metaphysics/blob/1a198118e7b7b0ec7d504adc1fedaf76bb669676/schema/artist/index.js#L170-L187

Discussed this with @briansw, we should probably just use whatever unstructured data exists in the DB when an entity represents a group. Does the model have a flag for that?


Incorrect XLSX file generated

If you generate an xlsx file using rubyXL you won't be able to validate it using "Open XML SDK 2.5 Productivity Tool for Microsoft Office". The problem is that in [Content_Types].xml there is sharedStrings.xml mentioned:
<Override PartName="/xl/sharedStrings.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml"/>

but as this library is not using shared strings (yet) they are not really added to the document.
I had to use:
RubyXL::SharedStringsTable.class_eval do
  def before_write_xml
    true
  end
end

as a workaround. That makes the sharedStrings appear although there is validation error that count attribute is missing.
In general it would be good idea to make sure that Open XML SDK 2.5 Productivity Tool for Microsoft Office validates generated documents without a single error.

So are you saying that deleting the aforementioned <Override> line from the generated file would fix the issue? I was under the impression that overrides for which files do not actually exist, are simply ignored.

@weshatheleopard that might also be a good solution. I could test it for you if you don't have Windows.

Please do.


Container security scanning

Containers should be scanned for CVEs automatically after build and before pushing.
Find a free or self hosted solution and display a badge in the project README with details of the scan.

Replacing base image python:3.9-slim based on Debian with python:3.9-alpine yields an image with 0 CVEs.


Win 7

Does this work with Win 7?
Thanks

I have only tested it in win10 and win11, but it should work in 7 as well. I will boot up a vm and let you know.

Great, thanks

I'm sorry, i've tried everything, but windows 7 won't boot it. Maybe you'll have more luck than me. Remember to install vc-redist and .NET 6.0

I just found the issue; basically .NET for windows 7 requires an additional dependency, basically a security update. You can install it here, in addition, obviously, to .NET and vc-redist, which you probably already have. For more information about .NET dependencies, you can go to this ms doc page

Needless to say, with these requirements, WinContextTweaker on windows 7 does boot up.

Hope this late comment can still help you, have a nice day.

Thanks, I don't think I have 3063858..I tried Googling to see what the update was for, but couldn't find anything specific, just that it was a security up date.
I just want to make sure installing KB3063858 is OK to install, as I got a bit fed up with the MS updates causing problems.

Yeah, for that i'm afraid i can't help you. If it makes you feel a little more safe, this security update is listed as a .NET 6.0 dependency for Windows 7 by microsoft themselves right there (as i said previously). Also, Windows 7 is a quite battle-tested OS, so i suppose such a required update for such an important framework (.NET) would be bug-free. It is not new by any means, in fact, it was published in 2015.

One more thing, it's not fair to say it's a "windows update", as it's more of a package. I was able to uninstall it in the "Installed Updates" window in the control panel.


Preflight much earlier (on creating/saving a configuration)

It's possible to do a bunch of work on your project (creating a Python environment, developing your app) only to discover later that something isn't supported (for example, your python version).
We could do a preflight check via a separate API as soon as you create a Deployment, or any time the config file changes.
This Issue is the UX changes to call new API in issue: #487

Consider adding a palette command (and maybe a button in the publisher) to run preflight checks.


Stackrox helm chart PodSecurityPolicy deprecation/deletion in v1.21/v1.25

Hello.
Do You have plans for stackrox helm chart PSP replacement for k8s clusters newer than v1.25 due to remove of this functional? If yes, what it will be (PSS/OPA) and what are the terms of PSP replacement  implementation?
Thank You.

Hi!
Which StackRox version are you referring to? In recent versions of StackRox PSPs are only included for backwards compatibility and are not installed on newer Kubernetes versions (without any replacement).
Does this help?
Moritz

Will close this due to lack of activity.


add mediaviewer

https://github.com/owncloud/files_mediaviewer
move to phoenix tracked in https://github.com/owncloud/phoenix/issues/1159

merged in https://github.com/owncloud/phoenix/pull/1530
can be enabled by adding "media-viewer" to the apps in config.php


Add support for "external" tables

See the Table resource field and the federated data sources narrative docs.
External tables can be one of:

Files in Cloud Storage
Google Sheets
Bigtable tables
Datastore backup sets

@jgeewax I'm pretty sure those fields were not in the resource when I first implement v2 last August.  Are the back-end team pushing out new features without bumping the API version?

@tswast I need guidance on this one. Can this be either moved to an overall BigQuery feature doc (either in the pre-beta or post-beta section) or closed if no longer needed?

Should be moved to the doc probably. Definitely still relevant.
On Fri, Aug 11, 2017 at 2:15 PM Luke Sneeringer<EMAIL_ADDRESS>wrote:

@tswast https://github.com/tswast I need guidance on this one. Can this
be either moved to an overall BigQuery feature doc (either in the pre-beta
or post-beta section) or closed if no longer needed?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GoogleCloudPlatform/google-cloud-python/issues/2372#issuecomment-321920812,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAPHAxl_KeXv_3A3GuSeuLVWo9as7u6Jks5sXMSGgaJpZM4KC6l5
.

+1 Definitely still relevant.

I manage to query Avro by doing this:
class QueryJob(bigquery.query.QueryJob):
    def _build_resource(self):
        return self._properties

Fixed by https://github.com/GoogleCloudPlatform/google-cloud-python/pull/4193, to be merged to master in https://github.com/GoogleCloudPlatform/google-cloud-python/pull/4245.


Admin improve order screens

@forvalho with the new commit I'm at the same amount of failures as the last accepted PR (https://github.com/surfdome/spree/pull/23), we could continue fixing those specs later.


Raise giflib minimum to 5.0 and spruce up

Raise minimum GIFLib to 5.0. That was back in 2012, so there's really no
reason for us to support 4.x any longer.
Remove cruft no longer necessary.
While I was in there, update error calls to the new format convention,
and change some old NULL to nullptr.

This will only go into master / 2.3, it will not change the minimum
dependency of released branches.

I'm having second thoughts about this. It seems that all varieties of CentOS 7 (the most common Linux distro family in the VFX world) are inexplicably pegged to giflib 4.1.
Now I'm worried that removing support for 4.x (despite 5.0 being released 9 years ago!) has very little benefit in terms of code simplification, but will surely result in an increased support burden from people whose OIIO builds are unable to read such a common file format.
I'll sleep on it, but probably will end up withdrawing this PR.


Add the ability to dump the complete preprocessed C/C++ bindgen takes as input to a file

clang++ -save-temps doesn't seem to include any extra header files passed in as -include <header> which hurts debugging and reproducing issues in a standalone way. We use that to support multiple input header files. We should figure out how to work around this issue so we can accept multiple input headers and also get nice standalone debugging.
Perhaps create a synthetic in-memory file that has a #include <header> for every input header, and then we actually process that?
Not sure how to get libclang to dump a preprocessed file either.

This would help people who are filing issues with us file better issues, too.


Add bookshelf-secure-password to Community Plugins section of README

This is a simple plugin to enable hashing/verification of passwords using BCrypt.  It is similar to Rails' has_secure_password functionality, leaving very little room to make a mistake.
It offers both synchronous (immediately as the password is set on the model) and asynchronous (when the password is to be saved) methods for hashing the password.

Thank you for your contribution 👍


Add function parameters

Yeah, that's a good question. Unfortunately here we are limited by how rustdoc structures the data and its terminology. It currently differentiates between functions and methods, and treats associated functions as methods as well, so we must do so as well. But there was some discussion that the distinction between functions and methods may be going away (which I would consider a good thing) and if/when that happens then we'll be able to streamline our checks accordingly.


inveniordm v8 update

modernize code base
release: 2022.05.06

Hmm GitHub is acting strangely... Perhaps it's the large lcsh vocabulary file...? Checkout the branch locally and compare against master to see the difference :shrug:

I thought I could get to this today, but had some stuff come up. I'll check this out on Monday if it's not already merged.


Don't fetch content for Welsh attachments

We don't index non-English content in search, as we have no way of
scoping a search by language.

I'll add a test for this before merging it


add attribute selectedPoints & selectedPoint to Polyline as mouse event's parameter

add attribute "selectedPoints"  to Polyline as mouse event's parameter?   selectedPointsis array(size=2), selectedPoints(startPosition and endPosition) from Polyline when mouse over it's any line ?

example: I need to get a line point(startPosition and endPosition) from Polyline when mouse over it's any line ?         like taxi ,i want to change line color for last 10 point when mouse over.
2.add attribute "selectedPoint"  to Polyline's any point as mouse event's parameter?  it show any point's detail information.
example: I need to get a point's detail information when mouse over to Polyline's positions's any point?

Hi there,
thanks for reporting!
This is a bit application specific. When there's a mouse event on a Polyline, the pointer is not necessarily directly over a one of the line's vertices, so exactly how the matching would work would depend on how you use it.
Also, for complicated lines, figuring out the coordinate might be computationally expensive, so especially for mouseover this could turn out to be a performance issue.
In total, while I see the use case, not something I'd consider adding to Leaflet's core at this point. It's fairly straight forward to add this to your application code, or even build a plugin for it.


Multiple access_token support?

Let's suppose we have a banking application with a standard OIDC authentication. I can easily retrieve an access token for the bank API.
Suppose we have a sensible operation like a transfer, requiring a 2-factor authentication. I can easily reauthenticate the user with a specific acr_values and a specific scope. I retrieve a new access token for this scope and I can proceed to my transfer.
But...
The previous access token is lost. As my current AT may be a one-time token, I have to request a new access token for the common tasks.
Is it the correct way to proceed?

That's not s scenario this library attempts to address.

Hi @brockallen, could you please elaborate on this? What is the scenario that UserManager attempts to address with only one managed access token ? Only calling the userInfo endpoint and having "base" scopes on a token that gets renewed ?
Do you have guidance for other scenarios ?
For example, in the scenario where an already logged in user performs some protected action needing some consent form in the IdP to get a token with specific scope, what is the recommended way of doing it ? calling the lowlevel OidcClient methods on an already configured UserManager ? Creating a new UserManager ? Something else ?
Thank you for your time (and this library)!


Refactor fixture loader

(closes #878 )
What was wrong?
Fixture loader was starting to get bloated and needed to be re-factored.
Related to Issue #878
How was it fixed?
Create separate data classes for loading fork code (ForkLoad), json fixture loader (Load) and json transaction loader (TransactionLoad)
Cute Animal Picture

Completed the updates to the PR based on the review and rebased it on latest forks/cancun.

Codecov Report
Attention: Patch coverage is 66.66667% with 1 lines in your changes are missing coverage. Please review.

Project coverage is 69.64%. Comparing base (bf47143) to head (2b25d07).
Report is 51 commits behind head on forks/cancun.

Files
Patch %
Lines

src/ethereum/cancun/fork.py
0.00%
1 Missing :warning:

Additional details and impacted files
@@               Coverage Diff                @@
##           forks/cancun     #900      +/-   ##
================================================
- Coverage         69.96%   69.64%   -0.32%
================================================
  Files               610      611       +1
  Lines             34295    34902     +607
================================================
+ Hits              23993    24306     +313
- Misses            10302    10596     +294

Flag
Coverage Δ

unittests
69.64% <66.66%> (-0.32%)
:arrow_down:

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

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


[Attempt] Fix for shelf type in Library

Attempt to fix #637
From what I can see, only the history and playlists have ids (library-recent and library-playlists-shelf)
I don't know how to identify WATCH_LATER,  LIKE, or CONTENT_CUT. Those sections will still return undefined when accessed from their respective properties

A workaround (or redundancy to prevent being blocked) to getting data from the library is to:

use FEhistory for history
use FEplaylist_aggregation for playlists
use playlist with id VLWL for watch later
use playlist with id VLLL for liked videos
use FEclips for clips (I haven't tested this one)

This is what I did in https://github.com/iBicha/yt2alt/pull/28/files to get all the data I need without using the library

Closing this since

#650
A refactor instead of a fix https://github.com/LuanRT/YouTube.js/issues/637#issuecomment-2061888170


Secondary colored button

How can I create a flat Button colored with secondary(accent) color?

I just added a className and used mixins to change the style.
<Button className="secondaryButton" flat >Secondary</Button>
and in your styles.scss, add
.secondaryButton {     @include mdc-button-ink-color($secondaryText); }
But I am pretty sure there will be a striaghtforward way to do it.
For now, just do this.

If you look at the button page in the docs there is an example using the theme prop.

@nbob were you able to get your button?
Also, feel free to use the Gitter chat for questions that aren't really issues with the library.

Yes, I see theme prop, but it does not affect on ripple color
Ripple colored primary

The Buttons (as well as anything else that has a Ripple) accepts all of the Ripple props as well. Here is the solution, sorry for the delayed reply. I'll update the docs accordingly.
<Button flat theme="secondary" accent>With Theme</Button>


update RxJS version to 4

The RxJS 5 beta 2 bundle doesn't contain 'add/observable/of', which throws an error.
Beta 2 https://github.com/ReactiveX/rxjs/blob/9c887a49eda1a5ae87ae25b0f6eb49a9a63bf6f2/src/Rx.ts
Beta 4 https://github.com/ReactiveX/rxjs/blob/c4f6a5f8fc19fb2e340f0a4664dd91669923a400/src/Rx.ts

Hello,
I'm sorry but I cannot force people to use RxJS beta 4 because the current Angular 2 beta uses RxJS beta 2 :-/

Hi guys!
The angular rc.0 is out and it uses RxJS beta 5 :smile:
See https://github.com/angular/angular/blob/master/CHANGELOG.md#200-rc0-2016-05-02 for more details.

Yep, looks like we can close this one :)


Updated h2 and CVE exemptions to 2.2.224

This has been tested and addresses some problems that were not fixed with -  https://github.com/finos/traderX/pull/41


Add parameters field in create recurring job within volume detail page

What this PR does / why we need it

Add parameters field in create recurring job within volume detail page (only show for backup task)
Fix missing parameters field when edit backup-force-create job
Fix typo

Issue
https://github.com/longhorn/longhorn/issues/8291#issuecomment-2216470535
Test Result

Additional documentation or context

@ChanYiLin Please help review and see if you have any comments.


Not able to send mails

I was trying to send mail using drupal_mail() and I got this message:

WD mail: Error sending e-mail (from<EMAIL_ADDRESS>to name@mail.com).                                                               [error]
Unable to send e-mail. Contact the site administrator if the problem persists.

I checked mail logs and found this:

Aug 27 09:09:04 drupalvm sSMTP[4260]: Unable to connect to "localhost" port 1025.
Aug 27 09:09:04 drupalvm sSMTP[4260]: Cannot open localhost:1025

In the documentation its written to access http://drupaltest.dev:8025/ to check mails. I think the port should be 1025, and domain should be drupalvm.dev (as per domain in config.yml). Also I was trying to access http://drupalvm.dev:1025 and http://drupalvm.dev:8025 but everytime it got timed out. I was hoping that I will see the mail UI.

I tried adding 1025 in firewall_allowed_tcp_ports and then did vagrant reload, but its not working.

It soun like maillog isn't started correctly. Is it in your list of installed_extras?

Its there
installed_extras:
  - adminer
  - mailhog
  - memcached
  - pimpmylog
  # - selenium
  # - solr
  - varnish
  - xdebug
  - xhprof

Can you log in and do a sudo service mailhog status and see what's going on? It might need a manual restart for some reason.

It says "MailHog not running"
On Thu, Aug 27, 2015 at 6:40 PM, Jeff Geerling<EMAIL_ADDRESS>wrote:

Can you log in and do a sudo service mailhog status and see what's going
on? It might need a manual restart for some reason.
—
Reply to this email directly or view it on GitHub
https://github.com/geerlingguy/drupal-vm/issues/213#issuecomment-135420634
.

--
Regards,
Subhojit Paul
Number: +919836315593
Skype: subhojit.paul21

Please try manually starting it with sudo service mailhog start, then visit the mailhog interface on port 8025, and see if it loads.

I executed the command and then it returned message "Starting mailhog" (pretty quickly). The interface is not loading.

The start is pretty quick (it takes a couple seconds after it reports "Starting mailhog." to actually start, but once that's done, you should be able to visit http://drupalvm.dev:8025/ in your browser and see the MailHog UI. If that's not happening, MailHog seems to not be starting up on your VM.
You may need to rebuild the VM, but can you also try running the following and see what happens?
/opt/mailhog/mailhog

When I run that command (if MailHog is not running), I get:
$ /opt/mailhog/mailhog
2015/08/27 15:12:24 Using in-memory storage
[HTTP] Binding to address: <IP_ADDRESS>:8025
2015/08/27 15:12:24 [SMTP] Binding to address: <IP_ADDRESS>:1025
Creating API v1
Creating API v2

Now its loading. Actually earlier I was trying with port 1025, now I tried with the link you gave and it worked.
BTW, the Mailhog service is not starting automatically. I have to manually start it using command sudo service mailhog start. Is there anything I have to add this in config.yml. Also in enabled port settings in config.yml do I have to specify the allowed port numbers, mine has 1025 added.

BTW thanks man :smile: I have shifted from MAMP to VM. This thing is awesome and truly appreciate your quick responses :+1:

@subhojit777 - Port 1025 is only used for sending mail, so it doesn't need to be open in the firewall's allowed TCP ports (since that's only for external traffic into the VM). Only port 8025 is required for loading the UI from outside the VM.
And yeah, I've noticed Mailhog doesn't start at system boot, so I'm going to look into that.

@subhojit777 - Thanks for the kind words! I'm moving the bugfix portion of this over to #215.


can not login

hii
hope  you finding well
when we try to log in to admin page its only show me a black page with no filed to enter password to entry . i reinstall panel also but its not solved . and only show a black blank page .
how we can fix it ?

dm me here so to check

fixed, the cause was cloudflare wrong settings(applications)


Comparing user details with results from HDYC

From my observations, there are a couple of users who have more changesets on osm-user-api than on hdyc while there are some the other way round. Curious to know what could a potential reason be.
osm-user-api is ahead of hdyc

https://osm-comments-api.mapbox.com/api/v1/users/name/jpgon

osm-user-api is behind hdyc

https://osm-comments-api.mapbox.com/api/v1/users/name/abbafei

cc: @batpad

For user DoctorTeeth

0 changesets on osm-comments-api

https://osm-comments-api.mapbox.com/api/v1/users/name/DoctorTeeth

20 changesets on OpenStreetMap user page.

http://www.openstreetmap.org/user/DoctorTeeth


Fixed foreign friend requests

Tests now pass.
If foreign host sends a request, a CachedAuthor is added to the Author's requests list.

Looks fine. Can someone have a second look?

Looks good! :+1:


Add Introduction Tutorials for every Framework

We should provide a (short) introduction in our Wiki for every framework where we use our components, e.g. Reactjs, Angular2, Aurelia etc.

+1

@faboweb could you add your ng2 integration to https://github.com/wholesale-design-system/components/wiki/How-to-integrate-component-into-your-build-system ? Then we can close this one :)

It's on my todo list with low prio

It's done https://github.com/fabric-design/components/wiki/How-to-integrate-component-into-your-build-system


localStorage.setItem always set value to localStorage['hammerhead|storages-sandbox-temp']

Are you requesting a feature or reporting a bug?
bug
What is the current behavior?
window.localStorage.token = 'value' will set value of localStorage['hammerhead|storages-sandbox-temp'] to 'value'
What is the expected behavior?
should set localStorage.token to 'value'
How would you reproduce the current behavior (if this is a bug)?
Just set localStorage
Provide the test code and the tested page URL (if applicable)
Tested page URL:
Test code
ClientFunction(() => localStorage.setItem('token', 'value'));

Specify your

operating system: MaxOSX
testcafe version: 0.14.0 alpha-4
node.js version: 7.7.3

Hello, @Darmody! Browser storages are sandboxed by testcafe-hammerhead, so page scripts that use storages API (e.g. localStorage.getItem('token'))) will be fine and you can not worry about how the real browser sandbox is actually used. Does something not work because of this?

Ahh, ok, got it now, querying by [] is not sandboxed.

Actually, I tried to use localStorage['someKey'] and localStorage.someKey` they are sandboxed. So how did you figured out the fact that the storage is saved to the different key?

@AndreyBelym Hi.
Becasue I debugger into it, then directly open the application tab of chrome and check the localStorage values.

@AndreyBelym Does it mean that I should use localStorge.getItem insteadOf localStorage[] in my app?
I think it is not friendly. 😢

No-no, you can use localStorage[] and localStorage., I was wrong about it. testcafe-hammerhead do some script processing, so for scripts on your page everything will seem that they directly use the window.localStorage, but actually they will use values from localStorage['hammerhead|storages-sandbox-temp']. So while it's looks frightening in the debugger console, in scripts everything should be OK.

@AndreyBelym Hm. But I failed some app logic associated with localStorage.
Let me figure out if it is my mistake.

I have a similar problem. Setting the value seems to do the sandbox thinger.
I see this in the application tab in Chrome devtools :
hammerhead|storage-wrapper|Hy_oiwl6e|localhost:8888 => [["atlas:lang","atlas:token"],["en","{my-jwt-token}"]]
hammerhead|storages-sandbox-temp => atlas:token

They are both used for headers added to my request with Relay, and it seems like hammerhead adds weird prefixes?
I don't know if it's related, but it depends on how @Darmody uses localStorage too.

It was a Chrome extension that overrode all requests Accept-Language header. Never mind my comment!

I'm closing this since there were no activity here for a long time. Feel free to reopen the issue if it's still needed.

@cdroulers Could you please share which Chrome extension was in question?
I might be having the same problem and this info would be useful.
Thanks!

@mnemanja https://chrome.google.com/webstore/detail/quick-language-switcher/pmjbhfmaphnpbehdanbjphdcniaelfie?hl=en

Hi @mnemanja, starting from 0.18.0 TestCafe runs tests in Chrome with an empty profile (without any extensions) by default. So, you can try to run tests with the latest TestCafe version

Thanks guys for these quick replies.
My problem is that the data is not ready when the router needs it.
I've created a ticket for it here https://github.com/DevExpress/testcafe/issues/1916


Expand Bug ?

Hi,
I have this code:
using GomoiuWeb.Base;
using GomoiuWeb.Shared.Data.DB;
using OdataToEntity;
using OdataToEntity.EfCore;
using System;
using System.IO;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace ODat
{
    class Program
    {
        static async Task Main(string[] args)
        {
            Global.DefaultConnectionString = "...";
            //Create adapter data access, where OrderContext your DbContext
            var dataAdapter = new OeEfCoreDataAdapter<AppDB>();
            //Create query parser
            var parser = new OeParser(new Uri("http://dummy"), dataAdapter.BuildEdmModelFromEfCoreModel());
            //Query
            var uri = new Uri("http://dummy/Doctors?$select=Name&$expand=ClientAppointments");
            //The result of the query
            var response = new MemoryStream();
            //Execute query
            await parser.ExecuteGetAsync(uri, OeRequestHeaders.JsonDefault, response, CancellationToken.None);

            Console.WriteLine(Encoding.ASCII.GetString(response.ToArray()));

            Console.ReadKey();
        }
    }
}

And I get an exception with the $expand:
"System.InvalidOperationException: Nullable object must have a value.\r\n   at lambda_method(Closure , ClientAppointments )\r\n   at System.Linq.Internal.Lookup`2.CreateForJoinAsync(IAsyncEnumerable`1 source, Func`2 keySelector, IEqualityComparer`1 comparer, CancellationToken cancellationToken)\r\n   at System.Linq.AsyncEnumerable.GroupJoinAsyncEnumerable`4.GroupJoinAsyncEnumerator.MoveNext(CancellationToken cancellationToken)\r\n   at System.Linq.AsyncEnumerable.SelectManyAsyncIterator`3.MoveNextCore(CancellationToken cancellationToken)\r\n   at System.Linq.AsyncEnumerable.AsyncIterator`1.MoveNext(CancellationToken cancellationToken)\r\n   at System.Linq.AsyncEnumerable.SelectEnumerableAsyncIterator`2.MoveNextCore(CancellationToken cancellationToken)\r\n   at System.Linq.AsyncEnumerable.AsyncIterator`1.MoveNext(CancellationToken cancellationToken)\r\n   at Microsoft.EntityFrameworkCore.Query.Internal.AsyncLinqOperatorProvider.ExceptionInterceptor`1.EnumeratorExceptionInterceptor.MoveNext(CancellationToken can
cellationToken)\r\n   at OdataToEntity.Db.OeDbEnumerator.MoveNextAsync() in D:\\programming\\OdataToEntity\\source\\OdataToEntity\\Db\\OeDbEnumerator.cs:line 134\r\n   at OdataToEntity.Writers.OeGetWriter.GetWriter.SerializeAsync(OeEntryFactory entryFactory, OeAsyncEnumerator asyncEnumerator, OeQueryContext queryContext) in D:\\programming\\OdataToEntity\\source\\OdataToEntity\\Writers\\OeGetWriter.cs:line 129\r\n   at OdataToEntity.Writers.OeGetWriter.SerializeAsync(OeQueryContext queryContext, OeAsyncEnumerator asyncEnumerator, String contentType, Stream stream) in D:\\programming\\OdataToEntity\\source\\OdataToEntity\\Writers\\OeGetWriter.cs:line 246\r\n   at OdataToEntity.OeGetParser.ExecuteAsync(ODataUri odataUri, OeRequestHeaders headers, Stream stream, CancellationToken cancellationToken) in D:\\programming\\OdataToEntity\\source\\OdataToEntity\\Parsers\\OeGetParser.cs:line 120\r\n   at OdataToEntity.OeParser.ExecuteQueryAsync(ODataUri odataUri, OeRequestHeaders headers, Stream responseStream, Cancellat
ionToken cancellationToken) in D:\\programming\\OdataToEntity\\source\\OdataToEntity\\Parsers\\OeParser.cs:line 113\r\n   at OdataToEntity.OeParser.ExecuteGetAsync(Uri requestUri, OeRequestHeaders headers, Stream responseStream, CancellationToken cancellationToken) in D:\\programming\\OdataToEntity\\source\\OdataToEntity\\Parsers\\OeParser.cs:line 108\r\n   at ODat.Program.Main(String[] args) in C:\\Work\\gomoiu\\ODat\\Program.cs:line 27\r\n   at ODat.Program.<Main>(String[] args)"

Is this a bug or I should configure something to get it to work?
Thanks.

Possible client evaluation like https://github.com/aspnet/EntityFrameworkCore/issues/11567
For help please send the code reproducing bug

Thanks, the error was caused by a null value in the ClientAppointments many to many link table.
After fixing that, using expand generates an emty array.
This is done using EF Core 2.1 where you need a mapping table for many to many relations.
How to  use expand in this case ? Can this be done ?
Query:
http://dummy/Doctors?$expand=ClientAppointments&$select=Name,ClientAppointments
Result:
{
<EMAIL_ADDRESS>"http://dummy/$metadata#Doctors(Name,ClientAppointments,ClientAppointments())",
    "value": [
        {
            "Name": "Ioana",
            "ClientAppointments": []
        },
        {
            "Name": "Dr Felicia Cora ",
            "ClientAppointments": []
        },
        {
            "Name": "Dr Mirela Iancu",
            "ClientAppointments": []
        },
        {
            "Name": "Dr Daniela Popeia ",
            "ClientAppointments": []
        },
        {
            "Name": "Dr Daniela Lescae ",
            "ClientAppointments": []
        },
        {
            "Name": "Dr Diana Zaharia ",
            "ClientAppointments": []
        },
        {
            "Name": "Dr Ioana Adriana Ghiorghiu ",
            "ClientAppointments": []
        },
        {
            "Name": "Dr Alina Cavache",
            "ClientAppointments": []
        },
        {
            "Name": "Dr. S\u0103l\u0103v\u0103stru George Andrei ",
            "ClientAppointments": []
        },
        {
            "Name": "Dr. Avram Anca Ioana ",
            "ClientAppointments": []
        }
    ]
}

https://github.com/voronov-maxim/OdataToEntity/wiki/Many-to-many-relationships-(without-CLR-class-for-join-table)
Customer - Doctor
CustomerShippingAddress - ClientAppointment
ShippingAddress - Appointment
For help please send  c# classes: Doctor, ClientAppointment, Appointment

GomoiuWeb.Shared.zip
ODat.zip
Thanks!

GomoiuWeb.Shared is the lib with DbContext
ODat is the console test with OData lib

Please delete the files after download.

I don't use attributes on pocos in EF Core dose it work without them?

.. I was wrong, the relation between Doctors and ClientAppointments is 1-m

This dose not work with ef core many to many mapping table..

Please find test repository https://github.com/voronov-maxim/Doctors.git
there expand works fine

Thanks.
You are correct it dose work but there is a bug not being able to select only the navigation property in the expanded relation.
This:
http://dummy/Doctors?$expand=DoctorSpecializations($select=Specialization)&$select=Name
Gives:
{
<EMAIL_ADDRESS>"http://dummy/$metadata#Doctors(Name,DoctorSpecializations(Specialization))",
    "value": [
        {
            "Name": "Ioana",
            "DoctorSpecializations": []
        },
        {
            "Name": "Dr Felicia Cora ",
            "DoctorSpecializations": [
                {
                    "CreatedAt": "2019-04-24T08:56:15Z",
                    "CreatedBy": "0df6e890-8524-4e0a-bd00-6661ae0ae591",
                    "DeletedAt": null,
                    "DeletedBy": null,
                    "DoctorId": 6,
                    "SpecializationId": 5,
                    "UpdatedAt": null,
                    "UpdatedBy": null,
                    "Specialization": {
                        "CreatedAt": "2019-04-15T14:22:33Z",
                        "CreatedBy": "96a93e63-51c2-417e-9e35-4e2e2a5d459b",
                        "DeletedAt": null,
                        "DeletedBy": null,
                        "Description": "medic sef sectie",
                        "Id": 5,
                        "Name": "medic sef sectie",
                        "PageId": null,
                        "UpdatedAt": null,
                        "UpdatedBy": null,
                        "Url": null
                    }
                },
                {
                    "CreatedAt": "2019-04-24T08:56:15Z",
                    "CreatedBy": "0df6e890-8524-4e0a-bd00-6661ae0ae591",
                    "DeletedAt": null,
                    "DeletedBy": null,
                    "DoctorId": 6,
                    "SpecializationId": 6,
                    "UpdatedAt": null,
                    "UpdatedBy": null,
                    "Specialization": {
                        "CreatedAt": "2019-04-15T14:22:45Z",
                        "CreatedBy": "96a93e63-51c2-417e-9e35-4e2e2a5d459b",
                        "DeletedAt": null,
                        "DeletedBy": null,
                        "Description": "medic primar pediatru",
                        "Id": 6,
                        "Name": "medic primar pediatru",
                        "PageId": null,
                        "UpdatedAt": null,
                        "UpdatedBy": null,
                        "Url": null
                    }
                },
                {
                    "CreatedAt": "2019-04-24T08:56:15Z",
                    "CreatedBy": "0df6e890-8524-4e0a-bd00-6661ae0ae591",
                    "DeletedAt": null,
                    "DeletedBy": null,
                    "DoctorId": 6,
                    "SpecializationId": 7,
                    "UpdatedAt": null,
                    "UpdatedBy": null,
                    "Specialization": {
                        "CreatedAt": "2019-04-15T14:22:57Z",
                        "CreatedBy": "96a93e63-51c2-417e-9e35-4e2e2a5d459b",
                        "DeletedAt": null,
                        "DeletedBy": null,
                        "Description": "cadru didactic UMF Carol Davila (sef de lucrari)",
                        "Id": 7,
                        "Name": "cadru didactic UMF Carol Davila (sef de lucrari)",
                        "PageId": null,
                        "UpdatedAt": null,
                        "UpdatedBy": null,
                        "Url": null
                    }
                },
                {
                    "CreatedAt": "2019-04-24T08:56:15Z",
                    "CreatedBy": "0df6e890-8524-4e0a-bd00-6661ae0ae591",
                    "DeletedAt": null,
                    "DeletedBy": null,
                    "DoctorId": 6,
                    "SpecializationId": 8,
                    "UpdatedAt": null,
                    "UpdatedBy": null,
                    "Specialization": {
                        "CreatedAt": "2019-04-15T14:23:05Z",
                        "CreatedBy": "96a93e63-51c2-417e-9e35-4e2e2a5d459b",
                        "DeletedAt": null,
                        "DeletedBy": null,
                        "Description": "doctor in medicina",
                        "Id": 8,
                        "Name": "doctor in medicina",
                        "PageId": null,
                        "UpdatedAt": null,
                        "UpdatedBy": null,
                        "Url": null
                    }
                }
            ]
        }
    ]
}

But adding a field like DoctorId:
http://dummy/Doctors?$expand=DoctorSpecializations($select=DoctorId,Specialization)&$select=Name
is correct, it returns only that field and the nav. prop.

It is of good value anyway so thanks for the great work.
Dose this support insert, update, and delete statements ?

https://github.com/voronov-maxim/OdataToEntity/issues/34#issuecomment-497975262
This bug in version 2.3.0 has been fixed.
Insert, update, delete https://github.com/voronov-maxim/OdataToEntity/wiki/OData-batch-request

I;ve tested with 2.3.0 and the problem is still there for this query:
http://dummy/Doctors?$filter=DoctorSpecializations/any()&$expand=DoctorSpecializations($select=Specialization;$expand=Specialization($select=Name))&$select=Name
If I add an SpecializationId it works:
http://dummy/Doctors?$filter=DoctorSpecializations/any()&$expand=DoctorSpecializations($select=SpecializationId,Specialization;$expand=Specialization($select=Name))&$select=Name
In .csproj:

In what way is the "help wanted" meant ?

I did not correctly understand the meaning of the phrase "help wanted" as "need help"

Fix: 'Nullable object should be set to', now can use 'expand' without '$filter=DoctorSpecializations/any()'.
Fix: Select only the navigation property.

Works great!


Taking a mean over softmax dimension for LHP threshold

Hi Hyun Seok,
If I'm correct, this line finds the threshold for LHP and sets all affinities below the "mean" affinity score to 0.
https://github.com/hynnsk/HP/blob/3e92daa996ce3a4f418a4595d7f15c2d8ec9de80/model/dino/DinoFeaturizer.py#L171C31-L171C31
Since the shape of  attn at line 169 is [B, N, N] and line 169 performs softmax over dim=-1, i.e. dim=2, this implies
torch.mean(attn, dim=2, keepdim=True)  equals self.sigma/N
because softmax dim sums to 1.0,  (self.sigma is a consequence of Line 170.)
I'd be very glad if you could clarify this.
Regards
Akshit Maurya

Hello,
I appreciate your interest, and I apologize for any confusion caused by the code implementation.
To clarify, the expression torch.mean(attn, dim=2, keepdim=True) is indeed equivalent to self.sigma/N.
The multiplication by sigma is done for enhanced visualization. Whether this multiplication is included or not, any values in the attention scores (H*W with a sum of 1) that are below the average value will be set to zero.
Thank you.

Thanks, @hynnsk, for a (very) prompt reply.
Take Care!!


Use MAC address to find ip address.

virsh domiflist net_interface

arp | grep net_interface_ip

Solved Links:

https://github.com/IRONICBo/kvm-dashboard/commit/9c66f8313a2d898139c777d8604342efb47d01ca
https://github.com/IRONICBo/kvm-dashboard/commit/6a49bf9170cf1596a749caf0fcd98594fe469265


Build tekton pipelines with golang 1.17

Changes
Update the tekton pipelines docker files and build pipeline to build
using golang 1.17.7:

The windows base images are now built using golang:1.17.7 official
docker image
The non-windows bases images are based on distroless and need to
update. We now reference the docker-buildx base image by sha instead
of tag which is better for attestation
Controller images, entrypoint and pipeline resource images are built
using ko. Updating the ko image in the publish task to one that
includes golang 1.17.7 (golang:1.17.7-alpine3.15). Reference the ko
image by sha instead of tag. This will require an extra step to
update the image in future (plumbing first, pipeline then) but it's
best for attestations and also it allows updating the image on
plumbing side and in the registry without direct side effect on
pipeline.

Signed-off-by: Andrea Frittoli<EMAIL_ADDRESS>/kind misc
Submitter Checklist
As the author of this PR, please check off the items in this checklist:

[x] Docs included if any changes are user facing
[x] Tests included if any functionality added or changed
[x] Follows the commit message standard
[x] Meets the Tekton contributor standards (including
functionality, content, code)
[x] Release notes block below has been filled in or deleted (only if no user facing changes)

Release Notes
Tekton Pipeline is built with golang 1.17.7

/hold


"Beep" Control

I just migrated from mac-zhou's Midea integration. Thanks for the work in keeping this integration alive!
I was excited to see an optoin for "Beep" - one of my biggest annoyances with my Midea AC is its unbelievably loud beep when it turns on and its eye-burning display (especially in full darkness - my heat pump is in my bedroom) - so I thought this integration can control this function - the integration shows an toggle-able entity called switch.midea_ac_display_12312312312312 however when I toggle it, nothing seems to happen! It seems to be always on - if I turn it off, it toggles back on after a few moments.
I was wondering if this may be a bug, or my AC is simply not supported? The integration otherwise works great to control my A/C.
Edit -- I got the beep turned off -- I see it isn't an option exposed as a toggle-able entity but rather needs to be configured at the integration -> device level. Still - can I turn off the temp display too? It is SO bright!

I was excited to see an optoin for "Beep" - one of my biggest annoyances with my Midea AC is its unbelievably loud beep when it turns on and its eye-burning display (especially in full darkness - my heat pump is in my bedroom) - so I thought this integration can control this function - the integration shows an toggle-able entity called switch.midea_ac_display_12312312312312 however when I toggle it, nothing seems to happen! It seems to be always on - if I turn it off, it toggles back on after a few moments.
I was wondering if this may be a bug, or my AC is simply not supported? The integration otherwise works great to control my A/C.

The display toggle works on my two units, so perhaps your unit needs a slightly different command.
Can you enable debug logging and provide the logs when toggling the display?
In your configuration.yaml
logger:
  default: warning
  logs:
    custom_components.midea_ac: info
    msmart: debug

Edit -- I got the beep turned off -- I see it isn't an option exposed as a toggle-able entity but rather needs to be configured at the integration -> device level. Still - can I turn off the temp display too? It is SO bright!

Yes right now the beep is a integration options. I have a PR (#10) where I was debating moving the beep to a switch.

I'm thinking about migrating to this one to. Is it at easy as says on the README.md? Do you have to restore some settings like Device token first? Thanks.

In theory yes, it should be that simple! There have been some users reporting issues with the auto discovery on V3 devices, but I'm working with them.

@amit-nz I'm thinking about migrating to this one to. Is it at easy as says on the README.md? Do you have to restore some settings like Device token first? Thanks.

Yes - it was that easy, if I hadn't messed up! My old Midea AC integration put an entity into my hass called climate.midea_ac_238568236 however, I added the new integration without fully cleaning up the old integration. As a result I got a second entity suffixed wit h_2 (i.e. climate.midea_ac_238568236_2) which broke all my automation. No big deal as I only have about 5 or so "scene" settings so I manually re-did them.
Sorry for the delay in responding @mill1000 - been out of town.

Can you enable debug logging and provide the logs when toggling the display?

Sure, here it is (it says device is not capable)
2023-09-01 14:57:36.233 DEBUG (MainThread) [msmart.lan] Received data from <IP_ADDRESS>:6444: 8370008e2063c9a03d2c0af3028043dbb3da11434ffa8e33bc68ffb852625caf90112f88aa580791f76782dc00a8c8ab4f347ca57def60719135ec66cf4e029133205fc4fe2d8a3aff330f2eff7b90b7edb4faca3a1070a761c730c912a62bb382f4b91e5c667a8ded6e854d3a433a4958d5060917395b43360ce99c1d4b923586ebb18c10492f5a1255c739a542c1ee47deed1b4f68
2023-09-01 14:57:36.234 DEBUG (MainThread) [msmart.lan] Received packet from <IP_ADDRESS>:6444: 5a5a01116800208000000000000000000000000028fa0000001c0000000000000000000000000000cfb6d83abe1078c01e0a7d0857bea50069121674db4f82304f1c53deee7ef42a074a576f5851a18dd9d3d3151a89c13689922b6f4cf745511dd65625ec683c5c
2023-09-01 14:57:36.234 DEBUG (MainThread) [msmart.lan] Received response from <IP_ADDRESS>:6444: aa22ac00000000000303c001a5667f7f0030000000584e00000000000000000028362e
2023-09-01 14:57:36.234 DEBUG (MainThread) [msmart.base_device] Response from <IP_ADDRESS>:6444 in 0.720000 seconds.
2023-09-01 14:57:36.234 DEBUG (MainThread) [msmart.device.AC.command] State response payload: c001a5667f7f0030000000584e00000000000000000028
2023-09-01 14:57:36.845 WARNING (MainThread) [msmart.device.AC.device] Device is not capable of display control.
2023-09-01 14:57:36.847 DEBUG (MainThread) [msmart.base_device] Sending command to <IP_ADDRESS>:6444: aa21ac8d000000000003416100ff02000200000000000000000000000000000fa24d
2023-09-01 14:57:36.847 DEBUG (MainThread) [msmart.lan] Sending packet to <IP_ADDRESS>:6444: 5a5a01116800200000000000542439020109171428fa0000001c0000000000000000000000000000f52635273e17bef328c647da388bf9d051453c1c31c4322b92ba56f06b7a21177bc1809800c522ed6d23b6a5089169fcf554bcbf7482425a7a5419372c006112
2023-09-01 14:57:36.847 DEBUG (MainThread) [msmart.lan] Sending data to <IP_ADDRESS>:6444: 8370008e20663fb58b9ed1996673d1d77a6a77fa5514649802d0ec97f96d5b9f56f4019ce9e4934a7339347e14de0c036848dc0dc4da77217c010cabde8bb28eff3cf60f3076e8b6fe1a895ab561093c64b7bd4619be6a1580242d1de846b2c9943095955ba7147ea4bd95d632dabb09ff9cc9f23b05e6f3e4bf943f0a439db56c7167bac714d614456445483ac1c0053e521d5229af
2023-09-01 14:57:37.563 DEBUG (MainThread) [msmart.lan] Received data from <IP_ADDRESS>:6444: 8370008e206343451544daec72e384a5a88ff9127f69c45c4ff2f67f3f9134b6b54f3127bfc34d2f901d6ab4fc57318a51910f25cf60b96bbdda27d9b029243ab317725d313d1fdfa060903775a8d8dcc3ecec7a970eb21cc3d75fcd5522589e2af928cc32f36205d0b3ce1d2227a0293ffe33d6a8458af4fb391253c4745b6ee81fda4393c815efb87b65f9645a51b55912a31f8e01
2023-09-01 14:57:37.564 DEBUG (MainThread) [msmart.lan] Received packet from <IP_ADDRESS>:6444: 5a5a01116800208000000000000000000000000028fa0000001c0000000000000000000000000000cfb6d83abe1078c01e0a7d0857bea50069121674db4f82304f1c53deee7ef42a3e78ef4b48a2731292d70134506fbf1625f1aa140bbbe0eaf45be186205e8559
2023-09-01 14:57:37.564 DEBUG (MainThread) [msmart.lan] Received response from <IP_ADDRESS>:6444: aa22ac00000000000303c001a5667f7f0030000000584e000000000000000000a2c426
2023-09-01 14:57:37.564 DEBUG (MainThread) [msmart.base_device] Response from <IP_ADDRESS>:6444 in 0.720000 seconds.
2023-09-01 14:57:37.564 DEBUG (MainThread) [msmart.base_device] Sending command to <IP_ADDRESS>:6444: aa21ac8d000000000003418100ff03ff00020000000000000000000000000310aa21
2023-09-01 14:57:37.564 DEBUG (MainThread) [msmart.lan] Sending packet to <IP_ADDRESS>:6444: 5a5a01116800200000000000382539020109171428fa0000001c0000000000000000000000000000b8436dd15e84d5a4fc6fbf77d2b12486be7129246efee38caa5c069634092063d745cd05f5fc0c86d1d62c86ddbf18f0a0db1aaccaad400cffc0c872325df44e
2023-09-01 14:57:37.565 DEBUG (MainThread) [msmart.lan] Sending data to <IP_ADDRESS>:6444: 8370008e20662efdcb58bf9c1a727dcb7f8d83b5c85106a67faf62e6e6ce864a5a7e0f0438341cedc99f6012a92a2d2abe4330850b29c9b821c73e0834a391c4c69ea7733aed67dc4df2d6d8ffb21b88475cdbb0e39929b2cd09f0f4070f6c0a15d3b65cec9c310bf04bd25976464e26abed817e178db6d3e1a24b5b0b7d567f9ff14e840bbe9121a916fc8efc6a09c81de71a8fcc94

Yes right now the beep is a integration options. I have a PR (https://github.com/mill1000/midea-ac-py/pull/10) where I was debating moving the beep to a switch.

Actually, I think the way you have implemented it now is better (for me anyway) as I never ever want that pesky beep on! The retina scorching display on the front of if it is bad enough ;)
Also, while we're on the topic, I frequently (every 2 minutes or so) have the entity going unavailable in home assistant. The log shows
2023-09-01 14:57:07.517 ERROR (MainThread) [msmart.base_device] Network error <IP_ADDRESS>:6444: Transport is closing or closed.
Then about 10-15 seconds or so later, it seems to come back online. I didn't have this issue with the old integration by Mac Zhou so I am assuming my network layer is OK (and not having any issues with other devices on that same subnet either). Should I open another issue for this?

Yes - it was that easy, if I hadn't messed up! My old Midea AC integration put an entity into my hass called climate.midea_ac_238568236 however, I added the new integration without fully cleaning up the old integration. As a result I got a second entity suffixed wit h_2 (i.e. climate.midea_ac_238568236_2) which broke all my automation. No big deal as I only have about 5 or so "scene" settings so I manually re-did them.

Glad it wasn't too much of a pain.

Sure, here it is (it says device is not capable)

Ah, well that certainly doesn't help. Does your device have a remote that's capable of turning the display off?

Also, while we're on the topic, I frequently (every 2 minutes or so) have the entity going unavailable in home assistant. The log shows
2023-09-01 14:57:07.517 ERROR (MainThread) [msmart.base_device] Network error <IP_ADDRESS>:6444: Transport is closing or closed.
Then about 10-15 seconds or so later, it seems to come back online. I didn't have this issue with the old integration by Mac Zhou so I am assuming my network layer is OK (and not having any issues with other devices on that same subnet either). Should I open another issue for this?

Yes please. Lets track that in another issue.

Hiya -- sure, will open a new issue for that issue.
Yes my remote definitely has a way to turn off the display, and the unit is capable. The remote control is a Midea RN02A - it has a "LED" button on it, and when pressed it simultaneously disables the display plus the beep as well.

Ok that's interesting. Can you try toggling the display on/off with debugging enabled and supply the logs? I'm mostly looking for the State response payload messages. Might be some hints in there.

I browsed some related projects last night and found there are some alternate display controls/messages so there might be hope.

Possibly related to this...my beep control works (and is set to off), and my display control also works. However...
The ONLY quirk is...my bedroom automations turn the display on during the day, and then turn it off when someone is actually sleeping. And, when turning the display on or off, my AC still beeps. All other settings changes do not beep. Not sure if this is something you can change, or if it's something on Midea's end. If any other info needed let me know.

My devices do this as well. I always assumed it was just how the devices worked but I just ran a test using the SmartHome (previously MSmartHome) and it remained silent when toggling the display.
Looks like there's some work to be done!

@tm24fan8 The latest release should fix the beeping on display change issue for you.
@amit-nz I'm still looking into other references on how to control the display for your device.

@tm24fan8 The latest release should fix the beeping on display change issue for you.
@amit-nz I'm still looking into other references on how to control the display for your device.

Yep, it's fixed. Nicely done, thanks!

Thanks for confirming.

Hi @mill1000,
Thank you for your efforts in making this integration better and better.
I have the same issue, beep control is fine but the LCD cannot be disabled from the integration, from the remote control it works fine.
I attached the debug log, I switched on <IP_ADDRESS> (it's a dual unit and I didn't want to cut any lines out by mistake) with the integration then disabled the LCD with the remote then tried the switch entity also. Hope it helps in finding the correct bits. Let me know if I can add any more input to solve this :)
Thanks!
msmart_debug.txt

Thanks for the additional input.
Has anyone with this issue confirmed if they can control the display from the OEM (MSmartHome, NetHome Plus, etc) app?

Ok, anyone willing to run a test?
The following code should be sending a command to turn the display off with the "new" protocol. My devices acknowledge the command but don't change the display.
You'll have to replace YOUR_DEVICE_* variables with the appropriate values.
import asyncio
import logging

from msmart.device import AirConditioner as AC
from msmart.discover import Discover
from msmart.base_command import Command
from msmart.const import FrameType, DeviceType

logging.basicConfig(level=logging.INFO)

DEVICE_IP = "YOUR_DEVICE_IP"
DEVICE_PORT = 6444
DEVICE_ID = "YOUR_AC_ID"

# For V3 devices
DEVICE_TOKEN = None  # "YOUR_DEVICE_TOKEN"
DEVICE_KEY = None  # "YOUR_DEVICE_KEY"

class ToggleDisplayCommandNew(Command):
    def __init__(self) -> None:
        super().__init__(DeviceType.AIR_CONDITIONER, frame_type=FrameType.SET)

        self.display_on = True

    @property
    def payload(self) -> bytes:

        display = 0x01 if self.display_on else 0x00

        return bytes([
            # Control property
            0xB0,
            # Number of properties
            0x01,
            # Property ID
            0x17,
            0x00,
            # Property Length
            0x01,
            # Property Value
            display,
        ])

async def set_display_new(device, display) -> None:
    cmd = ToggleDisplayCommandNew()
    cmd.display_on = display
    print(cmd.payload)
    await device._send_command(cmd)

async def main():

    # There are 2 ways to connect

    # Discover.discover_single can automatically construct a device from IP or hostname
    #  - V3 devices will be automatically authenticated
    #  - The Midea cloud will be accessed for V3 devices to fetch the token and key
    # device = await Discover.discover_single(DEVICE_IP)

    # Manually construct the device
    #  - See midea-discover to read ID, token and key
    device = AC(ip=DEVICE_IP, port=6444, device_id=int(DEVICE_ID))
    if DEVICE_TOKEN and DEVICE_KEY:
        await device.authenticate(DEVICE_TOKEN, DEVICE_KEY)

    await asyncio.sleep(2)

    print("Trying new display off command")
    await set_display_new(device, False)

    exit()

if __name__ == "__main__":
    asyncio.run(main())

Ok, anyone willing to run a test?
The following code should be sending a command to turn the display off with the "new" protocol. My devices acknowledge the command but don't change the display.

My unit doesn't acknowledge this command. :(
Is it possible that the IR remote is able to send a command that is not possible to be sent via the WiFi dongle?
$ python3 ./mideatest.py
INFO:msmart.lan:Creating new connection to <IP_ADDRESS>:6444.
INFO:msmart.lan:Authenticating with <IP_ADDRESS>:6444.
INFO:msmart.lan:Authentication successful. Expiration: 2023-09-17T21:28:46, Local key: 3d9ee07f2bd4d4c4e5a95d2263814b6eec2306d16f4051abe795ae4667bd6496
Trying new display off command
b'\xb0\x01\x17\x00\x01\x00'
WARNING:msmart.base_device:Network timeout <IP_ADDRESS>:6444: No response from host.
WARNING:msmart.base_device:No response from <IP_ADDRESS>:6444 in 6.010000 seconds.
`

Thanks for trying. Its also possible I got the message wrong. Maybe someone else will have more luck.

Is it possible that the IR remote is able to send a command that is not possible to be sent via the WiFi dongle?

Also possible, I remember helping another user of mac-zhou's version where this ended up being the case.
Hence, I was hoping if anyone with this issue could confirm if the app can control the display or not

Hence, I was hoping if anyone with this issue could confirm if the app can control the display or not

I didn’t find any option to control it from Midea Air or Nethome Plus, they basically look the same but there are zero options for display control

Ah well thats probably an indication it's not possible via this integration.
My devices have an "LED" option like so:

No, neither sound nor LED in my app. Beep control works fine from the integration. :)
I am not sure if it helps anyone else, but for the sake of history my unit is an Airfel LTXM35N and sending the IR code JgDKAI+QEjUSERE1EjUREhE1EhESNRESETUREhISETUSERE1EhIRNRI0EjQSNRIREjQSEhE1EhESERESEhIRNRIRETUSEhE1EhESNBETERIRNRIRETYREhE1ERIRNhE1EhESNBETEauQjxI0ERISNRI0EhESNRESEjQSERI1ERISERI0EhIRNRIREjQSNRI0EjQSEhE1EhESNBISERISERIREjUREhE1ERISNRESEjQSERESEjUSERI0EhESNRIREjQSNRESETUSERIADQU= with an IR remote toggles the LED of my unit.

Interesting...maybe there is hope.
How would you utilize that IR code? What format is it? It's clearly not a hexadecimal.
I'm half-wondering if the secret to toggling your display could be buried in that.

It’s a base64 encoded binary data, try something like
CODE=“JgDKA. ..”;echo $CODE|base64 -d|hexdump -C on a shell, or there should be a way in Python what I don’t know of :)
It’s common with IR codes at least in Hone Assistant. Let me know if some other IR codes could be helpful.
I just had to learn the command from the IR remote with a Broadlink RM4 Mini, then
remote.send_command it.
The unit keeps the display off until it is switched to soft-off, lights up the display for about 30 seconds on a mode change, then turns it off again. I was afraid that the LED IR command would mess with the operation mode, but fortunately it seems a universal command not sending any mode settings.

Thanks.
Not sure how best to proceed from here. I think I'll be closing the issue for now as I think it's a device limitation.
@amit-nz if you feel otherwise (and discover your device does support display control via the OEM app), feel free to reopen


Cognos Analytics fails to install on cp4d 4.7.0

Trying to install cognos analytics on cp4d 4.7.0 results in it failing during the initial installation with the logs I’ve attached that begin with “initial-failure.” The logs aren’t complete but it eventually fails with the error being “backoff limit exceeded” even though it doesn’t go through the 120 retries.
I have it setup that if the deployer job fails, then I immediately attempt to rerun the job for the cases where it fails because an operator took too long to be available in cp4d 4.7.0. And when it runs immediately afterwards it then fails with this message:
TASK [cp4d-instance-db2oltp : Get CP4D Database details] ***********************
Thursday 27 July 2023  15:07:08 +0000 (0:00:00.460)       0:12:30.169 *********
fatal: [localhost]: FAILED! => changed=false
cache_control: private
connection: close
content: 'Error 404 - Not Found '
content_length: '22'
content_type: text/plain
date: Thu, 27 Jul 2023 15:07:09 GMT
elapsed: 0
etag: '"647d1329-16"'
msg: 'Status code was 404 and not [200]: HTTP Error 404: Not Found'
redirected: false
server: '---'
set_cookie: 2ac1df5a53d05af1ed3c0e46006c8757=cbf28db3154db19414328e6e55df3c08; path=/; HttpOnly; Secure; SameSite=Lax
status: 404
url: https://cpd-cpd.apps.ocp-666000essy-x3qg.cloud.techzone.ibm.com/icp4data/api/v1/databases
and the full logs are attached that begin with “secondary-failure.”
Looking at other issues, this may be due to the fact that I am running the job again without deleting anything that was provisioned in the previous attempt. I’ve attached my configmap, but the only components I am adding are db2 and ca.
Desktop (please complete the following information):

OS: Mac Intel 13.4.1 (c)
Browser chrome
Version 115.0.5790.170 (Official Build) (x86_64)

Additional context
The deployer is being run in OpenShift 4.12 via the creation of the configmap and job.
files.zip

This may be caused by #494 but need to check.

I was able to reproduce the issue. It is related to changes in the databases API and this causes the Db2 OLTP instance to fail provisioning. The /cp4data/api/v1/databases API is no longer available in CP4D 4.7 and we need to retrieve information through another API: /zen-data/v1/addOn/query with body {"add_on_type": "database"}
I will implement the change ASAP (likely next week).

As a workaround, you can provision the ca-metastore Db2 database manually through the UI and then re-run the deployer which will then take care of provisioning Cognos Analytics.

Fixed and merged with the main branch.


Plugin error using examples

When I try doing
meteor-kitchen -JSON -OUTPUTDIRECTORY
It gives error in:
*** Meteor Kitchen v0.9.57 ***
Meteor Application Generator - www.meteorkitchen.com
Copyright (c) Petar Korponai─ç
<EMAIL_ADDRESS>Reading input file...
Executing "meteor create D:\AllProjects\meteor\newpage\"...
Created a new Meteor app in 'D:\AllProjects\meteor\newpage\'.
To run your new app:
  cd D:\AllProjects\meteor\newpage\
  meteor
If you are new to Meteor, try some of the learning resources here:
  https://www.meteor.com/learn
Creating directory structure...
Checking installed packages...
Executing "meteor remove insecure autopublish"...
Changes to your project's package version selections:
autopublish  removed from your project
insecure     removed from your project
insecure: removed dependency
autopublish: removed dependency
Checking installed packages...
Executing "meteor add http email spiderable ejson random iron:router natestrauser:font-awesome matb33:collection-hooks copleykj:livestamp less nemo64:bootstrap perak:markdown reactive-dict mrt:moment rajit:bootstrap3-datepicker mizzao:bootboxjs"...
Changes to your project's package version selections:
copleykj:livestamp           added, version 1.1.7
email                        added, version 1.0.8
iron:controller              added, version 1.0.12
iron:core                    added, version 1.0.11
iron:dynamic-template        added, version 1.0.12
iron:layout                  added, version 1.0.12
iron:location                added, version 1.0.11
iron:middleware-stack        added, version 1.0.11
iron:router                  added, version 1.0.12
iron:url                     added, version 1.0.11
less                         added, version 2.5.1
matb33:collection-hooks      added, version 0.8.1
mizzao:bootboxjs             added, version 4.4.0
momentjs:moment              added, version 2.9.0
mrt:moment                   added, version 2.8.1
natestrauser:font-awesome    added, version 4.5.0
nemo64:bootstrap             added, version 3.3.5_2
nemo64:bootstrap-data        added, version 3.3.5
perak:markdown               added, version 1.0.5
rajit:bootstrap3-datepicker  added, version 1.5.1
spiderable                   added, version 1.0.9
http: Make HTTP calls to remote servers
email: Send email messages
spiderable: Makes the application crawlable to web spiders
ejson: Extended and Extensible JSON library
random: Random number generator and utilities
iron:router: Routing specifically designed for Meteor
natestrauser:font-awesome: Latest version Font-Awesome loaded via CDN
matb33:collection-hooks: Extends Mongo.Collection with before/after hooks for insert/update/remove/find/findOne
copleykj:livestamp: jQuery plugin providing auto-updating timeago text to your timestamped HTML elements using Moment.js
less: Leaner CSS language
nemo64:bootstrap: Highly configurable bootstrap integration.
perak:markdown: GitHub flavored markdown parser for Meteor based on marked.js
reactive-dict: Reactive dictionary
mrt:moment: Moment.js, a JavaScript date library for dates, packaged for Meteor. See http://momentjs.com.
rajit:bootstrap3-datepicker: Meteor packaging of eternicode/bootstrap-datepicker for Bootstrap 3
mizzao:bootboxjs: Programmatic dialog boxes using Twitter's bootstrap modals
Creating router...
Using theme "bootswatch-cyborg"...
Copying theme files...
Creating stylesheet...
Creating layout...
Creating zone "free_zone"...
Creating component "main_menu"...
Creating page "home"...
Creating component "jumbotron"...
Creating component "jumbotron_content"...
Creating component "section1"...
Creating component "content1"...
Creating component "three_columns"...
Creating component "section2"...
Plugin "example2"...
Executing plugin...
undefined:1
{name:plugin-1,type:example2,output_html:C:\Users\SONYVA~1\AppData\Local\Temp\VsCxGgBwKf.html,output_js:C:\Users\SONYVA~1\AppData\Local\Temp\VsCxGgBwKf.js}
 ^
SyntaxError: Unexpected token n
    at Object.parse (native)
    at D:\AllProjects\meteor-kitchen\node_modules\meteor-kitchen.js:7:21
    at Array.forEach (native)
    at Object.exports.getInput (D:\AllProjects\meteor-kitchen\node_modules\meteor-kitchen.js:5:15)
    at Object.<anonymous> (D:\AllProjects\meteor-kitchen\plugins\example2\plugin.js:15:21)
    at Module._compile (module.js:398:26)
    at Object.Module._extensions..js (module.js:405:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Function.Module.runMain (module.js:430:10)
Creating component "plugin-1"...
File not found "C:\Users\SONYVA~1\AppData\Local\Temp\VsCxGgBwKf.html".

I have been looking for the code in "meteor-kitchen.js"  and I found out that the JSON.parse(val) is failing because the argument val is not a proper JSON, It's left the quotes in everyplace, and it also left to escape the "" for the path.
Sorry for the english if any mistake.

@lmaddio thank you! I'll see what I can do (in next release 0.9.58)

Would be cool to get this working - currently no change to use plugins from within windows.

@adnoh busy with new gui and react implementation. BTW, there are big plans related to plugin system (central repository, server-side plugins etc.) but priority is new gui and react... so please be patient. Sorry.

What I can do is to fix bug found by @lmaddio (argument string passed to plugin is not properly escaped/valid json)

@perak understanding the time issue. I'd use custom_component as a workaround but don'the see any chance to get data to a custom_component which dies not belong to a collection. If I could also pass a  'properties' object to it like in plugin it would be a workaround for most of the stuff. custom_data_code is not generated.
Problem looks like it generates json on which the keys AND the values are not quoted (so YSON.parse (val) failes). I've tried to hack a regex in the node module which corrects the missing quotes just before the call...but failed with not enough regex knowhow ;)
Willing to help if somebody points me to the right direction/regexp.

@adnoh Isee you started hacking to much :D Let me promise: I'll fix this issue for you tomorrow (~24 hours after now). Would that work?

Would be great ;) one time hacker-always hacker


Android | Update UI Styling and available data

Summary
I wanted to update the styling to more closely match the iOS flavor. It keeps it simple for now.
It also adds a bit more data to the db, which allowed two different categories that share similar nominees. As expected, given how the schema is setup and the query to check a nominee as watched, other instances of the same nominee will also update to be checked. I was hoping this happened as it makes it easier on the user to see what they have actually watched!
@gionoa I am planning on expanding the first card in the list by default, once I move the click logic into the viewmodel which will be a part of making the view model platform agnostic.
It looks like some image loading stuff with Coil snuck in here which I was experimenting with on the branch and forgot. It will be what Android uses to load the remote images at some point.
Testing

App loads on both platforms
iOS loads data as expected
Android loads data as expected

two expandable cards displayed each with expected data
checking an item appearing in both cards checks it in both cards
styling looks better

Ah I figured out what is up, I have things to merge... sigh


[FORMS-9062] improve accessibility

Description

Related Issue

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

[ ] 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 change)

Checklist:

[ ] I have signed the Adobe Open Source CLA.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes and the overall coverage did not decrease.
[ ] All unit tests pass on CircleCi.
[ ] I ran all tests locally and they pass.

@amit-mnnit , can you take dev merge and run the tests again

@amit-mnnit , can you take dev merge and run the tests again

donr @deepprakash345

as discussed, we should avoid id's in the markup until absolutely necessary. So, we can avoid giving id's to widgets.
the current <label for="componentId"> should suffice for most of the accessibility requirements as id there is the id of the component that we already have.
+1 to introducing aria-label in case label is hidden.
minor: for question mark, title could be "Help Text" as it resonates with the user friendly name of this feature and is consistent with the naming conventions followed in edit dialogs as well.
Ideally, title attribute is not a good way for hover text (short description) as it's not accessibility friendly on touch enabled devices. we should use aria-describedby along with role="tooltip" for such cases.
for removing id=emptyValue pls discuss it with @ravise5 if there is any functionality impact  as he gave support for empty options in dropdown, IIRC.


Build for 100.4.0

@mikewilburn the app is updated for SDK v 100.4.0 and has merged to master. Would you please confirm?

Performed some ad hoc testing for this and issue #62. The app seems to be behaving accordingly from my perspective.


support for loading extensions from exts

Related to https://github.com/trueagi-io/hyperon-experimental/pull/554
Your proposal is fine... My concern is what it implies for the MeTTa module system more generally. Specifically with what I implemented, the module namespace is flat. I don't think it makes sense to delegate the module name resolution to Python. So that means is that MeTTa would need a hierarchical module namespace, and that all Python modules would need to be treated like empty MeTTa modules for the purpose of resolving sub-modules.
I think that would all work fine. But I want to try it out to be sure.

Ok.  I think it is fine to merge this.  I will make corresponding changes to keep the behavior consistent in the modules branch.

Ok. I think it is fine to merge this. I will make corresponding changes to keep the behavior consistent in the modules branch.

If your worry is about putting hyperon.exts directly in extend-py, then it can be moved into env_builder, but __init__.py fix will still be needed. If your concern is about both changes, then the question is whether the desirable behavior is already achieved or will be achieved by the modules branch. But this can be figured out after migration to the new modules system.

If your worry is about putting hyperon.exts directly in extend-py, then it can be moved into env_builder, but init.py fix will still be needed. If your concern is about both changes, then the question is whether the desirable behavior is already achieved or will be achieved by the modules branch. But this can be figured out after migration to the new modules system.

I'm not worried about either.  It's just that the structure of the code is very different in the modules branch.  There is no extend-py! operation anymore because import! loads both pure MeTTa and python-based modules.  The handling of the __init__.py file would be done in the python module format, and looking in the hyperon.exts directory would be done in MeTTa.init through the environment initialization.
But it is fine. Those changes are straightforward and I will make them in my branch when I merge in this PR.
I got a little worried because I thought maybe you were saying it should be possible to load a nested sub-module without loading its parent module, but I realized you didn't actually say that - I was extrapolating incorrectly.  So I will avoid changing the behavior of the module namespace unless / until we have a good reason.


Retrieve a user's WoW character list

A call to client.Profile().WoW() fetches a list of a user's WoW characters. The addition of the WoW characters endpoint wraps up the Battle.net Profile API.
Going forward, I'm thinking it would be best to put SC2, WoW, and potentially D3 libraries into their own packages within the repo as they are going to be fairly large... how do you feel about making this change? @mitchellh

@nmccrory I agree. A good red flag is that you have a lot of WoW and SC2-prefixed structs. :) that's usually a good indicator it is time for a package. Do you want to just do that and reopen a new PR? Or do you want me to merge this first? It looks great.

@mitchellh I can go ahead and put them both into their own packages. Earlier I attempted this and ran into issues trying to consume client_test.go (methods like setup() and teardown()) from within a package. Would best practice be to create a new client.go and client_test.go for each package we add?


Make meltano installable seamlessly

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/159
Originally created by @mbergeron on 2018-11-08 14:51:45

Currently we have some identified problems when installing meltano:

The cli is part of an extra package, but should be included by default
meltano init fails when the system python /usr/bin/python → python2.7. Meltano should explicitly use python3 when it creates its environments.
meltano is installed as a namespace package, which requires setuptools>=40.0 and this seems to be missing for quite a lot of users (requires pip install --upgrade setuptools); make meltano a simple package and go from there.

After this issue we should do a patch release.
/cc @jschatz1

View 5 previous comments from the original issue on GitLab


V0p3p6b

Codecov Report

Merging #91 (d668dc2) into master (8551c3c) will decrease coverage by 0.12%.
The diff coverage is 66.66%.

@@            Coverage Diff             @@
##           master      #91      +/-   ##
==========================================
- Coverage   78.39%   78.27%   -0.13%
==========================================
  Files           5        5
  Lines         449      451       +2
==========================================
+ Hits          352      353       +1
- Misses         97       98       +1

Impacted Files
Coverage Δ

src/API.jl
99.27% <ø> (ø)

src/compute.jl
93.98% <ø> (-0.05%)
:arrow_down:

src/IndividualDisplacements.jl
75.00% <66.66%> (-25.00%)
:arrow_down:

Continue to review full report at Codecov.

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


Change to use the same subcommand syntax as subkey

For consistency between the two tools, the subcommand for <node bin> key inspect-key is changed to match subkey syntax ( subkey inspect)
This may need modification of downstream dependencies in Polkadot and other code bases. I do not see this is the case, bu would be good to have a double-check on that and a companion PR made if so.
Alternatively to this PR, changing the subkey inspect command to inspect-key would have the same (but more verbose) effect.
Compliments/Related to #8674

@bkchr I compiled and this is working with the substrate key inspect command as desired, with the struct reverted as requested.


support Kotlin Multiplatform (KMP)

Kotlin Multiplatform (KMP) allows to target nearly any platform (JVM/Android, JavaScript, WASM, Native/iOS/...). This library is already using Kotlin but targeting Android only. Would be awesome to see KMP support for it. I'm also open to help!

dupe of https://github.com/livekit/livekit/issues/3030

@benkuly thanks for your interest and offering your help! If you'd like to contribute to making this happen, we'd certainly welcome it. I've linked this to the other issue that had been open. Come to our Slack community in #dev and let's discuss if there's a path forward here.


Slides are taking weird styled on first render, then it is working okay after a refresh

Guidelines for posting a new issue
at first render, it looks like this, I don't have any styles for it to look like this

then after I reload the page, it looks like this which is what I want and styled it for

I'm sorry not sure how can I reproduce this but these styles do appear to be coming from the package itself on the first render only then they gone

these are the applied styles from the react-slick package in the first render

and those are for the dots


electron-builder-wrapper will no longer work with electron-builder > 2.6

Per havenchyk/grunt-electron-builder-wrapper#6, electron-builder-wrapper is broken in recent versions. README says to report issues here. Thanks~

Will be handled in the havenchyk/grunt-electron-builder-wrapper#6 can be closed. Thanks for reporting!


perf(drive)!: verify instant lock signatures with Drive

Issue being fixed or feature implemented

Core RPC was never designed for public access and according to our tests is a weak point in the system. Under the load, instant lock signature verification takes seconds. Since users can trigger signature verification via invalid IdentityCreateTransition for free, this open a DoS attack vector.
What was done?

Own implementation of Instant Lock signature verification for InstantAssetLockProof without calling Core RPC
Introduced support for DIP24 rotating quorums
Base config network in dashmate changed to mainnet
Updated quorums configuration for local, testnet and mainnet
Added missing logging for invalid asset lock based state transitions
Updated invalid signature error for better verbosity
Fixed internal error if chain lock signature is not valid

How Has This Been Tested?

Unit tests skip instant lock signature verification with disable_instant_lock_signature_verification test config option.
Implemented Instant Lock quorums and signing in strategy tests
Updated run_chain_top_up_identities to use InstantLock singing with DIP24 rotating quorums
Updated run_chain_insert_one_new_identity_per_block_with_block_signing to use InstantLock singing with DIP8 classic quorums
With test suite against local network
With test suite against a devnet

Breaking Changes

InstantAssetLockProof might give different validation results, since our implementation supports only recent signatures, compared with Core RPC. This means the previous blockchain data might become invalid.
Checklist:

[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have added or updated relevant unit/integration/functional/e2e tests
[x] I have added "!" to the title and described breaking changes in the corresponding section if my code contains any
[x] I have made corresponding changes to the documentation if needed

For repository code-owners and collaborators only

[x] I have assigned this pull request to a milestone

Agreed with @QuantumExplorer that I will merge this PR and he will do a post review of the recent two changes later.


fix: Thumbnail options should have import_profile and export_profile optional instead empty string

Thumbnail generation is not working for now, because we are passing empty string for import_profile. You can skip this value and thumbnail generation work. This use now Option for import_profile and export_profile.
Example code to reproduce
use std::path::PathBuf;

use libvips::{VipsApp, VipsImage, ops};
use anyhow::{Result, Context};

fn main() -> Result<()> {
  let app = VipsApp::new("example", false)?;
  app.concurrency_set(4);

  let image = VipsImage::new_from_file("...").with_context(|| "Could not load image")?;
  let thumbnail = ops::thumbnail_image_with_opts(&image, 100, &ops::ThumbnailImageOptions {
    height: 100,
    crop: ops::Interesting::Attention,
    ..ops::ThumbnailImageOptions::default()
  });

  match thumbnail {
    Ok(image) => {
      //optional parameters
      let options = ops::JpegsaveOptions {
        q: 90,
        background: vec![255.0],
        strip: true,
        optimize_coding: true,
        optimize_scans: true,
        interlace: true,
        ..ops::JpegsaveOptions::default()
      };

      ops::jpegsave_with_opts(&image, "output.jpeg",  &options)?;
    },

    Err(error) => {
      println!("error: {}", app.error_buffer().unwrap())
    }
  }

  Ok(())
}

@macbury  - thanks for the contribution. There is; however, a caveat, in that the /src files are generated using the generator.sh script to create the bindings from the libvips C library.
Here is the workflow to validate the caveat:
cd generator
./build.sh && ./generate.sh && git status
git diff

When running the generate.sh script all of your changes are removed, due to this
The changes need to be made somewhere in the build.rs file.
A git blame of the build.rs file should give you some hints.

I'm not entirely sure we are on the right track, as the python bindings also have a string value for the profiles.


Add a button to clear the file list of file sharing and chat

As doctors are using my deployment, they would like to have the option as an admin to clear the list of uploaded files and chat. This is because if they have one patient after another, they want to clear the chat and files of the previous patient.

I have a problem with this feature. If I'm logged in and have the rights to clear files and chat, everything is ok. When I now logout, just opening of the drawer causes the screen to turn white with an error:
react-dom.production.min.js:209 Error: Minified React error #152; visit https://reactjs.org/docs/error-decoder.html?invariant=152&args[]=Component for the full message or use the non-minified dev environment for full errors and additional helpful warnings.

Should now be fixed, please test.


View Recent changes on single park record - change log

As a bc parks data register admin, I would like to see legal name and status changes made to a protected area name so that I can get see previous names and information on when they were changed.
This ticket is to show the change log for one protected area within the view record page.
Acceptance Criteria:

UI to match the designs of screenshots below
When a protected legal name changes, the newest update is reflected at the top of 'recent changes'
When a protected area status changes, the newest update is reflected at the top of 'recent changes'

Designs:

Ready for estimate

Hey @meredithom - working on Sites pages and noticed that the change log table on this page is not the same as the table in the master change log (no ID, date is not on the left etc). Is this intentional or does it need to be updated?

Hi @pavelcreates and others, Following up on this ticket and what is needed. Looking at the design included above and what is currently in the change log for the Park Names data register - there are some differences. Curious on priorities and what is the actual design we are striving for?
cc @Dianadec @davidclaveau  @Christopher-walsh22

@LindsayMacfarlane  Since this is an older ticket, this design screenshot may be outdated. Our current practice is to include direct links to figma. I would suggest perhaps taking this back to the program area as part of our broader Data Register refinement session we were thinking of doing in the future to help with context switching.
cc: @pavelcreates

@manuji - moving to you to help confirm the status of this ticket.

@LindsayMacfarlane , this feature has not been implemented and here is the Figma link for wireframe: https://www.figma.com/design/qdjegD6YHWZPlyFT8dGXvk/Data-Register?node-id=2575-3350&t=IKArSlPCBMw7XvCu-1
According to my knowledge the next step would be to estimate and implement the feature if work is approved.


Attach block storage volumes on create

This adds the ability to attach block storage volumes when creating a node.
Volume IDs can be passed in comma separated or put into the YAML config, just like networks.

Might want to finalize the 1.0 release before getting this in.

Hrm I think it will be very hard for me to evaluate this change appropriately without a Rackspace account.

Okay so my challenge here is that I can't really know if this code is good or not because not being an employee I don't have access to easy/free infrastructure to run through my test cases.  I'm certainly sure that it works for some value of your test cases but that's a bit less than my general criteria for master master.
So for now my recommendation is:

fork repository and put whatever changes you want into there - lock your pip to that repo instead of this one
medium term transfer ownership of this repo to the rackerlabs org and figure out how to handle the pypi transfer as well

PS you didn't test list volumes in test_runner.py

@tildedave, any objections to having that transfer done sooner rather than later?
According to the documentation, to transfer from an individual to an organization, we'll need to give you temporary access. Can we pick a time to do that?
As for PyPI, you can add new users to your package, under roles. I believe after you do that you can remove yourself if you want to.
Let me know how I can help with any of this.

@thegreenrobot @tildedave @AMeng Is there anything I can help with to get this merged? Alot of flavors now default to boot from block storage.
Also did we decide if we want to transfer this repo to rackerlabs or would it be easier for them to just fork this repo?


Add offset and limit to getOwnListings

Pull Request Test Coverage Report for Build 52

0 of 0   changed or added relevant lines in 0 files are covered.
54 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.2%) to 70.263%

Files with Coverage Reduction
New Missed Lines
%

build/main.js
54
69.69%

Totals

Change from base Build 51:
-0.2%

Covered Lines:
307

Relevant Lines:
451

💛  - Coveralls