❓ Is there a way to access actual bytes of a frame from js?

Question
Say, I want to do some basic image recognition in pure js.
The only option Im seeing right now is doing takePhoto so it saves it to a file, and then using react-native-fs to access actual data from this file
What I tried
No response
VisionCamera Version
2.13.2
Additional information

[ ] I am using Expo
[X] I have read the Troubleshooting Guide
[X] I agree to follow this project's Code of Conduct
[X] I searched for similar questions in the issues page as well as in the discussions page and found none.

Hey!
I experimented with exposing actualy bytes to the JS Runtime, but it turned out to be really slow and JS simply isn't fast enough to process information quick enough.
Frame Processor Plugins are native and fast, while still being relatively simple.


onPotionRegister doesn't check if floating potion is disabled

Instead, RegistryHandler.java:47 registers the return from getFloatingPotion without checking if config.floatingPotionEnabled. This causes a crash on startup as the resulting variable is null.
Accidentally disabled the potion as I was scrolling down to disable some of the other mobs.

Are you using ender zoo or the new enderio zoo?


bump themis iOS to 0.12.2, update podspec, update examples

(as part of 0.12.0 release flow)
Due to problems with latest GRKOpenSSLFramework 2.19 release I've downgraded dependency to 2.18, pushed new themis.podspec and updated examples.
Unfortunately, 2.19 release doesn't have some symbols and causes failure of archiving Xcode app, see #538.
Good thing:

it's fixed

Bad thing:

this fix is temporary until GRKOpenSSLFramework is fixed
such cruel dependency linking might cause dependency linking failure for projects that use GRKOpenSSLFramework separately.

such cruel dependency linking might cause dependency linking failure for projects that use GRKOpenSSLFramework separately

Aren’t projects that use GRKOpenSSL independently going to fail to archive even without Themis if they are using the broken <IP_ADDRESS> version? I guess by pinning the version we ‘fix' the linkage issue for them as well.
Though, it’s still true that dependency resolution might fail if the pinned version is incompatible with other requirements imposed by the project or other dependencies.

Aren’t projects that use GRKOpenSSL independently going to fail to archive even without Themis if they are using the broken <IP_ADDRESS> version?

Can't tell now, need investigation. From my first try (see T1326), looks like projects that link GRKOpenSSL directly are being archived ok, projects that use themis->GRKOpenSSL produce error during archiving.


[Docs] Links for appsmith alternatives are broken

Documentation Link
https://docs.appsmith.com/faq#what-if-i-get-stuck-while-building-an-app-on-appsmith
Describe the problem
The links for  Wix, Squarespace, or Webflow are broken
Describe the improvement
Working links should be provided.

I would like to take this. Should I link these directly the specific websites? @Nikhil-Nandagopal @mohanarpit

@draco-malfoy Welcome to Appsmith!
Yes. Please link to those websites directly.

Just realized that we have a separate repo for docs, should I log in another issue there?

You can link to this issue from the other repository. Also, please don't forget to read the Contribution Guidelines. It has all the details on how to contribute to Appsmith.

https://github.com/appsmithorg/appsmith-docs/pull/46


Always footer exception

When the footer is showed I got always an exception:
Cannot call this method in a scroll callback. Scroll callbacks might be run during a measure & layout pass where you cannot change the RecyclerView data. Any method call that might change the structure of the RecyclerView or the adapter contents should be postponed to the next frame.

Can you please specify device and Android version?


AIR test volunteer application

Dear AIR Coin team：
Hello, I want to sign up as a volunteer for the AIRcash software test. I understand some blockchain knowledge and have a certain foundation in English.
I am an old AIR trillion holder, and I have now migrated to the new AIR.  I very much look forward to volunteers who can participate in this test.

Dear AIR Coin team：
Hello, I want to sign up as a volunteer for the AIRcash software test. I understand some blockchain knowledge and have a certain foundation in English.
I am an old AIR trillion holder, and I have now migrated to the new AIR. I very much look forward to volunteers who can participate in this test.

Dear AIR Coin team：
Hello, I want to sign up as a volunteer for the AIRcash software test. I understand some blockchain knowledge and have a certain foundation in English.
I am an old AIR trillion holder, and I have now migrated to the new AIR. I very much look forward to volunteers who can participate in this test.

Dear AIR Coin team：
Hello, I want to sign up as a volunteer for the AIRcash software test. I understand some blockchain knowledge and have a certain foundation in English.
I am an old AIR trillion holder, and I have now migrated to the new AIR. I very much look forward to volunteers who can participate in this test.

