Confusion regarding Grid2 inheritance

With the changes in this pull request https://github.com/mui/material-ui/pull/36401/files#diff-332d9020c5961e15d6a690dcb551f07200c3446c981c14c446738ffeeee7a7f8 it added inheritance of columns and spacing to the root grid container.
I'm just a bit confused about how the inheritance should actually work. Should only direct Grid children with the container prop inherit these values? Or should every Grid child with the container prop inherit from the root grid container? The second scenario just seems a bit weird to me as you could have a grid as the top level layout of your page, and then every nested grid even if they are 10 levels deep will now start inheriting from the root level.
I've attached a code sandbox to try to illustrate what I mean
https://codesandbox.io/s/serene-allen-n2lg7h?file=/src/App.tsx
So the main question is this all intended behaviour now?

@Jsumner92 Thanks for the question! What you have is the old version. The logic changes from using React context to React.cloneElement to follow what flexbox is doing.
Here is your sandbox with the latest version of @mui/material, https://codesandbox.io/s/sad-maria-h3ds76?file=/src/App.tsx. You will see that the Grid below divs does not inherit from the top.

@Jsumner92 Thanks for the question! What you have is the old version. The logic changes from using React context to React.cloneElement to follow what flexbox is doing.
Here is your sandbox with the latest version of @mui/material, https://codesandbox.io/s/sad-maria-h3ds76?file=/src/App.tsx. You will see that the Grid below divs does not inherit from the top.

The linked sandbox does not exist. Although I've updated this sandbox to the latest MUI https://codesandbox.io/s/serene-allen-n2lg7h?file=/src/App.tsx And I can see the nested divs dont inherit now. But the second one with the structure
<Grid container columns={8} spacing={2}>
  <Grid xs={4} p={4} sx={{ background: "red" }}>
    Test
  </Grid>
  <Grid xs={4} p={4} sx={{ background: "blue" }}>
    <Grid container>
      <Grid xs={6} sx={{ background: "yellow" }}>
        Part one
       </Grid>
        <Grid xs={6} sx={{ background: "green" }}>
          Part two
        </Grid>
    </Grid>
  </Grid>
