feat: build lit actions and update cids when building sdk

Description
This PR:

When building the SDK => builds Lit Actions in wrapped-keys-lit-actions and updates the associated CID in LIT_ACTION_CID_REPOSITORY and LIT_ACTION_CID_REPOSITORY_COMMON
Before publishing the SDK => publishes lit actions code to IPFS

Both things are attached to our existing processes to enforce consistency of the built, referenced and published code
Type of change

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

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[x] Tested triggering our current sync-actions-to-ipfs script automatically on a publish dry run
[x] Tested building and updating references locally

Checklist:

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

nit: I think we need to document where do we get the LIT_IPFS_JWT token and it's from Pinata


 Traceback (most recent call last):   File "main.py", line 360, in <module>     main(args)   File "main.py", line 211, in main     test_stats, coco_evaluator = evaluate_ood_id(args, model, criterion, postprocessors,   File "/home/.../python3.8/site-packages/torch/autograd/grad_mode.py", line 27, in decorate_context     return func(*args, **kwargs)   File "/home/.../siren/detr/engine.py", line 299, in evaluate_ood_id     all_logits = results[0]['logits_for_ood_eval'].view(-1, RuntimeError: CUDA error: device-side assert triggered
Did you know where is the prolem?

I also got the same error. Sorry to trouble you, but could you please let me know how to fix it?

hi, @slcheng97 , @AtsuMiyai , can you specify which command line you use?


Update MAS tutorial to improve readability

Adjusted tutorial body copy and headings to improve readability, clarify sentences, and fix some (minor) grammatical missteps.

Thanks @ggamel! I made a few small comments inline. We also have a documentation style guide that may be of use :+1:

Alright, cool! Went ahead and push another commit to address everything you mentioned. If I missed anything, by all means: please let me know.

Looks great, thank you!


Build issue in running cargo test on macOS with librocksdb?

Describe the bug

I think something is wrong with how we're including librocksdb in some dependency, because it's breaking
To Reproduce
Steps to reproduce the behavior:

I run cargo test and I get this error.

Log output

Log Output
# laudiacay @ Claudias-MacBook-Pro in ~/pl-work/forest on git:main o [1:01:12]
$ cargo test
  Compiling lru v0.7.2
  Compiling forest_json_utils v0.1.1 (/Users/laudiacay/pl-work/forest/utils/json_utils)
  Compiling forest_bigint v0.1.4 (/Users/laudiacay/pl-work/forest/utils/bigint)
  Compiling forest_hash_utils v0.1.0 (/Users/laudiacay/pl-work/forest/utils/hash_utils)
  Compiling fil_clock v0.1.0 (/Users/laudiacay/pl-work/forest/node/clock)
  Compiling librocksdb-sys v6.17.3
  Compiling forest_cid v0.3.0 (/Users/laudiacay/pl-work/forest/ipld/cid)
  Compiling libp2p-request-response v0.13.0-rc.1
error: could not find native static library `rocksdb`, perhaps an -L flag is missing?

The following warnings were emitted during compilation:

warning: /Library/Developer/CommandLineTools/usr/bin/ranlib: file: /Users/laudiacay/pl-work/forest/target/debug/build/librocksdb-sys-47144188043123e1/out/librocksdb.a(db_impl_debug.o) has no symbols
warning: /Library/Developer/CommandLineTools/usr/bin/ranlib: file: /Users/laudiacay/pl-work/forest/target/debug/build/librocksdb-sys-47144188043123e1/out/librocksdb.a(db_impl_debug.o) has no symbols
warning: /Library/Developer/CommandLineTools/usr/bin/ranlib: file: /Users/laudiacay/pl-work/forest/target/debug/build/librocksdb-sys-47144188043123e1/out/librocksdb.a(memkind_kmem_allocator.o) has no symbols
warning: /Library/Developer/CommandLineTools/usr/bin/ranlib: file: /Users/laudiacay/pl-work/forest/target/debug/build/librocksdb-sys-47144188043123e1/out/librocksdb.a(thread_status_util_debug.o) has no symbols
warning: /Library/Developer/CommandLineTools/usr/bin/ranlib: file: /Users/laudiacay/pl-work/forest/target/debug/build/librocksdb-sys-47144188043123e1/out/librocksdb.a(sync_point_impl.o) has no symbols
warning: /Library/Developer/CommandLineTools/usr/bin/ranlib: file: /Users/laudiacay/pl-work/forest/target/debug/build/librocksdb-sys-47144188043123e1/out/librocksdb.a(block_cache_trace_analyzer.o) has no symbols
warning: /Library/Developer/CommandLineTools/usr/bin/ranlib: file: /Users/laudiacay/pl-work/forest/target/debug/build/librocksdb-sys-47144188043123e1/out/librocksdb.a(io_tracer_parser_tool.o) has no symbols
warning: /Library/Developer/CommandLineTools/usr/bin/ranlib: file: /Users/laudiacay/pl-work/forest/target/debug/build/librocksdb-sys-47144188043123e1/out/librocksdb.a(trace_analyzer_tool.o) has no symbols
warning: /Library/Developer/CommandLineTools/usr/bin/ranlib: file: /Users/laudiacay/pl-work/forest/target/debug/build/librocksdb-sys-47144188043123e1/out/librocksdb.a(db_impl_debug.o) has no symbols
warning: /Library/Developer/CommandLineTools/usr/bin/ranlib: file: /Users/laudiacay/pl-work/forest/target/debug/build/librocksdb-sys-47144188043123e1/out/librocksdb.a(memkind_kmem_allocator.o) has no symbols
warning: /Library/Developer/CommandLineTools/usr/bin/ranlib: file: /Users/laudiacay/pl-work/forest/target/debug/build/librocksdb-sys-47144188043123e1/out/librocksdb.a(thread_status_util_debug.o) has no symbols
warning: /Library/Developer/CommandLineTools/usr/bin/ranlib: file: /Users/laudiacay/pl-work/forest/target/debug/build/librocksdb-sys-47144188043123e1/out/librocksdb.a(sync_point_impl.o) has no symbols
warning: /Library/Developer/CommandLineTools/usr/bin/ranlib: file: /Users/laudiacay/pl-work/forest/target/debug/build/librocksdb-sys-47144188043123e1/out/librocksdb.a(block_cache_trace_analyzer.o) has no symbols
warning: /Library/Developer/CommandLineTools/usr/bin/ranlib: file: /Users/laudiacay/pl-work/forest/target/debug/build/librocksdb-sys-47144188043123e1/out/librocksdb.a(io_tracer_parser_tool.o) has no symbols
warning: /Library/Developer/CommandLineTools/usr/bin/ranlib: file: /Users/laudiacay/pl-work/forest/target/debug/build/librocksdb-sys-47144188043123e1/out/librocksdb.a(trace_analyzer_tool.o) has no symbols
warning: /Library/Developer/CommandLineTools/usr/bin/ranlib: file: /Users/laudiacay/pl-work/forest/target/debug/build/librocksdb-sys-47144188043123e1/out/librocksdb.a(db_impl_debug.o) has no symbols
warning: /Library/Developer/CommandLineTools/usr/bin/ranlib: file: /Users/laudiacay/pl-work/forest/target/debug/build/librocksdb-sys-47144188043123e1/out/librocksdb.a(memkind_kmem_allocator.o) has no symbols
warning: /Library/Developer/CommandLineTools/usr/bin/ranlib: file: /Users/laudiacay/pl-work/forest/target/debug/build/librocksdb-sys-47144188043123e1/out/librocksdb.a(thread_status_util_debug.o) has no symbols
warning: /Library/Developer/CommandLineTools/usr/bin/ranlib: file: /Users/laudiacay/pl-work/forest/target/debug/build/librocksdb-sys-47144188043123e1/out/librocksdb.a(sync_point_impl.o) has no symbols
warning: /Library/Developer/CommandLineTools/usr/bin/ranlib: file: /Users/laudiacay/pl-work/forest/target/debug/build/librocksdb-sys-47144188043123e1/out/librocksdb.a(block_cache_trace_analyzer.o) has no symbols
warning: /Library/Developer/CommandLineTools/usr/bin/ranlib: file: /Users/laudiacay/pl-work/forest/target/debug/build/librocksdb-sys-47144188043123e1/out/librocksdb.a(io_tracer_parser_tool.o) has no symbols
warning: /Library/Developer/CommandLineTools/usr/bin/ranlib: file: /Users/laudiacay/pl-work/forest/target/debug/build/librocksdb-sys-47144188043123e1/out/librocksdb.a(trace_analyzer_tool.o) has no symbols

error: could not compile `librocksdb-sys` due to previous error
warning: build failed, waiting for other jobs to finish...
error: build failed

Expected behaviour

Screenshots

Environment (please complete the following information):

OS:
Rust version(e.g. rustc --version)
Branch/commit

Other information and links

I believe the problem is that rocksdb is version 0.15 in Forest and this patch went into 0.16 to support M1 Macs. https://github.com/rust-rocksdb/rust-rocksdb/pull/503. Would you like me to submit a PR for the version bump to 0.16 or 0.17 (latest)?
I tried building on my Mac Mini 2018 (Intel) on Monterey 12.2 Beta and cargo test worked without changes.

cargo test passed on my mac
2:31PM system_profiler SPHardwareDataType                                                                                01.25
Hardware:

    Hardware Overview:

      Model Name: MacBook Pro
      Model Identifier: MacBookPro17,1
      Chip: Apple M1
      Total Number of Cores: 8 (4 performance and 4 efficiency)
      Memory: 16 GB
      System Firmware Version: 6723.140.2
      OS Loader Version: 6723.140.2
      Serial Number (system): C02DW9RRQ05P
      Hardware UUID: 456E10F8-287D-5FF1-AF2C-01F9D60C806D
      Provisioning UDID: 00008103-000C05093A62001E
      Activation Lock Status: Enabled

Can confirm with 1aec44b cargo test passed on my new Mac.
 Model Name:	Mac mini
  Model Identifier: Macmini9,1
  Chip: Apple M1
  Total Number of Cores: 8 (4 performance and 4 efficiency)
  Memory: 16 GB
  System Firmware Version: 7429.81.3
  OS Loader Version: 7429.81.3


Clarified merge-3 readme.

Clarified merge-3 readme a bit - editing files is needed to solve the level.

Editing files isn't strictly required, you can use git checkout --theirs runme.py


add : React-Added

What does this PR do?
This PR adds React to your project.
Here I use the Vite  framework to install React.
Fixes #16
Type of change

Add react in the current folder (here react in typescript).

If you want to read more about React Installation then Read it: https://github.com/thepravin/React_Setup

thanks for your PR, I'll check it asap

I am afraid of accepting this PR because it removes some README content and I am not sure if everything will be fully compatible with the base that we already have


fix ci: bump openssl version in freebsd

https://pkg.freebsd.org/FreeBSD:12:i386/quarterly/All/openssl-1.1.1h,1.txz returns 404 and it's making the freebsd build job fail in CI
OpenSSL 1.1.1i was released ~8 days ago and that URL seems to work so this PR bumps the openssl version

https://dev.azure.com/rust-embedded/cross/_build/results?buildId=793&view=logs&j=6e847cca-24ce-5b2d-e476-7fadc4226834&t=4f4f83a6-27d6-5138-5def-6e63a5c30d1a&l=144

curl --retry 3 -sSfL https://pkg.freebsd.org/FreeBSD:12:amd64/quarterly/All/openssl-1.1.1i,1.txz -O
/tmp/tmp.a0zqGdWJ4q /
curl: (22) The requested URL returned error: 404 Not Found

That failed yesterday (on the other freebsd build) but it seems the URL works now: https://pkg.freebsd.org/FreeBSD:12:amd64/quarterly/All/openssl-1.1.1i,1.txz

bors r+


[proposal] image_picker - show record button

I'd like to use camera functionality within my app. I've tried using the camera package but it's too barebones. I would like to use everything that the Image Picker Camera Source package offers, i.e., tap to focus, switch between the front and rear cameras, zoom and toggle flash.
However, the application only works with pictures not videos, but when using the image picker package, I can still see the record button. Is there a way to hide this?

@OliverNarramore
The latest image_picker plugin comes with Record button which offers front and rear camera view, flash toggle, zoom in and out and focus features.
Does that answer your question ? Or do you have specific issue while using the record button of the plugin ?

Without additional information, we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact description of what happens, logs, and the output of flutter doctor -v.
All system setups can be slightly different, so it's always better to open new issues and reference related issues.


Add Sky Line Calibration

We need to fit the sky lines in the cube in order to create a correction map for the velocity. If everything was perfect, then this correction map would be zeros everywhere. We do not need to make a perfect map! Instead we can just fit a good amount of regions (say on a  100 x 100 grid) and then interpolate.

We can add a new function that simply fits all sky lines within the filter (and within the transmission) and then save it as a fits file. We need a list of lines to fit.

From Laurie's paper on NGC 628:
ously. For this task, we selected the
OH sky line at 6498.729 ˚A because of its proximity to the Hα
line while it remains uncontaminated by emission or absorption lines from other sources. The sky line signal is enhanced
by summing its flux over boxes of 10×10 spaxels. To get the
spectral calibration correction, the sky line was fi

Added calibration based off Laurie's paper.

As of now the calibration isn't being calculated correctly. This issue is still a work in progress.

Notes from my discussion with Laurie on 12/15.
The ORCS technique determines on how much sky is available vs. contamination from emission
The brightest sky line is usually not overlapping with other emission
There are different strategies depending on the target
If the sky lines are present you can calculate the sky's velocity and interpolate that in 2d space.
We usually assume the sky is at rest so that all sky lines are at a single velocity. Usually  the binning is very heavy to increase signal. This map is generally re-interpolated to the native spatial resolution. We should apply a basic mask over all bright emission regions. This can be done by applying a threshold on channel intensities using a deep frame for example. Fit list of OH lines. Laurie will send me a list -- I should check the relative intensities and choose the most intense ones. We should also play with the binning to see what is the best!
Make a list of sky lines for C filters (in particular C4!).

Now have basic functioning skyline calculation (commit a3132153c884388b0d0d119269a07565270638f1 in MultipleComponent Branch). I still need to implement the masking, interpolation, and other lines!

We have a working version no :D


ValueError: The number of classes has to be greater than one; got 1 class

Hi,
in fit_svc_svm
I got ValueError: The number of classes has to be greater than one; got 1 class

Can you post a code snippet on how you're using fit_svc_svm?


gradle/maven extraction needs a good way to plumb out diagnostics

Right now the docker container flow doesn't expose build errors at all, and since the container goes away after its done all the logs are gone as well.  At a minimum we may need to get those logs out somewhere they can be accessed later.  Better might be something like common.Diagnostic in some structured format.
Or, if it's built in cloud build, we may just need to push build logs to somewhere and have a reasonable way of mapping back from target to build log.
Unclear what the exact implementation forward will be, but something will need to expose build failures for debugging.

Yea it was more the latter that I was referring to - any logs we have in the container (perhaps even before a build is triggered, something fails, for example), go away.  That's what I was thinking to propagate up.
But now that you mention it, it's a good point about cloud build logs as well - even though they're there, we'd want some way to know which cloud build logs line up with which specific event we care about.  Perhaps they'll be a way to query that together after the fact, but maybe we'll need some pointer to the build logs to be sent upstream as well.

Ok I want to actually nail down what we're going to do for failures in GCP cloud build now.  In particular, I am going to determine if we can actually get artifact uploads when either build fails outright, or build yields no kzip.
For the former, text logs may be sufficient, but if any .err file is generated it'd be nice if we can find some way to excise it (or just fall back to verbosity logging)
For the latter, the lack of kzip kills the artifact upload, so I will think about what to do there.

Turns out the killed artifact upload part was actually a quick fix - #3235.  Prepend error file first, and since
(a) uploads are done sequentialyl, and
(b) it's actually specified as a proper list/repeated field, it's not subject to the same abc ordering issue plaguing us on yaml files in general
... it just works :)
Keeping this issue open though, because the orchestration layer that actually calls our resulting cloudbuild yaml (or REST) will have to deal with pulling out build logs for straight up build failures (since a build failure still stops the .err file from being uploaded as well).


Performance decrease on orin nx

Thank you for your amazing work to bring this to the open source community! I was hoping to get some insight with an issue I'm having. I was previously running this perfectly on the jetson xavier nx with an ouster os1 lidar. I upgraded to the orin nx and compiled with native cmake cuda architectures and I get a significant map drift when running on the orin. I tested on both computers with the exact same bag file and when running on the xavier it remains stable while on the orin it drifts significantly. Both machines also run in MAX power mode. Would you have an insight into the issue?

I was able to solve this issue by lowering the voxel filter parameters significantly on the orin. Tuned correctly it works incredibly well on the orin. For some reason the parameters I had on the xavier worked really well on the xavier but caused significant map drifting on the orin.


use non-relative import instead

Description
use non-relative import instead
Type of change
Please delete options that are not relevant.

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

Checklist:

[ ] I have run pnpm format and my code don't have any linting issues

[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation

It works for me

@3raphat Please fix conflict kub 🙏 , also is this run with pnpm start after building and not only dev? Please provided screenshot also kub

Smoke test passed, I think we could safely merged this now
cc @Leomotors @dtinth

I think the smoke test pass because the file that actually uses @/ import is not used in the smoke test, so I am still not confident…
I have updated the smoke test to handle this case (#71). Let’s see…

Ohh sorry krub🙏 I forgot about it.

fyi, this PR is similar to #17


Blackhole CNN bringup

This issue is meant to act as master list for ops we need to enable CNNs on BH
@mywoodstock helped put together a list Resnet ops/ ops to prioritize for CNNs:

BinaryDeviceOperation
InterleavedToSharded
Matmul
Move
PadOnHost
Reduce
Reshard
Tilize
TilizeWithValPadding
Untilize
UntilizeWithUnpadding

CNN specific ops:

[x] Halo: This is run as part of below two ops (incl. in their unit tests.)
[x] MaxPool2D: pytest tests/ttnn/unit_tests/operations/test_maxpool2d.py -  6 fail; 48 pass
[x] Conv2D: pytest tests/ttnn/unit_tests/operations/test_new_conv2d.py - 12 fail; 212 pass

I believe all these ops should have relevant pytests
FYI @rtawfik01 @davorchap @jvasilje

@mywoodstock is it also possible to add a test to run for each of the above?

marking P0 as this gates BH checkout

Assigned Abhinav.  See also these 2 issues for llk work:

[] #10498
[] #10052

Hi I closed #10498, which enables a lot of maxpool/conv tests to run now, but now we need a list of the unit tests for each of the above ops, and update them. I have tried running some different unit tests and some need BH updates: https://github.com/tenstorrent/tt-metal/issues/11684

I updated the description with the unit tests for the CNN specific ops (maxpool, conv, halo.)

Current status: Blocked on TM ops' uplift to address the alignment issues.
max_pool2d: channels = 16 (all others pass)
conv2d: bfp8_b cases (bfloat16 pass)

@mywoodstock is this a stale issue?

@abhullar-tt No, this is where we're tracking the CNN ops instead of on the master list

Current status: We have all conv unit tests and maxpool unit tests passing, except for shallow data (c = 16), which give bad pcc due to alignment issues in TMs. Naif has a PR to be merged to fix those. Once thats in, we will be able to try out CNN models.

@mywoodstock seems this is in good state and haven't had issues for the LLK team. I'll remove the LLK label then, and if a particular LLK issue appears, track it separately.


refactoring

Codecov Report
Attention: 15 lines in your changes are missing coverage. Please review.

Comparison is base (b06108a) 86.22% compared to head (bab6b8c) 85.20%.

Files
Patch %
Lines

pkg/aclmanager/aclmanager.go
71.15%
12 Missing and 3 partials :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main       #9      +/-   ##
==========================================
- Coverage   86.22%   85.20%   -1.03%
==========================================
  Files           1        1
  Lines         167      169       +2
==========================================
  Hits          144      144
- Misses         16       19       +3
+ Partials        7        6       -1

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


Image encryption feature seems to not be encrypting anything

Description
I'm trying to use the image encryption feature of nerdctl with GHCR. I can encrypt the image, push it to the registry and pull the image back to my computer without problems. However, the pulled image seems to not have any difference when compared to the non-encrypted image. I'm not sure if it's a bug in nerdctl or my bad understanding of what image encryption is all about. Most probably the later.
Steps to reproduce the issue
My directory structure is like the following:
test-package
main.py
Dockerfile
requirements.txt

The main.py has the main entry for the python program and import things from test-package, which is a python package. For the matter of reproducing the issue, you can use any python package and any main.py you want.
My requirements.txt is like the following:
pyarmor
I'm generating the image from a Dockerfile like the following:
FROM python:3.9

WORKDIR /code

COPY ./requirements.txt /code/requirements.txt

RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt

COPY ./test_package /code/test_package
COPY ./main.py /code/main.py

RUN pyarmor obfuscate --recursive --output /code/dist/test_package /code/test_package/__init__.py

RUN cp -a /code/dist/test_package/. /code/test_package/

RUN rm -r /code/dist

CMD ["python", "-B", "-u", "main.py"]

1. sudo nerdctl login
2. sudo nerdctl build -t test .
3. openssl genrsa -out mykey.pem
4. openssl rsa -in mykey.pem -pubout -out mypubkey.pem
5. sudo nerdctl image encrypt --recipient=jwe:mypubkey.pem --platform=linux/amd64,linux/arm64 test ghcr.io/<my-ghcr-username>/test:encrypted
6. sudo nerdctl push ghcr.io/<my-ghcr-username>/test:encrypted
7. nerdctl pull --unpack=false ghcr.io/<my-ghcr-username>/test:encrypted

Describe the results you received and expected
When calling sudo nerdctl inspect command, I see exactly the same kind of info for the encrypted and the non-encrypted images.
For the non-encrypted image:
[
    {
        "Id": "sha256:cc921ecebbe0853e7449480e5b71baf5e87204cbfda6c2d66689273ad8119c6b",
        "RepoTags": [
            "test:latest"
        ],
        "RepoDigests": [
            "test@sha256:e4619aa357974aa2518eb0183a24e352112abec067ea299cb1f6342bb27cbb5e"
        ],
        "Comment": "buildkit.dockerfile.v0",
        "Created": "2022-06-06T19:08:42.486183233+02:00",
        "Author": "",
        "Config": {
            "User": "",
            "Env": [
                "PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "LANG=C.UTF-8",
                "GPG_KEY=E3FF2839C048B25C084DEBE9B26995E310250568",
                "PYTHON_VERSION=3.9.13",
                "PYTHON_PIP_VERSION=22.0.4",
                "PYTHON_SETUPTOOLS_VERSION=58.1.0",
                "PYTHON_GET_PIP_URL=https://github.com/pypa/get-pip/raw/6ce3639da143c5d79b44f94b04080abf2531fd6e/public/get-pip.py",
                "PYTHON_GET_PIP_SHA256=ba3ab8267d91fd41c58dbce08f76db99f747f716d85ce1865813842bb035524d"
            ],
            "Cmd": [
                "python",
                "-B",
                "-u",
                "main.py"
            ],
            "Volumes": null,
            "WorkingDir": "/code",
            "Entrypoint": null,
            "Labels": null
        },
        "Architecture": "amd64",
        "Os": "linux",
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:e7597c345c2eb11bce09b055d7c167c526077d7c65f69a7f3c6150ffe3f557ea",
                "sha256:7dbadf2b9bd82a7447533776d0c8de6687cfcf241d3aa993ed8a86ad1347c6e0",
                "sha256:9177197c67d08b25357b0b5ba8f7b944f321970dddbbe93b36cb726e9bdfd678",
                "sha256:ee509ed6e976cdad5adda963902f78e442ea5fc05f955bd2c2c9026789f84b42",
                "sha256:2fbabeba902e7f7c521f478f855b738d91bd4f2435de223a89fa5f4b2369065a",
                "sha256:13b045a1dfd29f39dcb5ef608d2c2b82a5dd53eae4441985188dd77541011a96",
                "sha256:285c8ba236e93e64f5933e5e176937a8cb03b814f880e7faa3b79f5a864d91b1",
                "sha256:aedb4b3621675d269cb8c502ffdbbb6cc39366e8738eb43df1163289fcf8dd88",
                "sha256:c6679bcc482ddd2db50f690893ab4be9f7271dcfae3e005152cd803e0c041ef3",
                "sha256:b32a88cf39e1b3e6a2e0c92f92ff03e5656db4a61bfcd4f5a55ce2c943aa8573",
                "sha256:b459707775bd90cd60028dcfe61ffd8044f42350f47a4b9fc4fdb3b1d5ff49a4",
                "sha256:8cfedc207d48586f3ac4cd805252ef38ca37c9d667018ad2692f3c1f660f8202",
                "sha256:665cf88824924d900ee3ff8ac55578d2ca836e9a630406431b568c8206cc9e1a",
                "sha256:79bebc504dd14639626a0603543dff7e1e649ae04fbc87e243767b388705d28b",
                "sha256:3b7e715c3292b28e1209b68f0658fe14abb63f1a48e856bf03316e3876ded8a6",
                "sha256:2703cd9b0af5b4106d0482bd2c7b4d3c574154da7ef6675c7425a2a2fa7bb4c9",
                "sha256:50270e06dabf757ffad706596e4cd658f7c92e4583b242000f701b0e3b2ddf24"
            ]
        },
        "Metadata": {
            "LastTagTime": "0001-01-01T00:00:00Z"
        }
    }
]

For the encrypted image:
[
    {
        "Id": "sha256:cc921ecebbe0853e7449480e5b71baf5e87204cbfda6c2d66689273ad8119c6b",
        "RepoTags": [
            "ghcr.io/<my-ghcr-username>/test:encrypted"
        ],
        "RepoDigests": [
            "ghcr.io/<my-ghcr-username>/test@sha256:1539b46bf9b7e32232e0009872a595d09e04fae7e19b4f20f3799a63f65d07f9"
        ],
        "Comment": "buildkit.dockerfile.v0",
        "Created": "2022-06-06T19:08:42.486183233+02:00",
        "Author": "",
        "Config": {
            "User": "",
            "Env": [
                "PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "LANG=C.UTF-8",
                "GPG_KEY=E3FF2839C048B25C084DEBE9B26995E310250568",
                "PYTHON_VERSION=3.9.13",
                "PYTHON_PIP_VERSION=22.0.4",
                "PYTHON_SETUPTOOLS_VERSION=58.1.0",
                "PYTHON_GET_PIP_URL=https://github.com/pypa/get-pip/raw/6ce3639da143c5d79b44f94b04080abf2531fd6e/public/get-pip.py",
                "PYTHON_GET_PIP_SHA256=ba3ab8267d91fd41c58dbce08f76db99f747f716d85ce1865813842bb035524d"
            ],
            "Cmd": [
                "python",
                "-B",
                "-u",
                "main.py"
            ],
            "Volumes": null,
            "WorkingDir": "/code",
            "Entrypoint": null,
            "Labels": null
        },
        "Architecture": "amd64",
        "Os": "linux",
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:e7597c345c2eb11bce09b055d7c167c526077d7c65f69a7f3c6150ffe3f557ea",
                "sha256:7dbadf2b9bd82a7447533776d0c8de6687cfcf241d3aa993ed8a86ad1347c6e0",
                "sha256:9177197c67d08b25357b0b5ba8f7b944f321970dddbbe93b36cb726e9bdfd678",
                "sha256:ee509ed6e976cdad5adda963902f78e442ea5fc05f955bd2c2c9026789f84b42",
                "sha256:2fbabeba902e7f7c521f478f855b738d91bd4f2435de223a89fa5f4b2369065a",
                "sha256:13b045a1dfd29f39dcb5ef608d2c2b82a5dd53eae4441985188dd77541011a96",
                "sha256:285c8ba236e93e64f5933e5e176937a8cb03b814f880e7faa3b79f5a864d91b1",
                "sha256:aedb4b3621675d269cb8c502ffdbbb6cc39366e8738eb43df1163289fcf8dd88",
                "sha256:c6679bcc482ddd2db50f690893ab4be9f7271dcfae3e005152cd803e0c041ef3",
                "sha256:b32a88cf39e1b3e6a2e0c92f92ff03e5656db4a61bfcd4f5a55ce2c943aa8573",
                "sha256:b459707775bd90cd60028dcfe61ffd8044f42350f47a4b9fc4fdb3b1d5ff49a4",
                "sha256:8cfedc207d48586f3ac4cd805252ef38ca37c9d667018ad2692f3c1f660f8202",
                "sha256:665cf88824924d900ee3ff8ac55578d2ca836e9a630406431b568c8206cc9e1a",
                "sha256:79bebc504dd14639626a0603543dff7e1e649ae04fbc87e243767b388705d28b",
                "sha256:3b7e715c3292b28e1209b68f0658fe14abb63f1a48e856bf03316e3876ded8a6",
                "sha256:2703cd9b0af5b4106d0482bd2c7b4d3c574154da7ef6675c7425a2a2fa7bb4c9",
                "sha256:50270e06dabf757ffad706596e4cd658f7c92e4583b242000f701b0e3b2ddf24"
            ]
        },
        "Metadata": {
            "LastTagTime": "0001-01-01T00:00:00Z"
        }
    }
]

