Feature request - auto clip/crop

It would be great if you could call:
page.screenshot({clip: "auto"})

And have puppeteer remove any excess white space (or transparent space if called with omitBackground: true).
This would be useful when using puppeteer to generate images of components within a component library.

This could potentially be done using image.autocrop from https://github.com/oliver-moran/jimp

I'm not sure this fits without our guidelines for taking on new deps:
https://github.com/GoogleChrome/puppeteer/blob/master/CONTRIBUTING.md#adding-new-dependencies

I don't think this is within the scope of Puppeteer. As you mention, there are existing libraries for auto cropping so embedding one in Puppeteer doesn't provide any big wins.

I want to add the following comment to help people who landed on this issue, by googling for a solution, like me.
Solution
ElementHandles do have bounding boxes! so we can do the following:
/// <summary>
/// Convert html into an img
/// </summary>
public async Task<Stream> GenerateImage(string html)
{
    await page.SetContentAsync(await HtmlWriter.Tagged(html, "div", [
        new("id", "content"),
        new("style", "padding: 1rem;"),
    ])); // Wrapping whatever html we got into a div, so we are sure we can select it all.

    var contentElement = await page.QuerySelectorAsync("#content")!; // Selecting the content as an ElementHandle
    var boundingBox = await contentElement!.BoundingBoxAsync()!; // This ElementHandle gives us a bounding box
    _defaultScreenshotOptions.Clip = new Clip { Width = boundingBox.Width , Height = boundingBox.Height }; // Clip the frame the bounding-box of the content element

    return await page.ScreenshotStreamAsync(_defaultScreenshotOptions);
}

forgive me for posting C# here, I took this straight from my own project. It's the concept that matters, and the API is very similar regardless.
Here I take a preloaded page and set its content to whatever was passed to the method, but wrapped in a div with some padding.
I then select that same div to extract its bounding box.
Finally I use that bounding box to clip the screenshot.
Some things to take into account:

If the content is larger than the page itself, this will fail. (workaround might be just a really big page, or setting the page based on the content)
This solution does not take scaling into account (I haven't used scaling anywhere, so I'm not even sure how that would affect things)

Scope and such things
I think this is a fairly elegant solution, and should probably have been the original answer. (Although I'm sure its implementation could be better)
Puppeteer has the context of the spacing and sizing of the elements on the page. Surely using this is more efficient than scanning for the content on some rasterized data.
So I think defining where content starts and ends is very much within the scope of the project, as it is already done.


[refs #525] Hide search results downdown on page scroll

Description
Resolves #525
Checklist

[ ] Tested against our testing policy (Resolution, Browser & Accessibility)
[ ] Follows our coding standards and style guide
[x] CHANGELOG entry

Need to check the behavior of this on mobile devices. The dropdown disappears on scroll but the search box remains open and you have clear the text input field before you can get the autocomplete again.

Spoke to @sabi98 and we've decided that is a non-issue, the behavior should be left as it is to avoid causing complications on different devices/assistive technology.


Commander spams the nsh console on SITL

Describe the bug
On the process of testing the micro RTPS bridge between a SITL client (with Gazebo) and the agent, I get the following warning msgs on the output of the nsh console:
WARN  [px4] commander: px4_sem_timedwait failure: ret: 110, Connection timed out
WARN  [cdev] commander: px4_poll() sem error: Success
WARN  [px4] commander: px4_sem_timedwait failure: ret: 110, Connection timed out
WARN  [cdev] commander: px4_poll() sem error: Success

which repeat themselves over time. The same does not happen if one builds the posix build using _default instead of _rtps.
I am testing latest upstream master. This may have been introduced by the latest changes on SITL and with the lockstep feature.
I am currently trying to find if this is just a warning or if this is introducing some sort of problem or breaking some functionality. Though, this wasn't happening before.
@julianoes @MaEtUgR any tips on what's causing this?
To Reproduce
Platform: Ubuntu 18.04 with Gazebo 9.

Clone upstream master;
Issue make px4_sitl_rtps gazebo;
Observe the above lines on the nsh console output.

Expected behavior
A clean console output.
Log Files and Screenshots

Hm, two things are odd:

Why does px4_poll time out?
Why does it say sem error: Success.

I think the first one we need to figure out for _rtps and the second one is probably just unclear user feedback.

Couple notes: Both happens when handling ETIMEDOUT. The definition of this is:
#define ETIMEDOUT       110     /* Connection timed out */
I would look for sign errors (usage of 110 vs. -110) in the handling of the error. In particular around this section here:
https://github.com/PX4/Firmware/blob/73ed9deac507c86892afadee5bca2024b5b8da17/platforms/posix/src/px4_layer/px4_sem.cpp#L143-L152

If you look at the above tracing the code would suggest that you can't have the printf() with error 110 as it is explicitly ruled out.

Commit to blame is 98ae0186e93 - I don't know why the errno change slipped through in the review, but it seems an unnecessary change.


Action not defined

Hey,
am getting this after installation. Know what the issue is?
http://screencloud.net/v/Dq5n

Hi,
maybe you forgot to load the service provider in your config/app.php?
Cheers,
Andy

Am 07.04.2015 um 18:38 schrieb Shrenik Patel<EMAIL_ADDRESS>Hey,
am getting this after installation. Know what the issue is?
http://screencloud.net/v/Dq5n
—
Reply to this email directly or view it on GitHub.

Hey,
It does exist.
http://screencloud.net/v/ymM8
Shrenik

Can't get it working for the life of me.
The service provider is there in providers array in config/app.php .
I have required the laravel 5 version of the package. Ran composer install, and dump-autoload multiple times.
Also did run the artisan command, no errors there, it told me it has cleared the messages cache.
Happens when I include and yield from the view.  Please help.

Yeah, I'm just coming home. Give me some time to have a look at it and I will let you know.

Am 07.04.2015 um 19:43 schrieb Shrenik Patel<EMAIL_ADDRESS>Can't get it working for the life of me.
The service provider is there in providers array in config/app.php .
I have required the laravel 5 version of the package. Ran composer install, and dump-autoload multiple times.
Also did run the artisan command, no errors there, it told me it has cleared the messages cache.
Happens when I include and yield from the view. Please help.
—
Reply to this email directly or view it on GitHub.

Thanks a bunch,just to let you know the service provider is being loaded fine cause if I echo out in foo in the register function of jsLocalizationServiceProvider, it does it echo it.

Did you use the right branch matching your Laravel version when requiring the package?

Am 07.04.2015 um 20:27 schrieb Shrenik Patel<EMAIL_ADDRESS>Thanks a bunch,just to let you know the service provider is being loaded fine cause if I echo out in foo in the register function of jsLocalizationServiceProvider, it does it echo it.
—
Reply to this email directly or view it on GitHub.

Yes I did. I used dev-laravel-5. My Laravel version is 5.0.27

Can you please try the following modification?
in vendor/andywer/js-localization/src/routes.php change Route::get('/js-localization/messages', 'JsLocalizationController@createJsMessages'); to Route::get('/js-localization/messages', '\JsLocalizationController@createJsMessages');.

Or try adding use \JsLocalizationController; to the top of the routes.php

Tried both each at a time and together. Still the same error.

I think the problem is that your app is looking for a App\Http\Controllers\JsLocalizationController instead of a \JsLocalizationController. But I am not yet sure why it does not let you change this behavious or why I do not encounter the same problem.
I will try writing a fix this evening.

Hmm, alright :)

Another thought: Could you try wrapping the routes in the package's routes.php in
Route::group(['namespace' => '\'], function()
{
    // the routes go here
});

?
(try 'namespace' => '' if this does not work)
I can easily write a clean solution if this actually solves the problem.

http://screencloud.net/v/ued3
Tried both, unfortunately the same :(

Ok so I did the following

In routes group, I did http://screencloud.net/v/8iaz i.e add "JsLocalization" to namespace. and then
In head.blade.php, src="{{ action('\JsLocalization\JsLocalizationController@createJsMessages') }}">
It shows me this output instead of the error
http://screencloud.net/v/uUIv
but in console it fails to fetch the http://shrenik.con-dev.app/js-localization/messages with 500 internal error.
The logs show this error:
[2015-04-08 17:03:55] local.ERROR: exception 'ReflectionException' with message 'Class JsLocalization\JsLocalizationController does not exist' in /usr/share/nginx/html/con-dev/sub/vendor/laravel/framework/src/Illuminate/Container/Container.php:776

Ok, I am pretty certain I have got a working quick-fix for now:
Do not touch your namespace "JsLocalization" fix.
Move src/controllers/JsLocalizationController to src/JsLocalization/JsLocalizationController.
Run php artisan dump-autoload.

Nope, still the same. :(

Ok, I will write a fix (this evening, hopefully). I tell you when I am ready, so you can require the fix and test if it works.

Alright cool :)

Please require "andywer/js-localization": "dev-develop" in your composer.json and run a php artisan dump-autoload.
Tell me if it works :)

It works :) Will you be merging the branch or should I keep "dev-develop" for now?

Already merged into laravel-5 ;)
Thank you!

Great, I shall pull that. Thanks a bunch.

Thank you very much for your effort making this package to work with Laravel 5


feat(tracing): better support for tracing in ephemeral processes

Better support for ephemeral (short lived) processes. With the option config.tracing.ephemeralProcess: true (or the environment variable INSTANA_EPHEMERAL_PROCESS=true), the behaviour of @instana/collector changes to better support ephemeral processes:

Start to capture spans before a connection to the Instana agent has been established.
Keep the process alive until the spans have been successfully sent to the Instana agent or a timeout has been reached (default timeout is five seconds, configurable via config.tracing.maxKeepAliveUntilSpanBufferIsEmpty or environment variable INSTANA_MAX_KEEP_ALIVE_UNTIL_SPAN_BUFFER_IS_EMPTY).

TODOs:

[ ] Find a solution for span.f.h.
[ ] Migrate the Bull worker process specific keep alive loop to the more general concept introduced here.
[ ] Test this more extensively in various real life scenarios.
[ ] Fix (or exclude) Node.js 8 tests.

closing as stale for now


📝 docs(README): add arichtman blog to showcase

Summary
Added my website to the "using tabi" section
Related issue
None
Changes
Only README.md
Accessibility
No changes to website or CSS etc.
Screenshots

Type of change

[ ] Bug fix (fixes an issue without altering functionality)
[ ] New feature (adds non-breaking functionality)
[ ] Breaking change (alters existing functionality)
[ ] UI/UX improvement (enhances user interface without altering functionality)
[ ] Refactor (improves code quality without altering functionality)
[x] Documentation update
[ ] Other (please describe below)

Checklist

[ ] I have verified the accessibility of my changes
[ ] I have tested all possible scenarios for this change
[ ] I have updated theme.toml with a sane default for the feature
[ ] I have made corresponding changes to the documentation:

[ ] Updated config.toml comments
[ ] Updated theme.toml comments
[ ] Updated "Mastering tabi" post in English
[ ] (Optional) Updated "Mastering tabi" post in Spanish
[ ] (Optional) Updated "Mastering tabi" post in Catalan