</Grid>
      ```
structure ends up breaking due to these variables not being defined.
<img width="267" alt="image" src="https://github.com/mui/material-ui/assets/90606410/90abc857-8f5b-475b-8706-60408314685e">

I'm still a bit confused because I thought the structure for the second example is valid but it ends up breaking with the latest updates

@siriwatknp are you able to clarify the issue above?

@siriwatknp are you able to clarify the issue above?

Got it. The second structure should be:
<Grid container columns={8} spacing={2}>
  <Grid xs={4} p={4} sx={{ background: "red" }}>
    Test
  </Grid>
-  <Grid xs={4} p={4} sx={{ background: "blue" }}>
+  <Grid container xs={4} p={4} sx={{ background: "blue" }}>
-    <Grid container>
      <Grid xs={6} sx={{ background: "yellow" }}>
        Part one
      </Grid>
      <Grid xs={6} sx={{ background: "green" }}>
        Part two
      </Grid>
-    </Grid>
  </Grid>
</Grid>

I think we can improve this. For the structure you propose, I think it is also valid as well and it should not create nested grid.
I propose the fix by creating nested grid only when container is true:
diff --git a/packages/mui-system/src/Unstable_Grid/createGrid.tsx b/packages/mui-system/src/Unstable_Grid/createGrid.tsx
index 37465f1953..afa72903c5 100644
--- a/packages/mui-system/src/Unstable_Grid/createGrid.tsx
+++ b/packages/mui-system/src/Unstable_Grid/createGrid.tsx
@@ -161,14 +161,16 @@ export default function createGrid(
         className={clsx(classes.root, className)}
         {...other}
       >
-        {React.Children.map(children, (child) => {
-          if (React.isValidElement(child) && isMuiElement(child, ['Grid'])) {
-            return React.cloneElement(child, {
-              unstable_level: child.props.unstable_level ?? level + 1,
-            } as GridProps);
-          }
-          return child;
-        })}
+        {container
+          ? React.Children.map(children, (child) => {
+              if (React.isValidElement(child) && isMuiElement(child, ['Grid'])) {
+                return React.cloneElement(child, {
+                  unstable_level: child.props.unstable_level ?? level + 1,
+                } as GridProps);
+              }
+              return child;
+            })
+          : children}
       </GridRoot>
     );


Better handling of date time bounded GQL transactions query

Related to #1353

Convert date time to global slot since genesis


CVE-2019-5786

Just wanted to quickly verify if master || 1.13.0 has a patch for this vulnerability since all external docs point to a major version that's not where pptr is at. Since I'm not familiar with how changes are backported/forward-ported, and most folks here probably aren't as well, it'd be great to get a sense of if pptr is effected.
Thanks!

AFAICT this PR addresses the issue: https://github.com/chromium/chromium/commit/ba9748e78ec7e9c0d594e7edf7b2c07ea2a90449
Given that delta, it looks like<EMAIL_ADDRESS>revision does contain that change: https://github.com/chromium/chromium/blob/a0661dc965339dd7fb5395b7028153374ecf20f0/third_party/blink/renderer/core/fileapi/file_reader_loader.cc#L142
This is looking like a positive that 1.13.0 has the fix, though I'm not sure how far back the fix is incorporated in pptr. Is only 1.13.0 good?

@joelgriffith yes, 1.13.0 and after are good.

Any solution for docker alpine?


Duplicating Foreign keys during conversion from MariaDB to PostgreSQL

When I tried to convert from MariaDB to PostgreSQL in the process of create tables the application inserted the foreigns keys as normal column, and when tried to add the foreign key to the database I got this error:
foreign key referenced-columns list must not contain duplicates

Please download OmniDB 1.6.4 and try to perform the conversion again.

I've updated to 1.6.4 and tried make the conversion again. Unfortunately I still got the same error.
The application tries do an alter table and stops on this error, my database ends with no relationship at all and no data in most tables.

Can you send the conversion log generated by OmniDB?
Also, if you could send a dump of (a part of) your database, so we could replicate the error here, it would be better.


[TypeScript] provide method to read data

Currently there's appears to be no way to see the contents of the table via the TypeScript API

Completed via #693


Topologies from different teams

The topology builder won't allow topologie files for different teams when using the "dir" option, ie specifying a directory path with the --topology flag.
Being able to use that however- would be imho highly useful.
Exception in thread "main" java.io.IOException: Topologies from different teams are not allowed
        at com.purbon.kafka.topology.KafkaTopologyBuilder.buildTopology(KafkaTopologyBuilder.java:101)
        at com.purbon.kafka.topology.KafkaTopologyBuilder.run(KafkaTopologyBuilder.java:78)
        at com.purbon.kafka.topology.BuilderCLI.processTopology(BuilderCLI.java:154)
        at com.purbon.kafka.topology.BuilderCLI.main(BuilderCLI.java:118)

EDIT: When applying single topolgy files for different teams it won't work neither - only the first file will be "executed"

This is an expected behaviour, end of the day we need to group the different topologies under the same roof, so i used the first key (aka teams). This key is named teams, but could actually be named differently, end of the day is a bigger umbrella to the project level, this might be teams based on my experience.
Remember, after team and until project, you can pull in any key, value pair, and the values will be in between teams value and the project name at the end in the topic.

ok - this does make sense. However we should then cleary state this in the docs - linking #41

Using allowDelete in a day2day operation would imho require the usage of different teams - to shed more light on the motivation behind this issue

yes, as well people usually give 1 pipeline per team, or project. A single pipeline per company is very complex.

I agree this needs to be explained in the docs.

mh, but then I would love to have a "allowlist" for allowDelete.
Meaning I can specify in my pipeline what topics actually are allowed to be deleted as well.
Otherwise Team A will delete topics from TeamB without even knowing they existed in the first place :thinking:

I would say, Team A gets their pipeline. Same as Team B. Then this problem with delete, gets in hands of the reviewer when checking the Pull Request.

How about in the config one can specify the teams you want to manage?
Then you can use allowDelete on all that teams and also deploy yaml files for multiple teams at the same time

@purbon any further thoughts on my last idea :)

In my experience, and thoughts, the core concept here is:

How many teams, or orgs, do we run per pipeline?

If more than one team/org is run per pipeline, then yes, we might need something like this and/or control this behaviour in reviews.
However in my experiences, and that is why there are the grouping of teams/org + projects is in place, is, you need more than one descriptor not because of teams, but because of number of topics.
Does this makes sense?

It does make sense. Maybe we can discuss an example with two teams so I can express my issue better:
---
team: team1
projects:
  - name: foo
    topics:
      -name: one
      -name: two

---
team: team2
projects:
  - name: alpha
    topics:
      -name: zero
  - name: bar
    topics:
      -name: three
      -name: four

So each team has its own pipeline to handle its own descriptor files.
Now team2 will be discontinue the project alpha and thus use the pipeline to delete everything related to it.
So they will remove the project list item from their descriptor and run the pipeline with --allowDelete

team: team2
projects:

name: bar
topics:
-name: three
-name: four

In my understanding in doing so they will remove also everything from `team1`.

Correct?

@purbon any updates on this?
It would be really awesome if you could manage that KTB is only allowed to delete topics that belong to your current context!

+1

Hi, the known impediments that caused this question are fixed by #180 and the related change to remove the keyword teams and introduce context.
I will close this issue as of now, please feel free to reopen if necessary.


add/remove multiple users from group via one request

Describe the solution you'd like
To keep the backend request for web limited, we need the possibility to add/remove multiple users from a group via one request
MS Graph also provides an example for this
https://learn.microsoft.com/en-us/graph/api/group-post-members?view=graph-rest-1.0&tabs=http
PATCH https://graph.microsoft.com/v1.0/groups/{group-id}
Content-type: application/json

{
<EMAIL_ADDRESS>[
    "https://graph.microsoft.com/v1.0/directoryObjects/{id}",
    "https://graph.microsoft.com/v1.0/directoryObjects/{id}",
    "https://graph.microsoft.com/v1.0/directoryObjects/{id}"
    ]
}

@JanAckermann For adding multiple members this is already implemented since quite a while.
For removing multiple members MS Graph doesn't make any specification IIRC. Also I am unsure if this is really worth it. Yeah, you'd save a couple of roundtrips between web and graph, but OTOH the user management APIs are not that performance critical.  It's not that we constantly add and remove groupmembers in batches.

@JanAckermann BTW, please note that there is a limit of how many members you can add in one batch. (AFAIK it defaults to 20)

@rhafer
Thank you.
I think it is crucial that we add those information to the specs e.G. swagger.

@rhafer oh that's weird tho, I always have a look in the swagger UI or here https://owncloud.dev/apis/http/graph/groups instead of some yaml files.
Anyways, I would love to implement the chunking for add/remove users from groups if both endpoints exist and we have a consistency

Just asking, what happens when a single group fails in the request?
We have the API promise that we don't do "bad things" like doing non-atomic operations which could fail silently.

Just asking, what happens when a single group fails in the request?

We currently only allow adding multiple users to a single group in one request.  In the LDAP backend that boils down to a single LDAP request on the group. That request either succeeds completely (all members added) or fails (no member added)

We have the API promise that we don't do "bad things" like doing non-atomic operations which could fail silently.

I think at least for the "add multiple user to a group at once" operation this promise is ful-filled.
Somehow I think adding support for https://learn.microsoft.com/en-us/graph/api/group-post-members?view=graph-rest-1.0&tabs=http#example-2-add-multiple-members-to-a-group-in-a-single-request to libregraph was a bad idea.
Especially as it lacks the counter part of being able to remove users from a group in batch. And (as you might have noticed :smile: ) I am really hesitant to invent something libregraph specific here.

I guess it's not going to be fixed. closed as not planned
please re-open if I'm wrong


individual file info

The data viewer now does not include any information about the files. If I click download, I have no idea how big of file I am requesting. If I update a file, I can't see from this view that it has been modified. This is really not ideal as a user. I'd much prefer a standard columnar view that you get in standard file explorers

Features in order by importance:

size (even better if we can recursively calculate this for folders)
date modified
date added/created
uploaded by (user)
kind

Even better would be if you could sort on those columns, but just displaying them would be a big help.
I also really liked the side panel for detailed information about individual files. Is there any way we could bring that back?

Depends on https://github.com/dandi/dandi-api/issues/292

since #292 has now been addressed, can we do a quick hack to add :

size of the file
link out to file metadata (from the api server)
before addressing this issue in more general detail

size of the file

This already exists in the response, so this is easy.

link out to file metadata (from the api server)

Do you just want us to link out to the metadata in a new tab like this? If not, what exactly do you mean?

Do you just want us to link out to the metadata in a new tab like this? If not, what exactly do you mean?

yup. exactly that for now. we can create prettier views later on.

since dandi/dandi-api#292 has now been addressed, can we do a quick hack to add :

size of the file
link out to file metadata (from the api server)

before addressing this issue in more general detail
cc: @mvandenburgh @waxlamp

This has been done via #800 (attn: @satra).

I think this works much better now. There is still an open issue to provide nicer view fo metadata (#587), so I'm closing this now. @bendichter - please reopen if needed


report: use argparse to parse arguments

Use argparse for the report generation and adjust USAGE.md accordingly. A benefit of this is that instructions will only be deprecated if we change argument names in the future.

/gcbrun exp -n dk1000-15


Change our site-wide font to an open source one, from Proxima Nova to similar Montserrat

See https://we.opentech.fund/t/switch-otf-typography-to-an-open-source-one/971/2 for more info.

Please test on https://test-apply.opentech.fund
I have switch to Montserrat for headings and to Noto-Sans for everything else. Nothing elsed has changed.
These font displays a bit bigger etc. so are not a direct drop in replacement. Please compare pages on test and live to see how you like it and if any other changes are needed.

The font displayed on the test page looks good. We do not need additional changes to this issue. Thanks!

I can't see the preview as I don't have a token for that site, but I'd agree Montserrat is not great for Body text. Noto Sans is perfect as it has the highest number of glyphs and language support of all fonts families.


add badchainlink file

created a branch, created a file and made a commit, and opened a pull request

request is looking great!

request is looking great!


scripts/bootstrap fails at installing react-overridable

Package version (if known): 3.4.0
Describe the bug
Running ./scripts/bootstrap as described in the tutorial fails with the following error:
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving<EMAIL_ADDRESS>
npm ERR! Found<EMAIL_ADDRESS>
npm ERR! node_modules/react-overridable
npm ERR<EMAIL_ADDRESS>from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>
npm ERR! node_modules/react-searchkit
npm ERR<EMAIL_ADDRESS>from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!
npm ERR! See /home/xxx/.npm/eresolve-report.txt for a full report.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/xxx/.npm/_logs/2021-02-18T14_22_16_749Z-debug.log
Traceback (most recent call last):
  File "/home/xxx/venv/bin/invenio", line 8, in <module>
    sys.exit(cli())
  File "/home/xxx/venv/lib/python3.8/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/home/xxx/venv/lib/python3.8/site-packages/flask/cli.py", line 586, in main
    return super(FlaskGroup, self).main(*args, **kwargs)
  File "/home/xxx/venv/lib/python3.8/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/home/xxx/venv/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/xxx/venv/lib/python3.8/site-packages/click/core.py", line 1289, in invoke
    rv.append(sub_ctx.command.invoke(sub_ctx))
  File "/home/xxx/venv/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/xxx/venv/lib/python3.8/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/xxx/venv/lib/python3.8/site-packages/click/decorators.py", line 21, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/xxx/venv/lib/python3.8/site-packages/flask/cli.py", line 426, in decorator
    return __ctx.invoke(f, *args, **kwargs)
  File "/home/xxx/venv/lib/python3.8/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/xxx/venv/lib/python3.8/site-packages/flask_webpackext/cli.py", line 72, in buildall
    current_webpack.project.buildall()
  File "/home/xxx/venv/lib/python3.8/site-packages/pywebpack/project.py", line 141, in buildall
    super(WebpackTemplateProject, self).buildall()
  File "/home/xxx/venv/lib/python3.8/site-packages/pywebpack/project.py", line 69, in buildall
    self.install()
  File "/home/xxx/venv/lib/python3.8/site-packages/pywebpack/helpers.py", line 48, in inner
    raise RuntimeError("Process exited with code {}".format(exit_code))
RuntimeError: Process exited with code 1

Steps to Reproduce

install nodejs and npm (running Ubuntu 20): curl -fsSL https://deb.nodesource.com/setup_15.x | sudo -E bash - && sudo apt install -y nodejs
node --version  v15.8.0, npm --version 7.5.4
Follow the steps in the tutorial
run ./scripts/bootstrap

Expected behavior
The script finishes without errors
Please let me know if this is actually an issue with react-overridable or npm rather than invenio's bootstrap script.

I downgraded node to version v14.15.5 and npm to version 6.14.11 and it works now


timeplot.cabal: tweak for Chart-1.7 (s/ChartBackend/BackendProgram/)

Signed-off-by: Sergei Trofimovich<EMAIL_ADDRESS>

Sergei, it seems that the CI checks failed, could you take a look? (sorry for the late response, I'll respond faster next time)

Done.
Stack defaults to Chart-1.5 thus failed on constraint of Char >= 1.7.
As the change is only a type name change i've added alias to pre-1.7
type.
Now passes CI and builds fine on my system with Chart-1.7 and 1.8.

It would be great if you can release a new version so cabal install works.  timeplot looks really useful, thanks!

Done! Sorry for the delay.


Separate crates by version and add feature flags

Codecov Report
Patch coverage has no change and project coverage change: -83.85 :warning:

Comparison is base (ef59cf1) 84.18% compared to head (135d8e2) 0.34%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #19       +/-   ##
==========================================
- Coverage   84.18%   0.34%   -83.85%
==========================================
  Files         281     208       -73
  Lines        4826     287     -4539
==========================================
- Hits         4063       1     -4062
+ Misses        763     286      -477

Impacted Files
Coverage Δ

src/lib.rs
100.00% <ø> (ø)

...2_0_1/src/datatypes/ac_charging_parameters_type.rs
0.00% <ø> (ø)

src/v2_0_1/src/datatypes/additional_info_type.rs
0.00% <ø> (ø)

src/v2_0_1/src/datatypes/apn_type.rs
0.00% <ø> (ø)

src/v2_0_1/src/datatypes/authorization_data.rs
0.00% <ø> (ø)

.../src/datatypes/certificate_hash_data_chain_type.rs
0.00% <ø> (ø)

...v2_0_1/src/datatypes/certificate_hash_data_type.rs
0.00% <ø> (ø)

src/v2_0_1/src/datatypes/charging_limit_type.rs
0.00% <ø> (ø)

src/v2_0_1/src/datatypes/charging_needs_type.rs
0.00% <ø> (ø)

...1/src/datatypes/charging_profile_criterion_type.rs
0.00% <ø> (ø)

... and 141 more

... and 187 files with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Festure/frontend dep upgrade

This fixed #248

since most of the actual code changes have been made by me, I approve this with confidence


Fixing the asset editor galleries and adding animation previews

Fixes https://github.com/microsoft/pxt-arcade/issues/2483
Fixes https://github.com/microsoft/pxt-arcade/issues/2534
Fixes https://github.com/microsoft/pxt-arcade/issues/2598
Does a few things:

Moves the asset into the reducer state so that it can coexist with undo
Reuses the asset preview from the asset editor for the gallery (which also seems to fix the image stretching)
Makes the asset preview animate on hover
Adds CLI support for gallery animations to "pxt buildsprites"

There will be a corresponding pxt-arcade pull request where i add the animations

Just updated to add the "my assets" tab to the tilemap editor. Also added the toggle to the tile editor (the one within the tilemap editor) so you can finally open up gallery tiles and edit them.


The security token included in the request is invalid

The script ssm-proxy.sh throws following error in vscode

An error occurred (UnrecognizedClientException) when calling the DescribeInstanceInformation operation: The security token included in the request is invalid.

Likely reason is mentioned in AWS Cloud 9 documentation of this error.
Proposed solution
One possible is to rewrite the script ssm-proxy.sh  with Actions supported by AWS managed temporary credentials.

I am seeing this as well- is the recommended solution rewriting the script?

The script ssm-proxy.sh is used to make a connection from your local machine to the Cloud9 instance and is unrelated to credentials associated with the Cloud9 instance profile / role.
My guess is this is related to either your IAM credentials do not have proper authorization to make the SSM calls provided in that script, or you need to install the Session Manager plugin for the AWS CLI.


What is System administrator permissions?

This Docs says that Full mode require System administrator permissions. What is System administrator?

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

ID: abba9869-987c-0a6b-deb3-031bd6ed7a5e
Version Independent ID: 840080ff-a0f1-8bf2-72e9-7321956903fa
Content: What is the SQL Server IaaS Agent extension? (Windows) - SQL Server on Azure VMs
Content Source: azure-sql/virtual-machines/windows/sql-server-iaas-agent-extension-automate-management.md
Service: virtual-machines-sql
Sub-service: management
GitHub Login: @adbadram
Microsoft Alias: adbadram

@yuharucan
Thanks for your feedback! We will investigate and update as appropriate.

@yuharucan
Could you please refer below link that can be helpful for better understanding.
https://learn.microsoft.com/en-us/azure/role-based-access-control/classic-administrators
if there are any further questions regarding the documentation, please tag me in your reply and we will be happy to continue the conversation.


UI: Stage YAML viewer & editor

Stages should have a YAML viewer and editor

Editor will only allow edits of:
.spec
.metadata.annotations
.metadata.labels


Unable to find React-Core specification

After installing<EMAIL_ADDRESS>to<EMAIL_ADDRESS>I runned cd ios&& pod install. After that following error occured  ```Unable to find a specification for React-Core depended upon by `RNDeviceInfo````
| Version     | 7.4.0  |
| React  | 16.11.0 |
| react-native | | 0.62.2 |
| OS Version  | MacOS Big Sure  |

common problem, specs out of date probably. Definitely not a problem with this module
https://duckduckgo.com/?t=ffab&q=unable+to+find+a+specification+for+react-core


fix: public key conversion

This PR fixes an issue occuring when validating assertion. When the process enters convertPublicKeyToPEM(), the following error is thrown:
TypeError: Cannot read property 'get' of undefined
  at Object.convertPublicKeyToPEM [as default] (/home/<user>/Desktop/<my_project>/node_modules/@simplewebauthn/server/dist/helpers/convertPublicKeyToPEM.js:18:24)
  at Object.verifyAssertionResponse (/home/<user>/Desktop/<my_project>/node_modules/@simplewebauthn/server/dist/assertion/verifyAssertionResponse.js:128:54)

I believe this is caused because commit 548aa64bbbcfc70491a7ce2b103f9bd78ac010b6 changes the function to accept Buffer, instead of string, but the argument publicKey is being sent as a Buffer object and not a Buffer, resulting in the error above

You have to pass the buffer by yourself before instead of doing it inside the function. I am doing like this in my project and all is working well

@akanass Either way, shouldn't the example project rectify this issue then? I'm basing my project off the example one, and the conversion isn't mentioned anywhere from what I've seen

I apologize for the confusion. The example project doesn't do any such conversion because the AuthenticatorDevice type was updated to make credentialPublicKey into a Buffer, and so the example project now tracks all of these as Buffers within its inMemoryUserDeviceDB:
https://github.com/MasterKale/SimpleWebAuthn/blob/31ba87cb189b723b053a1e1edb12b173200a5b39/packages/typescript-types/src/index.ts#L121
https://github.com/MasterKale/SimpleWebAuthn/blob/31ba87cb189b723b053a1e1edb12b173200a5b39/example/example-server.d.ts#L37
(the LoggedInUser type defined in the example project references the AuthenticatorDevice type)
verifyAssertion(), then, expects the credentialPublicKey to be a buffer as a property on the AuthenticatorDevice you pass in as the credential argument:
https://github.com/MasterKale/SimpleWebAuthn/blob/31ba87cb189b723b053a1e1edb12b173200a5b39/packages/server/src/assertion/verifyAssertionResponse.ts#L20


Example of tag compliancy needs an 'or' in the doc

The example for 'Enforce Tag Compliance' needs an 'or' added to look for whether any of those required tags are missing.
http://www.capitalone.io/cloud-custodian/docs/usecases/tagcompliance.html
policies:

- name: ec2-tag-compliance-mark
  resource: ec2
  comment: |
    Find all (non-ASG) instances that are not conformant
    to tagging policies, and tag them for stoppage in 1 days.
  filters:
    - or:       <-------------------- add this line
       - "tag:aws:autoscaling:groupName": absent
       - "tag:c7n_status": absent
       - "tag:Owner": absent
       - "tag:CostCenter": absent
       - "tag:Project": absent
  actions:
    - type: mark-for-op
      op: stop
      days: 1

I will get that added via a PR.

I have added these changed via https://github.com/capitalone/cloud-custodian/pull/1756
Thanks for catching that! :)

@jtroberts83 don't the and/or filters work just like sql and/or operators?  When you add an or like that, doesn't that mean that it will get any ec2 instance with Owner absent regardless of c7n_status tag.

@jhnlsn the entire filters list is evaluated as an and
i.e.
  filters:
       - condition1
       - condition2
       - or:
            - condition3
            - condition4

condition1 and condition2 and (condition3 or condition4) must evaluate to true to filter in a resource

@jtroberts83 I ran a simple example.  I have 2 ec2 instances, one instance has the c7n_status tag with a random value. the other instance doesn't have any tags.
The filter below returns both instances, but in your explanation it would imply it should only return 1 instance.  Unless I'm not understanding something.
filters:
       - "tag:c7n_status": absent
       - or:       <-------------------- add this line
            - "tag:Owner": absent```