Besides that, I can run a container from the encrypted image without decrypting it and if I run the command sudo nerdctl exec -it <container-name> bash , I can see all the filesystem of the container without any changes compared to a container generated from the non-encrypted image. If I can do all that without decrypting the image, what is image encryption all about ?
What version of nerdctl are you using?
0.20.0
Are you using a variant of nerdctl? (e.g., Rancher Desktop)
No
Host information
Client:
 Namespace:	default
 Debug Mode:	false

Server:
 Server Version: v1.6.4
 Storage Driver: overlayfs
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Log: json-file
  Storage: aufs native overlayfs
 Security Options:
  apparmor
  seccomp
   Profile: default
 Kernel Version: 5.13.0-44-generic
 Operating System: Ubuntu 20.04.4 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 8
 Total Memory: 7.576GiB
 Name: <my-computer-name>
 ID: db2396ff-441a-4445-8ddd-e70805ba1bf6

not encrypt config json, used same config json, config's diffId and sha256 are same. you can check manifest which layers.annotations contains org.opencontainers.image.enc.keys.[type]

I don't see an issue.

nerdctl pull --unpack=false ghcr.io//test:encrypted

Decryption is done on unpacking time.
Since you specified --unpack=false, nothing is decrypted here.

When calling sudo nerdctl inspect command, I see exactly the same kind of info for the encrypted and the non-encrypted images.

