Database migration fails: cloud.ADD_GUEST_OS_AND_HYPERVISOR_MAPPING does not exist

ISSUE TYPE

Bug Report

COMPONENT NAME
Management

CLOUDSTACK VERSION
<IP_ADDRESS>  == upgrade to ==> <IP_ADDRESS> / <IP_ADDRESS>

CONFIGURATION
N/A - standard install.
OS / ENVIRONMENT
Rocky Linux 8
SUMMARY
When attempting to upgrade from 4.17.2 to 4.18.0 (or 4.18.1), the management server fails to start due to the database upgrade failing.
Logs show the following:
Jan 22 12:04:27 nn1 java[324120]: INFO  [c.c.u.DatabaseUpgradeChecker] (main:null) (logid:) init = true
Jan 22 12:04:27 nn1 java[324120]: INFO  [c.c.u.DatabaseUpgradeChecker] (main:null) (logid:) DB version = <IP_ADDRESS> Code Version = <IP_ADDRESS>
Jan 22 12:04:27 nn1 java[324120]: INFO  [c.c.u.DatabaseUpgradeChecker] (main:null) (logid:) Database upgrade must be performed from <IP_ADDRESS> to <IP_ADDRESS>
Jan 22 12:04:27 nn1 java[324120]: ERROR [c.c.u.d.ScriptRunner] (main:null) (logid:) Error executing: CALL ADD_GUEST_OS_AND_HYPERVISOR_MAPPING (1, 'AlmaLinux 9', 'KVM', 'default', 'AlmaLinux 9')
Jan 22 12:04:27 nn1 java[324120]: ERROR [c.c.u.d.ScriptRunner] (main:null) (logid:) java.sql.SQLSyntaxErrorException: PROCEDURE cloud.ADD_GUEST_OS_AND_HYPERVISOR_MAPPING does not exist
Jan 22 12:04:27 nn1 java[324120]: ERROR [c.c.u.DatabaseUpgradeChecker] (main:null) (logid:) Unable to execute upgrade script
Jan 22 12:04:27 nn1 java[324120]: java.sql.SQLSyntaxErrorException: PROCEDURE cloud.ADD_GUEST_OS_AND_HYPERVISOR_MAPPING does not exist
Jan 22 12:04:27 nn1 java[324120]:         at com.cloud.utils.db.ScriptRunner.runScript(ScriptRunner.java:185)
Jan 22 12:04:27 nn1 java[324120]:         at com.cloud.utils.db.ScriptRunner.runScript(ScriptRunner.java:87)
Jan 22 12:04:27 nn1 java[324120]:         at com.cloud.upgrade.DatabaseUpgradeChecker.runScript(DatabaseUpgradeChecker.java:226)
Jan 22 12:04:27 nn1 java[324120]:         at com.cloud.upgrade.DatabaseUpgradeChecker.upgrade(DatabaseUpgradeChecker.java:310)
Jan 22 12:04:27 nn1 java[324120]:         at com.cloud.upgrade.DatabaseUpgradeChecker.check(DatabaseUpgradeChecker.java:401)
Jan 22 12:04:27 nn1 java[324120]:         at org.apache.cloudstack.spring.lifecycle.CloudStackExtendedLifeCycle.checkIntegrity(CloudStackExtendedLifeCycle.java:64)
Jan 22 12:04:27 nn1 java[324120]:         at org.apache.cloudstack.spring.lifecycle.CloudStackExtendedLifeCycle.start(CloudStackExtendedLifeCycle.java:54)
Jan 22 12:04:27 nn1 java[324120]:         at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178)
Jan 22 12:04:27 nn1 java[324120]:         at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54)

... etc.

STEPS TO REPRODUCE
This happened on a test version of CloudStack 4.17.2. I don't remember whether this was a clean install of 4.17.0 (from scratch) or if it was upgraded from an even older version or if the database was restored. However, the database did not have any of the stored procedures that the migration seems to expect.
At this point, I'm not sure how the stored procedures were all lost on this instance.
EXPECTED RESULTS
On another instance of CloudStack, I do see the stored procedures.
mysql> show procedure status where Db='cloud'
    -> ;
+-------+----------------------------------------------+-----------+-----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| Db    | Name                                         | Type      | Definer         | Modified            | Created             | Security_type | Comment | character_set_client | collation_connection | Database Collation |
+-------+----------------------------------------------+-----------+-----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| cloud | ADD_GUEST_OS_AND_HYPERVISOR_MAPPING          | PROCEDURE | cloud@localhost | 2022-06-14 14:59:42 | 2022-06-14 14:59:42 | DEFINER       |         | utf8mb4              | utf8mb4_0900_ai_ci   | utf8mb4_0900_ai_ci |
| cloud | IDEMPOTENT_ADD_COLUMN                        | PROCEDURE | cloud@localhost | 2022-06-14 14:59:29 | 2022-06-14 14:59:29 | DEFINER       |         | utf8mb4              | utf8mb4_0900_ai_ci   | utf8mb4_0900_ai_ci |
| cloud | IDEMPOTENT_CREATE_UNIQUE_INDEX               | PROCEDURE | cloud@localhost | 2022-03-14 15:54:35 | 2022-03-14 15:54:35 | DEFINER       |         | utf8mb4              | utf8mb4_0900_ai_ci   | utf8mb4_0900_ai_ci |
| cloud | IDEMPOTENT_DROP_FOREIGN_KEY                  | PROCEDURE | cloud@localhost | 2022-03-14 15:54:35 | 2022-03-14 15:54:35 | DEFINER       |         | utf8mb4              | utf8mb4_0900_ai_ci   | utf8mb4_0900_ai_ci |
| cloud | IDEMPOTENT_DROP_INDEX                        | PROCEDURE | cloud@localhost | 2022-03-14 15:54:35 | 2022-03-14 15:54:35 | DEFINER       |         | utf8mb4              | utf8mb4_0900_ai_ci   | utf8mb4_0900_ai_ci |
| cloud | IDEMPOTENT_INSERT_GUESTOS_HYPERVISOR_MAPPING | PROCEDURE | cloud@localhost | 2022-03-14 15:54:33 | 2022-03-14 15:54:33 | DEFINER       |         | utf8mb4              | utf8mb4_0900_ai_ci   | utf8mb4_0900_ai_ci |
+-------+----------------------------------------------+-----------+-----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
6 rows in set (0.00 sec)

ACTUAL RESULTS
mysql> show procedure status where Db='cloud';
Empty set (0.00 sec)

Workaround
I backed up (mysqldump --no-create-db --no-create-info --no-data --routines cloud > procedures.sql) / restored (mysql -u root cloud < procedures.sql) the stored procedures from the other instance of CloudStack we have running and then restored the cloud and cloud_usage databases before restarting the management server.
After doing that, I was able to restart the management service and have it upgrade/migrate properly.

@kohrar
when you dump the database, you need to use mysqldump -R
  -R, --routines      Dump stored routines (functions and procedures).

@kohrar when you dump the database, you need to use mysqldump -R
  -R, --routines      Dump stored routines (functions and procedures).

Yup. I believe that this omission at one point is likely the root cause of this issue.
Would this be something that could be added into the migration? Since the stored procedures don't really ever change, could CloudStack automatically add it back if it sees that it's missing during an upgrade?

@kohrar when you dump the database, you need to use mysqldump -R
  -R, --routines      Dump stored routines (functions and procedures).

Yup. I believe that this omission at one point is likely the root cause of this issue.
Would the stored procedures be something that could be added into the migration for every version? I see some migrations drop and re-create procedures.
Alternatively, since the stored procedures don't really ever change, could CloudStack automatically add it back if it sees that it's missing during an upgrade?

yes @kohrar
this could be an improvement. cc @DaanHoogland

not sure what design is best, but a separate file per procedure as we have now designed for views as well, seems appropriate. good idea.

@kohrar unfortunately as others have commented, this isn't a CloudStack issue as during db export/import the -R was missed so some of the non-table data are missing. You could run it the procedures manually by checking in CloudStack code  and copy/running them manually.

Hi @kohrar ,
I also faced the same issue when upgrade from 4.17 to 4.19, but i don't have any the stored procedures from other instance of CloudStack.
So could you share me the procedures.sql file?
Thank you so much.

@tuanhoangth1603, sure thing. These are the procedures from my 4.19 install.
Restore using mysql -u root cloud < procedures.sql
Download: procedures.txt


Erasing File Input value on click

Hello,
First, thanks for the really great project.  This has made our lives alot easier.
We use redux/redux-form 5.3.3 to manage our state.  So we represent the files as a field object, those fields are tied to inputs.  If the value of that input changes it dispatches a redux event of redux-form/CHANGE for the field that was associated with that input.
What that means for this libraries interaction, is that when someone clicks on a dropzone, it sets the value to null, which erases the value from our store.  We have gotten around this by storing the original value in the components state and using that when needed.
My question is, would it be possible or wanted to remove the erasing the file when dropzone is clicked?   What are your thoughts?
If acceptable I would be able to write the code and tests for it.
I can also think of several alternatives to removing including

store the originalValue and on cancel, set the input value to the originalValue
Create an option to react-dropzone that would allow bypassing the always clear function

  open() {
    this.fileInputEl.value = null; //this is the line i mean
    this.fileInputEl.click();
  }

Thanks for opening this one. I'm actually not sure why the erasing is needed. It doesn't make a lot of sense to me since then you choose a new file/s from the dialog box it will set the value.
I'm not the original author of this lib and will need to follow the code to understand this one by id opt for remind this line from the lib and release as a major version to guard in SemVer.

@okonet i'm thinking that it is mimicing native browser functionality.
If you add a file input to chrome html page
<input type="file" name="document">
Then follow these steps
Initial value of document
$("[name='document']").value
""

Select Add and attach a file
$("[name='document']").value
"C:\fakepath\File jpeg.jpg"

Click to add a document but select cancel
$("[name='document']").value
""

I'm also concerned by this behavior.
Let's put a multiple select in a page. A user can select one or multiple files with a first action.
With a second action, he should be able to add one or multiples files to the current added files, but currently, files are overwritten.
It is really annoying, I've just spent 3 hours on this issue, thinking it was related to another code part.
Do we have further information about the "cancel" click option as @Austio told about.
I don't really know how to handle it :S

Reading W3C RFC : http://w3c.github.io/html/sec-forms.html#file-upload-state-typefile
Unless the multiple attribute is set, there must be no more than one file in the list of selected files.

If the element is mutable, then the element’s activation behavior is to run the following steps:

If the algorithm is not allowed to show a popup, then abort these steps without doing anything else.
Return, but continue running these steps in parallel.
Optionally, wait until any prior execution of this algorithm has terminated.
Display a prompt to the user requesting that the user specify some files. If the multiple attribute is not set, there must be no more than one file selected; otherwise, any number may be selected. Files can be from the filesystem or created on the fly, e.g., a picture taken from a camera connected to the user’s device.
Wait for the user to have made their selection.
Queue a task to first update the element’s selected files so that it represents the user’s selection, then fire a simple event that bubbles named input at the input element, and finally fire a simple event that bubbles named change at the input element.
If the element is mutable, the user agent should allow the user to change the files on the list in other ways also, e.g., adding or removing files by drag-and-drop. When the user does so, the user agent must queue a task to first update the element’s selected files so that it represents the user’s new selection, then fire a simple event that bubbles named input at the input element, and finally fire a simple event that bubbles named change at the input element.