@thisisshi That is not what i'm seeing in my results.


[Google Drive] Add fixes for broken shortcuts and dot-underscore files

Description
Fixes a crash when the extension encountered shortcuts to private folders or files.
Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

Cc @pernielsentikaer To give final approval


ci: test with both clang 8 and 9

Use Go 1.13 for testing

There are some compilation errors using Clang 9.0.0:
--- FAIL: TestAllPrograms/interface-slice-consts.go/optimize:false/ (0.05s)
        compiler_test.go:105: Expected:
            ---
            '111
            222
            111
            222
            10
            11
            12
            13
            14
            15
            16
            17
            18
            19'
            ---
            Result:
            ---
            'signal: aborted (core dumped)'
            ---
        compiler_test.go:28: failed: Unexpected result

    --- FAIL: TestAllPrograms/interface-append-test.go/optimize:false/ (0.04s)
        compiler_test.go:105: Expected:
            ---
            '100
            200
            100
            200
            100
            200
            300
            100
            200
            300
            400'
            ---
            Result:
            ---
            'signal: aborted (core dumped)'
            ---
        compiler_test.go:28: failed: Unexpected result

bors r+


is no Semantic Surface Object, should it be {} or null

"semantics": [
      {
        "type": "RoofSurface",
        "slope": 16.4,
        "solar-potential": 5
      },
      {},
      {
        "type": "GroundSurface"
      }
    ]

or null instead? Or both?

Only null in my opinion.

I agree, null seems best.

thanks all, I was looking at this and thought null should be there, you
confirmed this.
But it seems that we our new proposal that won’t be necessary actually!
On Thu, Oct 12, 2017 at 4:24 AM, Ken Arroyo Ohori<EMAIL_ADDRESS>wrote:

I agree, null seems best.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/tudelft3d/cityjson/issues/8#issuecomment-336001716,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABeZFiw0ytxLCN6L9h881lkHOVk050R6ks5srXhngaJpZM4P0Mes
.

no necessary anymore, from v0.5 the Semantic Surface are enumerated and links to them provided.


Support disk.driver hw requirement for mrack

Pull Request Checklist

[ ] implement the feature
[ ] write the documentation
[ ] extend the test coverage
[ ] update the specification
[ ] adjust plugin docstring
[ ] modify the json schema
[ ] mention the version
[ ] include a release note

Resolves #2546

Updated:)

The checklist in the pull request description could remind about this ;-)

Thanks for your reminder,will keep that in mind:)
On Wed, Mar 6, 2024 at 12:08 AM Petr Šplíchal @.***>
wrote:

@.**** requested changes on this pull request.
Thanks for implementing this. Just one nitpick. Could you please also
update the release note accordingly? The checklist in the pull request
description could remind about this ;-) We remove irrelevant items from it
and mark as done completed items.
In tmt/steps/provision/mrack.py
https://github.com/teemtee/tmt/pull/2668#discussion_r1513093736:

@@ -145,6 +146,20 @@ def init(self, name: str, operator: str, value: str) -> None:
}

@.***(init=False)
+class MrackHWKeyValue(MrackHWElement):

""" An key-value element """

⬇ Suggested change

""" An key-value element """

""" A key-value element """

—
Reply to this email directly, view it on GitHub
https://github.com/teemtee/tmt/pull/2668#pullrequestreview-1917471815,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKFR23DJUFPTIX726N6D26DYWXUYXAVCNFSM6AAAAABC3I3S72VHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMYTSMJXGQ3TCOBRGU
.
You are receiving this because you authored the thread.Message ID:
@.***>

/packit test


Feature Request: Provide themeName prop for components wrapped by themr

Having to deal with the style object generated by module bundlers is typically unfriendly, for all the reasons outlined in react-css-modules#whats-the-problem.
It'd be nice if styling was done through a similar approach to what react-css-modules provides by way of a themeName prop that gets inspected by the HOC and is automatically injected into that children component's classNames. Having a similar API also provides more hints to the user as to which one they should be wrapping their components in: if its styles are meant to be overriden or injected, use themr, otherwise use react-css-modules. However, it's a little bit awkward in that themr could almost be seen as a superset of react-css-modules, but I think there's something to be gained by limiting the themeability of a component through react-css-modules and I see at least one clear use case where I'd use both together -- inline child components:
import React from 'react';
import CSSModules from 'react-css-modules';
import { themr } from 'react-css-themr';
import List from './List';
import theme from './table.css';

class CustomList extends React.Component {
    render () {
        let itemTemplate = CSSModules((name) => (

{name}
;
        ), this.props.theme); // or even subset of theme (ie. { 'item-template': this.props.theme['item-template'] })

        return <List themeName="list" itemTemplate={itemTemplate} />;
    }
}

export default themr("ListComponent", theme)(CustomList);
// As an aside, it'd also be nice to expose a normal function operator,
// see https://github.com/gajus/react-css-modules/blob/master/src/index.js#L47

Thoughts? Also pulling in @gajus since he might have some thoughts to share.
I'll probably start working on this soon since I'm finally getting around to using this (awesome work btw, @javivelasco, a lot of this makes a lot of sense and solidified a lot of the ideas I had wanted to implement myself!) but the similarities to react-css-modules means I'll likely pull a lot from that repo or generalize it into some generic style utils.

I read the entire docs and don't see how any of this is different from react-css-modules. react-css-modules already provides ways to overwrite component styles, e.g. https://github.com/gajus/react-css-modules#extending-component-styles
Can you provide an example solving a problem with/ without react-css-modules/ react-css-themr?

@gajus In cases where you have a component tree but only want to change a few component's styles, it gets much harder to apply that change through just react-css-modules since its styling is only available to its direct parent component. react-css-themr provides a way to restyle these components from the top level, or really, from any level, down depending on your usage of the ThemeProvider.
 The component tree would be something like:
List
  ListItem
    Button
  ListItem
    Button
  ...

