add hiprtc APIs

Thanks for your contribution! Unfortunately, tensorflow/runtime is currently not
accepting contributions. Please see the
Contribution Guidelines for
more information.
This PR only contains the changes needed for the hip just-in-time compilation (hiprtc). The hiprtc headers and implementation are put at the end of hip APIs (see generate.sh) because hiprtc implementation is rolled up in libamdhip64.so which is the same as hip APIs. New PR will be created once hiprtc is separated from hip.
A command line option is added to generate.sh. Bazel requires the option.
@chsigg @hanbinyoon

It seems OK to add this, but I think we came to the conclusion that we don't really need this and would instead just use HSACO in the tests? Is this a problem because HSACO is architecture specific, and you want to be able to run the same test across multiple architectures?

I haven't do experiments using HSACO. Let me do some experiments. I got hiprtc working so far. It is the reason why I did not change the ModuleLoadData expression in driver_wrapper.cc and push out the module and launch mlir files.

Hi Christian @chsigg, I have removed the duplication from the headers. Let me know if there is anything else I could do to help the merge.


Test issue fix

This PR connects to #36

I can test this first thing in the morning in addition to other reviews. Sorry for not catching this issue in reviewing the origin testing strategy pull request, #34. I didnt have enough understanding of Angular 2 and its testing practices.

It fixes the issue for me. +1


[Enhancement]: Addition of a Dedicated Play Button in Squared Game.

Do you want to have the enhancement of existing game ? 😀 Describe yourself..
Game enhancement
The current implementation of the Squared Game includes a "Tap to Play" text that changes color, prompting users to start the game. However, there is no specific button for playing. Adding a dedicated play button would enhance usability and improve the overall user experience by providing a clearer and more intuitive interface.
Description:
In the Squared Game, the "Tap to Play" text serves as the interactive element to start the game. While this text changes color to indicate interactivity, the absence of a specific play button can be confusing for users, especially those who might expect a more conventional interface element like a button. A dedicated play button would make the action more obvious, reduce ambiguity, and provide a more intuitive interaction point for users.
Steps to Reproduce:
Open the Squared Game interface.
Observe the "Tap to Play" text that changes color when hovered over or tapped.
Note the absence of a specific play button, which may lead to confusion about how to start the game.
Expected Behavior:
There should be a dedicated play button that clearly indicates the action to start the game. This button should have a recognizable design, such as a "Play" label or an icon, making it immediately apparent to users how to begin playing.
Current Behavior:
The game currently uses a "Tap to Play" text that changes color to indicate interactivity, but lacks a specific button for playing, which can be less intuitive and potentially confusing for some users.
Describe the solution you'd like
Solution steps

Identify the Current Implementation.
Design the Play Button
Update the HTML Structure
Style the Play Button with CSS
Include styles for different states of the button, such as normal, hover, and active states, to provide visual feedback to users.
Bind the Button with JavaScript
Update or write JavaScript to link the play button to the game's start functionality.
Ensure that clicking the play button triggers the existing game-start logic.
Test the Implementation.
Adjust Existing "Tap to Play" Text

program in which contributing is Gssoc'24.
this can be the steps ....
please assign me this issue as a contributor i would love to decorate the game for good  user experience.
Select program in which you are contributing
Other
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Please raise any other issue, i'll assign you
If you have any doubt you can directly send message on our discord (https://discord.gg/rZb46cCMmK), we have created separate channals for all projects...
Thank you :)


Ubooquity 2

Hi cromignon,
Tom just released Ubooquity v2. I had to write your Dockerfile barelly from scratch in order to be able to upgrade.
I had to switch to Ubuntu 16.04 as Java 9 seems to not beeing available for alpine ATM.
Also, MAINTAINER is deprecated. I replaced it by LABEL.
Ubooquity is accessible through port 2202
admin page through port 2502
Regards,
zerpex

Hi!
Thanks for updating/rewriting the dockerfile, I am not actively maintaining this just as you've mentioned in your Readme. But I will be more than happy to have a look at what you've done and try it out. =)

Great !
Let me know if you update your image. At the moment, Ubooquity 2 is still in beta. I made my own docker repository, but I'll erase it as soon as you'll update yours with Ubooquity 2.
Regards,
zerpex

First let me say thank you for putting the time in doing this.
I think that it's great that you've made your own docker repository, and I am really happy that you decided to base your work out of my work.
I've just updated the repository for the 1.10.1 release of ubooquity, so there are a two conflicts in this repository. But I'll be more than happy to resolve them myself when I merge it.
It might be a while before I merge it though, just so you know. I first want to read up on the 2.0 version of ubooquity and then run it through a couple of times at home.
Feel free to keep your repository even after I merge this, it will be a good thing, especially seeing as I am not the most active maintainer. So it might be that I switch over to using your repository in the future as well. ;)
Once again, thank you for maintaining the project and sending your patches upstream!
Regards,
cromigon

Hey @zerpex!
I see that you've put in a great deal of work into your fork of the project.
As you've noticed and no doubt figured out, I'm not really up to speed on this project anymore.
So I'd like to ask you if it would be ok by you if I were to publicly add to the readme that this project (my specific repo) isn't actively maintained anymore and point visitors towards your fork of the project instead?

Hi,
Thanks, and of course you can do that, no need my aithorization for that ;)
z.

z.
"Il dépend de celui qui passe, que je sois tombe ou trésor, que je parle ou
me taise. Ceci ne tient qu’à toi, Ami, n’entre pas sans désir."
P. Valery.
On Thu, Sep 7, 2017 at 9:45 PM, Niclas Björner<EMAIL_ADDRESS>wrote:

Hey @zerpex https://github.com/zerpex!
I see that you've put in a great deal of work into your fork of the
project.
As you've noticed and no doubt figured out, I'm not really up to speed on
this project anymore.
So I'd like to ask you if it would be ok by you if I were to publicly add
to the readme that this project (my specific repo) isn't actively
maintained anymore and point visitors towards your fork of the project
instead?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/cromigon/ubooquity-docker/pull/3#issuecomment-327903821,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ANo3ObSGs8Jejz5Fh6lmWhMOx5TzFlZqks5sgEfCgaJpZM4NBmCa
.

It's awesome the amount of work you've put in to this!
It's been far too long, but I've finally updated the repository with a link to your repository and a text describing that my repo is unmaintained.
Again, thank you for your work @zerpex!
/ Cromigon


Add pre-trained model

Can anyone add a pre-trained model for the MobileOne network?

Thanks for this repo. It improve my 3D hand tracking 5 times faster than MobileNet-V3.
https://www.youtube.com/watch?v=np1FLNsd6qA&t=17s

Can anyone add a pre-trained model for the MobileOne network?

I'm working on it!

Thanks for this repo. It improve my 3D hand tracking 5 times faster than MobileNet-V3.
https://www.youtube.com/watch?v=np1FLNsd6qA&t=17s

I'm very glad to hear that!


VS Code Intellisense breaks constantly

VSCode Version: 1.22.2
OS Version: Windows 10

Steps to Reproduce:

Try to import a file multiple layers deep
After doing step 1 a few times, Intellisense will break and you will need to restart in order to get it back.

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

Can you please test upgrading to typescript@next in your workspace by following these instructions: https://code.visualstudio.com/Docs/languages/typescript#_using-newer-typescript-versions

Updated global typescript package with npm install -g typescript@next
opened VSCode code --disable-extensions .

Issue remains

This issue was moved to Microsoft/TypeScript#23556


adding style props for slot + DIRECTION.STATIONARY

Hello mfuu,
this is the same change I made before to vue-virtual-drag-list  (Vue2).
but for Vue3 of course.
kindly approve it if you like it and publish it to npm.

It's has been added in the latest version. Thank you for your pr.


Remove condition test builder

Signed-off-by: Tyler Auerbeck<EMAIL_ADDRESS>Changes

Small change to remove last usage of tb.Condition builder

Part of #3178
/kind cleanup
/area testing
Submitter Checklist
As the author of this PR, please check off the items in this checklist:

[n] Docs included if any changes are user facing
[y] Tests included if any functionality added or changed
[y] Follows the commit message standard
[y] Meets the Tekton contributor standards (including
functionality, content, code)
[y] Release notes block below has been filled in or deleted (only if no user facing changes)

Release Notes
NONE

/ok-to-test

Does this mean we can also remove internal/builder/v1alpha1/condition.go?

this change and more was made in https://github.com/tektoncd/pipeline/pull/4270 so closing this pr -- thank you @tylerauerbeck!


David update his caption

Create PR to fix Issue
Resolve https://github.com/teradyne-dev-workshops/caption-this-0109/issues/3
##Done
-Fix the code
-Commit the code
To Do
[ ] Merge with Main Branch
[ ] Remove Branch

Need to reassign to Mehdi

Create PR to fix Issue
Resolve https://github.com/teradyne-dev-workshops/caption-this-0109/issues/3
##Done
##To Do
[  ] Merge with Main Branch
[  ] Remove Branch
-Fix the code
-Commit the code
To Do
[ ] Merge with Main Branch
[ ] Remove Branch

to close

Create PR to fix Issue
Resolve #3
##Done
-Fix the code
-Commit the code
-PR Created
-Reassign to Correct Owner
##To Do
[ ] Merge with Main Branch
[ ] Remove Branch


WithRedux Unable to execute multiple effects for action