If the element is not mutable, it has no activation behavior and the user agent must not allow the user to change the element’s selection.

If I understand what it is written here. We should be able to add/remove files.
Furthermore, clicking the 'Cancel' button should not set the value to null

I think the proper way would be having the state decoupled from the input element so we don't rely on the browser implementation since it can be inconsistent + introducing a prop that reflect the mutability of it. So, basically, I'd suggest re-implementing the algorithm. We should ensure that the local component state is always in sync with the input state as well. Thought?

@okonet i like that, looks like we are all busy but if i get a couple hour opening at night will whip up a PR for this.

@Austio awesome! The benefit of doing it that way is also the testability. So, please don't forget to include tests.

Any progress on this guys?)

Thank you this awesome component, makes life a lot easier. but this issue of not able to clear the input field on click is hitting us hard when we are using it on mobile devices using Windows phone 8.0 , I know this is legacy OS but still is supported within our organization.
The issue is with IE 11 and below, when we upload a file and choose camera to take a photo and upload, the users can upload the first photo, but the subsequent one can only be be done after we select some other file.
This is since the camera always outputs photo with the same name.
Any ideas, hints, suggestions will help a long way.
Thank you.


1.3.11 IAM-Controller Instance Profile CRD Bug

Describe the bug
When updating the IAM Controller we noticed excess of logging around a CRD for instance profile we do not use the CRD for instance profile however it is producing noisy logs. The controller still works however just creates excess noise. This seen when upgrading to the ACK IAM 1.3.11.
After we went to version 1.3.1 and no longer see this issue
{"level":"error","ts":"2024-08-30T13:56:53.959Z","logger":"controller-runtime.source.EventHandler","msg":"if kind is a CRD, it should be installed before calling Start","kind":"InstanceProfile.iam.services.k8s.aws","error":"no matches for kind \"InstanceProfile\" in version \"iam.services.k8s.aws/v1alpha1\"","stacktrace":"sigs.k8s.io/controller-runtime/pkg/internal/source.(*Kind[...]).Start.func1.1\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/source/kind.go:71\nk8s.io/apimachinery/pkg/util/wait.loopConditionUntilContext.func2\n\t/go/pkg/mod/k8s.io/apimachinery@v0.30.1/pkg/util/wait/loop.go:87\nk8s.io/apimachinery/pkg/util/wait.loopConditionUntilContext\n\t/go/pkg/mod/k8s.io/apimachinery@v0.30.1/pkg/util/wait/loop.go:88\nk8s.io/apimachinery/pkg/util/wait.PollUntilContextCancel\n\t/go/pkg/mod/k8s.io/apimachinery@v0.30.1/pkg/util/wait/poll.go:33\nsigs.k8s.io/controller-runtime/pkg/internal/source.(*Kind[...]).Start.func1\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/source/kind.go:64"}
{"level":"error","ts":"2024-08-30T14:16:28.357Z","msg":"Could not wait for Cache to sync","controller":"instanceprofile","controllerGroup":"iam.services.k8s.aws","controllerKind":"InstanceProfile","error":"failed to wait for instanceprofile caches to sync: timed out waiting for cache to be synced for Kind *v1alpha1.InstanceProfile","stacktrace":"sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.1\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:198\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:203\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:229\nsigs.k8s.io/controller-runtime/pkg/manager.(*runnableGroup).reconcile.func1\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.18.4/pkg/manager/runnable_group.go:226"}
{"level":"info","ts":"2024-08-30T14:16:28.357Z","msg":"Stopping and waiting for non leader election runnables"}
{"level":"info","ts":"2024-08-30T14:16:28.357Z","msg":"Stopping and waiting for leader election runnables"}
{"level":"error","ts":"2024-08-30T14:16:28.357Z","msg":"Could not wait for Cache to sync","controller":"instanceprofile","controllerGroup":"iam.services.k8s.aws","controllerKind":"InstanceProfile","error":"failed to wait for instanceprofile caches to sync: timed out waiting for cache to be synced for Kind *v1alpha1.InstanceProfile","stacktrace":"sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.1\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:198\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:203\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:229\nsigs.k8s.io/controller-runtime/pkg/manager.(*runnableGroup).reconcile.func1\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.18.4/pkg/manager/runnable_group.go:226"}
{"level":"error","ts":"2024-08-30T14:16:28.357Z","msg":"error received after stop sequence was engaged","error":"failed to wait for instanceprofile caches to sync: timed out waiting for cache to be synced for Kind *v1alpha1.InstanceProfile","stacktrace":"sigs.k8s.io/controller-runtime/pkg/manager.(*controllerManager).engageStopProcedure.func1\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.18.4/pkg/manager/internal.go:499"}
{"level":"info","ts":"2024-08-30T14:16:28.357Z","msg":"Shutdown signal received, waiting for all workers to finish","controller":"openidconnectprovider","controllerGroup":"iam.services.k8s.aws","controllerKind":"OpenIDConnectProvider"}
{"level":"info","ts":"2024-08-30T14:16:28.357Z","msg":"Shutdown signal received, waiting for all workers to finish","controller":"openidconnectprovider","controllerGroup":"iam.services.k8s.aws","controllerKind":"OpenIDConnectProvider"}
{"level":"info","ts":"2024-08-30T14:16:28.357Z","msg":"Shutdown signal received, waiting for all workers to finish","controller":"policy","controllerGroup":"iam.services.k8s.aws","controllerKind":"Policy"}
{"level":"info","ts":"2024-08-30T14:16:28.357Z","msg":"Shutdown signal received, waiting for all workers to finish","controller":"role","controllerGroup":"iam.services.k8s.aws","controllerKind":"Role"}
{"level":"info","ts":"2024-08-30T14:16:28.357Z","msg":"Shutdown signal received, waiting for all workers to finish","controller":"group","controllerGroup":"iam.services.k8s.aws","controllerKind":"Group"}
{"level":"info","ts":"2024-08-30T14:16:28.357Z","msg":"All workers finished","controller":"group","controllerGroup":"iam.services.k8s.aws","controllerKind":"Group"}

Steps to reproduce
Install Helm chart
view pod logs
Expected outcome
Only log when there are actual errors or syncs
Environment

Kubernetes version 1.29
Using EKS (yes/no), if so version? Yes, 1.29
AWS service targeted (S3, RDS, etc.) IAM

I am having the same issue in my dev env on 1.3.1 it worked on one dev going from 1.3.11 down to 1.3.1 it installed the CRD correctly in env then broke on another
the instanceprofiles.iam.services.k8s.aws is not getting installed for some reason

@cam634 Hi! I just realised that I am already running 1.3.12... Did you try it?

also did you get the issue in fresh install or only when updating the existing one? If latter, what method do you use for the installation of ack?

@gecube Our issue is related with the helm terraform provider sadly https://github.com/hashicorp/terraform-provider-helm/issues/944 It does not update the CRD.

@cam634 it is sad to hear that there is an issue in tf provider. I hope it would be solved somehow. Maybe it would be useful to you, but I don't recommend using TF to manage k8s cluster. Instead of it we create the k8s cluster by TF, instantly bootstrap some gitops tooling of your choice (I use FluxCD, but ArgoCD will work for you as well). And it solves the issue as both FluxCD and ArgoCD don't have issues with CRD updates. Maybe it would be helpful for you and give some ideas how to make a workaround.


[Mint] Check for duplicate blinding factor within existing promises when initiating a split

Related wallet issue: https://github.com/minibits-cash/minibits_wallet/issues/28
Summary:
If wallet send blinded message for a split that has been generated using the same secret as before, mint spends the ecash and fails to deliver new promises, leading to ecash lost from walet POV.
This situation can happen on wallet side for various reasons after implementing the deterministic secrets which uses incremental recovery indexes to derive secrets. In case wallet does not increment the index, the blinded message is generated using secret generated using the same derivation path as before.
Wallet may fail to increment the index because of a bug, or, as in referenced wallet issue, because of external failures, that can not be fully prevented.
Proposed fix:
Mint needs to check there is not existing promise generated from blinded message with the same blinding factor before it spends and not let it fail too late on DB integrity constraint.

Still looking into this. The cost for doing this validation in the mint is very high compared to other checks and thus I'm unsure if it should exist or not.

I decreased the rate of occurrence of the issue in minibits by increasing and persisting recovery counters before initiating a swap (and recoverying not delivered ecash in case swap succeeds on mint side but fails to reach the wallet).
However this is only one situation where this happens. Another common situation is that the user does not fully complete the recovery (so mint keeps unrecovered promises) or forgets to recover whole mint.
As the result is fatal we should find a way to fix it, otherwise the whole cost-benefit of detsec does not work. If the check requires search over promises table, some index should make it viable at least until we figure out better overall concept.

As the result is fatal we should find a way to fix it, otherwise the whole cost-benefit of detsec does not work. If the check requires search over promises table, some index should make it viable at least until we figure out better overall concept.

I think you have a point here.

The general issue is that not all Rest-endpoints in the cashu api are idempotent. I proposed a simple solution here: https://github.com/cashubtc/nuts/issues/64
https://restfulapi.net/idempotent-rest-apis/

The general issue is that not all Rest-endpoints in the cashu api are idempotent.

I think It's not only that. You can request a signature on the same blinded message B_ twice in two different requests and you would run into the same issue as described. @ngutech21 would you agree?
Being able to cache request-response pairs would make sense for spotty internet connections. I'm not sure if that would be more fit for a middleware or another type of layer around the protocol though.

This issue is already fixed in Nutshell, see here. Fix for LNbits mint still in progress.

The general issue is that not all Rest-endpoints in the cashu api are idempotent.

I think It's not only that. You can request a signature on the same blinded message B_ twice in two different requests and you would run into the same issue as described. @ngutech21 would you agree?

If you provide the same idempotencykey for both requests, this will not result in an error. This is the responsibility of the wallet.

Being able to cache request-response pairs would make sense for spotty internet connections. I'm not sure if that would be more fit for a middleware or another type of layer around the protocol though.

This sounds like an implementation detail to me. I think we should add idempotencykeys to all Rest-Endpoints that have this issue. It doesn't break the api because it's just a header.


No module named 'requests'

When I attempt to run anything, it says this:
"Traceback (most recent call last):
File "bots/misc/joinserver2.0.py", line 12, in
import requests
ModuleNotFoundError: No module named 'requests' "
fix

pip install requests


retry wget operations up to 5 times

to reduce spurious errors related to underlying
cloud network connectivity issues (specific to hp
cloud for this patch)

how about now?


proxy

can't set the proxy

Ill look into this as soon as possible.

@swloki Would you mind providing a bit more information or some details? If you're trying to create an http client connection from go the stdlib will, by default, respect the http_proxy and https_proxy environment variables.


Rabbitmq is not starting on CI build

Need to start an instance of Rabbitmq on CI servers as a docker image.

Fixed w/https://github.com/spring-cloud/spring-cloud-stream-binder-rabbit/issues/30