If we wanted to only restyle the Button components, say, depending on which whitelabel or which user it is, you'd have to pass that style from the top all the way down with only react-css-modules if you didn't want your Button to be directly coupled with the logic for your styling. In some cases, this is impossible to realistically accomplish since it'd mean passing down all possible child component styles through each component, or, if you don't control some of the middle components, it can actually be just impossible (eg. if one of those middle components wraps your component in a HOC and that HOC doesn't pass through all the props).
With react-css-themr, you'd just have to declare which style you want your Button to use at the top and the Button will use that style, no matter how far down or how many "uncontrolled" layers there are.

@gajus In cases where you have a component tree but only want to change a few component's styles, it gets much harder to apply that change through just react-css-modules since its styling is only available to its direct parent component.

You can achieve theme inheritance using custom properties:
const Viewport = () => {
	const button = require('./button-theme.css');

	const themes = {
		button
	};

	return <App themes={themes} />;
};

const App = CSSModules((props) => {
	return

		<Button styles={props.themes.button || null} />

;
});

const Button = CSSModules(() => {
	return <button type='button' styleName='button>Click me</button>;
});

or using React context.

react-css-themr provides a way to restyle these components from the top level, or really, from any level, down depending on your usage of the ThemeProvider.
If we wanted to only restyle the Button components, say, depending on which whitelabel or which user it is [..]
With react-css-themr, you'd just have to declare which style you want your Button to use at the top and the Button will use that style, no matter how far down or how many "uncontrolled" layers there are. [..]

Can you produce a code example?
I have read the documentation, but I am unable to find the particular pattern that you are describing.

Furthermore, react-css-modules could add a custom method used to resolve values from the properties, React context or anywhere else, e.g.
const Viewport = () => {
    const button = require('./button-theme.css');

    const themes = {
        button
    };

    return <App themes={themes} />;
};

const App = CSSModules((props) => {
    return

        <Button styles={props.themes.button || null} />

;
};

const Button do {
	/**
	 * A custom function used to overwrite the default styles.
	 */
	const resolveStyles = (props, defaultStyles) => {
		// A sample implementation.
		if (props.styles) {
			return props.styles;
		}

		if (props.themes && props.themes.button) {
			return props.themes.button;
		}

		return defaultStyles;
	};

	const styles = {};
	const options = {};

	CSSModules(() => {
	    return <button type='button' styleName='button'>Click me</button>;
	}, styles, options);
};

Can you produce a code example?

I assume you mean how react-css-themr themes components through ThemeProvider? There's an example at context theming, but as an example:
import loggedOutButton from 'loggedOutButton.css';
import loggedInButton from 'loggedInButton.css';

const theme = isUserLoggedOn ? { Button: loggedOutButton }
                             : { Button: loggedInButton };

const content = (
    <ThemeProvider theme={theme}>
        <App />
    </ThemeProvider />
);

render(content, ...);

Now any Button in the app will be styled either with the logged out styles if the user's logged out, or the logged in styles if they're logged in. There's no need to do any prop pass-throughs or context managing yourself.
Yes, this is very similar to what you described with custom properties or context (all ThemeProvider actually does is add the theme to context). That's why I said it's somewhat awkward, because react-css-themr and react-css-modules can achieve very similar things but that the former is more of a superset of the latter because it provides theming capabilities out of the box, rather than having to figure it out yourself.
I suppose at the other end of the suggestion spectrum, the ability to theme could also be baked into react-css-modules rather than making react-css-themr's API closer to `react-css-modules. In any case though, I think it'd still be nice to be able to explicitly declare that a component can either be rethemed or not.

I suppose at the other end of the suggestion spectrum, the ability to theme could also be baked into react-css-modules rather than making react-css-themr's API closer to `react-css-modules. In any case though, I think it'd still be nice to be able to explicitly declare that a component can either be rethemed or not.

Theme-ing, in one way or another, is super important to react-css-modules. However, I think that react-css-modules should not provide implementation of theme-ing, it should only provide hooks required to implement theme-ing. Therefore I think that resolveStyles is quite an elegant solution.
If you'd like to discuss this further, please raise an issue in react-css-modules repository.

Hi guys! I couldn't read the whole thread yet but I wanted to drop a quick comment before going to sleep. First of all, congrats @gajus for the project, I looked at it long ago and it's a great work, I'm not familiar with the current state though. Thanks @SohKai for your kind words! :)
I've written this small module to be used with react-toolbox. It's quite difficult to customize components so what I wanted to do at first was just to provide a way to add classes to the component following an API.
For example, imagine a menu with a pointer that can be positioned in multiple places depending on some props. Typically the pointer will be done with pseudoelements and, in case you want to customize the background, for that specific class what you'd do is to change the border-color. Just one property. That's way instead of provide new styles for the menu, you just add classes using the theme property. The HOC appends them for you. I don't know if nowadays it's possible to do this in react-css-modules, but if it's I couldn't figure out before writing this.
Another example is to provide the whole theme in a single place. In react toolbox you should be able to import a Raw component and I wanted to give the ability to customize a full application without changing toolbox imports. This means you'd be importing a RAW toolbox component and then providing the theme somewhere else. The best way to do this without spreading props through the tree was by using contexts. So I came up with this idea of setting an object with the relation between component ids and theme objects.
 If all of this can be done I'd happily move to react-css-modules :) Tomorrow I'll read better the messages and try to be more accurate in my answers. Thanks for your time checking on this lib!

@gajus Ah, I see why you proposed resolveStyles now. At first I was hesitant because it's on a component level (and therefore tedious), but I agree with you that providing hooks in this style is more flexible and a better API.

The HOC appends them for you. I don't know if nowadays it's possible to do this in react-css-modules, but if it's I couldn't figure out before writing this.

@javivelasco This isn't possible right now with react-css-modules since it doesn't resolve styles in the way you described, but with resolveStyles, this would just fall under that. I think most of what's in themr.js, and especially the themeable function that does the class merging, could go into resolveStyles to have react-css-modules resolve themes like you described.

@gajus @javivelasco Given that someone else other than react-css-modules should provide theming, do you think it's the right approach if this library (or maybe a new one since this is a rather different approach philosophically) wrapped around react-css-modules, provided a HOC that injected a default resolveStyles into react-css-modules's HOC, and included a ThemeProvider that could add themes to the context for the resolveStyles to pull from (basically ThemeProvider as-is)?
I think there's one issue here where someone is wondering if this library is meant just for css-modules or other methodologies; not sure what your plans are on that @javivelasco. One thought is that another HOC could be provided that only does the class name resolving without wrapping around react-css-modules.

resolveStyles is a function. There is no need (as far as I can think) for an additional HoC.
As you suggested, it would be a separate module altogether. I could list them under a new section in react-css-modules documentation.
I will experiment over the weekend with resolveStyles to discover useful patterns.

If I understand correctly, resolveStyles would be separately available on every component wrapped with react-css-modules's HOC? If I wanted a single way to resolve styles, I'd need a way to inject that into all those instances, right? I'd rather not have to import a resolveStyles function from a module and put that into every usage of react-css-module's HOC...
I think the one big thing that needs some attention in regards to resolveStyles is supporting the use case of "appending classes" (see themeable()). I think if this is done in resolveStyles, it should work without any problems on react-css-modules's side, but I'm not 100% sure.

If I understand correctly, resolveStyles would be separately available on every component wrapped with react-css-modules's HOC?

I was thinking more about providing at the time of wrapping the component using react-css-modules, such as in the earlier example:
const Button do {
    /**
     * A custom function used to overwrite the default styles.
     */
    const resolveStyles = (props, defaultStyles) => {
        // A sample implementation.
        if (props.styles) {
            return props.styles;
        }

        if (props.themes && props.themes.button) {
            return props.themes.button;
        }

        return defaultStyles;
    };

    const styles = {};
    const options = {
            resolveStyles
        };

    CSSModules(() => {
        return <button type='button' styleName='button'>Click me</button>;
    }, styles, options);
};

providing at the time of wrapping the component using react-css-modules

That's what I mean; I think it'd be tedious to do this over and over again if you're just going to use the same resolve function, as you probably would in this case of theming.
Another benefit to using another HOC is that it could expose an API just for its style resolver, for example, if a component had styleName, it wouldn't get resolved, but if it had themeName, it would. Not entirely sure how useful that might be aside from enforcing some base styling, but things like this push me towards using another HOC.

Sorry @sohkai I cleared the notification by mistake and totally forgot about this. Did you get any progress? I've lost a bit of context on the thread and maybe you get some thoughts clear during this time. May you give an update? Check this PR #14 coming for next release. I think you may find it interesting, what do you think??

@javivelasco Unfortunately I got pulled away into doing something else and haven't been able to think about this. I think @gajus and I's conclusion was that the work should be done first on react-css-modules but I haven't had the time to push a PR there. I think if you want, you can close this issue until it becomes apparent that work also needs to be done here.

Ok! If there is something we can do to improve integration just reopen. It looks like the lib is gaining popularity and I'd love to make it as good as possible :)
Thanks and sorry again for my late response @sohkai !!


Notice: Undefined index: c

Notice: Undefined index: c in /Users/ollie/Ubiquity/blog/vendor/phpmv/ubiquity/src/Ubiquity/controllers/Startup.php on line 32
Steps taken:

curl -s http://getcomposer.org/installer | php
composer global require phpmv/ubiquity-devtools
Ubiquity new blog
cd blog
php -S <IP_ADDRESS>:8090
http://<IP_ADDRESS>:8090

Tried:

Updating Composer
Using PHP 7.3 + 7.2

Hello,
Ubiquity Startup use a c parameter in Url.
So with php as server, you must provide this parameter with a router file.
Create this .htrouter.php file in the base root of your web application:
$uri = ltrim(urldecode(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)),'/');
if (!file_exists(__DIR__ . '/' .$uri)) {
	$_GET['c'] = $uri;
}else{
	$_GET['c']='';
}
return false;

And then you can call in console:
php -S <IP_ADDRESS>:8090 .htrouter.php

It will be necessary to modify the siteUrl key in the configuration file app/config/config.php:
	"siteUrl"=>"http://<IP_ADDRESS>:8090/",

Devtools now have a serve command to start a development server and avoid this type of inconvenience
Run from the root of your application:
Ubiquity serve

see https://github.com/phpMv/ubiquity-devtools/releases/tag/v1.1.3


Bring codeclimate up to A

Want to move from B-->A!

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

Comparison is base (b417a6e) 64.52% compared to head (00d9230) 61.75%.
Report is 41 commits behind head on main.

Files
Patch %
Lines

src/cortecs/fit/metrics.py
13.04%
40 Missing :warning:

src/cortecs/opac/io.py
85.71%
3 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main       #4      +/-   ##
==========================================
- Coverage   64.52%   61.75%   -2.77%
==========================================
  Files          17       17
  Lines         761      821      +60
==========================================
+ Hits          491      507      +16
- Misses        270      314      +44

Flag
Coverage Δ

unittests
61.75% <35.82%> (-2.77%)
:arrow_down:

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

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


Width doesn't work

I tried this:
{% asset_img HM01637.jpg 500px "Original" %}

And the width was in the caption for some reason?

Same issue. It doesn't work whether I set the width with px or percentage.
This project seems not update anymore?

Same issue!


🦟[Bug Report] Unable to store Memo data after sending

Describe the bug

After sending a transaction, the memo is blank
To Reproduce
Steps to reproduce the behavior:

Craft transaction (set address and amount)
Add memo text in the Send view
Send.
Review the transaction
The memo is blank

Screenshots

Observed Environment

OS version [e.g. iOS 13.0]: iOS 16.7.7
Litewallet Version [e.g. v3.4.0]: v3.13.1(240322.0)
Device model:[e.g. iPhone 11]: iPhone 10

Additional context or information

I didn't know there was already something listed. The wallet allows you to write a memo. After sending the MEMO is blank.
Only 1 user has ever noticed this and wrote something about it. And I think this is only for iOS


removed 32 bit builds, fixed a link

removed release information from non code services in the status command

LGTM...
Pour one out for 32 bit architecture. If we don't support it, it must be dead :(


[NEW ALGORITHM] Rotated binary search

Description:
Search the item after rotating in the array

Contributor in GSSoC-ext
Want to work on it

Please assign me

@Dipanita45 you're assigned.

Thank for the chance. I will start work as early as possible 😃
On Wed, 9 Oct 2024, 2:11 pm Pankaj Kumar Bind, @.***>
wrote:

@Dipanita45 https://github.com/Dipanita45 you're assigned.
—
Reply to this email directly, view it on GitHub
https://github.com/AlgoGenesis/C/issues/225#issuecomment-2401705908, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/A7SRZ6CDTAQAX7I7IQ4BCVDZ2TT3NAVCNFSM6AAAAABPN7LAGKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMBRG4YDKOJQHA
.
You are receiving this because you were mentioned.Message ID:
@.***>

I have completed the algorithm program and please review my pull request
On Fri, 11 Oct 2024, 12:02 pm Pankaj Kumar Bind, @.***>
wrote:

Closed #225 https://github.com/AlgoGenesis/C/issues/225 as completed.
—
Reply to this email directly, view it on GitHub
https://github.com/AlgoGenesis/C/issues/225#event-14603854622, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/A7SRZ6FMLYJHMZ67XFMAIZLZ25WI7AVCNFSM6AAAAABPN7LAGKVHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJUGYYDGOBVGQ3DEMQ
.
You are receiving this because you were mentioned.Message ID:
@.***>


accessibility: the labels for the top-level tree nodes in find references all just read "true"

Does this issue occur when all extensions are disabled?: No, because if you do that you can't find references.

VS Code Version: 1.60.1
OS Version: Windows 10

Steps to Reproduce:
With NVDA 2021.1, use alt+shift+f12 to find references.  It'll read the references fine, but all the top-level labels are "true".  I'm pretty sure these are supposed to be filenames or something like that instead.
I didn't bisect extensions but it's happening on two different machines against both rust-analyzer and C/C++.  I can bisect extensions if we need me to as well, but pretty sure this one will be easy to duplicate once in front of the right people.

I believe this is a general issue with custom trees because the references view doesn't define any accessibility information. In this case it's a resource URI which might become "true" along the way

Yes, this is a bug with custom tree + resource URI. Thanks for reporting this @ahicks92!

Yep, looks good.  Thanks.


Possibly incorrect capture name for the 1st comment in a file.

First of all, being the 1st issue in the repo, I want to start with a big THANK YOU!! This is really great and already so helpful :-)
As for the bug, given the file:
// foo
// bar
// baz