Expected behavior, because metadata such as Config.Env are out of the scope of the encryption, and layer IDs are unchanged after the encryption.

Besides that, I can run a container from the encrypted image without decrypting it and if I run the command sudo nerdctl exec -it <container-name> bash , I can see all the filesystem of the container without any changes compared to a container generated from the non-encrypted image. If I can do all that without decrypting the image, what is image encryption all about ?

If you did encryption and decryption on the same host, it is likely that you have an unencrypted snapshot that was made before encryption.
Please make sure to remove the snapshot (image) or test the decryption on another host.

each pulled image's manifest are different? enc image manifest include key wrap and mac info, which saved in layers.annotations, like:
"annotations": {
  "org.opencontainers.image.enc.keys.jwe": "eyJwcm90ZWN0ZWQiOiJleUpoYkdj...IUSJ9",
  "org.opencontainers.image.enc.pubopts": "eyJjaXBoZXIiOiJB...Q=="
}

To confirm that the tgz layer blobs are actually encrypted:
# nerdctl run -d --name reg -p <IP_ADDRESS>:5000:5000 registry:2
# nerdctl image encrypt --recipient=jwe:mypubkey.pem --platform=linux/amd64,linux/arm64 test <IP_ADDRESS>:5000/test:encrypted
# nerctl push <IP_ADDRESS>:5000/test:encrypted