Trickplay

Hello
Thanks for the great server but I have question

Does the server support trickplay (rewind/fastforward...) and which are protocol support it?
I record live rtsp stream and save to files (with sequence) and now I need to provide stream service on the files (read file by file and make stream). How can I do it in same session (example RTSP session)

Thanks

Hi gmount,
The server streams what is capture from V4L2 device, in order to have trickplay you need to control what is written to the capture device.
For sendind data, it is more or less the same you should write to the V4L2 device used by v4l2rtspserver.
Best Regards,
Michel


Is there anyway to set the default zoom level

On loading the gallery using this setup:
jQuery("#gallery").unitegallery({
                        gallery_theme: "grid",

                        gridpanel_enable_handle: true,
                        slider_enable_arrows: true,
                        slider_control_swipe: true, //enable swiping control
                        slider_control_zoom: true, //enable zooming control
                        slider_enable_fullscreen_button: false, //disable fullscreen button onslider element

                        theme_panel_position: "right",
                        grid_num_cols: 3, //number of grid columns,
                        gridpanel_vertical_scroll: false, //scroll horizontally,
                        gridpanel_grid_align: "top",

                        slider_enable_progress_indicator: true,
                        slider_enable_play_button: true,
                        slider_play_button_offset_hor: 45,
                        slider_play_button_offset_vert: 12,

                        slider_enable_zoom_panel: true,
                        slider_enable_text_panel: true,
                        strippanel_enable_handle: true
                    });

live example: http://unitegallery.net/index.php?page=grid-right
It zooms into the images by default because it is too large.
Is it possible to keep it zoomed out on loading/switch the images or disable the zoom all around?
Thanks

Hi. you have slider scale mode option and zoom max ratio option, with both
options you can reach what you need.
On Fri, Jul 24, 2015 at 4:34 PM, mikeyxkcd<EMAIL_ADDRESS>wrote:

On loading the gallery using this setup:
jQuery("#gallery").unitegallery({
gallery_theme: "grid",
                    gridpanel_enable_handle: true,
                    slider_enable_arrows: true,
                    slider_control_swipe: true, //enable swiping control
                    slider_control_zoom: true, //enable zooming control
                    slider_enable_fullscreen_button: false, //disable fullscreen button onslider element

                    theme_panel_position: "right",
                    grid_num_cols: 3, //number of grid columns,
                    gridpanel_vertical_scroll: false, //scroll horizontally,
                    gridpanel_grid_align: "top",

                    slider_enable_progress_indicator: true,
                    slider_enable_play_button: true,
                    slider_play_button_offset_hor: 45,
                    slider_play_button_offset_vert: 12,

                    slider_enable_zoom_panel: true,
                    slider_enable_text_panel: true,
                    strippanel_enable_handle: true
                });

live example: http://unitegallery.net/index.php?page=grid-right
It zooms into the images by default because it is too large.
Is it possible to keep it zoomed out on loading/switch the images or
disable the zoom all around?
Thanks
—
Reply to this email directly or view it on GitHub
https://github.com/vvvmax/unitegallery/issues/16.

Hi Max,
Sorry for the late response, your help is very much appreciated and I got it working.
Since it wasn't documented on the main site, I had to dive into the code to find the config options.
For anyone else running into this issue, these are the options that need to be set:
   slider_zoom_max_ratio: 2, // max zoom level. Not required, but good to have
   slider_scale_mode: "fit", // don't scale by default
   slider_zoom_step: 1.2 // also not required

Feel free to close this issue.
Thanks again.

Ok. Cool. Good luck!
On Thursday, July 30, 2015, mikeyxkcd<EMAIL_ADDRESS>wrote:

Closed #16 https://github.com/vvvmax/unitegallery/issues/16.
—
Reply to this email directly or view it on GitHub
https://github.com/vvvmax/unitegallery/issues/16#event-369236122.


Add content/es/docs/concepts/containers/container-lifecycle-hooks.md

This is my first large translation and it's still WIP because I need revert some translations to english that could cause vision-impairment :smile:

Creo que ya puede ser revisada

squash listo

\lgtm

/lgtm

Squash listo :+1:

/lgtm
Pinging @raelga for final review and merge.


github releases page error with cupertino scaffold

Oops. I tested it on Cupertino only. I'll check it out and fix it by tomorrow night.


fix display of triple braces

Because it totally confused me on http://kemalcr.com/docs/views/, displayed as render "my/app/view/base/path/#}.ecr", if you don't use the raw. Liquid issue.

Thanks 👍


input-forms localization in xmlui

If I haven't missed it anywhere it's currently not possible to localize input-forms in xmlui. DS-1484 seemed to resolve this only by better documentation.
with this accessing input-forms_LOCALE.xml should be possible, any thoughts on the solution?

Wouldn't it be better to use actual keys in the input forms to make them more multilingual friendly ? (For both the JSPUI & XMLUI, just like for the item-submissions.xml ?
See: https://github.com/DSpace/DSpace/blob/master/dspace/config/item-submission.xml#L222
This would allow for easier localization without having to make changes in multiple input-form.xml files.

I agree that having to manage one input-forms file would be easier than managing two or more. One could probably wrap the DCInput getLabel, getHints and getWarnings (+ handling the key-value pairs) calls with messages() in xmlui and with LocaleSupport.getLocalizedMessage in jspui, thus making it possible to have keys in the input-forms file.
But, since input-forms_LOCALE.xml, should already be working in jspui I thought it would be reasonable to go the same path for xmlui. But yes the only advantage I can see - sharing the localized input-forms - might not be worth it.

This needs rebasing on the latest master, because of merge conflicts

@tdonohue completely forgotten this one. Are you even interested in it as it is? I mean the input-forms_LOCALE.xml approach? We've eventually taken the "messages keys in input-forms" path...This one above was working, but nobody wanted to manage the extra file(s)...
I could create the PR from that version instead, if it sounds better, but it's only the XMLUI part...let me know...

Hi @kosarko : Sorry, I missed the comments above about the proposal to use message keys instead. I agree, that'd be a preferable solution (as do others in our DevMtg today). I'm going to close this PR as it seems like we all agree that the other option is better.


DC-814: Increase datarepo tools pool size

https://broadworkbench.atlassian.net/browse/DC-814

We've been seeing a lot of test flakiness around RBS over the last couple of weeks. After other debugging attempts (detailed in datarepo PR), I'd like to try bumping up the pool size. The recent errors have been due to not enough projects being available and the retries did not work, so potentially bumping up the pool size will provide some relief.

This change seems harmless but it is puzzling to me that we'd need to change this now given that it hasn't changed in two years and I don't think our usage has changed recently. If this change doesn't fix the problem, is the plan to later revert it?

Since we are seeing some failures due to the lack of available projects, I'm not inclined to revert this. Even if it doesn't fix all of the flakiness, I think it should help.
I agree, I don't understand why we're needing to increase this. My hope is that this either is the root issue OR that it alleviates some of the stress on the service and that we can more accurately pinpoint the real issue.


Implement the Encryption component based on KMS

What would you like to be added:
implement KMS component based on the cryption interface
you can refer the design of Encryption interface:
#794
Why is this needed:
need Encryption component based on KMS

/area component

/kind easy

可以试下用 issue模版来创建issue，内容能自动生成，而且会自动打label。有个发新手任务的机器人 会根据自动打的label 在钉钉群里发广告


Is it possible to add a loader?

Specifically, I would like to add riotjs-loader https://www.npmjs.com/package/riotjs-loader

Hi there!
Can not add loaders dynamically as they currently need to be loaded up when WebpackBin starts. It is also a matter of different loaders have different dependencies that also needs to load up and different kinds of options.
So now I hardcode all loaders, but let me add riotJS on next release :-)

I was actually coming here to ask this exact question so I could then add a RiotJS boilerplate :)


pandas_profile fails to import due to missing visions module

Describe the bug
v.2.9.0 can't import into jupyter due to missing module 'visions'
To Reproduce
Terminal:
pip install -U pandas-profiling[notebook]
jupyter nbextension enable --py widgetsnbextension

Jupyter:
import pandas_profiling
Version information:
Version information is essential in reproducing and resolving bugs. Please report:

Python version<EMAIL_ADDRESS>Environment:Jupyter Notebook (local)
pip: If you are using pip, run pip freeze in your environment and report the results. The list of packages can be rather long, you can use the snippet below to collapse the output.

Click to expand Version information

anyconfig==0.9.11
appnope==0.1.0
argon2-cffi==20.1.0
arrow==0.15.8
atomicwrites==1.4.0
attrs==19.3.0
backcall==0.2.0
binaryornot==0.4.4
bleach==3.1.5
boto3==1.14.42
botocore==1.17.42
cachetools==4.1.1
censusgeocode==0.4.4
certifi==2020.6.20
cffi==1.14.1
chardet==3.0.4
click==7.1.2
confuse==1.3.0
cookiecutter==1.6.0
coverage==5.2.1
cycler==0.10.0
dask==2.22.0
decorator==4.4.2
defusedxml==0.6.0
docutils==0.15.2
entrypoints==0.3
fsspec==0.6.3
future==0.18.2
google-pasta==0.2.0
googlemaps==4.4.2
htmlmin==0.1.12
idna==2.10
ImageHash==4.1.0
importlib-metadata==2.0.0
ipykernel==5.3.4
ipython==7.17.0
ipython-genutils==0.2.0
ipywidgets==7.5.1
jedi==0.17.2
Jinja2==2.11.2
jinja2-time==0.2.0
jmespath==0.10.0
joblib==0.16.0
jsonschema==3.2.0
jupyter==1.0.0
jupyter-client==6.1.7
jupyter-console==6.1.0
jupyter-core==4.6.3
jupyterlab==0.31.1
jupyterlab-launcher==0.10.5
kedro==0.16.4
kiwisolver==1.2.0
lightgbm==2.2.3
llvmlite==0.34.0
MarkupSafe==1.1.1
matplotlib==3.3.1
missingno==0.4.2
mistune==0.8.4
more-itertools==8.4.0
mysql-connector-python==8.0.21
nbconvert==5.6.1
nbformat==5.0.7
nbstripout==0.3.3
networkx==2.5
notebook==6.1.3
numba==0.51.2
numpy==1.19.1
packaging==20.4
pandas==1.0.5
pandas-profiling==2.9.0
pandocfilters==1.4.2
parso==0.7.1
pexpect==4.8.0
phik==0.10.0
pickleshare==0.7.5
Pillow==7.2.0
pip-tools==5.3.1
pluggy==0.13.1
poyo==0.5.0
prometheus-client==0.8.0
prompt-toolkit==3.0.6
protobuf==3.12.4
protobuf3-to-dict==0.1.5
ptyprocess==0.6.0
py==1.9.0
pycparser==2.20
pydash==4.8.0
pygeocodio==1.0.0
Pygments==2.6.1
pyparsing==2.4.7
pyrsistent==0.16.0
pytest==3.10.1
pytest-cov==2.10.0
pytest-mock==1.13.0
python-dateutil==2.8.1
python-dotenv==0.14.0
python-json-logger==0.1.11
python-Levenshtein==0.12.0
pytz==2020.1
PyWavelets==1.1.1
PyYAML==5.3.1
pyzmq==19.0.2
qtconsole==4.7.5
QtPy==1.9.0
requests==2.24.0
requests-toolbelt==0.9.1
s3fs==0.4.2
s3transfer==0.3.3
sagemaker==2.15.0
scikit-learn==0.23.2
scipy==1.5.2
seaborn==0.10.1
Send2Trash==1.5.0
six==1.15.0
smdebug-rulesconfig==0.1.5
tangled-up-in-unicode==0.0.6
terminado==0.8.3
testpath==0.4.4
threadpoolctl==2.1.0
toolz==0.10.0
toposort==1.5
tornado==6.0.4
tqdm==4.48.2
traitlets==4.3.3
urllib3==1.25.10
visions==0.5.0
wcwidth==0.2.5
webencodings==0.5.1
whichcraft==0.6.1
widgetsnbextension==3.5.1
zipp==3.3.0