Using WithRedux, I have three effects. The first effect dispatches an action. The other two effects are listening for this action. Only the third effect fires, the second one doesn't. If i remove the third effect, the second one fires. It seems only one effect can listen for an action at a time.
Proposed fix: make it like original ngrx store, multiple effects can listen for an action.
        loadInstallationDetail$: create(actions.loadInstallationDetail).pipe(
          switchMap(({ installationId }) => {
            return installationsService.getInstallation(installationId).pipe(
              tapResponse(
                (installation) => {
                  actions.loadInstallationDetailSuccess({
                    installation,
                  });
                },
                (error: HttpErrorResponse) => {
                  httpErrorSnackbarService.showHttpErrorSnackbar(error);
                },
              ),
            );
          }),
        ),
        loadInstallationDetailSuccess$: create(
          actions.loadInstallationDetailSuccess,
        ).pipe(
          tap(({ installation }) => {
            const title = installation?.name;
            const id = installation?.id.toString();
            if (id && title) {
              globalStore.dispatch(
                LayoutStateActions.setLayoutState({
                  id,
                  entityType: 'installation',
                  title,
                }),
              );
            }
          }),
        ),
        loadInstallationCampaigns$: create(
          actions.loadInstallationDetailSuccess,
        ).pipe(
          switchMap(({ installation }) => {
            return installationsService
              .getInstallationCampaigns(installation?.id?.toString())
              .pipe(
                tapResponse(
                  (campaigns) => {
                    return actions.loadInstallationCampaignsSuccess({
                      campaigns: campaigns || [],
                    });
                  },
                  (error: HttpErrorResponse) => {
                    httpErrorSnackbarService.showHttpErrorSnackbar(error);
                  },
                ),
              );
          }),
        ),

the second effect, loadInstallationDetailSuccess$ doesn't fire. the effect loadInstallationCampaigns$ does however. This seems to me that the create function is overwriting the subscription to the action `actions.loadInstallationDetailSuccess  of the second effect with the third effect's subscription to the same action.

Thanks for the info. Fix will follow

Has been fixed in version 0.3.0


install prerequisite package rsync during installation

Fixes #<issue_number_goes_here>

It's a good idea to open an issue first for discussion.

[x] Tests pass
[x] Appropriate changes to README are included in PR

/cc @leandrocarracedo


Package suggestion: SysIdentPy

I'm the developer of SysIdentPy, a python package for nonlinear system identification and forecasting. I'd like to have it listed in the Time Series section if possible.
Github link: https://github.com/wilsonrljr/sysidentpy
Documentation: https://sysidentpy.org/
Please let me know if you need any other information about the package.

Done and deployed. Thanks for your contribution!


Integrate other personal tools available in the Ada community

It would be nice to have these "community" tools in the site. What do you think? I ping the authors so they are aware of the discussion and can express their permissions or turndowns.

[ ] Ada/SPARK custom search engine https://thindil.github.io/adasearch/ by @thindil
[ ] News aggregator https://www.laeran.pl/adaplanet/i/ by @thindil
[ ] Search code in Alire crates https://search.synack.me/ (makes even more sense to be integrated in alire.ada.dev, but meanwhile it's not there, it would be a nice addition) by @JeremyGrosser
[x] awesome-ada https://github.com/ohenley/awesome-ada by @ohenley
[ ] anything else?

I'm not sure about the technical side. I suppose the dynamic pages would need their own subdomain and hosting, but could follow the same site style and backlinks. Awesome-ada, in turn, could be copied on change and directly included in docsaurus inserting a link to the original for edition and attribution.

I also run https://archive.legitdata.co/ with searchable comp.lang.ada archives back to 1982. I've found it's enlightening to read some old arguments about how/why things got built.

I absolutely don't mind if both my projects will be included into the page. 😄 It would be even better, when someone will take care of them. Currently, they both in the maintenance mode.

Search engine should be easy to include. It is simple an HTML/JS frontend to a few search engines on the CC0 license: https://github.com/thindil/adasearch I see I left somewhere the setting for the Google Custom Search engine.
Ada Planet is a different kind of beast. I don't mind including it, but it is a pile of various scripts glued together. It requires a normal web hosting, not the GitHub pages. All changes to the scripts are here: https://github.com/thindil/adaplanet In the project, there are also scripts for publishing posts to Mastodon and Twitter. If anyone is interested in adopting the project, I can give the account too. But I think it could be a good idea to rewrite the planet in Ada. 😉

I also run https://archive.legitdata.co/ with searchable comp.lang.ada archives back to 1982. I've found it's enlightening to read some old arguments about how/why things got built.

Is this using a spam filter? I don't see the typical spam that is sent to the group.

Yes, I run all of the posts through spamassassin with some custom rules. I also manually delete any spam that slips through.

Is there a way to index the stuff from @JeremyGrosser's search into Algolia?  Would we want to?  @onox?

Is there a way to index the stuff from @JeremyGrosser's search into Algolia? Would we want to? @onox?

Its crawler scans sitemap.xml. I'm not sure it will follow links to external sites like https://search.synack.me. If not, we would have to add .md files for every single .ads/.adb file in the alire-index, which is not desirable IMO.
Otherwise, what we could do is add a Crates page with a section containing a search bar, which performs a network request in the background to https://search.synack.me and display the response on our site and render code in a <CodeBlock>.

I see you have marked awesome-ada as done, but I think it makes sense to have a copy instead of a link, just as has been done for the Style Guide and the ARM  (awesome-ada is in the public domain). The header or the footer should have then a link to edit the page in GitHub. I think this cohesive approach would be better for someone exploring the language.
I was trying to get something done in that direction, but after fixing some errors in the MD format, I cannot figure out what this additional error means:
Module build failed (from ./.yarn/__virtual__/@docusaurus-mdx-loader-virtual-4a29f43484/0/cache/@docusaurus-mdx-loader-npm-2.1.0-8a33968e6f-799982ad50.zip/node_modules/@docusaurus/mdx-loader/lib/index.js):
SyntaxError: /home/mgr/src/github/mgrojo/ada-lang-io/docs/README.md: Unterminated JSX contents. (765:16)

  763 |
{`License`}

  764 |