# nerdctl exec reg apk add file
# nerdctl exec reg sh -euxc 'find /var/lib/registry/docker/registry/v2/blobs/sha256 -type f | xargs file'
+ find /var/lib/registry/docker/registry/v2/blobs/sha256 -type f
+ xargs file
/var/lib/registry/docker/registry/v2/blobs/sha256/3d/3d4148aec9c5c7db8ba52c8c2d68aea8af243f89f21f498b842e15efa2d27a07/data: data
/var/lib/registry/docker/registry/v2/blobs/sha256/4c/4c5d3e4fab577eb3917659f6e77ee4e71e0f7c6cb231c8f0494f7a1693c95e7b/data: JSON data
/var/lib/registry/docker/registry/v2/blobs/sha256/75/752b1592418fd2228699ba5e1e803452f432f71c8d3bb1d9c779af0c95408058/data: data
/var/lib/registry/docker/registry/v2/blobs/sha256/50/50824868ea2b9f97cf57b30c2f5793dd3f22b925d77d7e29cc4212c5bf98dccd/data: JSON data

Thanks, @AkihiroSuda . I confirm that when I remove the intermediate snapshots, the encryption does work in the sense that I can't launch a container originated from an encrypted image. So, is it the meaning of image encryption ?
However, what I really need is that a user can't access the terminal of a running container without authenticating (maybe with a password). Is that possible somehow through nerdctl ?

So, is it the meaning of image encryption ?

Yes

However, what I really need is that a user can't access the terminal of a running container without authenticating (maybe with a password). Is that possible somehow through nerdctl ?

No. Kubernetes RBAC might be the right choice for you.


Low-thrust optimization

Is there a low-thrust optimization method in poliastro?

Hi @Tarlan0001! We do have some optimal guidance laws (see #966) although we don't have a complete optimization suite. For that, at the moment you might want to look into https://github.com/esa/pykep/ or https://github.com/uc3m-aerospace/MOLTO-IT.


potential future feature?

I'd love for the ability to provide images via local directory and have the bot upload this image along with the text.
or perhaps have an object that can contain both image and text to be sent and then i can manually load the image into the object before sending it.
I'd attempt this myself if i was perhaps a little more familiar with the code base and misskey's api but i just begun tinkering with it.

The ability to upload images from local actually existed in the v1.0.0 era, but was removed once due to major refactoring, etc. and is currently awaiting re-implementation. I will try to implement it this week. Thanks for your requests!

I practically just pushed to master by mistake, but I think that once mi.py is uninstalled, MiFile can be used by using the following command.
pip install git+https://github.com/yupix/Mi.py.git


px-obj:controller seems broken

In the compiled version of the icons, the controller icon has a broken piece of XML proecssing instruction in front of the actual SVG:
https://github.com/PredixDev/px-icon-set/blob/c152d734a8744d6bcab813eb7a5c88b8917bcaa4/px-icon-set-object.html#L14
Checking the source SVGs, comparing it against other icons, the controller seems to have the Illustrator generator comment at the top, while the other SVG's don't:
https://github.com/PredixDev/px-icon-set/blob/master/icons/src-obj/controller_32x32.svg?short_path=6ffc9ed

Fixed in v2.0.8.

Thanks!


[Feature] Implement LazyLinear / Dense layer that can inference input dim of a linear layer

Both PyTorch and JAX supports this lazy linear layer that can automatically infer what will be the input_dim to initialize using the input tensor's last dimension, and user only needs to specify the output_dim (features). However, in mlx it looks like we currently do not have this feature, and we still need to explicitly specify the input_dim in mlx.nn.Linear
Related APIs
https://flax.readthedocs.io/en/latest/api_reference/flax.linen/_autosummary/flax.linen.Dense.html
https://pytorch.org/docs/stable/generated/torch.nn.LazyLinear.html#torch.nn.LazyLinear

I'm not opposed to a lazy linear layer, would be pretty reasonable to implement this as a derived class from linear.

hey @awni  is the feature still requested. I can work on it. What can i call the newclas LazyLinear??

@awni instead of a seperate class can we have a check in the linear class itself that the input dims have been provided or not  and the code can act accordingly. Just a thought

Closing this as we decided not to move forward with the implementation.


Use TS Extract to determine return types

Current state:  There are many cases where developer consumers have to "double type":
return medplum.readResource<Patient>('Patient', '123');

Using the TypeScript feature Extract<Type, Union> we could infer the generic argument, and therefore infer the return type, so the developer could simply write:
return medplum.readResource('Patient', '123');

... and the return type Patient is inferred.
Here is the current implementation of readResource:
readResource<T extends Resource>(resourceType: string, id: string): ReadablePromise<T> {
  return this.get<T>(this.fhirUrl(resourceType, id));
}

Here is the inferred implementation:
readResource<K extends ResourceType>(resourceType: K, id: string): ReadablePromise<Extract<Resource, { resourceType: K }>> {
  return this.get<Extract<Resource, { resourceType: K }>>(this.fhirUrl(resourceType, id));
}

The implementation is definitely uglier, but the ergonomics for a consumer are much better.
Breaking Changes
We need to change how search functions work to do this, but I think it might be worth it.
Today you pass in a search string like this:
medplum.search<Patient>('Patient?name=alice');
medplum.searchResources<Patient>('Patient?name=alice');
medplum.searchOne<Patient>('Patient?name=alice');

To be able to use the same Extract pattern, we would need to separate the resourceType from the rest of the search query:
medplum.search('Patient', 'name=alice');
medplum.searchResources('Patient', 'name=alice');
medplum.searchOne('Patient', 'name=alice');

Todo

[ ] Support string | URLSearchParams | Record<string, string> for the search query param
[ ] TypeScript compiler performance is noticeably worse after this -- I want to do a little research to see if that can be fixed
[ ] Tests?

Coverage decreased (-0.001%) to 95.103% when pulling 7d5657b71efe5bd0d7e3c62a0f9f221b469f7235 on cody-extract-resource-type into 4318a08969c49f4a1cf0faa8125c58c5ece1513d on main.

Notes on performance impact:

Compared TypeScript compiler diagnostics using npx tsc --extendedDiagnostics
Some metrics are slightly concerning: 5.5x instantiations, 100x cache size
Overall time impact was +15%, so not that bad
I think I'm ok with this


fix(template-graphql): update graphql query

Current state
The query issued by graphql demo generates an error originated by this part of the query:
... on GithubCommitAuthor {
   email
}

Changes introduced here
Remove author email retrieval and update demo accordingly.
Checklist

[X] All commit messages adhere to the appropriate format in order to trigger a correct release
[X] All code is written in untranspiled ECMAScript (ES 2017) and is formatted using prettier
[X] Necessary unit tests are added in order to ensure correct behavior
[ ] Documentation has been added

It seems to me you're fighting symptoms here. The query is afaict correct, but Apollo's heuristic fragment matcher is failing for reasons I haven't fully figured out yet. If you add fetchPolicy: "no-cache" to the options of the query, you'll see the list of commits popping up. But as soon as Apollo's caching layer comes into play, it explodes.
Maybe we have to look for a new GraphQL API for for this example. @ZauberNerd What do you think?

@herschel666 switching to a different API would be fine, do you know of any public GraphQL API that requires no authentication?

I created a ticket regarding switching to a different API & will thus close this PR. Thanks @toomuchdesign!


[Backport 2.15] Remove threat intel checkbox detector creation

Description
Backports #1232 to 2.15
Check List

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

let's fix the UTs for this in follow up


Plugin fails to install

Whenever I try to install the plugin through the Plugin Installer, it gives me a "Failed to Install" error with no other information.

Honestly no clue why it does that, I'm getting the same error, will try to fix it whenever I have the time, for now you can totally just download the zip and load it manually from your /xlsettings experimental tab by giving it a path to where the dll file is on your computer, hope this helps o7


Different load order of checkout-js styles been local development and production

When loading the development version of checkout-js the styles are added to the end of the head while in production the stylesheet link is added at the start of the head. This means that during local development the checkout-js styles have higher priority then the theme provided optimized-checkout.css while on production the optimized-checkout.css styles have higher priority then the checkout-js css file.
Ideally in both environments the optimized-checkout.css file should have a higher priority (placed afterwards in the head) then the checkout-js styles.

Hi there, we have updated our doc recently. Please refer to the lastest advice on restyling checkout-js.
https://developer.bigcommerce.com/stencil-docs/ZG9jOjEyNDYxODQ-installing-a-custom-checkout#developing-a-custom-checkout

Enter your CSS into the optimized-checkout.scss in Cornerstone or the scss folder in checkout.js. We suggest moving content from "optimized-checkout.scss to the scss folder or vice-versa to ensure there is a single source of truth for handling styles.

Hey @Kethatril this issue has been addressed by us by not loading duplicate optimised checkout css files.

@bc-peng However, the style loading order of optimized-checkout-md5.css and shared/microapp/checkout/dist/checkout.css is still not fixed, and the style of the basic components is still uncontrollable. is there any solution


Time indexed sequential semantics experiments

A "note" to check in which illustrates an alternative way to attribute sequential circuits by viewing signals as functions from a time index to a value, rather than as a list of values or stream of values. Next step would be to model a circuit with a loop e.g.. a counter.

2. Does this structure assume everything is using the same clock, or is "timestep" a vague enough notion to save us from that restriction?

Definitely our first sequential explorations should assume a single clock domain. A timestep increment unassociated to a clock is too vague as delay needs to trigger on a defined clock edge. Modelling arbitrary multiple clocks is going to require some thought and possibly restriction.

Thanks for the great comments. It's not clear how scalable this specific formulation is. Let's experiment.


Add the benchmarking module [ECR-2383]

Overview

This module is intended for:

Faster, easier, immediate experiments, that do not require installing the SuT into the local Maven repository to re-run benchmarks; and allow to re-build them in one command: mvn package -pl benchmarks -am
Some benchmarks of Exonum Java operations that we would like to always keep updated and maintain with Exonum Java evolution.

It replaces neither exonum/exonum-benchmarking nor exonum/exonum-java-benchmarks.

See: https://jira.bf.local/browse/ECR-2383
Definition of Done

[x] There are no TODOs left in the code
[x] Change is covered by automated tests
[x] The coding guidelines are followed
[x] Public API has Javadoc
[x] Method preconditions are checked and documented in the Javadoc of the method
[x] Changelog is updated if needed (in case of notable or breaking changes)
[x] The continuous integration build passes

Coverage remained the same at 85.672% when pulling 751c127c114d5792f89f6e6ea4f131fd2d33bd81 on dmitry-timofeev:add-benchmarking-module-ECR-2383 into 3660c250af3bc67b43b8c181a6bc697f5acab3b3 on exonum:master.


More detailed error messages for screenshot handler

CI gfxreconstruct build # 5558 running.

CI gfxreconstruct build # 5559 running.

CI gfxreconstruct build # 5559 passed.

CI gfxreconstruct build queued with queue ID 327688.

CI gfxreconstruct build # 5605 running.

CI gfxreconstruct build # 5605 passed.


Add support for other output formats

I was wondering how the post-processing of the generated Markdown file usually looks like for other users. Personally, I would assume that users will want to publish a static HTML-based webpage instead of a markup language.

Is that a correct assumption? If yes, how do you usually convert from Markdown to HTML?
Support other markup languages (particularly AsciiDoc) that provide a toolchain for generating other formats e.g. HTML, PDF.

@blossommojekwu and @kendalllane are actively working on this. (Users will be able to specify their own output templates for Stardoc output). You can likely expect this feature within the next month.
Related to https://github.com/bazelbuild/skydoc/issues/148

This is done. Please see https://github.com/bazelbuild/stardoc/blob/master/docs/advanced_stardoc_usage.md


Feature Request: Implement Putty & Git Bash

Summary of the new feature/enhancement
I love the style, tabbed windows for the many terminals, but it is missing a few environments like using PuTTY and Git Bash, I have tried to add in Git-Bash but when it gets called it opens a new window, not tab, could be how I have it setup but Im sure you guys would be able to determine it better than I would taking into consideration that you have build a conhost interface for cmd....
Proposed technical implementation details (optional)

Putty is a graphical application. It can’t run inside a text terminal. If you’re looking for the more generic concept of an “SSH client,” Windows comes with one called ssh which DOES work in Windows Terminal.
Git Bash is using “mintty,” which is another graphical application. You should provide the path to the real bash.exe; once you do that it’ll work in Windows Terminal. :smile:

Thanks for the reply, Good to know, I dug into how the git bash terminal was called for execution and found all of the related files to launching the window, I was able to add it to the json file and use it with no issues.
As far as the ssh being added in I was talking about actually having it so the window is apart of the terminal and the prompt would allow you open any of the protocols that are supported, almost the same way MPManager (which uses the native PuTTY exe to operate) does it.

Opening Git Bash in Windows Terminal
Add the following to your settings.json file.
Change starting directory to desired directory, I have mine set to go to where my repos are stored. Also, provide a unique GUID.
{
          // Git Bash profile
          "guid": "{7c449cf0-3oa0-4bee-8c73-0023c09713e7}",
          "commandline": "%PROGRAMFILES%/git/usr/bin/bash.exe -i -l",
          "icon": "%PROGRAMFILES%/Git/mingw64/share/git/git-for-windows.ico",
          "name" : "Git Bash 2.23",
          "startingDirectory": "D:/repos",
          "historySize": 10000
        }

Opening PuTTY in Windows Terminal

❗ This still opens in a new window, working on getting it to open within the Windows Terminal as a new tab. Any feedback appreciated.

Using the -load <SessionName> is a great little argument that prevents authentication problems in both PuTTY and file transfers using pscp as it pulls the keys, etc directly from the saved PuTTY session.
          // Ubuntu Desktop SSH
          "guid": "{7aa5c383-1cf1-433a-ab21-347c36c6e373}",
          "commandline": "putty -load <SessionName> user@hostNameorIPAddress",
          "name" : "Ubuntu SSH ",
          "startingDirectory": "~/",
          "historySize": 10000,
          "fontFace": "Anka/Coder",
          "closeOnExit": true
        }