Thanks!


Request to move rustc_codegen_cranelift to the rust-lang org

If https://github.com/rust-lang/rust/pull/81746 gets accepted cg_clif will likely be distributed with rustup starting next month: https://github.com/rust-lang/rust/pull/81746#issuecomment-1774172234
Write permission should be given to me and probably the compiler team.

If you add me as an owner/collaborator on the repo or transfer it to me, I can move it into the rust-lang org. Please file a PR to rust-lang/team creating the repo file (and either granting permissions there or via a new sub team under compiler).

Transferred it to you.

Moved into rust-lang.


Using StencilFlow with Python source code

Hi there,
I am interested in optimising a stencil code written in Python using StencilFlow. From what I see in the repository and from what I read on your paper it is possible to do so by generating the SDFG from DACE and then transforming this into a JSON StencilFlow file with the tool bin/sdfg_to_stencilflow.py. Unfortunately, I haven't been able to do so, as I'm getting the error ValueError: Program has no outputs. Here a small code to reproduce:
import dace
import numpy as np

DIM = 10

@dace.program
def jacobi(a: dace.float64[DIM,DIM], b: dace.float64[DIM,DIM]):
    for i in range(1,DIM-1):
        for j in range(1,DIM-1):
            b[i] = b[i] + 2*a[-1,0] - 2*a[1,0] + 2*a[0,-1] - 2*a[0,1]

if __name__ == "__main__":
    a = np.array([[0 for j in range(DIM)] for i in range(DIM)], dtype=np.double)
    b = np.array([[0 for j in range(DIM)] for i in range(DIM)], dtype=np.double)
    jacobi(a,b)

I just fed the .sdfg file in .dacecache/jacobi to bin/sdfg_to_stencilflow.py. Is there any fundamental annotation that's missing? I wouldn't want to modify the source code, is it possible to run StencilFlow on this code as-is other than some basic annotations?
Note: I am using the DACE version that is frozen as submodule in this repository.
Thanks,
Gabriel

Hey Gabriel, I can try reproducing myself when I'm back a computer, probably the stencil detection in DaCe programs is somewhat sensitive to the format.
Did you consider writing the JSON directly? It should be fairly straightforward if you program is not humongous 🙂

Hey Johannes,
Yeah, I've seen the JSON is quite nice and straightforward, but my program is actually quite large. If you could try to reproduce the issue and let me know if what I'm trying to do is currently supported that'd be helpful :).

I apologize for the wait, I realize it might be too late for you now. I am no longer in academia, so it's hard to find some free time to look into this, and I no longer have access to a machine with an FPGA or with the FPGA tools installed.
It took me a while to get DaCe running, it seems to only work with Python 3.8 and Sympy 1.7, but I finally managed to reproduce your issue.
It's been a long time since I worked with this code, but looking at the code I don't believe sdfg_to_stencilflow.py is intended to infer/detect stencils; it relies on stencil library nodes already being present in the program. You would need to provide an input SDFG that is already in this form. There is some stencil detection functionality in DaCe, but I think it's risky to rely on this in the general case.
Unfortunately I think the only solution that would reliably give you a representative program with StencilFlow is somehow generating the input JSON files, if not by hand, then somehow scripted.
Keep in mind that the focus of the paper is compiling a stencil DSL; not so much inferring stencils from imperative code in the first place - the code you found is fairly specialized bridge to handle specific stencil programs output by a climate/weather frontend.

Thank you for taking the time to reproduce the issue @definelicht. It seems the best way to go to take advantage of the optimisations present in StencilFlow is writing the JSON file. This solves the issue :).


Update to version 0.0.5

Hi! This is the friendly automated conda-forge-linting service.
I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.
Here's what I've got...
For recipe:

requirements: run: aehmc >= 0.0.6 should not contain a space between relational operator and the version, i.e. aehmc >=0.0.6

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Exhaustive list of container requirements

Some of the extremely stripped-down containers available on Docker Hub, especially those based on Alpine Linux, don't satisfy these minimum requirements.

Please list the full requirements of a docker image. As the nodejs binary is mounted by the agent, we don't know what are its dependencies and you ask us to blindly install extra libraries.
So far, my alpine container still fails at the container initialization stage, but I could go further in this stage by blindly installing libc6-compat, gcompat, libstdc++, libgcc. Now it fails when doing:
##[command]/usr/bin/docker exec  e581d30e8124a7f2c18f29a59f84d67e07620fcb1d091a756e222eb533289db9 bash -c "grep 1001 /etc/passwd | cut -f1 -d:"

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

ID: 3339a2e0-be29-1363-f588-b231d4472c02
Version Independent ID: 72dd11a3-704d-d0fd-6dfa-cf49f3352de3
Content: Container Jobs in Azure Pipelines and TFS - Azure Pipelines
Content Source: docs/pipelines/process/container-phases.md
Product: devops
Technology: devops-cicd
GitHub Login: @thomps23
Microsoft Alias: macoope

Still stuck so far, using the container of the following Alpine Dockerfile

@Julio-Guerra I've reached out for more information on the requirements and will let you know when there is an update.

"Some of the extremely stripped-down containers available on Docker Hub, especially those based on Alpine Linux, don't satisfy these minimum requirements."
Please list the full requirements of a docker image. As the nodejs binary is mounted by the agent, we don't know what are its dependencies and you ask us to blindly install extra libraries.
So far, my alpine container still fails at the container initialization stage, but I could go further in this stage by blindly installing libc6-compat, gcompat, libstdc++, libgcc. Now it fails when doing:
##[command]/usr/bin/docker exec e581d30e8124a7f2c18f29a59f84d67e07620fcb1d091a756e222eb533289db9 bash -c "grep 1001 /etc/passwd | cut -f1 -d:"
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 3339a2e0-be29-1363-f588-b231d4472c02
Version Independent ID: 72dd11a3-704d-d0fd-6dfa-cf49f3352de3
Content: Container Jobs in Azure Pipelines and TFS - Azure Pipelines
Content Source: docs/pipelines/process/container-phases.md
Product: devops
Technology: devops-cicd
GitHub Login: @thomps23
Microsoft Alias: macoope

@Julio-Guerra The list of requirements for Linux-based containers should be comprehensive. Please let us know if you have discovered any undeclared dependencies. The challenge we have run into in the past is that some of the Docker Hub containers do not meet these requirements.

@juliakm this link is incomplete and that's why I was asking for every details. For example it also needs libc6, libstdc++, libgcc, and sudo. But the container still fails later in the container inits made by azure.  Alpine uses an alternative C runtime called musl.
We're working on extending our container support. In the meantime, we document a mechanism to use an Alpine-based container (but know that you're playing on "hard mode" at this point :grin:). See this doc for instructions.

It now works @vtbassmatt based on the doc example <3
Thanks!
For the record, dockerfile for go on alpine on azure pipeline
FROM node:10-alpine

RUN apk add --no-cache --virtual .pipeline-deps readline linux-pam \
  && apk add bash sudo shadow \
  && apk del .pipeline-deps

LABEL "com.azure.dev.pipelines.agent.handler.node.path"="/usr/local/bin/node"

# Go and gcc (go dependency) + libc6-compat to have the libc6.so symlink to muslc
RUN apk add 'go~1.12' libc6-compat

CMD [ "node" ]

Alpine containers are not glibc-based, which is a documented requirement. Alpine uses an alternative C runtime called musl.
We're working on extending our container support. In the meantime, we document a mechanism to use an Alpine-based container (but know that you're playing on "hard mode" at this point 😁). See this doc for instructions.

@vtbassmatt What is the current status with supporting Alpine based images in Azure pipelines. It's been a 3y from last updated...
Thanks

@vtbassmatt What is the current status with supporting Alpine based images in Azure pipelines. It's been a 3y from last update... Thanks

I haven't worked on Azure Pipelines in years, so I have no idea, sorry. AFAIK the documentation that I pointed to in 2019 is still the latest.


Accessibility: Contact Journal Edit Screens not announced (EXPOSUREAPP-4456)

This PR addresses following issues:

Announcement of the edit screens (both places and person) on Samsung devices.
Announcement of the Contact Journal Onboarding Screen on Samsung devices.

To test this changes: Activate TalkBack on a Samsung Device, go to the Contact Journal Tab and open the edit screens. Titles should now be announced.

I tried on a Xiaomi as do not have a Samsung device. There it is announced twice, once from the constraint layout and once from the toolbar. I suppose it is only announced once on Samsung.

@chiljamgossow yes, on my Samsung device it is announced only once. But I just tested the changes on my P30 and it is also announced twice... I will test this again, since the double announcement also occurs in other parts of the app which wasn't affected by my changes

@axelherbstreith How about removing the part that is not announced on Samsung?

@chiljamgossow Already tried that, but somehow then the screen is not announced on Samsung again (at least on my phone), really weird... there must be an easier way, need to invest some more time there :)


refactor: checksum operations into pure functions

What I did

Change the algorithm into a str enum type
Add support for sha3 and sha256 algos
Change Source.load_content and Source.compute_checksum mutating methods on Source to instead be pure functions derived from the information in Source
NOTE: This is a breaking change, and will require using the Source class slightly differently, including updating it with a new version of itself if you wish to store files in a different way than it may have originally specified. Also note that the content will still fetch itself when requested, but it is not no longer being updated in Source object (see previous note)
Fix a bug with hash type sizes in BIP122 URI
Added a property to verify checksum correctness
Add a Hex type to further validate hex-encoded strings for addresses, blocks, transactions, checksums, and bytecode types
NOTE: This is somewhat a breaking change because now all hex types (except BIP122 URIs) must be prepended w/ 0x (see changes to OpenZeppelin manifest). Should be interoperable as long as you purge any cached manifests.

fixes: #16
How I did it
Heavier use of Pydantic
How to verify it
Validate changes required to ape core
Checklist

[x] Passes all linting checks (pre-commit and CI jobs)
[x] New test cases have been added and are passing
[x] Documentation has been updated
[x] PR title follows Conventional Commit standard (will be automatically included in the changelog)

This is breaking change, need to coordinate upgrade w/ ape core


Make it very clear in the documentation that it is recommended to run OSIAM over HTTPS

As discussed in osiam/osiam#12, we want to explicitly state in the documentation, that OSIAM should always be used with HTTPS. Maybe we should give some some advice on how to do that, too.

Is this already enough?

Yes.


Cloud Access - Not being asked for secure pin for cover device

Home Assistant release with the issue:
0.93.0

Last working Home Assistant release (if known):
None
Operating environment (Hass.io/Docker/Windows/etc.):
Ubuntu 16.04 Server with Docker on top of Proxmox

Component/platform:
https://www.home-assistant.io/components/cloud/