-->
Additional context
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-111-146cc23240a7> in <module>
      5
      6 # -- unusual
----> 7 import pandas_profiling

/usr/local/lib/python3.8/site-packages/pandas_profiling/__init__.py in <module>
      5
      6 from pandas_profiling.config import Config, config
----> 7 from pandas_profiling.controller import pandas_decorator
      8 from pandas_profiling.profile_report import ProfileReport
      9 from pandas_profiling.version import __version__

/usr/local/lib/python3.8/site-packages/pandas_profiling/controller/pandas_decorator.py in <module>
      2 from pandas import DataFrame
      3
----> 4 from pandas_profiling.__init__ import ProfileReport
      5
      6

/usr/local/lib/python3.8/site-packages/pandas_profiling/__init__.py in <module>
      6 from pandas_profiling.config import Config, config
      7 from pandas_profiling.controller import pandas_decorator
----> 8 from pandas_profiling.profile_report import ProfileReport
      9 from pandas_profiling.version import __version__
     10

/usr/local/lib/python3.8/site-packages/pandas_profiling/profile_report.py in <module>
      9
     10 from pandas_profiling.config import config
---> 11 from pandas_profiling.model.describe import describe as describe_df
     12 from pandas_profiling.model.messages import MessageType
     13 from pandas_profiling.report import get_report_structure

/usr/local/lib/python3.8/site-packages/pandas_profiling/model/describe.py in <module>
     11 from pandas_profiling.model.correlations import calculate_correlation
     12 from pandas_profiling.model.sample import Sample, get_sample