I would expect that the query would capture all the three lines as comments. However, the capture name for the 1st comment in a file is "preproc", and the rest of the comments are correctly identified as "comment". I'm still new to Risor, does it even have preprocs at all?
The tree looks correct: (source_file (comment) (comment) (comment)) so it is only a query related issue.

Hello! Thanks for the issue :)
I'm marking the first comment as preproc just to colorize a shebang correctly. But that should only happen with #! comments, and only on the first line.
Will fix

Hello! Thanks for the issue :)
My pleasure :-)

I'm marking the first comment as preproc just to colorize a shebang correctly. But that should only happen with #! comments, and only on the first line.
Ah, that makes sense...

If I may add: maybe it's a better idea to use a name similar to what other queries use for this capture? Seems like both https://github.com/nvim-treesitter/nvim-treesitter/blob/master/queries/bash/highlights.scm#L228 and https://github.com/nvim-treesitter/nvim-treesitter/blob/master/queries/perl/highlights.scm#L4 use @keyword.directive for it. That would make the colorscheme creators' lives a tiny bit easier :-)

Will fix

If I may add: maybe it's a better idea to use a name similar to what other queries use for this capture? Seems like both https://github.com/nvim-treesitter/nvim-treesitter/blob/master/queries/bash/highlights.scm#L228 and https://github.com/nvim-treesitter/nvim-treesitter/blob/master/queries/perl/highlights.scm#L4 use @keyword.directive for it. That would make the colorscheme creators' lives a tiny bit easier :-)

Great tips! I've been cross referencing a lot when creating this, as it is my first rodeo :p So the more inspiration sources the merrier

This is quite something for the first rodeo :-) Cheers!

Looks like my bug report was incorrect: there is nothing wrong with the highligting query itself, the problem is in the Go binding library, i.e. https://github.com/smacker/go-tree-sitter/blob/master/bindings.go#L831-L858 - I don't see any lua-match? implemented anywhere in there.
FWIW, although the way you implemented the shebang search is commonly used by other parsers' queries as well, it is also incorrect, see: https://en.wikipedia.org/wiki/Shebang_(Unix), I quote " The space between #! and interpreter is optional. There could be any number of spaces or tabs either before or after interpreter."  So you will miss valid shebangs, that include space, i.e. #!     /usr/bin/risor wouldn't work, when it should. You should just ditch the /.
While we're at it, shebangs can even work on Windows, and can look like #!"C:\Program Files\Foobar\foo.exe" -whatever (double quotes are required for paths with spaces). So the safest choice is to stick with ^#!.
That being said, none of that have anything to do with the current issue, hence I'll close it!

I think I finally figured it out :-) I was wrong earlier, the Go bindings don't implement lua-match? for a good reason - it is not part of official treesitter: https://tree-sitter.github.io/tree-sitter/using-parsers#match-not-match-any-match-any-not-match - but it is an extension that nvim_treesitter uses (and queries designed for it).
So by using it, you are locking yourself only to nvim, however there is nothing that needs lua in your regex, you can simply use match? instead which is standard/more general and thus will work everywhere :-)  including neovim but not only.

Yeah, I can confirm it works as expected when the matcher is changed from lua-match? to match?:


:sparkles: :construction_worker: ability to deploy to radix from github

AB#462831

🎉 Maybe a showcase tomorrow in FE status meeting?

That's the plan 😄


Add guide on application snapshot management.

This PR introduces detailed documentation covering the snapshot management workflow in EVE. It includes explaining how volumemgr and zedmanager handle snapshots, the logic for maintaining maximum snapshot limits, and an overview of manual testing procedures.

Omg, I had no idea that we also have a linter for Markdown files... And that a new doc can contain so many issues according to the linter.
I'm going to fix them tomorrow.

Fixed Yetus issues

The codecov failure is irrelevant, I guess. @shjala, how can we eliminate such situations?

I added the changes to the text according to the comments from @eriknordmark.

In addition to the detail comments I wonder if it makes sense to split it into two documents

I'll try to split it now and check what will it look like.

@eriknordmark, I've split the doc into two: 1. Overview, 2. Implementation.
Additionally to your suggestion, I also mention max snapshots limitation and extra space requirements in the first one.

@eriknordmark any other comments? Or we can merge it?