Description of problem:
I am using Home Assistant Cloud via Nabu Casa to expose devices to my Google Homes. I have set a pin in the control panel and, for secure devices, I have exposed 2 locks a 1 cover component. When I asked to lock/unlock a door, it asks for my pin. When I ask to open/close my garage door, it just opens/closes without asking me for my pin.  Other components like lights and switches work normally.
I am using a somewhat abnormal setup in that I have a regular cover component setup, but I also setup a template cover component so I can add conditions to garage door actions (e.g. operation based on alarm status). I have exposed this template cover. This setup works fine from the front end.
As a test, I have also tried just exposing the regular cover (non-template component) and restarting Hass. On the first try, it asked for a pin. On the second, it didnt. I then re-exposed only the template cover and restarted Hass again. On the first try, it asked for a pin. Awhile later, I tried again and was not asked for a pin. I did Sync Devices after each change and verified the correct component was exposed in the Google Home app.
The security pin aspect for covers seems very hit and miss. My door locks ask for a pin every time (I wish I could disable that for just locking though)
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):
Template Cover:

  - platform: template
    covers:
      garage_door:
        friendly_name: "Garage Door"
        value_template: "{{ is_state('cover.d45_garage_door_opener', 'open') }}"
        open_cover:
          service: script.garage_door_open
        close_cover:
          service: script.garage_door_close
        icon_template: >-
          {% if is_state('cover.d45_garage_door_opener', 'open') %}
            mdi:garage-open
          {% else %}
            mdi:garage
          {% endif %}

Referenced Scripts:

garage_door_open:
  alias: 'Garage Door Open'
  sequence:
    - service: script.garage_notify
    - condition: state
      entity_id: input_boolean.mode_armed
      state: 'off'
    - service: cover.open_cover
      entity_id: cover.d45_garage_door_opener
    - delay: 00:00:30
    - condition: state
      entity_id: cover.d45_garage_door_opener
      state: 'closed'
    - service: notify.gregg_pushover
      data:
        title: 'Garage Door Failure'
        message: 'The Garage Door did not open or there is an issue with a sensor'

garage_door_close:
  alias: 'Garage Door Close'
  sequence:
    - service: script.garage_notify
    - condition: state
      entity_id: input_boolean.mode_armed
      state: 'off'
    - service: cover.close_cover
      entity_id: cover.d45_garage_door_opener
    - delay: 00:00:30
    - condition: state
      entity_id: cover.d45_garage_door_opener
      state: 'open'
    - service: notify.gregg_pushover
      data:
        title: 'Garage Door Failure'
        message: 'The Garage Door did not shut or there is an issue with a sensor'

garage_notify:
  alias: 'Garage Notify'
  sequence:
    - condition: state
      entity_id: input_boolean.mode_armed
      state: 'on'
    - service: notify.gregg_pushover
      data:
        title: 'The Alarm is On'
        message: 'Cannot open the Garage Door while the Alarm is On'

In my cloud.yaml file:
  google_actions:
    filter:
      include_entities:
        - cover.garage_door #template cover
        - cover.d45_garage_door_opener #regular cover
#including both here as an example, but I only exposed one at a time when testing.

Traceback (if applicable):
None

Additional information:

You need set your template cover's device_class to door or garage .

You need set your template cover's device_class to door or garage .

I did this and so far so good. Thanks.
I still had a few times when I wasn't asked for a code (and a few I was) when I exposed the actual z wave cover component to experiment. I will try and test this out some more tomorrow to reproduce it.

You only get asked for a code to open or unlock, not to close or lock.

I tested this today and it works for me. Reopen if still an issue.

You only get asked for a code to open or unlock, not to close or lock.

I get asked for a code to lock my locks all the time. I will have to test for closing my garage door though.

I just tested locks as well, they seem to be working as specified for me. Are you sure you're using the latest version? It changed in this version. I tested it on 0.93.1.


Negative loss

I am currently training the bev model with my dataset.
However, after enough steps, the total loss becomes negative as shown below.

After debugging, when calculating uncertainty_loss(ce_uncertainty_loss, center_uncertainty_loss, offset_uncertainty_loss),
weight(model.module.ce_weight, model.module.center_weight, model.module.offset_weight) is negative.

Are there any possible causes?

Negative loss is OK here. For context you can check these:
https://github.com/yaringal/multi-task-learning-example
https://arxiv.org/abs/1705.07115

Negative loss is OK here. For context you can check these:
https://github.com/yaringal/multi-task-learning-example
https://arxiv.org/abs/1705.07115

@aharley
Thank you so much!


Improve accessibility in SearchModal component

Replaced aria-labelledby with aria-label for the dialog element to provide a directly accessible name.
Added aria-modal="true" attribute to indicate that the dialog behaves as a modal.
#22906

Oh sorry - could you make a changeset (yarn changeset) on a patch level so that this gets shipped as well?

Can you please explain more what should i change

Run the command yarn changeset as described above and follow the instructions, and commit the created file with this PR.


ascii progressbar

There is a strange bug in the interaction between boto3 and click progressbar. The safest workaround: use ascii characters in the progressbar.
Fixes #97

########## 💯
Good catch, @perrygeo!


Consider letting software initialize cqt, fqh, and pqh

The current IOMMU spec says that when a queue is enabled, its head and tail indices are both automatically set to zero.  To quote:

Changing cqen from 0 to 1 sets the cqh and cqt to 0.

Changing fqen from 0 to 1, resets the fqh and fqt to 0.

Changing pqen from 0 to 1, resets the pqh and pqt to 0 ....

I see no reason why the IOMMU hardware needs to zero cqt, fqh, or pqh.  Software can write these registers, so leaving it to software to initialize them would save a little hardware.  If software fails to do so, the consequences are already well-defined.

Zeroing of cqt, fqh, and pqh is not a big burden for hardware but allows for hardware as well as verification simplification by avoiding registers that are hardware writable as well as software writable.

Your response contradicts itself.  Having the hardware zero cqt, fqh, and pqh makes the registers be "hardware writable as well as software writable", exactly what you said should be avoided.  If you really want these registers to be only software-writable, then you should accept the change proposed by this issue.

Sorry I misread you asking for the read-only registers to be made writable. Zeroing of cqt, fqh, and pqh is driving a reset to the register. These registers are warl allow only N bits for a queue of size 2^N to be writable and reset to 0 helps enforce that.

Zeroing of cqt, fqh, and pqh is driving a reset to the register.

Reset isn't free.  Registers without reset are generally cheaper in hardware.  That's why the RISC-V ISA says most ISA registers have unspecified value after reset.

These registers are warl allow only N bits for a queue of size 2^N to be writable and reset to 0 helps enforce that.

It does no such thing.

It does no such thing.Please see - "Only LOG2SZ-1:0 bits are writable."

If we accept the resolution to #99 then this issue becomes moot and the clearing of cqt,  fqh, and pqh can be removed on off->on transition.

PR #101 to address the issue.


The "Start Desktop" command doesn't seems to be doing anything

When I click on "Start Desktop" nothing happens. Installation went well:
Installation Completed.
Notifying c9.io that package is installed
Successfully installed<EMAIL_ADDRESS>

The START Command does nothing nor even print any information or warning. I tried to understand the problem by digging in the archives:
$ cat supervisord.conf
[supervisord]
nodaemon=true
[program:xvfb]
command=/usr/bin/Xvfb :99 -screen 0 1280x864x16 -ac -pn -noreset
[program:x11vnc]
command=x11vnc -forever -shared -rfbport 5900 -display :99
[program:novnc]
command=/home/ubuntu/noVNC/utils/launch.sh --vnc localhost:5900 --listen %(ENV_PORT)s
[program:fluxbox]
command=fluxbox
environment=DISPLAY=:99
===
I tried to execute each command from the shell. And the following command gives me some errors:
$ /home/ubuntu/noVNC/utils/launch.sh
Warning: could not find self.pem
No installed websockify, attempting to clone websockify...
fatal: could not create work tree dir '/home/ubuntu/noVNC/utils/websockify': Permission denied
Unable to locate /home/ubuntu/noVNC/utils/websockify/run after downloading
===
Obviously, it needs root access to install "websockify":
$ sudo /home/ubuntu/noVNC/utils/launch.sh
Warning: could not find self.pem
No installed websockify, attempting to clone websockify...
Cloning into '/home/ubuntu/noVNC/utils/websockify'...
remote: Counting objects: 3595, done.
remote: Total 3595 (delta 0), reused 0 (delta 0), pack-reused 3595
Receiving objects: 100% (3595/3595), 4.36 MiB | 0 bytes/s, done.
Resolving deltas: 100% (2336/2336), done.
Checking connectivity... done.
Using local websockify at /home/ubuntu/noVNC/utils/websockify/run
Starting webserver and WebSockets proxy on port 6080
WARNING: no 'numpy' module, HyBi protocol will be slower
WebSocket server settings:
Listen on :6080
Flash security policy server
Web server. Web root: /home/ubuntu/noVNC
No SSL/TLS support (no cert file)
proxying from :6080 to localhost:5900
Navigate to this URL:
http://angelgarcia60-juez-3005296:6080/vnc.html?host=angelgarcia60-juez-3005296&port=6080
Press Ctrl-C to exit
===
Here we go. The server is up an running although with incorrect ports, etc. I kill it (Ctrl-C).  All is working pretty good now. :)

@fasatrix If you open up your developer console, do you see messages like this

novnc (exit status 1; not expected)
over and over and over again?

If so, try changing permissions of the noVNC folder installed:

sudo chown -R ubuntu:ubuntu ~/noVNC
restart the workspace & then go for it again.

Yes. Thanks. It works!!!

hey guys, sorry for the extremely late response. But glad to see ya'll got it working!


--failure-level ERROR argument does not work

