Widget bindings should be generated - Lots of widgets are missing

The docs list only a number of very basic widgets.
These seem to be implemented in React NodeGUI, and Svelte NodeGUI just bridges over the React implementations.
For my real world application, I need a much larger number of Qt widgets. Without more widgets, I cannot even make a feasability study whether Svelte NodeGUI is suitable for my application, because the current set of widgets is just too small to find out whether it would work. Theoretically, I could add the widgets myself, but there are too many missing.
However, I am faced with 5 layers of abstraction:

OS widgets ->
Qt ->
Node GUI ->
React NodeGUI ->
Svelte NodeGUI

This makes it difficult to add new widgets, because I need to understand a lot of intermediate wiring code, to add a widget. Worse, the mappings seem to be hand-written.
May I suggest a different approach? Why don't you take the Qt widget API descriptions in computer-readable form, and then use Swig or a custom-made software to generate the bindings, for NodeGUI and each of React/Vue/Svelte NodeGUI?
This would have the following advantages:

All Qt widgets supported, in all variants of NodeGUI
API up to date with new Qt versions
SvelteGUI would no longer need to use React NodeGUI, eliminating at least one level of indirection. (compare #21)

@a7ul @shirakaba

The set of QWidgets supported by Svelte NodeGUI

The docs list only a number of very basic widgets.
These seem to be implemented in React NodeGUI, and Svelte NodeGUI just bridges over the React implementations.

Svelte NodeGUI supports all the widgets that React NodeGUI does (unless I've missed any, but I did look quite hard), plus QSvg. The full set is listed here:
https://github.com/nodegui/svelte-nodegui/blob/1ce01eb64e4cf23ee31865592e737b729eb89a2b/src/svelte-nodegui.ts#L62-L158
The Svelte NodeGUI docs (which are incidentally just a copy-paste of the React NodeGUI docs, with some find-and-replace applied and manual code examples added) are evidently missing a large number of the supported widgets. Contributions are welcomed on that front.

For my real world application, I need a much larger number of Qt widgets. Without more widgets, I cannot even make a feasability study whether Svelte NodeGUI is suitable for my application, because the current set of widgets is just too small to find out whether it would work. Theoretically, I could add the widgets myself, but there are too many missing.

I'd say 24 widgets is a good star, to be fair – for example, React Native provides 21 cross-platform core components, plus two iOS-specific ones and two Android-specific ones. We've recently merged two PRs to add extra widgets (namely <svg> and <scrollArea>), so I think that the barrier to adding new widgets from NodeGUI is quite low.
Adding support for new Qt widgets to Svelte NodeGUI

This makes it difficult to add new widgets, because I need to understand a lot of intermediate wiring code, to add a widget. Worse, the mappings seem to be hand-written.

I know it's missing the point, but I might as well explain the wiring code while we're on the subject. The wiring code in that file, index.ts, corresponds to the React custom renderer APIs. You generally don't need to touch much, if anything, in those files; just copy-paste them and make the naming consistent. The only things to think about would be shouldSetTextContent (true for any element that can accept text nodes as children) and createInstance (where you define the initial props for the element – usually just {} – and any post-initialisation you might want to do). And to tell the truth, even that bit of effort is all just to make it easy to port contributions back over to React NodeGUI – Svelte NodeGUI doesn't even refer to those index.ts files.
To add support for a Svelte NodeGUI component, the minimum is to create an React NodeGUI element following the pattern set out in the self-named files like RNComboBox.ts. The methods are:

setProps: Just call the props setter that's defined at the top of the file. That setter internally may call setViewProps at the end of its execution as RNComboBox does here if the underlying NodeGUI component inherits the common view props, which they do if they implement RNWidget (implying that it's visual), but not if they only implement RNComponent (as RNAction does, implying that it's non-visual).
appendInitialChild: Just call appendChild() here. Technically this is a method to allow you to have a special appendChild for the component at the base of a React element hierarchy, but the use-cases are pretty exotic.
appendChild, insertBefore, removeChild: These correspond to the DOM methods of the same name. Either call throwUnsupported here to show that the component doesn't support child elements at all, or call the equivalent NodeGUI APIs for performing each of these DOM operations.

Automating bindings

May I suggest a different approach? Why don't you take the Qt widget API descriptions in computer-readable form, and then use Swig or a custom-made software to generate the bindings, for NodeGUI and each of React/Vue/Svelte NodeGUI?

Automating generating the bindings from Qt all the way to Svelte NodeGUI would of course be the holy grail (and I'll never disregard the idea), but I'll get into the challenges involved that I think are show-stoppers to automation. We actually use automation to a certain extent on Svelte Native and React NativeScript to map NativeScript typings to JSX, but even with that successful tool, we can see that it wouldn't transfer to mapping the runtime APIs to equivalent DOM methods due to the number of exceptional cases and lack of consistency.
I haven't looked into how Atul generates the NodeGUI bindings for the Qt widgets, but I wouldn't be surprised if a certain amount of it is automated. Though as there are various missing Qt APIs, maybe it is all a manual process.
Mapping the Qt widget APIs to DOM methods is the ultimate goal, and sadly I don't think this is realistically possible to automate, because Qt doesn't have a consistent API for managing the element tree.
For example, how would you add a child QWidget to QMainWindow? You'd need to look at the docs to determine that it's setCentralWidget(widget)... unless, of course, the child in question is a QMenuBar, in which case it's more likely that you want to call setMenuBar(menuBar). How would you reverse that operation (e.g. to support HMR or simply for swapping the child in an {#if}{/if} block)? Would you call setCentralWidget(null) and setMenuBar(null)? I've no idea; we'll have to check the docs to see. And in some cases, like in the NativeScript UI runtime, certain operations just like that are simply not reversible as they were only ever designed as imperative APIs rather than for declarative use. I wouldn't be surprised of similar cases in Qt widgets.
Setting attributes is also a pain. You will see various cases in RNView where the setters are not simple cases of calling set[propName](value) but involve spreading the values from an object, or calling imperative APIs. This may be partially due to how NodeGUI maps out those APIs, but again, as with NativeScript, I wouldn't be surprised that plenty of APIs are too inconsistent to map automatically. One obstacle in particular is the existence of APIs like setMenuBar, as mentioned above – it's worded like an attribute setter, but functionally, it adds a child element. Qt doesn't distinguish between attribute accessors and hierarchy-modifying APIs. So I don't see how it could practically be automated.
What Qt needs is a consistent set of APIs for getting/setting attributes and inserting/removing widgets into a hierarchy, such as the DOM model. If that existed, then renderers like React NodeGUI wouldn't need to manually map each widget to consistent APIs. Unfortunately, unless a project like that exists and has been completed, then we're stuck doing things manually.

Hi Jamie, first off, thank you for your very detailed response! I appreciate it.

svelte-nodegui/src/svelte-nodegui.ts

Thanks. That's the list of widgets I was looking at.

I'd say 24 widgets is a good start, to be fair

Indeed, what you and Atul accomplished here is seriously impressive. I love the concept. This is no small feat, and that you two got this done alone, probably not even as full time job, really speaks to your competence. I've written similar frameworks, and I know it's hard, and a lot of work.
What I try to do is also challenging: I would like to implement a mail client on the quality level of Thunderbird, for all 5 major platforms (desktop and mobile). It needs to have similar UI to Outlook and Thunderbird, and be just as fast. You can probably see easily that the widget list above is not even close to sufficient.
I'm looking at https://doc.qt.io/qt-5/widget-classes.html , and a lot of them will be useful, but there are a number that are not yet supported and absolutely necesssary:

TreeView, with columns, capable to scroll 1 million rows without delay or lag
ListView
Toolbar / button
Splitter
Tabs
HTML view (no JS, no network, with data: images)
HTML editor (ditto)
Browser view (full HTML5 browser engine with JS, SVG, CSS etc.)

That's just the start, the absolute minimum. And that's just for the prototype - the final app likely will need more. It's going to take a while to map all these manually, with their entire API respective surface. I will not be able to do that, nor can I ask you to do it.

Qt doesn't have a consistent API for managing the element tree. ...
Would you call setCentralWidget(null) and setMenuBar(null)?

Yes, I see what you mean. Thanks for the concrete example, that helps me to understand the problem. It might be possible to solve that generically, if the generator understands the types, that a <menu> -> QMenu fits to setMenuBar(QMenu), but I concur it's not going to be easy.

Setting attributes is also a pain. ... Qt doesn't distinguish between attribute accessors and hierarchy-modifying APIs.
What Qt needs is a consistent set of APIs for getting/setting attributes

RNComboBox.ts looks very repetetive and straight-forward. Would it be a reasonable approach to create a declarative (e.g. plaintext) list of attributes per widgets, and then generate these setters and getters from that list, instead of manually writing these setters and getters?
Then, as a second step, one could see whether that list could be generated from the Qt header files. The header parser would consider not only the function names, but also their parameter types.
That's just an idea. What do you think?

What I try to do is also challenging: I would like to implement a mail client on a quality and usability level on par with (or better than) Thunderbird or Outlook, for all 5 major platforms (desktop and mobile). You can probably see easily that the widget list above is not even close to sufficient for a project of this nature.

That sounds like a nice fit for a Qt app indeed. I've not seen any prior art on deploying NodeGUI to mobile via Qt for mobile, however, so it's uncharted territory.

I'm looking at https://doc.qt.io/qt-5/widget-classes.html , and a lot of them will be useful, but there are a number that are not yet supported and absolutely necesssary:

True, those are missing from NodeGUI.

It's going to take a while to map all these manually, with their entire API respective surface. I will not be able to do that, nor can I ask you to do it. Hence, my suggestion here.

Indeed, the browser view alone probably has an enormous API surface. Yes, I agree that an automated process for producing bindings from Qt to NodeGUI would be ideal, though I don't have the expertise to help with that.
The mapping of APIs from Qt to NodeGUI is non-trivial and I don't know how realistic it would be to automate it. You have to determine how to marshal the Qt C++ values into equivalent JS abstractions, and also have to handle the memory management. Even doing this manually when trying to add the saveGeometry API, I didn't know what I was doing (I have no expertise in C++) and whether it was the right way to marshal a QByteArray into an equivalent Napi object.
It won't be possible to auto-generate bindings without first creating a way to marshal each and every Qt type into a Napi equivalent. This is an unrealistically large task (on the scale of building NativeScript, but for the Qt runtime instead of iOS/Android), so I think the train stops here, unfortunately.

Yes, I see what you mean. Thanks for the concrete example, that helps me to understand the problem. It might be possible to solve that generically, if the generator understands the types, that a  -> QMenu fits to setMenuBar(QMenu), but I concur it's not going to be easy. And it's going to fail in a number of cases. I can see the problem.

I ran into exactly this when building a React renderer for NativeScript, and there were so many edge cases that I think if we were going to automate the mapping from NodeGUI to React NodeGUI, it would be most prudent to just automatically map as many APIs as possible, but for any case where a QObject is a param, simply write out a stub saying "this API needs to be filled in manually" to be addressed in a post-processing step.
There are enough NodeGUI components still missing from React NodeGUI that there would be some benefit in writing a tool, using ts-morph, probably, to automate some of this. But there's still no way around the issue of mapping Qt to NodeGUI in an automated fashion, which unfortunately is the most important part for supporting the full Qt API surface.

RNComboBox.ts looks very repetetive and straight-forward. Would it be a reasonable approach to create a declarative (e.g. plaintext) list of attributes per widgets, and then generate these setters and getters from that list, instead of manually writing these setters and getters?

I don't know exactly how Atul wrote out the getters and setters, but it may be that he started with a similar process – maybe not automated, but nonetheless quick. With multi-line text editing, the task is pretty small if you're only concerned with doing one component. For a large batch of components, something like the ts-morph idea may have some value.

Then, as a second step, one could see whether that list could be generated from the Qt header files. The header parser would consider not only the function names, but also their parameter types.

Again, this comes back to the issue of needing a tool to marshal values from Qt to NodeGUI in order to be of any use. I suppose at least having the API stubs for contributors to fill in would be handy, though, so that we'd have a proper picture of how many APIs are missing. But that's a discussion to bring up with Atul as it concerns NodeGUI itself.


Fix llvm-symbolizer in CI

Make sure we actually install llvm-symbolizer, so that traces in CI test failures make sense.

Should probably make a test fail in CI to make sure this works

Check this one out from when I tried it on one of my PRs: https://github.com/cloudflare/workerd/actions/runs/10530661974/job/29181058646


bot api types

telegrinder uses schema at https://github.com/ark0f/tg-bot-api to generate types. its super old and not getting updates :c
probably new schema must be applied and *unfortunately* most likely type generator will have to be revised for the found new schema specifications

telegrinder uses schema at https://github.com/ark0f/tg-bot-api to generate types. its super old and not getting updates :c probably new schema must be applied and unfortunately most likely type generator will have to be revised for the found new schema specifications

btw i havent found a single scheme that have full information about enumerations. Therefore there is a proposal that contributors can create enumerations for example in yaml configs.
for example, enumeration ChatMemberStatus:
enum_name: "ChatMemberStatus"
enumerations:
    - administrator
    - banned
    - left
    - member
    - owner
    - restricted
uses:
    - ChatMember.status

I think we need to think more about the syntax for creating enumerations...

lacking enumerations is not that big of a deal.
this one looks frequently updated: https://github.com/PaulSonOfLars/telegram-bot-api-spec/blob/main/api.json
wdyt?

this one looks frequently updated: https://github.com/PaulSonOfLars/telegram-bot-api-spec/blob/main/api.json wdyt?

i think its good


CIV-15716 Lip defendant email for MMT json

JIRA link (if applicable)
https://tools.hmcts.net/jira/browse/CIV-15716
Change description

read email from userDetails field instead of partyEmail for lip defendant

Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[ ] No

https://github.com/hmcts/civil-service/pull/5760/files fixing root cause


feat: add queue information details for devices and jobs

Summary

Add queue depth information for the Aws Devices and queue position information for the submitted jobs.
Add tests and checked for lint issues.

Details and comments

 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.


postInstall: typings install

Hey there!
The script "postinstall": "typings install" creates some trouble when deploying to Heroku.
Why do you need the typings install as a postInstall script? I have created a pull request here to change that... #9. This pull would fix this issue.
The problem is that on Heroku all npm packages are installed from a start so typings isn't installed at the moment when ng2-meta gets installed -> therefore an error is thrown and the application can't be deployed.

Hi,
Thanks for your contribution. Running typings install provides type definitions for ng2-meta's internal dependencies (like Jasmine). The installed type definitions are useful only for those contributing code to ng2-meta - admittedly, a small set of people :)
The switch to prepublish is clever, as, according to the npm docs, it would be executed when the package is published and when this repo is cloned and npm install is called, something that a contributor is likely to do.


Can we prevent rvalue construction of numerics from primitives

To prevent usize a = prim + prim which could overflow in the primitives?

Nope: https://godbolt.org/z/4xTGao56z
Both i = a + a and j = 2 bind to the rvalue constructor.


Behaviour of notifications.

When the app was in the background, then the push notification did not come and as soon as the app was opened, the message pop up appeared on the home page. And as soon as I clicked on the notification icon, 2 notifications appeared simultaneously.
I am getting the notifications only if app is in background and when I click on that push notication it lands on the Home page not in that particaular one.
I just got a transaction notification on iOS but when I clicked on it, it landed on the home page.
And the notification drawer is completely empty.
Also check the time stamp,it is showing "NAN years ago".

Even after reading the notification, the red icon of the bell icon is not getting removed.

-Verified this issue on dev app v1.75(303)


Fix types generation

closes #41

@cometkim, have a look, please

I will
Thanks @eolme

I've seen other plugins use incremental compiler host, but I consider it unstable as I don't know exactly how to use and how it works. have to figure it out later.


Add relevance score for reranker

From now, relevance score does not support at reranker.
So, using reranker in custom pipeline's rank-aware metric is not accurate at all.

We can use this as 'Search new passages or not?' module.
Because it can measure relevancy between new query and existed (already retrieved) passages.
But what if you ask about previous chat and the question itself is not relevant? Umm...


What do the numbers in the bottom right corner of mod icon mean?

CITResewn and OptiGUI both show this.

The mod icon corner label indicates the number of child mods included.

Ah got it, thanks!


Added Stores / Store in LuaBot

/openStore will open a test store.
Added Store option to LuaBot.
Added messaging to chat window for buy/sell events.
Not sure about some of the sounds/floating text.
Need to check to see if any stores sold things with a markup greater than 1.
If some do, then we need to add a markup search on buying items vs just on selling.

Sorry but merging your forceLogout PR created some merge conflicts here.
Once those are resolved this is ready for merge


ZFIN-8468 and ZFIN-8464: Fix bug. Allow deleting a dblink (hotfix)

Fix bug. Allow deleting a dblink from a gene page even if the dblink has no attributions.

Closing as this was added from release-1139


Docs: Explain optional SField magic

Codecov Report

Merging #2134 into develop will decrease coverage by <.01%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           develop    #2134      +/-   ##
===========================================
- Coverage    68.97%   68.97%   -0.01%
===========================================
  Files          684      684
  Lines        50394    50394
===========================================
- Hits         34761    34760       -1
- Misses       15633    15634       +1

Impacted Files
Coverage Δ

src/ripple/server/impl/BaseWSPeer.h
67.5% <0%> (-0.63%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update a92f5b8...8d931a0. Read the comment docs.

Wattyl they think of next?

Merged as cb91d56d07684eb277ef5434b308d6a302b63a9f


Only images are highlighted as changed when adding entire new chapter

In this PR I added an entire new chapter to the built book https://github.com/joelostblom/viz-oer/pull/29. However, in the deploy preview, only the images are highlighted in green as "changed", not the text. I was expecting the text to also be green, but maybe there is some max on how big of a change is marked up?
I'll leave that PR up until you have had time to have a look

Interesting. I think what's happening is:

the images are diffed separately (and independently) from .html pages, so the code is correctly finding new graphics and highlighting them
Our convention for new .html pages is to just colour links pointing to them green, but otherwise leave them alone

But seeing your example, it is a little bit weird. It's hard to reliably apply a style over a whole page (which has its own nested element tree each with their own style overrides). I wonder if just inserting a large top element with green text "This whole page is new" or something like that is the right strategy...

I see, the current convention of not marking up entire pages makes sense, and I think it would be helpful with a banner/message on the top of a file if the entire file is new, as you suggested.


Passing an incorrect operator when querying the REST API returns ALL documents

Link to reproduction
No response
Describe the Bug
Passing an incorrect operator (i.e. an operator not defined in types/constants.ts) does not fail the query -- in fact, it returns all documents in that collection (!).
I would expect the query to fail — given the where it's clear that I'm trying to query the collection and not just specifying random query params.
To Reproduce
Assuming collection has this data in it:
[
   { id: "ABC" },
   { id: "DEF" },
   { id: "GHI" }
]

`https://my.test.cms/api/collection?where[id][equals]=XYZ`
correctly returns zero documents

`https://my.test.cms/api/collection?where[id][equasl]=XYZ`
incorrectly returns _all_ documents

### Payload Version

2.4.0

### Adapters and Plugins

db-mongodb

Hey @rbruels — this is actually expected - we just disregard query parameters that we do not recognize at this time. But, we can update this logic to throw a 400 or similar status code in the future if you provide an operator that does not exist.
I will convert this to a feature request and we will track it accordingly there. Thank you for bringing this up!


Clipping in coverage does not work when coverage is in cache

Context

clip: true in coverage is ignored for cache coverage.
Expected Behavior

As I understand, clip: true in coverage should work the same in cache and source.
Actual Behavior

If the coverage is defined in the cache instead of the source, clipping does not work. When you zoom in/out on a layer with the coverage in the cache, it can be seen how it loads the entire tile which touches the coverage bbox, instead of clipping it.
Possible Fix

I have to admit that I don't know. Perhaps @shimoncohen (from https://github.com/mapproxy/mapproxy/pull/691) has an idea.
Steps to Reproduce

Below is the configuration which I used to test. It also contains examples where multiple sources/caches are combined. My understanding is that the opentopomap_coverage_in_source and opentopomap_coverage_in_cache layers should look the same, and that the opentopomap_combined_from_source and opentopomap_combined_from_cache layers should look the same.
services:
  wmts:
    restful: true
    kvp: true
  demo:

layers:
  - name: opentopomap  # Works as intended
    title: OpenTopoMap
    sources: [ opentopomap_cache ]
  - name: opentopomap_coverage_in_source  # Works as intended
    title: OpenTopoMap Coverage in Source
    sources: [ opentopomap_cache_with_coverage1_in_source ]
  - name: opentopomap_coverage_in_cache  # Does not work as intended ('clip: true' is ignored)
    title: OpenTopoMap Coverage in Cache
    sources: [ opentopomap_cache_with_coverage1_in_cache ]
  - name: opentopomap_combined_from_source # Works as intended
    title: OpenTopoMap Combined from Source
    sources: [ opentopomap_cache_combined_from_source ]
  - name: opentopomap_combined_from_cache # Does not work as intended ('clip: true' and 'transparent: true' are ignored)
    title: OpenTopoMap Combined from Cache
    sources: [ opentopomap_cache_combined_from_cache ]

parts:
  coverages:
    intersection_coverage1: &intersection_coverage1
      clip: true
      intersection:
        - bbox: [ -110, 35, -105, 40 ]
          srs: 'EPSG:4326'
    intersection_coverage2: &intersection_coverage2
      clip: true
      intersection:
        - bbox: [ -100, 35, -95, 40 ]
          srs: 'EPSG:4326'

caches:
  opentopomap_cache:
    disable_storage: true
    grids: [ GLOBAL_WEBMERCATOR ]
    sources: [ opentopomap_source ]
  opentopomap_cache_with_coverage1_in_source:
    disable_storage: true
    grids: [ GLOBAL_WEBMERCATOR ]
    sources: [ opentopomap_source_coverage1 ]
  opentopomap_cache_with_coverage1_in_cache:
    grids: [ GLOBAL_WEBMERCATOR ]
    sources: [ opentopomap_source ]
    cache:
      type: file
      coverage: *intersection_coverage1
  opentopomap_cache_with_coverage2_in_cache:
    grids: [ GLOBAL_WEBMERCATOR ]
    sources: [ opentopomap_source ]
    cache:
      type: file
      coverage: *intersection_coverage2
  opentopomap_cache_combined_from_source:
    grids: [ GLOBAL_WEBMERCATOR ]
    sources: [ opentopomap_source_coverage1, opentopomap_source_coverage2 ]
  opentopomap_cache_combined_from_cache:
    grids: [ GLOBAL_WEBMERCATOR ]
    sources: [ opentopomap_cache_with_coverage1_in_cache, opentopomap_cache_with_coverage2_in_cache ]

sources:
  opentopomap_source:
    type: tile
    url: https://tile.opentopomap.org/%(z)s/%(x)s/%(y)s.png
    grid: GLOBAL_WEBMERCATOR
    transparent: true
  opentopomap_source_coverage1:
    type: tile
    url: https://tile.opentopomap.org/%(z)s/%(x)s/%(y)s.png
    grid: GLOBAL_WEBMERCATOR
    transparent: true
    coverage: *intersection_coverage1
  opentopomap_source_coverage2:
    type: tile
    url: https://tile.opentopomap.org/%(z)s/%(x)s/%(y)s.png
    grid: GLOBAL_WEBMERCATOR
    transparent: true
    coverage: *intersection_coverage2

globals:
  cache:
    meta_size: [1, 1]
    meta_buffer: 0
    base_dir: "/tmp/mapproxy-cache-coverage-test"

Context

I would like to move the coverage from the source to the cache (@shimoncohen has some good explanations in https://github.com/mapproxy/mapproxy/pull/691 as to why this is sometimes preferred).
Your Environment

Version used: Installed from master branch on November 29 2023.
Environment name and version (e.g. Python 2.7.5 with mod_wsgi 4.5.9): Python 3.10
Server type and version:
Operating System and version: Ubuntu 22.04

Hi @JacobJeppesen, I have looked into this issue. It seems that when handling a tile source, the clipping is checked for each tile before the response. I missed this when implementing #691.
I think I have a fix for this and will submit a PR.

@JacobJeppesen Glad to hear this is not an issue anymore :)


add Abel Aoun @bzah to infomgmt_contributors.md

Hi @JonathanGregory @bzah
I'm happy to approve this pull request - thank you for the contribution to the standard name table!


Fix http1 connection pool test.

Signed-off-by: John Plevyak<EMAIL_ADDRESS>For an explanation of how to fill out the fields, please see the relevant section
in PULL_REQUESTS.md
Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
[Optional Fixes #Issue]
[Optional Deprecated:]

@silentdai @PiotrSikora @crazyxy could one of you give this a review?

/lgtm

Has this been merged to upstream envoy?

/approve


Feature request: display album tags and price from collection page

I am not sure if the Bandcamp API supports this, but it would convenient if one could also view the genre and price for each album while browsing a fan's collection page.

@sergioenriquez, hello!
That's a good idea, I'll look into a solution and let you know if I find anything.
Thank you for your activity!

@sergioenriquez I looked at the Bandcamp documentation, unfortunately, they do not provide such functionality.


Use official generated proto classes

TensorFlow now publishes a library containing the generated proto classes.   The FTF library should take a dependency on that in lieu of the generated classes it now contains.
https://search.maven.org/#search|ga|1|a%3A"proto"
http://javadoc.io/doc/org.tensorflow/proto/

I have most of this done.


refactor(build): move project from CRA/Webpack -> Plain React/Vite

Description
This draft PR removes the create react app dependencies as well as webpack and instead uses a plain react install and Vite build system. In order to move to Vite there were several dependencies that needed to be updated. In particular, React and Material UI. There are several smaller issues with styles and env variables that need to be worked out before merging as well.
Does this PR introduce a breaking change?

[x] Yes
[ ] No

Does this PR fix an open issue?

[ ] Yes
[x] No

Things on the build side are looking good. I've tested:

[x] docker build .
[x] npm run dev
[x]  npm run deploy (checkout personal deployment here)

and it all looks good! Just waiting now for the final aesthetic cleanups reported by @waldenraines and then I think we should be good to go. Great job dylan!


increase NUM_MINIONS to 3 for e2e + jenkins by default.

Note this is going to increase our test footprint by 50%

@thockin
RE: https://github.com/GoogleCloudPlatform/kubernetes/issues/10899

LGTM

LGTM. :-)

Note that we need to be careful not to bump into any quota limits in any of our GCP projects. (I can't imagine an additional minion will break anything, but I'll double-check to verify.)


sample packing with resume_from_checkpoint

Please check that this issue hasn't been reported before.

[X] I searched previous Bug Reports didn't find any similar reports.

Expected Behavior
resume should step over the number of batches already trained and resume from the same point in the data
Current behaviour
fails to load due to the MultipackDataloader not having a batch sampler, Setting the batch sampler to be the same as the sampler results in an issue in acclerate.data_loader reloading the dataset into a new dataloader in an attempt to skip over the batches
    dataloader = DataLoader(dataset, batch_sampler=new_batch_sampler, **kwargs)
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/torch/utils/data/dataloader.py", line 245, in __init__
    raise ValueError('prefetch_factor option could only be specified in multiprocessing.'
ValueError: prefetch_factor option could only be specified in multiprocessing.let num_workers > 0 to enable multiprocessing, otherwise set prefetch_factor to None.

Steps to reproduce
see above
Possible solution
need to figure out a way to refactor the current dataloader either as a better sampler or extend the real torch dataloader
Which Operating Systems are you using?

[ ] Android
[ ] iPhone/iPad
[X] Linux
[ ] macOS
[ ] Windows

Python Version
3.10
axolotl branch-commit
main
Acknowledgements

[X] My issue title is concise, descriptive, and in title casing.
[X] I have searched the existing issues to make sure this bug has not been reported yet.
[X] I am using the latest version of axolotl.
[X] I have provided enough information for the maintainers to reproduce and diagnose the issue.

I think we can convert the MultipackDataloader to an iterabledataset wrapper around another dataset. Not sure how best to handle the sampler though

hit this issue as well. seeking patch......SOS

my backtrace
[2023-08-16 13:21:31,565] [INFO] [axolotl.utils.dataloader._len_est:250] [PID:2497] packing_efficiency_estimate: 0.96 total_num_tokens per device: 220152720
Traceback (most recent call last):
  File "/workspace/axolotl/scripts/finetune.py", line 315, in <module>
    fire.Fire(train)
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/fire/core.py", line 141, in Fire
    component_trace = _Fire(component, args, parsed_flag_args, context, name)
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/fire/core.py", line 475, in _Fire
    component, remaining_args = _CallAndUpdateTrace(
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/fire/core.py", line 691, in _CallAndUpdateTrace
    component = fn(*varargs, **kwargs)
  File "/workspace/axolotl/scripts/finetune.py", line 300, in train
    trainer.train(resume_from_checkpoint=resume_from_checkpoint)
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/transformers/trainer.py", line 1539, in train
    return inner_training_loop(
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/transformers/trainer.py", line 1793, in _inner_training_loop
    epoch_iterator = skip_first_batches(epoch_iterator, steps_trained_in_current_epoch)
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/accelerate/data_loader.py", line 871, in skip_first_batches
    batch_sampler = dataloader.sampler if sampler_is_batch_sampler else dataloader.batch_sampler
AttributeError: 'MultipackDistributedDataloader' object has no attribute 'batch_sampler'

this issue is pending weeks

my backtrace
[2023-08-16 13:21:31,565] [INFO] [axolotl.utils.dataloader._len_est:250] [PID:2497] packing_efficiency_estimate: 0.96 total_num_tokens per device: 220152720
Traceback (most recent call last):
  File "/workspace/axolotl/scripts/finetune.py", line 315, in <module>
    fire.Fire(train)
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/fire/core.py", line 141, in Fire
    component_trace = _Fire(component, args, parsed_flag_args, context, name)
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/fire/core.py", line 475, in _Fire
    component, remaining_args = _CallAndUpdateTrace(
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/fire/core.py", line 691, in _CallAndUpdateTrace
    component = fn(*varargs, **kwargs)
  File "/workspace/axolotl/scripts/finetune.py", line 300, in train
    trainer.train(resume_from_checkpoint=resume_from_checkpoint)
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/transformers/trainer.py", line 1539, in train
    return inner_training_loop(
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/transformers/trainer.py", line 1793, in _inner_training_loop
    epoch_iterator = skip_first_batches(epoch_iterator, steps_trained_in_current_epoch)
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/accelerate/data_loader.py", line 871, in skip_first_batches
    batch_sampler = dataloader.sampler if sampler_is_batch_sampler else dataloader.batch_sampler
AttributeError: 'MultipackDistributedDataloader' object has no attribute 'batch_sampler'

I met the same problem. Do you solve it ?

Any updates on this?

This one bit me earlier. As a stopgap maybe warn the user they won't be able to resume when using sample packing?

this also impacted me, so I can't use sample packing because I need to be able to resume from checkpoint

One quick and dirty way to solve this may be to save the current epoch and index of the internal_batch_generator in the MultipackDataloader for every X steps. You can quickly resume from this with some custom logic.

@ehartford @winglian Unless I am missing something, here is a more thorough idea of how to implement this.
This is quite a large task.

In the MultipackDistributedDataloader, save every save_steps=10 as dataloader_state.json.

Modify worker: for curr_sample_index, sample in enumerate(self._internal_batch_generator())
{"curr_epoch": 1, "curr_sample_index": 92}

Modify/Extend AxolotlTrainer to initialize self.train_dataloader and self.eval_dataloader

get_train_dataloader
get_eval_dataloader

Implement a fast_forward_to_index in MultipackDistributedDataloader that has similar functionality to _worker but where it just discards every sample up until the index.

Reference the self.train_dataloader and self.eval_dataloader in the AxolotlTrainer and call the fast_forward_to_index.

Upon a crash/OOM/whatever failure, you can then resume the training by using the dataloader_state.json or by specifying the epoch/index to continue from.

I have offered a $1,000 bounty to the person who fixes this bug.


WIP: Fixes #242 by removing type parameter from Routing.Rules

Signed-off-by: Laird Nelson<EMAIL_ADDRESS>This PR is an alternative to #247.  It fixes #242 by removing the type parameter from Routing.Rules altogether.  Only one of these two PRs (if any) should be merged.

I prefer this solution.

Merging shortly.


Collect and combine backend, browser test coverage

Closes #24. I think. This required a bit of hacking, but works really well. First, the most straightforward way to instrument the code was to bundle the app and test code using browserify and the browserify-istanbul transform.
However, this meant creating a new landing page for the coverage tests, public/tests/coverage.html, to faciliate this. This page is used only for ./go test --coverage, which now automatically collects browser coverage; the existing public/tests/index.html is used for ./go test browser and for live loading by ./go serve --test.
In scripts/test, coverage collection and report generation (after argument parsing) is now encapsulated within _test_generate_coverage_report. The nyc command now writes to the .coverage directory rather than the default .nyc_output. It also doesn't generate reports right away anymore. It runs (and must be run) before ./go test browser to generate .coverage/browser.json, which is defined in the afterEnd for PhantomJS and mocha-phantomjs from tests/helpers/phantomjs.js.
Finally, we run istanbul report to combine the output of nyc and ./go test browser into LCOV and HTML reports, which are then processed the same as before.
There's probably some cleanup to be done on the scripts, as well as some common behavior to extract into a go-script-bash module. The bottom line is that it's now easy to generate combined coverage reports while retaining the ability to do live testing and development and the browser.

Coverage decreased (-0.08%) to 98.115% when pulling aa7507cd60edcb072fb8ae9cca1eb3a807e985a3 on coverage into b9fa96e0bf4f81c200c50bbb262db7bb4356e542 on master.

Coverage decreased (-0.08%) to 98.115% when pulling ab07b785b9c605007f03674f9eeb16f2142ebc61 on coverage into b9fa96e0bf4f81c200c50bbb262db7bb4356e542 on master.

Coverage decreased (-0.08%) to 98.115% when pulling aacccc6c8a5c3bab6c119eeb7ab98c16cb943a2c on coverage into b9fa96e0bf4f81c200c50bbb262db7bb4356e542 on master.

Coverage decreased (-0.08%) to 98.115% when pulling 5502626a23a7bf03859dbf5eda3461ed96d54554 on coverage into b9fa96e0bf4f81c200c50bbb262db7bb4356e542 on master.


Changing the liveness and readiness probe initial delay.

The default chart values provided values for liveness and readiness probes that seemed to be shorter than the actual amount of time required for phpbb to start up once the database provision had completed. I tried first just adjusting the readiness probe, as that failed first. Initial Delay on liveness also needed to be increased.

Welcome to the Bitnami phpbb container
Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-phpbb
Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-phpbb/issues
Send us your feedback at<EMAIL_ADDRESS>nami    INFO  Initializing apache
apache  INFO  ==> Patching httpoxy...
nami    INFO  apache successfully initialized
nami    INFO  Initializing php
nami    INFO  php successfully initialized
nami    INFO  Initializing mysql-client
nami    INFO  mysql-client successfully initialized
nami    INFO  Initializing phpbb
mysql-c INFO  Trying to connect to MySQL server
mysql-c INFO  Found MySQL server listening at d8990d2f-8490-4985-90a0-ed6b08ceec3c.mysql.database.azure.com:3306
mysql-c INFO  MySQL server listening and working at d8990d2f-8490-4985-90a0-ed6b08ceec3c.mysql.database.azure.com:3306
phpbb   INFO  Configuring the application. Please be patient, it can take several minutes to finish.
Without changing these values, the container would always restart while in this state.
I attempted to use 300 for both values and still had the same issue.  This seems less ideal, but makes the chart work with MK.

It would be better to only increase the initial delay on liveness. Failing readiness probes are only going to stop the pod from becoming an endpoint-- they won't cause the container to be restarted. And that's correct behavior anyway.

@krancour reverted the readiness initial delay.


wireframe for "Show lifecycle status for API"

#76

wireframes added to issue #76

This is probably nitpicking, but maybe it is best to show the API cards in #76 with the in the order that actually follows the API lifecycle: design, development, testing, production, deprecated.
Some of you wireframes contain other words for the tags than the ones mentioned in the the issue, e.g. Design and prototyping. Please modify.
Like the idea of showing the time when the status was changed.

I'm not sure there is a need to filter according to visibility setting. That has not been requested for APIKA.

@bajiat have an open question: If API owner selects any of the statuses apart from "Undefined" would it be possible for reselecting that status anymore? or once you have selected any of the predefined status, the dropmenu should no longer show "Undefined" tag?

@Nazarah: The confirmed list for lifecycle status is design, development, testing, production, deprecated. Please modify wireframes accordingly

@bajiat changes have been made to the wireframes. They are added in the main issue #76


Error building turtlebot3 repositories

ISSUE TEMPLATE ver. 0.4.0

Which TurtleBot3 platform do you use?

[X ] Burger
[ ] Waffle
[ ] Waffle Pi

Which ROS is working with TurtleBot3?

[ ] ROS 1 Kinetic Kame
[ ] ROS 1 Melodic Morenia
[ ] ROS 1 Noetic Ninjemys
[ ] ROS 2 Dashing Diademata
[ ] ROS 2 Eloquent Elusor
[ X] ROS 2 Foxy Fitzroy
[ ] etc (Please specify your ROS Version here)

Which SBC(Single Board Computer) is working on TurtleBot3?

[ ] Intel Joule 570x
[ ] Raspberry Pi 3B+
[ ] Raspberry Pi 4
[ ] etc (Please specify your SBC here)

Which OS you installed on SBC?

[ ] Raspbian distributed by ROBOTIS
[ ] Ubuntu MATE (16.04/18.04/20.04)
[ X] Ubuntu preinstalled server (18.04/20.04)
[ ] etc (Please specify your OS here)

Which OS you installed on Remote PC?

[ ] Ubuntu 16.04 LTS (Xenial Xerus)
[ ] Ubuntu 18.04 LTS (Bionic Beaver)
[ X] Ubuntu 20.04 LTS (Focal Fossa)
[ ] Windows 10
[ ] MAC OS X (Specify version)
[ ] etc (Please specify your OS here)

Specify the software and firmware version(Can be found from Bringup messages)

Software version: []
Firmware version: []

Specify the commands or instructions to reproduce the issue.

colcon build

Copy and Paste the error messages on terminal.

/home/user/dev_ws/src/turtlebot3/turtlebot3_node/src/odometry.cpp: In constructor ‘robotis::turtlebot3::Odometry::Odometry(std::shared_ptrrclcpp::Node&, double, double)’:
/home/user/dev_ws/src/turtlebot3/turtlebot3_node/src/odometry.cpp:39:58: error: no matching function for call to ‘rclcpp::Node::declare_parameterstd::string(const char [18])’
39 |   nh_->declare_parameterstd::string("odometry.frame_id");

Please describe the issue in detail.

When trying to build the turtlebot3 repository, the above error appeared . This is happening on both ros2 and ros2 devel branches

Hi @denesh-globotix
When building from the source, you should use a specific branch for example foxy-devel for Foxy.
ros2 and ros2-devel are reserved for ROS2 Rolling update for the upcoming ROS2 distribution.
Thank you.

We have assembled a TF team to address TurtleBot3 issues and are actively working on resolutions. Please note that we do not support EOL (End-of-Life) ROS versions; our support currently extends to Noetic and Humble versions. We kindly ask that you try again with the latest version. If the same issue arises, please feel free to resubmit it, and we will address it promptly.


Take picture

Add support for taking new pictures.
Make it an optional subspec?

+1 i want this feature too

The stuff I'm working on now (see WIP pull request) will make camera integration easier to implement :)

I've began implementation of this feature.
You can follow the progress here: https://github.com/mikaoj/BSImagePicker/pull/34


onValueChanged characteristic problem

_device.onValueChanged(characteristic).listen((List<int> reading){
  //reading length is 1
  ...
}

When listening for values changed, I'm only getting the length of 1 on the list I'm receiving, but the device is sending me a list with the length of 8.
I'm receiving that "list" but 1 value at a time, so if the device is sending me a list with <3, 10, 50, 40, 1, 70 , 40, 10>
I receive on the onvaluechanged a list with the value 3, and then a list with the value 10, and then 50...
which delays the data, the device is sending me a new list 10 times a second, so you can imagine, reading one value at a time..

could you try:
_device.onValueChanged(characteristic).listen((value){
check list values here rather than casting the return type in listen
})


feature/#790: map scale merged into floating point zoom

This is just a teaser, there are things to fix. For instance, the pinch gesture center is not yet taking into consideration (zooming in or out scrolls the map to the bottom right).
All comments are welcomed.
Impacted classes:

CompassOverlay: used the new Canvas related Matrix methods of Projection
CopyrightOverlay: used the new Canvas related Matrix methods of Projection
LinearRing: integrated the fact that there's no map scale anymore / should be considered as equal to 1
MapController

feature-related: edited zoomToFixing and onAnimationUpdate; simplified onAnimationEnd
refactoring: removed members mZoomInAnimation and mZoomOutAnimation; simplified methods zoomIn, zoomInFixing, zoomOut, zoomOutFixing

MapView

feature-related: removed members ZOOM_SENSITIVITY, ZOOM_LOG_BASE_INV, mTargetZoomLevel and mMultiTouchScale; deprecated methods getZoomLevel(final boolean aPending), zoomIn, zoomOut and getMapScale; simplified canZoomIn and canZoomOut; optimized dispatchDraw using the new Canvas related Matrix methods of Projection; created new methods startAnimation, setMultiTouchScale and new member mStartAnimationZoom; impacted pinch gesture methods getPositionAndScale, selectObject and setPositionAndScale
refactoring: removed members sMotionEventTransformMethod and mMercatorPoint; deprecated methods getLatitudeSpan, getLongitudeSpan and getBoundingBoxE6; simplified method rotateTouchEvent

MinimapOverlay: removed the "display only when not animating" restriction
Projection

feature-related: removed member float mMultiTouchScale; removed parameter pScale from constructor; removed scale operations from matrices; optimized the computation of mCurrentCenter; added methods save and restore that apply the matrices to canvas only if necessary.
refactoring: renamed member as mWrapEnabled; simplified the initialization of mScreenRectProjection; added generic method apply that apply a Matrix to a Point

ScaleBarOverlay: used the new Canvas related Matrix methods of Projection
ZoomButtonsOverlay: used the new Canvas related Matrix methods of Projection; restricted the zoom action to a ACTION_UP event

WOW, this is fantastic! Working absolutely flawlessly as far as I can see. In debug mode I still get the 'scaled' tags written on the tiles, but that's probably only a logging issue. Thanks!

@secaw Thank you for your comment! I'm about to deliver the last fixes (regarding the map centering); I'm glad I finally understood the way the pinch gesture is supposed to work.
For the record, the idea is that:

at the start of the pinch gesture, the pixel in the middle of your 2 fingers is kept
this pixel corresponds to geo coordinates
when you scale/rotate/scroll during the pinch gesture, the pixel in the middle of your 2 fingers of course moves, but must match the same initial geo coordinates; therefore you must apply additional offsets to the Projection

I hope this is the final version. I fixed everything I wanted to fix. But I guess you guys will find bugs.
Btw I forgot to add my push comments; here they are:
Impacted classes:

BoundingBox: added a set method because coordinates are not final anymore
MapController: adapted the code to the new "MultiTouchScale" MapView methods; fixed a bug in zoomInFixing; gently refactored
MapView: refactored the "MultiTouchScale" members (renamed mMultiTouchScaleInitPoint and created mMultiTouchScaleGeoPoint and mMultiTouchScaleCurrentPoint); adjusted the Projection in getProjection; moved bounding box code to Projection; adapted pinch gesture methods getPositionAndScale, setPositionAndScale and selectObject; created methods resetMultiTouchScale, setMultiTouchScaleInitPoint and setMultiTouchScaleCurrentPoint in order to manage the MultiTouchScale history; gently refactored
Projection: enabled on-the-fly adjustments by setting members (mOffsetX, mOffsetY) as non final anymore; removed now useless member mScaleMatrix and useles method scalePoint; removed MultiTouchScalePoint from constructor; added method refresh in order to take into account the possible adjutments; created an adjustOffsets method dedicated to ensuring that a given GeoPoint projects into a given pixel; moved code from MapView dedicated to ensuring that the MapView respects a given bounding box

Still little things to fix, as the code doesn't pass the unit tests...

@spyhunter99 I believe there's something to fix in the travis process: could you please have a look at it?
Seems to be a problem too for @secaw's #804.

Travis is a vm with avd in it.  Unfortunately none of the x86 avds will work and the arm avds are slow and often unresponsive in this environment the fix is to just restart the jobs

Just pulled this branch and hit a test failure

org.osmdroid.views.OpenStreetMapViewTest > test_toMapPixels_0_0[Custom Phone - 6.0.0 - API 23 - 768x1280 - 6.0] FAILED
        junit.framework.AssertionFailedError: the computed center of the map is in the pixel center of the map (Y)(zoom=0.09663273555239438,center=-44.75279291077021,-92.54294906214929,0.0) expected:<568.0> but was:<18.0>
        at junit.framework.Assert.fail(Assert.java:50)
                                                         :OpenStreetMapViewer:connectedDebugAndroidTest FAILED

@spyhunter99 Very strange...
I just added the following line to OpenStreetMapViewTest.test_toMapPixels_0_0(), and the test passed:
checkCenter(0.09663273555239438, new GeoPoint(-44.75279291077021,-92.54294906214929));

Could you please check that you included commit 37cb615 in your pull?

@monsieurtanuki i'm getting the same failure, intermittently on master so probably not related

@spyhunter99 thanks for the merge!


Compiler ignores Code in Views

AL Extension Version: 3.0.126610
Server Version: 14.0.29530

At the Moment you could write Code to views, but the Compiler ignores it. I wanted to add some Code to one field of a page.
Unfortunately I did not add the code directly on the page extension but in a view. It took me some time to find out that my code is in the wrong place. The code in the views is also not evaluated correctly by the compiler. As long as the code is syntactically correct I can write anything. The functions from my example do not exist and I can compile anyway.
AL Code Example
            view(Test)
            {
                layout
                {

                    modify("Phone No.")
                    {
                        trigger OnBeforeValidate()
                        begin
                            this;
                            code;
                            shouldnt;
                            compile;
                        end;
                    }
                }
            }

Hi @PatrickGrabensteiner you should not be able to write any code in views. In general, the compiler is validating it, but it seems that we missed the scenario where you are modifying a trigger. In that case you should get an error diagnostic reported on the OnBeforeValidate. We will fix this.

The fix for this issue has been checked in to the master branch. It will be available in the bcinsider.azurecr.io/bcsandbox-master Docker image starting from platform build number 32303.
If you don’t have access to these images you need to become part of the Ready2Go program: aka.ms/readytogo
For more details on code branches and docker images please read:
https://blogs.msdn.microsoft.com/nav/2018/05/03/al-developer-previews-multiple-releases-and-github/
https://blogs.msdn.microsoft.com/freddyk/2018/04/16/which-docker-image-is-the-right-for-you/


about AttributeError: 'ColorVisuals' object has no attribute 'crc'

When i use this to test the environment, it always send me the message that AttributeError: 'ColorVisuals' object has no attribute 'crc', So what's the reason, thanks!

Can you show us the executing environment and detailed log?

The original bug is:
D:\Anaconda\envs\paddlepaddle\lib\site-packages\trimesh\parent.py:94: DeprecationWarning: geometry.md5()is deprecated and will be removed in October 2023: replace withgeometry.hash()orhash(geometry)`
DeprecationWarning)
Traceback (most recent call last):
File "D:/Desktop/PARL_develop_examples_tutorials (1)/examples/parl2_dygraph_new/lesson5/homework/ddpg_quadrotor/train.py", line 184, in
main()
File "D:/Desktop/PARL_develop_examples_tutorials (1)/examples/parl2_dygraph_new/lesson5/homework/ddpg_quadrotor/train.py", line 163, in main
agent, env, EVAL_EPISODES, render=True)
File "D:/Desktop/PARL_develop_examples_tutorials (1)/examples/parl2_dygraph_new/lesson5/homework/ddpg_quadrotor/train.py", line 122, in run_evaluate_episodes
env.render()
File "D:/Desktop/PARL_develop_examples_tutorials (1)/examples/parl2_dygraph_new/lesson5/homework/ddpg_quadrotor/train.py", line 59, in render
self.env.render()
File "D:\Anaconda\envs\paddlepaddle\lib\site-packages\rlschool\quadrotor\env.py", line 169, in render
z_offset=self.z_offset)
File "D:\Anaconda\envs\paddlepaddle\lib\site-packages\rlschool\quadrotor\render.py", line 494, in init
debug_mode=debug_mode)
File "D:\Anaconda\envs\paddlepaddle\lib\site-packages\rlschool\quadrotor\render.py", line 117, in init
self._initialize(init_drone_z)
File "D:\Anaconda\envs\paddlepaddle\lib\site-packages\rlschool\quadrotor\render.py", line 130, in _initialize
self._add_drone()
File "D:\Anaconda\envs\paddlepaddle\lib\site-packages\rlschool\quadrotor\render.py", line 152, in _add_drone
if geometry_hash(geom) == self.drone_vertex_list_hash:
File "D:\Anaconda\envs\paddlepaddle\lib\site-packages\rlschool\quadrotor\utils.py", line 113, in geometry_hash
md5 += str(geometry.visual.crc())
AttributeError: 'ColorVisuals' object has no attribute 'crc'

Process finished with exit code 1

The error fragment code is shown below：
def geometry_hash(geometry):

Get an MD5 for a geometry object

Parameters
------------
geometry : object

Returns
------------
MD5 : str
"""
if hasattr(geometry, 'md5'):
    # for most of our trimesh objects
    md5 = geometry.md5()
elif hasattr(geometry, 'tostring'):
    # for unwrapped ndarray objects
    md5 = str(hash(geometry.tostring()))

if hasattr(geometry, 'visual'):
    # if visual properties are defined
    **md5 += str(geometry.crc()) //修改后的，原始为geometry.visual.crc()**
return md5

My environment is :
Paddle version: 2.2.0  Paddle With CUDA: False  OS: Windows 10  Python version: 3.7.13  CUDA version: None  cuDNN version: None Nvidia driver version: 517.48

@thisisbaiy It looks like the new version of trimesh library uses different geometry APIs and raises this error. Please consider downgrading it and checking the compatibility.

I found similar issues in https://github.com/PaddlePaddle/MetaGym/issues/64
It can be solved by
pip install trimesh==3.2.39, colour==0.1.5
It can actually solved by
pip install metagym[quadrotor]


feature-array Add array function array_popback

Remove the last element from array.
mysql> select array_popback(['test', NULL, 'value']);
+-----------------------------------------------------+
| array_popback(ARRAY('test', NULL, 'value')) |
+-----------------------------------------------------+
| [test, NULL]                                        |
+-----------------------------------------------------+

Proposed changes
Issue Number: close #xxx
Problem summary
Describe your changes.
Checklist(Required)

Does it affect the original behavior:

[ ] Yes
[x] No
[ ] I don't know

Has unit tests been added:

[ ] Yes
[ ] No
[x] No Need

Has document been added or modified:

[x] Yes
[ ] No
[ ] No Need

Does it need to update dependencies:

[ ] Yes
[x] No

Are there any changes that cannot be rolled back:

[ ] Yes (If Yes, please explain WHY)
[x] No

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

@cambyzju  @xy720  could you plz review this PR ?

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 39.59 seconds
load time: 574 seconds
storage size:<PHONE_NUMBER>4 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20221028061759_clickbench_pr_35185.html

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 39.27 seconds
load time: 634 seconds
storage size:<PHONE_NUMBER>0 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20221028064028_clickbench_pr_35204.html

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 38.39 seconds
load time: 560 seconds
storage size:<PHONE_NUMBER>5 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20221028100733_clickbench_pr_35310.html

rebased

It seems that P1 regression is failed, please rebase master.

rebased

@xy720 lets merge this PR?


Recommendations for folks who use webhooks

Description
We've had a recent API use-case request to be able to monitor the status of a generated invoice to see when it is paid (@john-magill shared this flow in #1239).
We currently have a graphql subscription for this that we use in the galoy-pay repo (see here), which requires being able to use websockets wherever the solution is being deployed.
There are some cases though where setting up a ws/wss connection is tricky, for example with serverless NextJS apps.
Are we aware of any potential solutions to this specific need?

as far as I remember we use WS as transport protocol for subscriptions, even if you check our test client use ws https://github.com/GaloyMoney/galoy/blob/main/test/helpers/apollo-client.ts#L55
Not sure if I am understanding correctly but they dont need an api key.. or will we add/remove validation filters for that cases?
Having a subscription (ws connection) for each invoice is not a good idea because they can have hundreds of clients.
setting up a ws/wss connection is tricky, for example with serverless NextJS apps. -> serverless is not a correct approach if they plan to use persistent connections (like ws)

Solution
probably webhooks would be a good solution for this case. The easiest way to implement it would be:

User request an invoice (on behalf) with metadata (including a 'callback' field)
When trigger has an update for the invoice we check if its metadata includes a callback and we post the response to that endpoint
User receives the POST request (this can be a serverless implementation)
With the hash, the user query the transaction status (we cant trust in a post request) and validate the final status

the advantage with this approach is that we can implement it in the same metadata PR and we only have to do a small change in trigger invoice handler (fire and forget post without additional/external services and/or pods).

We don't plan on ever having to use ws so we're trying to avoid that. Webhooks would definitely be the ideal solution here.
Let me know if you need more info from me, or need me to test anything.
Thanks!

discussed with @john-magill some days ago.
having a webhook per invoice on the current non auth api is not ideal. because an attacker could use it to call any url repeatedly (create a 1 sat invoice, pay it, our server will call the webhook, repeat).
I think one way to go would be to have an entity in the system call partner that would have some privilege.
one of them could be to have a webhook called (the one register for the partner) whenever an invoice the partner has generated is being paid.
another example of an API a partner could have is the idea of being able to having the partner being able to create an account on behalf of the end user. Mike from Oshi suggested this would be a great API for them to have: they meet a merchant, Oshi initializes a client account creation for the merchant (merchant receives an email that he needs to confirm). from here, Oshi can start creating invoice on behalf of the merchant. the merchant later complete his account creation process.

having a webhook per invoice on the current non auth api is not ideal. because an attacker could use it to call any url repeatedly (create a 1 sat invoice, pay it, our server will call the webhook, repeat).

one way to prevent this attack vector would be to have a list of allowlist for domains

we now have a webhooks. there are more work needed for some cases on the webhook side but I'll create another issue for it,


Consider using binary (KiB, MiB) format by default.

It just makes more sense :moyai:, and it is the behavior of ls -lh, free -h, du -h.

It's certainly common to use the binary variants on all platforms I know that aren't Apple.
So I think on Apple platforms the behaviour should stay as it is, and everywhere else it can change to using binary formats by default.


Tflite opengles delegate gives inaccurate result

Please make sure that this is a bug. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:bug_template
System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): YES
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 16.04
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: Internal Android 8.1 board
TensorFlow installed from (source or binary): source
TensorFlow version (use command below): 1.13.1
Python version: 2.7
Bazel version (if compiling from source): 0.22.0
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version:
GPU model and memory: Mali-T864 GPU

You can collect some of this information using our environment capture
script
You can also obtain the TensorFlow version with: 1. TF 1.0: python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)" 2. TF 2.0: python -c "import tensorflow as tf; print(tf.version.GIT_VERSION, tf.version.VERSION)"
Describe the current behavior
I wrote a simple demo using tflite opengles delegate to run deeplab models from model zoo.
I have tried your hosted model deeplabv3_mv2_257_gpu.tflite, It works perfect on my device on CPU and Opengles delegate.
However, when I tried the deeplab mode with xception65 , The tflite perform differently on CPU and Opengles delegate. My input layer is sub_7, output layer is ResizeBilinear_3.
Here is my result:
test image:

result from CPU (correct):

result from opengles delegate:

I believed that this issue is related to the operations(BATCH_TO_SPACE_ND, SPACE_TO_BATCH_ND)  that opengles not supporting thus fallback to CPU. Another issue of mine described more detail.
Flatten the unsupported ops using graph_transforms also failed. It gives me the same inaccurate result or shows message like:
INFO: Initialized TensorFlow Lite runtime. INFO: Created TensorFlow Lite delegate for GPU. ERROR: TfLiteGpuDelegate Prepare: Program is not properly linked: L0005 The number of compute uniform components (1261) is greater than the maximum number allowed (1024). ERROR: Node number 199 (TfLiteGpuDelegate) failed to prepare. ERROR: Node number 199 (TfLiteGpuDelegate) failed to prepare.
Describe the expected behavior
all models work as good as your hosted model
Code to reproduce the issue
Provide a reproducible test case that is the bare minimum necessary to generate the problem.
Other info / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached.

I wrote a simple demo using tflite opengles delegate to run deeplab models from model zoo.

Please attach your code.

Demo code (some less important functions are omitted):
`int main(int argc, char** argv)
{
std::cout << "tflite_opengl_demo Start!" << std::endl;
std::string path_model;
std::string path_img;
std::string path_label;
std::string mode;
if (argc != 10)
{
LOG(ERROR) << "Invalid arguments. Exactly 9 arguments required.";
LOG(ERROR) << "path to model";
LOG(ERROR) << "path to image";
LOG(ERROR) << "path to label";
LOG(ERROR) << "mode(opengl/nnapi/cpu)";
LOG(ERROR) << "graph image mean";
LOG(ERROR) << "graph image std";
LOG(ERROR) << "input width";
LOG(ERROR) << "input height";
LOG(ERROR) << "num of class";
return 1;

}
path_model = argv[1];
path_img = argv[2];
path_label = argv[3];
mode = argv[4];
float graph_image_mean = std::stof(argv[5]);
float graph_image_std = std::stof(argv[6]);;
int input_tensor_width = std::stoi(argv[7]);;
int input_tensor_height = std::stoi(argv[8]);;
const int input_tensor_channels = 3;
int graph_num_class = std::stoi(argv[9]);;
const cv::Size net_input_image_size = cv::Size(input_tensor_width,input_tensor_height);
cv::Mat image = cv::imread( path_img, cv::IMREAD_COLOR);
if (image.empty()){
LOG(ERROR) << "Load image file failed";
return -1;
}
cv::Mat target_image = image.clone();//input
int img_width = image.size().width;
int img_height = image.size().height;
float ratio_x = 1.0 * img_width / net_input_image_size.width;
float ratio_y = 1.0 * img_height / net_input_image_size.height;
float max_ratio = std::max(ratio_x, ratio_y);
cv::Size input_tensor_size = cv::Size( int(img_width / max_ratio), int(img_height / max_ratio));
std::cout << "Original image size: " << image.size() << " resize to:" << input_tensor_size << std::endl;
cv::resize(target_image, target_image, input_tensor_size, 0, 0, CV_INTER_NN);
cv::cvtColor(target_image, target_image, cv::COLOR_BGR2RGB);
cv::Mat segmentation_img;
////////
// Set up interpreter.
model = tflite::FlatBufferModel::BuildFromFile(path_model.c_str());
tflite::ops::builtin::BuiltinOpResolver op_resolver;
tflite::InterpreterBuilder(*model, op_resolver)(&interpreter);
interpreter->SetAllowFp16PrecisionForFp32(true);
if ( mode == "opengl"){
auto* delegate = TfLiteGpuDelegateCreate(/options=/nullptr);
if (interpreter->ModifyGraphWithDelegate(delegate) != kTfLiteOk) return 0;
}
if ( mode == "nnapi"){
auto* delegate = tflite::NnApiDelegate();
if (interpreter->ModifyGraphWithDelegate(delegate) != kTfLiteOk) return 0;
}
if ( interpreter->AllocateTensors() != kTfLiteOk) {
LOG(ERROR) << "Failed to allocate tensors!";
}
WriteToInputTensor(target_image,interpreter->typed_input_tensor<float>(0));

if (interpreter->Invoke() != kTfLiteOk) return 0;
ReadFromOutputTensor(segmentation_img,interpreter->typed_output_tensor(0));
DumpImage(segmentation_img);
return 0;
}`

@lwu025 : Is this a duplicate of earlier issue you have mentioned #29509 . If so, can we track with that issue and close this one. It will help us to follow easily. Please let us know. Thanks!

Sure,. You can close this issue

@lwu025 : Thanks for the response. Closing the issue since its a duplicate of #29509 .

@lwu025 Please attach the other functions. Sometimes, the GPU delegates can produce different outputs on different hardwares. I could try running it on my Mali.


org.openrewrite.java.cleanup.HideUtilityClassConstructor is missing ignore annotation for @NoArgsConstructor(access = AccessLevel.PRIVATE)

(https://github.com/openrewrite/rewrite/blob/aaa06ff9f94b45f35263795dabf5d5dd665a9abf/rewrite-java/src/main/java/org/openrewrite/java/style/Checkstyle.java#L96) has
    public static HideUtilityClassConstructorStyle hideUtilityClassConstructorStyle() {
        return new HideUtilityClassConstructorStyle(Arrays.asList(
<EMAIL_ADDRESS><EMAIL_ADDRESS>        ));
    }

but doesn't ahve @NoArgsConstructor(access = AccessLevel.PRIVATE) so the compilation after transformation will fail with
constructor Foo() is already defined in class Foo
@NoArgsConstructor(access = AccessLevel.PRIVATE)

Hi @blipper Thanks for pointing out this omission; do I correctly deduce that you want to add this additional annotation to prevent compilation errors?
    public static HideUtilityClassConstructorStyle hideUtilityClassConstructorStyle() {
        return new HideUtilityClassConstructorStyle(Arrays.asList(
<EMAIL_ADDRESS>+<EMAIL_ADDRESS><EMAIL_ADDRESS>        ));
    }

While I don't think the code as it is right now would allow for adding the access = AccessLevel.PRIVATE at present, I don't think there's harm in detecting the mere presence of @lombok.NoArgsConstructor and backing off from adding an additional constructor. Would you agree there?
And is this a change you'd want to provide a pull request for, or is it merely something you'd like to see fixed whichever way soon?

I guess that makes sense to disable regardless.
I wonder if we need to deal with the other variations but I guess by definition a utility class doesn't have field level params.
https://projectlombok.org/features/constructor
Happy to do a pull or whatever.

Sure; happy to merge a quick pull request if you want to contribute this change; I think even the GitHub online editor would be enough to add this in here. https://github.com/openrewrite/rewrite/blob/aaa06ff9f94b45f35263795dabf5d5dd665a9abf/rewrite-java/src/main/java/org/openrewrite/java/style/Checkstyle.java#L96-L101
Otherwise I can make that change and close the issue that way; whatever you prefer.


Xcode 6.3.2 update ~ doesn't open

I've just updated Xcode and it seems to have stopped working.
Thanks for the great and useful plugin.

I'm having the same issue. Is there a certain place in the DVTPlugInCompatibilityUUIDs section of the plist that we're supposed to put the new UUID? I've tried putting it first and last to no avail.

It looks like there's some changes being introduced in 6.3.2 related to plugin loading. I did the usual UUID update, and got a "do you want to load this bundle" warning on the next Xcode load. Even after accepting it acts like the plugin didn't load (OFPlugin would generally log errors to the console if there were any).
http://stackoverflow.com/questions/30361228/why-are-my-xcode-plugins-such-as-clang-format-installed-with-alcatraz-no-longe

Here is same issue for CocoaPods plugin (solved): https://github.com/kattrali/cocoapods-xcode-plugin/issues/62

Ah, simple fix then. Thanks @deksden :)


Fix typos

What do these changes do?
As titled.

 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.

Codecov Report

Merging #1948 (eecbed1) into main (1de7533) will decrease coverage by 3.83%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main    #1948      +/-   ##
==========================================
- Coverage   43.90%   40.07%   -3.84%
==========================================
  Files          89       89
  Lines        9816     9816
==========================================
- Hits         4310     3934     -376
- Misses       5506     5882     +376

Impacted Files
Coverage Δ

python/graphscope/tests/minitest/test_min.py
0.00% <0.00%> (ø)

python/graphscope/tests/unittest/test_java_app.py
0.00% <0.00%> (-100.00%)
:arrow_down:

python/graphscope/deploy/hosts/cluster.py
29.41% <0.00%> (-58.83%)
:arrow_down:

python/graphscope/analytical/app/java_app.py
24.24% <0.00%> (-44.95%)
:arrow_down:

python/graphscope/framework/utils.py
40.10% <0.00%> (-14.85%)
:arrow_down:

python/graphscope/framework/app.py
69.95% <0.00%> (-10.33%)
:arrow_down:

python/graphscope/client/rpc.py
81.48% <0.00%> (-8.34%)
:arrow_down:

python/graphscope/framework/graph_schema.py
52.45% <0.00%> (-7.11%)
:arrow_down:

python/graphscope/tests/conftest.py
48.21% <0.00%> (-4.65%)
:arrow_down:

python/graphscope/client/session.py
63.75% <0.00%> (-3.22%)
:arrow_down:

... and 3 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 1de7533...eecbed1. Read the comment docs.


Let's rename some variables

I think height and width should be grid_height and grid_width and skipped should be cell_size
Also, right now, the command line tool, confusingly, states that the height value is only half the height (so, if you pass in 100, the actual grid height would be 200). Let's make height actually refer to height and change this in the code.

This is an old, now irrelevant comment. Closing.


Use YUM to install prerequisites

Use YUM to install the finished RPM so the dependencies get resolved.  This will eliminate most of the package installations in the system-prep script.
Could probably do something to build the SRPM and install that in the work area to pull in the build requirements, too.

This is done.  (Committed, will be pushed later.)


Incoherent Logs

It works but I get the following as output:
11/09/2016 17:45:47 Updating ECR Credentials
11/09/2016 17:45:48 Failed to find configured registry to update for URL<PHONE_NUMBER>44.dkr.ecr.ap-southeast-1.amazonaws.com
11/09/2016 17:45:48 Successfully updated credentials 1c14 for registry 1sp12; registry address:<PHONE_NUMBER>44.dkr.ecr.ap-southeast-1.amazonaws.com

It seems it happens because I have both the docker registry and the AWS ECR registry added,
and https://github.com/objectpartners/rancher-ecr-credentials/blob/master/main.go#L130 prints out the ecrURL instead of the registryHost.

Yeah, we should put a check in there to break the loop and only print that error if we didn't find an ECR registry.


Questions

I have a couple of questions:

Do i need to perform the OAuth flow at all in my Shopify app if I just intend to register webhooks?
What is the meaning of isEmbeddedApp setting in the shopifyApi call? See below.
Shoud i use shopifyApi() call like in below or perhaps shopifyApp()? What is the difference?

const shopify = shopifyApi({
  // The next 4 values are typically read from environment variables for added security
  apiKey: '***',
  apiSecretKey: '***',
  scopes: ['read_products','read_orders'],
  hostName: 'https://0da444b73168.ngrok.app',
  apiVersion: LATEST_API_VERSION,
  isEmbeddedApp: false, // ?????
  logger: {
    log: (severity, message) => {
      console.log("message",message);
    },
    httpRequests:true,
    level: LogSeverity.Debug
  },
});

Hi there 👋
Do i need to perform the OAuth flow at all in my Shopify app if I just intend to register webhooks?
If you are intending to create a public app then you will need to go through the OAuth flow, as you need merchant to Authorize your app to have access to the data that the webhooks would return. If your app is only going to be connected to one store then OAuth is not required. For more information on App Authorization for different types of apps you can review the documentation.
What is the meaning of isEmbeddedApp setting in the shopifyApi call? See below.
For more information on the properties of the shopify object, please review the documentation. The isEmbeddedApp setting determines whether your application's UI will show in an iframe within the Shopify Admin.
Shoud i use shopifyApi() call like in below or perhaps shopifyApp()? What is the difference?
Shopify API is a thin wrapper around making API calls to Shopify. Shopify App is a collection of packages that make it easy for apps to integrate with Shopify. They all build on top of the @shopify/shopify-api package to cover specific use cases.


Button

Is it possible to have the cells be a button? I want to make it so the user can click on the cell.

Transforming table cells into buttons is out of scope for this project. But we should support keyboard accessibility and one way to do that could be to create button elements for the sortable table headings.


generateData unit test

Looking for someone to create a unit test for the generateData function.
The function is called in construct.js, which takes the schema and generates random data based on the typing defined in the schema
let placedata = generateData(template);
The unit test should validate the object returned, making sure that the values of each property matches the respective definition in the schema
Thanks, and good luck!

I'll give this a shot!


Clean up interpolation functions

Cleans up interpolation functions, minor optimizations, and adds one new function (bezier(vvvn)) taking advantage of newly released bezier functions.
This PR should be delayed until widespread adoption of the latest Gmod update has occurred.
Would like to mention #2716 as I had intended to add a replacement function lerp(...) but wasn't sure if I should just replace the original mix to the peril of any previous users.
Test code

Do a new PR for those

oops, accidentally caused merge conflict with fixing lints on the print pr


Settings UI incompatible with keybindings

Environment
Windows build number: 10.0.19042.746
Windows Terminal version (if applicable): 1.6.10272.0

Steps to reproduce
Multiple ways. Open the Settings UI tab using your keybind (like Ctrl+Shift+,). Now use other keybindings, like toggleFocusMode (Shift+F11), or Command Pallete (Ctrl+Shift+P), or JSON file (Ctrl+,), or new tab (Ctrl+Shift+T).
Expected behavior
They should open their respective actions, like any other tab.
Actual behavior
None of these commands seem to work.
Nothing happens.
Context
I have set my launchmode to focus, so each WT sessions opens in focus mode. But when I open the Settings UI from there, I get stuck on that tab, because the toggleFocusMode keybind does not do anything, and I can't even open a new tab.

Thanks for the suggestion! This is actually already being tracked by another issue on our repo - please refer to #8767 for more discussion.
/dup #8767


Fix WET certificates

The REXX/Web Enablement Toolkit fallback for unusable shipped curl needs a new certificate to handle GitHub reorg of repo files.

And while in this code, handle failures more gracefully...

Closing issue - WET functionality no longer supported/required


[SPARK-48619] Fix reference error when grouping by MapType

What changes were proposed in this pull request?
In this PR, rule InsertMapSortInGroupingExpressions was modified to add an alias for map_sort(col) . Grouping and aggregate expressions are then modified to use this alias.
Why are the changes needed?
Currently, trying to reference a map column that is being grouped by, causes reference errors because we are only replacing the grouping expression m with map_sort(m). The following query fails:
SELECT m FROM table GROUP BY m

Does this PR introduce any user-facing change?
No
How was this patch tested?
New Tests in this PR, and existing tests regarding grouping of map types.
Was this patch authored or co-authored using generative AI tooling?
No

@n-young-db @cloud-fan  can you please take a look at this.

Approved but please address comments! Just didn't want to block over the weekend.


Removing bad quote simbol

I'm not sure if this was suposed to be there, but that quote mark was messing my terminal putting > like I was suposed to keep writing something.

 No idea how that got in there. Thanks!


Getting remote list in FTPS mode is too slow

I have used the FTPS mode in the configuration file, but it is very slow to access the remote server list. It usually takes 30 seconds to get the file list of the remote server. I use flashFXP or other tools very fast，How can I fix it。
This is my profile
{
"port": 21,
"ftps": true,
"secure": true,
"passive": true,
"name": "Remote",
"protocol": "ftp",
"remotePath": "/",
"uploadOnSave": true,
"interactiveAuth": true,
"username": "layuiadmin",
"host": "IP",
"password": "password",
"ignore": [
".git",
".idea",
".vscode",
".history",
".DS_Store"
],
"watcher": {
"files": "**/*",
"autoDelete": true,
"autoUpload": false
},
"syncOption": {
"delete": true,
"update": true
},
"secureOptions": {
"rejectUnauthorized": false
}
}

Same issue on our production.

get this bug too.


Testing
Manually tested.

Fast tracking, given platform changes by a platform maintainer.

/rebase


.deb package upload libnginx-mod-http-modsecurity to packages.debian.org

Is there any chance you could please upload libnginx-mod-http-modsecurity to packages.debian.org?
The only major mod that is somehow missing in Debian.
//cc @airween because he's thankfully maintaining other Debian packages among modsecurity related packages.
https://qa.debian.org/developer.php?login=airween%40gmail.com

Hi @adrelanos,
I already tried to add this packages twice: I asked the nginx's maintainer, but never got any answer. With @inittab (head maintainer of ModSecurity related packages in Debian) we tried later too, with still no luck.
I still can suggest to use our non-official repository:
https://modsecurity.digitalwave.hu
I know I'm a bit lagging with some versions, but libmodsecurity3 and mod-security2 is newer than in Debian. The web server versions (Nginx, Apache) is the same, so it's enough to install the WAF module from there, not the full server.
But I'll try to contact the Nginx maintainers again soon.

Also please note, that even if it were added, it could only be accessed later, in Debian 12, because of the Debian policy does not allow to add any new packages for a stable system.

Oh, I didn't know it's up to Debian's nginx maintainer.

I can still suggest to use our non-official repository:
https://modsecurity.digitalwave.hu/

Yes, meanwhile it's a great public service and very much appreciated!

Also please note, that even if it were added, it could only be accessed later, in Debian 12, because of the Debian policy does not allow to add any new packages for a stable system.

Yes, that's understood. (Just would be nice if this was resolved at some point even if in a few years such as Debian stable + 1 or even Debian stable + 2.)

Yes, that's understood. (Just would be nice if this was resolved at some point even if in a few years such as Debian stable + 1 or even Debian stable + 2.)

sure - but the mentioned repository above actually supports Debian 9, 10 and 11, and will supports always the current stable releases. And (if I have time :)) it always contains the most fresh versions, while Debian does not allow it too.

Since this isn't really a work item for this project, I expect that there's no further advantage in keeping this open.
Closing ...


question: Sonarqube

Hi,
is there any difference between sonarscanner & sonarqube? if yes, please explain about it.
thanks,
Madhu

Sonarqube is the central server holding the results of analysis
Sonarqube-scanner or sonar scanner performs the analysis and send the results to sonarqube

Even this link can help you out

please post only issues
and close this issue

@nareshabbanapuri , is it not for the doubt clarification? it wold be clarify for others also who will have the same doubt.
@bhaskardegala , thanks for your explaination


Convert colmap pose to ns-render format

Is there an existing automated method for consuming one or more colmap generated poses (i.e. from model-converter) and producing the file needed by ns-render? Ideally, the function would be:

python from_colmap_to_render.py ${NERF_DATATRANSFORMS} ${COLMAP_IMAGES_TXT} ${COLMAP_CAMERAS_TXT} ${OUTPUT_FILE}
ns-render camera-path --load-config ${NERF}/config.yml --camera-path-filename ${OUTPUT_FILE} --output-format images --output-path ${SAVE_PATH}

I want to be able to test against new data quickly after registering with colmap image_registration routines.

@ebbeowulf I dont think there is anything like this currently.

Is this a difficult proposition? What would be the math for doing this? Or are there existing functions in the nerfstudio package that I can draw on already to make this happen?

To be clearer about the ask here, Colmap has an existing image registration utility that lets you add new images to an existing reconstruction:
https://colmap.github.io/faq.html#register-localize-new-images-into-an-existing-reconstruction
Nerfstudio uses Colmap to estimate image poses with the ns-process-data utility, creating a colmap/sparse/0 directory. I can take this directory and, using the colmap image_registrator utility, create a colmap_extended/sparse/0 directory which includes all of the new images in its database and images.bin. For simplicity, I've made sure to enforce the same camera model for all pictures.
I can convert these binary files to text files using the colmap model_converter utility, generating a text file like the following:
# Image list with two lines of data per image:
#   IMAGE_ID, QW, QX, QY, QZ, TX, TY, TZ, CAMERA_ID, NAME
#   POINTS2D[] as (X, Y, POINT3D_ID)
# Number of images: 965, mean observations per image: 1846.5575129533679
198 0.32891265110861934 0.59510586279406685 -0.49612033205679973 0.53993527031365518 0.023065781110813994 0.13740708868500695 -0.52152938811249794 1 frame_00198.png

Similarly, I have camera information in the resulting cameras.txt file:
# Camera list with one line of data per camera:
#   CAMERA_ID, MODEL, WIDTH, HEIGHT, PARAMS[]
# Number of cameras: 1
1 OPENCV 720 1280<PHONE_NUMBER>2099345<PHONE_NUMBER>9935851<PHONE_NUMBER>2617964<PHONE_NUMBER>5306137 0.071826431429486151 -0.091115990185757209 -0.001340764786388172 0.0026602726361924824

What I don't know how to do is take this colmap generated transformation and camera information and turn it into something that ns-render will read to produce a matching image. If I could at least figure out what coordinate frame the input to ns-render is in, and what the origin point for the nerfstudio model is, then maybe I could develop the math myself. But since nerfstudio is using colmap data on input, I expect that there must be a set of transformation functions buried in the code somewhere.

So the best answer I've been able to come up with so far is based on (https://github.com/nerfstudio-project/nerfstudio/issues/2174). It goes as follows:

convert the images.bin file to transforms.json format using nerfstudio.process_data.colmap_utils.colmap_to_json, and then reload the json file into memory
need to rebuild the transform matrix. Take the transform from dataparsers_transform.json, and divide by any applied_transforms in the new transform.json (this was not mentioned in the original post) to get the real transform_matrix
apply the transform_matrix to poses extracted from transforms.json: new_poses = transform_matrix @ poses
rescale only the translation dimensions (new_poses[:3,3]*=scale_factor) using the scale_factor stored in dataparsers_transform.json. Note that if an applied_scale is stored in transforms.json, then that will need to be accounted for (divide by).

This works for reconstructing the camera pose, but I'm still struggling with adding camera intrinsics to the reconstruction. If someone could provide guidance, or point me at appropriate reference materials, on how to render images using the estimated camera intrinsics stored in transforms.json, I would greatly appreciate it.


Visual Studio 2012 (v11): Could not load file or assembly Microsoft.VisualStudio.Shell.12.0

I've installed extension on Visual Studio Professional 2012 (v11). It crashed with the following in the ActivityLog.xml
  <entry>
    <record>504</record>
    <time>2015/05/22 14:34:08.644</time>
    <type>Information</type>
    <source>VisualStudio</source>
    <description>Begin package load [PaketPackage]</description>
    <guid>{2418556F-C184-4E6D-94CB-341BE5C474AC}</guid>
  </entry>
  <entry>
    <record>505</record>
    <time>2015/05/22 14:34:08.645</time>
    <type>Error</type>
    <source>VisualStudio</source>
    <description>CreateInstance failed for package [PaketPackage]</description>
    <guid>{2418556F-C184-4E6D-94CB-341BE5C474AC}</guid>

80070002

    <errorinfo>Could not load file or assembly 'Microsoft.VisualStudio.Shell.12.0, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.</errorinfo>
  </entry>
  <entry>
    <record>506</record>
    <time>2015/05/22 14:34:08.645</time>
    <type>Error</type>
    <source>VisualStudio</source>
    <description>End package load [PaketPackage]</description>
    <guid>{2418556F-C184-4E6D-94CB-341BE5C474AC}</guid>

80004005 - E_FAIL

    <errorinfo>Could not load file or assembly 'Microsoft.VisualStudio.Shell.12.0, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.</errorinfo>
  </entry>

Or are there no plans to support Visual Studio 2012?

@hmemcpy I have no idea how hard it would be to make that work

Hmm, I don't have 2012 installed here, but according to MSDN, the API we're using for displaying packages (IGraphNodeProvider) exists in 2012, however, the newer API which I want to switch to does not (only 2013+).
@domaslasauskas just wondering, is VS2012 something you use out of choice? Or any reason you can't use 2013, at least?

Since there is a free version of VS 2013 and we're already having big trouble to support VS 2013 + 2015 I think we should not support VS 2012.
Sorry

@hmemcpy This is what every one has to use where I work. We will be upgrading to Visual Studio 2015 when it's released though. I'll just wait for new VS version. Thanks for looking into this.


Added BubbleSort Algorith

I added the implementation of the Bubblesort algorithm to the sorting package. #19

@JoseLlorensRipolles Bubblesort passed the SortingTest so if you want you can merge.

Damn!! Thank you so much!! Very appreciated!


Run ci-build.yaml on r8 branch

Summary
This does not happen and I was forced to run the tests locally.

Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.

Hopefully we will never release this branch again. So this issue is not valuable.


Teach ResolveBufferDescriptors how to handle memref.get_global.

Also adds some missing tests for alloca.
This allows the invocation listed in the bug to compile. Just spot-checking the code, there is a lot of work to do to make it good, but one step at a time.
Fixes #10427

Glad I didn't try to fix this myself, I wasn't even familiar with the concepts here (globals etc). Deferring to Ben for the review,  meanwhile I can use the patch to unblock e2e benchmarking.


Unit attributes should be stored and used

Unit attributes (canBuildCity, pillage, etc.) should be stored on the unit prototypes, and should be used.
The motivation right now is I want to start enhancing the AI's build decisions, and eventually unit order decisions.  However, right now we still have a lot of hard-coded decisions based on unit names - at least 15, via a quick search.  I don't want to keep propagating that indefinitely, so it's time to start adding these attributes.
This also ties into #175 ; some actions (e.g. Pillage) aren't implemented yet, so should be hidden.  I'll likely do that here, but there will still be other areas on that card (e.g. main menu, in-game menu) where non-implemented things are visible.

I'm also thinking that it would make more sense to store these as simply a collection of abilities, rather than the grouped flags that Civ3 has.  E.g.:
Set abilities = new HashSet();
abilities.AddAll("canBuildCities", "Load", "Unload", "Join City", "Wheeled");
This would allow mods to add additional ones.  If we need to grab e.g. all worker actions, we could still store what the names of the worker actions are somewhere, so we can quickly grab all the matching ones from a unit's abilities.

Somewhat scratch the above, I'm now favoring a split between "actions" (orders the player can give) and "attributes" (e.g. Stealth).  The front end needs to know the separation regardless, since only "actions" have buttons available.


Multiple reportportal plugin improvements and fixes

This PR should fix the problem with a possible reportportal error when using result: restraint or result: custom:
Received non-ok status code 406 from ReportPortal: {"errorCode":40025,"message":"Start time of child ['Tue Nov 12 11:10:19 UTC 2024'] item should be same or later than start time ['2024-11-12T11:36:35.007'] of the parent item/launch '
11810'"}

This error is probably caused by the badly sorted result start times. It can happen the datetime formats in the list are not in the same format. The Result.start_time is in ISO format but the self.time() returns str(int(time() * 1000)).
The basic reproducer
$ cat main.fmf
test: |
    tmt-report-result /test/good PASS
    tmt-report-result /test/fail FAIL
    tmt-report-result /test/weird WARN

result: restraint

duration: 5m

$ python -m tmt -r ~/tmt-learning/20 run -a report --how reportportal -v --force

Other improvements
There are also small code improvements like the possibility to ignore the SSL verification, adding the usage of Python properties instead of class methods, or adding handling of ResultOutcome.SKIP outcome which I believe is missing from the mapping.
TODOs:

[ ] Link the issue with the problem description as soon as it's created.

Pull Request Checklist

[x] implement the feature
[ ] extend the test coverage - I believe this cannot be easily covered by our tests.
[ ] include a release note

The problem with start-time/end-time timestamps should be also resolved by existing PR by @kkaarreell :

https://github.com/teemtee/tmt/pull/3345

Hello @mildas, could you please test if the changes in this PR resolve your issue (#3360) and if the data are imported to ReportPortal as expected? Thanks!

I have just tested a plain import of a test plan with passing and failing tests and it worked well.
I also tried to import test results that originally revealed the timestamp issue and it went well too.
I do not plan any particular testing ATM, from my POV it works well.

@kkaarreell

I have just tested a plain import of a test plan with passing and failing tests and it worked well.
I also tried to import test results that originally revealed the timestamp issue and it went well too.
I do not plan any particular testing ATM, from my POV it works well.

Thanks for helping me with the testing! Could you please add a check to this PR that you did a review?
Also, do you know anyone else who uses the ReportPortal and could us help with the testing of these changes? What about @KwisatzHaderach?

Also, do you know anyone else who uses the ReportPortal and could us help with the testing of these changes? What about @KwisatzHaderach?

not actually using the rp plugin, we do all our exports through data router using polarion xml

@seberm Hi Otto, we found one more issues in the RP plugin, in method def _filter_log_per_size there is the following line:
return f"{header}{data[:settings.size.to('bytes').magnitude]}"

But settings.size.to('bytes').magnitude is float actually (e.g. 1000000.0) and it causes:
The exception was caused by 1 earlier exceptions

Cause number 1:

    slice indices must be integers or None or have an __index__ method

        Traceback (most recent call last):

        File /usr/lib/python3.12/site-packages/tmt/base.py, line 3749, in go
          plan.go()
        File /usr/lib/python3.12/site-packages/tmt/base.py, line 2439, in go
          step.go()
        File /usr/lib/python3.12/site-packages/tmt/steps/report/__init__.py, line 121, in go
          cast(Union[Action, ReportPlugin[ReportStepData]], phase).go()
        File /usr/lib/python3.12/site-packages/tmt/steps/report/reportportal.py, line 670, in go
          message = _filter_log(log,
        File /usr/lib/python3.12/site-packages/tmt/steps/report/reportportal.py, line 94, in _filter_log
          log = log_filter(log, settings=settings)
        File /usr/lib/python3.12/site-packages/tmt/steps/report/reportportal.py, line 81, in _filter_log_per_size
          return f"{header}{data[:settings.size.to('bytes').magnitude]}"

The fix is easy - int that, ie. replace that with:
return f"{header}{data[:int(settings.size.to('bytes').magnitude)]}"

(consulted with Karel and Milos).
Since this is rather generic PR for RP plugin fixes, would it be possible to squeeze this in?

Red jobs are irrelevant failures. I've reported the epel-next-release download problem here:

https://pagure.io/fedora-infrastructure/issue/12326

The remaining failure seems to be a network glitch. Merging.