Hmm, no need to run eden tests in this case.
We should probably also add pkg/pillar/docs/** to https://github.com/lf-edge/eve/blob/master/.github/workflows/eden.yml#L14

We should probably also add pkg/pillar/docs/** to https://github.com/lf-edge/eve/blob/master/.github/workflows/eden.yml#L14

https://github.com/lf-edge/eve/pull/3433

@OhmSpectator Please rebase, we will check if #3433 had the desired effect.

@OhmSpectator Please rebase on the latest master, we will check if #3433 had the desired effect.

done!

@milan-zededa it looks like Eden is triggered again :/

@milan-zededa it looks like Eden is triggered again :/

Yeah, never mind, we will hopefully figure it out in the new workflows.

@milan-zededa maybe the reason Eden was triggered again is that it has already been triggered at least once for this PR...  Maybe it will still work for newer PRs.


Update install instructions for macOS

simpler to install scala and sbt through brew than whats in the blog on macs

Thank you for the contribution!


Rm 3 - IR & RF Controller

Wonder if anyone has tried to get this device integrated. Its a cool device which allows a mobile app control any device that uses IR remote e.g.. Home entertainment.
http://www.everbuying.net/product1167543.html

Seconded

AFAIK, the RM3 does not have RF support.  Grab the older RM2 for this if you need RF.  I have one, and it rocks.  I've just about got it working with HomeKit.

@ericmagnuson if you do get it working, let me know. I'd be very very interested.

@ericmagnuson enlighten us please on how you got this working with homebridge

@RickNunn & @maragelis, I'd be happy to!  I did indeed get it working, but it's a bit of an elaborate setup, so bear with me.
It requires two VMs with network access to the RM2.  I used virtualbox, so that's the setup I'll explain.  When configuring both of the following VMs in virtualbox, be sure to set the network adapter to Bridge Adapter as seen here.
The first VM (VM1 for short) runs Android-x86 (special flavor of Android for desktop architecture) with the RM Bridge app running.  I used the Android-x86 4.4-r4 VMDK image available here.  Once you have that VM set up, launch it and install the RM Bridge app by downloading the .apk file from the RM Bridge site.  Launch the app and connect to your RM2.
The second VM (VM2 for short) runs *nix, nodejs, and the homebridge app.  For the VM, I chose to run Bitnami's pre-built nodejs stack on Ubuntu 14.04.  The VMDK image is available at the bottom of the page here.  Launch the VM, log in, and install homebridge plus homebridge-http.
Before we get to configuring homebridge, let me take a minute to explain the setup overview.  The RM Bridge app on VM1 is what directly talks to your RM2. This RM Bridge app is controlled via an HTTP API.  You could build out your own web app to interact with the API, but the RM Bridge creator already wrote some JS tools implementing the RM Bridge API, which are available on the RM Bridge website.  Using these RM Bridge tools, you can connect to your RM2, learn remote codes, give them shortcut names, and list the HTTP endpoints that tell RM Bridge to fire the codes.
On VM2, homebridge waits for HomeKit commands (e.g. from your iPhone) and then fires the requested command using homebridge-http to hit the corresponding RM Bridge HTTP endpoint.  You will have to set up your HomeKit switches and which RM Bridge endpoints control them in your homebridge config.
This guide is pretty brief, so let me know what areas are confusing, and I will clarify.  When I get some more time, I will try to write a more detailed guide (maybe even a screencast) since there really isn’t much out there.  Cheers!

@ericmagnuson wow you don't mess around. How are you finding the reliability? A screencast sometime would be awesome.

@RickNunn Haha, I was determined to get it working.  The reliability is fairly good but not perfect.  Occasionally, I'll have to ask Siri two or three times to turn on a given light if the whole system sits idle too long, but after that, it usually fires just fine (and very very quickly, too).
I've added a detailed guide/screencast to my agenda, so hopefully I can create one in the very near future.

@ericmagnuson  Thanks

Got RM3 working with Homebridge with a much more reliable setup - no VMs whatsoever, just UDP requests from Homebridge directly to RM3. It does require some UDP packet sniffing (which is quite a pain), but once it's done it works like a peach.

@cocacola89 Sweet! I would love to figure out to reverse engineer the packets, but it'd be a pain.  Going through two VMs can be laggy and unreliable at times.
Maybe we could come up with a way to automate the sniffing.  How did you go about it?  Did you sniff packets from RM Bridge or from the Broadlink app itself?

I sniffed packets from official iPhone e-Control app, but as far as I know RM Bridge uses the same API library from Broadlink (which is distributed in binary form), so it doesn't really make any difference.
The real challenge here is to make this API library talk directly to the RM3, as it uses Broadlink cloud service at the highest priority. I had to disable cellular data on my iPhone and pull out WAN cable from my router to achieve this.
Sniffing packets from app to the cloud and from the cloud to RM3 is no use - even if you repeat it from Homebridge, RM3 just ignores it. You have to sniff packet that goes directly from API Lib to RM3.

Hang on, is this compatible with an RM2 or only with an RM3?

@ericmagnuson Sorry, I don't own an RM2, so I can't tell for sure. Furthermore, all discussions I've seen were around RM3. I guess you should try it yourself with RM2, I suspect it will work a-ok.
If you decide to try packet sniffing here are some resources you should see first:
https://community.openhab.org/t/broadlink-black-bean-rm-3-mini-ir-controller-help-with-understanding-their-udp-protocol/ - thread about using RM3 mini with OpenHAB. Some stuff is specifically related to OpenHAB, but this is the place where @davorf has made some good progress on packet sniffing and came up with a DUMMY-REAL workaround.
https://github.com/davorf/BlackBeanControl - simple Python script that sends intercepted payload to RM using DUMMY-REAL workaround. All credits go to @davorf. Unfortunately, I could not get it to work even after intercepting the right packets, so I wrote quite the same app in C# for testing.
https://www.youtube.com/watch?v=YukzDjteE1U - video about integrating RM3 mini with MajorDomo. The video is in Russian, but this guy draws some self-explaining schemas and kinda shows the process of packet sniffing with Wireshark, so it is really helpful. Hope you can use it without knowing Russian :-) This guy doesn't speak about DUMMY-REAL workaround, everything works for him with just real packages, but for me it doesn't.
From my experience:

You should look for UDP packets that go directly from your control app (RM Bridge, official app) to your device, so you should know both IP-addresses.

Do not assign constant IP-address on your router to the RM-device. Just allow it to get first free address via DHCP. (Not quite sure about this, but when I did so, I stopped receiving direct packets).

Sometimes packets show up as QUIC, sometimes as just UDP in Wireshark. Nevertheless, it's full body always starts with 5aa5aa555aa5aa, that sometimes Wireshark interprets as a QUIC-header.

5aa5aa555aa5aa is always followed by<PHONE_NUMBER>0000000000000000000000000000000000000000 in the packet payload. That's a clue when searching for the right packets.

Full packet payload is quite long. For instance, my dummy packet payload is 5aa5aa555aa5aa5500000000000000000000000000000000000000000000000022f4000037276a007a805220cc0d43b401000000c9c60000bd3c65d3423957f33f5d27c067e72bff6fe7d6f3fc7d1b24d7926df1fb5de67a4a05d20c9c5b0fc19fd7aa4de3cb99b63b42b9f8ec238ab8841db108b7b95585d8e0092675b4a1c684db179ac8d99c57. Anything much shorter than this is ignored when you try to reproduce it.

Once you capture the right packets and successfully repeat it (with DUMMY-REAL workaround or without it) you could power off and back on your RM-device, it will still work. However, if you reset your device it stops working.

I don't own an Android device and RM Bridge does not support RM3 mini, so I had to sniff packets from official iPhone app. It is a real pain. Official app always tries to send commands via Broadlink cloud and not locally (even if it shows local icon next to your device). Another problem is sniffing Wi-Fi traffic between iPhone and RM-device. Luckily, my router supports sniffing on a particular interface and exporting results in Wireshark format. If you own a rooted Android device or got RM Bridge working I would recommend you to sniff traffic via some Android apps, I believe it'll be much easier.

Hope this could help.
Don't forget to share your experience, this could help in further research.

Wow, thank you so much for taking the time to write all that info. I am thinking that it might be possible to cut out RM Bridge in my setup. I will do some research and get back to this thread.

I also bought a RM3 and wanted to sniff the packets,
today i saw this in tindie:
maybe it will be less work to implement?
https://www.tindie.com/products/harik/zmote-wi-fi-universal-remote/

Bad news: My screencast is on hold.
Good news: It's on hold because I've found a way better way to build this whole setup.
Instead of needing to run an Android emulator/VM for RM Bridge, I'm building a python app to do the same(ish) thing.

It will be faster and more lightweight.
It will be more reliable.
It will have its own front-end for managing codes.
It has an open API that Homebridge (and other apps) can plug in to.
Because it's only python, it can be run in almost all situations on the same machine/VM as Homebridge.

Unfortunately, it doesn't support RM3s yet, but I'm hoping someone can help build that in once I post the code.

Awesome

@ericmagnuson - any chance you'd be able to share your python app for linking Homebridge to a Broadlink remote?
I've gone pretty far down the path of VMs and Android emulators and, though I'm close to getting it working, I would really love to scrap it for something simpler like you've described!  Having multiple machines and operating systems running 24/7 to link these two systems is quite cumbersome!

@flyingartichoke Certainly.  I've added it to my to-do list for this week.  I'll throw it up in its own repo and notify everyone here when that happens.
Those were exactly my thoughts with making the python app.  Wanted to have something a bit more reliable and snappier (and I think it does a good job at that).  I haven't been able to test Homebridge integration lately because my Home app on my iPhone hangs on load in the iOS 10.2 betas, but theoretically it should work just fine using homebridge-http or homebridge-httpmulti.  I also wrote a simple web interface for the python app, too.

Alright, everyone, I just pushed my project, RM Control, onto GitHub.  Check it out.
I'm still working on developing the readme.md, so bare with me.  If you have any questions or feedback, don't hesitate to leave an issue on the repo's page — it'd really help know where I need to improve things.
Finally, huge credit/appreciation/thanks/shoutout goes to @mjg59 for their python-broadlink library.  It powers the backbone of RM Control, allowing what I wrote to communicate directly with the RM device.

I've created http://github.com/lprhodes/homebridge-broadlink-rm which supports RM3 and RM Mini 3 - possible others but I've no way of checking. There's support for toggle switches, channels and a thermostat service that tries to work around not getting IR feedback about mode/temperature from the air condition.
It also has a a dedicated accessory for learning IR codes and outputting them to the home bridge console so people can avoid using Wireshark.

@ericmagnuson I've been sold an RM and its listing stated RF but I'm struggling to get it working for RF and you said you don't believe the RM3 has RF. I can't find any info on it not having RF, how did you know that it doesn't?

...update on the RM3 not having RF...it does have RF but the antenna is built into the board.

I see lots of RM3 support, what about RM2 does this build support it?

@jeylites https://github.com/lprhodes/homebridge-broadlink-rm does yes

That is awesome! does it support RF signals as well? If so how is it listed on config- Json. I notice you have a bunch of  IR codes  listed as accessories.

@ericmagnuson I have two codes which I have been using successfully with the broadlink homebridge earlier. Now I am switching to Home Assistant, and according to their guide there is a quite troublesome way to get the codes. https://home-assistant.io/components/switch.broadlink/
I tried the codes I have since before, and they do not work, and they don't look anything like the samples provided in the link.
Do you think it is possible to convert the codes I have to be able to use with Home Assistant?
This is one of the codes:
5aa5aa555aa5aa550000000000000000000000000000000000000000000000000ceb000037276a00918122a2f00d43b401000000efc600006c163e70a1e04b6a065b73f81bcb0c5f04fc1c5f191f55c661a7d2a98f494095bd462e80cc9d75165689013d5127ff2d53d083a83b9f0b1de71c033f6c9e8dbfcc908b248c29a0826227a76768748c66
and this is the other
5aa5aa555aa5aa5500000000000000000000000000000000000000000000000008fb000037276a00ba8122a2f00d43b40100000049c700007fe07e9366ed41bbfe2ee81cb7ad029e41a7b6d05b19471f128220424fc85d5af65dcdf318063442129f01ed48038a89e29767f5c4bcb2bade53ea37de738fc0db3544f9ab82b61cd6aa6bde47f5c971448c25e55e83b85c0bc895c5a69486f4


Pipeline freeze after frame didn't arrive

Required Info

Camera Model
{  D400 }

Firmware Version
(<IP_ADDRESS>(latest))

Operating System & Version
{Win10}

Kernel Version (Linux Only)
(N/A)

Platform
PC

SDK Version
{ 2.21.0(latest) }

Language
{python }

Segment
{Read Bag }

Hi I'm using the python wrapper and the version  2.21, which just updated.
my script first start with read a bag file
´´´
pipeline = rs.pipeline()
config = rs.config()
config.enable_device_from_file(file_name)
profile = pipeline.start(config)
align_to = rs.stream.color
align = rs.align(align_to)
´´´
and with or without this part
´´´
device = profile.get_device()
playback = device.as_playback()
playback.set_real_time(True)
´´´
which in issue #3126 mentioned, True/False or even blocked out this part doesnt mak a difference, neither did enable_all_streams
So I use matplotlib to plot every frame, with arrow left to previous and right to next, Q for exit the loop.
Ususally it runs fine, but always the issue happens at the end of file, which is no frames arrived
it happens not at everytime at the end of file but sometimes.
I indexed my frames also, so I run with index, therefore, I put
´´´
try:
while:
........
except IndexError:
print 'file ended'
except RuntimeError:
print 'no frames came'
finally:
print 'close pipeline'
pipeline.close()
´´´
so when its IndexError it can be closed normally, but when it's RuntimeError the program freeze after print close pipeline.
I also tried
´´´
if not color_frame or not depth_frame:
continue
´´´
I use this script from ArcMap Desktop, therefore it caused my main software also to freeze
How can I close the pipeline if the frames didn't arrive?

Hi soarwing52,
Can you help elaborate more info on what kind of runtime error you encountered (based on what you understand for now)?
Or it is still the same bug in github issue #3126?
On the other hand, would it be possible to share a simplified version of your code and we can replicate the issue for debug? As to some tests with the read_bag_example.py, I don't have any issue.
https://github.com/IntelRealSense/librealsense/blob/master/wrappers/python/examples/read_bag_example.py
Thanks!

@RealSenseCustomerSupport  thank you for the response
so the issue is quite the same as in issue #3126
and my test result is:
with only this part:
pipeline = rs.pipeline()
config = rs.config()
config.enable_device_from_file(file_name)
profile = pipeline.start(config)
align_to = rs.stream.color
align = rs.align(align_to)
```
I can run and can quit the program without freezing before the end of file with the function wait_for_frame()

with this part:
´´´
device = profile.get_device()
playback = device.as_playback()
playback.set_real_time(True)
´´´
I can run through the bag file repeatably, but the issue will be:
1. if will freeze if the reading speed can't catch up after few loops of restart, with RuntimeError no frames arrived in 5000
2. it will jump through some frames, and I was trying to get to specific frame
example:
I have frame 100 130 140 150 160
it will get 100 140 160 no matter how many times I loop through it, and after multiple loops it perform as problem 1

I had in my other file [here](https://github.com/soarwing52/RealsensePython/blob/master/phase%202/bag%20read/png_list_prepare.py)

"""
    pipeline = rs.pipeline()
    config = rs.config()
    config.enable_device_from_file('./bag/'+input_file, False)
    config.enable_stream(rs.stream.color, 1920, 1080, rs.format.rgb8, 30)
    profile = pipeline.start(config)

try:
    wait_for_frames()

except RuntimeError:
  print "ended"
finally:
pipeline.stop()
"""
**in this code actually no matter i use set_real_time(False) /(True) or like now even without
without calling the openCV or matplotlib it won't freeze at all**

ps.this code is to get the matching fram number of color and depth, then I loop 1st to get depth, then loop second time to get the matching color frame

### Conclude
it will still freeze in the situation of set_real_time(True)
if the Runtimeerror frames_didnt_arrive_in_5000 hapens,
even if (it never successfully called out the opencv/matplotlib window)
"""
try:
    ...
except Runtimeerror is set
"""
and
I would like to use set_real_time(False) to get every frame

###current solution
I use subprocess with set_real_time(False), so the extra window can freeze

example in matplotlib for IndexError with safe leave
but it will freeze at RuntimeError and press Q/esc to leave
example for read bag with openCV and it will freeze when leaving with esc/q

@soarwing52 - this was fixed in LRS 2.28
If you encounter any other issue feel free to open a new ticket.

@dorodnic thank you for the fix!


Improved inputs for Undo command (/undo all)

This allows to undo all changes instead of entering random number that is higher than undo's in total. For convenience.

Looks good 👍


Fix Fusion composition of enums

dotnet fusion compose breaks with "Unable to merge the distributed type T." when encountering an enum.
There's actually two issues I hit in sequence while attempting to fix it:

The EnumTypeMergeHandler uses the same skip condition as the UnionTypeMergeHandler, therefore accidentally skipping the enums it should be processing.
The merge logic uses the enum's name to construct the value to insert into the target type, which luckily becomes noticeable due to the resulting duplicate key exception for the first enum with more than one value.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Services

Updated augmentation service card
Added validation service card
Added  JSON2GSuite converter card
Added TrackHub Registry card
Added BLUEPRINT/EPICO card

@sveinugu All service cards added.


[CDEC-416] Sinbin a few more modules

Description
Move Pos.Infra.Communication.Protocol and it's dependencies to sinbin.
Also remove unneeded imports of Pos.Infra.Binary.
Linked issue
https://iohk.myjetbrains.com/youtrack/issue/CDEC-416
Type of change

[~] 🐞 Bug fix (non-breaking change which fixes an issue)
[~] 🛠 New feature (non-breaking change which adds functionality)
[~] ⚠ Breaking change (fix or feature that would cause existing functionality to change)
[x] 🏭 Refactoring that does not change existing functionality but does improve things like code readability, structure etc
[~] 🔨 New or improved tests for existing code
[~] ⛑ git-flow chore (backport, hotfix, etc)

Developer checklist

[~] I have read the style guide document, and my code follows the code style of this project.
[~] If my code deals with exceptions, it follows the guidelines.
[~] I have updated any documentation accordingly, if needed. Documentation changes can be reflected in opening a PR on cardanodocs.com, amending the inline Haddock comments, any relevant README file or one of the document listed in the docs directory.

Testing checklist

[~] I have added tests to cover my changes.
[x] All new and existing tests passed.

Not sure about this one. Part of the idea of this particular refactoring was to remove all networking code from the blockchain packages (txp through to block inclusive).
Lets keep this PR around (but not merge it) until we try some other ideas.

This is no longer needed. Problem was solved another way and Sinbin is now gone.


remove requirement for commits in a branch not on the default branch to be signed

Changes the check for workflow_dispatch and push for whether the commits on a branch are signed to no longer require all commits not on the default branch to be signed. The commit the job is running on is still required to be signed.
The rationale is that there are certain branches, for example those tracking past versions still being maintained, that will never be merged into the default branch and it wouldn't be feasible to go back and sign all the commits. The branch protection for signed commits is still required meaning that any new commits are required to be signed.
Pull request checklist:

[x] Version has been incremented

Good change, sane default for the future and a more permissive option for the past :)


hovering popup disapear on graph refresh

Checklist

[X] I updated the card to the latest version available
[X] I cleared the cache of my browser
[X] I verified that I'm really running the lastest version in my browser console
[X] I checked if there is another issue opened with the same problem

Describe the bug
When hovering cursor over graph, values valid for point under cursor are displayed in popup.
However when card refreshes the data (manifested by reload indicator), the popup disappears.
See animation in screenshot section
Version of the card
Version: 1.5.0
To Reproduce
This is the configuration I used:
type: 'custom:apexcharts-card'
graph_span: 1h
span:
  end: minute
apex_config:
  stroke:
    width: 2
series:
  - entity: sensor.isp1_ping
    name: google (max)
    curve: smooth
    type: line
    color: 'rgb(200, 60, 60)'
    group_by:
      duration: 1m
      func: max
  - entity: sensor.isp1_ping
    name: google (avg)
    curve: smooth
    type: area
    color: 'rgb(255, 160, 160)'
    group_by:
      duration: 1m
      func: avg
  - entity: sensor.isp2_ping
    name: 39-1 (max)
    curve: smooth
    type: line
    color: 'rgb(60, 60, 150)'
    group_by:
      duration: 1m
      func: max
  - entity: sensor.isp2_ping
    name: 39-1 (avg)
    curve: smooth
    type: area
    color: 'rgb(160, 160, 250)'
    group_by:
      duration: 1m
      func: avg
  - entity: sensor.isp3_ping
    group_by:
      duration: 1m
      func: max
    name: <IP_ADDRESS>

Screenshots

Expected behavior
The popup should remain until mouse cursor is moved out from the graph. Graph data refresh shouldn't affect it's appearance
Desktop (please complete the following information):

Firefox
85.0.1

Smartphone (please complete the following information):

N/A

Additional context
N/A

Theres nothing I can do, that's how the ApexCharts library I use behaves. Sorry.


Doesn't support Union in an IOContext?

julia> print(ttio, Union{Int32,T} where T)
ERROR: TypeTreeIO does not support byte I/O
Stacktrace:
  [1] error(::Type, ::String)
    @ Base ./error.jl:44
  [2] write(s::TypeTreeIO, x::UInt8)
    @ Base ./io.jl:291
  [3] write(io::IOContext{TypeTreeIO}, byte::UInt8)
    @ Base ./io.jl:428
  [4] write(io::IOContext{TypeTreeIO}, c::Char)
    @ Base ./io.jl:739
  [5] print(io::IOContext{TypeTreeIO}, c::Char)
    @ Base ./char.jl:252
  [6] show_delim_array(io::IOContext{TypeTreeIO}, itr::Vector{Any}, op::Char, delim::Char, cl::Char, delim_one::Bool, i1::Int64, l::Int64)
    @ Base ./show.jl:1307
  [7] _show_type(io::IOContext{TypeTreeIO}, x::Type)
    @ Base ./show.jl:968
  [8] show(io::IOContext{TypeTreeIO}, x::Type)
    @ Base ./show.jl:953
  [9] _show_type(io::TypeTreeIO, x::Type)
    @ Base ./show.jl:997
 [10] show(io::TypeTreeIO, x::Type)
    @ Base ./show.jl:953
 [11] print(io::TypeTreeIO, x::Type)
    @ Base ./strings/io.jl:35
 [12] top-level scope
    @ REPL[5]:1

Thanks for the report!
On https://github.com/JuliaLang/julia/pull/49231, any thoughts about whether this or parsing-independent construction method is superior? I'm playing with an approach in the teh/not_io branch of this repo but haven't gotten super-far yet.

I had prototyped a version of an IO object that supported semantic annotations during printing in  https://github.com/JuliaLang/julia/pull/27430/files#diff-7e4f858605d8e7631cf8ddaf624fd67f8acd65fce49ab3c1b9613ed491290787 and https://github.com/vtjnash/Firelight.jl/blob/master/src/richprint0_6.jl, so I might be slightly biased on that question haha.

So if I'm interpreting you correctly, you like the IO approach? That was my initial expectation; I developed a few doubts when I saw some of the bugs that my early implementations were vulnerable to, but my attempts at the other approach have given me a renewed appreciation of why that's hard, too. In which case maybe the best thing to do is fix the bugs in https://github.com/JuliaLang/julia/pull/49231 and be done with it.
So unless you disagree, I'll probably just proceed with the IO approach and not waste any more time on alternatives.

Yes, I liked the IO approach, but I also wanted to modify IO so that it emitted begin/next/end tags for each portion of the objects too so that it could be navigated as a tree too


SINGA-162 Transfer the codebase for SINGA v1.0 into dev branch

This PR contains initial commits for SINGA v.10.
It will be merged into dev branch and be swapped with the master branch when v1.0 is released.

merged.


How to format scribble in demo json file?

Thank you for your outstanding work.
I try to format scribble with format [[x1,y1],[x2,y2],...], but got an error as follows,
scribbles_embeddings[idx] = torch.tensor(scribble)    input.py line 72, in prepare_batch; RuntimeError: expand(torch.FloatTensor{[96, 2]}, size=[40]): the number of sizes provided (1) must be greater or equal to the number of dimensions in the tensor (2)

Hi, could you please provide an example of the scribble you used? Before you do that, it might be helpful to verify the format of the scribbles by referring to this line in our code, which generates scribbles randomly when none is provided:
https://github.com/frank-xwang/InstanceDiffusion/blob/453b65d3cc2256070831561ab7dcf554d51fc67c/inference.py#L254
Based on the error message you shared, it appears that the scribble you provided does not conform to the format expected by our code.

The code used to randomly sample the points inside the scribble works for me. But manually giving scribble seems to get a different form of input, resulting in an error.

Sorry for the late reply. The scribble should be in the format of [x1, y1, ..., x20, y20]. Hope it helps!


feat: 适配g5.0异步渲染

👀 PR includes

✨ Feature

[x] New feature

📝 Description

[x] 去掉 g-lite 依赖
[x] 异步渲染

thanks to #1840

[x] 修复相关测试用例&文档

🖼 Screenshot

Before
After

❌
✅

🔗 Related issue link

🔍 Self-Check before the merge

[x] Add or update relevant docs.
[x] Add or update relevant demos.
[ ] Add or update test case.
[ ] Add or update relevant TypeScript definitions.

:tada: This PR is included in version @antv/s2-v2.0.0-next.8 :tada:
The release is available on:

npm package (@next dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version @antv/s2-react-v2.0.0-next.7 :tada:
The release is available on:

npm package (@next dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


How to reduce memory usage of backpropagation?

I implemented the tiny NeRF example using candle here: https://github.com/laptou/nerfy/blob/fc50dbd61c4012d1f12f556a72474b59a8b3c158/examples/tiny_nerf.rs
The example, which is written using TensorFlow, runs fine on my laptop. My candle implementation consumes all available memory on my laptop, which crashes my desktop session if I use CPU and errors out with a CUDA memory allocation error if I use the GPU. I'm running on a laptop with 32 GB of RAM, 32 GB of swap, and an RTX A3000 w/ 12 GB of VRAM.
I'm barely able to run it on CPU if I decrease the hidden layer size from 256 to 64.

I tracked the memory allocations using heaptrack, and it seems like most of them are related to keeping track of the operations for backpropagation.
Can you spot any obvious issues in my implementation that are causing it to consume so much memory? Is there a way that I can disable or reduce this behavior in some parts of the code to reduce the amount of memory that it uses?

Here's a screenshot from heaptrack that I am using to blame backpropagation for my memory woes.
The program errors out with Error: Cuda(Cuda(DriverError(CUDA_ERROR_OUT_OF_MEMORY, "out of memory"))) almost immediately if I try to use CUDA, so I think that there are additional issues at play here besides the backpropagation impl possibly being space-inefficient.

It seems like the reference count of a tensor (and therefore its Storage) never reaches zero until it can no longer be used for backpropagation at all. Seems related to this comment.

I reimplemented Tiny NeRF using tch, and it actually does even worse on CUDA than candle. However, on CPU, the memory usage is much lower (peaking at around 10GB resident)

Interesting, the memory usage of candle during backprop is certainly not optimal.
Could you maybe measure the memory footprint after doing the forward pass but before doing the backward pass? If these are on par between tch and candle it would mean that the tracking during the backprop is the issue - this one should be easy to improve. If these are already very different, I'm not really sure what would be going on - maybe somehow tch notices that some part of the graph are not necessary for backprop but I'm not sure which part so trimming down the example might be a good thing (it's certainly a bit long at the moment).
Also obviously all this should only be an issue if you care about backprop, if you cared about running inference it's easy to disable the gradient tracking and so the memory footprint should be reduced a lot.

Also could you give it a try with #1243 ? This should only improve memory consumption on the backprop part avoiding that all the intermediary values get stored until the end of the backprop.

Also could you give it a try with #1243 ? This should only improve memory consumption on the backprop part avoiding that all the intermediary values get stored until the end of the backprop.

I should have a similar problem. The task I tested was a simple image classification task. When using PyTorch I could easily set the batch size to 16, but when using candle I could set the maximum batch size to 2, otherwise I would get out of memory error.
When I try with #1243, I can successfully set the batch size back to 16. Thank you very much. That seems to have solved my problem. But I would like to ask, does it make a difference when training with or without grad.detach()?

When I try with #1243, I can successfully set the batch size back to 16. Thank you very much. That seems to have solved my problem. But I would like to ask, does it make a difference when training with or without grad.detach()?

Using #1243 shouldn't make a difference as long as you're not doing very hacky things such as taking the second order derivative by applying grad to grad. If you just have a normal optimizer loop with SGD or AdamW I would expect the behavior to be exactly identical.

When I try with #1243, I can successfully set the batch size back to 16. Thank you very much. That seems to have solved my problem. But I would like to ask, does it make a difference when training with or without grad.detach()?

Using #1243 shouldn't make a difference as long as you're not doing very hacky things such as taking the second order derivative by applying grad to grad. If you just have a normal optimizer loop with SGD or AdamW I would expect the behavior to be exactly identical.

When I try with #1243, I can successfully set the batch size back to 16. Thank you very much. That seems to have solved my problem. But I would like to ask, does it make a difference when training with or without grad.detach()?

Using #1243 shouldn't make a difference as long as you're not doing very hacky things such as taking the second order derivative by applying grad to grad. If you just have a normal optimizer loop with SGD or AdamW I would expect the behavior to be exactly identical.

Thanks a lot. That really helped me.

I've merged #1243 as it seems to fix things for you. @laptou would be great to have your experience with this too!
I wouldn't expect the new behavior to be different, and the additional compute cost should be very small (tensors are detached lazily, i.e. nothing happens if they were already detached which will often be the case). However if you notice anything weird you can get the old behavior back by setting the following environment variable: CANDLE_GRAD_DO_NOT_DETACH=1.

I'll test it out soon!

Just tested it, here are my observations:
torch cuda f32 8x256: mem usage = 6398 MiB, train time = 4m30s
torch cuda f64 8x256: crash due to gpu oom
torch cpu f32 8x256: mem usage = 6304 MiB, train time = 74m17s

before merge:
candle cuda f32 8x256: crash due to gpu oom at backpropagation step
candle cuda f32 8x64: crash due to gpu oom at backpropagation step

after merge:
candle cuda f32 8x256: crash due to gpu oom during forward pass (running the network forward uses way too much memory)
candle cuda f32 8x64: peak mem usage = 9426 MiB, train time = 4m6s
running the network forward on a single batch makes gpu mem increase by 1966 MiB to store a 65536x4 f32 array 1886 -> 3852, probably b/c the intermediate tensors aren't deleted. OOMs on 8x256 b/c there are too many batches held in memory at once and each batch consumes a ton of memory

Thanks for trying this out, that's very interesting.
Do you have a sense of why the pytorch model wouldn't have to retain the intermediary values? It could be that we have ops on the candle side that gets split into multiple sub-ops and w rtain every of these whereas in PyTorch these only result in a single op that gets retained. It could also be a difference in the model but I imagine you've made them pretty similar - also you should ensure that the set of variables in the VarMap only contains the variable that you want the optimizer to work on so as not to trigger unrequired dependencies.
Could you measure the PyTorch memory usage for 8x64? Also maybe measure them in the forward pass only if that's easy?

Sure.

candle cuda f32 8x64 GPU mem usage at forward pass: 4702 MiB
candle cuda f32 8x64 GPU mem usage after backprop: 5438 MiB
torch cuda f32 8x64 GPU mem usage at forward pass: 1912 MiB
torch cuda f32 8x64 GPU mem usage after backprop: 1982 MiB

I attached a debugger and placed a breakpoint on the line that calls Optimizer::backward_step, then measured the memory usage using nvidia-smi before and after calling it.
The implementation of the two models is as 1:1 as I could get them.

Thanks, hard to tell by just looking at the code as the model seems pretty involved. A way to optimize this a bit would probably be to use heaptrack as you already did while running on cpu just for the forward pass and see if there are any ops that could be optimized to reduce allocation. The most likely thing here is that some part of the architecture gets broken down into lots of ops on the candle side and we retain values for all these intermediary steps whereas on the PyTorch side these parts may be able to use a far smaller number of ops.

I ran into the same high memory usage trying to train my implementation of FCN, using pretty much twice the memory of what pytorch uses:
Before forward:  1250MiB/7930MiB
After  forward:  3138MiB/7930MiB
Before backward: 3102MiB/7930MiB
After backward:  7841MiB/7930MiB

Vram usage captured with this code, I then proceeded with annotating the main backward method to see where the memory jumps:
vram_through_backpropagation.txt
It appears to creep up with each operation: majority of increase happens in Op::Conv2D backward propagation for my network:
[ 3449MiB/7930MiB ] Remove node: TensorId(12152) Tensor[dims 3, 4096, 9, 9; f32, cuda:0]
[ 3449MiB/7930MiB ] Detached grad:: TensorId(12373)
[ 3449MiB/7930MiB ] Start of Op::Conv2D
[ 4633MiB/7930MiB ] End of Op::Conv2D
[ 4633MiB/7930MiB ] After node iter: 14

Which shows a large jump in backprop.rs when the Op::Conv2D is handled.  We also see it increase by 32mb in the addition just following the detached 12282 tensor.
After the backpropagation finishes, the total size of the gradients is 556408028 bytes, so 550mb, which is an expected amount, but the overall vram grew by more than a factor of two to over 7 GB.
I proceeded to write a singleton to track tensor creation and deletion, but unfortunately those backtraces do not point at a smoking gun, because tensors appear to be dropped with the strong count to the storage still being more than one. Likely because storage can be shared between tensors? The backtraces do point at the math operations that are throughout the back propagation calculation itself...
I did take a stab at sprinkling detach() throughout the backprop function in e357f2bd58d3690a7bf52adae38e577becac792b , which did reduce memory usage by 2 GB:
Before forward:   1264MiB/7930MiB
After  forward:   3152MiB/7930MiB
Before backward:  3120MiB/7930MiB
After backward:   5816MiB/7930MiB

but then thought that there must be a better / more correct way to do this, perhaps with a thread local bool or something that allows us to disable back propagation information while some RAII object is held?
I've already spent quite a bit of time trying to understand the issue and attempt to solve it, and I'm not sure how much more time I want to commit, so thought I'd share my findings thus far.


Changelog

Would you mind to add a changelog.md ?

Sure, that sounds like a good idea. I'll see what I can come up with, but I'm leaning towards a script that filters out and parses Homu's commits.

Alright, now there's a changelog. It will be updated on each release.


Repackaging - Cisco Firepower EStreamer (MMA to AMA Migration)

Required items, please complete
Change(s):

See guidance below

Reason for Change(s):

See guidance below

Version Updated:

Required only for Detections/Analytic Rule templates
See guidance below

Testing Completed:

See guidance below

/ Package

/Package


bcc fails to build on rpi 10 (buster)

On Raspbian GNU/Linux 10 (buster) near the end of making bcc I get this message:
[ 95%] Building CXX object tests/cc/CMakeFiles/test_libbcc.dir/test_usdt_args.cc.o In file included from /home/pi/bcc/tests/cc/test_usdt_args.cc:19: /home/pi/bcc/tests/cc/test_usdt_args.cc: In function 'void ____C_A_T_C_H____T_E_S_T____55()': /home/pi/bcc/tests/cc/test_usdt_args.cc:67:14: error: 'parser' was not declared in this scope      REQUIRE(!parser.parse(&arg));

Thanks for the report. We haven't really tested building bcc for Raspian. I would suggest opening an issue on the iovisor/bcc repo.