❗ This still opens in a new window, working on getting it to open within the Windows Terminal as a new tab. Any feedback appreciated.

putty is a totally separate terminal emulator that is also a graphical application
Why not just use the version of ssh that comes with windows?
"commandline": "ssh<EMAIL_ADDRESS>

I gave that a try, passing the key in, but Windows Terminal says that the key does not meet permission requirements. Key was created using PuTTYGen I'm pretty sure, will generate a new keypair using built in ssh and see if that works.
The reason I focused on PuTTY is that I have it hooked up to several different automation tools already and want to minimize the amount of tools I use (particularly when it comes to various custom scripts).

'Windows Terminal' doesn't say the key doesn't meet permission requirements, that's the program you are running \windows\system32\openssh\ssh.exe . See https://superuser.com/questions/1296024/windows-ssh-permissions-for-private-key-are-too-open  and https://superuser.com/questions/1309447/how-to-secure-ssh-private-key-on-windows-10  .
However, if you like putty, it has an auxiliary program plink[.exe] which (like the OpenSSH ssh[.exe]) only does the secure connection and does NOT provide its own terminal GUI, and thus can run in Windows Terminal. It uses putty-style key files and/or the putty agent process pageant, and uses the putty-style known hosts list in the registry not a file, and can use putty-style session profiles, etc.

@dthompson085 Thank for the hint of using plink. However, plink does not include a terminal emulator and hence, it does not support things like using arrow keys to navigate in the history.
https://groups.google.com/g/comp.terminals/c/-XVgGaropEY

@dthompson085 Thank for the hint of using plink. However, plink does not include a terminal emulator and hence, it does not support things like using arrow keys to navigate in the history.
https://groups.google.com/g/comp.terminals/c/-XVgGaropEY


[bug] Fibaro motion sensor: Zwave JS reports no motion after exactly 5 minutes even if motion is still there

Version

[x] I am using HomeAssistant. Or: a developer has told me to come here.
I do run on HomeAssistant, however this issue not HA related.
[ ] I have checked the troubleshooting section and my problem is not described there.
[ ] I have read the changelog problem was not mentioned there.

Build/Run method

[x] Docker (home assistant add-on)
[ ] PKG
[ ] Snap package
[ ] Manually built (git clone - npm install - npm run build )

zwavejs2mqtt: 3.0.3
zwave-js: 7.0.1
home assistant: core-2021.3.4
Describe the bug
I migrated from OZW 1.6 to Zwave JS. I am running it in Home assistant, but I do not use MQTT. The home assistant integration connects to the websocket.
Two of the sensors I use is a Fibaro FGMS001 motion sensor. When running OZW, no issues.
When the sensor detects motion, it flashes and a motion report is received by Zwavejs. The sensor only flashes again after it stopped seeing motion for the setup duration amount of time and afterwards it sees motion again.
If I keep moving in front of the sensor, it flashes and reports motion. For some reason, after exactly 5min (almost to the ms accurate) I see in the logging that the motion value goes from detected to not detect. Weird thing is that this happens while I keep moving in front of the sensor. When it happens, the sensor does not flash again so it never stopped seeing motion. When I then stop moving, I see again in the logging the motion value changed from no motion to no motion. When I then move again, sensor flashes and in logging I see the motion detected.
In the attached zwavejs logging, I trigger the sensor at 16:09:18 (18:09:18 in zwavejs2mqtt logging) and I keep moving in front of it.
At 16:14:18 the sensor status goes from motion detected to not detected. However, it appears there is no sensor message that triggered this.
I leave the room and at 16:15:28 the sensor actually reports no motion.
It almost looks like there is a maximum somewhere defined that motion is allowed to be detected, however I do not see such a parameter in the configuration settings of the sensor.
I have this behaviour on both Fibaro motion sensors. When I test for such behaviour on a Shenzen Neo PD03Z motion sensor, I do not see this issue.
To Reproduce
Start moving in front of the (Fibaro FGMS001) and keep monitoring the motion value changed event.
Expected behavior
Motion is still detected. No motion detected only when there is really no motion and sensor reports no motion.
Additional context
See attached logging (zip)
logging.zip
.

Some motion sensor devices have a parameter that resets the device after a period of time. Have you checked the parameters?

I did check the parameters and did not find any as stated in my opening post. Link to device database.
When migrating from OZW to zwavejs I did not touch the sensor parameters and in OZW I did not have this behaviour.

@AlCalzone