Hello,
Expected:
--failure-level argument behaves like in Asciidoctor.js
Observed:
--failure-level ERROR does NOT lead to an exit code != 0 even on build errors
Version:
Asciidoctor Web PDF 1.0.0-alpha.14 using Asciidoctor.js 2.2.6 (Asciidoctor 2.0.17) [https://asciidoctor.org]
Ninja build log with asciidoctor-web-pdf :
[build] [1/1 100% :: 5.820] cd release_plan && asciidoctor-web-pdf index_pdf.adoc --failure-level ERROR -r asciidoctor-kroki -a stylesheet="+/shared_parts/styles_pdf.css,/shared_parts/styles_common.css" -a webfonts! -D release_plan -o release_plan.pdf
[build] asciidoctor: ERROR: revisions.adoc: line 8: include file not found: revisions/r_0_1_0.adoc
[build] Build finished with exit code 0
Ninja build log with asciidoctor.js:
[build] [1/1 100% :: 0.575] cd release_plan && asciidoctor index.adoc -r asciidoctor-kroki -D build -b xhtml5 -a webfonts! -a linkcss -a copycss --failure-level ERROR
[build] FAILED: build/index.html
[build] cd release_plan && asciidoctor index.adoc -r asciidoctor-kroki -D build -b xhtml5 -a webfonts! -a linkcss -a copycss --failure-level ERROR
[build] asciidoctor: ERROR: revisions.adoc: line 8: include file not found: revisions/r_0_1_0.adoc
[build] ninja: build stopped: subcommand failed.
[build] Build finished with exit code 1

blob@babble:~/xyz$ asciidoctor-web-pdf --help
asciidoctor-web-pdf [files...]

Options:
  ... cut come lines ...
      --failure-level     set minimum logging level that triggers non-zero exit code
  [choices: "info", "INFO", "warn", "WARN", "warning", "WARNING", "error", "ERROR", "fatal", "FATAL"] [default: "FATAL"]

Why is it an improvement if a function that is show in help works as expected?

Asciidoctor Web PDF inherits from the Asciidoctor CLI (https://github.com/asciidoctor/asciidoctor-cli.js) mainly to avoid duplication but this feature is not implemented/supported.
Arguably it could be a "bug" but I don't know how to implement it that's why I'lm using "improvement" because we need to define the behavior of this option in this context.
I could also treat it as a bug and remove the option from the --help (since it's not supported and I don't know how to support it) but I don't think that's what you are asking 😉

Thanks, what about cherry-picking the failure-level implementation revision from asciidoc.js so that at least the asciidoc rendering part is covered?


Deployment seems to do nothing

Applying the daemonset on kubernetes 1.11.0, Ubuntu with a kernel of 4.15. Once applied nothing happens, cannot see it in the Scope UI or in /var/run/scope/plugins on any Kubernetes nodes. However, I can see the IOWait plugin sitting there.

+1


Only Simulator -> PQ dependency allowed.

Summary
I'm very confused how I'm getting the error. As have only used PQ methods in my simulator file.
Description:
The only time PQ is "used" in  another class is when I'm returning a Pair<ImList, PQ>
Code Snippets
E.g. Sever class which returns a new pair after customer arrive and there's an available server

Screenshots

dumbdumb me PQ totally cannot be in other class 😭


(MAINT) moving from stable to a release for facter & hiera

This is in our puppet_git acceptance tests.
This will make our testing more stable in the future (movie from release to release rather than running on a branch).

@anodelman I've already run this branch against the puppet_git acceptance job (internal link), and it passes.  This code only effects that acceptance test, so no other testing should be needed.
Let me know if you have any questions about this.

@kevpl i'll merge this - please re-enable the acceptance test.

Refer to this link for build results (access rights to CI server needed):
http://jenkins-beaker.delivery.puppetlabs.net//job/qe_beaker_btc-intn/889/
Test FAILed.

@anodelman the acceptance test has been re-enabled. Everything after combined #54 should have this run with it.


Support for Coffeescript and other languages

I'm developing a plugin for taiko which is written in Coffeescript.
During development, I am requiring taiko as a devDependency to write some functional tests. These tests are also written in Coffeescript (and have a .coffee extension) and compiled on the fly to Javascript by Mocha (using coffeescript/register) prior to running them.
The following line gives the error message that I am receiving:
https://github.com/getgauge/taiko/blob/01997aa88e293953c4fc3d12fa531172a50ee360/bin/taiko.js#L33
I believe it is caused because there is explicit checking of the file extension, and since I am using a Coffeescript file, it is not allowing me to run my code.
https://github.com/getgauge/taiko/blob/01997aa88e293953c4fc3d12fa531172a50ee360/bin/taiko.js#L32
Do you feel this constraint could be made a little more flexible?
UPDATE
I previously closed this issue because I somehow got it working, but now I know what I did to get it to work.
If I installed taiko using npm install taiko I would get that error. However, if I simply added the git repository to my package.json the program would run flawlessly. That is also what I am currently doing 😄
I'm not exactly sure what's at play here, because the code that I have referenced above is also present in the latest commit.
Thanks and regards,
Saurabh

Looks like it started working fine without any modifications.

@tkshnwesper The code you have mentioned is only used for taiko CLI.  As you can see this check here

Happens even when I import taiko as a dependency.

The problem is that this condition evaluates to true:
https://github.com/getgauge/taiko/blob/9e086d8c9bb76b9ce2c55cf0f0520d97e6ead56e/lib/util.js#L25
That's causing it to take the CLI's course of execution.
You could try it out on this repo.
Just change the version of taiko in package.json and run npm install and then npm run test-functional.

I think I realized why there is a discrepancy between when I clone the repo and when I use version 0.6.0.
In v0.6.0 the line says:
https://github.com/getgauge/taiko/blob/f86cf3ffd436f515b305b0f8a96b1f331d005ef6/lib/util.js#L24
Whereas in master the same line says:
https://github.com/getgauge/taiko/blob/9e086d8c9bb76b9ce2c55cf0f0520d97e6ead56e/lib/util.js#L25
So there has been a change between the two versions, and the change in master is fixing my issue it would seem.

@tkshnwesper Thaks for sharing your finding.

Feel free to reopen this issue if you face this issue again.


Technical support Telegram bot. (clients communication with a technical department,
creation tickets, managing issues states, responses, reports notifications)
Flutter
Bloc pattern, FireBase
Project: Organizer app with rich UI

RESPONSIBILITIES:
•	development and modification of software, fix errors, improvement software performance
•	implementation of software documentation
•	consultation on project status and proposals
•	work with customers or departments on technical issues
KEY SKILLS:
OOP, SOLID
RESTful API
Telegram API
Gitlab, CI/CD
DB`s: PostgreSQL, FireBase, MS SQL
Server
Agile/Scrum
L A N G U A G E S
English - Intermediate
Ukrainian - native
Russian - native

Thanks.


Unable to access Ollama embedding model on remote machine

I have Ollama running on a remote machine which I am attempting to access with embedchain, in particular the embedding model.
It appears that the following line of code is calling the ollama library that, by default, attempts to list the models on the local machine running ollama rather than leveraging the base_url being assigned to the base_url property of the OllamaEmbedderConfig object being created.
Below is my embedder config dictionary I am using:
"embedder": {
        "provider": "ollama",
        "config": {
            "model": "mxbai-embed-large:latest",
            "base_url": "http://<IP_ADDRESS>:11434"
        }
    }

Below is debug showing that the property is being set:
ipdb>  self.config
<embedchain.config.embedder.ollama.OllamaEmbedderConfig object at 0x7b73dfe31350>
ipdb>  self.config.base_url
'http://<IP_ADDRESS>:11434/'

Below is the GET request being made by the referenced code line:
> /opt/conda/envs/embedchain/lib/python3.11/site-packages/embedchain/embedder/ollama.py(22)__init__()
     20         super().__init__(config=config)
     21
---> 22         local_models = ollama.list()["models"]
     23         if not any(model.get("name") == self.config.model for model in local_models):
     24             logger.info(f"Pulling {self.config.model} from Ollama!")

/opt/conda/envs/embedchain/lib/python3.11/site-packages/ollama/_client.py(333)list()
    331
    332   def list(self) -> Mapping[str, Any]:
--> 333     return self._request('GET', '/api/tags').json()
    334
    335   def copy(self, source: str, destination: str) -> Mapping[str, Any]:

> /opt/conda/envs/embedchain/lib/python3.11/site-packages/httpx/_client.py(827)request()
    825             extensions=extensions,
    826         )
--> 827         return self.send(request, auth=auth, follow_redirects=follow_redirects)
    828
    829     @contextmanager

ipdb>  request
<Request('GET', 'http://<IP_ADDRESS>:11434/api/tags')>

Please let me know if there is any additional details I need to provide.
https://github.com/embedchain/embedchain/blob/04e77ef34eaf91a566f3e06f7965550d0df007b5/embedchain/embedder/ollama.py#L22

Hi @dpatschke My bad I missed that part. This PR will fix it.
Thanks for pointing this out!


Use programmatic content script injection

About
Another approach which can trim down the number of permissions we request - https://developer.chrome.com/extensions/content_scripts#programmatic

Turns out this isn't possible but there's a discussion over here - https://groups.google.com/a/chromium.org/forum/#!topic/chromium-extensions/YyVw0OEkUXA


Not all Collectibles are displayed

Closes #2036.
The Problem
In order to retrieve the data for collectibles we are fetching data from fetchErc20AndErc721AssetsList() and fetchSafeCollectibles(safeAddress), the first one brings all the tokens from the service and we filter them by type === ERC721 and the second brings all the NFT_TOKENS from the client gateway.
These responses are persisted in the store under two different keys nftAssets and nftTokens.
Then we have two reducers, one to retrieve all the NFT tokens and another to retrieve all the NFT assets (collection of NFT Tokens). The second one is created by iterating and grouping by address all the NFT Tokens and checking if the response is included in nftAssets. The problem is that fetchErc20AndErc721AssetsList has a limit of 3000 and some tokens are being left out, so the NFT Assets reducer is discarding some NFT Assets incorrectly.
The Solution
fetchErc20AndErc721AssetsList is unnecessarily called as far as I understand because all the data we need is provided by fetchSafeCollectibles so I did the minimum changes needed to respect all the TS interfaces and retrieve the same interface as before by iterating fetchSafeCollectibles to populate nftAssets.
Notes

I think we should do a little refactor in order to simplify the reducers, does not make sense to verify if an NFT Asset is included in nftAssets as it is returned by the GW now. Before it was necessary because the data was provided by Opensea so we had to check if the asset was known by the gnosis service.

I changed the name for two reducers in order to explain better what is the data they are returning.

@nicosampler, this PR is based on #2122? If so, should we change the into branch from development to fix/2048-sApp-section-dissapears?

@fernandomg don't pay attention to this PR. It should be on draft.

[ ] 0 appears on the screen while the collectables list is loaded

[ ] On mobile the NFT token groups are sorted alphabetically, should we have the same sorting on web ?

@liliya-soroka I think we should respect the same order of the Gateway as we are doing for balances.

@liliya-soroka

On mobile the NFT token groups are sorted alphabetically, should we have the same sorting on web ?

Can we create a different ticket for this? as it's not part of the bug reported.

great, I just wanted to add that it was sorted correctly before the fix ;)

I assume this is ready to merge.
Please feel free to create an additional issue if there's anything left to be done wrt string.


Add data attributes to track contact links

We already track the equivalent links on the homepage, this just applies the same data attributes to support links in the panel at the bottom of most pages and on the ‘Get in touch’ page.
This will help us to understand what channels users go to for support.
Also removes duplicated class attributes from links on the get in touch page.
https://trello.com/c/2lrSoUGg/1459-add-data-attributes-to-all-support-links

You can preview this change here:
Built with commit 29b1d7f85bbb2233849c49092f122b7db974b8a1
https://deploy-preview-563--govuk-design-system-preview.netlify.com


Create escalation policy with Error: "Error creating signal rule : resource not found: 'https://api.firehydrant.io/v1/teams/.../escalation_policies'"

Terraform Version

1.3.2

Terraform Configuration Files

# try 0.13 also get same error
 provider registry.terraform.io/firehydrant/firehydrant v0.12.1

Debug Output

Expected Behavior
Escalation policy should be created.
Actual Behavior
firehydrant_escalation_policy.users_policies: Creating...
╷
│ Error: Error creating signal rule : resource not found: POST 'https://api.firehydrant.io/v1/teams/9df2b2d4-1cef-49e8-a630-53b80166558e/escalation_policies'
│
│   with firehydrant_escalation_policy.users_policies,
│   on cre_team.tf line 24, in resource "firehydrant_escalation_policy" "users_policies":
│   24: resource "firehydrant_escalation_policy" "users_policies" {
│
╵

Steps to Reproduce

 User list
data "firehydrant_user" "users" {
  for_each = toset([
<EMAIL_ADDRESS>  ])

  email    = each.key
}

# CRE Team
resource "firehydrant_team" "cre_team" {
  name        = "CRE Team"

  dynamic memberships {
    for_each = data.firehydrant_user.users
    content {
      user_id = memberships.value.id
    }
  }
}

# Create escalation policy for each user
resource "firehydrant_escalation_policy" "users_policies" {
  # for_each = data.firehydrant_user.users
  name     = "Escalation Policy"
  team_id = firehydrant_team.cre_team.id

  step {

    targets {
      type = "user"
      id =<EMAIL_ADDRESS>    }

    timeout = "5M"
  }

  repetitions = 99
}

Additional Context

References

The same is happening when trying to create an oncall schedule on 0.13.2

@NasAmin
It's the rest API issue, not the provider.  I suggest you go submit a support ticket to Firehydrant.


Bump min PyJWT v2.4.0

There was a security advisory on PyJWT package: https://github.com/jpadilla/pyjwt/security/advisories/GHSA-ffqj-6fqr-9h24
I think it's best to require a minimum version of v2.4.0

Codecov Report

Merging #179 (29d0fb1) into main (9096d1b) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main      #179   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            9         9
  Lines          461       461
  Branches        98        98
=========================================
  Hits           461       461

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


Allow multiple ARNs for a single event definition

Description
There was a bug with AWS event source handling when trying to setup triggers on the same function from multiple events. Only 1 of the events would be setup. In the original setup, the following zappa_settings.json would result in the behaviour described:
{
    "prod": {
        "s3_bucket": "my-zappa-packages",
        "role_name": "my-zappa-role",
        "cloudwatch_log_level": "ERROR",
        "events": [
            {
                "function": "my_app.handle_my_trigger",
                "event_source": {
                    "arn": "arn:aws:s3:::my-first-bucket",
                    "events": [
                        "s3:ObjectCreated:*"
                    ]
                }
            },
            {
                "function": "my_app.handle_my_trigger",
                "event_source": {
                    "arn": "arn:aws:s3:::my-second-bucket",
                    "events": [
                        "s3:ObjectCreated:*"
                    ]
                }
            },
            {
                "function": "my_app.handle_my_trigger",
                "event_source": {
                    "arn": "arn:aws:s3:::my-third-bucket",
                    "events": [
                        "s3:ObjectCreated:*"
                    ]
                }
            }
        ]
    }
}

Whereas, with these changes, the following settings work as expected, setting up the event source triggers on each of the buckets in question:
{
    "prod": {
        "s3_bucket": "my-zappa-packages",
        "role_name": "my-zappa-role",
        "cloudwatch_log_level": "ERROR",
        "events": [
            {
                "function": "my_app.handle_my_trigger",
                "event_source": {
                    "arn": [
                        "arn:aws:s3:::my-first-bucket",
                        "arn:aws:s3:::my-second-bucket",
                        "arn:aws:s3:::my-third-bucket"
                    ],
                    "events": [
                        "s3:ObjectCreated:*"
                    ]
                }
            }
        ]
    }
}

Coverage decreased (-0.1%) to 74.225% when pulling 271504780ab39c820267a0f99e995188f084448a on jnhmcknight:multi-event-source into 7d38c157f575ab95c8dd25a9e42c9edaeb9c93a7 on Miserlou:master.


Escape double quotes character while validating object name

Escape double quotes character at ObjectNameValidator class to support select statements as
select familyName as "Family Name"

This feature -of using double quotes in alias- is supported from SQLite, PostgreSQL, MySQL, MSSQL etc and should be supported by @themost/query#ObjectNameValidator https://github.com/themost-framework/query/issues/106


'Error: Stream removed\n at /user_code/node_modules/grpc/src/client.js:554:15'

Environment details

OS: Google Cloud Functions
Node.js version: GCF version
npm version: GCF version
@google-cloud/datastore version: 1.3.3

Steps to reproduce

Perform a query in Datastore within a cloud function e.g.

const datastore = require('@google-cloud/datastore')({});

module.exports.myFunction = function() {
   datastore.get(key).then()....
}

This results in the above error. Same code works fine when run locally in Node (outside of cloud functions). I don't know whether this is more of a Cloud Functions bug or Cloud Datastore bug?

I got same error on my GCF project.
When my code was run at GCF, the code basically success but sometimes failed.
My case was below:

Deployed GCF project as HTTP triggers.
First access the endpoint, my code is failed(crushed).
Errors are:

Unhandled rejection
Error: Stream removed at /user_code/node_modules/@google-cloud/datastore/node_modules/grpc/src/client.js:554:15
Function execution took 504 ms, finished with status: 'crash'

After crashed, I accessed to run datastore code then those code success...
But 30 min. ~ few hours later I accessed, sometimes code got the error...

Related issue: https://github.com/grpc/grpc-node/issues/130
@callmehiphop Do we just need to downgrade all of the places we have a grpc dependency to ~1.7?

@stephenplusplus I believe that is correct :(

PRs sent:
https://github.com/GoogleCloudPlatform/google-cloud-node/pull/2784
https://github.com/googleapis/gax-nodejs/pull/165

Anything we can do locally to workaround Google's bureaucracy with updates?

@dgadelha I ended up downgrading to datastore version 1.1.0 for the meantime and I am not seeing the errors in that version. It will be good if there is a more permanent official solution soon.


Typescript example?

Hi, new user - Having issues with the Widgets using Typescript.  Keeps complaining that it doesn't like this construct for "widgetFunc" in TS:
     widgets: [
        {
            widgetName: "widgetOptions",
            widgetFunc: (props) => <WidgetOptions {...props} />,
        },
    ],

All examples I've seen are in JS, is there any full TS example out there?  After trying to fix things up myself, keep getting into more Type errors.
Thanks!

This seems to work, if you rename the config file to .tsx (not .ts)
    import { createChatBotMessage } from "react-chatbot-kit";
    import WidgetOptions from "./components/WidgetOptions";

    import IConfig from "react-chatbot-kit/build/src/interfaces/IConfig";

    export const config: IConfig = {
        initialMessages: [
            createChatBotMessage(`Welcome to our bot!`, {}),
            createChatBotMessage(`Would you like to continue?`, {
                widget: "widgetOptions",
                delay: 2000,
            }),
        ],
        widgets: [
            {
                widgetName: "widgetOptions",
                props: {},
                mapStateToProps: [] as string[],
                widgetFunc: (props) => <WidgetOptions {...props} />,
            },
        ],
    };


[macOS] Fix code completion list scrolling with trackpad.

See https://github.com/godotengine/godot/pull/94360

Thanks!


Roads on boundary unnecessarily broken up

In tile 19/123424/200482, W 24th St is broken up into 6 individual linestrings, despite there being only 2 original objects. The arcs are [11, 12, 13, 14] in one object. This turns out to be, after un-delta encoding:
11: [[813, 635], [674, 522]]
12: [[674, 522], [567, 466]]
13: [[567, 466], [440, 436]]
14: [[440, 436], [314, 412]]

So there are no gaps in the line. There might be some really small ones which are being covered up by the quantisation, but the WKT is:
MULTILINESTRING (
  (-10603283.9 4713231, -10603294.25 4713222.56),
  (-10603294.25 4713222.56, -10603302.27 4713218.41),
  (-10603302.27 4713218.41, -10603311.73 4713216.12),
  (-10603311.73 4713216.12, -10603321.1 4713214.33))

Which would indicate no gaps. So I think this is arguably a bug in how GEOS does its intersection; that at shared nodes it will split the intersection / difference part into a MULTI* geometry.

After mapzen/TileStache#92, the area in the example looks like (Note that I turned most of the round caps & joins to "butt", so it's probably uglier than it needed to be to demonstrate the point):

And the geometry in the file for one ID is all in the same single arc:
        {
          "type": "LineString",
          "properties": {
            "kind": "minor_road",
            "name": "W 24th St.",
            "sort_key": 17,
            "landuse_kind": "commercial",
            "source": "openstreetmap",
            "is_link": "no",
            "is_bridge": "no",
            "is_tunnel": "no",
            "id": 13039778,
            "highway": "residential"
          },
          "arcs": [
            10
          ]
        },

Peter reported this, over to him to verify:

url: '//vector.dev.mapzen.com/osm/all/{z}/{x}/{y}.topojson'

:+1:
Before:

After:

:100: :white_check_mark: :shipit:


MailingDetail::getSent() must be of the type boolean

Hey there,
while trying to call getSent() on the MailingDetail Class, I get the following error:
Type error: Return value of Scn\EvalancheSoapStruct\Struct\Mailing\MailingDetail::getSent() must be of the type boolean, integer returned

While dumping my results from the Evalanche API I can see indeed, that sent is an int 1.
I need to use the api, because the old XML RPC Api will be shut down soon.
Can you please provide an update?
Best regards
Nick

Hi @NickHatBoecker
thanks for your Feedback - it is a boolean - the bug is a missconfiguration at the Hydrator of the Connector.


plymouth: set custom font

Sets the user configured font in plymouth. On my setup plymouth only seemed to accept / work with truetype fonts and i didn't find any documentation for plymouth mentioning fonts at all, so the script checks for that first and falls back to converting another font format to ttf with fontforge.

@trueNAHO Requesting a review since you've been doing a lot of work around bash scripts recently, so you may be interested in this new one.

I have since read more about fonts in plymouth and as i understand it only truetype and opentype are supported with opentype being the preferred format. I am not sure if there is a way to have the derivation point to a .otf or .ttf file, or if the extension even needs to be in the name of the derivation for that matter, so i chose to ignore truetype and convert everything that is not already opentype to that format instead. If anyone has a way of allowing both formats input would be appreciated :)

I have not done any further research on this, but would it be possible to extract the font types from certain paths? Maybe the nerdfont package is helpfull: https://github.com/NixOS/nixpkgs/blob/nixos-23.11/pkgs/data/fonts/nerdfonts/default.nix.
For reference, there is an open issue regarding fonts: https://github.com/danth/stylix/issues/308.


Check for critical imports in swift files

Jira issue:
https://glia.atlassian.net/browse/MOB-2450
What was solved?
This PR takes an alternative approach to Swiftlint usage and uses script instead to determine if critical imports are present.
If SwiftUI is imported, UIKit nor Foundation is needed. If not, then either of them has to be in a swift file. When there isn't one, Xcode will display a warning.
Release notes:

[ ] Feature
[X] Ignore
[ ] Release notes (Is it clear from the description here?)
[ ] Migration guide (If changes are needed for integrator already using the SDK - what needs to be communicated? Add underneath please)

Additional info:

[ ] Tests fixed, added? Unit, acceptance, snapshots?
[ ] Logging necessary for future troubleshooting of customer issues added?

Screenshots:

Swiftlint is great for checking elements that are present. However, it has its downside, which is that it cannot detect what is absent. I didn't find a possibility to write a rule that checks for missing imports.

This change implies that either UIKit or Foundation has to be always imported for .swift files. Currently, there is about 110 files that don't have either


Shape of tensor a does not match the shape of tensor b

I am trying to work with the model on a custom dataset. I made a config file which is very similar to run_221.yaml.
I changed the dataset type(created another one to fit my custom classes and dimensions)  and the resolution. The resolution of my images is WxH = 1024x750. I believe that the downsampling factor is causing the error, which states that shape of tensor a (188, ) does not match shape of tensor b (187, ). Note that 750/4 = 187.5, right in the middle of the shape mismatch.
After several tries of playing with the resolutions, the one that worked and that was closest to my original ratio was 704, 512. I wanted to know whether there is some part of code which I could change, so that I maintain my original image size. Also generally I wanted to know if this causes problems for the model to learn. Also, do I need to change the sesn_scales?
Thanks in advance!

Hi @Keivin98
Thankyou for your interest in DEVIANT.

I believe that the downsampling factor is causing the error, which states that shape of tensor a (188, ) does not match shape of tensor b (187, ). Note that 750/4 = 187.5, right in the middle of the shape mismatch.

I noticed the same. This issue stems because of the DLA-34 backbone, and not of the SES convolutions. If the resolution is such a problem, you could also try our ResNet-18 backbone config and see if takes you closer to the original resolution.

Also generally I wanted to know if this causes problems for the model to learn.

I have not tested the impact of resolution thoroughly. We ran waymo models on the downsampled resolutions, and the DEVIANT waymo model achieved SoTA even after being trained on lower image resolution. Lowering the resolution:

Makes detector computationally efficient.
Might decrease performance on smaller objects.

do I need to change the sesn_scales?

The sesn_scales are the scales which ensures the consistency of feature maps after scaling operation. We ran with three sesn_scales in the paper. However, if the GPU memory is a problem, you should consider running with two extreme sesn_scales. The performance decrease is only a little. See the answer to issue #12
PS: We will be super happy if you could support our repo by starring it.

Dear @abhi1kumar
Thanks for your feedback. I tried both backbones, I was able to make it work after playing the resolutions. From my observations, the width and height should be divisible by 16 for Resnet and 32 for DLA.
I wasn't really able to get any meaningful results though. Maybe the other custom dataset doesn't fit your model well.
Great work though, congrats!

I have a small synthetic outdoor dataset, currently interested in exploring object detection from monocular images. There is plenty of classes, but I am working with only 2 or 3 of them.

Closing due to inactivity.


[main] Upgrade to latest dependencies

Cron -knative-prow-robot
/cc knative-sandbox/channel-wg-leads
/assign knative-sandbox/channel-wg-leads
Produced by: knative-sandbox/knobots/actions/update-deps
Details:
bumping knative.dev/pkg 82f3973...ed09cd0:
  > ed09cd0 upgrade to latest dependencies (# 2155)
bumping knative.dev/eventing 393e411...b0b32c4:
  > b0b32c4 Use transformers efficiently for extracting info for metrics in Kafka Channel  (# 5505)
  > 03c2a69 Reorganized kncloudevents retries code (# 5502)
bumping knative.dev/hack 3d4b264...66ab1a0:
  > 66ab1a0 go-licenses fixed file permissions so we no longer need our workaround (# 75)

/lgtm
/approve
Good Job!


Skip FIPS endpoint integration tests on non-FIPS regions

Fixes #156. This change short-cicuits the tests to pass when pointed to non-FIPS regions (currently US and Canadian regions).
With the basic Rust test runner, there is no concept of 'skipping' a test. There is a message written to the STDERR of the test, but this is not output by default. Leaving in in case we change test runner.
This change (along with some experimental CI changes) was tested here: https://github.com/dannycjones/mountpoint-s3/actions/runs/4440020376/jobs/7793272517

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and I agree to the terms of the Developer Certificate of Origin (DCO).

I'm a little nervous about this sort of silent test failure. If we changed the default test to a non-FIPS region, how would we notice these tests no longer working? Personally I never read the test output unless the tests fail, so the stderr would be missed by me :-)

There's not a good way to address this with the basic test runner, as really we need a skip functionality.
Closing for now, leaving behavior as it was - FIPS tests fail on regions outside of North America.


Investigate how to remove dependency of OpenCV

The OpenCV is a dependency for docling-ibm-models(https://github.ibm.com/DeepSearch/docling-ibm-models), where it is used to load and resize images for the TableFormer model.
Here are the places where opencv is called:

tableformer/data_management/functional.py:resize()
tableformer/data_management/tf_predictor.py:resize_img()
tests/test_tf_predictor.py:test_tf_predictor()

Additionally in order to correctly evaluate the effect of replacing opencv with another image library, we should measure the impact at:

TableFormer input tensors (image loading, normalization, resizing).
TableFormer output predictions.

to fix your trouble check this solution click
maybe this will solve your problem.

@sgonsal could you also try the same with torchvision.transforms.functional.resize?
With a torch.Tensor input, it relies on torch.nn.functional.interpolate: https://github.com/pytorch/vision/blob/cb9fdbf11f884b0501d1c23a48af258ab4acb57f/torchvision/transforms/_functional_tensor.py#L467

@pavel-denisov-fraunhofer Done.
Ran a similar test as my comment above. This time with torchvision.transforms.functional.resize
Avg time for torchvision: 0.071132 seconds


Ubuntu chatflow: Access Keys screen

it's just one key we support (so Access Key instead of Access Keys)
we can validate its content? (next milestone maybe?)
message should be something like "Please upload your public SSH key to be able to access the depolyed container via ssh" instead of Please add your public ssh key, this will allow you to access the deployed container using ssh. Just upload the file with the key

ce1077dfae7a3dd58c21bcee97b22435d0d0fe54

verified


Missing sample code

It looks like sample code for chapters 1 - 7,  9 - 12, 14 is not available here, only chapter 8 and 13 are present.

Hey @vihag, would you be able to add the requested sample code files to the repo for the missing chapters for @amarquezc and other readers?


add seam to ui

What changed? Why?
Notes to reviewers
How has it been tested?

@fredwes
Heya! Thanks for taking the time to open this PR! The official bridge is only for allowlisted assets that are added via the Superchain Token List (STL). Not all assets on the STL will be on bridge.base.org, as it's a separate review and listing process.
That said, if you haven't already done so, putting your asset on the STL is the most important step to potentially getting on bridge.base.org in the future, as that's where the team reviews and pulls from. Going ahead and closing this PR but if you have any questions or if there's anything else we can do to help, please don't hesitate to reply here and let us know.

@fredwes
Hi there! This is currently still under review on our side; we'll definitely be sure to reopen, if approved, in order to proceed with the addition.

Hi @fredwes ! Thanks for following up, I am checking internally as to status; let me see if I can get you an update. 👍


Cannot update my TEAM app from v1.0.5 to the latest version

Describe the bug
A clear and concise description of what the bug is.
Got the following error message after executing ./update.sh for the first time:
An error occurred (ValidationError) when calling the CreateChangeSet operation: Parameters: [CloudTrailAuditLogs] must have values
Unfortunately, I cannot repeat it because when I repeat the same command I get a different error:
...
+ git remote remove origin
+ git remote add origin codecommit::eu-west-1://team-idc-app
+ git remote add team https://github.com/aws-samples/iam-identity-center-team.git
error: remote team already exists.

To Reproduce
Steps to reproduce the behavior:

Be on version v1.0.5
Go to deployment directory
Update your parameters.sh file to have TAGS and CLOUDTRAIL_AUDIT_LOGS specified
Execute ./update.sh
See an error 1
Execute ./update.sh
See an error 2
Execute ./update.sh
See an error 2

Expected behavior
A clear and concise description of what you expected to happen.
It should properly trigger a deployment procedure.

@rapides error 1 should be fixed here but the fix is not (yet) in an official release. What if you just try it from main?
error 2 is caused because your update.sh script failed and didn't get to the last step which is:
git remote remove team

Can you execute this command:
git remote remove team

checkout the main branch and try again?

@lvthillo It worked for me. Thank you so much for your instructions 👍🏻


multiple inference on tensorrt

Hey i am trying to run two tensorrt models on my jetson nano. One is the mtcnn model from your repo. The other is the arcface model for face recognition which i converted into tensorrt using python tensorrt api. I can run these models separately but on running them together i run into some weird errors which you had said is because of two cuda context. I saw your code on trtssd async but you had only one tensorrt model. How can i replicate that for two models. Also i have difficulty understanding how you have implemented the tensorrt mtcnn model and what is pytrt so i am just importing TrtMtcnn from utils.mtcnn and then just passing it image to get bounding box and landmarks. I don't know if i should first do cfx = cuda.device(0).make_context() which i am doing for the other model. Please help. I am new to tensorrt.

Also i have difficulty understanding how you have implemented the tensorrt mtcnn model and what is pytrt so i am just importing TrtMtcnn from utils.mtcnn and then just passing it image to get bounding box and landmarks.

This is correct.  For TrtMtcnn, you don't need to create any additional CUDA context.

I can run these models separately but on running them together i run into some weird errors which you had said is because of two cuda context.

Please be specific.  What error message do you see when running the 2 TensorRT engines together?

Sorry. Here is the error i get:
Cuda error in file src/implicit_gemm.cu at line 1224: invalid resource handle
[TensorRT] ERROR: ../rtExt/cuda/customWinogradConvActRunner.cpp (317) - TRTInternal Error in execute: 400 (Failure to run convolution)
[TensorRT] ERROR: FAILED_EXECUTION: std::exception
If i run both separately they work fine.

This is the class for the other tensorrt model i am using along with mtcnn. I call the function infer to do inference. First the mtcnn gives bounding box and landmarks which i then use to crop and align the face image and then feed the modified image to this model which recognizes the face.
class arcfaceTRT(object):
'''
description: A arcface class that warps TensorRT ops, preprocess and postprocess ops.
'''
def init(self, engine_file_path):
# Create a Context on this device,
self.cfx = cuda.Device(0).make_context()
stream = cuda.Stream()
TRT_LOGGER = trt.Logger(trt.Logger.INFO)
runtime = trt.Runtime(TRT_LOGGER)
	# Deserialize the engine from file
	with open(engine_file_path, "rb") as f:
		engine = runtime.deserialize_cuda_engine(f.read())
	context = engine.create_execution_context()

	host_inputs = []
	cuda_inputs = []
	host_outputs = []
	cuda_outputs = []
	bindings = []

	for binding in engine:
		size = trt.volume(engine.get_binding_shape(
			binding)) * engine.max_batch_size
		dtype = trt.nptype(engine.get_binding_dtype(binding))
		# Allocate host and device buffers
		host_mem = cuda.pagelocked_empty(size, dtype)
		cuda_mem = cuda.mem_alloc(host_mem.nbytes)
		# Append the device buffer to device bindings.
		bindings.append(int(cuda_mem))
		# Append to the appropriate list.
		if engine.binding_is_input(binding):
			host_inputs.append(host_mem)
			cuda_inputs.append(cuda_mem)
		else:
			host_outputs.append(host_mem)
			cuda_outputs.append(cuda_mem)

	# Store
	self.stream = stream
	self.context = context
	self.engine = engine
	self.host_inputs = host_inputs
	self.cuda_inputs = cuda_inputs
	self.host_outputs = host_outputs
	self.cuda_outputs = cuda_outputs
	self.bindings = bindings

def infer(self, input_image_path):
	threading.Thread.__init__(self)
	# Make self the active context, pushing it on top of the context stack.
	self.cfx.push()
	# Restore
	stream = self.stream
	context = self.context
	engine = self.engine
	host_inputs = self.host_inputs
	cuda_inputs = self.cuda_inputs
	host_outputs = self.host_outputs
	cuda_outputs = self.cuda_outputs
	bindings = self.bindings
	# Do image preprocess
	input_image, image_raw, origin_h, origin_w = self.preprocess_image(
		input_image_path)
	# Copy input image to host buffer
	np.copyto(host_inputs[0], input_image.ravel())
	# Transfer input data  to the GPU.
	cuda.memcpy_htod_async(cuda_inputs[0], host_inputs[0], stream)
	# Run inference.
	context.execute_async(bindings=bindings, stream_handle=stream.handle)
	# Transfer predictions back from the GPU.
	cuda.memcpy_dtoh_async(host_outputs[0], cuda_outputs[0], stream)
	# Synchronize the stream
	stream.synchronize()
	# Remove any context from the top of the context stack, deactivating it.
	self.cfx.pop()
	del self.cfx
	# Here we use the first row of output in that batch_size = 1
	output = host_outputs[0]
	return output

def destory(self):
	# Remove any context from the top of the context stack, deactivating it.
	self.cfx.pop()

def preprocess_image(self, input_image_path):
	'''
	description: Read an image from image path, convert it to RGB,
					resize and pad it to target size, normalize to [0,1],
					transform to NCHW format.
	param:
		input_image_path: str, image path
	return:
		image:  the processed image
		image_raw: the original image
		h: original height
		w: original width
	'''
	image_raw = input_image_path
	h, w, c = image_raw.shape
	image = cv2.cvtColor(image_raw, cv2.COLOR_BGR2RGB)
	# Calculate widht and height and paddings
	r_w = INPUT_W / w
	r_h = INPUT_H / h
	if r_h > r_w:
		tw = INPUT_W
		th = int(r_w * h)
		tx = 0
		ty = int((INPUT_H - th) / 2)
	else:
		tw = int(r_h * w)
		th = INPUT_H
		tx = int((INPUT_W - tw) / 2)
		ty = 0
	# Resize the image with long side while maintaining ratio
	image = cv2.resize(image, (tw, th))
	# Pad the short side with (128,128,128)
	image = cv2.copyMakeBorder(
		image, ty, ty, tx, tx, cv2.BORDER_CONSTANT, (128, 128, 128))
	image = image.astype(np.float32)
	# Normalize to [0,1]
	image -= 127.5
	image = image*0.0078125
	# HWC to CHW format:
	image = np.transpose(image, [2, 0, 1])
	# CHW to NCHW format
	image = np.expand_dims(image, axis=0)
	# Convert the image to row-major order, also known as "C order":
	image = np.ascontiguousarray(image)
	return image, image_raw, h, w

I think it would work if you just remove cuda context related code in your "arcfaceTRT" class.
class arcfaceTRT(object):
    def __init__(self, engine_file_path):
        self.cfx = cuda.Device(0).make_context()   # REMOVE THIS LINE
        ......

    def infer(self, input_image_path):
        threading.Thread.__init__(self)    # REMOVE THIS LINE
        # Make self the active context, pushing it on top of the context stack.
        self.cfx.push()                            # REMOVE THIS LINE
        ......
        self.cfx.pop()                             # REMOVE THIS LINE
        del self.cfx                               # REMOVE THIS LINE
        .....

    def destory(self):
        # Remove any context from the top of the context stack, deactivating it.
        self.cfx.pop()                             # REMOVE THIS LINE (REAPLCE with `pass`)
        ......

It solved the problem. Thank you so much. Can you please tell me what was the problem. Thanks.

The short answer is: for a single-threaded python program, you don't need to create additional cuda contexts to run multiple TensorRT engines.  (In this case, all TensorRT engines would be using the "default context" created by pycuda.autoinit.)
To fully understand it, you'll need to understand low-level CUDA programming and read pycuda documentation...

In this code the libraries i was using are as follows:
import ctypes
import os
import random
import sys
import threading
import time
import cv2
import numpy as np
import pycuda.autoinit
import pycuda.driver as cuda
import tensorrt as trt
import torch
import torchvision
import sklearn.preprocessing
if i add "import mxnet as mx" i get "PyCUDA ERROR: The context stack was not empty upon module cleanup."
I need to use an mxnet model along with these two models. But i keep getting this error. Please help. I think the problem is caused when pycuda.autoint and mxnet are used together

With the latest code in the repo, I think this could be fix the problem: https://github.com/jkjung-avt/tensorrt_demos/issues/265#issuecomment-712006217
Please give it a try.

Hey i checked your latest code. The problem isn't with your code. I can use it fine with mxnet model. The problem is with the arcface tensorrt model i was using. I was using pycuda.autoinit in that. If i just add the line "import mxnet as mx" i get "PyCUDA ERROR: The context stack was not empty upon module cleanup."  I think it is because of pycuda.autoinit.
The code of arcface tensorrt is posted above. Can you please tell me what is the issue and how can i solve it.

Please refer to the following code snippet in "utils/yolo_with_plugins.py".  You could try to call push() with pycuda.autoinit.context before inferencing with the TensorRT engine, and call pop() afterwards.
https://github.com/jkjung-avt/tensorrt_demos/blob/e039e0824876d46443aa19e9ad7cf8f7723c713e/utils/yolo_with_plugins.py#L277-L286

The problem isn't with your code. I can use it fine with mxnet model.

Closing this since the remaining issue is not related to code in this repo.


Email links (confirmation etc) not working from phone, working from web

Hello. We have encountered this problem and we're still not able to solve it, so we wanted to ask here if you encountered it already.
Registration confirmation link works when it's clicked from the web browser - user is activated and everything's fine.
When clicked from a gmail client etc on ios/android, nothing happens. Page is opened but user is not activated.
Do you maybe know what's happening?
Thanks in advance.

Hi , im sorry im not able to help you , but currently im also facing an issue where I'm not able to activate my account due to activation email not arrive in my gmail account . Btw this is on web by using angular . May i see your config.json file for the email notifications sections ? Please help me , i have spent countless hours trying to find solutions :(


chore(deps): update ci dependencies

This PR contains the following updates:

Package
Type
Update
Change

common-dev-assets

digest
2520c3d -> 56ffb8d

github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper
require
patch
v1.23.10 -> v1.23.11

Release Notes

terraform-ibm-modules/ibmcloud-terratest-wrapper (github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper)
v1.23.11
Compare Source
Bug Fixes

deps: update module github.com/ibm-cloud/power-go-client to v1.5.1 (#683) (49afea4)

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

/run pipeline


RCPSP domain parameters

📚 Documentation
Parameters of the RCPSP domain classes are undocumented. In particular the meaning of the parameter max_horizon is not obvious (whether its relevant during solve or during rollout).

See #357 #372


Subscribing to threaded replies

Hey Bolt team! For starters, thank you so much for creating a fantastic SDK. Getting started with development was extremely easy.
I have a pretty simple setup wherein I have a Slack bot replying to mentions via subscription to the "app_mention" event. I want to be able to automatically detect when the user submits threaded replies to the conversation initially invoked with the mention but I'm unable to find corresponding events in the Events API documentation.
Wondering if you have any suggestions for how to be smart about detecting when threaded replies are provided and programming the bot to reply to these threaded replies. I don't want to have to rely on my threaded replies having to include an app mention for invocation of the bot.
Please let me know if you need clarification!
The slack_bolt version
1.17.2
Python runtime version
python 3.8.9
OS info
ProductName:    macOS
ProductVersion: 12.5
BuildVersion:   21G72
Darwin Kernel Version 21.6.0: Sat Jun 18 17:05:47 PDT 2022; root:xnu-8020.140.41~1/RELEASE_ARM64_T8101
Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you are agreeing to those rules.

Hi @SiddhanthUnnithan 👋🏻 Thanks for the kind words! The team really appreciates hearing that you're finding it easy to get started with Bolt! ⚡
I agree, it would be better user experience if people can reply to an existing @Mention thread without directly mentioning the bot! 👌🏻
As far as I know, there is no "get notified about new replies" API, which is unfortunate.
Instead, you will want to listen for messages in the channel and check if it's a threaded reply to an @Mention message:

Subscribe to the message events

There is currently a bug, but in the future you can filter for messages with the subtype message_replied (Bolt Python docs)

Check if the payload.thread_ts exists and not equal to the payload. ts value

This tells you it was a reply to a thread

Finally, use the conversations.replies method or conversations.history method to check if the original message mentioned your app

Your @Mention will be formatted as your app's user_id, such as <@U012345>

Hope that helps!


Tabs in the TUI

Allow users to create tabs for multiple SQL worksheets. Each worksheet would also have a query result saved with it so users can see the result of previous queries when switching between tabs.

Should be able to use Textual's Tabs widget for this

Added this in v0.2.2. Although each tab currently saves whatever text is in the editor for that tab, it does not save the query result for each tab. This is to keep the memory footprint of the program in check. It would certainly be possible to store query results per tab, but I need to find a better way to do this, rather than keeping the entire query result for each tab in memory.


Can not find poll.h

Not sure if this header is *NIX specific or not. If it's there, which package does have it?

There is a /usr/include/poll.h provided by msys2-runtime-devel.


Use conda-forge for numpy and co.

Use conda-forge until https://github.com/numpy/numpy/issues/20233 is resolved

Good find!


Warn if register_setting() lacks 3rd sanitize parameter

Refs: https://developer.wordpress.org/reference/functions/register_setting/
Needs to check if the $args array passed to the register_setting() function contains a sanitize_callback key.
Caveat:

If $args is not defined within the same scope as the register_setting() call or if the arguments are filtered, this cannot be reliably determined.

I think it would be good to flesh out the description of what this sniff should do before writing it.

Are there other similar functions which should be checked ? And if so, which ?
Should the sniff just examine that sanitize_callback is set or also examine the value of sanitize_callback ?
Any other considerations which should be taken into account ?

Code examples - especially slightly more complicated ones - for what this sniff should cover would also be useful.


Upgrade Apache Commons Collections to v3.2.2

Version 3.2.1 has a CVSS 10.0 vulnerability. That is the worst kind of
vulnerability that exists. By merely existing on the classpath, this
library causes the Java serialization parser for the entire JVM process
to go from being a state machine to a turing machine. A turing machine
with an exec() function!
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-8103
https://commons.apache.org/proper/commons-collections/security-reports.html
http://foxglovesecurity.com/2015/11/06/what-do-weblogic-websphere-jboss-jenkins-opennms-and-your-application-have-in-common-this-vulnerability/

Thanks, I've noticed that you have performed a lot of commits to multiple repos for this specific library upgrade issue. Are you a turing machine? ;)

:-)


Incorrect adverb for good

nlp.adjective("good").to_adverb() equals "goodly". It should be well instead of goodly.

good point!


Rule request: one sentence per line

A lot of markdown commits are small corrections such as spelling or grammar fixes. Having multiple sentences in a line increases the git commit diff size for these smaller fixes. It's good to follow all sentence-ending periods with an endline to reduce the chance of conflicts.
For documentation that tends towards long sentences, this can be a good alternative to strict line lengths.

Great idea! This is a pattern I try to follow myself.

Also, I suggest an 80-line string length pattern (80 can be changed to another custom value).

@KvanTTT That exists: https://github.com/DavidAnson/markdownlint/blob/master/doc/Rules.md#md013

Cool! This was not working for me: disabled in VSCode extension by default :)

Closing as duplicate of #66.


Implement MVC E2E Feature Path F.5: Protocol Upgrades

Objective: Implement MVC E2E Feature Path F.5: Protocol Upgrades
Origin Document:

#822
https://www.notion.so/pocketnetwork/0-1-0-Pocket-Tech-Spec-Block-height-activated-feature-flags-64a7a70230724994bf85edab206b1c0b#7b77bd5442c84c698ac81564b4b90a1e

Purpose: The purpose of this feature is to provide an interface for registering and applying blockchain protocol upgrades. It includes mechanisms for version-specific upgrade handlers, submitting upgrade proposals, cancelling scheduled upgrades, as well as database schema and data migration during hard forks.
Actors: Check all of the protocol actors involved in the feature:

[x] Validator
[ ] Application
[ ] Servicer
[ ] Fisherman
[ ] Portal

Data Structures:
message MessageUpgradeProtocol {
  bytes signer = 1;
  int64 height = 2;
  string new_version = 3;
}

message MessageCancelUpgradeProtocol {
  bytes signer = 1;
  string version = 3;
}

Interfaces:
type UpgradeModule interface {
 modules.Module

 // RegisterUpgradeHandler registers a handler function for a specific upgrade version.
 RegisterUpgradeHandler(version uint64, handler UpgradeHandler) error

 // ApplyUpgrade applies the upgrade for the specified version.
 ApplyUpgrade(version uint64) error

 // SubmitUpgradeProposal submits a governance proposal for an upgrade.
 SubmitUpgradeProposal(proposal UpgradeProposal) error

 // SubmitCancelUpgradeProposal submits a governance proposal to cancel a scheduled upgrade.
 SubmitCancelUpgradeProposal(proposal CancelUpgradeProposal) error
}

Diagram:
---
title: Protocol Upgrades
---
sequenceDiagram
    participant ACL as ACL Owner
    participant B as Node

    ACL->>+B: Submit MessageUpgradeProtocol (valid input)
    Note right of B: Validate the proposal
    B->>-ACL: Proposal Submitted Successfully
    Note over B: Wait until activation height
    B->>B: Apply the protocol upgrade
    ACL->>+B: Query the protocol version
    B->>-ACL: Return the updated protocol version
    ACL->>+B: Submit MessageUpgradeProtocol (invalid input)
    Note right of B: Validate the proposal
    B->>-ACL: Proposal Rejected (Invalid Input)

---
title: Cancel Protocol Upgrades
---
sequenceDiagram
    participant ACLOwner as ACL Owner
    participant Node as Node
    participant UpgradeModule as Upgrade Module

    Note over ACLOwner,UpgradeModule: ACL Owner decides to cancel a scheduled upgrade

    ACLOwner->>+Node: Submit CancelUpgradeProposal
    Node->>-Node: Cancel the scheduled upgrade if on or before activation height
    ACLOwner->>+Node: Query the cancellation status
    Node->>-ACLOwner: Return the cancellation status

User Stories as Tests:
Happy Paths:

Happy Path: As an ACL owner, I successfully submitted a protocol upgrade proposal with valid input and checked the protocol is upgraded after the activation height. The upgrade includes schema changes and consensus rule changes.

Sad Path: As an ACL owner, I attempt to submit a protocol upgrade proposal with invalid input. The system rejects the proposal.

Happy Path: As a network participant, I submit a CancelUpgradeProposal through the UpgradeModule when I realize an upcoming scheduled upgrade contains issues. The proposal gets accepted before the activation height, and the scheduled upgrade is cancelled.

Sad Path: As a network participant, I attempt to cancel a scheduled upgrade after its activation height has passed. The system rejects the CancelUpgradeProposal.

Deliverable

POC:

[ ] A POC SPIKE to be closed out and split out into multiple PRs

MVP:

[ ] A PR that adds or modifies relevant structures and interfaces; such as shared/core/types/proto, shared/modules, etc
[ ] A PR that materializes an MVP of the feature along with unit tests
[ ] A PR that introduces a new E2E tests with one happy and one sad path scenarios as described in the origin document (refer to e2e/README.md); this may require additions to the cli
[ ] A PR that updates all pertinent documentation

PROD:

[ ] One or more subsequent GitHub issues that track future work including, but not limited to:

Enhancing test coverage
Adding subsequent features
Patching hacks or workarounds
Enabling your imagination!

General issue deliverables

[ ] Update the appropriate CHANGELOG(s)
[ ] Update any relevant local/global README(s)
[ ] Update relevant source code tree explanations
[ ] Add or update any relevant or supporting mermaid diagrams

Testing Methodology

[ ] Task specific tests or benchmarks: make ...
[ ] New tests or benchmarks: make ...
[ ] All tests: make test_all
[ ] LocalNet: verify a LocalNet is still functioning correctly by following the instructions at docs/development/README.md
[ ] k8s LocalNet: verify a k8s LocalNet is still functioning correctly by following the instructions here

Creator: @0xBigBoss
Co-owne: @Olshansk

@0xBigBoss This issue looks great!
Made some small inline nits to the description but also have a few extra questions.

RegisterUpgradeHandler(version uint64, handler UpgradeHandler) error

Rather than registering a handler (which is the async cosmos approach), the v1 repo is simpler in most sense. I believe the module should simply upgrade the protocol rather than needing a handler registration.

As a network participant, I submit a CancelUpgradeProposal through the UpgradeModule when I realize an upcoming scheduled upgrade contains issues. The proposal gets accepted before the activation height, and the scheduled upgrade is cancelled.

I believe this would need to be either 67%+ of the validator consensus or a special ACL owner as well. DO you think any network participant should be able to cancel the transaction?

Extra requests:

Can you add sad/happy paths for trying to jump forward too many versions or cancel something from the instant path?
Can you add a mermaid diagram with a view of the network participant (it'll be dependent on the outcome of the question above)

@0xBigBoss Wanted to check in if there are any updates or progress on this?

@h5law posted the following question in one of our internal channels. @0xBigBoss, is it fair to assume that our protocol upgrades will be the equivalent of Tendermint's RevisionNumber?

hey @h5law and @Olshansk , we could include a separate variable, or we could convert the app version string to a number. I don't have much context on the purpose of that height struct though.

To give context here the Height struct from the image is used as part of the IBC light clients to represent the height of a network. We can define a custom implementation but I think using the revision number-revision height to represent our chain is not super out of reach from how things work currently.
Maybe converting the app version string to a number is good, I was thinking more basic in terms of V0 height 100 would look like 0-100 and V1 height 100 would be 1-100 but this can be changed and worked on as this develops

I'll be moving and grooving on this issue on this branch 0xbigboss/gov/upgrades-and-params

Feel free to create a draft PR and keep pushing changes so we can provide preliminary feedback on specific parts if/when necessary.

@0xBigBoss Wanted to check in w/ a few questions:

Are you working on this prior or in parallel to #879?
I know you raised #930. Is this a hard blocker or are you able to continue making progress in the meantime?
Any cool updates to show/share?
Do you have any questions or need any help/guidance?

Are you working on this prior or in parallel to  Implement MVC E2E Feature Path F.1-4: E2E Feature Flags #879?

I am only reading that code path for now. But I don't think I'll include it in the PR other than the TODOs.

I know you raised [bug][rpc] querying unconfirmed transactions fails #930. Is this a hard blocker or are you able to continue making progress in the meantime?

Nope not a blocker at all.

Any cool updates to show/share?

Nothing too crazy so far!

Do you have any questions or need any help/guidance?

Not quite there yet, I may have some changes to the spec once I have the initial version e2e with upgrades, but so far so good. I am still in progress on the utility/unit of work/persistence modules and how they all work together.

@0xBigBoss

Nothing too crazy so far!

I really want to leverage the "beginner's 👀 " as you do this. If you find opportunities to improve the codebase, refactor things, improve documentation, add tooling, etc, PLEASE don't hesitate to submit PRs alongside or create issues to track it. Thanks in advance!

@Olshansk draft is up https://github.com/pokt-network/pocket/pull/948. Things have been great so far, not too many things that I've been doing differently. Was just a lot more code for me to read to get up to speed.


Add merito gdansk

@HussarPL I am closing the request as a duplicate. The domain is in the repository already.


Implement SIMD support and add wide integration

This adds initial support for SIMD types in most places. An exception is the Luv related types, where the conversion logic need extra attention. Some of the conversions aren't necessarily optimal but the focus was on making it work at all.
Integration with the wide crate has been added behind a feature flag, as a first example. More SIMD crates can be added in the future.
Breaking Change
Some functions that used to return bool is now returning a mask type. This mask type is still bool for regular floats and ints, so this change will mostly affect generic code. GetHue was also changed to no longer return Option<T> for SIMD friendliness.

It's a bummer that the RGB to HSL and RGB to HSV conversion is so much slower. I'll try with the old one behind type ID checks (i.e. Great Value Specialization) for now and see if it works better. I should see if I can add benchmarks for the SIMD versions before merging this.

Looks like the performance gain varies from nothing to several times faster, depending on the work. Converting sRGB to linear RGB is even a bit slower on my machine (possibly due to the powf implementation), converting RGB to HSV or HSL is slightly faster if I use f32x8 but almost equal with f32x4, and converting between XYZ and RGB scales pretty good with the amount of lanes.
I don't think I will go through and optimize everything now. Just making sure there's any improvement at all.

The benchmark fails because the wide feature isn't on master. But the logs show similar results. And it's pretty cool that it keeps on being feasible to run these benchmarks here!

bors r+