> 765 |     </MDXLayout>
      |                 ^
  766 |   )
  767 | };
  768 | MDXContent.isMDXComponent = true
    at instantiate (/home/mgr/src/github/mgrojo/ada-lang-io/.yarn/cache/@babel-parser-npm-7.18.13-a1d47d8fa5-8b41c35607.zip/node_modules/@babel/parser/lib/index.js:72:32)
    at constructor (/home/mgr/src/github/mgrojo/ada-lang-io/.yarn/cache/@babel-parser-npm-7.18.13-a1d47d8fa5-8b41c35607.zip/node_modules/@babel/parser/lib/index.js:366:12)
    at JSXParserMixin.raise (/home/mgr/src/github/mgrojo/ada-lang-io/.yarn/cache/@babel-parser-npm-7.18.13-a1d47d8fa5-8b41c35607.zip/node_modules/@babel/parser/lib/index.js:3453:19)
    at JSXParserMixin.jsxReadToken (/home/mgr/src/github/mgrojo/ada-lang-io/.yarn/cache/@babel-parser-npm-7.18.13-a1d47d8fa5-8b41c35607.zip/node_modules/@babel/parser/lib/index.js:7766:20)
    at JSXParserMixin.getTokenFromCode (/home/mgr/src/github/mgrojo/ada-lang-io/.yarn/cache/@babel-parser-npm-7.18.13-a1d47d8fa5-8b41c35607.zip/node_modules/@babel/parser/lib/index.js:8187:19)
    at JSXParserMixin.nextToken (/home/mgr/src/github/mgrojo/ada-lang-io/.yarn/cache/@babel-parser-npm-7.18.13-a1d47d8fa5-8b41c35607.zip/node_modules/@babel/parser/lib/index.js:2386:10)
    at JSXParserMixin.next (/home/mgr/src/github/mgrojo/ada-lang-io/.yarn/cache/@babel-parser-npm-7.18.13-a1d47d8fa5-8b41c35607.zip/node_modules/@babel/parser/lib/index.js:2290:10)
    at JSXParserMixin.eat (/home/mgr/src/github/mgrojo/ada-lang-io/.yarn/cache/@babel-parser-npm-7.18.13-a1d47d8fa5-8b41c35607.zip/node_modules/@babel/parser/lib/index.js:2295:12)
    at JSXParserMixin.expect (/home/mgr/src/github/mgrojo/ada-lang-io/.yarn/cache/@babel-parser-npm-7.18.13-a1d47d8fa5-8b41c35607.zip/node_modules/@babel/parser/lib/index.js:4128:10)
    at JSXParserMixin.jsxParseClosingElementAt (/home/mgr/src/github/mgrojo/ada-lang-io/.yarn/cache/@babel-parser-npm-7.18.13-a1d47d8fa5-8b41c35607.zip/node_modules/@babel

IMO the awesome-ada page should just remain on GitHub. We already have a Books page and we can add a Crates page with a search bar to link to crates on alire.ada.dev.

@thindil I noticed that Ada Planet is stalled since several days ago. Maybe collapsed by the recent spam flood in Usenet? A solution then might be to simply poll https://archive.legitdata.co/comp.lang.ada/new.atom; it looks mostly clean.
As a possible alternative, I wonder how it would look if the Ada Planet were recreated using the Discourse RSS Polling plugin inside the forum.

@mgrojo Hello,
Unfortunately, the reason why it stopped working is different. Something went wrong during the last update and the updating script stopped working. I'm afraid I don't have motivation to try to fix it.
I think the option with the forum's plugin would be the best option. All code changes for the Ada Planet and its feed list are here: https://github.com/thindil/adaplanet

I've reimplemented Ada Planet on top of Blogspot.com. It's not the ideal reader, but it's the best free working option that I found. Nevertheless, the Discourse plugin for forum.ada-lang.io would be worth a try, in my opinion.
https://ada-planet.blogspot.com/
If people agree, I can update the link on the footer page to point to this new location.

I'd like to move my search.synack.me and archive.legitdata.co tools to something like search.ada-lang.io and news.ada-lang.io. Does that sound reasonable? I have the permissions to do this myself, but I wanted to check with y'all first.

I'd like to move my search.synack.me and archive.legitdata.co tools to something like search.ada-lang.io and news.ada-lang.io. I'll also setup appropriate redirects to the new domains. Does that sound reasonable? I have the permissions to do this myself, but I wanted to check with y'all first.

That sounds like a great idea.

That would be great.
Two remarks:

This archive is updated daily via NNTP. If you wish to reply to a message,
use the web interface at Google Groups or an NNTP client to connect to a suitable provider.

Needs update regarding Google Groups. A link to some tutorial like this would be nice: https://www.big-8.org/wiki/Getting_Started_with_Usenet (found in https://forum.ada-lang.io/t/gateway-to-comp-lang-ada/59/11)
Regarding the naming: news.ada-lang.io is not a bad choice, because it wouldn't be so technical as usenet.ada-lang.io or nntp.ada-lang.io. It has the con, though, that a lot of people in the audience will expect there to find news about Ada, and not a discussion forum.

How about oldnews.ada-lang.io

Mmm, doesn't sound good. What about newsgroup.ada-lang.io?

Great!
I've updated the Wikibooks template. Besides updating the domains, the search for comp.lang.ada now uses https://usenet.ada-lang.io/ instead of the frozen Google Groups.

@JeremyGrosser added links to those in the ada-lang.io banner in a0493b250454b99f88a7e026b47c6e4c78c4d1a8

This is done now?  🥳

https://thindil.github.io/adasearch/ hasn't been integrated in any way. I wonder if those other search forms could be integrated in search.ada-lang.io.


ptxas compilation error on inductor generated convolution kernel with epilogue

Repro here.
Cc @htyu
Traceback
Traceback (most recent call last):
  File "/home/eellison/pytorch/torch/_inductor/triton_heuristics.py", line 363, in _precompile_config
    binary = triton.compile(*compile_args, **compile_kwargs)
  File "/home/eellison/local/miniconda3/envs/pytorch-3.10/lib/python3.10/site-packages/triton/compiler/compiler.py", line 268, in compile
    next_module = compile_ir(module, metadata)
  File "/home/eellison/local/miniconda3/envs/pytorch-3.10/lib/python3.10/site-packages/triton/backends/nvidia/compiler.py", line 267, in <lambda>
    stages["cubin"] = lambda src, metadata: self.make_cubin(src, metadata, options, self.capability)
  File "/home/eellison/local/miniconda3/envs/pytorch-3.10/lib/python3.10/site-packages/triton/backends/nvidia/compiler.py", line 246, in make_cubin
    raise RuntimeError(
RuntimeError: Please run `ptxas /tmp/tmpkjdn2etb.ptx` to confirm that this is a bug in `ptxas`

Which version of triton was this with?

@htyu I wonder is there an official convolution kernel example implementation in the codebase of triton? I only find the matmul example

@htyu I wonder is there an official convolution kernel example implementation in the codebase of triton? I only find the matmul example

Not that I'm aware of.

@htyu it happens as of the pinned commit in pytorch right now 45fff310c891f5a92d55445adf8cc9d29df5841e.
Here is an updated repro since heuristics moved.
@lijiansong there exists this implementation but you should know that it only works under specific conditions and isn't super performant compared to cudnn. For odd shapes and with epilogue fusion sometimes it is profitable.

@htyu it happens as of the pinned commit in pytorch right now 45fff310c891f5a92d55445adf8cc9d29df5841e.
Here is an updated repro since heuristics moved.
@lijiansong there exists this implementation but you should know that it only works under specific conditions and isn't super performant compared to cudnn. For odd shapes and with epilogue fusion sometimes it is profitable.

Thanks.
Why not maintain convolution examples in the codebase of triton? I mean this operator is very typical in DNN domains. If we want to support other backend(new accelerator, not gpu), we may refer to this implementation.

@plotfi is going to take a look at the ptxas issue.

@eellison Can you update the repro here? I tried both the Torch from pip and also a torch I built from source and both seem to have issues with there the heuristics lib is. Top of tree gives me the error:
Traceback (most recent call last):
 File "/home/plotfi/opt/dev/TORCH-CLEAN/pytorch/triton/triton_conv_kernel_error.py", line 17, in <module>
   @triton_heuristics.template(
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/home/plotfi/opt/dev/TORCH-CLEAN/pytorch/pytorch/torch/_inductor/runtime/triton_heuristics.py", line 1110, in decorator
   return CachingAutotuner(
          ^^^^^^^^^^^^^^^^^
 File "/home/plotfi/opt/dev/TORCH-CLEAN/pytorch/pytorch/torch/_inductor/runtime/triton_heuristics.py", line 150, in __init__
   "device": self.device_props.index,
             ^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'int' object has no attribute 'index'

Here is an updated repro since heuristics moved.

@puyan did you try this?

Here is an updated repro since heuristics moved.

@puyan did you try this?

Yes. I actually got a bit further by altering the device and device_type in the heuristic but then ran into issues with GPUTarget interface when running do_bench.
This is with a clean checkout of torch and triton from upstream too

I had to update device for heuristics to use: 'device': DeviceProperties.create(torch.device("cuda"))
but in this paste I got the benchmark running: https://gist.github.com/plotfi/4645ef905ac8c2d162ea74bd4fecff31
This is using
Torch: 13ab24f1923359cdfe795a32cdd3d753f940efbe
Triton: 45fff310c891f5a92d55445adf8cc9d29df5841e
However, I do not see a reproduction for the ptxas failure yet

Fixed on newest triton pin.


Added miscellaneous examples folder and a first entry

I think it would be useful to have a miscellaneous examples folder in which to put short example scripts that don't explicitly demonstrate a specific feature. This is partly because we make quite a lot of these and they're great resources but mostly get forgotten after a while, and partly because I'd like to have them contribute to an example gallery page on the website, as has been discussed before.
So...this PR adds a first random script I made to that folder.

+1 for this. @inclement, could you fix the quotes on line 1?

Good catch, updated.

:ice_cream:


Responsive anchors

This is:

Feature request

Responsive anchors
Add a data-aos-anchor-xs="top-left" data-aos-anchor-md="none" etc, as there are cases where I only want to use anchors on certain viewport sizes.

You should be able to just disable to animations for certain viewport sizes in the options object. The anchors will technically still be there but the animations won't fire off at the selected viewport sizes.


Generic style to/from for ADTS

like in shapeless it would be great to have a way of automatically going to and from a Prod for case classes and case objects, and to/from Cop for sealed traits.
In addition, it would be great to have specialised equivalents for tuples and scalaz disjunctions.

Related proof of concept https://github.com/frees-io/iota/pull/53

Another proof of concept: https://gitlab.com/fommil/scalaz-deriving/blob/master/scalaz-deriving/src/main/scala/scalaz/IotaMacros.scala

I'll probably rewrite my macros to support scalaz.Isomorphism in the mapping as it's generally useful in scalaz.

Do you want to add any of this directly to Iota?

oh yes, definitely. But it's much faster for me to have it in scalaz-deriving when I'm working on it.

This exists btw, if anybody wants it I'd be happy to contribute it but I don't have the time to refactor it and raise a PR.


Add hybrid search blog

Description
Adds hybrid search blog
Issues Resolved
Fixes #1872
Check List

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

By submitting this pull request, I confirm that my contribution is made under the terms of the BSD-3-Clause License.

When the blog going live?


Any way to use this without concurrent mode?

I have the capability to dynamically import modules in my react app, but would like to avoid adding an experimental mode to it.
Is there any way to use this without using <Suspense> -- I'm just looking for a tight integration with react-three-fiber and the dynamic loading is something I can handle using a different strategy.

@JackCA hi, I'm not sure how it can be used without <Suspense> because the composer uses useLoader hook which requires suspense loading

@talentlessguy gotcha, that makes sense. I'll continue to use postprocessing directly with the hijacking method.

@JackCA can I close this issue?

Yep, sounds good. Thanks for taking the time to follow up and help.


I18n documentation is missing

I don't see how to congifure the I18n, digging in the code, I saw that for the activerecord integration it looks for activerecord.state_machines.[model_name].[state_machine_name].states and .events
Although there are some things that I can't get translated correctly, precisly the InvalidTransition message, no matter how I configure it, it doesn't translate the "value" param.
Am I missing something? It's just a documentation bug or there's a bug with the translations?

Thanks for taking the time to report this issue.  There aren't any known issues with regard to using i18n currently.  To fully understand where you're seeing the issue, I'll need to know:

What version of Ruby are you running?
What ORM are you using (ActiveRecord, Mongoid, etc.)?
What web framework are you running (Rails, Sinatra, etc.)?
What does your i18n configuration look like?

I can tell you that i18n appears to work on Ruby 1.8.7 / Rails 3 / ActiveRecord using the following examples:
config/locales/en.yml
en:
  activerecord:
    errors:
      messages:
        invalid: "is unknown"
        invalid_event: "cannot run the transition when %{state}"
        invalid_transition: "cannot run the transition via %{event}"
    state_machines:
      states:
        parked: "stopped"
      events:
        park: "stop"

app/models/users.rb
class User < ActiveRecord::Base
  state_machine :initial => :parked do
    event :park do
      transition :idling => :parked
    end
  end
end

u = User.new                # => #<User id: nil, name: nil, state: "parked", created_at: nil, updated_at: nil, deleted_at: nil>
u.park                      # => false
u.errors                    # => #<OrderedHash {:state=>["cannot run the transition via stop"]}>
u.state_event = "shift_up"  # => "shift_up"
u.valid?                    # => false
u.errors                    # => #<OrderedHash {:state_event=>["is unknown"]}>
u.state_event = "park"      # => "park"
u.valid?                    # => false
u.errors                    # => #<OrderedHash {:state_event=>["cannot run the transition when stopped"]}>

Let me know if this helps or if I'm testing with the wrong configuration.

Ruby version: 1.8.7
ORM: ActiveRecord.
Framework: Rails 2.3.10
My I18n looks like this:
es:
activerecord:
state_machines:
stateful_model:

Thanks for following up.  There were a few issues at play here.  First, your locale definition wasn't structured quite right.  The translations for each individual state should be under a "states" key, not "state".  In addition, the "states" and "events" keys need to be under a "state" key (representing the name of your machine).  The second problem is that "%{value}" always represents the actual value of the attribute for the validation error.  It doesn't get converted to the human name.
So the immediate change you can do is update the structure of your locale like so:
es:
  activerecord:
    state_machines:
      stateful_model:
        state:
          states:
            state1: State 1
            state2: State 2
          events:
            event1: Event 1
            event2: Event 2
    errors:
      models:
        stateful_model:
          attributes:
            state:
              invalid_transition: "Can't change state from %{value} via %{event}"

Now, there are 2 changes I've made in master that haven't been released yet.  The first is that you can now define the "states" and "events" translations under the "stateful_model" key instead of requiring an additional nesting under the "state" key (the name of your machine).
The other change is that the "invalid_transition" translation now supports an interpolation for "%{state}" which represents the human name of the current state.
In addition, I've taken note to improve the docs a bit.
Hope all of this helps!

Great! Thank you very much! The state interpolation is key, because without that you couldn't show the rails validation error to end users.

great thank you!!!


Typescript 2.6 service (tsserver): cannot reload files without open projects

Starting from typescript 2.6 the tsserver caches ScriptInfo-s even if there is no open projects (or files under InferredProject) with the infos.
It is a problem for us because now we cannot properly handle changed files for compilation.
Our compilation implementation (if there is no open projects / files):

Open project (or file if there is no configured projects for the file)
Run compiling
Close project (or file)

In previous versions the action (1) refreshed all files so all the files always were up-to-date.
After the changes in 2.6 the action (1) doesn't load actual contents for the files if the project was open before. Of course there are file watchers that will handle the content updates but they have a gap in couple seconds.
On the other side IDE has the necessary information but we cannot reload file content without open project (see src/server/session.ts:1346).
The best solution for us is to allow to run "reload" action without open project if the script info is loaded in the service.

@sheetalkamat can you take a look.

@anstarovoyt Before we propose and make change in the API, I would like to know the real issue here. We do watch all the files and depend on it to have correct state and set the correct text as watch callbacks are invoked so I am not sure what you mean by

Of course there are file watchers that will handle the content updates but they have a gap in couple seconds.
Is it the timing issue? Can this be not solved by delaying the compilation/project open?

Having said that we can easily make command reload to always reload contents from disk irrespective of project open (but only if script info is present in the cache). We also have few optimizations here that can be disabled for command reload but I would like to know the reasoning and understand the exact issue/need for this request so that we are handling it correctly and see if our file watching callbacks need some change as well.

There are several cases:

Our IDEs can keep non-opened, but changed files. If user explicitly call "compile" for the project we save the files and immediately send "compile" command to the service. I guess it cannot be fixed on the FW side.
Some users use cascade tasks before run something (test for example):
(1) process some files -> (2) compile project -> (3) do something else. In this case IDE usually knows which files were generated / changed on the step (1) before compiling

@anstarovoyt Is it possible to see if #19479 fulfills what you asked for?

yes, definitely


Setting metadata seems really difficult to reason with.

I was just trying to set the metadata to files and frankly couldn't figure out what was going on. I'm still not 100% but I think this invalid:
file.setMetadata({
  'example-key': 'example-value',
});

Instead it's meant to be:
file.setMetadata({
  metadata: {
    'example-key': 'example-value',
  }
});

Reason being that custom metadata has to moved out of the top level set of metadata values.
If this is the case, I would love two changes made to the API to make this easy to reason with:

Enforce a strict check on the metadata value such that custom values cannot be used on the top level metadata object.
Bit of a stretch but I would like it Add a setCustomMetadata() method to avoid this weirdness around wrapping metadata with a metadata key.

Another point of confusion I hit was setting custom metadata when saving a file.
This silently drops the metadata (same as above):
file.save("hello", {
    contentType: 'application/json',
    metadata: {
        'example-key': 'example-value',
    }
})

This works:
file.save("hello", {
    contentType: 'application/json',
    metadata: {
        metadata: {
          'example-key': 'example-value',
        }
    }
})

Chiming in here—irrespective of why there is that double-metadata key, there's a lack of examples that illustrate how to use metadata.metadata and gzip: true to set values that are useful for CDN-type hosting setups.
I filed https://github.com/googleapis/nodejs-storage/pull/225 to update one of the examples to include those fields. Feel free to close that and make changes elsewhere if you think there's a better place to illustrate it.

Enforce a strict check on the metadata value such that custom values cannot be used on the top level metadata object.

I don't think we can go this route, as we'd have to whitelist property names, which could evolve without our knowing.

Bit of a stretch but I would like it Add a setCustomMetadata() method to avoid this weirdness around wrapping metadata with a metadata key.

I'm neutral on this. I don't mind it, but I don't know if it will make anything more clear for users. The confusion is mostly that two different metadata concepts exist. Once they know that, it's not too hard to communicate the right type to us. But I agree it's weird, so if we want to just solve the weirdness, this is okay.

@stephenplusplus yeah, it kind of feels like "file options" and "file metadata" are being merged into one place but have different meaning / uses.

Across our APIs, metadata refers to the remote description of a resource. So for GCS, file.getMetadata() returns https://cloud.google.com/storage/docs/json_api/v1/objects.
The weird part is that the resource representation of a GCS Object includes a metadata property. That means we end up with what we refer to as metadata containing a metadata property: metadata.metadata.
We have methods built around our metadata, getMetadata() and setMetadata(). So, we end up with what looks like poor design:
file.setMetadata({
  metadata: {
    // Your metadata here!
  }
})

But that's also where other values go:
file.setMetadata({
  // Non-custom metadata.
  contentType: 'application/json',

  metadata: {
    // Your **custom!** metadata here!
    // myCustomKey: 'my-custom-value'
  }
})

I think this is weird, but I'm not sure of the most helpful fix. Maybe some more input could help?

It's rare a complaint for this comes up, and since we're stuck for ideas, maybe it's just an uncommon, short-lived pain point?

I ran into this recently, and would suggest that rather than changing the APIs maybe just add an explicit user metadata sample for any of the contexts that support it? It's very loosely hinted at in some of the existing samples such as https://github.com/googleapis/nodejs-storage/blob/master/samples/files.js#L257
The docs do touch on this as well (https://googleapis.dev/nodejs/storage/latest/File.html#setMetadata), but don't explicitly call out that the nested nature of the term 'metadata' might be a gotcha for those unfamiliar with this. Perhaps some clearer wording to suggest that metadata.metadata can be considered as metadata.user_metadata or metadata.context_metadata, rather than GCS-specific metadata would help?
I'd also suggest that the file.js example that is embedded in the docs could be included in the samples directory for those of us who read docs as a last resort :) This code most clearly illustrates the difference between reserved GCS properties and custom properties.


No config in mod menu

I saw that there was already in an issue stating such but the solution was not helpful. My light overlay only shows blue crosses at anything below 7 when exposed to sunlight, yellow crosses at 7 when not exposed to sunlight, and red crosses only at 0 when there is no sunlight. Config also just doesnt exist, there is no button for it.
Edit: As to the previous issue (#138 ), I am on 6.0.5 (fabric)

oops I meant to add descrition, dont use github ever.
I saw that there was already in an issue stating such but the solution was not helpful. My light overlay only shows blue crosses at anything below 7 when exposed to sunlight, yellow crosses at 7 when not exposed to sunlight, and red crosses only at 0 when there is no sunlight. Config also just doesnt exist, there is no button for it.

The site from where I was downloading had the latest versions of Cloth Config API not at the top of the page. So I got it for 1.18 instead of 1.19.
Versions that work with 1.19.2:
architectury-6.2.46-fabric.jar
cloth-config-8.2.88-fabric.jar
fabric-api-0.62.0+1.19.2.jar
light-overlay-7.0.0.jar
modmenu-4.0.6.jar


Extend programmatic api docs

Description
Extend modules API and documentation to provide inmanta-sphinx with a stable API (see inmanta/inmanta-sphinx#43). This pull request doesn't add full documentation for all parts used by inmanta-sphinx. It mainly contains documentation for the parts that caused the docs builds to fail with a few others thrown in. I've created #2853 for the rest since it turned out to be a lot more than initially expected.
Self Check:
Strike through any lines that are not applicable (~~line~~) then check the box

[x] Attached issue to pull request
[x] Changelog entry
[x] Type annotations are present
[x] Code is clear and sufficiently documented
[x] No (preventable) type errors (check using make mypy or make mypy-diff)
[x] Sufficient test cases (reproduces the bug/tests the requested feature)
[x] Correct, in line with design
[x] End user documentation is included or an issue is created for end-user documentation (add ref to issue here: )

Reviewer Checklist:

[ ] Sufficient test cases (reproduces the bug/tests the requested feature)
[ ] Code is clear and sufficiently documented
[ ] Correct, in line with design

Processing this pull request

Merged into branches master in 83b88964b5845a8ea9813f135dcbf57137ddb443

Processing #2856.


chore(proto): use UnmarshalVTUnsafe in pkg

Description
This is the continuation of PR that replaces UnmarshalVT with UnmarshalVTUnsafe that reduces number of allocs

#12494

[x] CHANGELOG update is not needed
[x] Documentation is not needed

Testing

[x] inspected CI results

Automated testing

[x] modified existing tests
[x] contributed no automated tests

How I validated my change
CI

/retest


translate target label

could use google translate as only single words (atm!)

Ticket covered by work to be done here https://github.com/prosopo/captcha-private/issues/78


[bug] Module @storybook/test-runner/playwright/transform in the transform option was not found

Describe the bug
In "@storybook/test-runner": "0.13.0", the script test-storybook --junit --ci in NPM workspaces fails with the following error.
● Validation Error:

Module @storybook/test-runner/playwright/transform in the transform option was not found.
     <rootDir> is: /Users/ddubrava/Desktop/test-runner-repro

It works in "@storybook/test-runner": "0.12.0", so I think the problem might be due to these changes
https://github.com/storybookjs/test-runner/blob/e1455258f3b0f6cb7845f8ca9ed4dad2e9ad6f18/src/config/jest-playwright.ts#L4
To Reproduce
I created the reproduction
https://github.com/ddubrava/storybook-test-runner-reproduction
Expected behavior
No errors.
Screenshots

System
  System:
    OS: macOS 13.4
    CPU: (10) arm64 Apple M1 Pro
  Binaries:
    Node: 18.17.1 - ~/.nvm/versions/node/v18.17.1/bin/node
    npm: 9.6.7 - ~/.nvm/versions/node/v18.17.1/bin/npm
  Browsers:
    Safari: 16.5

Additional context
I don't know why but sometimes this error doesn't arise even in my repro.

The temporary fix is to use the version <= 12.0.0

I'm also reproducing this error while running 0.9.4.


In generated code, assert that Self::From and Self have the same properties

The size and alignment must match. I think this is always the case but would like to know if it isn't.
The following does not work because Self::From may be a generic type parameter of Self where transmute is not allowed.
unsafe fn assert_same_size() {
    mem::forget(
        mem::transmute::<Self::From, Self>(
            mem::uninitialized()));
}

The following does not work because Self::From may not be sized.
debug_assert_eq!(mem::size_of::<Self::From>(),
                 mem::size_of::<Self>());
debug_assert_eq!(mem::align_of::<Self::From>(),
                 mem::align_of::<Self>());

I think this works:
use core::mem::{align_of, size_of};

struct Helper<T: ?Sized>(T);

trait Unsized<T: ?Sized> {
    const SIZE: usize = usize::MAX;
    const ALIGN: usize = usize::MAX;
}

impl<T: ?Sized> Unsized<T> for Helper<T> {}

impl<T> Helper<T> {
    const SIZE: usize = size_of::<T>();
    const ALIGN: usize = align_of::<T>();
}

debug_assert_eq!(Helper::<Self>::SIZE, Helper::<Self::From>::SIZE);
debug_assert_eq!(Helper::<Self>::ALIGN, Helper::<Self::From>::ALIGN);

That's pretty good! How does this look? #20


r-tabs-accordion-title choose what type html element / tag this shoul…

Relates to https://github.com/jellekralt/Responsive-Tabs/issues/51
Better late than never.

Thanks for submitting this PR! Definitely better late than never :smiley:. I might do some small modifications but I'm very happy with this improvement!

I decided to rename the option to accordionTabElement and make it more flexible so that you can pass an HTML element string. In this way one could even add attributes :). Thanks again for submitting this!


contributors wanted

Ok, so it is probably evident to anyone submitting issues to this repo that I no longer have the time or interest in maintaining this package as properly as it deserves. I am looking for a few good souls to pick up the reigns and move the module forward together. Primary things we need are issue triage and PR review.
If you are interested please speak up here and list a few PRs or issues you have worked on with this project.
/cc @tj @gjohnson @jongleberry @dougwilson @visionmedia/superagent for input on who those good souls might be

The webapp team at Financial Times is using superagent heavily, and we already maintain our own extensions to it. We're interested in maintaining this project.

@pornel great, I'm gonna give this a few days and then add some folks as collaborators for get stuff going again

I'm interested in helping out. I'm doing some PR review and issue triage now.

Interested in helping out but only have one PR as far as I know: https://github.com/visionmedia/superagent/pull/771

I have added all three of you as collaborators. Please work together (gets +1s from one another on issues and other things that are non trivial (like basic readme updates, obvious typo fixes etc).
Remember that the original intent of this project was/is to have a library that exposes the same (similar) API on client and server so keeping parity is usually an important thing when reviewing PRs and fixing issues.
Feel free to ping me on any specific issues if they come up or you want another vote.
I'd start with going through the PR and issue backlogs to close out anything that is stale or super old with no responses.
Please avoid making sweeping changes right out of the gate, stability of the API and users is arguably more important than any particular philosophical issue.
Thank you so much for stepping up and helping out! This module is really popular and your work will be really appreciated for all the of the folks filing issues :+1:

:ok_hand:

:clap: Thank you all!

:+1: thanks

@defunctzombie Responded via Twitter and then saw the issue... so thought this is a better place. I'm also up for helping maintain this. I use Superagent (and its unofficial bluebird/promise wrappers) most always on client and server :)
also helping out with koa, node-schedule, and boris right now (as well as personal and other small repos, of course)


subscriber: add grpc-web support to console-subscriber

What problem are you trying to solve?
Currently, we only support standard gRPC. However, if we aim to develop a web console in the browser, it will require the use of grpc-web to connect to the console-subscriber. Since grpc-web only supports HTTP 1.1, we cannot directly connect to the console-subscriber. To facilitate this, we must use envoy as a proxy for forwarding. While this approach is effective, it introduces a new component to the system.
How should the problem be solved?
Because tonic has tonic-web layer, we can add a new feature to help users to enable it. Then we can connect the console-subscriber with grpc-web. I have implemented it. It worked well.
Any alternatives you've considered?
Use envoy as a proxy to workaround.
How would users interact with this feature?
Users only need to enable the grpc-web or web feature.
Would you like to work on this feature?
yes

This seems like a good idea to me! A web console would be neat to have eventually!

@hi-rustin since https://github.com/tokio-rs/console/pull/498 got merged, should this issue be closed?

Yes, I think we can close it now.

Thank you


[BBD] Infinite loading plugins&themes on Canary

Discord starts just fine, but BBD settings, plugins and themes doesnt works
Uncaught TypeError: Cannot read property 'split' of undefined
    at t (cdn.staticaly.com/gh/rauenzi/BetterDiscordApp/e737b0c343ba4fe7f6f3a17da59983586b980ace/js/main.min.js:4)
    at o (345ae7ded6064a0fccb7.js:49)

This happens even without plugins

same

same problem for me, remove BBD and re-install it does not solve the problem

Make sure you try it again, a fix was pushed less than half an hour ago.

I tried after the patch was deployed. I am in stable version


lib3mf v2.0.0. alpha: Crash during destruction of CObject shared_ptr returned by CComponent::GetObjectResource()

lib3mf_debug.zip
Version: lib3mf v2.0.0 alpha
A lib3mf based application, which tries to read 3mf file, crashes when PObject returned by CComponent::GetObjectResource() goes out of scope. (i.e. when it is destroyed.) Please use attached code (VS solution) and 3mf files to verify the problem.
Notably, a similar function CBuildItem::GetObjectResource() works fine.

Good catch. Thanks!


Add Support for Mighty Morphin Power Rangers: Rita's Rewind

Game Information:

Name: Mighty Morphin Power Rangers: Rita's Rewind
Steam Page: https://store.steampowered.com/app/2816870/Mighty_Morphin_Power_Rangers_Ritas_Rewind/

Description:
This tool has been extremely helpful for working with Digital Eclipse games. Mighty Morphin Power Rangers: Rita's Rewind appears to use the same .pie file format as other supported games. It would be great to add compatibility for decrypting and working with its assets.

I have found that the key is 0xFA5E893B and it works
i hope you will add this key to your future release

Added in Release 0.9.0. Thank you for your contribution to this project.

Added in Release 0.9.0. Thank you for your contribution to this project.

Hi. Sorry to reply this thread, but it seems encryption is not working, it throws an error by trying to return .zip to .pie

This one is my fault I'll fix it


Int32

Checklist

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

Hi! This is the friendly automated conda-forge-webservice.
It appears you are making a pull request from a branch in your feedstock and not a fork. This procedure will generate a separate build for each push to the branch and is thus not allowed. See our documentation for more details.
Please close this pull request and remake it from a fork of this feedstock.
Have a great day!

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

tests are failing with:
$SRC_DIR/SMESH/test/src/NETGENPlugin.t.cpp:3:10: fatal error: 'catch2/catch.hpp' file not found
#include <catch2/catch.hpp>

any ideas @trelau


Implement flexible checksums

Describe the feature
S3 supports new flexible checksum algorithm selection via model updates which replace the httpChecksumRequired trait with httpChecksum and additional options. Fully implement support for user-selected checksum algorithms to enable this feature.
Is your Feature Request related to a problem?
n/a
Proposed Solution
n/a
Describe alternative solutions or features you've considered
n/a
Acknowledge

[X] I may be able to implement this feature request

AWS Kotlin SDK version used
0.13.1-beta
Platform (JVM/JS/Native)
JVM
Operating System and version
AL2

Actually, looks like this request is already captured in smithy-kotlin#446. Resolving as duplicate.


Replace SPACING and HALF_SPACING with 16 and 8

Did a sweep through all components and removed SPACING and HALF_SPACING from styles/index.js in the last commit.
Closes #2641

Merged -- thanks @agzuniverse !


Add necessary tooltips

The icon buttons in the sceenshot below need tooltips to help explain their meaning.

Street View
View on City Atlas
Show my Location
Zoom In
Zoom Out

The tooltip should be like the one on the Share button.

I would like to be assigned this. :)

@thansidwell The MapLibre components already have title attribute tooltips. Do we still want to replace them with the stylized ones? It's possible, albeit more complex.

@amyyeung17 Yes, the styled tooltips are preferable to the native attribute tooltips. I think because they appear quicker, are often larger, match the rest of the interface, and present a more consistent experience across browsers and systems.


Update Composer dependencies (2021-06-23-00-13)

Visual regression test passed!
View the visual regression test report


Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)

when I run imagenet, and when it comes to epoch 2 , step 16000 , the pycharm stop and say Process finished with exit code 139 (interrupted by signal 11: SIGSEGV) ,Could you please tell me what's the matter?

I'm a novice, I'm looking at your code, but I don't know how to run through your code completely (such as which folders need to be built, how to place data sets). If possible, could you tell me something about it?


Ensure that if time parameterization fails, error is appropriately propogated

I'm also switching our rosinstall (in https://github.com/iron-ox/iron_ox/pull/859) to use the new iron-master branch (tracking ros_planning/moveit's master, plus our changes) until we decide to upstream this + get it merged.


Feat device file exists function

Adding new function in device to check if the file exists in the given path.

I think new methods are missing tests

I think new methods are missing tests

Will add them!

Will add them!


Deprecate hpx::lcos::wait_all[_n] in favor of hpx::wait_all[_n]

Attention: hpx::wait_all[_n] now throws if one of the futures is exceptional
this is a change in semantics.
Introduce hpx::wait_all[_n]_nothrow that exhibits the (non-throwing) old
semantics of wait_all[_n]
Extending existing tests, add new for nothrow variants

The change in semantics proposed overcome a problem of the long-standing practice that users most of the time didn't realize the old versions of wait_all wouldn't throw if one of the futures was exceptional. This was prone to exceptions being dropped on the floor, leading to obscure runtime issues.
Similar changes have been applied for hpx::wait_any[_n], hpx::wait_some[_n], and hpx::wait_each[_n].
This also deprecates hpx::lcos::wait and friends. This should be removed completely in the future. Its functionality is fully subsumed by hpx::wait_each.

Performance test reportHPX PerformanceComparisonBENCHMARKNO-EXECUTORFuture Overhead - Create Thread Hierarchical - Latch+InfoPropertyBeforeAfterHPX Commit96a2e4bd1c76207dea8d5302784962c9278824068912790c99968695f5c53241e2970fd33e7d582eHPX Datetime2021-11-11T08:14:57+00:002021-11-28T16:03:39+00:00Hostnamenid00006nid01527ClusternamedaintdaintDatetime2021-11-11T09:28:13.071121+01:002021-11-28T17:17:13.305187+01:00EnvfileCompiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0ComparisonBENCHMARKFORK_JOIN_EXECUTOR_DEFAULT_FORK_JOIN_POLICY_ALLOCATORPARALLEL_EXECUTOR_DEFAULT_PARALLEL_POLICY_ALLOCATORSCHEDULER_EXECUTOR_DEFAULT_SCHEDULER_EXECUTOR_ALLOCATORStream Benchmark - Add(=)(=)(=)Stream Benchmark - Scale(=)(=)(=)Stream Benchmark - Triad(=)(=)(=)Stream Benchmark - Copy(=)-(=)InfoPropertyBeforeAfterHPX Commit71d8dbe40b737be02ea734f9d98fcc0b1e21f01a8912790c99968695f5c53241e2970fd33e7d582eHPX Datetime2021-11-10T19:14:21+00:002021-11-28T16:03:39+00:00Hostnamenid00120nid01527ClusternamedaintdaintDatetime2021-11-10T20:28:18.266961+01:002021-11-28T17:17:28.664323+01:00EnvfileCompiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0Explanation of SymbolsSymbolMEANING=No performance change (confidence interval within ±1%)(=)Probably no performance change (confidence interval within ±2%)(+)/(-)Very small performance improvement/degradation (≤1%)+/-Small performance improvement/degradation (≤5%)++/--Large performance improvement/degradation (≤10%)+++/---Very large performance improvement/degradation (>10%)?Probably no change, but quite large uncertainty (confidence interval with ±5%)??Unclear result, very large uncertainty (±10%)???Something unexpected…

Performance test reportHPX PerformanceComparisonBENCHMARKNO-EXECUTORFuture Overhead - Create Thread Hierarchical - Latch-InfoPropertyBeforeAfterHPX Commit96a2e4bd1c76207dea8d5302784962c9278824062847d252750941c9e28b9a050df93d4303d1bc8aHPX Datetime2021-11-11T08:14:57+00:002021-11-29T20:22:29+00:00Hostnamenid00006nid00202ClusternamedaintdaintCompiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0EnvfileDatetime2021-11-11T09:28:13.071121+01:002021-11-29T21:38:27.597173+01:00ComparisonBENCHMARKFORK_JOIN_EXECUTOR_DEFAULT_FORK_JOIN_POLICY_ALLOCATORPARALLEL_EXECUTOR_DEFAULT_PARALLEL_POLICY_ALLOCATORSCHEDULER_EXECUTOR_DEFAULT_SCHEDULER_EXECUTOR_ALLOCATORStream Benchmark - Add(=)(=)(=)Stream Benchmark - Scale(=)(=)(=)Stream Benchmark - Triad(=)(=)(=)Stream Benchmark - Copy(=)(=)(=)InfoPropertyBeforeAfterHPX Commit71d8dbe40b737be02ea734f9d98fcc0b1e21f01a2847d252750941c9e28b9a050df93d4303d1bc8aHPX Datetime2021-11-10T19:14:21+00:002021-11-29T20:22:29+00:00Hostnamenid00120nid00202ClusternamedaintdaintCompiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0EnvfileDatetime2021-11-10T20:28:18.266961+01:002021-11-29T21:38:43.076436+01:00Explanation of SymbolsSymbolMEANING=No performance change (confidence interval within ±1%)(=)Probably no performance change (confidence interval within ±2%)(+)/(-)Very small performance improvement/degradation (≤1%)+/-Small performance improvement/degradation (≤5%)++/--Large performance improvement/degradation (≤10%)+++/---Very large performance improvement/degradation (>10%)?Probably no change, but quite large uncertainty (confidence interval with ±5%)??Unclear result, very large uncertainty (±10%)???Something unexpected…

Performance test reportHPX PerformanceComparisonBENCHMARKNO-EXECUTORFuture Overhead - Create Thread Hierarchical - Latch(=)InfoPropertyBeforeAfterHPX Datetime2021-11-11T08:14:57+00:002021-11-30T20:07:13+00:00HPX Commit96a2e4bd1c76207dea8d5302784962c9278824068d92203d7c224d64e42d5829c494b5ac457fbf20EnvfileClusternamedaintdaintCompiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0Datetime2021-11-11T09:28:13.071121+01:002021-11-30T21:23:54.293303+01:00Hostnamenid00006nid01137ComparisonBENCHMARKFORK_JOIN_EXECUTOR_DEFAULT_FORK_JOIN_POLICY_ALLOCATORPARALLEL_EXECUTOR_DEFAULT_PARALLEL_POLICY_ALLOCATORSCHEDULER_EXECUTOR_DEFAULT_SCHEDULER_EXECUTOR_ALLOCATORStream Benchmark - Add---Stream Benchmark - Scale(=)(=)(=)Stream Benchmark - Triad(=)--Stream Benchmark - Copy(=)(=)(=)InfoPropertyBeforeAfterHPX Datetime2021-11-10T19:14:21+00:002021-11-30T20:07:13+00:00HPX Commit71d8dbe40b737be02ea734f9d98fcc0b1e21f01a8d92203d7c224d64e42d5829c494b5ac457fbf20EnvfileClusternamedaintdaintCompiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0Datetime2021-11-10T20:28:18.266961+01:002021-11-30T21:24:09.936874+01:00Hostnamenid00120nid01137Explanation of SymbolsSymbolMEANING=No performance change (confidence interval within ±1%)(=)Probably no performance change (confidence interval within ±2%)(+)/(-)Very small performance improvement/degradation (≤1%)+/-Small performance improvement/degradation (≤5%)++/--Large performance improvement/degradation (≤10%)+++/---Very large performance improvement/degradation (>10%)?Probably no change, but quite large uncertainty (confidence interval with ±5%)??Unclear result, very large uncertainty (±10%)???Something unexpected…

bors merge


Add back trace logs for dsd packets

What does this PR do?
Trace every dsd packets
Motivation
#3310 removed a log that could be useful to troubleshoot some agent issues.
Additional Notes
Anything else we should know when reviewing?

I don't expect this change to really affect performance (unless the log level is actually set to trace), but do you have a small benchmark on parsePacket to prove this? 😄

I was not expecting this kind of difference (first line with log) 😅
BenchmarkParsePacket-4   	 5000000	       365 ns/op	     141 B/op	       3 allocs/op
BenchmarkParsePacket-4   	200000000	        11.1 ns/op	       0 B/op	       0 allocs/op

Although the benchmark is pretty lightweight, wondering what actually happens as the log/config package is not properly setup 🤔
Adding the bench file as it might be reused.

Interesting @mfpierre, thanks for the benchmark!
Indeed, actually you'll want to try with the log package fully initialized before you start the bench, as the log package has a mechanism to buffer log entries if the package is used before its full initialization (see https://github.com/DataDog/datadog-agent/blob/8973a3ea96be667bb0e213d2b7818ee91ba2b607/pkg/util/log/log.go#L454-L456)

@olivielpeau it's still looking pretty bad
BenchmarkParsePacketWithoutLogs-4     	10000000	       143 ns/op	      48 B/op	       2 allocs/op
BenchmarkParsePacketWithTraceLogs-4.    50000	     38468 ns/op	    6069 B/op	      39 allocs/op

when the log line is commented out:
BenchmarkParsePacketWithoutLogs-4     	100000000	        12.7 ns/op	       0 B/op	       0 allocs/op
BenchmarkParsePacketWithTraceLogs-4     100000000	        11.8 ns/op	       0 B/op	       0 allocs/op

I guess I did a pretty good dsd optimization removing this log 😅

Surprising results! Might be related to the lock we lock/unlock in the function that checks whether we should actually log the entry given the current log level? https://github.com/DataDog/datadog-agent/blob/8973a3ea96be667bb0e213d2b7818ee91ba2b607/pkg/util/log/log.go#L104-L105 We'd have to look at a profile to understand more I guess...
In any case, I think the benchmark is a clear indication that we shouldn't merge the change as-is. As you said, we should revisit our logging strategy around perf critical code and understand what's making the logger add so much overhead even when the log entry should be ignored. Happy to add this to our backlog if you don't have the time to look into it now.
If this log entry is important enough that we should re-add it before we answer these questions, we could put it behind a non-documented config flag for now? What do you think?

I removed the lock & fixed the benchmark because actually the dsd sender is modifying the original packet content with nextMessage so I have to send a new packet everytime
here are the adjusted results:
BenchmarkParsePacketWithoutLogs-4     	 2000000	       667 ns/op	     344 B/op	      11 allocs/op
BenchmarkParsePacketWithTraceLogs-4   	   30000	     76310 ns/op	    7855 B/op	      59 allocs/op

with the logs commented out:
BenchmarkParsePacketWithoutLogs-4     	 2000000	       562 ns/op	     296 B/op	       9 allocs/op
BenchmarkParsePacketWithTraceLogs-4   	 3000000	       549 ns/op	     296 B/op	       9 allocs/op

looks way better 👍

Also benchmarked the lock overhead on the shouldLog function:
BenchmarkShouldLog-4<PHONE_NUMBER>	         0.39 ns/op	       0 B/op	       0 allocs/op
BenchmarkShouldLog-4   	30000000	        44.4 ns/op	       0 B/op	       0 allocs/op

We should probably use a RWLock. Not sure if it will remove the 40ns overhead but it will certainly lower contention.

@arbll do we actually need a lock on shouldLog? Worst case we log something at the wrong level if it's being changed in the meanwhile but is it really an issue? 🤔

Also, is the overhead in shouldLog primarily from the lock itself, or from the defer call? (I know defer has an overhead that's not negligible in hot paths, don't know if it's at play here though)

The defer has a ~30ns overhead
BenchmarkShouldLog-4   	100000000	        15.4 ns/op	       0 B/op	       0 allocs/op

Well logLevel is a uint8 so it probably won't crash the app in case of race but I don't think it would be a very good practice to purposefully let it happen.
Unit tests with the race detector might also start failing

State with a RLock without defer:
BenchmarkParsePacketWithoutLogs-4     	 2000000	       690 ns/op	     344 B/op	      11 allocs/op
BenchmarkParsePacketWithTraceLogs-4   	   30000	     63540 ns/op	    7864 B/op	      59 allocs/op


🐛(website) update refresh token when multiple tabs

Bug Report
When multiple tabs are open on the website, if a tab stays inactive during 5mn (access token lifetime), when it gets the focus back we are disconnected.
It is because the access token is not valid anymore, and the refresh token has been updated by the other tab.
Expected behavior/code
Find a way to stay connected when we get the focus back.
Steps to Reproduce

Open 2 tabs
Stay inactive the time of the access token lifetime in one tab
Stay active more than the time of the access token lifetime in the other tab
Go to the inactive tab, you should be disconnected.

Managed in #2119


how to get scheme name

http://<IP_ADDRESS>:88/test
sorry I didn't describe it fully, I have use example\advanced\server\advanced_server.cpp
I want to get the scheme name when the client accesses it
how to get the string "http://"?

You can use Boost.URL for these purposes: https://www.boost.org/doc/libs/master/libs/url/doc/html/url/overview.html#url.overview.quick_look.accessing

You can use Boost.URL for these purposes: https://www.boost.org/doc/libs/master/libs/url/doc/html/url/overview.html#url.overview.quick_look.accessing

thanks very much
sorry I didn't describe it fully, I have use example\advanced\server\advanced_server.cpp
I want to get the scheme name when the client accesses it

thanks very much sorry I didn't describe it fully, I have use example\advanced\server\advanced_server.cpp I want to get the scheme name when the client accesses it

Could you please elaborate on this? In which step do you want to access the scheme? An HTTP request only contains the target.

Could you please elaborate on this? In which step do you want to access the scheme? An HTTP request only contains the target.

such as "http://<IP_ADDRESS>:88/test"
handle_request(
beast::string_view doc_root,
http::request<Body, http::basic_fields> &req )
req[http::field::host] can obtain "<IP_ADDRESS>:88"
req.target() can obtain "/test"
I found "protocol" in http::field but is empty
I want to jump to "https://" after obtaining "http://"

such as "http://<IP_ADDRESS>:88/test"
handle_request( beast::string_view doc_root, http::request<Body, http::basic_fields> &req )
req[http::field::host] can obtain "<IP_ADDRESS>:88" req.target() can obtain "/test" I found "protocol" in http::field but is empty I want to jump to "https://" after obtaining "http://"

The HTTP request itself doesn't contain the scheme (http/https). The scheme is used by the client to establish the connection but isn't included in the request headers. To determine the scheme on the server side, you typically infer it from the server configuration or the connection context. For example, you can check if the connection uses SSL/TLS to decide if the scheme is "https".
https://developer.mozilla.org/en-US/docs/Web/HTTP/Messages#http_requests

such as "http://<IP_ADDRESS>:88/test"
handle_request( beast::string_view doc_root, http::request<Body, http::basic_fields> &req )
req[http::field::host] can obtain "<IP_ADDRESS>:88" req.target() can obtain "/test" I found "protocol" in http::field but is empty I want to jump to "https://" after obtaining "http://"

The HTTP request itself doesn't contain the scheme (http/https). The scheme is used by the client to establish the connection but isn't included in the request headers. To determine the scheme on the server side, you typically infer it from the server configuration or the connection context. For example, you can check if the connection uses SSL/TLS to decide if the scheme is "https".
https://developer.mozilla.org/en-US/docs/Web/HTTP/Messages#http_requests

thank you for your help
I found out I was wrong before
I used example\advanced\server-flex\advanced_server_flex.cpp
The solution is
class ssl_http_session
`    void
on_handshake(
beast::error_code ec,
std::size_t bytes_used)
{
if(ec)
return fail(ec, "handshake");
    // Consume the portion of the buffer used by the handshake
    buffer_.consume(bytes_used);

    do_read();
}`

chenge to
    void     on_handshake(                     beast::error_code ec,                     std::size_t bytes_used )     {         if ( ec )         {             return fail( ec, "handshake" );         }         // Consume the portion of the buffer used by the handshake         buffer_.consume( bytes_used );         do_read(true);//ssl tag     }
class http_session
`    void
do_read()
{
// Construct a new parser for each message
parser_.emplace();
    // Apply a reasonable limit to the allowed size
    // of the body in bytes to prevent abuse.
    parser_->body_limit(boost::none);

    // Set the timeout.
    beast::get_lowest_layer(
        derived().stream()).expires_never();//expires_after(std::chrono::seconds(30));

    // Read a request using the parser-oriented interface
    http::async_read(
        derived().stream(),
        buffer_,
        *parser_,
        beast::bind_front_handler(
            &http_session::on_read,
            derived().shared_from_this()));
}

void
on_read(beast::error_code ec, std::size_t bytes_transferred)
{
    boost::ignore_unused(bytes_transferred);

    // This means they closed the connection
    if(ec == http::error::end_of_stream)
        return derived().do_eof();

    if(ec)
        return fail(ec, "read");

    // See if it is a WebSocket Upgrade
    if(websocket::is_upgrade(parser_->get()))
    {
        // Disable the timeout.
        // The websocket::stream uses its own timeout settings.
        beast::get_lowest_layer(derived().stream()).expires_never();

        // Create a websocket session, transferring ownership
        // of both the socket and the HTTP request.
        return make_websocket_session(
            derived().release_stream(),
            parser_->release());
    }

    // Send the response
    queue_write(handle_request(*doc_root_, parser_->release()));

    // If we aren't at the queue limit, try to pipeline another request
    if (response_queue_.size() < queue_limit)
        do_read();
}

chenge to    void
do_read(bool bssl = false)
{
// Construct a new parser for each message
parser_.emplace();
    // Apply a reasonable limit to the allowed size
    // of the body in bytes to prevent abuse.
    parser_->body_limit(boost::none);

    // Set the timeout.
    beast::get_lowest_layer(
        derived().stream()).expires_never();//expires_after(std::chrono::seconds(30));

    // Read a request using the parser-oriented interface
    http::async_read(
        derived().stream(),
        buffer_,
        *parser_,
        beast::bind_front_handler(
            &http_session::on_read,
            derived().shared_from_this(),
            bssl));
}

void
on_read(bool bssl, beast::error_code ec, std::size_t bytes_transferred)
{
    boost::ignore_unused(bytes_transferred);

    // This means they closed the connection
    if(ec == http::error::end_of_stream)
        return derived().do_eof();

    if(ec)
        return fail(ec, "read");

    // See if it is a WebSocket Upgrade
    if(websocket::is_upgrade(parser_->get()))
    {
        // Disable the timeout.
        // The websocket::stream uses its own timeout settings.
        beast::get_lowest_layer(derived().stream()).expires_never();

        // Create a websocket session, transferring ownership
        // of both the socket and the HTTP request.
        return make_websocket_session(
            derived().release_stream(),
            parser_->release());
    }

    // Send the response
    queue_write(handle_request(*doc_root_, parser_->release(), bssl));

    // If we aren't at the queue limit, try to pipeline another request
    if (response_queue_.size() < queue_limit)
        do_read();
}

`
Then in handle_request you can determine whether it is ssl


Fix wrong time slicing with MultifieldDataSampler for first time indices

Combining data from the beginning and the end of the datetime range of the dataset is avoided by ensuring that the first time indices are not sampled. This is achieved with the following line of code in the constructor of MultifieldDataSampler.
Note that I've added a doc-string to the constructor as well to ease its utilisation.

@clessig Any update on this pull request?


Dates are not formatted

Referencing a date from a Google sheet like <> results in a value such as: Wed Dec 06 2017 08:04:32 GMT-0700 (MST)
There should be the ability to format dates to more presentable forms, such as short date with no time, other other formats.
Issue originates from a conversation between Danny Edwards and Dan Chenier Dec 6 2017.

I could be wrong about this, but I think I looked into this and it's actually Google Sheets that determines how the date is formatted? Does using Format > Numbers > More formats change the way Mailman ends up sending the date?

Hmmm... Looks like I changed the behaviour when I implemented the handlebars rendering over the old regex/replace method before.
i.e. the relevant line used to be: var emailProps = EmailService.getEmailFields(header, row.**getDisplayValues()**[0], template);
and now's it's essentially sheet.**getSheetValues**(rowNum, 1, 1, 128)[0];
There is value in taking the actual object now though, because we can use the handlebars engine to format values in the template itself.  e.g. {{formatDate MyDateColumn "MMMM dd yyyy"}}. More importantly, getDisplayValue() always returns a string, whereas getSheetValues returns the type in the cell.  So we'll be able to do things like {{ sum (range "Sheet!A1:A100") }}

I suppose another consequence of using the raw values would be
e.g. a column is formatted with a percentage a a cell has a value of 0.2%.  The rich text mailman would likely output 0.002 as a number.  Probably not what users would expect.
But as mentioned in previous comment I still think there's value in having access to the raw values.  We can probably provide both on the context.  i.e. {{ MyDateField }} should show the formatted date but maybe we could do {{ _rawValues.MyDateField }} or something like that to get to the raw values. So then if we wanted to format it differently we could do something like {{ formatDate _rawValues.MyDateField "MMM dd yyyy hh:mm:ss a" }}

Oh right. Yes I remember solving this now. I think what I found was getDisplayValue always returns pretty much exactly what is shown in the cell. getValues returns an actual object, so for a Date object, you have to format yourself.
Not a bad idea about exposing the objects though. Especially now that we're allowing more advanced processing with Handlebars.

Changed handlebars context to use display values rather than raw values, as the original Mailman did.


Cleaning an Home Server

Sorry if I missed information somewhere, but I cannot find how to “clean” an home server.
Basically, I would want to remove:
– communities with no-one inside (basically were created as tests);
– local rooms or copy of federated rooms for which no local user are inside anymore.
Currently I think there is a growing number of “dead rooms” on my HS, and I’d like to get ride of them.
Thanks for your help!

not really a spec issue, I'm afraid.

Sorry @ArchangeGabriel, could you ask in matrix-org/synapse?


Flutter compiler unhelpful error.

error: Unable to find Dart library ''.
Failed to run the Flutter compiler. Exit code: 1

What's the actual problem that's triggering this error?

This looks fixed on trunk:
abarth@abarth3:/src/flutter/flutter/dev/manual_tests$ flutter build flx -t scrolling.dart --debug
error: Unable to find Dart library 'package:material.dart'.
Failed to run the Flutter compiler. Exit code: 1
Error building build/app.flx: 1.

Can you still reproduce the issue on master?

I believe this is fixed.  Please re-open if you can still reproduce this issue on master.


Backport #509 to 2.5 release series

See #509 for more.

Lol whoops! Too many backports, still gotta enhance the script further to make it open these PRs for me too.


Exclusive window loses focus on outside mouse press

Godot version
4.0.dev (latest)
System information
Arch Linux
Issue description
The documentation for the exclusive property says that "Exclusive windows are always on top of their parent and will block all input going to the parent Window."
However, when an exclusive window is focused, and the user clicks outside of it, while the window indeed does not close and/or emit close_requested signals, it will lose focus. This makes keyboard/controller navigation stop on the exclusive popup, until the user clicks on that window again:
https://github.com/godotengine/godot/assets/6501975/29b06524-2d7a-4b11-94bf-d7b2b75d9e69
Steps to reproduce

Create a Window node with transient and exclusive flags set, and with some UI elements there to move focus to (e.g. Button)
Click outside the window node
Input will no longer propagate to the exclusive window node.

Minimal reproduction project
Repro.zip

The following patch seems to work for me:
diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp
index 5f8f5225c9..bb51413137 100644
--- a/scene/main/viewport.cpp
+++ b/scene/main/viewport.cpp
@@ -2931,7 +2931,7 @@ bool Viewport::_sub_windows_forward_input(const Ref<InputEvent> &p_event) {

                gui.currently_dragged_subwindow = click_on_window;

-               if (!click_on_window && gui.subwindow_focused) {
+               if (!click_on_window && gui.subwindow_focused && !gui.subwindow_focused->is_exclusive()) {
                        // No window found and clicked, remove focus.
                        _sub_window_grab_focus(nullptr);
                }


AP starts but stops almost immediately

Hope this helps someone in the future as it took me a ton of time to resolve this issue.
Raspberry Pi 3B running Debian Bookworm
Linux pi 6.6.20+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.20-1+rpt1 (2024-03-07) aarch64 GNU/Linux
I was having an issue where the vtrust-flash AP would start but almost immediately stop.
The logs for smarthack-wifi.log showed the following error:
"Failed to stop network-manager.service: Unit network-manager.service not loaded."
This turned out to be the same problem as another user reported affecting Kali Linux - Debian uses NetworkManager.service rather than network-manager.service.
Thanks to the other user's helpful guide I was able to fix the issue by editing setup_ap.sh replacing two instances of network-manager with NetworkManager.

Hi,

can you help me where you find the log?
Understand I right you change the two "network-manager" to "NetworkManager"

I can confirm that workaround. Just change the two occurances and it works


Petition for snapshot backwards compatibility

The current snapshot (serialization) feature requires template parameters for all the components. This is fine, except whenever I introduce a new component type, which happens fairly regularly, I get errors loading binaries that were saved before the addition. Due to the tests I'm doing, I cannot afford to rebuild the registry/scene everytime I add a new type. Also, I have to do a full capture of components since I serialize various entity values as well, so unless I'm mistaken continous snapshot is not an option. I'm hoping there's a workaround to this.
edit: Nope sorry, did a few more tests and the problem persists. Also the order of component template parameters matter as well... which is somewhat error prone.

Mmm interesting. I'd say that one can easily achieve it with a bit of reflection and without the snapshot stuff probably. Do you have any suggestions instead?

Do you mean serializing the registry without using snapshots? That's not impossible but that would mean manually maintaining serialized data and rebuilding each entity and component one by one on my part. Unless I'm mistaken, I cannot (de)serialize the data containters i.e. sparse sets directly. I really like the built in snapshot system because it does that for me and I only have to send the archive (I use cereal) and target component type parameters. It's just that it fails when the in and out type args list is incompatible.
It would be really nice if the snapshots can be deserialized in a way where the order doesn't matter or at the least where it can ignore types it cannot find in the binary. For example if the out snapshot captured  and the in snapshot expects <Position, Velocity> but cannot find Velocity storage, it would be nice if it just ignored the Velocity parameter, order regardless. An empty component storage is fine, as long as it doesn't throw a runtime error. It might require additional trailing data of a hash of existing types at most... and markers indicating the beginning and end of the registry if there aren't already. (I also serialize other data outside of registry scope in the same archive).
I'm afraid I cannot offer any more suggestions because I don't really know the specifics of how the snapshot actually de/serializes components and their types at the moment.

@Sedomanai  In a project of mine I've built a snapshot and snapshot-loader for entt  which should tick the boxes you mention above.
The principle is as follows: Serialization doesn't occur on a "component-major" order, but rather on an entity-major order (less efficient than entt-inbuilt-solution but that wasn't my primary concern).
For every entity, obtain a sequence of its components (you can create a handle h, call h.visit on it, obtain the meta_type and in the callback push a component-reference-wrapper to a vector of Any (which should be a small wrapper around meta_any which implements serialize for cereal)).
Every of the reflected components needs to have a type-identifier stored with it, so that it may later be attached correctly when de-serializing. As I register my types with human-readable identifiers I use exactly those identifiers for that purpose. Without such identifiers you are forced to rely on serialization-order, which, as you've noted, creates incompatibilities.
So when de-serializing this vector of components, you can read its type, and then emplace (or emplace_or_replace) it to the entity (the entity you have already deserialized at that point using:
auto e = entt::entity{};
archive(e);
reg.create(e); // entity-identifier is preserved

Side-note: I have no variadic templates in any of my serialization, and instead allow passing a ShouldSerializePredicate
which is just a function returning a bool for a const char* (again, my component-types are reflected with a string).
I hope I could give a general overview, I realize that for all of the details I would need pages.
If anyone's interested let me know, and I might actually upload my implementation - again, disclaimer that it's not optimized.
Here's a snippet from a registry serialized to json:
{
    "e_count": 2,
    "0": {
        "e": 0,
        "components": [
            {
                "has_any": true,
                "type": "arch",
                "arch": {
                    "name": "cube"
                }
            },
            {
                "has_any": true,
                "type": "color",
                "color": {
                    "color": {
                        "x": 0.6000000238418579,
                        "y": 0.6000000238418579,
                        "z": 0.6000000238418579,
                        "w": 1.0
                    }
                }
            },
            {
                "has_any": true,
                "type": "mesh",
                "mesh": {
                    "name": "cube"
                }
            }
        ]
    },
    "1": {
        "e": 1,
        "components": [
            {
                "has_any": true,
                "type": "arch",
                "arch": {
                    "name": "food"
                }
            },
            {
                "has_any": true,
                "type": "consumable",
                "consumable": {
                    "nutrition": 0.5
                }
            }
        ]
    }
}

I've uploaded my implementation to https://github.com/LeonFretter/entt_snapshot - hope it might be helpful to someone :)

Thank you very much LeonFretter. I'll look into it and see if I can apply it to my project but in any case I'm grateful to you for sharing your precedent work

@Sedomanai I'm looking into the issues that are still open. I must admit that I don't know exactly what the request is here.
Can I ask you to be more explicit? For example, with a proposed solution or api. As it stands, it's a little vague at the moment. Thanks.

Closing this because it has been inactive for a couple of weeks now and I've not enough details.