Exactly 5 minutes is the time after which zwave-js auto-idles notification variables on older devices. This is recommended by the Z-Wave specs and is necessary for many devices that do not reset their notifications and seem to get stuck in an active state.
Interestingly, after 6 minutes, the device itself sends an idle notification. Is that something configurable (i.e. how long the motion sensor stays "active")? If not, I see two options:

Add a "good" compat flag to disable the auto-idling for devices that send them on their own
Add a heuristic to turn off auto-idling if the device sends an idle notification at some point. This may probably result in a false reset once before the heuristic comes into effect.

The message seen after 6 minutes is because I stopped dancing in front of the sensor and left the room to gather the logs :)
To answer your question, no, I can't configure any time to get the sensor to resent the motion notification. Here I am, thinking Fibaro as a big brand, designed their products well and adhered to the standard...
What time scale are we talking of the get a 'fix' in place for this? After 5 minutes my lights now always switch off. With summer coming in Europa it is currently not that big of a deal, but else I have to start thinking of reverting back to OZW for the time being. The misses is patient till a certain extend with my hobby.
Is there anything else I can do to circumvent this from happening? Poll the sensor every minute when motion is detected?

To be clear, I don't think fibaro is doing anything wrong here. The auto reset is in place because the requirement for the idle message was only added in a later version of the Notification CC.
Maybe it is worth swapping the behavior to be opt in. This will require code changes so there's probably nothing you can do right now. Polling won't help because of how notifications work.

Might be related but after a recent update to the latest zwave Js my Aoetec Multisensors stopped reporting motion too, the lux and humidity reporting appears unaffected but motion no longer fires on the two I have

My multi sensor 6 works just fine 🤷🏻♂

I checked and unfortunately the sensor doesn't have a binary entity I could use.
Opt in for the auto idling sounds good. How should a user be able to opt in? I guess on a per node base?
You want me to make an issue for this on the zwave js server Git or you need anything else from me to get this resolved?

This would be an option in the device config files.

Just wanted to report that I also switched from OZW to zwaveJS2mqtt yesterday and am having the same exact issue with all 5 of my GE/Jasco 34193/ZW6302 motion sensors. They seem to work well for a few minutes but with any sustained motion, regardless of the timeout I set on the device configuration, they go "Idle" and basically become useless until the motion has stopped long enough for the device to reset itself which is obviously impractical. I rolled back to OZW and the issue is not present. Logging this comment for visibility/awareness but also in hopes that it lets me know once this is resolved so I can confirm this works for me too. Thansk!

https://github.com/zwave-js/node-zwave-js/pull/2240 switches the behavior from always-on to opt-in.


Doubled sort and limit parts of query statement ...

I'm using the lastest Doctrine/MongoDB ODB in Symfony 2.5 and in query log (in debugbar) I can see that limit and sort parts of query statement  are mentioned twice e.g.
db.comp.find().sort({ "CompanyName": "DESC" }).sort({ "CompanyName": "DESC" }).limit(20).limit(20);

I have noticed the same behaviour in Symfony 2.3. Cant upgrade right now so not sure if this is fixed in a future version.

+1
Sample:
db.Profile.find({ "account": ObjectId("5568e6a99f51723811000031") }).sort([ ]).limit(1).limit();

