ci(deps): setup dependabot

Please provide a description of this PR:
Setup dependabot to update gomod and python dependencies when they are availables

Hi @mmorel-35. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@istio/wg-test-and-release-maintainers WDYT?
I have a general aversion to doing this, but I can't concretely place why. Maybe its NIH. At the very least, its clear we could implement a better version pretty trivially since dependabot will not run make gen afterwards which is required for a few dependencies (go-control-plane).
I have also found that most of the time we update deps we end up needing code changes, anyways. I worry this may mean we end up with extra churn OR we miss out on changes we should have made (e.g: if I upgrade dep, I check for new features and use them; if its automated I would not notice)

/ok-to-test
Let's see if this falls a go mod tidy

@mmorel-35: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
1ff395f8cf57a6570f67614a754b441eeabc2e94
link
true
/test release-notes

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

I tend to agree with @howardjohn on not integrating this. I recall in the past that this would open a PR for each dependency update, so we might have a few each month. I don't recall if a go mod tidy would be done on each.
Also, the go.mod changes in this PR seem to be moving some from the indirect side to the direct side. I'm not sure why that is. I know I run into that issue in other repos if I haven't clean'd them back to not including some other source.

go-mod-update, recommended by John in another thread, points out other modules to update (beyond the security) and might be something to automate (may also need go mod tidy, but maybe not). I'm not sure if that's good either, since we seem to need code changes occasionally with these package updates.

And the other issue I have is with the samples updates as we don't have anything today (that I know of) to verify that the samples build and then generate new samples with the updates and the follow-up yaml updates. You can see the README in the samples/bookinfo for that process.

As a FYI, I did run a dependabot dry-run and here were the changes (I know some of these won't work if the PR as created):
+---------------------------------------------------------------------------+
|                    Changes to Dependabot Pull Requests                    |
+---------+-----------------------------------------------------------------+
| created | cloud.google.com/go/monitoring ( from 1.10.0 to 1.11.0 )        |
| created | github.com/hashicorp/golang-lru ( from 0.6.0 to 1.0.1 )         |
| created | github.com/prometheus/prometheus ( from 0.36.2 to 0.41.0 )      |
| created | cloud.google.com/go/compute ( from 1.14.0 to 1.15.1 )           |
| created | cloud.google.com/go/iam ( from 0.8.0 to 0.10.0 )                |
| created | cloud.google.com/go/longrunning ( from 0.3.0 to 0.4.0 )         |
| created | github.com/onsi/ginkgo/v2 ( from 2.6.1 to 2.7.0 )               |
| created | cloud.google.com/go ( from 0.107.0 to 0.108.0 )                 |
| created | github.com/BurntSushi/toml ( from 1.1.0 to 1.2.1 )              |
| created | github.com/VividCortex/ewma ( from 1.1.1 to 1.2.0 )             |
| created | github.com/alecthomas/participle ( from 0.4.1 to 0.7.1 )        |
| created | github.com/emicklei/go-restful/v3 ( from 3.9.0 to 3.10.1 )      |
| created | github.com/fvbommel/sortorder ( from 1.0.1 to 1.0.2 )           |
| created | github.com/go-errors/errors ( from 1.0.1 to 1.4.2 )             |
| created | github.com/goccy/go-json ( from 0.9.7 to 0.10.0 )               |
| created | github.com/google/btree ( from 1.0.1 to 1.1.2 )                 |
| created | github.com/google/gnostic ( from 0.5.7-v3refs to 0.6.9 )        |
| created | github.com/huandu/xstrings ( from 1.3.3 to 1.4.0 )              |
| created | github.com/inconshreveable/mousetrap ( from 1.0.1 to 1.1.0 )    |
| created | github.com/jonboulle/clockwork ( from 0.2.2 to 0.3.0 )          |
| created | github.com/klauspost/compress ( from 1.15.12 to 1.15.14 )       |
| created | github.com/lestrrat-go/blackmagic ( from 1.0.0 to 1.0.1 )       |
| created | github.com/lestrrat-go/iter ( from 1.0.1 to 1.0.2 )             |
| created | github.com/lestrrat-go/option ( from 1.0.0 to 1.0.1 )           |
| created | github.com/magiconair/properties ( from 1.8.6 to 1.8.7 )        |
| created | github.com/marten-seemann/qtls-go1-18 ( from 0.1.3 to 0.1.4 )   |
| created | github.com/marten-seemann/qtls-go1-19 ( from 0.1.1 to 0.1.2 )   |
| created | github.com/mattn/go-colorable ( from 0.1.12 to 0.1.13 )         |
| created | github.com/mattn/go-runewidth ( from 0.0.13 to 0.0.14 )         |
| created | github.com/mdlayher/netlink ( from 1.4.1 to 1.7.1 )             |
| created | github.com/mitchellh/go-wordwrap ( from 1.0.0 to 1.0.1 )        |
| created | github.com/pelletier/go-toml/v2 ( from 2.0.5 to 2.0.6 )         |
| created | github.com/prometheus/procfs ( from 0.8.0 to 0.9.0 )            |
| created | github.com/prometheus/statsd_exporter ( from 0.22.7 to 0.23.0 ) |
| created | github.com/rivo/uniseg ( from 0.2.0 to 0.4.3 )                  |
| created | github.com/shopspring/decimal ( from 1.2.0 to 1.3.1 )           |
| created | github.com/spf13/afero ( from 1.9.2 to 1.9.3 )                  |
| created | golang.org/x/crypto ( from 0.3.0 to 0.5.0 )                     |
| created | golang.org/x/tools ( from 0.4.0 to 0.5.0 )                      |
| created | sigs.k8s.io/kustomize/kyaml ( from 0.13.9 to 0.13.10 )          |
+---------+-----------------------------------------------------------------+

@mmorel-35: PR needs rebase.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@mmorel-35: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
dee5862a66ee0b771b3cad2ea1bcca463e88e4ad
link
true
/test release-notes

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

I did create a PR that includes a majority of the dependabot specified changes. Note that there were 3 that I couldn't make as they would cause some issues like lint-go failures or other packages to be updated which breaks things.
I still think this is something we should do manually, at least currently, as each scan will create PRs for items that we currently don't have fixed (and at least I don't know that we can).

A dependabot update that was recently opened: https://github.com/istio/istio/pull/42814

Thanks for the PR. Looks like there is consensus to not move forward with this.


feat: upgrade data accesses to asynchrony

Abstract
An all-too-common challenge among plugins looking to support external data sources is the unfortunate need to resolve the consequences of sharing a resource between threads. The Bukkit API's affinity for the main thread provides a very convenient way for us to predict how most resources will be shared--if code is called on the main thread, it will always be called in sequence, never concurrently.
This convenience comes with a price--if something takes too long, it can't be done on the main thread without blocking everything else and effectively stalling the server. Originally, Clans loads everything from files at the start so that things don't take too long--but what if files, preloading are not an option? If we update data, how do we know when it's been fully applied? This is where asynchrony must come into play.
Feature
Elements of Clans and its API currently access data in a blocking fashion with certain guarantees:

All data is loaded at startup
We know about and direct all data updates
Data is written to cache; the saving is handled at shutdown
Data written to the cache is applied instantly, allowing us to make assumptions as to the state of the cache based on the order of task executions

All of these points (and particularly the last one) must be addressed by any new non-blocking API.
Design considerations:

We can still preload. All code in getter hot-paths must be cached values with an acceptable time-to-live.
For writes we must snapshot and validate state during all updates so that business logic can (and must) anticipate conditions of invalid state.
The cache must be managed internally. Writes will propagate to the cache on success. Writing and saving are combined.
No assumptions about the state of the cache can be made. Each write operation will obtain a lock on its particular resource and support optionally maintaining this lock until dependent business logic has completed its tasks.

Concept
The new API separates reads and writes, requiring a context switch to access write functionality. The idea with these write layers is that the updates that they accept will not immediately write through to the data source. Additionally, the write layer will allow the expected original state of the clan data to be validated as a prerequisite to a write being applied.
Write layer methods (abstract)

isApplied - boolean
addPrecondition - Predicate<Data>
apply - CompletableFuture<Void>
Can complete exceptionally with appropriate error. Always sets isApplied = true.
cancel
Prevents the application of this write object (such as if this write layer is first passed to an Event before apply is called). Throws if isApplied = true.
copy - MutableData
Creates a deep copy with isApplied, preconditions reset and cancel removed.

Implementation hints

cancel can be implemented as adding a Predicate with a _ -> false contract
a separate queue should be maintained for operation-sourced predicates. this simplifies the copy operation while maintaining the original semantics of the write layer's creation.

// operation-sourced predicate example
Write w = clan.asMutable();
w.addPower(3.0d);
// This automatically adds the following predicate, internally, like so
w.osp.add(data -> data.getPower() != w.power);
// Only after this is w.power updated


Fix for image event message delivery

Ensure we check for any media, not just a media clip.

Codecov Report

Merging #521 (4622321) into main (5556016) will decrease coverage by 0.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #521      +/-   ##
==========================================
- Coverage   92.27%   92.26%   -0.01%
==========================================
  Files          18       18
  Lines        2083     2082       -1
==========================================
- Hits         1922     1921       -1
  Misses        161      161

Impacted Files
Coverage Δ

google_nest_sdm/event_media.py
95.48% <ø> (-0.01%)
:arrow_down:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Add option to try to connect to a range of TCP ports

Add option to try to connect to a range of TCP ports
Fixes: #368
Fixes: #1117
Description
We can set an integer value with --port-range or RUBY_DEBUG_PORT_RANGE in addition to setting a TCP port for remote debugging. When port is unavailable, rdbg will try to open port + 1, port + 2, etc. until it finds a suitable port, or reaches the length of the range. This makes it possible to remote debug multiple debuggees in a multithreaded environment, but still use TCP ports in a determined way.

Thank you for pinging me.
I'm not a network and security expert, but is it safe to try to connect not specific port?
My malicious scenario is:

Attacker open a port X
Debuggee uses port range X to X+10, and choose X+1 (because X is used by attacker's process)
Debugger connect with port range X to X+10 and connect to attacker's process
Attacker can snoop any messaging by proxying to debuggee port (X+1).

I'm not a security expert either, however, I don't see additional security risk from using a port range.

The attacker can't open a port X without already being able to execute arbitrary code on the target machine with rights to open a port (as occupying a port can not be initiated from "outside", just from inside).
When the above fails and the debugger connects to the port the attacker opened, it is still used as a one-to-one connection. I don't know the internals there, but I think the debugger has the responsibility to initiate the connection (at least in DAP), issues commands, and the attacker's process can only mimic a debuggee and reply according to the DAP, but can't query the debugger process, the flow of the communication is the other way around.

Unless there are security flaws in DAP or CDP, I don't see how could the attacker proxy traffic to another port. However, I consider the first reason to be the strongest: the developer's responsibility is to secure the dev box, it's not the task of the debug tool.

I see. I thought the debugger client (rdbg -A) also use a port range feature and it can connect to the attacker's port.
However, your proposal is only server side (opening ports on debuggee) and the opening port is printed on the debuggee's console.
And the debugger client needs to select the port which is printed on the debuggee's console.


Fix alignment/scaling of benches

Description
Task: Fix alignment of benches (#3).
Feature: implement/design benches (#2)
Due to some issues with how entities are scaled, every single bench was being scaled differently (2 benches with the same width would scale completely differently with matching input for their generation if they had different heights). Due to this, aligning the benches correctly was not possible, so some placeholders were used temporarily. Additionally, collisions were also not functioning correctly because of this issue.
The Bench class and createBench function need to be reworked to correct this.
Dependencies

[x] (#53)

Milestones
List of steps that need to be completed for this task.

[x] clean up code for spawnBenches in ForestGameArea
[x] change bench scaling method so that all are scaled equivalently
[x] place benches in the map
[x] align benches with one another

Completion Deadline: Aug. 27
Member

Reza Panday (pineapple11111)

fixed


Automatic Globe depth texture

Creates an automatic uniform for the depth texture after the globe is rendered.

@chris-cooper just a heads up that this branch may cause some merge conflicts for the postprocess-hook branch.

I get culling/blending issues in the Geometry and Appearances Sandcastle example (but not on cesiumjs.org).  For example, zoom into the corridors near Alaska and they disappear and reappear.

Exception on resize:

I get culling/blending issues in the Geometry and Appearances Sandcastle example

I couldn't reproduce this. Is it the blinking that I showed you?
I figured out that the blinking is caused when the _copyDepthCommand command is executed, but I'm not sure why. Any ideas?

On Windows, this happens in Chrome, but not IE and Firefox.  All of which support floating-point textures, but only Chrome supports multiple render targets, so perhaps this is an OIT issue when MRT is available.  (This didn't happen on Chrome/Mac, which I bet doesn't have MRT, but I have to check).
If I try to disable OIT in the Geometry and Appearances example,
var viewer = new Cesium.Viewer('cesiumContainer', {
    orderIndependentTranslucency : false,
    infoBox : false });

we crash:

TypeError: Cannot read property 'setColorFramebuffer' of undefined
TypeError: Cannot read property 'setColorFramebuffer' of undefined
at updateFramebuffers (http://localhost:8081/Source/Scene/Scene.js:905:23)
at new Scene (http://localhost:8081/Source/Scene/Scene.js:463:9)
at new CesiumWidget (http://localhost:8081/Source/Widgets/CesiumWidget/CesiumWidget.js:235:25)
at new Viewer (http://localhost:8081/Source/Widgets/Viewer/Viewer.js:342:28)
at startup (:6:14)
at Object.context.execCb (http://localhost:8081/ThirdParty/requirejs-2.1.9/require.js:1636:33)
at Object.Module.check (http://localhost:8081/ThirdParty/requirejs-2.1.9/require.js:870:51)
at Object. (http://localhost:8081/ThirdParty/requirejs-2.1.9/require.js:1111:34)
at http://localhost:8081/ThirdParty/requirejs-2.1.9/require.js:129:23
at http://localhost:8081/ThirdParty/requirejs-2.1.9/require.js:1154:21
Uncaught TypeError: Cannot read property 'setColorFramebuffer' of undefined (on line 325 of http://localhost:8081/Source/Widgets/CesiumWidget/CesiumWidget.js)

Have you stepped through the code?  Do you know if createFramebuffers is getting called during zoom when the artifact occurs.
Are we somehow reading and writing to the same texture.  Have we tried different texture formats?  How can we narrow it down?

I couldn't reproduce this. Is it the blinking that I showed you?

Probably, but I couldn't reproduce the blinking in the same way you had it.

As discussed offline, I think this branch accidentally fixes #2327 as well. I have no idea why.
While I'm not qualified to review this code, I did notice harsher edges in this branch compared to master.  For example, the box geometry demo:
master

this branch.

@pjcozzi This is ready for another review.

Removing fxaaOrderIndependentTranslucency isn't really a breaking change,because setting it now is just a no-op, but shouldn't it being removed be mentioned in CHANGES?  (Not in the breaking section).

Can you submit an issue for the z-fighting?

Let me know when this is ready.  I'm also curious about those performance numbers.

At full screen in Firefox, this branch runs at 160 fps and master runs at 275 fps.

I think we can do better. There's an unnecessary copy from the GlobeDepth fbo to the FXAA fbo. The FXAA pass can just use the color texture from the GlobeDepth fbo.

For GPU bound scenesthis branch runs at 21 fps and master runs at 22 fps. For CPU bound scenes, this branch runs at 15 fps and master runs at 16 fps.

@pjcozzi This is ready.

Did you test on mobile?  What is the performance difference there?

On the windows tablet with Viewer runs at 27-28 fps on this branch and 39-40 fps on master.

That is a really big hit.  For now, we only need this for textured polygons on terrain right?

Right, and later for billboards on terrain.

OK, I suggest we consider this branch done, but do not merge it (keep it in-sync with master though).
Once we have billboards/labels on terrain and textured polygons on texture, we can make a final decision on this branch
a) Use it as is and take the performance hit
b) only create the depth texture if the scene needs it - we'll determine how much of a pain this is and how many applications would benefit from it, e.g., space.
What do you think?

That's fine with me. It wouldn't be difficult to detect when we need the depth texture. The primitives on terrain will have their own pass. If there are commands for that pass, we need the texture.

Sounds good.  So we'll merge this with primitives on terrain so we don't ship just this in 1.8.

Will polyline on terrain use this or another technique?

Will polyline on terrain use this or another technique?

We don't know yet.  lol.  It depends on the algorithm we use.  For example, this algorithm would need it.

Thank you @pcozzi, it sheds light on the vector on terrain state and roadmap.
Now I understand the focus is on merging polygons and billboards support.
Then the work on polyline will start.
Do you already have an ETA for billboards and polylines?

Do you already have an ETA for billboards and polylines?

No.  Keep an eye on the related branches and issues.

With the "add billboard" button, the label shows up in the terrain:

Ah, is this because the peak is so steep and it is getting a lower height next to it?  Unless you have a simple solution, make a note of this in #2685.

Ah, is this because the peak is so steep and it is getting a lower height next to it?

Right the position of that billboard is actually slightly yo the left of the peak. I'll make a note of it.

This works well enough.  Just those minor comments then let's get this merged.
@mramato we should probably do the entity API changes post 1.10.

@pjcozzi This is ready for another look.


Added Theme aqua

[√ ] New feature (non-breaking change which adds functionality)
[✓ ] This change requires a documentation update

Added aqua theme please check the src/features/Colors_and_Theme/color.css
Link to update: aqua theme

I've added a commit and now [data-theme = "aqua"], aqua-text, aqua-background, [data-theme="aqua"] .theme-reverse and [data-theme="aqua"] .theme-adjust classes work. However, I'm still thinking of the switch-theme attribute of how it's supposed to work (either switch-theme attribute only for light and dark theme or switch-theme attribute will switch all themes). Any thoughts?

I've added a commit and now [data-theme = "aqua"], aqua-text, aqua-background, [data-theme="aqua"] .theme-reverse and [data-theme="aqua"] .theme-adjust classes work. However, I'm still thinking of the switch-theme attribute of how it's supposed to work (either switch-theme attribute only for light and dark theme or switch-theme attribute will switch all themes). Any thoughts?

I've added a commit and now [data-theme = "aqua"], aqua-text, aqua-background, [data-theme="aqua"] .theme-reverse and [data-theme="aqua"] .theme-adjust classes work. However, I'm still thinking of the switch-theme attribute of how it's supposed to work (either switch-theme attribute only for light and dark theme or switch-theme attribute will switch all themes). Any thoughts?

Make switch theme so that it applies to all themes

I've added a commit and now [data-theme = "aqua"], aqua-text, aqua-background, [data-theme="aqua"] .theme-reverse and [data-theme="aqua"] .theme-adjust classes work. However, I'm still thinking of the switch-theme attribute of how it's supposed to work (either switch-theme attribute only for light and dark theme or switch-theme attribute will switch all themes). Any thoughts?

Make switch theme so that it applies to all themes

I've added a commit and now [data-theme = "aqua"], aqua-text, aqua-background, [data-theme="aqua"] .theme-reverse and [data-theme="aqua"] .theme-adjust classes work. However, I'm still thinking of the switch-theme attribute of how it's supposed to work (either switch-theme attribute only for light and dark theme or switch-theme attribute will switch all themes). Any thoughts?

Make switch theme so that it applies to all themes

So, switch theme will switch from aqua => light => dark => aqua => light => dark, and so on?

I've added a commit and now [data-theme = "aqua"], aqua-text, aqua-background, [data-theme="aqua"] .theme-reverse and [data-theme="aqua"] .theme-adjust classes work. However, I'm still thinking of the switch-theme attribute of how it's supposed to work (either switch-theme attribute only for light and dark theme or switch-theme attribute will switch all themes). Any thoughts?

Make switch theme so that it applies to all themes

So, switch theme will switch from aqua => light => dark => aqua => light => dark, and so on?

I've added a commit and now [data-theme = "aqua"], aqua-text, aqua-background, [data-theme="aqua"] .theme-reverse and [data-theme="aqua"] .theme-adjust classes work. However, I'm still thinking of the switch-theme attribute of how it's supposed to work (either switch-theme attribute only for light and dark theme or switch-theme attribute will switch all themes). Any thoughts?

Make switch theme so that it applies to all themes

So, switch theme will switch from aqua => light => dark => aqua => light => dark, and so on?

Yeah like that only

I've added a commit and now [data-theme = "aqua"], aqua-text, aqua-background, [data-theme="aqua"] .theme-reverse and [data-theme="aqua"] .theme-adjust classes work. However, I'm still thinking of the switch-theme attribute of how it's supposed to work (either switch-theme attribute only for light and dark theme or switch-theme attribute will switch all themes). Any thoughts?

Make switch theme so that it applies to all themes

So, switch theme will switch from aqua => light => dark => aqua => light => dark, and so on?

Yeah like that only

I've added a commit and now [data-theme = "aqua"], aqua-text, aqua-background, [data-theme="aqua"] .theme-reverse and [data-theme="aqua"] .theme-adjust classes work. However, I'm still thinking of the switch-theme attribute of how it's supposed to work (either switch-theme attribute only for light and dark theme or switch-theme attribute will switch all themes). Any thoughts?

Make switch theme so that it applies to all themes

So, switch theme will switch from aqua => light => dark => aqua => light => dark, and so on?

Yeah like that only

Hi @IronManCool001, I think it'll be quite weird for a website to use aqua => light => dark method (cause the major website I usually visited is using only light and dark mode). So how about let's change switch-theme become data-switch-theme with the value of the target theme to switch?

I've added a commit and now [data-theme = "aqua"], aqua-text, aqua-background, [data-theme="aqua"] .theme-reverse and [data-theme="aqua"] .theme-adjust classes work. However, I'm still thinking of the switch-theme attribute of how it's supposed to work (either switch-theme attribute only for light and dark theme or switch-theme attribute will switch all themes). Any thoughts?

Make switch theme so that it applies to all themes

So, switch theme will switch from aqua => light => dark => aqua => light => dark, and so on?

Yeah like that only

Hi @IronManCool001, I think it'll be quite weird for a website to use aqua => light => dark method (cause the major website I usually visited is using only light and dark mode). So how about let's change switch-theme become data-switch-theme with the value of the target theme to switch?

I've added a commit and now [data-theme = "aqua"], aqua-text, aqua-background, [data-theme="aqua"] .theme-reverse and [data-theme="aqua"] .theme-adjust classes work. However, I'm still thinking of the switch-theme attribute of how it's supposed to work (either switch-theme attribute only for light and dark theme or switch-theme attribute will switch all themes). Any thoughts?

Make switch theme so that it applies to all themes

So, switch theme will switch from aqua => light => dark => aqua => light => dark, and so on?

Yeah like that only

Hi @IronManCool001, I think it'll be quite weird for a website to use aqua => light => dark method (cause the major website I usually visited is using only light and dark mode). So how about let's change switch-theme become data-switch-theme with the value of the target theme to switch?

I think @stanleyowen  idea is good. I'll implement his idea.

I've added a commit and now [data-theme = "aqua"], aqua-text, aqua-background, [data-theme="aqua"] .theme-reverse and [data-theme="aqua"] .theme-adjust classes work. However, I'm still thinking of the switch-theme attribute of how it's supposed to work (either switch-theme attribute only for light and dark theme or switch-theme attribute will switch all themes). Any thoughts?

Make switch theme so that it applies to all themes

So, switch theme will switch from aqua => light => dark => aqua => light => dark, and so on?

Yeah like that only

Hi @IronManCool001, I think it'll be quite weird for a website to use aqua => light => dark method (cause the major website I usually visited is using only light and dark mode). So how about let's change switch-theme become data-switch-theme with the value of the target theme to switch?

I think @stanleyowen  idea is good. I'll implement his idea.

This PR will be merged soon after documented.

This PR will be merged soon after documented.

Fire UI theme is OK rn, you are welcomed to add more theme into Fire UI.

Fire UI theme is OK rn, you are welcomed to add more theme into Fire UI.

I've added a commit and now [data-theme = "aqua"], aqua-text, aqua-background, [data-theme="aqua"] .theme-reverse and [data-theme="aqua"] .theme-adjust classes work. However, I'm still thinking of the switch-theme attribute of how it's supposed to work (either switch-theme attribute only for light and dark theme or switch-theme attribute will switch all themes). Any thoughts?

Make switch theme so that it applies to all themes

So, switch theme will switch from aqua => light => dark => aqua => light => dark, and so on?

Yeah like that only

Hi @IronManCool001, I think it'll be quite weird for a website to use aqua => light => dark method (cause the major website I usually visited is using only light and dark mode). So how about let's change switch-theme become data-switch-theme with the value of the target theme to switch?

I think @stanleyowen idea is good. I'll implement his idea.

It is better that we use a pop-up which allows the user to select which theme he/she wants to use.

I've added a commit and now [data-theme = "aqua"], aqua-text, aqua-background, [data-theme="aqua"] .theme-reverse and [data-theme="aqua"] .theme-adjust classes work. However, I'm still thinking of the switch-theme attribute of how it's supposed to work (either switch-theme attribute only for light and dark theme or switch-theme attribute will switch all themes). Any thoughts?

Make switch theme so that it applies to all themes

So, switch theme will switch from aqua => light => dark => aqua => light => dark, and so on?

Yeah like that only

Hi @IronManCool001, I think it'll be quite weird for a website to use aqua => light => dark method (cause the major website I usually visited is using only light and dark mode). So how about let's change switch-theme become data-switch-theme with the value of the target theme to switch?

I think @stanleyowen idea is good. I'll implement his idea.

It is better that we use a pop-up which allows the user to select which theme he/she wants to use.

Hmm, I think we can make it as an additional feature alongside the current feature. Do you want to be assigned? @IronManCool001

Hmm, I think we can make it as an additional feature alongside the current feature. Do you want to be assigned? @IronManCool001

Hmm, I think we can make it as an additional feature alongside the current feature. Do you want to be assigned? @IronManCool001

Currently I am busy so won't be able to help you but for any help contact me using<EMAIL_ADDRESS>

Hmm, I think we can make it as an additional feature alongside the current feature. Do you want to be assigned? @IronManCool001

Currently I am busy so won't be able to help you but for any help contact me using<EMAIL_ADDRESS>

Okay, I'll implement it as soon as possible.

Okay, I'll implement it as soon as possible.


Added contact & account security context

Note to myself: We have to check the following line: https://github.com/sulu-io/sulu/blob/99d35a0d26596fe0fa8c7d5a2ee9bc7d65162955/src/Sulu/Component/Security/Authorization/SecurityContextVoter.php#L201
This check has to be inverted, and the following line returns a boolean instead of DENIED, ABSTAIN or GRANTED: https://github.com/sulu-io/sulu/blob/99d35a0d26596fe0fa8c7d5a2ee9bc7d65162955/src/Sulu/Component/Security/Authorization/SecurityContextVoter.php#L130

ack


Add Div, Sub, Expand, and Tile operations

Codecov Report

:exclamation: No coverage uploaded for pull request base (develop@bdc580c). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             develop      #33   +/-   ##
==========================================
  Coverage           ?   66.45%
==========================================
  Files              ?       82
  Lines              ?     6094
  Branches           ?     1172
==========================================
  Hits               ?     4050
  Misses             ?     1686
  Partials           ?      358

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 bdc580c...1f80b60. Read the comment docs.

Codecov Report

:exclamation: No coverage uploaded for pull request base (develop@bdc580c). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             develop      #33   +/-   ##
==========================================
  Coverage           ?   66.45%
==========================================
  Files              ?       82
  Lines              ?     6094
  Branches           ?     1172
==========================================
  Hits               ?     4050
  Misses             ?     1686
  Partials           ?      358

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 bdc580c...1f80b60. Read the comment docs.


fix typo in docs

Just fixing a typo in the docs.
It looks like "pointers" is what was intended (and seems correct).

Can one of the admins verify this patch?


Could not resolve dependencies when installed with pip3

Original issue here https://github.com/twosigma/beakerx/issues/6927
I got an error message saying that "Could not resolve dependencies for ..." when running the following magic in a Scala notebook.
%classpath add mvn org.apache.spark spark-sql_2.11 2.2.1

Below is the information of notebook that run into issues.
OS: Ubuntu 16.04
Notebook server: 5.6.0
Python: 3.5.2 [GCC: 5.4.0] installed using apt-get and packages managed by pip3
BeakerX 1.0.0
Open JDK 8
Maven: 3.3.9
Scala 2.11.12

%classpath add mvn com.google.code.gson gson 2.2.4
new com.google.gson.GsonBuilder().create().toJson("Hello", System.out)

generates the following error message and output.

I have OpenJDK, Scala and maven installed using apt-get.

Here's the Dockerfile if you want to dig into it.
https://github.com/dclong/docker-jupyterlab-beakerx/blob/master/Dockerfile
And Dockerfile of the base image
https://github.com/dclong/docker-jupyterlab-py/blob/master/Dockerfile

Thanks for the report @dclong, looking into that

@LeeTZ Any update on this?

I am experiencing the same issue as of August 29th, 2018.
Latest Mac, pip, python 3, beakerx, maven, conda. Everything is installed and the latest versions.
Loading local jars from ivy works fine.
Currently blocked by this issue. Any updates? Can I help in any way?


use new JAVA_HOME path and *-default-jvm for jdk/jre-11

Brings 11 up to the new standard installation path for java, and uses the -default-jvm package.
Related: https://github.com/wolfi-dev/os/pull/2075

draft until jdk11 packages are updated

the package is updated already isn't it? https://github.com/wolfi-dev/os/pull/2075

the package is updated already isn't it? wolfi-dev/os#2075

it was missing aarch64, which should be g2g now, bringing this back as ready


feat(network): extract swarm build into bin utils

Pull Request type
Please check the type of change your PR introduces:

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no API changes)
[ ] Build-related changes
[ ] Documentation content changes
[ ] Other (please describe):

What is the current behavior?

Issue Number: N/A
What is the new behavior?

Does this introduce a breaking change?

[ ] Yes
[ ] No

Other information

This change is

Current dependencies on/for this PR:

main

PR #1617   👈

This stack of pull requests is managed by Graphite.


Add GetPeerOperationalId API to session interface

Problem
Partially fixes #13397
Change overview

Add a new class OperationalId contains tuple <FabricIndex, NodeId>
Add a new API GetPeerOperationalId in session interface.

For secure sessions returns corresponding OperationalId
For group and unsecure sessions return an undefined OperationalId

Introduce log maco ChipLogFormatOperationalId and ChipLogValueOperationalId to help print OperationalId structure

Testing
Passes tests.

Deprecated by #15418


Buffer overwrite in topmodel initialization

The following loop will cause out of bound writes on Q when initialized via BMI:
https://github.com/NOAA-OWP/topmodel/blob/9452b7b391a1ea7ad9e079ebde05135b12fe0527/src/topmodel.c#L642
BMI allocates Q to hold nstep doubles, which it sets to nstep=1 just proir to this allocation:
https://github.com/NOAA-OWP/topmodel/blob/9452b7b391a1ea7ad9e079ebde05135b12fe0527/src/bmi_topmodel.c#L282
However, the topmodel init function iterates and writes to Q num_delay times, where num_delay is determined by the value of tch
https://github.com/NOAA-OWP/topmodel/blob/9452b7b391a1ea7ad9e079ebde05135b12fe0527/src/topmodel.c#L577
which is computed from the distance_from_outlet and the chvdt parameters.
https://github.com/NOAA-OWP/topmodel/blob/9452b7b391a1ea7ad9e079ebde05135b12fe0527/src/topmodel.c#L564C34-L564C34
The distance_from_outlet is a dynamic input read from a file
https://github.com/NOAA-OWP/topmodel/blob/9452b7b391a1ea7ad9e079ebde05135b12fe0527/src/topmodel.c#L496C69-L496C69
The allocation of Q MUST be the same size as num_delay.
Similarly, and perhaps contradictorily the next loop in init iterates over num_time_delay_histo_ords
https://github.com/NOAA-OWP/topmodel/blob/9452b7b391a1ea7ad9e079ebde05135b12fe0527/src/topmodel.c#L647
and writes to Q for each of these iterations, with a computed index offset of (*num_delay)+i;
This would imply that num_time_delay_histo_ords <= num_delay is a necessary (but perhaps not sufficient) condition, otherwise you would have the same potential overwrite problem.  This relationship isn't clear, and definitely isn't validated and/or enforced, as num_time_delay_histo_ords is also computed from tch, which as noted above is a dynamic input read from an input file.
So even if Q were allocated to be num_delay in size, it would be quite possible to overwrite the buffer by crafting an input to dist_from_channel that allowed num_time_delay_histo_ords to be sufficiently larger than num_delay.

Good catch.   Q is hard-coded as an array of length 2500 in the Fortran code.

The C program for Topmodel includes:
fscanf(input_fptr,"%d %lf",nstep,dt);
where that line of the input file is:
950  1.0
Seems like a bug in the BMI init function.    Q should not be allocated until we know nstep.

Seems like a bug in the BMI init function. Q should not be allocated until we know nstep.

Even then, there needs to be some validation of the relationship between nstep, and the user defined values in distance_from_outlet which derive the num_delay and the num_time_dely_histo_ords, otherwise an input could always be crafted which causes this buffer overflow.

Yes.   I had a version that I was looking at the other day where I checked something like this:
if(num_time_delay_histo_ords>10)  {
printf("num_time_delay_histo_ords>10.  Keith hard coded the maximum as 10. Change your input parameters and try again.\n");
exit(9);
}
The best solution of course, would be to allocate the array *tch after calculating num_time_delay_histo_ords.  Ben?

Looking at the code I see that the number of values provided for distance_from_outlet should be equal to the number of channels.  (see here https://github.com/Ben-Choat/topmodel/blob/MemAlloc/src/topmodel.c#L602).
I've added a few lines to enforce this relationship and error out if it is not met. Next I plan on identifying all arrays where the array size is utlimately dependent on num_channels, and allocating those arrays within the refactored init() functions as the size becomes known.

@hellkite500 , looking here (https://github.com/Ben-Choat/topmodel/blob/MemAlloc/src/topmodel.c#L749) you can see that Q must be equzal to int(num_time_delay_histo_ords) + int(num_delay). Both of those variables are floats and the loops are defined using <= num_delay (e.g.,). Q is assigned for however many ordinates are associated with num_delay, then additional values are assigned for however many ordinates are associated with num_time_delay_histo_ords.
Conceptually, num_delay captures the discharge delay related to the first or 'main' channel. num_time_delay_histo_ords captures the discharge delay associated with the other channels. It is quite possible (and I'm observing) that num_delay = 0 in instances where dist_from_outlet is small relative to channel velocity.

This keeps getting weirder:

At each timestep overland flow and baseflow are calculated and added together to get a total discharge for that time step (Qout = qb+qof)
That total discharge is spread through time using the time_delay_histogram.
Only the first element of the spread-out discharge is ever printed or used.
In the water balance, the total discharge (Qout), before time delay, is used.
There appears to be water left in the watershed at each timestep, and never accounted for.
I would think that after discharge for the next timestep is calculated, the leftover discharge from the previous timestep would be added to it, but this never occurs.
This is also the case in the original fortran code.
It seems this would result in a closed water balance since the total discharge (Qout) is used in the water balance calculation, but if you were to sum the discharges reported at each timestep (Q – which is used for comparing to Qobserved) it will not be a closed water balance, and the summed incremental discharge should be less than the total discharge used in the water balance.
To test this, I commented out several lines of code that assign values to Q[>1] and time_delay_histogram[>1]. I also commented out lines that calculated values such as a1, a2, and sumar, which also never appear to be used, other than for printing information about the time_delay_histogram, which is never used except for the first element.
Change so only Q[1] written in topmod()
o	Does not change results
Change so only Q[1] written in init()
o	Does not change results
In init() commenting out calculations of or assigning nonsensical values to time_delay_histogram[>1] and vars such as a1, sumar, a2 does not change results

Tests confirmed this to be the case. I’ve only tested on one set up, but tests suggest that indeed, at each time step, no value of Q except for Q[1] ever needs to be calculated. Same is true of time_delay_histogram, only time_delay_histogram[1] is ever used.
So, we could actually allocate Q as a 1 element array (or 2 if you count 0) and just never assign the extra unused values to it. This is very unsatisfying, but editing the code to include values of Q[>1] would fundamentally change output from topmodel which I believe is beyond the scope of what we want to do within NGEN.
I compared the code seen here (https://github.com/Ben-Choat/topmodel/blob/testQ/src/topmodel.c) with the master branch output.

Editing the code so that only the first element of Q (i.e., Q[1]) is used fixed the memory allocation issue related to Q and results match results from the Master branch. I can now edit the chv variable however I'd like without error.
This feels a bit hacky, but solves the issue. I'm wondering if any of the newer versions of topmodel corrected how Q is calculated. I see there was  dynamic-topmodel release and a version for R.

I would think that after discharge for the next timestep is calculated, the leftover discharge from the previous timestep would be added to it, but this never occurs.

I'm starting to see what is going on here.  Since the total water is temporally disaggregated based on the unit hydrograh, then for any given time step t, you have to be able to account for t+num_ordinate times so that the delayed water from t is available at t+1.
If you don't do this, then I think there is a mass balance bug here, as you observed.  We will loose the delayed contribution at future time steps.
I think I can fix this appropriately, but I need to do a little sketching of the system and find the correct way to represent a single time step of Q as multiple time steps of Q approriately.

That is exactly how I'd interpet things as well. I'm wondering about the implications of changing output from topmodel. For example, if someone tested output from our corrected version with the uncorrected version which has been used for decades, the results for discharge would be different.
I'm happy to give it a go if we want to move in that direction.
A couple of notes/thoughts:

The number of time_delay_ords does not change unless input parameters change (e.g., for calibration)
Allocating Q within the refactored init() functions could properly allocate Q for the new number of time_delay_ords depending on input parameters.


Use tags for flexpart-cosmo, int2lm and cosmo tests

Fixes https://github.com/C2SM/spack-c2sm/issues/873, https://github.com/C2SM/spack-c2sm/issues/869, https://github.com/C2SM/spack-c2sm/issues/863

launch jenkins int2lm cosmo

balfrin
:green_circle: unit testTest:green_circle:summary :green_circle: integration testTest:green_circle:cosmo-spack_info :green_circle:cosmo-spack_spec :green_circle:cosmo_cosmo_target=gpu_+serialize_+claw_+zlib_ng_+oasis-spack_spec :green_circle:cosmo_cosmo_target=gpu_~cppdycore-spack_spec :green_circle:int2lm-spack_info :green_circle:int2lm-spack_spec :green_circle:int2lm_+parallel-spack_spec

launch jenkins int2lm cosmo

tsa
:green_circle: unit testTest:green_circle:summary :green_circle: integration testTest:green_circle:cosmo-spack_info :green_circle:int2lm-spack_info :green_circle:int2lm-spack_spec :green_circle:int2lm_+parallel-spack_spec :green_circle: system testTest:green_circle:Int2lm-install_c2sm_master_gcc :green_circle:Int2lm-install_version_3_00_gcc :green_circle:Int2lm-install_version_3_00_nvhpc :green_circle:Int2lm-install_version_3_00_nvhpc_fixed_definitions

balfrin
:green_circle: unit testTest:green_circle:summary :green_circle: integration testTest:green_circle:cosmo-spack_info :green_circle:cosmo-spack_spec :green_circle:cosmo_cosmo_target=gpu_+serialize_+claw_+zlib_ng_+oasis-spack_spec :green_circle:cosmo_cosmo_target=gpu_~cppdycore-spack_spec :green_circle:int2lm-spack_info :green_circle:int2lm-spack_spec :green_circle:int2lm_+parallel-spack_spec

tsa
:green_circle: unit testTest:green_circle:summary :green_circle: integration testTest:green_circle:cosmo-spack_info :green_circle:int2lm-spack_info :green_circle:int2lm-spack_spec :green_circle:int2lm_+parallel-spack_spec :green_circle: system testTest:green_circle:Int2lm-install_c2sm_master_gcc :green_circle:Int2lm-install_version_3_00_gcc :green_circle:Int2lm-install_version_3_00_nvhpc :green_circle:Int2lm-install_version_3_00_nvhpc_fixed_definitions

daint
:green_circle: unit testTest:green_circle:summary :green_circle: integration testTest:green_circle:cosmo-spack_info :green_circle:cosmo-spack_spec :green_circle:cosmo_cosmo_target=gpu_+serialize_+claw_+zlib_ng_+oasis-spack_spec :green_circle:cosmo_cosmo_target=gpu_~cppdycore-spack_spec :green_circle:int2lm-spack_info :green_circle:int2lm-spack_spec :green_circle:int2lm_+parallel-spack_spec :red_circle: system testTest:green_circle:Int2lm-install_c2sm_master_gcc :green_circle:Int2lm-install_c2sm_master_nvhpc :green_circle:Int2lm-install_version_3_00_gcc :green_circle:Int2lm-install_version_3_00_nvhpc_fixed_definitions :red_circle:nvhpc_cpu_double :red_circle:nvhpc_gpu_double
WARNING: Serial tests did not run for system tests

daint
:green_circle: unit testTest:green_circle:summary :green_circle: integration testTest:green_circle:cosmo-spack_info :green_circle:cosmo-spack_spec :green_circle:cosmo_cosmo_target=gpu_+serialize_+claw_+zlib_ng_+oasis-spack_spec :green_circle:cosmo_cosmo_target=gpu_~cppdycore-spack_spec :green_circle:int2lm-spack_info :green_circle:int2lm-spack_spec :green_circle:int2lm_+parallel-spack_spec :red_circle: system testTest:green_circle:Int2lm-install_c2sm_master_gcc :green_circle:Int2lm-install_c2sm_master_nvhpc :green_circle:Int2lm-install_version_3_00_gcc :green_circle:Int2lm-install_version_3_00_nvhpc_fixed_definitions :hourglass:nvhpc_cpu_double slurm time limit:green_circle:nvhpc_gpu_double
WARNING: Serial tests did not run for system tests

balfrin
:green_circle: unit testTest:green_circle:summary :green_circle: integration testTest:green_circle:cosmo-spack_info :green_circle:cosmo-spack_spec :green_circle:cosmo_cosmo_target=gpu_+serialize_+claw_+zlib_ng_+oasis-spack_spec :green_circle:cosmo_cosmo_target=gpu_~cppdycore-spack_spec :green_circle:flexpart-cosmo-spack_info :green_circle:flexpart-cosmo-spack_spec :green_circle:int2lm-spack_info :green_circle:int2lm-spack_spec :green_circle:int2lm_+parallel-spack_spec :green_circle: system testTest:green_circle:FlexpartCosmo-install

tsa
:green_circle: unit testTest:green_circle:summary :green_circle: integration testTest:green_circle:cosmo-spack_info :green_circle:flexpart-cosmo-spack_info :green_circle:int2lm-spack_info :green_circle:int2lm-spack_spec :green_circle:int2lm_+parallel-spack_spec :green_circle: system testTest:green_circle:Int2lm-install_c2sm_master_gcc :green_circle:Int2lm-install_version_3_00_gcc :green_circle:Int2lm-install_version_3_00_nvhpc :green_circle:Int2lm-install_version_3_00_nvhpc_fixed_definitions

daint
:green_circle: unit testTest:green_circle:summary :green_circle: integration testTest:green_circle:cosmo-spack_info :green_circle:cosmo-spack_spec :green_circle:cosmo_cosmo_target=gpu_+serialize_+claw_+zlib_ng_+oasis-spack_spec :green_circle:cosmo_cosmo_target=gpu_~cppdycore-spack_spec :green_circle:flexpart-cosmo-spack_info :green_circle:flexpart-cosmo-spack_spec :green_circle:int2lm-spack_info :green_circle:int2lm-spack_spec :green_circle:int2lm_+parallel-spack_spec :green_circle: system testTest:green_circle:FlexpartCosmo-install :green_circle:Int2lm-install_c2sm_master_gcc :green_circle:Int2lm-install_c2sm_master_nvhpc :green_circle:Int2lm-install_version_3_00_gcc :green_circle:Int2lm-install_version_3_00_nvhpc :green_circle:Int2lm-install_version_3_00_nvhpc_fixed_definitions :green_circle:nvhpc_cpu_double :green_circle:nvhpc_gpu_double


Formatter: Preserve leading empty lines of indented classes and functions

While the behavior for empty lines before top level classes and functions looks correct, indented classes and function can gain or lose their leading newlines
black:
def f():
    ...
    # comment

    class Meta:
        pass

    if True:

        def register_type():
            pass

ours:
def f():
    ...

    # comment

    class Meta:
        pass

    if True:
        def register_type():
            pass

I'm working on this.

I've noticed a few other incompatibilities after looking back at my old implementation:

The first entry does need a separator if it's a class or function within a nested
body that isn't a class or function. Also, Black allows one blank line between a
class and its docstring (the same does not apply to functions).
If a function or class has a leading comment, then a blank line, we don't want to
add one before the comment. The enforcement around
is_last_function_or_class_definition || is_current_function_or_class_definition
should be relative to the function or class definition, not its leading comments.
We're not inserting newlines after imports.
Black requires one newline after a class docstring.

(2) will cause problems with the current approach, I think. As an example, given:
x = 1
# comment

def f():
    pass

Black wants:
x = 1
# comment

def f():
    pass

Whereas we do:
x = 1

# comment

def f():
    pass

That means the code that handles newlines-after-comments needs to now be aware of the thing it's commenting, the level of nesting, etc.

Perhaps the "easiest" way to get this to work would be to make # comment a trailing comment on the previous node, not a leading comment on the function, if there's at least one blank line between the comment and the function?

(I will own all of those deviations.)

(I will own all of those deviations.)

Are you looking for input or are these comment's meant as documentation?

The deviations are just meant as documentation, not expecting any input! Unless you have a quick reaction to the idea I suggested in ‘Perhaps the "easiest" way to get this to work…’, but I haven’t spent time validating that yet.

Perhaps the "easiest" way to get this to work would be to make # comment a trailing comment on the previous node, not a leading comment on the function, if there's at least one blank line between the comment and the function?

I think that could work well.


jaxlib macos wheels haven't been published since 0.1.18

See https://pypi.org/simple/jaxlib/.

I pushed Mac builds of jaxlib 0.1.20 to Pypi.


Adding import to Android

When adding the required import to Android it is not finding the package.
I am probably doing it incorrectly but when adding:
import com.ahm.capacitor.camera.preview.CameraPreview;

this.init(savedInstanceState, new ArrayList<Class<? extends Plugin>>() {{
      // Additional plugins you've installed go here
      // Ex: add(TotallyAwesomePlugin.class);
      add(CameraPreview.class);
}});

It gives an error for the package name.  Is there any extra steps I need to follow before importing the package.

I was dumb and didn't realize the package you need to import is in the android folder of the app.

Can you explain?
Because the package does not exist...
import com.ahm.capacitor.camera.preview.CameraPreview;


[Skills] Update ChannelServiceRoutes for improved Express support and add integration tests

Description
Fix bug around using the del() method on Express Applications when this method has been deprecated in Express 4.x.
The WebServer interface provided in ChannelServiceRoutes already had an optional delete() method which was added explicitly for Express Apps (Application.delete()).
The integration-tests folder in libraries/ has been added with TypeScript tests to verify that ChannelServiceRoutes.register() adds the 12 Channel Service routes to the provided server.
Specific Changes

Fix bug in ChanelServiceRoutes only using del() to register paths for DELETE methods.
Add TypeScript Integration tests for botbuilder with restify and express.

There the update Dependencies' version script is not updating the bot-integration-tests folder as intended, so<EMAIL_ADDRESS>and<EMAIL_ADDRESS>are being installed for the project, which leads to build failures.
I'll investigate the script after 4.7 is released.

Close this PR, as it's targeting 4.7. Please retarget to master.


The source directory does not appear to contain CMakeLists.txt.

Related to #73
Scenario
I'm having a simple project with an "opencv4nodejs" key in package.json
  "opencv4nodejs": {
    "autoBuildFlags": "-DCMAKE_BUILD_TYPE=RELEASE -DBUILD_opencv_core=ON -DBUILD_opencv_calib3d=ON -DBUILD_opencv_python_tests=OFF -DBUILD_opencv_core=OFF -DBUILD_opencv_imgproc=OFF -DBUILD_opencv_imgcodecs=OFF -DBUILD_opencv_videoio=OFF -DBUILD_opencv_highgui=OFF -DBUILD_opencv_video=OFF -DBUILD_opencv_calib3d=OFF -DBUILD_opencv_features2d=OFF -DBUILD_opencv_objdetect=OFF -DBUILD_opencv_dnn=OFF -DBUILD_opencv_ml=OFF -DBUILD_opencv_flann=OFF -DBUILD_opencv_photo=OFF -DBUILD_opencv_gapi=OFF -DBUILD_opencv_face=OFF -DBUILD_opencv_img_hash=OFF -DBUILD_opencv_text=OFF -DBUILD_opencv_tracking=OFF -DBUILD_opencv_videostab=OFF  -DBUILD_opencv_xfeatures2d=OFF -DBUILD_opencv_ximgproc=OFF -DWITH_IPP=OFF -DWITH_V4L=OFF -DWITH_FFMPEG=OFF -DWITH_GSTREAMER=OFF -DWITH_GTK=OFF -DWITH_PROTOBUF=OFF -DBUILD_PROTOBUF=OFF -DOPENCV_DNN_OPENCL=OFF -DWITH_WIN32UI=OFF -DWITH_PNG=OFF -DWITH_JPEG=OFF -DWITH_TIFF=OFF -DWITH_WEBP=OFF -DWITH_OPENJPEG=OFF -DWITH_JASPER=OFF -DWITH_OPENEXR=OFF -DBUILD_opencv_python=OFF -DBUILD_opencv_java=OFF"
  },

I'm doing
> npm install

added 112 packages, and audited 113 packages in 8s

8 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
npm timing command:install Completed in 7747ms
npm notice
npm notice New major version of npm available! 8.19.3 -> 9.5.0
npm notice Changelog: <https://github.com/npm/cli/releases/tag/v9.5.0>
npm notice Run `npm install -g<EMAIL_ADDRESS>to update!
npm notice
npm verb exit 0
npm timing npm Completed in 7839ms
npm info ok

The auto build seems to not be done so i'm re-running it using
npx build-opencv rebuild

Actual
I've got error : The source directory<EMAIL_ADDRESS>does not appear to contain CMakeLists.txt.
Full logs

info config found opencv4nodejs section in /opt/nodejs/package.json
info init using openCV verison 4.6.0
info init INIT_CWD is defined overwriting root path to /opt/nodejs
info applyEnvsFromPackageJson the following opencv4nodejs environment variables are set in the package.json:
info applyEnvsFromPackageJson autoBuildFlags: -DCMAKE_BUILD_TYPE=RELEASE -DBUILD_opencv_core=ON -DBUILD_opencv_calib3d=ON -DBUILD_opencv_python_tests=OFF -DBUILD_opencv_core=OFF -DBUILD_opencv_imgproc=OFF -DBUILD_opencv_imgcodecs=OFF -DBUILD_opencv_videoio=OFF -DBUILD_opencv_highgui=OFF -DBUILD_opencv_video=OFF -DBUILD_opencv_calib3d=OFF -DBUILD_opencv_features2d=OFF -DBUILD_opencv_objdetect=OFF -DBUILD_opencv_dnn=OFF -DBUILD_opencv_ml=OFF -DBUILD_opencv_flann=OFF -DBUILD_opencv_photo=OFF -DBUILD_opencv_gapi=OFF -DBUILD_opencv_face=OFF -DBUILD_opencv_img_hash=OFF -DBUILD_opencv_text=OFF -DBUILD_opencv_tracking=OFF -DBUILD_opencv_videostab=OFF  -DBUILD_opencv_xfeatures2d=OFF -DBUILD_opencv_ximgproc=OFF -DWITH_IPP=OFF -DWITH_V4L=OFF -DWITH_FFMPEG=OFF -DWITH_GSTREAMER=OFF -DWITH_GTK=OFF -DWITH_PROTOBUF=OFF -DBUILD_PROTOBUF=OFF -DOPENCV_DNN_OPENCL=OFF -DWITH_WIN32UI=OFF -DWITH_PNG=OFF -DWITH_JPEG=OFF -DWITH_TIFF=OFF -DWITH_WEBP=OFF -DWITH_OPENJPEG=OFF -DWITH_JASPER=OFF -DWITH_OPENEXR=OFF -DBUILD_opencv_python=OFF -DBUILD_opencv_java=OFF
info config adding cmake flag "-DCMAKE_BUILD_TYPE=RELEASE"
info config cmake flag "-DBUILD_opencv_core=ON" had no effect.
info config cmake flag "-DBUILD_opencv_calib3d=ON" had no effect.
info config replacing cmake flag "-DBUILD_opencv_python_tests=ON" by "-DBUILD_opencv_python_tests=OFF"
info config replacing cmake flag "-DBUILD_opencv_core=ON" by "-DBUILD_opencv_core=OFF"
info config replacing cmake flag "-DBUILD_opencv_imgproc=ON" by "-DBUILD_opencv_imgproc=OFF"
info config replacing cmake flag "-DBUILD_opencv_imgcodecs=ON" by "-DBUILD_opencv_imgcodecs=OFF"
info config replacing cmake flag "-DBUILD_opencv_videoio=ON" by "-DBUILD_opencv_videoio=OFF"
info config replacing cmake flag "-DBUILD_opencv_highgui=ON" by "-DBUILD_opencv_highgui=OFF"
info config replacing cmake flag "-DBUILD_opencv_video=ON" by "-DBUILD_opencv_video=OFF"
info config replacing cmake flag "-DBUILD_opencv_calib3d=ON" by "-DBUILD_opencv_calib3d=OFF"
info config replacing cmake flag "-DBUILD_opencv_features2d=ON" by "-DBUILD_opencv_features2d=OFF"
info config replacing cmake flag "-DBUILD_opencv_objdetect=ON" by "-DBUILD_opencv_objdetect=OFF"
info config replacing cmake flag "-DBUILD_opencv_dnn=ON" by "-DBUILD_opencv_dnn=OFF"
info config replacing cmake flag "-DBUILD_opencv_ml=ON" by "-DBUILD_opencv_ml=OFF"
info config replacing cmake flag "-DBUILD_opencv_flann=ON" by "-DBUILD_opencv_flann=OFF"
info config replacing cmake flag "-DBUILD_opencv_photo=ON" by "-DBUILD_opencv_photo=OFF"
info config replacing cmake flag "-DBUILD_opencv_gapi=ON" by "-DBUILD_opencv_gapi=OFF"
info config replacing cmake flag "-DBUILD_opencv_face=ON" by "-DBUILD_opencv_face=OFF"
info config replacing cmake flag "-DBUILD_opencv_img_hash=ON" by "-DBUILD_opencv_img_hash=OFF"
info config replacing cmake flag "-DBUILD_opencv_text=ON" by "-DBUILD_opencv_text=OFF"
info config replacing cmake flag "-DBUILD_opencv_tracking=ON" by "-DBUILD_opencv_tracking=OFF"
info config replacing cmake flag "-DBUILD_opencv_videostab=ON" by "-DBUILD_opencv_videostab=OFF"
info config replacing cmake flag "-DBUILD_opencv_xfeatures2d=ON" by "-DBUILD_opencv_xfeatures2d=OFF"
info config replacing cmake flag "-DBUILD_opencv_ximgproc=ON" by "-DBUILD_opencv_ximgproc=OFF"
info config adding cmake flag "-DWITH_IPP=OFF"
info config adding cmake flag "-DWITH_V4L=OFF"
info config adding cmake flag "-DWITH_FFMPEG=OFF"
info config adding cmake flag "-DWITH_GSTREAMER=OFF"
info config adding cmake flag "-DWITH_GTK=OFF"
info config adding cmake flag "-DWITH_PROTOBUF=OFF"
info config adding cmake flag "-DBUILD_PROTOBUF=OFF"
info config adding cmake flag "-DOPENCV_DNN_OPENCL=OFF"
info config adding cmake flag "-DWITH_WIN32UI=OFF"
info config adding cmake flag "-DWITH_PNG=OFF"
info config adding cmake flag "-DWITH_JPEG=OFF"
info config adding cmake flag "-DWITH_TIFF=OFF"
info config adding cmake flag "-DWITH_WEBP=OFF"
info config adding cmake flag "-DWITH_OPENJPEG=OFF"
info config adding cmake flag "-DWITH_JASPER=OFF"
info config adding cmake flag "-DWITH_OPENEXR=OFF"
info config adding cmake flag "-DBUILD_opencv_python=OFF"
info config adding cmake flag "-DBUILD_opencv_java=OFF"
info init Workdir will be<EMAIL_ADDRESS>info install Using openCV 4.6.0
info config adding cmake flag "-DCMAKE_BUILD_TYPE=RELEASE"
info config cmake flag "-DBUILD_opencv_core=ON" had no effect.
info config cmake flag "-DBUILD_opencv_calib3d=ON" had no effect.
info config replacing cmake flag "-DBUILD_opencv_python_tests=ON" by "-DBUILD_opencv_python_tests=OFF"
....
info config replacing cmake flag "-DBUILD_opencv_ximgproc=ON" by "-DBUILD_opencv_ximgproc=OFF"
info config adding cmake flag "-DWITH_IPP=OFF"
info config adding cmake flag "-DWITH_V4L=OFF"
info config adding cmake flag "-DWITH_FFMPEG=OFF"
info config adding cmake flag "-DWITH_GSTREAMER=OFF"
info config adding cmake flag "-DWITH_GTK=OFF"
info config adding cmake flag "-DWITH_PROTOBUF=OFF"
info config adding cmake flag "-DBUILD_PROTOBUF=OFF"
info config adding cmake flag "-DOPENCV_DNN_OPENCL=OFF"
info config adding cmake flag "-DWITH_WIN32UI=OFF"
info config adding cmake flag "-DWITH_PNG=OFF"
info config adding cmake flag "-DWITH_JPEG=OFF"
info config adding cmake flag "-DWITH_TIFF=OFF"
info config adding cmake flag "-DWITH_WEBP=OFF"
info config adding cmake flag "-DWITH_OPENJPEG=OFF"
info config adding cmake flag "-DWITH_JASPER=OFF"
info config adding cmake flag "-DWITH_OPENEXR=OFF"
info config adding cmake flag "-DBUILD_opencv_python=OFF"
info config adding cmake flag "-DBUILD_opencv_java=OFF"
info config adding cmake flag "-DCMAKE_BUILD_TYPE=RELEASE"
info config cmake flag "-DBUILD_opencv_core=ON" had no effect.
info config cmake flag "-DBUILD_opencv_calib3d=ON" had no effect.
info config replacing cmake flag "-DBUILD_opencv_python_tests=ON" by "-DBUILD_opencv_python_tests=OFF"
info config replacing cmake flag "-DBUILD_opencv_core=ON" by "-DBUILD_opencv_core=OFF"
info config replacing cmake flag "-DBUILD_opencv_imgproc=ON" by "-DBUILD_opencv_imgproc=OFF"
info config replacing cmake flag "-DBUILD_opencv_imgcodecs=ON" by "-DBUILD_opencv_imgcodecs=OFF"
info config replacing cmake flag "-DBUILD_opencv_videoio=ON" by "-DBUILD_opencv_videoio=OFF"
info config replacing cmake flag "-DBUILD_opencv_highgui=ON" by "-DBUILD_opencv_highgui=OFF"
info config replacing cmake flag "-DBUILD_opencv_video=ON" by "-DBUILD_opencv_video=OFF"
info config replacing cmake flag "-DBUILD_opencv_calib3d=ON" by "-DBUILD_opencv_calib3d=OFF"
info config replacing cmake flag "-DBUILD_opencv_features2d=ON" by "-DBUILD_opencv_features2d=OFF"
info config replacing cmake flag "-DBUILD_opencv_objdetect=ON" by "-DBUILD_opencv_objdetect=OFF"
info config replacing cmake flag "-DBUILD_opencv_dnn=ON" by "-DBUILD_opencv_dnn=OFF"
info config replacing cmake flag "-DBUILD_opencv_ml=ON" by "-DBUILD_opencv_ml=OFF"
info config replacing cmake flag "-DBUILD_opencv_flann=ON" by "-DBUILD_opencv_flann=OFF"
info config replacing cmake flag "-DBUILD_opencv_photo=ON" by "-DBUILD_opencv_photo=OFF"
info config replacing cmake flag "-DBUILD_opencv_gapi=ON" by "-DBUILD_opencv_gapi=OFF"
info config replacing cmake flag "-DBUILD_opencv_face=ON" by "-DBUILD_opencv_face=OFF"
info config replacing cmake flag "-DBUILD_opencv_img_hash=ON" by "-DBUILD_opencv_img_hash=OFF"
info config replacing cmake flag "-DBUILD_opencv_text=ON" by "-DBUILD_opencv_text=OFF"
info config replacing cmake flag "-DBUILD_opencv_tracking=ON" by "-DBUILD_opencv_tracking=OFF"
info config replacing cmake flag "-DBUILD_opencv_videostab=ON" by "-DBUILD_opencv_videostab=OFF"
info config replacing cmake flag "-DBUILD_opencv_xfeatures2d=ON" by "-DBUILD_opencv_xfeatures2d=OFF"
info config replacing cmake flag "-DBUILD_opencv_ximgproc=ON" by "-DBUILD_opencv_ximgproc=OFF"
info config adding cmake flag "-DWITH_IPP=OFF"
info config adding cmake flag "-DWITH_V4L=OFF"
info config adding cmake flag "-DWITH_FFMPEG=OFF"
info config adding cmake flag "-DWITH_GSTREAMER=OFF"
info config adding cmake flag "-DWITH_GTK=OFF"
info config adding cmake flag "-DWITH_PROTOBUF=OFF"
info config adding cmake flag "-DBUILD_PROTOBUF=OFF"
info config adding cmake flag "-DOPENCV_DNN_OPENCL=OFF"
info config adding cmake flag "-DWITH_WIN32UI=OFF"
info config adding cmake flag "-DWITH_PNG=OFF"
info config adding cmake flag "-DWITH_JPEG=OFF"
info config adding cmake flag "-DWITH_TIFF=OFF"
info config adding cmake flag "-DWITH_WEBP=OFF"
info config adding cmake flag "-DWITH_OPENJPEG=OFF"
info config adding cmake flag "-DWITH_JASPER=OFF"
info config adding cmake flag "-DWITH_OPENEXR=OFF"
info config adding cmake flag "-DBUILD_opencv_python=OFF"
info config adding cmake flag "-DBUILD_opencv_java=OFF"
CMake Error: The source directory<EMAIL_ADDRESS>does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
ERR! build Compilation failed, previous calls:
ERR! build rimraf<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>ERR! build mkdir -p<EMAIL_ADDRESS>ERR! build cd<EMAIL_ADDRESS>ERR! build git clone --quiet -b 4.6.0 --single-branch --depth 1 --progress https://github.com/opencv/opencv_contrib.git<EMAIL_ADDRESS>ERR! build git clone --quiet -b 4.6.0 --single-branch --depth 1 --progress https://github.com/opencv/opencv.git<EMAIL_ADDRESS>ERR! build export<EMAIL_ADDRESS>ERR! build export OPENCV_INCLUDE_DIR=
ERR! build export<EMAIL_ADDRESS>ERR! build cd<EMAIL_ADDRESS>ERR! build cmake<EMAIL_ADDRESS><EMAIL_ADDRESS>-DCMAKE_BUILD_TYPE=Release -DCMAKE_BUILD_TYPES=Release -DBUILD_EXAMPLES=OFF -DBUILD_DOCS=OFF -DBUILD_TESTS=OFF -DBUILD_opencv_dnn=ON -DENABLE_FAST_MATH=ON -DBUILD_PERF_TESTS=OFF -DBUILD_JAVA=OFF -DBUILD_ZLIB=OFF -DCUDA_NVCC_FLAGS=--expt-relaxed-constexpr -DWITH_VTK=OFF -DOPENCV_ENABLE_NONFREE=ON<EMAIL_ADDRESS>-DBUILD_opencv_apps=OFF -DBUILD_opencv_aruco=OFF -DBUILD_opencv_bgsegm=OFF -DBUILD_opencv_bindings_generator=OFF -DBUILD_opencv_bioinspired=OFF -DBUILD_opencv_calib3d=OFF -DBUILD_opencv_ccalib=OFF -DBUILD_opencv_core=OFF -DBUILD_opencv_datasets=OFF -DBUILD_opencv_dnn=OFF -DBUILD_opencv_dnn_objdetect=OFF -DBUILD_opencv_dpm=OFF -DBUILD_opencv_face=OFF -DBUILD_opencv_features2d=OFF -DBUILD_opencv_flann=OFF -DBUILD_opencv_fuzzy=OFF -DBUILD_opencv_gapi=OFF -DBUILD_opencv_hfs=OFF -DBUILD_opencv_highgui=OFF -DBUILD_opencv_img_hash=OFF -DBUILD_opencv_imgcodecs=OFF -DBUILD_opencv_imgproc=OFF -DBUILD_opencv_java_bindings_generator=OFF -DBUILD_opencv_js=OFF -DBUILD_opencv_line_descriptor=OFF -DBUILD_opencv_ml=OFF -DBUILD_opencv_objc_bindings_generator=OFF -DBUILD_opencv_objdetect=OFF -DBUILD_opencv_optflow=OFF -DBUILD_opencv_phase_unwrapping=OFF -DBUILD_opencv_photo=OFF -DBUILD_opencv_python3=OFF -DBUILD_opencv_python_bindings_generator=OFF -DBUILD_opencv_python_tests=OFF -DBUILD_opencv_reg=OFF -DBUILD_opencv_rgbd=OFF -DBUILD_opencv_saliency=OFF -DBUILD_opencv_shape=OFF -DBUILD_opencv_stereo=OFF -DBUILD_opencv_stitching=OFF -DBUILD_opencv_structured_light=OFF -DBUILD_opencv_superres=OFF -DBUILD_opencv_surface_matching=OFF -DBUILD_opencv_text=OFF -DBUILD_opencv_tracking=OFF -DBUILD_opencv_ts=OFF -DBUILD_opencv_video=OFF -DBUILD_opencv_videoio=OFF -DBUILD_opencv_videostab=OFF -DBUILD_opencv_wechat_qrcode=OFF -DBUILD_opencv_world=OFF -DBUILD_opencv_xfeatures2d=OFF -DBUILD_opencv_ximgproc=OFF -DBUILD_opencv_xobjdetect=OFF -DBUILD_opencv_xphoto=OFF
ERR! install running: cmake<EMAIL_ADDRESS><EMAIL_ADDRESS>-DCMAKE_BUILD_TYPE=Release -DCMAKE_BUILD_TYPES=Release -DBUILD_EXAMPLES=OFF -DBUILD_DOCS=OFF -DBUILD_TESTS=OFF -DBUILD_opencv_dnn=ON -DENABLE_FAST_MATH=ON -DBUILD_PERF_TESTS=OFF -DBUILD_JAVA=OFF -DBUILD_ZLIB=OFF -DCUDA_NVCC_FLAGS=--expt-relaxed-constexpr -DWITH_VTK=OFF -DOPENCV_ENABLE_NONFREE=ON<EMAIL_ADDRESS>-DBUILD_opencv_apps=OFF -DBUILD_opencv_aruco=OFF -DBUILD_opencv_bgsegm=OFF -DBUILD_opencv_bindings_generator=OFF -DBUILD_opencv_bioinspired=OFF -DBUILD_opencv_calib3d=OFF -DBUILD_opencv_ccalib=OFF -DBUILD_opencv_core=OFF -DBUILD_opencv_datasets=OFF -DBUILD_opencv_dnn=OFF -DBUILD_opencv_dnn_objdetect=OFF -DBUILD_opencv_dpm=OFF -DBUILD_opencv_face=OFF -DBUILD_opencv_features2d=OFF -DBUILD_opencv_flann=OFF -DBUILD_opencv_fuzzy=OFF -DBUILD_opencv_gapi=OFF -DBUILD_opencv_hfs=OFF -DBUILD_opencv_highgui=OFF -DBUILD_opencv_img_hash=OFF -DBUILD_opencv_imgcodecs=OFF -DBUILD_opencv_imgproc=OFF -DBUILD_opencv_java_bindings_generator=OFF -DBUILD_opencv_js=OFF -DBUILD_opencv_line_descriptor=OFF -DBUILD_opencv_ml=OFF -DBUILD_opencv_objc_bindings_generator=OFF -DBUILD_opencv_objdetect=OFF -DBUILD_opencv_optflow=OFF -DBUILD_opencv_phase_unwrapping=OFF -DBUILD_opencv_photo=OFF -DBUILD_opencv_python3=OFF -DBUILD_opencv_python_bindings_generator=OFF -DBUILD_opencv_python_tests=OFF -DBUILD_opencv_reg=OFF -DBUILD_opencv_rgbd=OFF -DBUILD_opencv_saliency=OFF -DBUILD_opencv_shape=OFF -DBUILD_opencv_stereo=OFF -DBUILD_opencv_stitching=OFF -DBUILD_opencv_structured_light=OFF -DBUILD_opencv_superres=OFF -DBUILD_opencv_surface_matching=OFF -DBUILD_opencv_text=OFF -DBUILD_opencv_tracking=OFF -DBUILD_opencv_ts=OFF -DBUILD_opencv_video=OFF -DBUILD_opencv_videoio=OFF -DBUILD_opencv_videostab=OFF -DBUILD_opencv_wechat_qrcode=OFF -DBUILD_opencv_world=OFF -DBUILD_opencv_xfeatures2d=OFF -DBUILD_opencv_ximgproc=OFF -DBUILD_opencv_xobjdetect=OFF -DBUILD_opencv_xphoto=OFF
ERR! install in<EMAIL_ADDRESS>exited with code 1 (for more info, set '--loglevel silly')'

Expected
I would expect opencv to be built

Should be fixed by https://github.com/UrielCh/npm-opencv-build/pull/6

fixed in v6.4.3 thanks @UrielCh


sap.ui.model.Model::getObject JavaDoc has no return value

OpenUI5 version: 1.68.1 (latest as of 25 July 2019)
File: /src/sap.ui.core/src/sap/ui/model/Model.js
Lines: 627-642
The JavaDoc comment for this method has no @return clause, so the documentation shows it as returning 'void'. I think it should have a return type of any, since it returns a data object (a plain JavaScript object).
Additionally, although it is implied this is an abstract method (so it must be overridden by derived concrete classes) there is no description.
Please add the @return clause, and please add a description telling us what this method is intended to do/return when it is overridden. (Or add links to other relevant documentation.)
To be honest, there are a lot of other fundamental methods that also lack this information.

Hello @theREALdebater ,
Thank you for sharing this finding. I've created an internal incident<PHONE_NUMBER>. The status of the issue will be updated here in GitHub.
Regards,
Gery


Custom Event entry is missing mandatory enum Event

Custom Events need to declare enum Event that is not mentioned in the Book.
See declaration on dojo-starter:
https://github.com/dojoengine/dojo-starter/blob/main/src/systems/actions.cairo#L16-L28
Please address...

Why is that enum required?
Where should we place this enum? I can only build when it is inside the system that uses it, can I declare outside?
Eternum has one enum in each system

i will love to work on this. assign this to me

have assigned you @ebukizy1


Color picker: top right corner is not clear to me

It seems the top-right corner shows the color I had in the beginning, if so, we should:

allow to restore it when I click it
maybe show a description or make it otherwise more clear that this was the original color

Otherwise it looks like a UX bug where we fail to update parts of the box with the selected color

#31640


Why use the module template when combining existing native project with flutter code?

When integrating flutter into an already existing project (iOS) there are these steps to follow.
But as an alternative we can also use:
flutter create
instead of:
flutter create-t module
and just add the classes, pods and what not from your original project in to the runner project that was create in the ios subfolder.
Why would creating a template module (-t module) and adding that module in the iOS project be the prefered way?

@jmagman might correct me. Theoretically, flutter create should just be a strict superset of flutter create -t module (with flutter create having a more fleshed out iOS xcode project wrapper that you can tweak and own).
But in implementation, there might be slight differences that we haven't fully tested against with the rest of the add-to-app flow.
We should merge them one day once the https://github.com/flutter/flutter/issues/37910 cleanup is done.

@durduman You could choose to organize your application in the way you describe.
Some apps are complex enough pre-Flutter that that migration overhead is too large.  For other apps, flutter is a small corner of the feature-set, and developers don't want to rearrange everything to match flutter's opinionated directory hierarchy.  Other developers want to embed Flutter binaries without requiring everyone on their large team to have flutter tooling installed.

Essentially: You have the option of either add-to-Flutter or add-to-existing-app.  You should choose whatever is best for your project, app, and team.
There's a nod to some of this reasoning in https://flutter.dev/docs/development/add-to-app#add-to-app.
@xster is there more documentation to track here?

There are likely minor technical differences with misaligned behaviors currently but I think we should probably not point out those differences if we erase those differences in behavior via https://github.com/flutter/flutter/issues/37910


cupy.asarray slower with pinned memory

Description
Hi,
tl;dr:
when I create a numpy array on pinned memory and copy it to the GPU using cupy.asarray or cupy.array it allocates new memory on the host and copies the numpy array which makes using pinned memory slower than not using it.
long version:
When you create a normal numpy array (not pinned memory) and copy it to the GPU using cupy.asarray or cp.array it creates pinned memory/page locked memory first, copies the array to the pinned memory and then copies it into the VRAM of the GPU (Pageable Data Transfer) .

(source: https://developer.nvidia.com/blog/how-optimize-data-transfers-cuda-cc/)
If you do the same thing again cupy.asarray skips the allocation step because it already has been done. This is the behaviour which i expected. I observed this behaviour in NVIDIA Nsight Systems 2023.2.1.
But there is a problem if you use a numpy array which is located on pinned memory (Pinned Data Transfer). If you want to copy it with cupy.asarray it doesn't recognize it as pinned memory an allocates new memory on the host. This allocation takes relatively long time making the my code slower when using pinned memory.
This allocation does not happen when using cupy.asnumpy with a numpy array on pinned memory for the "out" parameter. Because of this the mentioned problem i think cupy.asarray and cupy.array have a bug.

To avoid the unnecessary allocation of new pinned memory I am using img_gpu = cupy.empty_like(img) to get memory from the gpu memory pool and then img_gpu.set(img) to copy the data from the pinned host memory to the GPU.
Im using all cupy functions within a non-blocking stream to avoid synchronization after each cupy call.
I am using cupy 12.0.0.
Please see my commented test code for further information.
To Reproduce
import cupy as cp
import cupyx as cpx
import numpy as np
import time

print(cp.__version__)

def compute(img, stream, out):

    with stream:
        # img_gpu = cp.asarray(img) # copy img to gpu

        # cupy.asarray is the recommended way to copy data from the host to the gpu. However, it seems to have a bug
        # in the current cupy version (12.0.0). It doesn't recognize pinned memory. Instead, it allocates new
        # pinned memory and copies the data. This causes great overhead and makes working with pinned memory even
        # slower than working without pinned memory. This issue does not happen when using cupy.asnumpy to copy
        # from gpu to pinned memory on the host.
        # Because of the supposed bug, the following workaround is used which avoids
        # the overhead:
        img_gpu = cp.empty_like(img) # get memory from cupy's gpu memory pool
        img_gpu.set(img) # copy img to gpu

        # do some async operations to fill the queue of the stream
        img_gpu = img_gpu.astype(cp.float32) # change dtype
        img_gpu /= 314.2
        img_gpu *= 2
        img_gpu = img_gpu.transpose((2, 0, 1))[::-1]  # HWC to CHW, BGR to RGB

        img_cpu_new = cp.asnumpy(img_gpu, out=out) # copy result back to cpu

    stream.synchronize() # wait for the completion of queued work

    return img_cpu_new

def print_time(start,end, text):
    print(text, (end-start), "s")

def do_test(img, text, stream, out=None):
    start = time.time()
    img_result = compute(img, stream, out)
    end = time.time()
    print_time(start, end, text)

stream = cp.cuda.Stream() # cuda stream
shape = (1920, 1080, 3)
shape_result = (shape[2], shape[0], shape[1])

# warmup
img_cpu = np.random.randint(low=0, high=255, size=shape)  # image
do_test(img_cpu, "warmup:", stream)

# without pinned memory
img_cpu = np.random.randint(low=0, high=255, size=shape)  # image
do_test(img_cpu, "without pinned memory:", stream)

# with pinned memory
img_cpu = np.random.randint(low=0, high=255, size=shape)  # image
img_cpu_pinned = cpx.empty_like_pinned(img_cpu) # allocate pinned memory (aka page-locked memory)
img_cpu_pinned[:] = img_cpu # copy the image into the pinned memory
out_cpu_pinned = cpx.empty_pinned(shape_result, dtype=cp.float32) # allocate pinned memory for the result
do_test(img_cpu_pinned, "with pinned memory:", stream, out_cpu_pinned)

# profile this script using:
# nsys profile /usr/bin/python3 path_to_this_script/test_streams.py
# then open the generated *.nsys-rep file in NVIDIA Nsight Systems GUI

Installation
Wheel (pip install cupy-***)
Environment
# Paste the output here

Additional Information
No response

Thanks for raising this issue. Currently, we have cupy.asarray and cupy.array work as such to avoid potential data race as discussed:

https://github.com/cupy/cupy/blob/6668d290b33a65e18fecf8b817e2af839f31b7b3/cupy/_core/core.pyx#L2545-L2548
https://github.com/cupy/cupy/pull/5155#discussion_r621808782

BTW, CuPy also have the memory pool for pinned memory, so the staging memory should be reused even when you explicitly allocate pinned memory on the host. Doesn't it work for you?

Hi @takagi,
thank you very much for your response this is immensely helpful. I'm sorry for thinking that this was a bug.
I am not using the memory pool because it wanted to avoid coping images from paged memory to pinned / page-locked-memory on the CPU each time i upload an image to the GPU to reduce CPU load. Instead I wanted to allocate my images directly on pinned memory. In my actual code for image processing, I am reading video frames directly into the pinned memory using OpenCV.
import cv2
import cupy
import cupyx

cap = cv2.VideoCapture("path_to_video/video.avi")
pinned_mem = cupyx.empty_pinned((1920, 1080, 3), dtype=cupy.uint8) # allocate pinned memory
ret, frame = cap.read(pinned_mem) # read frame directly into pinned memory
frame_gpu = cupy.asarray(frame) # img from cpu to gpu

# some computations using cupy ...

CuPy uses the memory pool for pinned memory by default. The second allocation of cupyx.empty_pinned() should be fast if the memory chunk is reclaimed from the pool.

Hello @kmaehashi,
thank you! This cleared up my confusion.


Add helloworld-with-devshell example

What kind of change does this PR introduce?

[ ] Bugfix
[ ] Feature
[ ] Docs
[ ] New Binding issue #___
[ ] Code style update
[ ] Refactor
[ ] Build-related changes
[x] Other, please describe: Example with devshell

Does this PR introduce a breaking change?

[ ] Yes, and the changes were approved in issue #___
[x] No

Checklist

[ ] When resolving issues, they are referenced in the PR's title (e.g fix: remove a typo, closes #___, #___)
[ ] A change file is added if any packages will require a version bump due to this PR per the instructions in the readme.
[x] I have added a convincing reason for adding this feature, if necessary

Other information
This adds an example (copying the "helloworld" example) with a devshell, for demonstration purposes for #5711

I don't think this is necessary, the api example has an example usage of open_devtools

Okay, I'm gonna close this PR. Still, serves as a minimal code example for #5711.


🩹 Fix pre commit hook manifest

pre-commit just released v4.0.0 with the breaking change that language: python_venv was removed.
This breaks docformatter hook config at parse time, even for users that don't use docformatter-venv (e.g. I use the "normal" docformatter hook).
The error is:
An error has occurred: InvalidManifestError:
==> File /home/runner/.cache/pre-commit/repocernquz3/.pre-commit-hooks.yaml
==> At Hook(id='docformatter-venv')
==> At key: language
=====> Expected one of conda, coursier, dart, docker, docker_image, dotnet, fail, golang, haskell, lua, node, perl, pygrep, python, r, ruby, rust, script, swift, system but got: 'python_venv'
Check the log at /home/runner/.cache/pre-commit/pre-commit.log

In addition to removing docformatter-venv I also added the pre-commit built-in validate_manifest hook to check the hook manifest.
And for the linter CI to pass I had to add some additional fixes, since it seems to be broken since Aug 9, 2023 (most likely due to a tool update but the CI logs are already gone)
Additional info:
language: python_venv has been deprecated Feb 4, 2023 and should have emitted a warning since then based on the code.
However, in my last CI run using that passed pre-commit successfully and without warning (pre-commit==3.8.0).
...
[INFO] Installing environment for https://github.com/PyCQA/docformatter.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/MarcoGorelli/absolufy-imports.
...

Furthermore the built-in validate_manifest hook in pre-commit==3.8.0 also didn't have an issue with language: python_venv.
So it seems like there was no easy way to get a heads-up, except closely following the pre-commitchangelog.

Also thanks a lot for the project and its maintenance ❤

See also #289

@weibullguy you merged a topic-related PR in the past (#266). Perhaps you could accept this one too?

Great work @s-weigand , just hit this today.  I search for it and there is already a PR in the works.  Thank you!

This is currently breaking all our workflows so I do hope it's approved soon.

Breaking our workflows as well, hope this gets merged + released soon!

Folks, please be mindful that every new comment sends a notifications storm to many people. Especially, since one maintainer has been pinged already. Those who commented before and those who just subscribed to updates. A bunch of “me too” / “+1” / “when will this get merged” / “when will this get released” duplicate notifications is definitely not something that is useful for every single person to receive, nor does it help get this merged. It just leads to having a lot of pointless notifications in people's inboxes, which is unhelpful to say the least. Please avoid adding more similar comments that are not contributing to advancing the topic of the PR. Please also be mindful that the maintainers might not be able to do anything for a while, regardless of the number of comments. Thank you in advance.

Alternatively, you can drop the dependency on GitHub and replace it with the last PyPI release:
---

ci:
  autoupdate_schedule: quarterly  # low frequency to reduce maintenance noise

hooks:
- repo: local
  hooks:
  - id: docformatter
    name: docformatter
    description: Formats docstrings to follow PEP 257.
    entry: python -Im docformatter
    additional_dependencies:
    - docformatter == 1.7.5
    args:
    - --in-place
    language: python
    types:
    - python

...

Is there a new release being made as well @weibullguy ? time for 1.7.6 maybe?

Bump. Been over a month since this was merged, would be good to create a new release with this change.

Bump. Been over a month since this was merged, would be good to create a new release with this change.

Seriously, why hasn't this been released yet?


Color contrast not appropriate in explorer viewlet

Environment Details:
VSCode Version : 1.24.0
OS Version : Win10
Additional Details:
MAS Violated : MAS 1.4.3
Tools Used : Color Contrast Analyzer
Repro Steps:
1)Navigate to Settings-->Select color theme -->Select light visual studio.
2)Check color contrast ratio for the Explorer content on the screen.
Actual:
Color contrast ratio is less than 4.5:1 for the black colored content when focused.
Similar issue is observed in following themes:
light Visual studio
Light+(Default light)
Quiet light
Solarized light
Expected:
Color contrast ratio should be more than 4.5:1 for the content on a screen.
Recommendations:
Refer below link which is repository of bug fixes code snippets:
https://microsoft.sharepoint.com/teams/msenable/mas/pages/browse-fixes.aspx

User Impact:
The low vision/visually impaired users will not be able to view the content properly.
MAS Reference:
MAS 1.4.3 - https://microsoft.sharepoint.com/:w:/r/teams/msenable/_layouts/15/WopiFrame.aspx?sourcedoc={a73546c7-765f-489c-b18f-afb659fe99e6}

Attachment For Reference:

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

Environment Details:
VSCode Version : 1.24.0
OS Version : Win10

This was addressed in version 1.26, this was tested using version 1.24. Please make sure you have the latest update when testing.

Checked and verified in below version i.e 1.27.0-Insiders.
The issue does not reproduced.


How will our system handle Sales/Transfers/Closures?

We will need to get clarity and map out the process flow for what happens when an Operator needs to change information about operations or facilities. This issue is particularly prominent with the Oil & Gas sector who tend to buy and sell facilities frequently.
Some elements that make this complicated:
Sales/transfers involve two parties; the seller and the buyer.
How do we capture historical Emissions/compliance reports from facilities that are sold?
Definition of Ready

[ ] Determine with B.A. whether or not this should be part of the MVP - how would this process work if it's NOT in the MVP? [Current process is that it happens via email]

Goals:

[ ] Understand where and how in our system (Registration/Reporting) the Operator will go to update their information when there is a sale, transfer or closure of their facility.
[ ] Identify what information is required when transferring, selling or closing a facility.
[ ] Understand other requirements related to this process (for example, Operators will have 30 days from the date of sale to inform the province)

Stretch goals (likely a separate ticket):

[ ] Map out the process for Operators to make these types of updates

Will be covered by #1370 ~ #1378.


Confidence metric

Is the confidence metric computed in the B-factor column similar to the LDDT score? I have predicted structures using Omegafold and Alphafold and the values I get for the Alphafold are always >70% for natural sequences whereas for structures predicted with Omegafold the "confidence metric" is much lower most values lie between ~20-60. Please can you provide further clarification?

Why did you close this? Did you solve the issue?

Yes I have, you can use the B-factor column to calculate the confidence score

yes but what does the actual value mean and does it range from 0 - 100 ?

You want to get the mean of the column and yes it does range from 0-100. The value corresponds to a similar metric used by Alphafold known as the pLDDT score(the higher the score the more confidence you have in the prediction).
"To this end, AlphaFold produces a per-residue confidence metric called predicted local distance difference test (pLDDT) on a scale from 0 to 100. pLDDT estimates how well the prediction would agree with an experimental structure based on the local distance difference test Cα (lDDT-Cα"


Include Link to Account in Embed

While a niche use case, I use a browser plugin that highlights links of tweets and accounts that I have added to archival programs. The default twitter embed includes a link to the account page, so that link is detected and highlighted by the plugin. However the vxtwitter embed has a link to the post, which isn't always highlighted as the archival programs don't frequently check for new posts (every few days/weeks).
I see this as a bit redundant, as the same post link is directly above the embed. I think it could just be changed to the account link, or if supported by web embeds the author url parameter for discord could be used so the vxTwitter would link to the account. Either way would make the link highlighting work for this program and let users see if they have an account archived at a glance.
This is said plugin for reference, sorry for no screenshots. It integrates with the later two links. No support is directly needed for these, just changing the link to point to the account page will work. I included these to show that while niche, there's still an amount of people that could benefit from this change.
https://gitgud.io/prkc/hydrus-companion
https://gitgud.io/thatfuckingbird/hydownloader
https://github.com/hydrusnetwork/hydrus

Sorry for the extremely late reply on this.
It should be happening now for embeds, if you could confirm it works with Hydrus that'd be great!

Yep, works fine now, thank you very much!


OpenSSL server has a lower throughput than JDK SSL with larger responses

Expected behavior
I expected the native OpenSSL provider to be faster than the JDK provider, no matter what the size of the response payload is.
Actual behavior
A Netty server using the JDK SSL provider is faster for any payload (I have tested 1MB up, and see the same results)
The results below are from running on an i3.xlarge EC2 box running Amazon Linux AMI 2018.03.0, but I have seen reproducible similar behaviour running on both Alpine Linux, and Os X 10.13.4.
OpenSSL on this EC2 box has the version:
$ openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017

Steps to reproduce
I have linked to a project that reproduces the problem reliably for me, running the runProfiling.sh script executes 6 tests.

empty response (OpenSSL)
empty response (JDK SSL)
5MB response (OpenSSL)
5MB response (JDK SSL)
20MB response (OpenSSL)
20MB response (JDK SSL)

The results for these tests (a full run takes around 60 mins) are then available in build/jmeter-report.
Empty Response
The empty test results are as expected;
OpenSSL

JDK

5MB Response
The JDK SSL version gives a higher throughput than OpenSSL which is unexpected...
OpenSSL

JDK

20MB response
Again, the JDK SSL version has a higher throughput
OpenSSL

JDK

Minimal yet complete reproducer code (or URL to code)
https://github.com/timyates/netty-openssl-perf-test
Run ./runProfiling.sh and wait (around an hour) for the 6 tests to generate jMeter dashboards.
Netty version
4.1.25.Final

and
io.netty:netty-tcnative-boringssl-static:2.0.8.Final

JVM version (e.g. java -version)
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-b10)
OpenJDK 64-Bit Server VM (build 25.171-b10, mixed mode)

OS version (e.g. uname -a)
Linux ip-172-31-12-49 4.14.26-46.32.amzn1.x86_64 #1 SMP Fri Mar 30 22:29:54 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

CC: @ldaley

Are you sure you use the same ciphers ?

Am 21.05.2018 um 16:28 schrieb Tim Yates<EMAIL_ADDRESS>CC: @ldaley
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

I thought they were the same...
Looking again with wireshark output when running the JDK SSL version, I get (in the Server Hello)

Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)

But with the OpenSSL version, I get:

Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)

@timyates please set the used cipher to the same (via the SslContextBuilder) and re-run. TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 is not supported by Java8 so no-wonder you see different ones.

Cool, I've set both to use TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, and will return with results once it's finished profiling 👍

Specifying the cipher seems to have solved it 🤯
Is there a way to decide on a cipher, or collection of them?  I found the table here which by trial and error I ended up with TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA as also working with both the JDK and OpenSSL.
Results for the record:
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
20MB response
OpenSSL

JDK

TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
20MB response
OpenSSL

JDK

@timyates hmm I think we not provide anything atm. But let me add something that allows to find ciphers that work for all.

Cool, thanks again!
Can you think of a reason why jMeter negotiated a cipher with OpenSSL that Java does not support? 🤔
No worries if not, I'll do some digging 👍

@timyates maybe you use Java 9 or higher on the system you run JMeter on ?

Also let me close this issue.


Serialize view sample

Adds a sample to the showcase on how to serialize/deserialize a view and load its state.

The 'first floor' view is really depressing. Let's try something more 'upbeat'.
Also, please apply one of the views as the sample is starting up. That way the thumbnail will match the starting condition.

I really like the new default view.  Also, the views of the building a good now.  Thanks.

I have reproduced a crash with the following steps:

Navigate to the serialize view sample.
Choose "Ground Floor Elevator" view.
Switch iModel to Retail building.
Observe error:

×
Unhandled Rejection (TypeError): Cannot read property 'view' of undefined
(anonymous function)
C:/Users/spiny/code/frontend-sample-showcase-3/src/frontend-samples/serialize-view-sample/SerializeViewUI.tsx:99
96 | /** Grab the views of the iModel just loaded and load the first view state in the SampleViewStates.ts */
97 | const views = iModelWithViews.length > 0 ? iModelWithViews[0].views : [];
98 | if (views.length !== 0) {

99 |   SerializeViewApp.loadViewState(viewport, views[this.state.currentViewIndex].view);
| ^  100 | }
101 |
102 | /** Prettify the json string */

Bug has been squashed.


python3Packages.pyupgrade: 2.10.0 -> 2.12.0

Motivation for this change
Update to latest upstream release 2.12.0
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 119295 run on x86_64-linux 1

2 packages built:

pyupgrade (python38Packages.pyupgrade)
python39Packages.pyupgrade

Result of nixpkgs-review pr 119295 at 1ae85249 run on aarch64-linux 1

2 packages built successfully:

pyupgrade (python38Packages.pyupgrade)
python39Packages.pyupgrade