---> 13 from pandas_profiling.model.summary import (
     14     get_duplicates,
     15     get_messages,

/usr/local/lib/python3.8/site-packages/pandas_profiling/model/summary.py in <module>
     12 from pandas.core.arrays.integer import _IntegerDtype
     13 from scipy.stats.stats import chisquare
---> 14 from visions.application.summaries.series import (
     15     file_summary,
     16     image_summary,

ModuleNotFoundError: No module named 'visions'

@JMBurley I suspect the terminal and jupyter are different environments, since visions is in your pip freeze.
You can try the following in the notebook:
import sys
!{sys.executable} -m pip install -U pandas-profiling[notebook]

Or alternatively in the notebook:
import sys
print(sys.executable)

and then copy that string and install in the terminal.
Please let me know if that resolves your issue.

pip freeze was called in the notebook.  I'm not sure what caused the issue;  pip uninstall and pip install visions resolved the problem before I posted here.
Mostly just wanted to flag in case it is an issue affecting multiple users and there's something funky in the wheel after the Sept 3rd update.
Happy to close out if this looks unique to me and not indicative of a broader issue. 👍

Thanks for flagging, much appreciated. Happy that it's resolved. Will look into it deeper when upgrading to the next visions' version.

If you get this after the steps mentioned above:
ImportError: cannot import name 'ABCIndexClass' from 'pandas.core.dtypes.generic'
Follow these steps: Stackoverflow


fix: fix auto size when no content in first col

close https://github.com/dream-num/univer-pro/issues/3096

Pull Request Checklist

[ ] Related tickets or issues have been linked in the PR description (or missing issue).
[ ] Naming convention is followed (do please check it especially when you created new plugins, commands and resources).
[ ] Unit tests have been added for the changes (if applicable).
[ ] Breaking changes have been documented (or no breaking changes introduced in this PR).

无内容也会改动列宽


Test refactor proposal

This is a first pass at showing a different way to write integration tests, ie, tests that use multiple components together.

An incremental step at changing APIs and tests either binding sockets ahead of time that are then passed to the APIs, or for the proxy case, not binding and using the port returned from run_server in most cases. While the available_addr function is still used, this is first step at completely removing it. While it works in most cases, it's actually not guaranteed to be 100% reliable as there is nothing stopping the OS of assigning the port to another call causing a bind failure for the second test to use it, so eventually removing this will entirely remove bind-related flakiness.
Moves the logic of spinning up the various components into separate pieces from the CLI interface to them. The goal of this change is to start to tease apart the user interface (CLI) portions from the actual code that is run, to make writing tests easier. This also completely removes the notion of unwrapping the RuntimeConfig from the Admin inside various places in favor of passing in the actual config for the component in a type safe manner. For instance previously running the manage command with a relay server set would panic as .unwrap_agent() was used inside MdsClient
Move tests out to a separate crate. This is done so that common test code can be placed in the library and new dependencies can be used etc so that (eventually) test helper code in test.rs can be removed from quilkin itself
Make "unit" tests integration tests. While iterating on quilkin I've noticed that the there is a lot of test code in the library that shouldn't be there, as it means changing unit tests needs to compile quilkin (including all the test code) instead of just being able to recompile and relink the single test binary. I'm not sure why it was done this way but I suspect it might be due to...
Add helper for test tracing. Currently the tracing-test dev dependency can be used to add a proc macro to a test function to get trace output to be outputted on test failure. Unfortunately this macro has no way to filter messages other than allowing only message from teh current crate, which makes integration tests useless as then no trace messages from quilkin itself will be captured, or else no filtering either by crate nor level (the level used in the tracing-test is trace!) which results in massive spam from eg hyper/h2 that makes test tracing from integration tests utterly useless. So I just made a simple trace_test! macro that makes it trivial to capture only the output we care about in tests to make debugging slightly more tolerable
The qt (quilkin-test) crate also introduces a proposed API to make writing integration tests easier, removing a lot of boilerplate by creating various components with minimal necessary configuration that can then be hooked together with dependencies. An example of this is shown in the refactored relay_routing test in mesh.rs

Having a quick look before getting on a plane for GDC - but this is an interesting approach! All of this seems like an improvement.

Make "unit" tests integration tests. While iterating on quilkin I've noticed that the there is a lot of test code in the library that shouldn't be there, as it means changing unit tests needs to compile quilkin (including all the test code) instead of just being able to recompile and relink the single test binary. I'm not sure why it was done this way but I suspect it might be due to...

Blame me, and my relative lack of experience with Rust vs y'all's at Embarks 😃

While it works in most cases, it's actually not guaranteed to be 100% reliable as there is nothing stopping the OS of assigning the port to another call causing a bind failure for the second test to use it, so eventually removing this will entirely remove bind-related flakiness.

Binding to 0 will result in a conflict? In theory, that shouldn't be possible - or am I missing something here?

Move tests out to a separate crate. This is done so that common test code can be placed in the library and new dependencies can be used etc so that (eventually) test helper code in test.rs can be removed from quilkin itself

Sounds good to me - I always struggled with the best way to do this.

So I just made a simple trace_test! macro that makes it trivial to capture only the output we care about in tests to make debugging slightly more tolerable

Sounds excellent. Right now having to step into a test and rerun it locally after CI failure to get at deeper logs is not pleasant.
Only other note in case this gets reviewed and potentially merged while I'm at GDC - Apache headers on everything please 👍🏻 (just in case).

For @markmandel talked with Jake and we're going to merge this now, and do a followup PR for the one agones test, just to reduce merge conflicts and divergences.


如何用GPU加速检测

想用GPU加速检测，现在的速度是0.15s一帧

I got it

@wurongyuan Have You managed to run model on gpu? can you share the code please.
my mail<EMAIL_ADDRESS>


MVA Link not working

The link to the video on Microsoft Virtual Academy doesn't work...

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

ID: 04a4db94-e031-f543-07fe-9700bf203dac
Version Independent ID: eeb18a5a-98ef-2d69-6803-e9bbd6bd7b9c
Content: Get started with Elastic Database Tools - Azure
Content Source: articles/sql-database/sql-database-elastic-scale-get-started.md
Service: sql-database
GitHub Login: @anumjs
Microsoft Alias: anjangsh

@steronc Thanks for the feedback! I have assigned the issue to the content author to evaluate and update as appropriate.

The Microsoft Virtual Academy link references a video title that does not appear to exist:
Implementing Scale-Out Using Sharding with the Elastic Database Client Library Video

PR to remove link is pending: https://github.com/MicrosoftDocs/azure-docs-pr/pull/50226
@steronc thanks for pointing this out - course has been retired

#please-close

@steronc We will now proceed to close this thread. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.


Incorporate CUPS password survey into data assessment component

We need a way to evaluate password strength. CMU's CUPS program used a password survey that had decent results when compared to their later projects with mechanical turks and does not require getting the full password from the clients (which is needed.)
Initial survey
Mechanical Turk Questions

Password Survey at https://github.com/OpenInternet/SAFETAG/blob/master/en/exercises/password_security/password_survey.md is partially modeled off of this; but needs to be added to reference.


support a few more styling options

some of the styling options weren't changing as i'd expected them to. i added 2 new styling fields contrastBgColor and attentionBgColor and assigned them to the theme styling's ContrastBgColor and MoreContrastBgColor fields, respectively.
I also updated all of the existing themes' options to reflect their existing values before this change. I couldn't find any elements that changed colors with these patched fields

That's great @cdmistman!
Thanks for the PR!
In which situations those colors are used?
I fetched the PR, but I can't find the difference 😄

the components i was trying to style:

the "quit" dialog (contrastBgColor)
the background colors in the other dialogs (ie in the search dialog - also contrastBgColor)
the Shutting down... text (afaict the only element that uses the new attentionBgColor)

I fetched the PR, but I can't find the difference 😄

that's what i was hoping! opt-in styling changes that nobody will notice but silently expands more theming options :)
might be good for somebody to also update the builtin themes with better-chosen values for these options, but in the meantime as long as nothing changes i think it's ok :)
should also be api-compatible on the patch level (ie, 1.2.1 release) since user themes inherit from the default theme

Got it, thanks.
That looks great.
Agree with your second point. Now that the theming engine is here, given how easy it is to add and edit themes, the idea is to have at least as many themes as KDE Konsole 😄


Still provide docker-machine with a GOARCH=386 for Linux & Darwin ?

We actually provide 6 binaries : darwin, window & linux each of them for two architectures amd64 & 386.
Two questions, open for discussion

It sounds like docker engine project does not provide 386 linux binaries, so why should we ?
Its sounds like the last mac running a 32bits processor has been out in 2005, why should still provide theses ? (Although the docker engine project still provide them, we should ask them)

If we have users on these, fair enough, let's keep them, if we don't maybe it's time to simplify this a bit. The main advantage is to speed up the cross-os projects, simplify the build and tests.

It sounds like docker engine project does not provide 386 linux binaries, so why should we ?

On "what" docker is installed is different from on "what" machine is ran to install docker somewhere else. See the point?
Agreed though that the 386 arch is probably not that interesting...
Not building them would indeed speed-up the cross target - not so much for simplifying build & tests though I'm afraid.

I would not really be too averse to dropping support for the 32 bit executables, but we should check our download numbers for those binaries first to make sure the tradeoff is acceptable.  If <5% of our downloads are on 32bit, for instance, I'm more keen than if 30% of our downloads are for 32bit.

Wow, just ran the numbers on 0.5.0 so far (source: https://api.github.com/repos/docker/machine/releases), the amount of users on 32 bit is really pretty tiny, with the exception of Windows at least.
  We might want to keep them around for Windows though, or at least provide a pointer to "Hey, if you want 32 bit, here's how to compile it yourself".

I believe some users are mislead by the arch name also. A few of those 386 downloads are probably people who downloaded the wrong version.
+1 to remove linux and darwin 386 and keep windows for now...

Let's remove them is 0.5.2!

Sure, I'm in favor of removing the Darwin and Linux packages for 0.5.2.


[monitor-query] Update tracing.ts comment

This is a holdover from when we used createTracingFunction. Now that this package is using TracingClient, the comment should reflect that.

API change check
API changes are not detected in this pull request.


ui font size

ui in ipfs-desktop font size too big, how can i change it

@bluelovers You should be able to change overall zoom size through the View menu in the same manner as an ordinary web page:

there is no menu in windows version

@lidel - do you have advice? Thanks!

I have no Windows :sweat_smile: but on Linux pressing left alt key once will show the menu bar temporary:

As you can see there are also keyboard shortcuts which should work too:

Ctrl + + to increase font size
Ctrl + - to decrease
Ctrl + 0 to reset

@bluelovers let us know if any of the above worked for you :)

@lidel thx, alt is work for show menu
but if can set it by conf value, font will more clear for see

Just to be sure I understand correctly: the feature request you have is to add UI for manually setting font size via WebUI's Settings screen? I think that is reasonable ask (could be added at some point, along with Dark Mode :))

yes


gemspec: Made it ignore the private key, we don/'t build/publish it as a...

Hi,
I wanted to install rye from your github via an entry in my Gemfile like this:
gem "rye", :github => 'delano/rye', :ref => 'abcdef123'
But: bundler install complained about your missing private key.
So I modified your gemspec that it will not try to sign, if it is installed directly.
rgds,
j

I just pushed 0.9.13 which includes your change from #58. I reverted this change in the latest gemspec but you have two options: use 0.9.13 or update your github fork and install from there.


[FLINK-18742][flink-clients] Some configuration args do not take effect at client

What is the purpose of the change
Some configuration args from command line will not work at client, for example, the job sets the classloader.resolve-order to parent-first, it can work at TaskManager, but Client doesn't.
The FlinkUserCodeClassLoaders will be created before calling the method of getEffectiveConfiguration() at org.apache.flink.client.cli.CliFrontend, so the Configuration used by PackagedProgram does not include Configuration args.
Brief change log

Init the ClassLoad and mainClass  of PackagedProgram object by the effectiveConfiguration which contains dynamic properties.

Verifying this change

CliFrontend supports to initialize the ClassLoad and mainClass  of PackagedProgram object through initClassLoadOnEffectiveConfiguration() methods after the initialization of PackagedProgram object;
Added test cases to verify that the configuration args are effective at the client.

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no)
The serializers: (yes / no / don't know)
The runtime per-record code paths (performance sensitive): (yes / no / don't know)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn/Mesos, ZooKeeper: (yes / no / don't know)
The S3 file system connector: (yes / no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

@aljoscha Thanks for reviewing.
I have modified the implementation, @wangyang0918 @aljoscha Could you help review the PR again.

@kl0u Thanks for your review, I have modified on your suggestion.

@wangzzu There is a test failure related to your changes. Please fix it and then I think I can merge :)

@flinkbot run azure

@wangzzu In your testing code you seem to "replicate" the code of the CliFrontend.run() method. This is pretty fragile because if someone changes the order of the calls in the run, the test will still pass. Can't you follow a similar pattern as in the CliFrontendRunTest where you override the executeProgram(Configuration configuration, PackagedProgram program) (see RunTestingCliFrontend at the bottom of the class)?
This will also allow to avoid make methods visible just for testing.

@kl0u Thanks for your suggestion, I will modify it.

@kl0u I have modified it, can you help review this again?


The problem of blackness in the model when adding materials

Tested versions
4.2
System information
mobile android
Issue description
There is a problem when adding materials to the model and exporting the model to Godot. There are black parts in the model and the sun is in one direction and there is blackness. I do not understand what the problem is, but I hope you can help me.

Steps to reproduce
The figure is black in some parts
Minimal reproduction project (MRP)
It is exported obj

@Sorshx Please upload a minimal reproduction project[^1] to make this easier to troubleshoot.
This looks like an issue with broken mesh normals, which may be an issue with the source OBJ file. Make sure to include this file in the ZIP as well.
[^1]: A small Godot project which reproduces the issue, with no unnecessary files included. Be sure to not include the .godot folder in the archive (but keep project.godot).Drag and drop a ZIP archive to upload it. Do not select another field until the project is done uploading.Note for C# users: If your issue is not Mono-specific, please upload a minimal reproduction project written in GDScript or VisualScript. This will make it easier for contributors to reproduce the issue locally as not everyone has a Mono setup available.

This is the project
Uploading تجارب(Copy).zip…

You clicked away before done, please try again

This is the project
تجارب(Copy).zip

I believe the source model has incorrect normals when exported from 3DMap.Constructor. (Free) 7861 for android.

Unfortunately there is something wrong with the normals on this model, and I spend several minutes trying to correct the issue in blender too, but I was unable to fix it without disabling "Auto-Smooth Normals" and using flat shading on the model.
Auto-Smooth off in Blender

Auto-Smooth on in Blender

I hate to say it, but it seems that somehow this 3D modeling software has produced extremely poor topology and it will be extremely difficult to clean up the artifacts.
As an example, I was able to clean up the roof, but it required selecting the inside bottom faces of the roof (the "base") and using the p key to split them into a separate mesh. Additionally, I could not get good shading without using a subdivision surface modifier.

Here is how it appears in Godot after re-exporting the fixed roof:

As you can see, if the model is made to look clean in Blender, it will also import correctly into Godot.
I'll attached my "fixed roof" version here if you'd like to play with it or continue fixing artifacts:
fixed_roof.zip
Unfortunately, 3D modeling is very complex and there many things to consider related to topology, normals and shading. My assessment is that if even Blender is unable to automatically correct the artifacts in this mesh without human intervention, it is not something that can be solved reasonably within Godot either. For this reason I am closing this issue. I'm sorry that the model ended up with so many artifacts, and if you have any further insight into steps that can be used to correct these artifacts, feel free to add more comments.

Thank you for helping me ❤


Fix naming issue in shard ratelimiter

Summary
Fix naming issue in shard ratelimiter
Checklist

[x] I have run nox and all the pipelines have passed.
[x] I have made unittests according to the code I have added/modified/deleted.

Related issues
None

Replaced this onto my bugfix branch for now.


[DOC]: Add HoneyHive integration to docs

Description of changes
Summarize the changes made by this PR.

Adds a markdown file with HoneyHive integration info and example.
Updates _sidenav.js to include honeyhive.md

Test plan
How are these changes tested?

[x] Tests pass locally with pytest for python, yarn test for js, cargo test for rust

Documentation Changes
Are all docstrings for user-facing APIs updated if required? Do we need to make documentation changes in the docs repository?

@jeffchuber would appreciate if you could review and approve 🙏


feat(sdk): add sonar-scanner cli

Motivation
Add sonar-scanner cli
Changes

add new target: just sdk sonar
update test to github workflow to install sonar-scanner
add new entry config/sdk.yml and corresponding updatecli config

Need to workout updatecli config for pinning to 5, as 6 didn't work when I tried to use it.


no page loads , not even login

Its probably a problem with the app not being compatible with bromite system webview

have you tried switching to android system webview / chrome webview just to try?
If you confirm that it's bromite webview, i'll look into it

Alr will try tomorrow

Nvm just updated webview tonight and it worked


API-10892 techdebt passport selection fix

Relates to API-10892

Address tech debt risk. login.gov is the only idp populated with headers.origin.
Replaces a function that won't work for any other IDP

SAML Proxy will be deprecated and replaced.


Update package.manifest to be consistent file and directory name casing

This came to light now that we can host Umbraco on Linux.  In Alpine Linux, I ran into issues where filenames and paths are case sensitive.  This PR resolve my problem.
Updated package.manifest to be consistent file and directory name casing as the actual files on disk.
Renamed doctypegrideditor.html to DocTypeGridEditor.html because Umbraco dynamically genereates my render view name from the view in base.cshtml, so the case of these two files also need to match.
Cheers,

Hmm I'm not sure how to sort out the build error. Your branch already contained both the solution files, and the build system doesn't know which one to use. Please let me know how you want me to proceed here.

Thanks @KiLLeRRaT
Don't worry about the build error, I think I have broken the AppVeyor integration, and I am probably going to remove it anyway :)

That's great, thanks @skttl!  Just a quick question, what are the plans with releasing another version of the v9 package as a nuget release? perhaps a v9 beta2?
Cheers!


Left side RL Plugin Panel

I was wondering if there can be an option to move the RL plugins panel to the left side of the client. This is a very small thing i know but i feel theres quite a few people that might like this feature and would like to see this added

Duplicate of #1641


Pls review #221 properly

let's review this properly when we have time!!!!!!!!!!!!!!!!! approvooooooooors
https://github.com/celestiaorg/celestia-node/pull/221

@liamsi I don't know if you and I will ever get to this issue. Let's just close it. If we run into something we don't agree with along the way, we'll flag it separately.


ACF has_field

Expected behavior
post.has_field('foobar') => boolean depending on if it exists or not on that post
Actual behavior

NULL
Steps to reproduce behavior

Create a post with ACF field 'foobar'
Try post.has_field('foobar')
Will return NULL

What version of WordPress, PHP and Timber are you using?

Latest all
How did you install Timber? (for example, from GitHub, Composer/Packagist, WP.org?)

Composer

Closed by #1024


Typescript suggestions are very often broken

Hi,
Typescript suggestions are always out of sync whenever any change like a git operation happens.
For someone like me who relies on the terminal, the experience is horrible.
If I understand it correctly, it's caused by changes to files outside the IDE. "atom-typescript" had a sync button to fix this. You should too.
If it's relevant, I'm using VSCode version 0.10.3 with Typescript v1.7.3 on OSX 10.11.2.

+1 this is killing my workflow!

We could add a reload action to VS Code to reload all projects. However there is a bug open in the TypeScript repository as well since the tsserver should handle this correctly without user interaction.
@louy: does the git operation change files outside your open workspace folder and those files affect the TS compile?

@dbaeumer So it is as I thought. Well user intervention is better than nothing. And no, each workspace is a git project.
Another tricky solution would be to trigger the reload command when the project window restores focus after it was in the background for some set duration (like 10-30 secs).
This is a big issue for me. It's really annoying.

For Dec I added a TypeScript: Reload Projects command which is available via F1. The TS team is still looking into fixing this in the tsserver we use.

Awesome. Thanks!

When TS isn't launched yet, you get this error

Created #1383

Closing.


feat: even more natural versions of FullyFaithful.homEquiv

A natural follow-up to #17450.

Thanks!
bors merge


File Path Completion Inserts The Whole Relative Path After ./ or ../

When using file path completion/suggestion to import/read a file, it inserts the whole relative path into the path string while it should only insert the remaining path string after we prepend the path with ./ or ../ notation.
Environment data

VS Code version: 1.57.1
Jupyter Extension version: v2021.6.999406279
Python Extension version: v2021.6.944021595
OS (Linux Mint) and version: 20 (Ulyana)
Python: 3.8.5 (64-bit)
Type of virtual environment used: (N/A)
Jupyter server running: Local

Steps to reproduce:

Create one ipynb file and one csv file in the same directory.
Open the ipynb file in VS Code.
Try reading/importing the second file using open() or pd.read_csv().
Write ./ in the parentheses and click CTRL + Space until the suggestion list appears.
Scroll down to the csv file from the suggestion list.
Press ENTER or TAB ->

https://user-images.githubusercontent.com/52089094/123132442-f36b6d80-d478-11eb-9fc4-8e9ff2f6f62e.mp4

Yes this is jupyter doing this. Sorry for the misunderstanding. The TextEdits jupyter gives us don't work in this scenario (I checked and jupyter notebook works fine here, so the codemirror edits must not match what monaco requires).
It also works fine in the interactive window so it must be the new monaco editor that's different.

Duplicate of https://github.com/microsoft/vscode-jupyter/issues/5956


Add Security.md file for compliance

Tracked-On: OAM-111898

Android CI has started Engineering Build for this issue ,Please check the linked Tracked-On issue/Android CI Web  for more details.

Android CI has completed Engineering Build for this issue, build is SUCCESS.To merge the changes please click on APPROVE FOR MERGE button in Android CI WEB


Integrate Microsoft-internal CI

We must have test coverage with driver verifier, and we should have coverage prerelease Windows builds. The internal CI provides that coverage but needs to be wired up to PR (pre-merge) gates.

Closing this as I set this up on Monday.


New feature, check if element exists

Hi,
As from my email earlier I added new methods to check if elements exist, so link(:my_link, :text => "Link") now gets an additional method: my_link? which would be the same as typing my_link_element.exists?.  I added this to all types of elements.  I've added to existing scenarios to test the new features work as well.  Let me know if it needs any tweaking.

++

I'm gonna get to this over the weekend.  I've been at a conference for the past few days and apologize for not getting to it sooner.


⚗(backends) use generic base backend classes

Purpose
We experiment with the base backend class, making it generic.
Proposal

[x] use generic base backend classes.

This PR is continued in  #501


Quick Fix for CRLF to LF does not work

Issue Type: Bug
I'm seeing a lint error after copying (some code in View Raw, in the browser)  and pasting into a new document.
The error:
Expected linebreaks to be 'LF' but found 'CRLF'.eslint(linebreak-style)
A Quick Fix is offered, but no matter if I attempt to apply to one line or all lines with the problem it is never resolved and the error persists.
VS Code version: Code 1.35.1 (c7d83e57cd18f18026a8162d042843bda1bcf21f, 2019-06-12T14:30:02.622Z)
OS version: Windows_NT x64 10.0.17763

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-8500 CPU @ 3.00GHz (6 x 3000)

GPU Status
2d_canvas: enabledchecker_imaging: disabled_offflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: enabledsurface_synchronization: enabled_onvideo_decode: enabledwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
15.80GB (8.77GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (9)

Extension
Author (truncated)
Version

react-hooks-snippets
AlD
1.1.5

open-html-in-browser
cod
0.1.21

vscode-eslint
dba
1.9.0

todo-tree
Gru
0.0.138

svn-scm
joh
1.54.3

intellij-idea-keybindings
k--
0.2.33

start-git-bash
McC
1.2.1

js-jsx-snippets
sky
0.3.0

vscode-maven
vsc
0.17.1

I still believe it is a bug to offer a Quick Fix and not have that fix work, but seconds after posting this Bug Report I noticed in the very bottom right of VS Code, only when focused on my new file, there is 'CLRF'.
I then selected all in the file and clicked 'CLRF' and the setting toggled to 'LF'.
That fixed my file.


Implement "Reopen with Encoding" command in File menu

It has mentioned in #22. I added Reopen with Encoding command to File menu.

Reopen with Encoding is disabled in new document, and it's enabled in existed file.
When you click menu-item of the encoding, an opened file will re-open from disk.
If you have edited buffer, Marp asks whether re-opening.

Implemented encoding which have organized menu-items by country groups are based on atom/encoding-selector.
Screen cast

Additional: Selected encoding doesn't apply on save because we had planned to use encoding UTF-8 for save.

Will this also address #39 and #46?

No. These issue was brought by the rendered font as said on #39. I'll create another pull request for these.

Fixes #73! Great.
Is there no way to detect the file's encoding and use it by default?

Actually, Marp already detects text encoding whenever opening file. (Powered by jschardet)
But it has edge-cases to fail when text file encoded by UTF-8 includes umlauts. This feature made for deal with it. Please see #22 and #59.


Contact info

Hi do you have a discord or Email?  Thanks

Adv.

Adv?
On Sunday, April 12, 2020, MoePus<EMAIL_ADDRESS>wrote:

Adv.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/MoePus/wowHijack/issues/1#issuecomment-612621827, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AEVSS5I74V2ANPRWG2YS5VLRMHEJLANCNFSM4MCPA5CA
.


added kafka minion as a prometheus exporter

This adds kafka-minion as a prom exporter, so we can make use of the exported kafka metrics.

That was my idea, yes. There are example dashboards available at
https://grafana.com/dashboards/10083
https://grafana.com/dashboards/10466
and the full description of all the exported metrics is at
https://github.com/cloudworkz/kafka-minion


TS2345 l'argument de type '{}' n'est pas assignable au parametre de type '[]'

bonjour,
je n'arrive pas à resoudre ce probleme suivant
code typeScript
 getData() {     this.sqlite.create({       name: 'ionicdb.db',       location: 'default'     }).then((db: SQLiteObject) => {       db.executeSql('CREATE TABLE IF NOT EXISTS expense(rowid INTEGER PRIMARY KEY, date TEXT, type TEXT, description TEXT, amount INT)',{})         .then(res => console.log('Executed SQL'))         .catch(e => console.log(e));       db.executeSql('SELECT * FROM expense ORDER BY rowid DESC',{})         .then(res => {           this.expenses = [];           for(var i=0; i<res.rows.length; i++) {             this.expenses.push({rowid:res.rows.item(i).rowid,date:res.rows.item(i).date,type:res.rows.item(i).type,description:res.rows.item(i).description,amount:res.rows.item(i).amount})           }         })         .catch(e => console.log(e));       db.executeSql('SELECT SUM(amount) AS totalIncome FROM expense WHERE type="Income"',{})         .then(res => {           if(res.rows.length>0) {             this.totalIncome = parseInt(res.rows.item(0).totalIncome);             this.balance = this.totalIncome-this.totalExpense;           }         })         .catch(e => console.log(e));       db.executeSql('SELECT SUM(amount) AS totalExpense FROM expense WHERE type="Expense"',{})         .then(res => {           if(res.rows.length>0) {             this.totalExpense = parseInt(res.rows.item(0).totalExpense);             this.balance = this.totalIncome-this.totalExpense;           }         })     }).catch(e => console.log(e));   }
message d'erreur:
TS2345: Argument of type '{}' is not assignable to parameter of type 'any[]'. Property 'length' is missing in type '{}'

Bonjour! A few things:

Our team is not fully fluent in many other languages, so we can only reliably help users writing in English.
It's not clear what problem you are looking to solve from what you've written. If you are filing what you feel is a bug, we need a minimal reproduction of the problem you're encountering so that we can isolate the issue.
It looks more like you are asking a support question (i.e. "why is this TypeScript code not working?"). I would strongly suggest you re-open on StackOverflow instead.

Also, you can run with the --locale fr option to get error messages in French.

De plus, vous pouvez utiliser l'option --locale fr pour obtenir des messages d'erreur en français.

1-I am sorry to write in French because my English is very limited.
2- my problem is this:
in my code typeScript, there are sql queries, the '{}' parameter is underlined.
3- I do not know how to re-open in 'StackOverflow'
thanks you for your answer

I can answer this question.  Assuming this is the SQLite library you are using, I believe the second parameter is for values to be bound to ? placeholders in the SQL.  If you don't have any values, the proper argument to pass is an empty array [], not an empty object {}.
Please do ask future questions on Stack Overflow (https://stackoverflow.com/), in English the best you can (there are many users with limited English).  I will be happy to answer your questions there if I know the answers.

OK it's noted.
I will apply and come back later.
Thank you


Fix resolving package chains (issues #176 and #95)

Hopefully PR solve the issues:

https://github.com/TiVo/intellij-haxe/issues/176
https://github.com/TiVo/intellij-haxe/issues/95

Unit-tests, Fix, and release notes updated.
Important for user experience, we still allow for user to print package path, even if he declare variable.

If variable tests declared - completion will be provided,
But if user continue printing anything else, for example tests.cases1. - it turns into package path resolving, and user will get completion with other packages and classes from tests.cases1. That's just great and doesn't prevent client from coding.
And otherwise if happens that tests.cases1 is not a package, and if reference tests.cases1 is valid dot-access to field - it will be resolved for reference completion with higher priority that package resolving.

Nice. I'll merge it.


Deprecate 'artifacts' dir, point to contracts repo instead

Problem
Right now the ocean.py repo has an artifacts directory, containing:

address.json - lists the address of each Ocean smart contract deployed to Eth mainnet, and other networks
BFactory.json - ABI for BFactory smart contract
BPool.json - ABI for BPool ..
(and several more ABI jsons)

Issues: The redundant storage of this information means that whenever the contract deployments change (from contracts repo) this needs to get updated. That update may be forgotten (an error), or performed but with a mistake (an error). It also takes explicit effort (takes time) and violates DRY principle (Don't Repeat Yourself).
Solution
Deprecate ocean.py's artifacts directory. Instead look at the directory in ocean contracts repo. For both addresses and ABIs.
Steps

[x] Get ocean.py unittests all running first, it's been a while :) (Exception: some break, see #156)
[x] addresses: Write unit tests to capture current functionality
[x] addresses: Write tests for new behavior
[x] addresses: Implement new behavior, refine tests
[x] ABIs: Write unit tests to capture current functionality
[x] ABIs: Write tests for new behavior
[x] ABIs: Implement new behavior, refine tests
[x] Update READMEs that refer to the (to-be) deprecated directory
[ ] Update packaging logic to ignore new test directories
[ ] Merge etc
[ ] Deploy to pip

Note: this is WIP in the branch: https://github.com/oceanprotocol/ocean.py/tree/issue95

Here's where ocean.js grabs the info:
https://github.com/oceanprotocol/ocean.js/blob/main/src/utils/ConfigHelper.ts#L5
import * as DefaultContractsAddresses from<EMAIL_ADDRESS>
And later in the file how it uses it:
export class ConfigHelper {
  /* Load contract addresses from env ADDRESS_FILE (generated by ocean-contracts) */
  public getAddressesFromEnv(network: string): Partial<ConfigHelperConfig> {
    // use the defaults first
    let configAddresses: Partial<ConfigHelperConfig>
    if (DefaultContractsAddresses[network]) {
      const {
        DTFactory,
        BFactory,
        FixedRateExchange,
        Metadata,
        Ocean
      } = DefaultContractsAddresses[network]
      configAddresses = {
        factoryAddress: DTFactory,
        poolFactoryAddress: BFactory,
        fixedRateExchangeAddress: FixedRateExchange,
        metadataContractAddress: Metadata,
        oceanTokenAddress: Ocean,
        ...(process.env.AQUARIUS_URI && { metadataCacheUri: process.env.AQUARIUS_URI })
      }
    }

Here's the file in the contracts repo:
https://github.com/oceanprotocol/contracts/blob/master/artifacts/address.json
The contents look like
{
  "rinkeby": {
    "DTFactory": "0x3fd7A00106038Fb5c802c6d63fa7147Fe429E83a",
    "BFactory": "0x53eDF9289B0898e1652Ce009AACf8D25fA9A42F8",
    "FixedRateExchange": "0xeD1DfC5F3a589CfC4E8B91C1fbfC18FC6699Fbde",
    "Metadata": "0xFD8a7b6297153397B7eb4356C47dbd381d58bFF4",
    "Ocean": "0x8967BCF84170c91B0d24D4302C2376283b0B3a07"
  },
  ...

The ocean.py file of interest is https://github.com/oceanprotocol/ocean.py/blob/master/ocean_lib/config.py
It has parameter DEFAULT_ADDRESS_FILE which populates ADDRESS_FILE, which in turn populates:
config_defaults = {
    "eth-network": {
        NAME_NETWORK_URL: DEFAULT_NETWORK_URL,
        NAME_ARTIFACTS_PATH: DEFAULT_ARTIFACTS_PATH,
        NAME_ADDRESS_FILE: DEFAULT_ADDRESS_FILE,
        NAME_GAS_LIMIT: GAS_LIMIT_DEFAULT,
    },
...

Which in turn is used as:
class Config(configparser.ConfigParser):
...
    @property
    def address_file(self):
        file_path = self.get(self._section_name, NAME_ADDRESS_FILE)
        if file_path:
            file_path = Path(file_path).expanduser().resolve()

        if not file_path or not os.path.exists(file_path):
            file_path = os.path.join(self.artifacts_path, "address.json")

        return file_path

And that property is used in the following places. (From here on I will debug to myself lol)
(venv) trentmc@trentmcLnv:~/code/ocean.py$ grep -r "\.address_file"
tests/models/conftest.py:        _NETWORK, ConfigProvider.get_config().address_file
tests/models/conftest.py:        _NETWORK, ConfigProvider.get_config().address_file
tests/models/conftest.py:        _NETWORK, ConfigProvider.get_config().address_file
deploy.py:        addresses_file = config.address_file
ocean_lib/ocean/util.py:            network, config.address_file
ocean_lib/ocean/util.py:            f"artifacts path is {ContractHandler.artifacts_path}, address file is {config.address_file}"
ocean_lib/ocean/util.py:            f"artifacts path is {ContractHandler.artifacts_path}, address file is {config.address_file}"
ocean_lib/ocean/util.py:        print(f"address file exists? {os.path.exists(config.address_file)}")
ocean_lib/ocean/util.py:        ConfigProvider.get_config().address_file,
ocean_lib/ocean/util.py:        ConfigProvider.get_config().address_file,
ocean_lib/ocean/ocean_assets.py:            Web3Helper.get_network_name(), self._config.address_file
ocean_lib/ocean/ocean.py:                ConfigProvider.get_config().address_file,
ocean_lib/ocean/ocean.py:            Web3Helper.get_network_name(), self._config.address_file

if the address file path is specified in the config file or in the envvar then that is what will be used. When none of the above is declared, then it relies on the artifacts path. The artifacts path, if not specified in the config or env, will be extracted from the venv or the python installation.

it relies on the artifacts path ...

Yep! Overall the path needs to be generalized to support files at a url. That's my approach in the PR. Many nuances to test for, but coming along:)

I was going down a path of pointing to urls. Then I had a super useful call with @ssallam yesterday about how ocean-contracts are created and used as a python library. Some  surprising behavior. Towards fixing that behavior, I created MultiRepo#83. It's a multi-repo issue because there will be changes in both ocean-contracts repo and ocean.py repo.
For this issue, I'm going to try to do it with minimal changes using existing ocean-contracts setup. (Plus preserve all the unit tests I already created).

S: To update the packaging logic to omit the tests.
T: Where to ignore?
S:
python setup.py install
python setup.py bdist_wheel

then take a look inside the build folder

Note to self on setup.py's packages variable:
What it currently has: ['ocean_lib', 'ocean_lib.web3_internal', 'ocean_lib.web3_internal.web3_overrides', 'ocean_lib.web3_internal.test', 'ocean_lib.data_provider', 'ocean_lib.data_store', 'ocean_lib.assets', 'ocean_lib.models', 'ocean_lib.ocean', 'ocean_lib.test']
What it should have: ['ocean_lib', 'ocean_lib.web3_internal', 'ocean_lib.web3_internal.web3_overrides',  'ocean_lib.data_provider', 'ocean_lib.data_store', 'ocean_lib.assets', 'ocean_lib.models', 'ocean_lib.ocean']

Finished main work in commit https://github.com/oceanprotocol/ocean.py/commit/39f8a92b9b30defb2bacc2788c63a08d4afd455e
Now only pip remains, if we choose to do it here.

Don't need to do it here. Closing.

Don't need to do it here. Closing.

I spoke too soon. We did make changes to the code: removing the artifacts/ directory. That definitely needs a new deploy to pip, with a quick readiness to revert in case it fails.

Deployed to pip now.


feat: sepolia alchemy rpc url

Alchemy now supports sepolia
https://www.alchemy.com/overviews/sepolia-testnet

Thanks @rin-st
I also updated hardhat-deploy, where I made a PR a few weeks ago to support sepolia (so we can verify contracts) https://github.com/wighawag/hardhat-deploy/pull/418.. but forgot to update it here :D


Including the library

I tried to include the library. But I get the following error.
Error:(30, 13) Failed to resolve: com.github.wenchaojiang:AndroidSwipeableCardStack:0.1.5
Show in FileShow in Project Structure dialog
Project level build.gradle is,
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
        maven { url "https://jitpack.io" }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()

    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

And the app level build.gradle file is,
apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "uk.co.stableweb.qi"
        minSdkVersion 16
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.3.0'
    compile 'com.android.support:design:25.3.0'
    compile 'com.android.support:support-vector-drawable:25.3.0'
    compile 'com.github.wenchaojiang:AndroidSwipeableCardStack:0.1.5'
    testCompile 'junit:junit:4.12'
}

I tried following version numbers.
0.1.5
0.1.6
Any suggestion is highly appreciated.

im also running into the same problem, I can include version 0.1.5 but not version 0.1.6(this version has a fix I'm interested in)
on jitpack.io the project page says that version 0.1.6 build fails

Thanks for reporting. For now, try download the .arr
Sent from my iPhone

On 2 Apr 2017, at 14:31, Fouad Kada<EMAIL_ADDRESS>wrote:
im also running into the same problem, I can include version 0.1.5 but not version 0.1.6(this version has a fix I'm interested in)
on jitpack.io the project page says that version 0.1.6 build fails
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.


UDS arch patterns

Updated html page's title tag.

Page title was incorrect. This fixes it.

Can you resolve conflicts here @UkiahSmith?


Added New-RewriteAction and New-RewritePolicy

New functions needed to create new rewrite actions/policies
Description

Related Issue
#58
How Has This Been Tested?
Tested in my local environment (NS 11.1 50.10).
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

Looks good to me. Thanks @dbroeglin


Update newtonsoft.json

Update newtonsoft.json/Servercommon
Address: #4452

@shishirx34 , could you help take another look, thanks


Make long-running test names match workflow names

Motivation
It's hard to diagnose test failures in Zebra, because our Rust tests, environmental variables, and workflow jobs all have different names for the same test.
Tasks

Rename tests that call deploy-gcp-tests.yml based on the GitHub actions workflow test_id:

environmental variables in https://github.com/ZcashFoundation/zebra/blob/main/.github/workflows/continous-integration-docker.yml and https://github.com/ZcashFoundation/zebra/blob/main/docker/entrypoint.sh
Rust test names in https://github.com/ZcashFoundation/zebra/blob/main/docker/entrypoint.sh and https://github.com/ZcashFoundation/zebra/tree/main/zebrad/tests

We can only rename tests if the workflow checks that we're actually running a Rust test. Otherwise, we might accidentally skip the test.

Update the test documentation at the top of acceptance.rs to call entrypoint.sh. This automatically uses the latest test settings and improvements in those docs, rather than us having to update them in two places.

This makes diagnosing test errors tricky, but it can wait until next sprint.

This isn't actually causing any problems right now, and it conflicts with other more important work.

We're not making changes of this size after tagging the release candidate.


Implement threshold feature for pi4j/dio/spi component

we could implement for some device a threshold feature.
for example
if TEMP >= 25 ºC, temp camel could start send alert to the external process
from("i2c://1/0x12?label=Temp&threshold=[>25]").to("amqp:queue:alerting.acme.temp")

Actually this can be implemented using Camel DSL filter:
from("i2c://1/0x12?label=Temp").filter().simple("${body} > 25").to("amqp:queue:alerting.acme.temp")

And you can use any expression language you want.
What do you think? Is there any additional value in adding filtering logic on the component level?

@hekonsek yep you are right,
but I am thinking about CPU consumption too ;-)
we deploy camel route over small, tiny and low cost CPU.

Hmmm, but you have to read the value anyway to determine if it is too high or not. If so, then doing it on the Camel level won't consume much more CPU. But maybe I'm wrong :) .


Optimize Indexable#sample(n, random)

Implements Algorithm L for multiple-element sampling, which reduces the time complexity from O(size) to O(k(1 + log(size / k))). This requires the ability to skip multiple elements at once, which is only doable in Indexable but not Enumerable.
I personally think we may expose Random#rand_exclusive later. It is required here because the algorithm will overflow if #rand returns exactly 0.0.

Do you have benchmarks for this?

Do you have benchmarks for this?

Fixture:
require "benchmark"

module Indexable(T)
  def sample_old(n : Int, random = Random::DEFAULT)
    if n != 1
      # copied from Enumerable#sample
      ary = Array(T).new(n)
      return ary if n == 0

      each_with_index do |elem, i|
        if i < n
          ary << elem
        else
          j = random.rand(i + 1)
          if j < n
            ary.to_unsafe[j] = elem
          end
        end
      end

      return ary.shuffle!(random)
    end

    if empty?
      [] of T
    else
      [sample(random)]
    end
  end
end

# ARY_SIZE is selected from 10, 100, 1000, 10000
# N is selected from 2, 10, ARY_SIZE / 2

ary = Array(Int32).new(ENV["ARY_SIZE"].to_i) { 0 }
count = ENV["N"].to_i
puts "Sampling #{count} elements from #{ary.class} with size #{ary.size}"
rng = Random::DEFAULT

Benchmark.ips do |x|
  x.report("sample_old") do
    1000.times { ary.sample_old(count, rng) }
  end

  x.report("sample") do
    1000.times { ary.sample(count, rng) }
  end
end

Results:
Sampling 2 elements from Array(Int32) with size 10
sample_old   4.83k (207.07µs) (± 3.94%)  46.9kB/op        fastest
    sample   2.51k (397.98µs) (± 3.40%)  46.9kB/op   1.92× slower

Sampling 2 elements from Array(Int32) with size 100
sample_old 682.80  (  1.46ms) (± 1.00%)  46.9kB/op   1.92× slower
    sample   1.31k (761.36µs) (± 2.50%)  46.9kB/op        fastest

Sampling 2 elements from Array(Int32) with size 1000
sample_old  75.66  ( 13.22ms) (± 2.34%)  46.9kB/op  11.73× slower
    sample 887.65  (  1.13ms) (± 2.33%)  46.9kB/op        fastest

Sampling 2 elements from Array(Int32) with size 10000
sample_old   7.83  (127.66ms) (± 0.72%)  47.1kB/op  85.85× slower
    sample 672.50  (  1.49ms) (± 1.53%)  46.9kB/op        fastest

Sampling 10 elements from Array(Int32) with size 10
sample_old   5.02k (199.08µs) (± 2.04%)  78.1kB/op   1.13× slower
    sample   5.67k (176.25µs) (± 3.15%)  78.1kB/op        fastest

Sampling 10 elements from Array(Int32) with size 100
sample_old 594.11  (  1.68ms) (± 1.25%)  78.1kB/op        fastest
    sample 467.33  (  2.14ms) (± 2.03%)  78.1kB/op   1.27× slower

Sampling 10 elements from Array(Int32) with size 1000
sample_old  73.79  ( 13.55ms) (± 0.92%)  78.1kB/op   3.35× slower
    sample 246.88  (  4.05ms) (± 2.12%)  78.1kB/op        fastest

Sampling 10 elements from Array(Int32) with size 10000
sample_old   7.79  (128.31ms) (± 1.01%)  78.1kB/op  21.42× slower
    sample 166.96  (  5.99ms) (± 1.44%)  78.1kB/op        fastest

Sampling 5 elements from Array(Int32) with size 10
sample_old   4.41k (226.50µs) (±12.50%)  62.6kB/op        fastest
    sample   1.94k (516.04µs) (± 9.24%)  62.6kB/op   2.28× slower

Sampling 50 elements from Array(Int32) with size 100
sample_old 544.07  (  1.84ms) (± 1.32%)  234kB/op        fastest
    sample 258.26  (  3.87ms) (±10.84%)  234kB/op   2.11× slower

Sampling 500 elements from Array(Int32) with size 1000
sample_old  56.94  ( 17.56ms) (± 1.72%)  1.98MB/op        fastest
    sample  27.54  ( 36.31ms) (± 1.92%)  1.98MB/op   2.07× slower

Sampling 5000 elements from Array(Int32) with size 10000
sample_old   5.62  (177.99ms) (± 7.68%)  19.1MB/op        fastest
    sample   2.69  (371.93ms) (± 5.97%)  19.1MB/op   2.09× slower

A few takeaways here:

The new algorithm is indeed much faster than the old one when size is very large and n is small.
When their difference is not so huge, the extra RNG calls and the mathematical functions pose a bottleneck so the old algorithm is faster even on Indexable. (The case with size = 10 and n = 10 is flawed; there shouldn't be any differences if both algorithms simply forward to shuffle.)
n can itself be O(size); in this case both algorithms are O(size) and the existing one once again beats the new algorithm if the n / size ratio is high enough. The breakaway ratio seems to be around 0.075, but this is only for Int32 elements, and larger structs might be a different story. The most important case would be Pointer(Void) since that has the same size as any reference object.
The results here are valid only for Indexable types that have a contiguous storage with constant-size elements. The same cannot be said for BitArray and Tuple for example.

Maybe we should employ some kind of heuristic here to select with algorithm to use. That requires a lot more research.

Fixture:
require "benchmark"

module Indexable(T)
  def sample_old(n : Int, random = Random::DEFAULT)
    if n != 1
      # copied from Enumerable#sample
      ary = Array(T).new(n)
      return ary if n == 0

      each_with_index do |elem, i|
        if i < n
          ary << elem
        else
          j = random.rand(i + 1)
          if j < n
            ary.to_unsafe[j] = elem
          end
        end
      end

      return ary.shuffle!(random)
    end

    if empty?
      [] of T
    else
      [sample(random)]
    end
  end
end

# ARY_SIZE is selected from 10, 100, 1000, 10000
# N is selected from 2, 10, ARY_SIZE / 2

ary = Array(Int32).new(ENV["ARY_SIZE"].to_i) { 0 }
count = ENV["N"].to_i
puts "Sampling #{count} elements from #{ary.class} with size #{ary.size}"
rng = Random::DEFAULT

Benchmark.ips do |x|
  x.report("sample_old") do
    1000.times { ary.sample_old(count, rng) }
  end

  x.report("sample") do
    1000.times { ary.sample(count, rng) }
  end
end

Results:
Sampling 2 elements from Array(Int32) with size 10
sample_old   4.83k (207.07µs) (± 3.94%)  46.9kB/op        fastest
    sample   2.51k (397.98µs) (± 3.40%)  46.9kB/op   1.92× slower

Sampling 2 elements from Array(Int32) with size 100
sample_old 682.80  (  1.46ms) (± 1.00%)  46.9kB/op   1.92× slower
    sample   1.31k (761.36µs) (± 2.50%)  46.9kB/op        fastest

Sampling 2 elements from Array(Int32) with size 1000
sample_old  75.66  ( 13.22ms) (± 2.34%)  46.9kB/op  11.73× slower
    sample 887.65  (  1.13ms) (± 2.33%)  46.9kB/op        fastest

Sampling 2 elements from Array(Int32) with size 10000
sample_old   7.83  (127.66ms) (± 0.72%)  47.1kB/op  85.85× slower
    sample 672.50  (  1.49ms) (± 1.53%)  46.9kB/op        fastest

Sampling 10 elements from Array(Int32) with size 10
sample_old   5.02k (199.08µs) (± 2.04%)  78.1kB/op   1.13× slower
    sample   5.67k (176.25µs) (± 3.15%)  78.1kB/op        fastest

Sampling 10 elements from Array(Int32) with size 100
sample_old 594.11  (  1.68ms) (± 1.25%)  78.1kB/op        fastest
    sample 467.33  (  2.14ms) (± 2.03%)  78.1kB/op   1.27× slower

Sampling 10 elements from Array(Int32) with size 1000
sample_old  73.79  ( 13.55ms) (± 0.92%)  78.1kB/op   3.35× slower
    sample 246.88  (  4.05ms) (± 2.12%)  78.1kB/op        fastest

Sampling 10 elements from Array(Int32) with size 10000
sample_old   7.79  (128.31ms) (± 1.01%)  78.1kB/op  21.42× slower
    sample 166.96  (  5.99ms) (± 1.44%)  78.1kB/op        fastest

Sampling 5 elements from Array(Int32) with size 10
sample_old   4.41k (226.50µs) (±12.50%)  62.6kB/op        fastest
    sample   1.94k (516.04µs) (± 9.24%)  62.6kB/op   2.28× slower

Sampling 50 elements from Array(Int32) with size 100
sample_old 544.07  (  1.84ms) (± 1.32%)  234kB/op        fastest
    sample 258.26  (  3.87ms) (±10.84%)  234kB/op   2.11× slower

Sampling 500 elements from Array(Int32) with size 1000
sample_old  56.94  ( 17.56ms) (± 1.72%)  1.98MB/op        fastest
    sample  27.54  ( 36.31ms) (± 1.92%)  1.98MB/op   2.07× slower

Sampling 5000 elements from Array(Int32) with size 10000
sample_old   5.62  (177.99ms) (± 7.68%)  19.1MB/op        fastest
    sample   2.69  (371.93ms) (± 5.97%)  19.1MB/op   2.09× slower

A few takeaways here:

The new algorithm is indeed much faster than the old one when size is very large and n is small.
When their difference is not so huge, the extra RNG calls and the mathematical functions pose a bottleneck so the old algorithm is faster even on Indexable. (The case with size = 10 and n = 10 is flawed; there shouldn't be any differences if both algorithms simply forward to shuffle.)
n can itself be O(size); in this case both algorithms are O(size) and the existing one once again beats the new algorithm if the n / size ratio is high enough. The breakaway ratio seems to be around 0.075, but this is only for Int32 elements, and larger structs might be a different story. The most important case would be Pointer(Void) since that has the same size as any reference object.
The results here are valid only for Indexable types that have a contiguous storage with constant-size elements. The same cannot be said for BitArray and Tuple for example.

Maybe we should employ some kind of heuristic here to select with algorithm to use. That requires a lot more research.


Multiple selectors of Vue Instance

What problem does this feature solve?
It would solve VueJS conflicts with Google Maps and Recaptcha.Sometimes, you can't have a vue container that wrap the whole site in one div, because for example, some plugins of Wordpress use the tag script besides the html template of them (inside of vue container) and vue doesn't allow that.
What does the proposed API look like?
https://codepen.io/lucasviewup/pen/qjNyvw
the proposal is: allow vue to have multiple "islands" in the webpage

Unfortunately this is not possible given the way Vue's template compilation / rendering works. You can, however, mount multiple Vue instances that share the same data object.


api/view: improve the collect of the Schema1 events

Jira Issue: https://issues.redhat.com/browse/AAP-25231

Description
Harmonize how we collect we prepare the Schema1 events and how we
do the payload validation and the exception handling.
Changes:

Reduce the complexity of the middleware
Don't trigger an Schema1 event if the Feedback payload is not validated: the logic was complicated and these events should not be sent at all in normal situation. We can instead later send a generic payloadValidationFailure event that would work with all the end-points.
Revert https://github.com/ansible/ansible-ai-connect-service/pull/692, which will be replace by a better solution
No more event when a payload Validation fails. The current design (one single end-point can have several different structures per type of payload) is too complicated and we can replace this we an generic validationFailure event.

Testing

Steps to test

Pull down the PR
...
...

Scenarios tested

Production deployment

[x] This code change is ready for production on its own
[ ] This code change requires the following considerations before going to production:

unit-tests -> FAILED (failures=54, errors=80, skipped=1)

PR Deployment created in namespace wisdom-pr-1147
Look up the wisdom-service url in the cluster