Same here, I get that db.collection.find({ "_id": 12641 }).limit(1).limit(); when I use DocumentRepository::find`
The doctrine/mongodb version is 1.2.1

Hello,
Do you have any solution for that?
I have the same problem: ".limit(1).limit();"

Could someone please create a failing test case?

Added tests in bundle which is responsible for formatting queries: https://github.com/doctrine/DoctrineMongoDBBundle/pull/394


Fix SAI2 interrupt.

Oops, good spot, thanks. Please could you update the description as well as the name?


Rewrite this in golang

There are enough edge cases in the python implementation that seem pretty tricky to fix... and I've been wanting to find a good project to lean golang on. So we're moving to go!

Too many conflicts, will rebase on another branch and cherrypick the change in


All wire screens erroring

Describe the bug
After the removal of ZASM all screens stopped working.
To Reproduce
Steps to reproduce the behavior:
Spawn any screen, for example EGP Screen, Digital Screen, Screen etc.
Expected behavior
Screen entity works normally.
Screenshots

Fixed by https://github.com/wiremod/wire/commit/6e2aba39f4f583488c070bb6f073d219110c4cd6


Some error

Analyzer Feedback from IntelliJ
Version information

IDEA AI-191.8<IP_ADDRESS>00203
2.6.0-edge.a61c775db81ef2a389d5aee6236176362b082d58
AI-191.8<IP_ADDRESS>00203, JRE 1.8.0_202-release-1483-b03x64 JetBrains s.r.o, OS Windows 10(amd64) v10.0 , screens 1920x1080

Exception
Dart analysis server, SDK version 2.6.0-edge.a61c775db81ef2a389d5aee6236176362b082d58, server version 1.27.3, FATAL error: Failed to handle request: {id: 4, method: analysis.setAnalysisRoots, params: {included: [C:\Users\rajiv\StudioProjects\keystone_flutter], excluded: [C:\Users\rajiv\StudioProjects\keystone_flutter\.idea, C:\Users\rajiv\StudioProjects\keystone_flutter\.dart_tool, C:\Users\rajiv\StudioProjects\keystone_flutter\.pub, C:\Users\rajiv\StudioProjects\keystone_flutter\build]}, clientRequestTime:<PHONE_NUMBER>954}
FileSystemException: Directory watcher closed unexpectedly, path = 'C:\Users\rajiv\StudioProjects\keystone_flutter'
#0      _FileSystemWatcher._listenOnSocket.<anonymous closure> (dart:io-patch/file_patch.dart:307:11)
#1      _ExpandStream._handleData (dart:async/stream_pipe.dart:248:23)
#2      _ForwardingStreamSubscription._handleData (dart:async/stream_pipe.dart:164:13)
#3      _rootRunUnary (dart:async/zone.dart:1136:13)
#4      _CustomZone.runUnary (dart:async/zone.dart:1029:19)
#5      _CustomZone.runUnaryGuarded (dart:async/zone.dart:931:7)
#6      _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:336:11)
#7      _BufferingStreamSubscription._add (dart:async/stream_impl.dart:263:7)
#8      _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:764:19)
#9      _StreamController._add (dart:async/stream_controller.dart:640:7)
#10     _StreamController.add (dart:async/stream_controller.dart:586:5)
#11     new _RawSocket.<anonymous closure> (dart:io-patch/socket_patch.dart:1384:35)
#12     _NativeSocket.issueReadEvent.issue (dart:io-patch/socket_patch.dart:890:18)
#13     _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
#14     _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)
#15     _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:116:13)
#16     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:173:5)

For additional log information, please append the contents of
file://C:\Users\rajiv\AppData\Local\Temp\report.txt.

Thanks for reporting this issue! This was previously reported at https://github.com/dart-lang/sdk/issues/38853; please follow along there.

Duplicate of https://github.com/dart-lang/sdk/issues/38853


Discussion of colored light mixing

This issue serves as a document/discussion regarding how colored light works.
Definitions:

With channel I mean one channel or RGB light - that is either R, G, or B.
Light values are always assumed to be a float value between 0 and 1. 0 would be lightlevel 0, and 1 would be lightlevel 15. Floating point because of smooth light interpolation for each pixel.
The lightmap is a vanilla feature that contains the current light value for each blocklight/skylight combination. Minecraft also handles nightvision, lightning strikes and daytime by changing the lightmap.

Basic overview:
The basic approach of the mod is to run light calculation 4 times, one for vanilla, and for each RGB channel. A bit compute itensive, but very vanilla friendly. I don't see a better approach for "real" colored lighting.
All color information is seperated form vanilla, so you can easily remove/add the mod without light glitches. Hurray for compatibility!
Additionally, there's a color list for light emitting blocks to set the color of the light they emit. For blocks not in the list, light is assumed to be white.
Colored light can also be filted though stained glass, Both sky and block light can be filtered like this.
Caveats:
Since each channel is between 0-15, there are a few unfixable issues:

"Decay of light color": Assume a block source with color RGB(15, 7, 0). After 7 blocks we have RGB(8, 0, 0). This means light turned from orange into red. Ooops.
Priority of white: Assume two light sources with color RGB(15, 15, 15) and RGB(15, 0, 0). Due to each channel being on its own, the mixed version is the combination of the maximums for each channel, that is RGB(15, 15, 15). The red is overridden by white.

Technical details:
We want to keep using the lightmap - since that is used for nightvison/lightning strike effects - and also handles sky light dependent on weather/day time. Not using the lightmap would be a huge PITA, so we need that. Plus, could help lamdbdynamiclight compat, but that's for the future.
The shaders get two light values for each channel, indicating strength of blocklight/skylight for that channel.
Additionally we get the two lightvalues for the vanilla minecraft light level, that is, vanilla blocklight / skylight.
The question, how do we want them mixed together...

I could have each channel go into the lightmap, basically ignoring the vanilla light level.
Drawback: No separation between block/skylight. SKY(15, 15, 15) and BLOCK(15, 0, 0) give white.
Use vanilla light values to get brightness for block like normally. Then multiply with the color, calculated with the following formula:// In the night, sky light also needs less influence on color
sky_current_strength = value from lightmap with 0 blocklight, 15 skylight
sky_strength = sky_current_strength * sky_light_value_vanilla

block_strength = block_light_value_vanilla

// The lower the vanilla light strength, the less influence the color of the light has
sky_factor = sky_strength / (sky_strength + block_strength);
block_factor = sky_strength / (sky_strength + block_strength);

color = block_rgb * block_factor + sky_rgb * sky_factor

Drawback: Complicated, will yield absolute black when there is no light at all. Also makes blocks darker when placing an additional light source, e.g. glowstone.

Problem
I'd love to have both skycolor/block color mixing (solutions 2) and no absolute black at night. And blocks to not go dark when placing glowstone... Ideas on how to improve mixing?
If the document isn't easy enough to understand or unclear, please let me know!

Maybe "normalizing" the color value before usage would help - making it's biggest value be 1. When all 0s, it would be 0 though.


Remove wikilinks format in selection does not handle alternative text

Background
The internal link format supports using a different caption for the link, using the syntax:
[[Internally linked page|custom display caption]]
See the Change the link display text section of the Obsidian help page on internal links.
Expected behaviour of Remove wikilinks format in selection command: all parts of the link would be removed including the page title, leaving only the alternate text
Before: Here is my linked text paragraph which has a [[Internally linked page|custom display caption]]
After: Here is my linked text paragraph which has a custom display caption
Actual behaviour: only the square brackets are removed, the page title is left in the text.
Before: Here is my linked text paragraph which has a [[Internally linked page|custom display caption]]
After:  Here is my linked text paragraph which has a Internally linked page|custom display caption

👍 Thanks so much


Useless back and forth BD bytes conversion

The same value as current assigned to currentNode16.firstV.

Looks good.


exit status code of bin/casperjs

we are trying to use casperjs in a travis setup. the problem we have is that the exit code of the ruby script bin/casperjs is always 0, even if tests failed. as i understand modules/tester.js the exit code of phantomjs would be non-zero on errors, but the os.execvp call seems not to have a status or its not used (i am no ruby expert)
is this correct or am i doing something wrong? any ideas how we could solve this?

It seems that this bug still occurs, with SlimerJS.
// test.js

casper.test.begin("Bla", 1, function(test) {
  test.assert(false);
  test.done();
});

$ casperjs test test.js
...
$ echo $?
1
$ casperjs test --engine=slimerjs test.js
...
$ echo $?
0

As @rbelouin said, this bug is still an issue when using slimerjs. @n1k0, will this issue be reopened or should I open a new issue?

Since it seems like this issue will remain closed, I have created #1357, and I rephrased @rbelouin's comment as the bug report.


generic github actions

Welcome to coveooss/coveo-python-oss!
I have many goals with this repository, but in a nutshell, I want to centralize Coveo's Python efforts in one place to promote reuse between teams.
I already pushed a number of libraries that you can browse. A lot of it is used in the core repository.
This PR is about the github actions. I have more or less reproduced what our Jenkins used to do. In this example I demonstrate how to test a project using pyproject ci (it does mypy, pytest, etc and we can extend it) and how it can be pushed to pypi.org when changes are detected, with automatic versioning.
I hope you'll find this interesting and will be willing to collaborate and move your most useful python bits in here so everyone can benefit from them!
Also: Should I move coveo-pyproject and coveo-pypi-cli into their own repository since they're really apps and not libs? Or do you think it's kinda sexy to have everything in one repository, for instance so we can manage a virtual environment that always contains all of the libraries, for development convenience?

This looks like a nice and much needed initiative but before going further I'm unclear on where exactly this project comes in with the "python at Coveo" situation, because a few things I'm seeing do not seem to fit well with the description of the PR. I have a bunch of questions that mostly all fall under the same topic:

Are we really planning to open-source some of our python code?
Is this project meant to be useful internally?
Should/can we support our internal pypi?

This looks like a nice and much needed initiative but before going further I'm unclear on where exactly this project comes in with the "python at Coveo" situation, because a few things I'm seeing do not seem to fit well with the description of the PR. I have a bunch of questions that mostly all fall under the same topic:

Are we really planning to open-source some of our python code?
Is this project meant to be useful internally?
Should/can we support our internal pypi?

Should/can we support our internal pypi?
The goal is to get rid of it, in my case. I already have the code that supports private repos, I just did not add it here. If we moved the publish-to-pypi action to, say, coveo/actions repo, then I would allow private repos to be configured.

So the history bit is that our internal pypi.dev server randomly fails our 45min+ runs when it feels like it.  I don't see the advantage of our internal pypi server if nothing in the code is actually secret or coveo-specific, and since we don't have self-hosted runners yet... here we are!

Are we really planning to open-source some of our python code?
Are there any reasons not to? This sounded like a bad critic :P

Is this project meant to be useful internally?
It's been an important part of the core repository for a while. Some of the modules were also key parts of elasticsearch-service and the coredump detector uses some of those libs as well. I am hoping that the internal use will become the de-facto "how to build a python project if you want everything to magically work for you and coveo" just like the deployment pipeline offered a way for all teams to manage their infrastructure the same way.

Should/can we support our internal pypi?
The goal is to get rid of it, in my case. I already have the code that supports private repos, I just did not add it here. If we moved the publish-to-pypi action to, say, coveo/actions repo, then I would allow private repos to be configured.

So the history bit is that our internal pypi.dev server randomly fails our 45min+ runs when it feels like it.  I don't see the advantage of our internal pypi server if nothing in the code is actually secret or coveo-specific, and since we don't have self-hosted runners yet... here we are!

Are we really planning to open-source some of our python code?
Are there any reasons not to? This sounded like a bad critic :P

Is this project meant to be useful internally?
It's been an important part of the core repository for a while. Some of the modules were also key parts of elasticsearch-service and the coredump detector uses some of those libs as well. I am hoping that the internal use will become the de-facto "how to build a python project if you want everything to magically work for you and coveo" just like the deployment pipeline offered a way for all teams to manage their infrastructure the same way.

The goal is to get rid of it, in my case. I already have the code that supports private repos, I just did not add it here. If we moved the publish-to-pypi action to, say, coveo/actions repo, then I would allow private repos to be configured.
So the history bit is that our internal pypi.dev server randomly fails our 45min+ runs when it feels like it.  I don't see the advantage of our internal pypi server if nothing in the code is actually secret or coveo-specific, and since we don't have self-hosted runners yet... here we are!

It's funny because I too have been thinking for a long time about getting rid of the pypi dependency.  In my case it never happens because I pull from pypi when I build a docker image and then never again. Since you can pip-install from a url, my idea has been to simply add the distribution builds as downloadable files in github and voilà. Not sure about authentication and all that, but just to say, my thinking goes in the same direction.
I see no compelling reason to push our internal code to the outside world's pypi, but about that, see my next paragraph.

Are there any reasons not to?  Sorry for the misunderstanding. The "are we really" meant something like "woah things are going faster here than I expected have I missed a memo or something".
 We need to discuss and agree on a LOT of things beforehand, without even going into the licensing issues. I'm fairly convinced the JS UI team didn't do it in one day. This is not a cakewalk.

I am hoping that the internal use will become the de-facto

I'm all for that, but I don't think an internal "Coveo Python SDK" is the same project as opening up our code to the wilderness, or that they can started at the same time.
Just my two cents!

The goal is to get rid of it, in my case. I already have the code that supports private repos, I just did not add it here. If we moved the publish-to-pypi action to, say, coveo/actions repo, then I would allow private repos to be configured.
So the history bit is that our internal pypi.dev server randomly fails our 45min+ runs when it feels like it.  I don't see the advantage of our internal pypi server if nothing in the code is actually secret or coveo-specific, and since we don't have self-hosted runners yet... here we are!

It's funny because I too have been thinking for a long time about getting rid of the pypi dependency.  In my case it never happens because I pull from pypi when I build a docker image and then never again. Since you can pip-install from a url, my idea has been to simply add the distribution builds as downloadable files in github and voilà. Not sure about authentication and all that, but just to say, my thinking goes in the same direction.
I see no compelling reason to push our internal code to the outside world's pypi, but about that, see my next paragraph.

Are there any reasons not to?  Sorry for the misunderstanding. The "are we really" meant something like "woah things are going faster here than I expected have I missed a memo or something".
 We need to discuss and agree on a LOT of things beforehand, without even going into the licensing issues. I'm fairly convinced the JS UI team didn't do it in one day. This is not a cakewalk.

I am hoping that the internal use will become the de-facto

I'm all for that, but I don't think an internal "Coveo Python SDK" is the same project as opening up our code to the wilderness, or that they can started at the same time.
Just my two cents!

Since you can pip-install from a url, my idea has been to simply add the distribution builds as downloadable files in github and voilà. Not sure about authentication and all that, but just to say, my thinking goes in the same direction.

Is that different from using the git+ syntax from pip? Can you use dependency managers and resolve dependency constraints using that approach?

 We need to discuss and agree on a LOT of things beforehand, without even going into the licensing issues. I'm fairly convinced the JS UI team didn't do it in one day. This is not a cakewalk.

This is how I see this: if it generates interest and activity outside coveo, it means it was a good idea and it puts the coveo brand somewhere else in the software world, and that's only a good thing. If no one cares, then we still have the advantage of a convenient solution that requires less overhead (and that is probably more stable) than having our private pypi server.
I'll open up a chat in slack so we can discuss. Licensing and Documentation is one of the topics I wanted to bring up. User/project adoption is important too and I was thinking maybe you guys had projects that would be worth sharing. Release model, I already have a lot in place but it's not set in stone (hence the review request); it's just how I'm used to do things.

Since you can pip-install from a url, my idea has been to simply add the distribution builds as downloadable files in github and voilà. Not sure about authentication and all that, but just to say, my thinking goes in the same direction.

Is that different from using the git+ syntax from pip? Can you use dependency managers and resolve dependency constraints using that approach?

 We need to discuss and agree on a LOT of things beforehand, without even going into the licensing issues. I'm fairly convinced the JS UI team didn't do it in one day. This is not a cakewalk.

This is how I see this: if it generates interest and activity outside coveo, it means it was a good idea and it puts the coveo brand somewhere else in the software world, and that's only a good thing. If no one cares, then we still have the advantage of a convenient solution that requires less overhead (and that is probably more stable) than having our private pypi server.
I'll open up a chat in slack so we can discuss. Licensing and Documentation is one of the topics I wanted to bring up. User/project adoption is important too and I was thinking maybe you guys had projects that would be worth sharing. Release model, I already have a lot in place but it's not set in stone (hence the review request); it's just how I'm used to do things.

Is that different from using the git+ syntax from pip? Can you use dependency managers and resolve dependency constraints using that approach?

No idea here. Can dependency managers support the same formats that you can use in a Requirements file? You know I'm still living in the Stone Age here. :sweat: But all I know is that our internal packages in a req file can be specified directly with an URL instead of relying on a pypi index. The auth part stumps me, but the VCS syntax (instead of http) might be the solution.

Is that different from using the git+ syntax from pip? Can you use dependency managers and resolve dependency constraints using that approach?

No idea here. Can dependency managers support the same formats that you can use in a Requirements file? You know I'm still living in the Stone Age here. :sweat: But all I know is that our internal packages in a req file can be specified directly with an URL instead of relying on a pypi index. The auth part stumps me, but the VCS syntax (instead of http) might be the solution.

Is that different from using the git+ syntax from pip? Can you use dependency managers and resolve dependency constraints using that approach?

No idea here. Can dependency managers support the same formats that you can use in a Requirements file? You know I'm still living in the Stone Age here. 😓 But all I know is that our internal packages in a req file can be specified directly with an URL instead of relying on a pypi index. The auth part stumps me, but the VCS syntax (instead of http) might be the solution.

The VCS solution requires a working VCS client, so in that sense I prefer the http solution. Both solutions may only point to 1 "version"; otherwise said, without a pypi index, others are forced to depend on that exact version and won't receive updates unless they change the url. You could fake a "latest" by providing a version-less URL (much like pointing to the main branch when using the git approach) and update it as you release, but that's an even greater problem 🤣
coveo-pyproject can store your project and all its dependencies in a folder. You could probably zip that, and upload to github to create releases that you can download and install offline using the pip+url method!

Is that different from using the git+ syntax from pip? Can you use dependency managers and resolve dependency constraints using that approach?

No idea here. Can dependency managers support the same formats that you can use in a Requirements file? You know I'm still living in the Stone Age here. 😓 But all I know is that our internal packages in a req file can be specified directly with an URL instead of relying on a pypi index. The auth part stumps me, but the VCS syntax (instead of http) might be the solution.

The VCS solution requires a working VCS client, so in that sense I prefer the http solution. Both solutions may only point to 1 "version"; otherwise said, without a pypi index, others are forced to depend on that exact version and won't receive updates unless they change the url. You could fake a "latest" by providing a version-less URL (much like pointing to the main branch when using the git approach) and update it as you release, but that's an even greater problem 🤣
coveo-pyproject can store your project and all its dependencies in a folder. You could probably zip that, and upload to github to create releases that you can download and install offline using the pip+url method!

Both solutions may only point to 1 "version"

Indeed, I hadn't thought of that. This would work for my own needs but I admit that it cannot be the main solution. Drat!

Both solutions may only point to 1 "version"

Indeed, I hadn't thought of that. This would work for my own needs but I admit that it cannot be the main solution. Drat!

Every other PR was approved, this one is like a huge blob of them all so that the initial submission is solid. I am kicking this off.


[BUG] Australia has no Cloud Shell Support

To Reproduce
Try deploy cloudshell with vnet isolation with storage in either Australia East, Australia Central or Australia South East
Commands you ran
Just use the normal Cloud Shell VNET isolation templates and use Australia East
Observed Behavior
Australia East is invalid
Include error output here

Storage creation failed Error: 400 { "error": { "code": "InvalidLocation", "message": "The location 'australiaeast' is invalid." } } Can't create a storage account. Please try again.

Expected behavior
Australia should at the very least have ONE PRIMARY REGION. You cannot have all of Australia be secondary. This does not make sense from a data sovereignty perspective. When will this be supported?
Is this specific to Cloud Shell?
Yes, Cloud Shell does not support storage in Secondary Regions.
Interface information
How are you accessing Cloud Shell - https://shell.azure.com, https://portal.azure.com, via Windows Terminal, or some other method?
portal.azure.com
Additional context
I know Secondary Regions is not supported, but at the very least, allow one location from Australia, otherwise we have to look elsewhere for a solution. We cannot have our data sit in South East Asia.
AB#14439757

Assigning to @hima-gadupudi for investigation.

Added support for AustraliaEast. Now, CloudShell customers can launch vnet shell in AustraliaEast region.


1Password

If I use OpenTabsNextToCurrent with Stylish, 1Password doesnt open websites correctly when using "open and fill". I hope you can reproduce and maybe fix it? The tab always loads the start page but not the one I wanted to open in 1Password.

This add-on only moves tabs, nothing else, so I would be very surprised if your problem would be caused by it. But anyway, I have no idea what you mean by 1Password.

Please re-open if you have more information.


WIP: Segment files

Closes #528

Codecov Report

Merging #577 into master will decrease coverage by 0.24%.
The diff coverage is 66.66%.

@@            Coverage Diff             @@
##           master     #577      +/-   ##
==========================================
- Coverage   90.58%   90.34%   -0.25%
==========================================
  Files          63       63
  Lines        5185     5239      +54
==========================================
+ Hits         4697     4733      +36
- Misses        352      361       +9
- Partials      136      145       +9

Codecov Report

Merging #577 into master will decrease coverage by 0.24%.
The diff coverage is 66.66%.

@@            Coverage Diff             @@
##           master     #577      +/-   ##
==========================================
- Coverage   90.58%   90.34%   -0.25%
==========================================
  Files          63       63
  Lines        5185     5239      +54
==========================================
+ Hits         4697     4733      +36
- Misses        352      361       +9
- Partials      136      145       +9

That was delayed.


Progress with zero items

I found the following unaspected behaviour after generated some progress bars dynamically. If the total count is 0, the bars behaves a bit weird:
instead of completing automatically it stays in unfinished state and if you increment the progress it actually increments randomly.
This might be the reason of the random setting but I think it's not the expected behaviour.
Example here: http://jsfiddle.net/svyh9452/1/

Probably some sort of divide by zero.

This is not a bug, if you set total to 0 it will use the random increment, decrement hops specified in the settings object.

But why should it work randomly at all? The only feasible use case I can think of would be an example like in the docs but no real application.
My semantic interpretation of a progress with 0 steps (left) should be completed and not randomly move forward.
Just my two cents :smiley:

Showing fake incremental progress can be used with indeterminate loading to simulate progress.

ok, even though a bit special :)
Maybe the random progress should be bind to a random or simulation setting to make this clear?

We now fixed the behavior for 0 total values in Fomantic-UI by https://github.com/fomantic/Fomantic-UI/pull/1567
The random increments should only take place when the total value is really not even set, wich is only the case by false  for the setting, or undefined for a non existing data-total attribute. The progress module did not differ between 0 and false/undefined


cri: Vendor v0.27.1

As requested by Akihiro Suda here:
https://github.com/containerd/containerd/pull/8211#discussion_r1171041922
This just bumps the tag name to the k8s final release. There are no changes other than the tag name, though.
cc @AkihiroSuda

/ok-to-test

Pushing to kick the CI again, the failure was a flake

Pushing, as it seems the retest comment didn't trigger another run


Fixing sign job hash annotation

Sign job annotation is used for deciding whether update flow should be executed on the job ( deletion and creation anew with new parameters). Currently the code includes verification of currently running job hash versus the new parameters hash, but the actual code that sets the hash annotation during job template is missing. This PR does the following:

add hash annotation calculation during job template creation 2) unit test

/assign @chr15p

/cc @chr15p

/lgtm


Disable help cards for world instead of just per client

I'm just starting with this module. My players and I have already been playing with blind rolling, but sometimes a player forgets to switch their roll type, so this module will be a really great addition. One of my issues is that it displays a "Help" card for every single roll that the players make. Two options I thought were as follows:

Change the Help Card setting to World scope.
Add a button to the Help Card that says "Don't show again" and when clicked, changes that client setting.

Hey, thanks for reaching out! Just so I can get a better sense of your problem here...

When you say  "every single roll," are they also displaying when rolls are made that you haven't specified should be blind?

Are you as a GM seeing the messages when the player rolls?

Trying to understand if this is a case of something being broken (yes to either of the above would indicate this is true), or if you have an unusual use case where you want everything to be blind all the time and are just annoyed by the help messages (and reasonably so).

No bugs, working as designed. This is just an enhancement request.
We use blind rolls for anything RP or Combat related. Sometimes my players have difficulty finding the correct settings to turn things on or off. These Help Cards are rather large, and they likely won't need them. It would be nice to either have a way for me as the DM to disable them for everyone, or for the card to have a button in its layout that can be clicked to disable them.

Understood!
I'm personally not keen on allowing a GM to override client settings that exist for accessibility reasons. The messages came from a series of requests from users who wanted to know why an expected behavior was being changed, and such things can be stressful for some folks.
I can definitely see about putting a button in the card, though. That's good UX, and an oversight on my part in the first place.

Yeah the button on the card would be perfect 👍🏽

Would like to 2nd this request. Players and myself love the mod, but all players found the chat cards annoying after the 1st notification and disabled them.
I know you mentioned above that some people were upset by the unexpected change but I think having the message displayed just once still solves that issue. Having a checkbox in the 1st help chat message would be much easier for players who don't want it but still gives the choice to those who may want it. Good solution.
Thanks for this very helpful mod!!

Released in 0.8.0


deep selector to inner class of BPopover does not work

Describe the bug.
deep selector to inner class of BPopover does not work
To Reproduce.
see stackblitz
<script setup>
import { ref } from 'vue';

const value = ref('');
</script>

<template>
  <b-form-input id="input-outer" v-model="value" />
  <b-popover
    target="input-outer"
    v-bind:triggers="['click']"
    custom-class="custom-tip"
  >
    <b-form-input v-model="value" />
  </b-popover>
</template>

<style lang="scss" scoped>
.custom-tip {
  // doesn't work!
  :deep(.popover-body) {
    background-color: #aaaaaa;
    border-color: #aaaaaa;
    border-radius: inherit;
  }

  :deep(.popover-arrow) {
    &::before,
    &::after {
      border-top-color: #aaaaaa;
    }
  }
}
</style>

Screenshots.

data-v-{hash:8} attribute is not on BPopover.
If add data-v-{hash:8} attribute to popover element, it works as expected.

Environment (please complete the following information):

OS: macOS 12.6.5
Package Version: 0.10.8

Additional context.
I'm trying the issue I posted on BootstrapVue repository below is resolved on BootstrapVueNext.
https://github.com/bootstrap-vue/bootstrap-vue/issues/7151
1 and 3 are works fine!
If 2 (this issue) also resolved, I will use BootstrapVueNext on my product.

Deep selectors don't work on multiroot node components like popover. It's as intended.
You need to use a wrapper for the popover to have the class correctly: https://stackblitz.com/edit/vitejs-vite-3tw7zd?file=src%2FApp.vue