BSC 0x33594D428931305c62C699262ef3954b31625F21
-------- Mensagem original --------De : rointixo @.> Data: 17/09/2021  10:40  (GMT-03:00) Para: Aircoin-official/AirCash @.> Cc: Subscribed @.***> Assunto: Re: [Aircoin-official/AirCash] AIR test volunteer application (#80)
Dear AIR Coin team：
Hello, I want to sign up as a volunteer for the AIRcash software test. I understand some blockchain knowledge and have a certain foundation in English.
I am an old AIR trillion holder, and I have now migrated to the new AIR. I very much look forward to volunteers who can participate in this test.
—You are receiving this because you are subscribed to this thread.Reply to this email directly, view it on GitHub, or unsubscribe.Triage notifications on the go with GitHub Mobile for iOS or Android.

OK, you are really outstanding and helpful.

Anyone who applied for the AirCash testing please join the discord channel for test volunteers.
https://discord.gg/eRSY7NtxZA


create rough monthly staffing for joyent project

formal request from HQ.  names in a timeline.

accepted by @countspongebob and @richardkaufmann


Add tag to all Azure resources that are created via Terraform

As a devops engineer (or anyone, really) looking through resources in Azure I want to know which are manually created and which have been created from IaC. I think this means we should add a tag - something like "git-origin" that adds the URL for the repo the object was created. For instance in our case all the current IaC would be tagged as follows:
git-origin:https://github.com/CDCgov/prime-reportstream.git

I was able to get this list of resources that are not tagged in Azure

We have added tags using terraform on dns zones in test env. See PR https://github.com/CDCgov/prime-reportstream/pull/7222
Most of the resources hav been manually tag from Azure portal
Some of the tag do not need to be tagged or cannot be tagged now https://icfonline-my.sharepoint.com/:x:/r/personal/58917_icf_com/Documents/AzureResources-Tags.xlsx?d=w3855102de4fa4c0bb3d565573af5bb65&csf=1&web=1&e=KxtXCw


{Cloud} Add tests to cloud command module

Description
Add tests to cloud command module to achieve 100% command test coverage.

Cloud


Add Support for Nested Metadata Configuration in OAuth2 Client Using JSON Format

This update introduces the ability to configure the metadata field in OAuth2 clients using the metadata_json parameter, allowing for nested key-value structures.
The current implementation only supported flat key-value pairs, which limited use cases requiring more complex metadata. With the new approach, users can specify nested metadata by providing it in JSON format.
The change is backward-compatible, ensuring that existing users relying on the metadata field without JSON can continue without disruption. Both terraform apply and terraform import handle the new format seamlessly.
During terraform import, the provider detects nested metadata and stores it in metadata_json if needed, while simple structures remain in metadata.
Example of usage:
resource "hydra_oauth2_client" "client_with_metadata_json" {
	client_name = "client_with_metadata_json"
	metadata_json = jsonencode({
		"nested" = {
			"key" = "value"
		},
		"first_party" = true
	})
	redirect_uris = ["http://localhost:8080/callback"]
	response_types = ["code"]
	token_endpoint_auth_method = "none"
}

I tweaked the GitHub Actions a bit since some things were recently deprecated, causing the test and release pipelines to fail.
Also, I hope you won’t be offended, but I registered my fork in the Terraform registry. We're using Atlantis to manage Terraform configurations, and having a custom provider means we would need to release a custom Atlantis image. For a secure environment, that’s a lot of hassle and requires much more effort. Once the PR is merged, I'll request the deletion of the fork. Thank you for understanding!


Wrong error message when approval transaction fails

Describe the bug
If the approval transaction (first tx) fails in publish, the error message that the user gets is wrong.
Expected behavior
we should catch this error and show the correct message or use a generic message for all cases.
Screenshots

this should get solved after this #1105 . Check after this

solved in #1105

this issue can be closed


Mobiil-ID, Smart ID support

Is it possible at all? What would it take to implement it?

Web-eID is a solution that enables the use of eID-Cards (such as the Estonian ID-Card) for authentication and signing purposes over the web. The Mobiil-ID and Smart-ID solutions differ from it and are also mainta
Ined by different vendor(s). Implementing supporting code to the Web-eID Server API(s) could likely result in a more complex solution that would be more difficult and more time consuming to maintain. But who knows, I don't work at nor for RIA, so I've no idea what happens over there.


Support if expression

(you don't have to strictly follow this form)

Use case

A clear and concise description of what is the intended usage scenario is.

Describe the solution you'd like

A clear and concise description of what you want to happen.

Describe alternatives you've considered

A clear and concise description of any alternative solutions or features you've considered.

Additional context

Add any other context or screenshots about the feature request here.

Other expressions:

trim

I'll complete it.

Other expressions:

if: done
case when: done
trim: done
map[key] operator
tuple.key operator
rlike
regexp_replace
regexp_extract
coalesce
row_number() over xx
DATE_ADD/DATE_SUB/DATEDIFF
modulo
UNIX_TIMESTAMP
concat_ws
collect_list
FROM_UNIXTIME


Single profile optimize

In some use cases there is only one profile, no need to switch among profiles. Now there is still a  arrow on right of user name to pull down only one option, and a empty white circle on top-right. I like the user profile as clean as possible without the arrow and white circle.

Fixed it for the next update


Extension Bisect dont work, and there is no way to close it

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.72.2
OS Version: Win11

Steps to Reproduce:
I just Start Extension Bisect, and it happend. I cant reproduce on other PC
After I use Start Extension Bisect, there is no enquire like usual, only the extension was baned.

I try to close this mode, because I cannt use many of my extensions. But even after I reinstall my vsc, even after I delete the .vscode folder, this mode still there.

I found way to stop this, just use <C-P>, and use command Help: continue Extension Bisect


All – add "How do I see it?" statement to LO

All data should be accompanied by a "How do I see it?" statement. See https://ycba-lux.s3.amazonaws.com/v3/object/95/954d01f0-d95c-4fb0-9131-be4841ffb3e1.json
The PMC's statement should read something like:
"The Paul Mellon Centre’s Archives and Library collections are open to everyone and there is no charge for accessing the materials. They are based in London, UK, and we offer an in person visits, remote enquiries, and a copying service.h ttps://www.paul-mellon-centre.ac.uk/archives-and-library/visiting-the-public-study-room"
Model:
{
"type": "LinguisticObject",
"classified_as": [
{
"id": "http://vocab.getty.edu/aat/300133046",
"type": "Type",
"_label": "Access Statement",
"classified_as": [
{
"id": "http://vocab.getty.edu/aat/300418049",
"type": "Type",
"_label": "Brief Text"
}
]
}
],
"content": "On view at the Yale University Art Gallery"
},

FYI, hyperlinks links should be encoded following this patter:
"content":" <a href='**LINK**'> **Your text for link here** </a>"

Each archive xml record that has the field <AccessConditions> gets its value of that field applied as the Access statement:
e.g., https://data.paul-mellon-centre.ac.uk/archive/09b93c0e-e5dc-4b07-95ce-99ec42a16c72
...
{
      "type": "LinguisticObject",
      "content": "This collection is open for research. Readers must fill in an \u0027Reader Agreement Form\u0027 which outlines the reading room rules and conditions concerning privacy and Data Protection",
      "classified_as": [
        {
          "id": "http://vocab.getty.edu/aat/300133046",
          "type": "Type",
          "_label": "Access Statement",
          "classified_as": [
            {
              "id": "http://vocab.getty.edu/aat/300418049",
              "type": "Type",
              "_label": "Brief Text"
            }
          ]
        }
      ]
    }
...
    ```

I could add this additional statement where one already exists (rather than replace that one)

Also for library should this be applied to the HumanMadeObjects only (which can be seen), or the LinguisticObjects as well?

 - add this additional one where

https://github.com/tomcrane/linked-art-net/commit/15ba95a925531f22c813c6527b55183e4f2313f6


Unique IDs for Duck hardware

The software currently requires the developer to manage IDs for individual Ducks by naming them manually, but something important we need to do is find a way of programmatically provisioning unique names in order for the routing algorithm to function properly. There are specific constraints that need to be observed:

8 bytes in length
deterministic generation
unique under any hardware condition
implemented as a utility function within core ClusterDuck library

The deterministic requirement is important because it maintains fault tolerance in the event that a Duck goes offline and restarts again. A probabilistic generator will mean a new ID every time this happens, there's a new ID that could be added to the hop history of a message. This can cause problems in diagnostic results when evaluating network propagation. The requirement of 8 bytes is primarily to bring the Clusterduck software closer to LoRaWAN compliance. As a long-term goal, we would like to be compatible with LoRaWAN standards, and this would be one thing we can check off the list.

The Device unique ID is an interesting problem to solve. The reason behind the 8 bytes is that it allows us to follow the LoRaWAN Device EUI model if necessary. Also many LoRaWAN compatible hardware (e.g Radio chips) will already have a device ID we can use.
See the specification here: https://lora-alliance.org/wp-content/uploads/2020/11/TR005_LoRaWAN_Device_Identification_QR_Codes.pdf
Not saying we should implement that part of LoRaWAN, but the intent behind the Device UID is to

allow pairing of a device and its safe provisioning when it joins a cluster for a specific application.
be used for encryption.
For these reasons, typically the Device ID is flashed in secure memory at factory time. The device manufacturer maintains a Database of all devices produced. When a device is purchased, it can be verified against the database when it is activated.

The problem with having the Duck generate its own device UID is that we can't guarantee it is a known device.

@amirna2 Why do we need to guarantee that it is a known device?

Because one could impersonate a duck and join your cluster to hack into your network or cause harm.
If you don't have a way to know the device joining the network is one that is allowed to join, it's taking a significant security risk.

Sorry, not the most precise way to ask that question and very new to project. Why do we need the ID @BrentonPoke  is suggesting to guarantee that it is know device? Is the check for a known device the same handled by reviewing the ID currently? If so, aren't we already (and perhaps more so) vulnerable to impersonation?

CDP currently doesn't have any mechanisms to perform device validation or for a device to securely be provisioned.
What Brenton is referring to is that currently we simply hard code some 8 bytes value (in form of a string). Now that's fine for playing around and as long as that device doesn't leave your lab you are okay. What needs to happen is we no longer hardcode the ID and chose one "by hand".
One way of doing this (and how it would be done in a product) is the manufacturer or owner of the device would provide that ID at factory time. These ID would be allocated by an authority like IEEE for example.
The key here is the ID should be already present and accessible to the developer who is going to work on the Duck firmware, not the developer coming up with some kind of algorithm to define what that ID should be, otherwise one could reverse engineer the firmware and find how to craft device IDs. And obviously hard coding one makes the task even simpler.
Typically a Device ID would have some parts used as a "meta data" that can be decoded, like Manufacturer Identification, device class, etc... and some parts would be randomly generated in advance as part of a pool of numbers, then associated to a device in factory.

Here is an other document that outlines security features for LoRa devices:
https://lora-alliance.org/wp-content/uploads/2020/11/la_faq_security_0220_v1.2_0.pdf
Specifically point #5 is of interest.

Thanks! @amirna2
I guess this is where my confusion is because I believe this is a fundamental problem in networking that is only really resolved by an authority, as you mentioned. And, even then, the identities are spoofable which is why they instead are addresses.
Now networking is not my area of expertise (if there is one); here to broaden my horizons in part. But, to me, it seems like the concerns you are raising lead to a line of questions about how to implement zero trust features. As far as I know, those are handled by gateways and Layer 7 technology. And, I wouldn't know if it's reasonable to include those in CDP.

Also, do you think this is worthy of good first issue?

My initial idea was that the device ID if kept secret, could participate in the encryption schema.
There is actually a different approach to this where Device UID is not necessarily kept secret.
The Device UID could also be put on a label, QR code, etc... to help with simple identification during the provisioning of the device. It essentially would be similar to how we use mac addresses.
When the device is first powered, it advertise itself on the network and request to join a cluster, as part of that the Device ID is provided. The key exchange for establishing end to end encryption is a completely separate topic.
Again referencing the LoRaWAN spec and join procedure for some inspiration and knowledge sharing:
https://www.centennialsoftwaresolutions.com/post/deveui-appeui-joineui-and-appkey.
In the light of this, I am not totally sure what we need at this point. As you said, generation of the Device ID isn't really part of the protocol. It's something that must be provided to the device and stored in it (and possibly shared for ease of device management and provisioning).

It is fun food for thought though. Have you ever heard of RAIN? I guess it's used in id-less BAN. Wondering if there are any learnings we could apply here, if we were interested.

Also, do you think this is worthy of good first issue?

It is just one function and could be done any undergrad with their C++ courses completed. It would also be great experience for that student.

@BrentonPoke

Also, do you think this is worthy of good first issue?

It is just one function and could be done any undergrad with their C++ courses completed. It would also be great experience for that student.

Per above, it doesn't seem the function to get a unique machine ID is really the issue though. It seems there's a big question mark on how the ID would actually be used.

There isn't a big question mark, Amir is talking about something long term that has to do with LoRaWAN. The ID is to be used to identify a route node in the packet structure.

Okay, just want to make sure I have all my ducks in a row. Do you assign issues here or is it just whoever submits a working PR first?

Thoughts on how to go forward @nfeuer @TimoWielink?

One thing I can put in the issue is the list of relevant files that will be of interest to an implementer. Will need to be brought up to speed on recent changes (which need to be documented), though.

Where are we on this?

One way we could do this is by taking a MAC address and putting it through some kind of hash function

@nfeuer did you already look into UUID generation? Or was this also an issue for space given that it's 32 bytes? http://www.ardulink.org/how-to-set-unique-id-to-arduino/

This is an old discussion, but still relevant. I want to summarize here what this DeviceID should be used for and why it is crucial to CDP.
The DeviceID is a unique identifier for the Duck. And it should be something that is internal to the Duck and only known to the Duck and the organization managing/owning that Duck. It is how primarily, a duck would be allowed to join a network.
Currently we hardcode a DeviceID in the Arduino sketch, this is okay for testing and experimenting.
But in a real world application, the DeviceID should be something generated during manufacturing and stored in a secure flash location on the device. The device ID is then stored in a central database by the organization that owns the duck.
In that real world scenario, when the duck is first coming alive it sends the deviceID along with other information to the PapaDuck in the cluster. The Papa Duck relays that information to the organization Device Management System that can then lookup if the Duck is actually one that is registered in the DB. If that is the case, a message can be send back to the Duck to tell it to join the network.
All of this of course has to be exchanged through encrypted messages.
Most Arduino device actually do have a Chip ID which can be used as a DeviceID:
const uint64_t chip_id = getID();
std::vector<byte> dev_id;
for (int i = 7; i >= 0; i--) {
    uint8_t val = (chip_id >> (i * 8)) & 0xFF;
    dev_id.push_back(val);
}

For ESP32 boards we can also use their MAC address
  uint32_t chipId=0;
  for(int i=0; i<17; i=i+8) {
    chipId |= ((ESP.getEfuseMac() >> (40 - i)) & 0xff) << i;
  }

uint8_t val = (chip_id >> (i * 8)) & 0xFF;
I'm not sure about this bitwise operation. What does the getID() function return that requires this?

The bitwise operation is pretty standard way to serialize a 64 bit value. I am just extracting each byte out of the chipID one by one to add it to the deviceID byte vector.
The getID() method is an Arduino specified method, but each core implements it differently based on the micro-controller capabilities. It does generally return a 64bit value, but often internally it is represented as 2x 32bits. That's the case on the Heltec CubeCell for example.
But then on the ESP32 I just used the MAC address.


add linux aarch64 MNT: Re-rendered with conda-build 24.5.1, conda-smi…

…thy 3.37.1, and conda-forge-pinning 2<IP_ADDRESS>.24.35

Checklist

[x] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

@conda-forge-admin, please restart ci


edupont04 from OPS portal: Merge from master to live

Docs Build status updates of commit 18f4a49:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

dynamics-gp/TOC.md
:white_check_mark:Succeeded
View

dynamics-gp/installation/system-requirements.md
:white_check_mark:Succeeded
View

dynamics-gp/payroll/US19JanTaxR1.md
:white_check_mark:Succeeded
View

dynamics-gp/upgrade/system-requirements.md
:white_check_mark:Succeeded
View

dynamics-gp/whats-new/introduction.md
:white_check_mark:Succeeded
View

dynamics-gp/whats-new/media/2019_Features_CopyReportOptions.png
:white_check_mark:Succeeded
View

dynamics-gp/whats-new/media/2019_Features_Excel.png
:white_check_mark:Succeeded
View

dynamics-gp/whats-new/media/2019_Features_Filter.png
:white_check_mark:Succeeded
View

dynamics-gp/whats-new/media/2019_Features_GoTo.png
:white_check_mark:Succeeded
View

dynamics-gp/whats-new/media/2019_Features_Inactive.png
:white_check_mark:Succeeded
View

dynamics-gp/whats-new/media/2019_Features_ItemPriceFilter.png
:white_check_mark:Succeeded
View

dynamics-gp/whats-new/media/2019_Features_NewPO.png
:white_check_mark:Succeeded
View

dynamics-gp/whats-new/media/2019_Features_UserID.png
:white_check_mark:Succeeded
View

dynamics-gp/whats-new/media/2019_Finance_EmplMaint.png
:white_check_mark:Succeeded
View

dynamics-gp/whats-new/media/2019_Finance_HRBenefits.png
:white_check_mark:Succeeded
View

dynamics-gp/whats-new/media/2019_Finance_ReprintPayrollPosting.png
:white_check_mark:Succeeded
View

dynamics-gp/whats-new/media/2019_System_Dates.png
:white_check_mark:Succeeded
View

dynamics-gp/whats-new/media/2019_System_ReportOptions.png
:white_check_mark:Succeeded
View

dynamics-gp/whats-new/media/2019_System_UserAccessCompanies.png
:white_check_mark:Succeeded
View

dynamics-gp/whats-new/media/2019_System_UserAccessInactive.png
:white_check_mark:Succeeded
View

dynamics-gp/whats-new/media/2019_Workflow_Conditions.png
:white_check_mark:Succeeded
View

dynamics-gp/whats-new/media/2019_Workflow_EditApprover.png
:white_check_mark:Succeeded
View

dynamics-gp/whats-new/media/2019_Workflow_ExportWF.png
:white_check_mark:Succeeded
View

dynamics-gp/whats-new/media/2019_Workflow_ImportWF.png
:white_check_mark:Succeeded
View

dynamics-gp/whats-new/media/2019_Workflow_SecurityRoles.png
:white_check_mark:Succeeded
View

dynamics-gp/whats-new/media/2019_Workflow_SecurityTasks.png
:white_check_mark:Succeeded
View

dynamics-gp/whats-new/media/2019_Workflow_UserSecurity.png
:white_check_mark:Succeeded
View

dynamics-gp/whats-new/media/2019_Workflow_Users.png
:white_check_mark:Succeeded
View

dynamics-gp/whats-new/version-october-2019.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Error in bit select name

When running this test in newest Surelog, some of the bit select nodes have incorrect vpiFullName field content:
|vpiContAssign:
\_cont_assign: , line:8:11, endln:8:24
  |vpiParent:
  \_module: work@top (work@top), file:(...)
  |vpiRhs:
  \_hier_path: (a[0][0].x), line:8:15, endln:8:24
    |vpiParent:
    \_cont_assign: , line:8:11, endln:8:24
    |vpiName:a[0][0].x
    |vpiActual:
    \_bit_select: (a), line:8:15, endln:8:16
      |vpiParent:
      \_ref_obj<EMAIL_ADDRESS>        |vpiParent:
        \_hier_path: (a[0][0].x), line:8:15, endln:8:24
        |vpiName:a[0]
<EMAIL_ADDRESS>      |vpiName:a
      |vpiIndex:
      \_constant: , line:8:17, endln:8:18
        |vpiDecompile:0
        |vpiSize:64
        |UINT:0
        |vpiConstType:9
    |vpiActual:
    \_bit_select: (work@top.[0]), line:8:17, endln:8:18               <---
      |vpiParent:
      \_ref_obj<EMAIL_ADDRESS>             <---
        |vpiParent:
        \_hier_path: (a[0][0].x), line:8:15, endln:8:24
        |vpiName:[0]
<EMAIL_ADDRESS><EMAIL_ADDRESS>      |vpiIndex:
      \_constant: , line:8:20, endln:8:21
        |vpiDecompile:0
        |vpiSize:64
        |UINT:0
        |vpiConstType:9
    |vpiActual:
    \_ref_obj: (x), line:8:23, endln:8:24
      |vpiName:x
  |vpiLhs:
  \_ref_obj: (work@top.o), line:8:11, endln:8:12
    |vpiParent:
    \_cont_assign: , line:8:11, endln:8:24
    |vpiName:o
<EMAIL_ADDRESS>    |vpiActual:
    \_logic_net: (work@top.o), line:1:31, endln:1:32

Until now, only the first bit select had a name (of the variable). Note also the vpiParent of that node:
 |vpiParent:
      \_ref_obj<EMAIL_ADDRESS>
top.[0] won't be resolved.
This occurs also for this test.

Fixed by #3044


ValidFunctionName: Add additional unit test for interfaces extending multiple interfaces

Interfaces can extend multiple other interfaces. Looking at the sniff code, no changes are needed in the sniff to account for this, however, adding an additional unit test to warrant against sniff changes in the future which may not take this into account.
N.B.: I've verified all other usages of the T_INTERFACE token in the whole of WPCS and this was the only one which looked at extends/implements, so the only one for which interfaces extending multiple other interfaces could be problematic.
See:

http://php.net/manual/en/language.oop5.interfaces.php#example-208

Loosely related to:

https://github.com/squizlabs/PHP_CodeSniffer/pull/2128

Oh cricky... turns out support for interfaces was only added to the PHPCS File::findExtendedClassName() method in PHPCS 3.1.0.
Considering that we'll be dropping PHPCS 2.x support in the near future and there have been no bug reports, I don't think it's worth adding a fix to the sniff to make this work with PHPCS 2.x.
So, I'm going to go ahead and change the milestone to 2.0.0. Once work on that release has started and the PHPCS minimum supported version has been raised, the PR can be rebased and the build should then pass without problem.

I've rebased this PR now that the "drop PHPCS 2.x" PR has been merged. I expect the build to pass now, so this PR is ready for review.

Oops.. I seem to have pulled this from my own fork, so updating the PR got a bit screwed up. Never mind. This PR is now replaced by #1562


unsupported operand type(s) for -: 'int' and 'NoneType' in activities/models.py

In some edge-case one might get an operand exception if the aggregated sum of enrolled people is undefined, which gives the None value back. Since the it is directly used in a subtraction, django gives a 500 server error.

Related to #861


one-time binding ng-options

According to docs, when using a directive that takes an expression, we are able set one-time binding as so:
`
{{item.name}};
`
However, this doesn't seem to work with ng-options, tried (1.3.0 - 1.38)
ng-options="o as o for o in ::things"
If I place ::things in a binding it works.
ng-options="o as o for o in {{::things}}"

can you please create a plunker that shows this issue? Thanks!

http://plnkr.co/edit/AklGzbtB3TsjfuPA0L6M?p=preview

Ok, I am able to reproduce this and know what is wrong

Why cannot we use
ng-options="::o as o for o in ::things"
It is working for me.

I am not sure if this will provide a performance benefit as the expression things will continue to be evaluated, even though the actual option expression is one time bound.


Option to customize items inside fixed header and slash menu

https://vimeo.com/650227081/ed7d44ae7a

@AbhayVAshokan Let's take this up with priority. There is a requirement for the same in neeto-planner-web.


PCAWG filtered tmp dir blowing up

The PCAWG project https://ampliconrepository.org/project/655c060abba7c925095555da had grown to 215Gb in tmp/. We found this out only because the server ran out of space and no project pages were loading.
We need to determine what new files are being created in tmp over time, perhaps each time the project page is loaded or a sample is loaded, or a download happens.

Found that there's a tmp folder being created inside the sample of a project folder inside the original tmp folder. The new tmp folder created is used as the new tmp folder, and projects are created in it.
this creates a nested tmp folder directory
top level tmp:

Can't reproduce issue


bitwarden: 1.29.1 -> 1.30.0

Motivation for this change
Update the package to latest
Things done
Update version, hash, tested

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[X] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[X] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[X] Fits CONTRIBUTING.md.

Marking this to backport since too old versions of bitwarden tends to break.

Result of nixpkgs-review pr 150872 run on x86_64-linux 1

1 package built:

bitwarden


Unify terraform & Ansible commands

Do not use local variables when the result is only used once. Therefore, replace icinga_security_groups with flatten.
Always pass security group object rather than a name. See outputs.tf for http-s module
Update the usages of ansible.builtin.file

Remove the recurse option as it has (only) unwanted consequences for the file permissions
Omit the mode (file permissions) if it is equal to the default.

Align empty line at the beginning of task yml files.

We completed the changes, so that this issue is done.


Support windows

Changes allow the docker_container to function on windows -
MemorySwappiness is not supported on the windows platform
new_resource.network_mode is not found, however network_mode works fine
Signed-off-by: S.Cavallo<EMAIL_ADDRESS>Description
This change will allow this cookbook to use the docker_container resource on the windows platform.
Issues Resolved
n/a
There are no tests for this.
Can the travis build be updated to run on the windows platform?
https://blog.travis-ci.com/2018-10-11-windows-early-release
Ex.
os: windows
dist: 1803-containers

I'd also like to refactor some of the methods in order to able to validate the config json which is sent to the docker api.  That would allow us to assert that the json passed to the api is what we expect and enable some more comprehensive tests.  There are no existing tests around that and I kept my changes to a minimum - what are your thoughts on that?  I'm fine with refactoring and adding those tests in order to cover my changes as well.  If that's a blocker I can do that for this PR.  Otherwise - can create a separate PR to refactor and make those changes and add those tests.
Check List

[X ] All tests pass. See https://github.com/chef-cookbooks/community_cookbook_documentation/blob/master/TESTING.MD
[X ] New functionality includes testing.
[ ] New functionality has been documented in the README if applicable
[X ] All commits have been signed for the Developer Certificate of Origin. See https://github.com/chef-cookbooks/community_cookbook_documentation/blob/master/CONTRIBUTING.MD

will recreate in new branch


python311Packages.mitmproxy-macos: 0.4.1 -> 0.5.1, python311Packages.mitmproxy-rs: 0.4.1 -> 0.5.1

Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 280050 run on x86_64-linux 1

12 packages built:

mitmproxy (python311Packages.mitmproxy)
mitmproxy.dist (python311Packages.mitmproxy.dist)
mitmproxy2swagger
mitmproxy2swagger.dist
python310Packages.mitmproxy
python310Packages.mitmproxy-rs
python310Packages.mitmproxy-rs.dist
python310Packages.mitmproxy.dist
python311Packages.mitmproxy-rs
python311Packages.mitmproxy-rs.dist
wapiti
wapiti.dist

Result of nixpkgs-review pr 280050 run on aarch64-darwin 1

16 packages built:

mitmproxy (python311Packages.mitmproxy)
mitmproxy.dist (python311Packages.mitmproxy.dist)
mitmproxy2swagger
mitmproxy2swagger.dist
python310Packages.mitmproxy
python310Packages.mitmproxy-macos
python310Packages.mitmproxy-macos.dist
python310Packages.mitmproxy-rs
python310Packages.mitmproxy-rs.dist
python310Packages.mitmproxy.dist
python311Packages.mitmproxy-macos
python311Packages.mitmproxy-macos.dist
python311Packages.mitmproxy-rs
python311Packages.mitmproxy-rs.dist
wapiti
wapiti.dist

Result of nixpkgs-review pr 280050 run on aarch64-linux 1

12 packages built:

mitmproxy (python311Packages.mitmproxy)
mitmproxy.dist (python311Packages.mitmproxy.dist)
mitmproxy2swagger
mitmproxy2swagger.dist
python310Packages.mitmproxy
python310Packages.mitmproxy-rs
python310Packages.mitmproxy-rs.dist
python310Packages.mitmproxy.dist
python311Packages.mitmproxy-rs
python311Packages.mitmproxy-rs.dist
wapiti
wapiti.dist


Fix indentation in changeLog.xml example

In https://neo4j.com/labs/liquibase/docs/quickstart/#__tabbed_1_4,
databaseChangeLog:
- changeSet:
  id: my-movie-init
  author: fbiville
  changes:
  - cypher: 'CREATE (:Movie {title: ''My Life'', genre: ''Comedy''})'

the indentation is off, which causes changeSet: to be parsed as a null.

Other code examples, e.g. https://neo4j.com/labs/liquibase/docs/reference-features/#__tabbed_1_3
databaseChangeLog:
  - changeSet:
      id: my-movie-init
      author: fbiville
      changes:
        - cypher: 'CREATE (:Movie {title: ''My Life'', genre: ''Comedy''})'
  - changeSet:
      id: translate
      author: fbiville
      changes:
        - cypher: 'MATCH (m:Movie {title: ''My Life''}) SET m.genre = ''Comédie'''
      rollback:
        - cypher: 'MATCH (m:Movie {title: ''My Life''}) SET m.genre = ''Comedy'''

demonstrate proper indentation.

Thanks for the issue, I'll double-check. I believe Quickstart is the only documentation area that is not covered by tests, so it's very possible it does work properly.


Pdi 19098

:warning: Build finished in 29m 52s
Build command:
mvn clean verify -B -e -Daudit -amd -pl engine

:no_entry: Failed Tests
:cloud_with_lightning_and_rain: 3 test(s) failed:
org.pentaho.di.trans.steps.transexecutor.TransExecutorUnitTest.testExecuteTransWithFieldsAndNoInput (click to expand)
expected:<[fieldValue2]> but was:<[parentValue]>

org.pentaho.di.trans.steps.transexecutor.TransExecutorUnitTest.testExecuteTransWithInputsAndNoFields (click to expand)
${result.errorDetails}

org.pentaho.di.trans.steps.transexecutor.TransExecutorUnitTest.testExecuteTrans (click to expand)
${result.errorDetails}

Tests run: 3882, Failures: 3, Skipped: 7    Test Results

:information_source:  This is an automatic message

:warning: Build finished in 30m 5s
Build command:
mvn clean verify -B -e -Daudit -amd -pl engine

:no_entry: Failed Tests
:cloud_with_lightning_and_rain: 3 test(s) failed:
org.pentaho.di.trans.steps.transexecutor.TransExecutorUnitTest.testExecuteTransWithFieldsAndNoInput (click to expand)
expected:<[fieldValue2]> but was:<[parentValue]>

org.pentaho.di.trans.steps.transexecutor.TransExecutorUnitTest.testExecuteTransWithInputsAndNoFields (click to expand)
${result.errorDetails}

org.pentaho.di.trans.steps.transexecutor.TransExecutorUnitTest.testExecuteTrans (click to expand)
${result.errorDetails}

Tests run: 3882, Failures: 3, Skipped: 7    Test Results

:information_source:  This is an automatic message

:white_check_mark: Build finished in 29m 59s
Build command:
mvn clean verify -B -e -Daudit -amd -pl engine

:ok_hand: All tests passed!
Tests run: 3882, Failures: 0, Skipped: 7    Test Results

:information_source:  This is an automatic message

:white_check_mark: Build finished in 30m 6s
Build command:
mvn clean verify -B -e -Daudit -amd -pl engine

:ok_hand: All tests passed!
Tests run: 3882, Failures: 0, Skipped: 7    Test Results

:information_source:  This is an automatic message

:white_check_mark: Build finished in 29m 1s
Build command:
mvn clean verify -B -e -Daudit -amd -pl engine

:ok_hand: All tests passed!
Tests run: 3882, Failures: 0, Skipped: 7    Test Results

:information_source:  This is an automatic message

:white_check_mark: Build finished in 29m 23s
Build command:
mvn clean verify -B -e -Daudit -amd -pl engine

:ok_hand: All tests passed!
Tests run: 3882, Failures: 0, Skipped: 7    Test Results

:information_source:  This is an automatic message

:white_check_mark: Build finished in 30m 39s
Build command:
mvn clean verify -B -e -Daudit -amd -pl engine

:ok_hand: All tests passed!
Tests run: 3882, Failures: 0, Skipped: 7    Test Results

:information_source:  This is an automatic message

:white_check_mark: Build finished in 30m 47s
Build command:
mvn clean verify -B -e -Daudit -amd -pl engine

:ok_hand: All tests passed!
Tests run: 3882, Failures: 0, Skipped: 7    Test Results

:information_source:  This is an automatic message

Fixed via https://github.com/pentaho/pentaho-kettle/pull/8020


button for connecting goes through ON-OFF-ON upon plugging board

When I plug in a board to my computer with a USB cable, the button for connecting the board always immediately appears:

then disappears:

and then reappears:

within four seconds or so.
This probably indicates indeed that the camera will be ready for connection for a very short time at the beginning?
The problem is for users who do not know they should only connect to the camera the second time: if they click too early when the button appears for the first time, no openMV cam will be found and the user will be erroneously prompted to go through re-programming as the IDE suggests the board is bricked. Annoying from a user experience point of view as I've had several users doing exactly that.
Running Ubuntu 20.04.

Hmmm, this is happening because Linux is adding and then removing the device from the device tree.
I'm not really sure what the fix here for this is. The only thing I can do is just add a longer delay... but, this just affects others negatively. Is there any weird hardware you are using on your PC?

no weird hardware, only Ubuntu 20.04 straight out of the box. However, the device appears only once inside the "Files" app, and this corresponds to the second time the button shown above appears.

The first time it detects a device that's the bootloader, which also uses USB CDC. If you run dmesg -w and connect the cam, you'll see 2 devices enumerate in a row, the first one is the bootloader. The fix would be to check the serial number in the USB descriptor, the bootloader uses<PHONE_NUMBER>11 and ignore it. All the other devices use different serial numbers.

Done


how to manual install this project, or is that any way to use NVIDIA GPU in a docker container

Hi, thanks for the issue. I've developed a Electron wrapper of ffmpeg-web that uses the native ffmpeg binaries to achieve better performance, and with that you can enable hardware acceleration from the settings. Unfortunately I don't have a Nvidia GPU and I couldn't test it with NVENC, and I relied only on information found of the web. However, if it shouldn't work, please let me know which ffmpeg commands work and I'll try to update it.
If you want to try the new Electron app, clone the repository (I am still doing a few tests, but I hope that in a few minutes I'll push the commit to main), then install the dependencies and create the dist directory with node webHost.js local electron . After this installation, you can run it by writing npm run start. I might create executables of ffmpeg-web in the future, since it should be really easy with electron-forge, but I'll see that tomorrow


How To Properly Add and Sync A New Node in an Existing Raft Network

I am attempting to add a new node into an existing Raft cluster to increase the number of nodes in the network. My process involves using Dragonboat's functions like SyncGetShardMembership, SyncRequestAddNonVoting, and SyncRequestAddReplica. However, I'm facing issues with correctly syncing and propagating the new node information across the existing cluster.
I see no information about this very important concept in docs, examples or in discussions. So, I really be grateful if you can provide me a flow that allow me to dynamically add / remove nodes in a running Raft network.

What is the recommended procedure to ensure that a new node addition is recognized and correctly synced across an existing Raft cluster? Including Leader recognition and state sync.
When I register the new node with SyncRequestAddReplica and then start the node with related Dragonboat start method, does it handle state sync for the new node automatically or else what should I do to ensure the new node successfully synchronized with the network and connect to existing leader?
Are there specific steps or configurations that should be followed or adjusted to improve the reliability of node additions?
How can we verify that the new node has been fully integrated into the cluster from all nodes' perspectives?

Current Approach and Problems

Retrieve Current Membership: I use SyncGetShardMembership to fetch the current members of the cluster.
Case-1: Add Node as Non-Voting: Initially, I add the new node as a non-voting member using SyncRequestAddNonVoting. The nodeID and raftAddress for the new node are derived from our internal configurations and passed appropriately. In this scenario membership config has not been updated when SyncGetShardMembership is called and logged again afterwards.
Case-2: Add Node Directly: When I execute SyncRequestAddReplica directly, the membership is updated and new node info is added but only one node, which probably processed that operation. How should I propagate this updated member list to the other nodes? Isn't SyncRequestAddReplica handling this consensus automatically?

In both scenarios, when starting new node with join flag = true and initial members list as empty by using StartOnDiskReplica function, the new node has absolutely no info about who the leader is or it can't fetch the state info about existing network. It feels like there's no automatic synchronization mechanism when we register & start the new node.
Here are some function I am using to implement the logic I described above:
func (s *Service) AddNodeToCluster(nodeInfo uuid.UUID, raftAddress string) error {
	nodeID := common.Uint64FromUUID(nodeInfo)

	ctx, cancel := context.WithTimeout(context.Background(), 3*time.Minute)
	defer cancel()

	membershipInfo, err := s.nh.SyncGetShardMembership(ctx, s.config.ClusterID)
	if err != nil {
		return fmt.Errorf("failed to get cluster membership: %v", err)
	}

	err = s.nh.SyncRequestAddReplica(ctx, s.config.ClusterID, nodeID, raftAddress, membershipInfo.ConfigChangeID)
	if err != nil {
		return fmt.Errorf("failed to add node %s to the Raft cluster: %v", nodeInfo, err)
	}

	// Refresh the configuration to update s.config.Members
	if err := s.RefreshCurrentMembers(); err != nil {
		return fmt.Errorf("failed to refresh configuration: %v", err)
	}

	return nil
}

func (s *Service) RefreshCurrentMembers() error {
	ctx, cancel := context.WithTimeout(context.Background(), 3*time.Minute)
	defer cancel()

	membershipInfo, err := s.nh.SyncGetShardMembership(ctx, s.config.ClusterID)
	if err != nil {
		return fmt.Errorf("failed to get shard membership: %v", err)
	}

	newMembers := make(map[uint64]string)
	for id, addr := range membershipInfo.Nodes {
		newMembers[id] = addr
	}

	s.lock.Lock()
	s.currentMembers = newMembers
	s.lock.Unlock()

	return nil
}

Leader logic which runs in go routine with time ticker:
func (s *Service) Leader() (uint64, bool) {
	if s.nh == nil {
		log.Warnf("raft is not started yet")
		return 0, false
	}
	id, _, isValid, err := s.nh.GetLeaderID(s.config.ClusterID)
	if err != nil {
		log.Warnf("failed to determine leader due to error: %s", err)
		return 0, false
	} else if !isValid {
		log.Warnf("leader is not found, maybe under rebalancing")
		return 0, false
	}
	for memberID := range s.currentMembers {
		fmt.Println("memberID: ", memberID)
		if memberID == id {
			return id, true
		}
	}
	log.Errorf("can't find leader in config, that's not normal")
	return 0, false
}

To be more specific, the new node gives can't find leader in config, that's not normal error after registered & started with steps described above...
I appreciate any guidance or insights into how to correctly manage node additions in a Raft cluster using Dragonboat, ensuring consistency and stability throughout the cluster. Thanks in advance 🙌

Data synchronization is asynchronous. You will know that it's complete when you can read index on the shard from the new node. I use a function like this to block until the shard is ready after calling StartOnDiskReplica.
// readIndex blocks until it can read from a shard, indicating that the local replica is up to date.
func (a *Agent) readIndex(ctx context.Context, shardID uint64) (err error) {
	var rs *dragonboat.RequestState
	for {
		rs, err = a.host.ReadIndex(shardID, time.Second)
		if err != nil || rs == nil {
			a.log.Infof(`[%05x] Error reading shard index: %s: %v`, shardID, a.HostID(), err)
			select {
			case <-ctx.Done():
				return
			case <-a.clock.After(time.Second):
			}
			continue
		}
		res := <-rs.ResultC()
		rs.Release()
		if !res.Completed() {
			a.log.Infof(`[%05x] Waiting for other nodes`, shardID)
			select {
			case <-ctx.Done():
				return
			case <-a.clock.After(time.Second):
			}
			continue
		}
		break
	}
	return
}

Dragonboat v4 has a new WaitReady replica config option that effectively does the same thing.

Thank you so much for the response?
So is it the general flow, can you confirm please?

Add node as non-voting first with: SyncRequestAddNonVoting
Need to wait until ReadIndex completes is operations (or WaitReady in v4)
Update membership with SyncRequestAddReplica
At this stage I should be able to see the new node added in membership config and I should be able to query the new node with SyncGetShardMembership in each existing initial nodes now
I can start the node with StartReplica (or with StartOnDiskReplica in my case) with join=true & initialMemberList is empty

thanks in advance!

I haven't explored the transition from non-voting to member but that sounds about right.
It should be a quick membership transition with no extra state to replicate.

Hey @kevburnsjr ,
I tried your solution and the new node got stuck in the loop where it waits for a reply from ReadIndex.
Here is how I tested it on a raft cluster with 3 initial members:

Added the new node as non-voting member
One of the initial nodes acknowledged me that non-voting member is added and it waits to connect to that node host
Created a separate docker-compose.yaml for new node and started it with following operations:

	err = nh.StartOnDiskReplica(initialMembers, !isInitialMember, func(clusterId, nodeId uint64) statemachine.IOnDiskStateMachine {
		log.Infof("creating disk state machine for cluster=%d and node=%d", clusterId, nodeId)
		if clusterId != s.config.ClusterID {
			log.Fatalf("not compatible cluster version %d != %d", clusterId, s.config.ClusterID)
		}
		return s
	}, nhc)
	if err != nil {
		return errors.Wrapf(err, "failed to start on-disk raft cluster")
	}

	if err := s.readIndex(context.Background(), s.config.ClusterID); err != nil {
		return errors.Wrap(err, "failed to sync new node to the current state of the cluster")
	}

Connection is established in networking layer, pinged new node from all other nodes and it was successful. But synchronization was still not happenning.
Here is my readIndex func:

func (s *Service) readIndex(ctx context.Context, shardID uint64) error {
	for {
		rs, err := s.nh.ReadIndex(shardID, time.Second)
		fmt.Println("ReadIndex - rs: ", rs)
		if err != nil || rs == nil {
			log.Infof("[%05x] Error reading shard index: %v", shardID, err)
			select {
			case <-ctx.Done():
				return ctx.Err()
			case <-time.After(time.Second):
			}
			continue
		}
		res := <-rs.ResultC()
		fmt.Println("readIndex - res: ", res)

		rs.Release()
		if !res.Completed() {
			log.Infof("[%05x] Waiting for other nodes", shardID)
			select {
			case <-ctx.Done():
				return ctx.Err()
			case <-time.After(time.Second):
			}
			continue
		}
		break
	}
	return nil
}

Here is the response from new node:
readIndex - res:  {0 {0 []} [] {0 0} false false}
time="2024-06-09T16:02:12Z" level=info msg="[00000] Waiting for other nodes"
ReadIndex - rs:  &{0 0 0 0 367 {0 0} 0 {0} {0} <nil> <nil> 0x4000bc7440 0x40010aa000 0x40003e6870 false <nil>}
time="2024-06-09T16:02:14Z" level=info msg="[00000] Waiting for other nodes"
readIndex - res:  {0 {0 []} [] {0 0} false false}
ReadIndex - rs:  &{0 0 0 0 378 {0 0} 0 {0} {0} <nil> <nil> 0x4000bc7380 0x40010aa000 0x40003e6870 false <nil>}
time="2024-06-09T16:02:16Z" level=info msg="[00000] Waiting for other nodes"
readIndex - res:  {0 {0 []} [] {0 0} false false}
ReadIndex - rs:  &{0 0 0 0 388 {0 0} 0 {0} {0} <nil> <nil> 0x4000bc7380 0x40010aa000 0x40003e6870 false <nil>}
readIndex - res:  {0 {0 []} [] {0 0} false false}
time="2024-06-09T16:02:18Z" level=info msg="[00000] Waiting for other nodes"
ReadIndex - rs:  &{0 0 0 0 399 {0 0} 0 {0} {0} <nil> <nil> 0x4000bc7380 0x40010aa000 0x40003e6870 false <nil>}
readIndex - res:  {0 {0 []} [] {0 0} false false}
time="2024-06-09T16:02:21Z" level=info msg="[00000] Waiting for other nodes"

This loop kept forever going on with same message.
Anything I might be missing? Do you have any repository that I can check how this process is handled from start to end?
Thanks in advance 🙌

It's hard to tell what might be wrong without a full example.
Is the rest of this code in a repository that I can view?
The readIndex example I gave you was copy/pasted from my project Zongzi which is adds a registry. It is designed to simplify these sorts of multi-node operations. See (*Agent).Start() where all startup scenarios are covered.

@candostyavuz
Once the replica is added to the shard, you can start it on the designated NodeHost, after that everything else is transparent to your application meaning raft logs will be appended to the new nodes and snapshot will be sent if necessary.
In general, there is no extra step required, some would add replica as non-vote first and upgrade it to a full member later, this is extensively discussed in the raft thesis, please read the thesis for more details.
To make sure the recently added replica is working as expected, you can - issue a ReadIndex on that node, if you can successfully complete it then it means all previous logs have been appended and applied onto your new replica. this is a pretty strong guarantee as it also implies that the new replica is recognized by the leader replica, which in turn requires a consensus from all replicas in the shard.

@lni @kevburnsjr Thank you so much for your explanations and examples, I managed to resolve most of my issues.
For now, it seems that new node has successfully synchronized and joined the cluster. I haven't tested adding more than 1 node yet but hopefully the process goes smoothly.
I really appreciate it!

@lni @kevburnsjr
Sometimes there are issues occurring during the state sync of new added node, do you know the main reason for this?
2024-06-11 16:29:59.163950 I | rsm: [00000:70460] opened disk SM, index 0
2024-06-11 16:29:59.164460 C | rsm: [00000:70460], ss.OnDiskIndex (106) > s.onDiskInitIndex (0)
panic: [00000:70460], ss.OnDiskIndex (106) > s.onDiskInitIndex (0)

goroutine 423 [running]:
github.com/lni/goutils/logutil/capnslog.(*PackageLogger).Panicf(0x1400128c060, {0x1039581df?, 0x10?}, {0x14001412630?, 0x14000591070?, 0x14000054dd0?})
	/Users/candostyavuz/go/pkg/mod/github.com/lni/goutils@v1.4.0/logutil/capnslog/pkg_logger.go:88 +0xb4
github.com/lni/dragonboat/v4/logger.(*capnsLog).Panicf(0x14000591050?, {0x1039581df?, 0x10?}, {0x14001412630?, 0x103cefc01?, 0x140003e0098?})
	/Users/candostyavuz/go/pkg/mod/github.com/lni/dragonboat/v4@v4.0.0-20231222133740-1d6e2d76cd57/logger/capnslogger.go:74 +0x28
github.com/lni/dragonboat/v4/logger.(*dragonboatLogger).Panicf(0x140003e00b0?, {0x1039581df, 0x30}, {0x14001412630, 0x3, 0x3})
	/Users/candostyavuz/go/pkg/mod/github.com/lni/dragonboat/v4@v4.0.0-20231222133740-1d6e2d76cd57/logger/logger.go:135 +0x54
github.com/lni/dragonboat/v4/internal/rsm.(*StateMachine).checkPartialSnapshotApplyOnDiskSM(0x14000572400, {{0x140001f4d20, 0xd1}, 0x0, 0x6a, 0x2, {0x65, 0x14001412390, 0x0, 0x0, ...}, ...}, ...)


Chore: clean up start with templates and start from scratch for new signups.

For a new user signup, we created 3 options earlier:

start with data
start from templates
start from scratch

Results of our experiments have shown that start from data is the best path and we don't require other 2 paths.
With this task lets take care of cleaning up unnecessary code and specs related to them.

Can you assign this task to me?


Added compactor recipes for pebbles -> blocks

Added compactor recipes for pebbles into their respective blocks.
https://github.com/jeremiahwinsley/ExMachinis/issues/21

Hello, thanks for the PR, however anything going to the src/generated folder must be created via datagen or it will get removed during the next datagen run. I have added this support via datagen in https://github.com/jeremiahwinsley/ExMachinis/commit/2c62b6aae415e57eb0ac029dd67953fcb1181d6a


Change unsendable test to use Rust thread

At the moment the output for test_class_basic is pretty messy:
$ cargo test --test test_class_basics
   Compiling pyo3 v0.11.1 (/home/david/dev/pyo3)
    Finished test [unoptimized + debuginfo] target(s) in 1.01s
     Running target/debug/deps/test_class_basics-f8fbd75adbff8663

running 7 tests
test empty_class_in_module ... ok
test test_raw_idents ... ok
test class_with_docstr ... ok
test empty_class ... ok
test class_with_object_field ... ok
test custom_names ... ok
thread '<unnamed>' panicked at 'test_class_basics::UnsendableBase is unsendable, but sent to another thread!', /home/david/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/macros.rs:16:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread '<unnamed>' panicked at 'test_class_basics::UnsendableBase is unsendable, but sent to another thread!', /home/david/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/macros.rs:16:9
test panic_unsendable ... ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

Exception ignored in: <module 'threading' from '/usr/lib/python3.8/threading.py'>
Traceback (most recent call last):
  File "/usr/lib/python3.8/threading.py", line 1373, in _shutdown
    assert tlock.locked()
AssertionError:

Changing the threading strategy to use Rust threads instead of Python threads still permits a test, but it cleans up the output :)

I've moved the assert into the original thread, and changed the new thread to just do .borrow(), which will be enough to trigger the exception.


Add RTree Index (+ ST_AsSVG and simple ST_GenerateRandomPoints)

This PR adds the long-awaited support for spatial indexes by implementing a R-Tree based extension index type to DuckDB.
More info to come but here's a quick rundown.
What is an RTree?
RTree indexes store bounding boxes of geometries into a hierarchical tree-data structure where every node's bounding box also contains the bounding boxes of all child nodes, making it fast to check what geometries intersect a given bounding box, as you can quickly prune out a lot of candidates by recursively moving down the tree.
What can it do
The RTree index implemented in this PR is:

persistent: When creating a disk-backed database, the index is persisted as part of the database file.
buffer managed: All memory used by the index is tracked by DuckDB's memory management system. While it currently won't "unload" blocks from memory (a limitation shared with DuckDB's ART-index), persisted nodes will be loaded from disk lazily, and the index memory usage will respect DuckDB's configurable memory limit (if set).
mutable : both inserts and deletes to the base table are supported after the index is created, and the index will update and rebalance itself accordingly.

Although, creating the index on top of an already populated table will be much faster and produce a "better looking tree", i.e. a more efficient index as the bulk-loading algorithm is better at minimizing overlap between internal nodes, making searching the tree faster. We don't have any vacuuming implemented yet so if you may want to periodically drop and re-create the index if you notice that the index query performance is starting to degrade after a series of large table-spanning updates.
For now, and RTree index will ONLY be used to perform an "index scan" and speed up simple queries where a set of columns are selected from a table with a WHERE clause containing one of 10 binary spatial predicate functions filtering on the indexed geometry column in the table and a geometry value that is constant, i.e. able to be fully evaluated before the query is executed. The 10 binary predicates are:

ST_Equals
ST_Intersects
ST_Touches
ST_Crosses
ST_Within
ST_Contains
ST_Overlaps
ST_Covers
ST_CoveredBy
ST_ContainsProperly

In the future, the plan is to add other optimizations, such as performing index scans for ST_Distance/ST_DWithin and for speeding up index joins.
How do I use it?
-- Create a table with 10_000_000 random points
CREATE TABLE t1 AS SELECT point::GEOMETRY as geom
FROM st_generatepoints({min_x: 0, min_y: 0, max_x: 10000, max_y: 10000}::BOX_2D, 10_000_000, 1337);

-- Create a index on the table.
CREATE INDEX my_idx ON t1 USING RTREE (geom);

-- Perform a query with a "spatial predicate" on the indexed geometry column
-- Note how the second argument in this case, the ST_MakeEnvelope call is a "constant"
SELECT count(*) FROM t1 WHERE ST_Within(geom, ST_MakeEnvelope(450, 450, 650, 650));
----
3986

-- We can check for ourselves that an RTree index scan is used:
┌───────────────────────────┐
│    UNGROUPED_AGGREGATE    │
│    ────────────────────   │
│        Aggregates:        │
│        count_star()       │
└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│           FILTER          │
│    ────────────────────   │
│ ST_Within(geom, '...')    │
│                           │
│       ~2000000 Rows       │
└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│     RTREE_INDEX_SCAN      │
│    ────────────────────   │
│   t1 (RTREE INDEX SCAN :  │
│           my_idx)         │
│                           │
│     Projections: geom     │
│                           │
│       ~10000000 Rows      │
└───────────────────────────┘

You can also pass options when creating the RTree index to configure the maximum and minimum capacity for each node within the tree. E.g.
CREATE INDEX my_idx on t1 USING RTREE (geom) WITH (max_node_capacity = 128, min_node_capacity = 64)

The defaults are min_node_capacity = 50, max_node_capacity = 128
Microbenchmarks
On my machine, running the above query as part of a micro-benchmark with and without an index produces the following results:
Without index
name    run     timing
benchmark/rtree_points_noindex.benchmark        1       2.272783
benchmark/rtree_points_noindex.benchmark        2       2.261915
benchmark/rtree_points_noindex.benchmark        3       2.258901
benchmark/rtree_points_noindex.benchmark        4       2.262764
benchmark/rtree_points_noindex.benchmark        5       2.263000

With index
name    run     timing
benchmark/rtree_points_index.benchmark  1       0.050214
benchmark/rtree_points_index.benchmark  2       0.052856
benchmark/rtree_points_index.benchmark  3       0.051340
benchmark/rtree_points_index.benchmark  4       0.052707
benchmark/rtree_points_index.benchmark  5       0.050918

Creating the index itself (after loading the table) takes about 1.2s~.
Creating the index before loading the table takes about 5.3s~.
Running a similar query, but with a 158mb trimmed down parquet file of building footprints extract from overture:
CREATE TABLE t1 as SELECT ST_GeomFromWKB(wkb) as geom, id,
FROM read_parquet('test/data/nyc_taxi/overture_nyc_buildings.parquet');
CREATE INDEX my_idx ON t1 USING RTREE (geom);

run
SELECT count(*) FROM t1 WHERE ST_Within(geom, ST_MakeEnvelope(-74.004936,40.725275,-73.982620,40.745046));

Without index:
benchmark/rtree_noindex.benchmark       1       0.435056
benchmark/rtree_noindex.benchmark       2       0.432082
benchmark/rtree_noindex.benchmark       3       0.434190
benchmark/rtree_noindex.benchmark       4       0.434224
benchmark/rtree_noindex.benchmark       5       0.431633

With index:
benchmark/rtree_index.benchmark 1       0.003337
benchmark/rtree_index.benchmark 2       0.003444
benchmark/rtree_index.benchmark 3       0.003385
benchmark/rtree_index.benchmark 4       0.003798
benchmark/rtree_index.benchmark 5       0.003850

Technical details
Even though the R*-tree is usually regarded as the best-in-class variant, it is also significantly harder to implement properly, particularly when dealing with rebalancing. This implementation is more like a R+Tree in that it only stores row ids in the leaf nodes and rebalances itself during updates and deletes by propagating splits up the tree and re-inserting the entries of under-full nodes from the root naively.
The splitting algorithm however is based on the Corner Based Splitting (CBS)[^1] algorithm, which from my testing seems to produce very good looking trees considering how fast it is and how easy it is to implement. Resulting nodes look slightly better than the quadratic/linear split methods but maybe slightly worse than R*-splitting.
Bulk loads are performed using the Sort Tile Recursive (STR)[^2] technique, and all memory is tracked and handled by the buffer manager, and it also uses DuckDB's existing sorting operator as a pre-processing step, so it should be able to handle larger-than memory bulk loads without too much trouble. There's only a single larger buffer that's required to be kept in memory at all times during the bulk-load process which is going to be roughly sqrt(ceil(total_number_of_leaf_entries / node_capacity)) * node_capacity * 40 bytes. However this is also tracked by DuckDB so it will count towards any set memory limit.
Additionally, row-ids are stored in sorted order in the leaf nodes, making updates and deletes much faster.
[^1]: Sleit, Azzam & Al-Nsour, Esam. (2014). Corner-based splitting: An improved node splitting algorithm for R-tree. Journal of Information Science. 40. 222-236. 10.1177/0165551513516709.
[^2]: S. T. Leutenegger, M. A. Lopez and J. Edgington, "STR: a simple and efficient algorithm for R-tree packing," Proceedings 13th International Conference on Data Engineering, Birmingham, UK, 1997, pp. 497-506, doi: 10.1109/ICDE.1997.582015.
Future work

More rewrite-rules that make use of the index, such as index-joins and filter pushdown for more advanced filters, such as multiple intersection queries and distance filters.

Configurable leaf node capacity that can differ from the branch node capacity.

Optional Hilbert-sort bulk loading algorithm (if the user supplies a boundary).

Closes #7

This PR also adds ST_AsSVG. And a ST_GenerateRandomPoints table function that only works with rectangle inputs for now. It also adds new overloads for ST_Hilbert.

Thank you very much

This rocks - thank you!!!


Any way to reimport the extracted files?

Hello, I extracted files with one of the specific unity versions that the program provides, but I haven't found any way to reimport them, is there a way for me to do so?

thats outside the scope of asset studio


Expected a 'SemVer' compatible value when installing from git url

I think Unity expects the version number to be x.x.x, like 0.5.0 instead of 0.5

fixed. thanks for pointing out!


Refactor for obj matcher

Coverage decreased (-0.2%) to 97.216% when pulling 32941626c3e54dd8edc0a84c467d89c1ea8c11d1 on refactor-for-obj-matcher into a6a3c80decc20b86cfeb7e3af25d1930a3bd1e18 on matcher-object.


[11.x] Convert route parameters to camelCase

This PR is the result of this tweet:
https://twitter.com/pascalbaljet/status/1635970593970331649
Currently, registering routes with dashes results in parameters with an underscore.
Route::resource('document-version', DocumentVersionController:: class);
// Route Name: document-version.edit
// URI + Segment name: document-version/{document_version}/edit

Route::singleton('document-version.comments', DocumentVersionCommentsController::class);
// Route Name: document-version.comments.edit
// URI + Segment name: document-version/{document_version}/comments/edit

The parameters can be renamed using the parameter function, but it would be nice if this was the default behavior.
This PR updates the above examples to the following:
Route::resource('document-version', DocumentVersionController:: class);
// Route Name: document-version.edit
// URI + Segment name: document-version/{documentVersion}/edit

Route::singleton('document-version.comments', DocumentVersionCommentsController::class);
// Route Name: document-version.comments.edit
// URI + Segment name: document-version/{documentVersion}/comments/edit

This is quite a breaking change, and could pose a real pain for people with packages that need to support both Laravel 10 and 11, and add unnecessary upgrading frequency. If you want camel case, you can already use camel case directly in your routes.

Thanks for your pull request to Laravel!
Unfortunately, I'm going to delay merging this code for now. To preserve our ability to adequately maintain the framework, we need to be very careful regarding the amount of code we include.
If possible, please consider releasing your code as a package so that the community can still take advantage of your contributions!
If you feel absolutely certain that this code corrects a bug in the framework, please "@" mention me in a follow-up comment with further explanation so that GitHub will send me a notification of your response.


Can I specify the TableName to be used by dynamoose?

Just start to try switching from aws-sdk to dynamoose.
Previously I had TableName specified for resource access control in iAM role, and currently dynamoose seems to be generating a new table while I create a model. Can I specify the table going to be used by the model at the moment?

found out it is using the modelName as the TableName


[Trivial] Add OwnerPays to supportedAmendments

:+1:

Current coverage is 69.76% (diff: 100%)

Merging #1795 into develop will increase coverage by <.01%

@@            develop      #1795   diff @@
==========================================
  Files           860        860
  Lines         67531      67531
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits          47111      47115     +4
+ Misses        20420      20416     -4
  Partials          0          0

Powered by Codecov. Last update a5589dc...0bc85af

Merged as cc8671b8b23dbce1beeec5c6542d874f02e6516a


Bot Configuration Consistency across samples using .bot

Consistent configuration, app id and pwd from .bot file using SimpleconfigurationProvider.
Fixes: https://github.com/Microsoft/botbuilder-dotnet/issues/912, except for enterprise bot.

@cleemullins Good idea! I just added a change that includes your suggestions. All call the method, but QnA and a few other special cases also load the config for other things. This could be refactored further, maybe add a LoadBotConfig method so that loading is unified. I'll try to get to it but it's looking much better already.


Tidy more lsm files

The first commit contains a similar refactor to https://github.com/tigerbeetle/tigerbeetle/pull/2073

Resolved conflict on github --- the naughty list is short, so it's a lot of contention over it now, and makes sense to move PRs along quicker!


Add auto_discover_channels option

What does this PR do?

This PR adds a new auto_discover_channels option to disable automatically submitting channel status for '*' channels.
Motivation

Reduce memory leak possibility
Additional Notes

Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] PR title must be written as a CHANGELOG entry (see why)
[ ] Files changes must correspond to the primary purpose of the PR as described in the title (small unrelated changes should have their own PR)
[ ] PR must have changelog/ and integration/ labels attached

/azp run


Deploying relation name change and explicit back relation is stuck

Describe the bug
When adding an implicit backrelational field and changing the relation name at the same time, the deployment will be stuck.
To Reproduce
Steps to reproduce the behavior:

Deploy this datamodel:

type Category {
    id: ID! @unique
    slug: String! @unique
}

type Project {
    id: ID! @unique
    slug: String! @unique
    category: Category! @relation(name: "Category")
}

Deploy this datamodel:

type Category {
    id: ID! @unique
    slug: String! @unique
+   projects: [Project!]! @relation(name: "Category2")

}

type Project {
    id: ID! @unique
    slug: String! @unique
-   category: Category! @relation(name: "Category")
+   category: Category! @relation(name: "Category2")
}

The deployment is stuck:

Deploying service `r-2796` to stage `dev2` to server `local` 104ms

Changes:

  Category (Type)
  + Created field `projects` of type `[Relation!]!`

  Project (Type)
  ~ Updated field `category`

  Category (Relation)
  - Deleted relation between undefined and undefined

  Category2 (Relation)
  + Created relation between Category and Project

Applying changes (19/5) ⣟

Expected behavior
The deployment goes through. The relation was renamed.
Versions (please complete the following information):

Prisma Server: prismagraphql/prisma:1.13

Additional context
Originally reported here: #2796. Added to #2018.

Thanks for reporting the issue and your thorough description! 🙏 This has been fixed in 1.18.1.

For some reason, it’s still not working for me with 1.18.1. Still spinning at Applying changes.

Is 1.18.1 your server version, or your CLI version?
The relevant one in this context is the server version 🙂

Awesome, @marktani! That did it 🙌🏼


More grammar :)

@DanTsk You keep referring to "Build time." What is "build time"?

@jwinnie Thanks for the new fix!
About "Build time". It's pretty simple, there are 2 states of Odi application:

Build time (When dependencies initialized and put into DI containers, controllers mapped and bind into HTTP engine and etc, so all these actions should be done, before the application can start working).
Runtime (Application ready to serve HTTP clients with ready in-app DI infrastructure).

I guess that build time will be referred much more times, when GRCP and GraphQL implementations come to Odi :), as there is a lot of stuff that must be preprocessed.


overlayEntry should not be null

Describe the bug
I receive an error from flutter
[VERBOSE-2:ui_dart_state.cc(177)] Unhandled Exception: 'package:flutter_easyloading/src/easy_loading.dart': Failed assertion: line 428 pos 7: 'overlayEntry != null': overlayEntry should not be null
Flutter/Dart info
please run flutter doctor then put it here.
Screenshots
If applicable, add screenshots to help explain your problem.

@stoppiNeobiz
Initialize EasyLoading in your MaterialApp
class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter EasyLoading',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter EasyLoading'),
      builder: EasyLoading.init(),
    );
  }
}

@stoppiNeobiz
Initialize EasyLoading in your MaterialApp
class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter EasyLoading',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter EasyLoading'),
      builder: EasyLoading.init(),
    );
  }
}

@kokohuang how can I do that with more advanced build configuration?
 @override
  Widget build(BuildContext context) {
    return MaterialApp.router(
      debugShowCheckedModeBanner: false,
      key: _navigatorKey,
      title: 'Title',
      theme: ThemeData(
        primarySwatch: Colors.grey,
        appBarTheme: AppBarTheme(
          color: Colors.white,
        ),
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      builder: (context, child) {
        ErrorWidget.builder = (FlutterErrorDetails errorDetails) {
          return buildError(context, errorDetails);
        };

        EasyLoading.init(); // does not work

        // ignore: close_sinks
        final ApplicationBloc _applicationBloc =
            BlocProvider.of<ApplicationBloc>(context);

        return Container(
          child: BlocProvider(
            create: (_) => _applicationBloc,
            child: BlocListener<ApplicationBloc, ApplicationState>(
              listener: _applicationBlocListener,
              child: BlocBuilder<ApplicationBloc, ApplicationState>(
                builder: (context, state) {
                  if (state is InitialApplicationState ||
                      state is ApplicationLoadingState) {
                    return LoadingWidget();
                  } else if (state is ApplicationLoadedState) {
                    return child;
                  } else {
                    return Text("Application load error. Try again.");
                  }
                },
              ),
            ),
          ),
        );
      },
      localizationsDelegates: [
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
      ],
      supportedLocales: const <Locale>[
        const Locale('en', 'US'),
        const Locale('pl', 'PL'),
      ],
      routerDelegate: _appRouter.delegate(),
      routeInformationParser: _appRouter.defaultRouteParser(),
    );
  }

EasyLoading.init()

@kokohuang how can I do that with more advanced builder configuration?
 @override
  Widget build(BuildContext context) {
    return MaterialApp.router(
      debugShowCheckedModeBanner: false,
      key: _navigatorKey,
      title: 'Title',
      theme: ThemeData(
        primarySwatch: Colors.grey,
        appBarTheme: AppBarTheme(
          color: Colors.white,
        ),
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      builder: (context, child) {
        ErrorWidget.builder = (FlutterErrorDetails errorDetails) {
          return buildError(context, errorDetails);
        };

        EasyLoading.init(); // does not work

        // ignore: close_sinks
        final ApplicationBloc _applicationBloc =
            BlocProvider.of<ApplicationBloc>(context);

        return Container(
          child: BlocProvider(
            create: (_) => _applicationBloc,
            child: BlocListener<ApplicationBloc, ApplicationState>(
              listener: _applicationBlocListener,
              child: BlocBuilder<ApplicationBloc, ApplicationState>(
                builder: (context, state) {
                  if (state is InitialApplicationState ||
                      state is ApplicationLoadingState) {
                    return LoadingWidget();
                  } else if (state is ApplicationLoadedState) {
                    return child;
                  } else {
                    return Text("Application load error. Try again.");
                  }
                },
              ),
            ),
          ),
        );
      },
      localizationsDelegates: [
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
      ],
      supportedLocales: const <Locale>[
        const Locale('en', 'US'),
        const Locale('pl', 'PL'),
      ],
      routerDelegate: _appRouter.delegate(),
      routeInformationParser: _appRouter.defaultRouteParser(),
    );
  }

https://github.com/kokohuang/flutter_easyloading/issues/83#issuecomment-754470520

I was got this errer Please help me ASAP
'package:flutter_easyloading/src/easy_loading.dart': Failed assertion: line 298 pos 7: '_getInstance().overlayEntry != null': overlayEntry should not be null
This is my Flutter Doctor details
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel beta, 1.25.0-8.2.pre, on Microsoft Windows [Version 10.0.14393], locale en-IN)
[!] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses
[√] Android Studio (version 4.1.0)
[√] Connected device (1 available)

@kyadakrupali08 you shuld init EasyLoading in you MaterialApp
class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter EasyLoading',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter EasyLoading'),
      builder: EasyLoading.init(),
    );
  }
}


[Steam Reviews Viewer] Setup/getting started query (documentation request? but might be bug)

Extension name
Steam Reviews Viewer
Feature Description
I'm probably missing something, but I cannot find a way to use the features to view Steam game reviews or videos. Not sure if this is a bug or ought to be a request for more documentation in case I'm doing something wrong.
Steam Reviews Viewer is installed and enabled, and appears in context menu when clicking a game.
I have left-clicked on various different Steam games in Playnite, in the Details view, and tried manually downloading the review data for them, and restarting Playnite, but no reviews or videos appear when a game is clicked.
I didn't find an answer in the Help/Troubleshooting link: https://github.com/darklinkpower/PlayniteExtensionsCollection/wiki/Review-Viewer
I've included a screenshot of what I see in Playnite, in case it helps.
Any guidance on what I'm missing would be greatly appreciated. Thank you.
Screenshots

You need to use a theme that supports the extension, for example, the themes I develop: https://github.com/darklinkpower/PlayniteExtensionsCollection?tab=readme-ov-file#themes
Videos are available in right click > videos but if you want videos in the main window you need to use the Extra Metadata Loader extension: https://playnite.link/addons.html#ExtraMetadataLoader_705fdbca-e1fc-4004-b839-1d040b8b4429

Many thanks for the guidance.
I can't see anything about videos when I right-click a game:

To clarify, I was using the theme that Playnite comes with by default. Are you saying your addon is not compatible with that?
As per your advice, I have installed your Harmony theme, and can still not find Steam reviews displayed in Playnite:

Since this is unresolved despite following @darklinkpower's instructions, would it be better for me to open a new issue and report it as a bug?

Never mind, I found the "Reviews" tab. Shame I couldn't find any instructions to tell me that's what I needed to look for.
The Positive/Negative filter feature is showing "NaN%" though, so I think it might be broken (I suppose that's worth a new issue):

Okay, I found the "Reviews" tab. I couldn't find any instructions to tell me that's what I needed to look for. I still don't see anything about videos when right-clicking, but the Extra Metadata Loader works to show them, thank you.
The Positive/Negative filter feature on the Reviews tab is showing "NaN%", so I think it might be broken (I suppose that could be worth a new issue):

Enabling the Positive/Negative filter switches back to the Description tab. Not sure if that counts as a bug, but it seems like it might.


Unexpected Error Occurred While Connecting

Issue Type: Bug
I'm not sure, exactly what happened here, but since the pop up was so nice in asking for it; here,  have my data.
Azure Data Studio version: azuredatastudio 1.29.0 (0f5cfdc2c8c2433028842e16dc5ac1a65da24292, 2021-05-15T01:12:11.112Z)
OS version: Windows_NT x64 10.0.19043

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz (12 x 2592)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onprotected_video_decode: enabledrasterization: enabledskia_renderer: enabled_onvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
31.76GB (19.91GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (18)

Extension
Author (truncated)
Version

pastetheplan
dre
0.2.0

admin-pack
Mic
0.0.2

admin-tool-ext-win
Mic
0.0.2

agent
Mic
0.48.0

dacpac
Mic
1.8.0

import
Mic
1.3.0

managed-instance-dashboard
Mic
0.4.2

profiler
Mic
0.11.0

query-history
Mic
0.1.0

schema-compare
Mic
1.11.0

server-report
Mic
0.2.3

sql-assessment
Mic
0.6.1

sql-database-projects
Mic
0.9.1

whoisactive
Mic
0.1.4

azdata-sanddance
msr
3.2.0

schema-visualization
R0t
0.7.1

sql-prompt
Red
0.2.7

sql-search
Red
0.4.0

Do you have any more context here? Did this affect what you were trying to do or did this just seemingly pop up randomly? If you're willing to attach the logs that would help us a bit too.

Closing due to inactivity and not enough details to investigate.


⚠ Cioos Pacific CKAN has degraded performance

In e5e2a24, Cioos Pacific CKAN (https://catalogue.cioospacific.ca) experienced degraded performance:

HTTP code: 200
Response time: 9917 ms

Resolved: Cioos Pacific CKAN performance has improved in b485d26 after 37 minutes.


Removing default integtest.sh.

Coming from https://github.com/opensearch-project/opensearch-build/issues/497, removing default integtest.sh.

@ohltyler Can someone please take care of backporting this to 1.x branches?

@dblock yes, I'll do that


feat: support AES 128 AES 192

Codecov Report

Merging #2 (0ee7031) into main (b90d945) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##              main        #2   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines           11        31   +20
=========================================
+ Hits            11        31   +20

Impacted Files
Coverage Δ

src/index.ts
100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


CLOUDP-99358: Improve github action docs error message

Proposed changes
This is about enhancing the error message for the Github Action that checks for our docs.

Jira ticket: CLOUDP-99358

Checklist

[x] I have signed the MongoDB CLA
[x] I have added tests that prove my fix is effective or that my feature works
[x] I have added any necessary documentation (if appropriate)
[x] I have updated e2e/E2E-TESTS.md (if a new command or e2e test has been added)
[x] I have run make fmt and formatted my code

Further comments

we should get a message like:
Detected files that need to be committed:
  /path/to/file

Try running: make gen-docs


Core Restructure

So I made quite a big change with this commit so if you're unwilling to merge it, I totally understand. I'm still kind of new to git and the methodologies that should be used when performing commits, so I have all of the changes in 1 gigantic commit instead of spread out over several. This was mostly because I worked straight through until I was finished. I'm rambling... Here's the Breakdown of what was done:

Separated the date picker dialog code from the directive code.
Made a fluent api for the provider for each of the properties it accepts. This makes the provider less of a hash and more of a configuration object
Put each 'component' in it's own file. This makes maintenance MUCH easier.
Updated the build process the merge the separated files so they can work as before without doing weird exporting or namespacing and such
Fixed the tests to adapt to the new separation and even created a test file per component tests. (Except for Provider. You can't test the provider without using the service it provides)
Updated Karma to serve the JS Map files to make debugging easier
Slight adjustments to the template file to deal better with the new scoping. The directive template still exposes the controller as 'amDatePicker' but the dialog now exposes the controller as 'dialog'. This helped understand where things were actually attached.

Since the dialog code was detached from the directive, the watches on the min and max dates became unnecessary. They still work as expected though because both are passed to the dialog. This also meant that the test checking to see if the current date is now unselecteable didn't work they way it used to. I removed them for now but I'm thinking of how that should work going forward for the directive.

Thank for your contribution! I don't mind about separation and I use it in more complex project. Actually, I try to follow johnpapa styleguide.
Unit tests all passed fine, so I run server and open index.html in demo folder and I've encountered several problems:

Month navigation doesn't work. Sometimes I can't switch to previous months, sometimes to the next one, and sometime neither to previous nor to next month. I believe condition
(dialog.monthYear.isBefore(dialog.minDate, "month"))
works incorrect. I understand why it is here, but I don't think it would be problem if user could list through the maxDate or the maxYear bounds. More important that he couldn't select date after the maxDate or before the minDate. In my initial concept, maxYear doesn't restrict anything. It is just the maximum available year in the year selection, same apply to the minYear.
If no date selected and I press 'OK' button, the today date is selected automatically. I don't like this behavior, because this way you could select date, that before the minDate or after the maxDate. Also, there is 'Today' button for this.
As suggestion, instead of Date: "=ngModel" use date: "=ngModel". JS already have Date object. I know that you didn't overwrite or hide actual Date object, but for example Atom highlights amDatePicker.Date as if it is Date object.
Localization doesn't work. I think the reason is that by this dialog.moment.locale('ru'); you've set the locale locally. In current implementation locale should be set globally, or you need some additional refactor to be able to set it locally.

Ok So I've fixed the first problem. I found it yesterday and all I can say is "I'm sorry". I'm going to get that in as soon as I make tests for it. AS for number two, I noticed that also and I'm working to correct that. I was hoping not to create a "selectedDate" variable but it seems that's what I'm going to have to do. The third one is easily done. And finally, localization. I feel that setting locale globally on the moment object is a 'cheat'. This component will never be used in isolation and making assumptions on how the developer using this component isn't wise. Maybe they want to show the same date/time in several different locales at the same time. Setting moment globally would prevent tat scenario. So I'll figure out how to make the local locales work.

I agree that global locale on moment object looks like bad design. I think I know how to make local locale, so if you don't have time or anything I can do it.

No, I'll take care of it. Should I close this PR and open a new one with the fixes?

You could make changes and update this PR, if you'd like.

Ok I fixed all the issues as promised. give it a look over and we'll go from there.

I think everything is all right.
Forgot to ask last time, why do you inject $mdDialog and $q in amDatePickerService?.

Oh $q was a mistake. I just noticed that one recently myself. But the reason for $mdDialog was to allow independent showing of the picker dialog eventually. I personally don't like how opinionated the amDatePicker directive is, so making a .show() method in the service will allow me and others to make our own directives but lean on the work done with the picker.

So, after learning you PR more, I find out that locals in the $mdDialog.show is missing popupDateFormat: amDatePicker.popupDateFormat attr, but that not the case.
I noticed, when you click outside the date won't be updated. Of course, I understand why. But in my opinion date picker itself is not usual dialog. Most of the time user wants to pick a date and close picker as fast as possible (and most of the time user picks exactly the date that he wants to pick). So when user clicks outside the date should be updated. I mean a lot of pickers work this way, some of them close immediately (but I don't like that). There is no hard rule, but I believe, in some cases 'click outside' could stay for 'do nothing'  and in some other cases for 'save current state'.
You've done a great work and I really appreciate your efforts, but I'm afraid I can't accept this PR, as we have different view on how the things should be done.
By the way, on your place I'd move the condition !dialog.maxDate || dialog.monthYear.isBefore(dialog.maxDate, 'month')  from the nextMonth function to the <md-button></md-button> like this:
<md-button ng-click="dialog.nextMonth()"
                   ng-disabled="dialog.maxDate && !dialog.monthYear.isBefore(dialog.maxDate, 'month')"
                   class="md-icon-button">
    ...
</md-button>

The same applies to the previousMonth function. Otherwise it seems strange when you're clicking 'next month' button and nothing happens.

Ok I respect that. I guess I'll have to go find a different date picked for my project. Thanks for letting me help

If you don't mind, please let me know which one you will choose.


Cryptic exception being thrown when a driver doesn't return anything

Sometimes you don't want to use a driver in a particular env. Something that worked earlier.
Code to reproduce the issue:

Create a driver noop

function noop () {}

Use it in the driver,

Cycle.run(Main, {AUDIO: noop})

Expected behavior:
Earlier it was working just fine if noop din't return anything. Right now noop needs to return atleast an empty object {}.
Actual behavior:
Exception is thrown
/Users/tushar.mathur/Documents/Projects/funag/node_modules/@cycle/base/lib/index.js:39
            sources[name_2]._isCycleSource = name_2;
                                           ^

TypeError: Cannot set property '_isCycleSource' of undefined
    at callDrivers (/Users/tushar.mathur/Documents/Projects/funag/node_modules/@cycle/base/lib/index.js:39:44)
    at Object.Cycle [as default] (/Users/tushar.mathur/Documents/Projects/funag/node_modules/@cycle/base/lib/index.js:93:19)
    at Function.run (/Users/tushar.mathur/Documents/Projects/funag/node_modules/@cycle/rx-run/lib/index.js:32:29)
    at Compiler.onEmit (AppShellPlugin.js:52:13)
    at Compiler.applyPluginsAsync (/Users/tushar.mathur/Documents/Projects/funag/node_modules/tapable/lib/Tapable.js:71:13)
    at Compiler.emitAssets (/Users/tushar.mathur/Documents/Projects/funag/node_modules/webpack/lib/Compiler.js:226:7)
    at Watching.<anonymous> (/Users/tushar.mathur/Documents/Projects/funag/node_modules/webpack/lib/Compiler.js:54:18)
    at /Users/tushar.mathur/Documents/Projects/funag/node_modules/webpack/lib/Compiler.js:403:12
    at Compiler.next (/Users/tushar.mathur/Documents/Projects/funag/node_modules/tapable/lib/Tapable.js:67:11)
    at Compiler.<anonymous> (/Users/tushar.mathur/Documents/Projects/funag/node_modules/webpack/lib/CachePlugin.js:40:4)

Versions of packages used:
@cycle/base — "version": "4.1.0"

Cannot reproduce for me on the same version. I wonder if anything else is going on?

https://github.com/cyclejs/cyclejs/blob/master/base/src/index.ts#L109
Its a bug, Andre probably forgot that driver source may bi nil

Yep, my silly mistake. Will fix asap.

thanks.

@staltz This hasn't been released yet?

Yes it has. Try using the latest versions of whatever packages you were using


Block Submission Specs

Stories revolving around how we handle block submission. This  issue is large but it contains things like:

block submission
gas price setting
handling re-orgs
retry behavior and notifications
Vault Integration

Feature: Submitting Blocks to the Contract
	Once the Childchain has formed blocks, it needs to submit these blocks to the contract so that they can be persisted in the network.

Background:
	Given I am the Childchain
	And I have pending blocks

Rule: The Childchain can submit blocks in order

@wip
Scenario: Submits multiple blocks in order

Rule: The Childchain recovers from submission failures

@wip
Scenario: Retries block submission if it fails
	When I submit a block
	And the submission fails
	Then I will re-submit again

@wip
Scenario: Alerts team if block submission fails too much
	When I submit a block
	And the submission fails
	And I re-submit to the retry limit
	Then I notify the team

Rule: The Childchain sets the correct gas price to ensure block gets submitted

Rule: The Childchain can recover from re-orgs

Rule: The Childchain submits the block securely through Vault

Checklist

[ ] Scenario: Retries block submission if it fails
[ ] Scenario: Submits multiple blocks in order
[ ] Scenario: Alerts team if block submission fails too much

Previous issue body:

[ ] determining the cadence of forming/submitting blocks to Ethereum.
[ ] keeping a queue of blocks lined up for submission to Ethereum.
[ ] determining correct gas price and ensuring submissions get mined eventually

DOne.