CI: bundle size limit

Checks if the gzip size from vite-bundle-visualizer is under 500K. Also uploads the html to the build artifacts.
https://github.com/signed-long/new-connect/actions/runs/9900858794
Resolves #57

I like how simple this is, but might be worth using something like this https://www.npmjs.com/package/vite-bundle-visualizer
I ran that, and it made it super clear that HLS is most of the size. List of top 10 things with their size and percent of the total might be enough, though.

After reviewing the recent new PRs (particularly #68), I realized you were right with the first approach. Simple, readable bash script beats several-word-npm-dependency every time. Let's be very careful with our dependencies.
Want to make a PR to revert back to that and maybe make it a bit easier to see that HLS.js was the biggest thing?

After reviewing the recent new PRs (particularly #68), I realized you were right with the first approach. Simple, readable bash script beats several-word-npm-dependency every time. Let's be very careful with our dependencies.
Want to make a PR to revert back to that and maybe make it a bit easier to see that HLS.js was the biggest thing?

#72 doesn't do anything wrt the seeing the deps size breakdown. But will follow up with that,  it'll just require parsing some json from the build step.


Flat Map

Is there any option to use the globe in a 'flat' view? And if so how can I draw an Arc between 2 points and not just a straight line
Something like this:

Same question


Doors open inwards through shared chests

When placing shared chest directly behind a door, such as pkarcs_doors:acacia_wood the doors can still be opened through the chest.

Go to 19608 2 17447 and see for yourself.


Typo in readme to start kronosd

#sbw-style

lgtmarcua

whoops i didn't see this comment (just the "lgtmarcua" email!)
but i think its ok because of
https://github.com/Locu/chronology/blob/master/kronos/scripts/install_kronosd.py#L63

truth!


Add wheels for python 3.10

Hi, thank you for the instructions
I built deepspeed 11.2 for python 3.10.x under CUDA 11.8 and CUDA 12.1.
I thought you might be interested in adding these wheels to the release so people can choose between python 3.10 and 3.11
I've uploaded the wheels here and would be glad if you add them to yours :)
https://github.com/daswer123/resemble-enhance-windows/releases/tag/deepspeed
ds_report
CUDA 11.8

CUDA 12.1

Cheers, should be added to releases.


[BUG] Infinite loop/crash on add

Describe the bug
It's possible to get an infinite loop for an add (and presumably other operators) operator that returns NotImplemented when used with a derived class.
To Reproduce
cdef class Base:
    def __add__(self, other):
        return NotImplemented

class Derived(Base):
    pass

and to test:
>>> import hmmm
>>> x = hmmm.Base()
>>> y = hmmm.Derived()
>>> y+x   # works OK as expected
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'Derived' and 'hmmm.Base'
>>> x+y

For x+y I get an infinite loop but Pandas reports segmentation fault - probably just to do with tail-call recursion optimization or not.
Expected behavior
Should just be NotImplementedError
Environment (please complete the following information):

OS: Linux
Python version 3.8.9
Cython version 0e80efb82480b777057770ce2006a6b46ec46028 (close to current master)

Additional context
I think this is to do with the changes to support __radd__ etc.. I think it's somewhere in:
https://github.com/cython/cython/blob/034fc26c1c25b5b69581464b73136038bb201ce4/Cython/Utility/ExtensionTypes.c#L383
However, I haven't traced the error through in great detail so not 100% sure exactly what's gone wrong.

I was playing with this issue recently. I did git bisect and the issue first occurred in following commit:
7ac25eea68798f46f79606cfa40a82fabd51534e is the first bad commit
commit 7ac25eea68798f46f79606cfa40a82fabd51534e
Author: Robert Bradshaw<EMAIL_ADDRESS>Date:   Wed Jun 17 13:13:28 2020 -0700

    Change the default of the "c_api_binop_methods" directive to False. (GH-3644)

    This is a backwards incompatible change that enables Python semantics for special methods by default, while the directive allows users to opt out of it and go back to the previous C-ish Cython semantics.

    See https://github.com/cython/cython/issues/2056

 Cython/Compiler/Options.py       |  2 +-
 tests/run/unicode_formatting.pyx | 10 +++++-----
 2 files changed, 6 insertions(+), 6 deletions(-)
bisect run success

I have checked the commit and the change is only changing default value of c_api_binop_methods. I have double-checked and it seems that also in master setting c_api_binop_methods=True is fixing the issue:
Traceback (most recent call last):
  File "/home/matus/dev/cython/t.py", line 2, in <module>
    print(test.Derived() + test.Derived())
TypeError: unsupported operand type(s) for +: 'Derived' and 'Derived'

I have also tried to find commit before bisected commit but I was not able to find any usable. Not sure whether my findings are useful or not...

Thanks. I think the commit you identify is definitely the point where is changed. I'm not sure bisecting further back is too useful.
I am looking into it (slightly slowly...). You can get it not to crash by using specific_known_type->tp_base rather than Py_TYPE(left_or_right)->tp_base, which is an improvement but doesn't quite bring it in line with Python behaviour. I suspect we'll have to compromise a bit on how closely we can hit Python behaviour though.

So...
There's a quick-fix patch that avoids the recursion/crash but doesn't necessarily get the right behaviour for some corner cases. I can create a PR for that if needed. It's basically https://github.com/cython/cython/commit/b66b0ac0bca62dfa1a67237900a56012c8164395, but with the tests tweaked a little. I was going to suggest that as a short-term fix for the next release, but I think I missed the window to do that.
I think in the longer-term calling inherited nb_add (etc.) slots is doomed to failure. I think the best option is to call the specific __add__/__radd__ functions. This can be resolved at compile-time in a lot of cases, but in the general case it'll require the __add__/__radd__ functions to also be available via the class dict.


Use decoded command in the regex comparison in powershell_empire.yaml

Fixes #
Decoded commands were not being compared against the Regex.
Set-Speaker(\$Volume){\$wshShell parentheses were not correctly escaped.
Please, could you review the query against a good dataset?

@shainw @aprakash13
Please, could I know why it was merged into master without a where condition against the regex like | where EffectiveCommand matches regex regexEmpire? would not trigger a lot of alerts with any command?


Web app rewrite

Considering the following points:

Badly written, hard to maintain code
Many edge cases
Unable to conduct tests properly
App bundle size even after lots of optimizations

I've decided to rewrite the whole web app. This time, the stack is decided to be:

Web Components (using LitElement)
UI components from material-web-components
Bundling using Snowpack
Unit tests using Karma/Jest (TBD)
E2E tests using Cypress/Jest (TBD)

This issue serves as a progress indicator of the rewrite. When the rewrite is complete, the Next.js version of the app will be taken down and this version will be uploaded to the development preview URL.

Granted, this was an hectic journey, and to add some more, I am switching out Snowpack with Vite because Vite shows build metrics by itself and I am getting more control over the build (via manualChunks under rollupOptions). I've nothing against Snowpack, its indeed a great tool, but I feel Vite fills in more gaps for this use case


Add second output to trigger node

This PR add the option of making the second output of the trigger node as a separate output - the msg remains the same in either case - but it may make the wiring clearer for some users.
And adds tests

[ ] Bugfix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)

Proposed changes

As per above
Checklist

[x] I have read the contribution guidelines
[x] For non-bugfix PRs, I have discussed this change on the mailing list/slack team.
[x] I have run grunt to verify the unit tests pass
[x] I have added suitable unit tests to cover the new/changed functionality

Should this option be visible only when the mode is wait for, since there is no "second message" in the other two modes (wait to be reset and resend it every)?

sensible thought...


Set position to zero when saving a positioned branch as scene

Fixes #80560
The usability problem results from Godot keeping the state of an instanced scene in sync. This is an important feature and can't be fixed. However by changing the position in the new scene to zero the situation where it becomes a problem for the user is avoided.

Bugsquad edit, closes: https://github.com/godotengine/godot-proposals/issues/3962

Looks alright on the technical side, but you need to change your code. Assignments inside expressions are generally not allowed and here you even made 2 at once.
Also I wonder if this needs a proper proposal. While the new behavior is more useful, some users might rely on the origin not being reset, because it's useful for their workflow for whatever reason.
And what about other transform properties, i.e. rotation and scale? Should they get reset too?

Assignments inside expressions are generally not allowed and here you even made 2 at once.

I wasn't sure about that and had a look at the C++ usage guidelines. If that is not allowed here it should be listed there IMHO. But sure I can rewrite it.

Also I wonder if this needs a proper proposal. While the new behavior is more useful, some users might rely on the origin not being reset, because it's useful for their workflow for whatever reason.

I try to avoid proposals whenever possible, sorry for that, but it just feels as if they never get anywhere. But if you think it might help, sure.

If that is not allowed here it should be listed there IMHO.

Right, it's probably an oversight. The topic was discussed a few times and there was a decision against this coding style, but was never formalized.

I try to avoid proposals whenever possible, sorry for that, but it just feels as if they never get anywhere. But if you think it might help, sure.

Proposals have a bit more visibility than a random PR closing a random issue that was opened very recently. I think this change is fine, but it's better to get some broader feedback.

I noticed this was an annoying issue for new people getting into Godot so I was looking at making my own PR/Proposal for it and stumbled upon this. Was this abandoned/denied or was there a reason this is set to draft mode?

I made it a draft when I opened a proposal for it and forgot to mark it for ready when the proposal was closed. But I think I haven't fixed up KoBeWi's notion about assignments inside expressions.

I added a question to the older proposal which didn't receive any feedback so here it is again: do we need a checkbox for it? Because if so it needs to be reworked. So yeah kinda waiting for feedback rn.

Ah I see, I'll put my personal opinion over on the proposal thread based on things that I've seen from other people using the engine

Based on #39754, I think non-centered scenes are a use-case that still should be supported. So indeed some checkbox/option (enabled by default) should be added.

@HolonProduction Do you want to continue the work you did on this? I'm not currently working on it because you were before but if you give me the go ahead I'll immediately hop on it as I really care about this feature being completed

@Bitlytic go ahead! I'm currently more focused on auto completion and don't have much time anyway.

Based on #39754, I think non-centered scenes are a use-case that still should be supported. So indeed some checkbox/option (enabled by default) should be added.

I'm getting around to this now, you mentioned that it should be enabled by default. I just wanna make sure, you want the new version that saves the branch at (0, 0, 0) to be the version used by default or what's live in Godot 4 to be the default?

The new version should be default.

Thing is, that apparently we want a checkbox to control this behavior and I never implemented that. So if this is still a requirement, this will need a bit more than a rebase I guess.

So I added check boxes to the file dialog:

It might make sense to alter the way the options are displayed, to use a HFlowContainer because it really does not look great.
Also there are no API's to hide the options, which means they would also be visible when saving a node that is neither Node2D nor Node3D

Also there are no API's to hide the options, which means they would also be visible when saving a node that is neither Node2D nor Node3D

I would have them disabled instead of hidden. But I assume you mean there's no way to infer what type is being saved, which is a pity.

Should these be made into editor settings like docks/scene_tree/center_node_on_reparent so users only need to set them once?

These kinds of settings are usually stored per-project separately. Although, I'm not sure how at the moment.

I would have them disabled instead of hidden. But I assume you mean there's no way to infer what type is being saved, which is a pity.

No, inferring that before the dialog is shown would be possible through the current selection (that's how it is done after a file path was chosen anyway). But EditorFileDialog has no methods to disable, hide or remove an option after it was added. We could probably have two separate file picker dialogues, but that feels a bit heavy (also still no way to have them disabled).

I see that the option defaults (true, false, false) are hard-coded. Should these be made into editor settings like docks/scene_tree/center_node_on_reparent so users only need to set them once?

That's an interesting idea, for now I'd rather keep this PR at its current state and leave this open for a possible follow up. I don't know yet how this would be done, and I hope we can get this in for 4.4, so I don't want to delay it further.

Thanks!


All sensors remain "unknown" even after 12+ hours of running

Hi
This integration was working for me for a while and suddenly it no longer does. All sensors show as "unknown".
Running this integration on ver 1.8, with HA 2021.12.10
I get the "forbidden url" error (#26) twice in my logs, but both have happened over 11 hours ago now, and I still get no sensor data.
I have tried restarting HA a few times to get this to work and leave it sitting for 12+ hours, no luck so far.
I had issues getting this to work in the beginning, but indeed running HA for a few hours would fix it in the past.
I have updated some HA versions (started happening in 2021.12.07 I think) during it being broken initially and now, but all had the same issue.
I also updated to the latest integration version 1.8 yesterday, as I wasn't running latest version. However it's been running now for 15 hours and still no data appeared.
Not sure what else I can check.
Thanks!

Can you login with your webbrowser to Garmin Online to see if you get extra questions/validation?

I'm able to connect to https://connect.garmin.com/
I use it practically daily to plot routes for cycling :) Or might that be the issue that I manually login constantly?

Wait - it started working suddenly...
I resynched my watch to my phone and it popped things up.
Maybe it was an issue on garmin side where it was showing "unknown" instead of "0"

going to close this - but will keep an eye on things.
It seems that if the device is not properly synced, it doesn't show anything on garmin connect, hence also not in the API.
I think the main confusion comes from the sensor status showing "unkown". Where I usually consider this as the integration not working, here it was a sign of no data being available.


Bump the minimum version of guzzlehttp/psr7 to avoid CVE-2022-24775

Fixes #1300 by bumping the minimum supported version of guzzlehttp/psr7. Luckily the security issue was fixed for both version 1.x and 2.x, so we don't have to do any breaking release

Yes, it is. As soon as I merge that other PR I will rebase this one accordingly


Yarn instalation

Is there any way to instal this throught yarn?

does yarn add lax.js not work?

does yarn add lax.js not work?

It works, just didn't try it :) you could add it to description


op-server: bump celestia-openrpc to v0.3.0

Overview
This PR upgrades celestia-openrpc to v0.3.0 so that it is compatible with celestia-node v0.11.0.
While here, also update the testnet script for mocha-4.
Resolves #233
Checklist

[ ] New and updated code has appropriate documentation
[ ] New and updated code has new and/or updated testing
[ ] Required CI checks are passing
[ ] Visual proof for any user facing features like CLI or documentation updates
[ ] Linked issues closed with keywords

I wanted to test for a partner who is running against mocha. We could maintain the testnet setup for both arabica and mocha. I'll test arabica and push it's update as well 👍🏽

hmm, should we use mocha as default as it is the closest to a "production" environment?

alternatively, maybe it would make more sense to ship this and then upgrade in a subsequent pr. not sure what is best

Going ahead with merging this as it's blocking integration with celestia-node v0.11.0


CTRL+SHIFT+F no longer searching when pressed

Type: Bug
It is not searching when pressed and keeps showing old results. I need to manually change filter options for it to search.
Is this some kind of a stealth user study? I observed how this changed from always working, to sometimes not working, to mostly not working to almost never working. This function needs a stress test or something, there is no obvious thing broken other than the search not searching by default.
VS Code version: Code 1.85.0 (af28b32d7e553898b2a91af498b1fb666fdebe0c, 2023-12-06T20:48:09.019Z)
OS version: Windows_NT x64 10.0.19045
Modes:

System Info

Item
Value

CPUs
AMD Ryzen 9 5900HX with Radeon Graphics         (16 x 3294)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: enabled_ondirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: enabled

Load (avg)
undefined

Memory (System)
31.36GB (16.09GB free)

Process Argv
--folder-uri file:///c%3A/w/jenkins/integration-jenkins-branch --crash-reporter-id 5495b1a5-cac6-4d84-bf9e-715b45538350

Screen Reader
no

VM
0%

Extensions (14)

Extension
Author (truncated)
Version

jelly-language-support
Act
1.2.2

codeium-enterprise
Cod
1.4.25

codeium-enterprise-updater
Cod
1.0.12

code-runner
for
0.12.1

test-adapter-converter
ms-
0.1.8

vscode-jest
Ort
5.2.3

java
red
1.25.1

intellicode-api-usage-examples
Vis
0.2.8

vscodeintellicode
Vis
1.2.30

vscode-java-debug
vsc
0.55.0

vscode-java-dependency
vsc
0.23.3

vscode-java-pack
vsc
0.25.15

vscode-java-test
vsc
0.40.1

vscode-maven
vsc
0.43.0

A/B Experiments
vsliv368:30146709
vsreu685:30147344
python383cf:30185419
vspor879:30202332
vspor708:30202333
vspor363:30204092
vslsvsres303:30308271
vserr242cf:30382550
pythontb:30283811
vsjup518:30340749
pythonptprofiler:30281270
vshan820:30294714
vstes263:30335439
vscoreces:30445986
vscod805cf:30301675
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
vsaa593:30376534
pythonvs932:30410667
py29gd2263:30899288
vsclangdc:30486549
c4g48928:30535728
dsvsc012cf:30540253
azure-dev_surveyone:30548225
2e4cg342:30602488
f6dab269:30613381
2i9eh265:30646982
showlangstatbar:30737416
962ge761:30917236
fixshowwlkth:30771522
showindicator:30805244
pythongtdpath:30769146
i26e3531:30792625
welcomedialogc:30910334
pythonnosmt12:30797651
pythonidxpt:30866567
pythonnoceb:30805159
asynctok:30898717
dsvsc013:30795093
dsvsc014:30804076
dsvsc015:30845448
pythontestfixt:30902429
pyreplss1:30897532
pythonmypyd1:30879173
pythoncet0:30885854
h48ei257:30885898
pythontbext0:30879054
dsvsc016:30899300
dsvsc017:30899301
dsvsc018:30899302
aa_t_chat:30882232
dsvsc019:30917259

One situation where Ctrl+Shift+F from a selected word in an editor primes the search field in the Search view but doesn't search for that word until you press Enter is if you dismissed (with its X button) any of the results from your previous search.
This is by design.

Good to know. I remember using the dismissal of search results more and more, which explains why it got worse over time. Though, I don't find this useful in its current form. Probably makes sense to have a dedicated button for pinning the results, because almost always I click away the irrelevant results just to go over the results with my eyes. Only after many hectic search operations and eyeballing I actually use it as a TODO list. Kind of optimized backwards for my use case.

Good to know. I remember using the dismissal of search results more and more, which explains why it got worse over time. Though, I don't find this useful in its current form. Probably makes sense to have a dedicated button for pinning the results, because almost always I click away the irrelevant results just to go over the results with my eyes. Only after many hectic search operations and eyeballing I actually use it as a TODO list. Kind of optimized backwards for my use case.

I think that the reason that we do this is because people could easily lose their state with their current dismissed results, so making people do CTRL+SHIFT+F then ENTER is a way to ensure that they actually want to overwrite their results. If we were to have a "pinned" button, it would be slightly confusing in how it should act in conjunction with the "clear all results" button. It would be more of a "does CTRL+SHIFT+F actually force a re-search" button, which would be a bit too specific for a button. I could maybe consider a setting for enforcing this if it is popular enough.

Sorry for double post, but just now I encountered a case repeatedly where it does not search even if I did not dismiss any results, so there is something going on and it is getting worse after all?

I can't seem to reproduce this. Can you post a screen recording?

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!

I think that the reason that we do this is because people could easily lose their state with their current dismissed results, so making people do CTRL+SHIFT+F then ENTER is a way to ensure that they actually want to overwrite their results. If we were to have a "pinned" button, it would be slightly confusing in how it should act in conjunction with the "clear all results" button. It would be more of a "does CTRL+SHIFT+F actually force a re-search" button, which would be a bit too specific for a button. I could maybe consider a setting for enforcing this if it is popular enough.

To me it feels like a crutch. I haven't seen any editors do this before, so it's confusing to get a crutch shipped with the bicycle in the same package so to speak. Should be an optional thing that is prescribed by the hospital.

I can't seem to reproduce this. Can you post a screen recording?

Sorry, can't. It seems it happens when I start writing on the affected lines and they disappear off the list by themselves.


Standalone crashes

The standalone won't load, but when it tries to load, it makes a nasty loud crackle before it crashes. I've done a clean install 2-3 times and also deleted registry keys. How do I resolve this?
Thanks!

Please give me a crash dump as well as the rest of the info that's asked for in the bug template. Thanks!


display midpoint if a lastPrice is not present on scalar markets

Coverage decreased (-0.02%) to 68.837% when pulling 50f0936fb910ce90ff9aa561f6293236dec5e3ca on 373-scalar-outcome into 4a509135c0b62a6b93bec2c85f387d04bc22face on master.


Per-pivot recognition

Added an option to recognize only a certain pivot:
Example: recognize main_pivot  in the sentence:
Input:
"Travel to 80 Pine Street, pass it on your right, and go South - West and come to the cafe. The cafe will be on your right, near 8 restaurants. If you pass Apple Bank, you've gone too far."
Output:
80 Pine Street

(1) added a function for calculating the span (2) used the walk.py list of landmark types (3) changed param names


Fix Users.UpdateUserPassword() path

Description
Documentation
Does this require changes to the WorkOS Docs? E.g. the API Reference or code snippets need updates.
[ ] Yes

If yes, link a related docs PR and add a docs maintainer as a reviewer. Their approval is required.

Current dependencies on/for this PR:

main

PR #250   👈

This comment was auto-generated by Graphite.


Error format in aliases

Format error in git cleanup row, aliases section. All languages are wrong.

I watched the original commit.  The content is right, only the format is wrong.
Alias: git cleanup
Command: git branch --merged | grep -v '*' | xargs git branch -d
What to Type: git config --global alias.cleanup "!git branch --merged | grep -v '*' | xargs git branch -d"

It's so hard to find a solutions for this kind of format.  I also create an issue here: https://github.com/github/markup/issues/1193


support local/package level and serializable python modules/macros

resolves #10078

Suppose that we need to remove (dedent) the same number of leading whitespaces in each line of a sql command or a string of documentation. I've been googling for jinja solutions, however the solutions are quite complicated. And it would be quite ease if we can invoke a python module/function.
The proposed method is, we can write a macro in a python file "macros/my_python_module.py":
from textwrap import dedent

and then we call call the defined module/function in our model "models/test1.sql":
{% set query_cmd %}
    select col_1,
              col_2
    from table_name
    where col3=1
        and col4=2
{% endset %}
{{ my_python_module.dedent(query_cmd) }}

What's more, as the implementation of this python macro is within the project locally, we can call the macro using my_project.my_python_module.dedent if this project is imported to other projects as a package, just as what we do with a jinja macro.
Problem

Solution

add a PythonModule node class in additional to the Macro node class, which can be parsed and serialized.
However there are some limitations:

the python macro is in project level which is the same as jinja macros, and should be called with the heading package name if we need to call the python macro in other projects.
Each directory (python module) should have a "__init__.py" file inside except for the "macros" directory.

Checklist

[ ] I have read the contributing guide and understand what's expected of me
[ ] I have run this code in development and it appears to resolve the stated issue
[ ] This PR includes tests, or tests are not required/relevant for this PR
[ ] This PR has no interface changes (e.g. macros, cli, logs, json artifacts, config files, adapter interface, etc) or this PR has already received feedback and approval from Product or DX
[ ] This PR includes type annotations for new and modified functions

Closing per https://github.com/dbt-labs/dbt-core/issues/10078#issuecomment-2090540226


gen_base_nic issue

When I implement gen_base_nic.sh, there are errors occurring as below:

please help check on this issue, thanks!

@MengEason  Please read the README.md carefully and strictly follow the instructions.


[Question]Wait for the result of the action, then do another fetch operation

There are two actions:
Action 1.  Retrieve the endpoint to get the result something like orderNo.
Action 2.  Wait for the orderNo, then do another fetch operation. If orderNo is present, then continue the process, otherwise just wait.
I have tried to use selector(yield select(selectors.orderNo)), but it can't get the result due to the Action 2 is executed before Action 1.
Is there any way to get the latest result, then continue the Action process?
Thanks in advance!

It depends on how your sagas are structured. It should be possible to structure your sagas in a way that you ask for the orderNo only in the moments you know it's there. If not you could do something like:
export function* waitForState(selector, ...args) {
	do {
		const state = yield select(selector, ...args)
		if (typeof state !== 'undefined') {
			return state
		}
		yield take('*')
	} while (true)
}

// in your saga
const orderNo = yield call(waitForState, selectors.orderNo)

Thanks, it works.


Centurion crashes, if keys in JSON responses from Docker API are CamelCase

In docker_via_api.rb, Centurion explicitly calls v1.7 of the Docker API, which is supposed to return the JSON keys as snake_case. Using a specific version like this should protect us from any changes to the Docker API, like the one starting in v1.12, when the JSON keys began to be returned as CamelCase. (See docker docs)
However, when using a combination of Dogestry and Centurion, it's possible for Centurion to call v1.7 docker API endpoints and get back CamelCase, which results in Centurion crashing.
How?
When a docker image is exported from a docker host, the resulting tarball contains multiple directories, one for each layer. Each layer has a corresponding JSON file (See [docker docs for details](http://docs.docker.com/reference/api/docker_remote_api_v1.15/#load-a-tarball-with-a-set-of-images-and-tags-into-docker for details).) When the docker image is exported from a newer docker host, the keys in the JSON files are CamelCase.
Next, you import that tarball into a second docker host (using the /images/load API).
(Under the hood, dogestry uses these two docker API calls to export an image from one host and import it into another.)
Finally, you query the API in the second docker host for information about that image. Unfortunately, whether you use the v1.7 API, or the v1.15 API, the JSON response contains keys in CamelCase.
Here's an example of the wrong behavior:
An image (image_1) was exported (using /images/(name)/get) from a docker host with a server API of v1.12, which means that the JSON files have keys in CamelCase.
Then, we load the exported tarball (/images/load) into a docker host with a server API of v1.15
Now, let's hit two different versions of the API on docker host 'B'
# [WRONG] Calling /v1.7/images/ endpoint returns CamelCase.
# (This should return snake_case, which is all lowercase.)

$ curl http://DOCKER_HOST_B:2375/v1.7/images/<image_1)>/json
{"Architecture":"amd64","Author":"","Comment":"","Config":{"AttachStderr":false,...

# [CORRECT] Calling /v1.15/images endpoint returns CamelCase

$ curl http://DOCKER_HOST_B:2375/v1.15/images/<image_1)>/json
{"Architecture":"amd64","Author":"","Comment":"","Config":{"AttachStderr":false,...

Interestingly enough, importing a tarball that has JSON files with keys in snake_case results in correct responses from both versions of the API. Here's an example:
An image (image_2) was exported (/images/(name)/get) from docker host 'A' with a server API of v1.10, which means that the JSON files have keys in snake_case.
Then, we load the exported tarball (/images/load) into docker host 'B' with a server API of v1.15
Again, let's hit two different versions of the API on docker host 'B'
# [CORRECT] Calling /v1.7/images/ endpoint returns snake_case (begins with lowercase)

$ curl http://DOCKER_HOST_B:2375/v1.7/images/<image_2>/json
{"id":"<sha>","parent":"<sha>","created":"2015-01-08T23:15:07.130204289Z",

# [CORRECT] Calling /v1.15/images/ endpoint returns CamelCase (begins with uppercase)

$ curl http://DOCKER_HOST_B:2375/v1.15/images/<image_2>/json
{"Architecture":"amd64","Author":"","Comment":"","Config":{"AttachStderr":false,...

cc: @didip @relistan @amjith

So the solutions are:

either to upgrade the api version and do CamelCase everywhere.

or add extra logic to deal with both snake_case/CamelCase.

Is that right?

@didip Correct. I'm working on adding extra logic to handle both cases. I don't think there are too many places where I need to add it

That is one awesome bug report.


Add support for new events

Two new events will be added upstream in https://github.com/zwave-js/node-zwave-js/pull/2233

interview started
interview stage completed

We want to forward these events on so that we can track interview progress when calling node.refresh_info from the python lib.
Al does not want a not ready event in zwave-js so we also add one here so that the lib can update ready status in coordination with the driver.

What does the "not ready" event mean?

It means that ready has switched from true to false. It only occurs on startup if a full interview is required (in which case we wouldn't fire the event) and when node.refreshInfo is called (in which case we would fire the event)

There was no further discussion how a node that goes from ready to not ready is supposed to be handled in zwave-js?

There was no further discussion how a node that goes from ready to not ready is supposed to be handled in zwave-js?

In terms of? Maybe I am not understanding but internally, zwave-js changes the node.ready property as needed, we just don't get an event for it so the library doesn't update its internal state without this new event. Per this comment https://github.com/zwave-js/node-zwave-js/pull/2233#pullrequestreview-626896636 the suggestion was to fire the event from server directly

Right. Since zwave-js expose the ready property and ready event of the node I'd assume there should be a strategy for library users when the node is not ready anymore, whatever is the reason for that.

My assumption so far is that when a node is not ready, it should not be interacted with. That would mean making the entities unavailable during the re-interview process. I've asked Al if he agrees or has any other guidance

Don't we have some node updated evnet we can used to propagate ready update? Feels a bit dirty to invent our own. If it's not needed inside ZJS, why do we need it.

Don't we have some node updated evnet we can used to propagate ready update? Feels a bit dirty to invent our own. If it's not needed inside ZJS, why do we need it.

Well we have to emit the event. We could co-opt the node updated event. I believe the library code allows us to send partial info, e.g. just send the new ready state

@MartinHjelmare see Al's response here: https://github.com/zwave-js/node-zwave-js/pull/2233#issuecomment-813114569
So the right thing to do from a Home Assistant perspective is to mark the entities as unavailable. This logic is already correct, what we need to do is update the ready status in the library and then react to the event in the integration.

Don't we have some node updated event we can used to propagate ready update? Feels a bit dirty to invent our own. If it's not needed inside ZJS, why do we need it.

OK so I did some testing, and we can just use the interview started event to reset the cached ready state in the library. Removing the extra event. Here's what it looks like now btw (before removing the extra event):
{
  type: 'event',
  event: { source: 'node', event: 'interview started', nodeId: 4 }
}
{
  type: 'event',
  event: { source: 'node', event: 'not ready', nodeId: 4 }
}
{
  type: 'result',
  success: true,
  messageId: 'refresh-info',
  result: {}
}
{
  type: 'event',
  event: {
    source: 'node',
    event: 'interview stage completed',
    nodeId: 4,
    stageName: 'ProtocolInfo'
  }
}
{
  type: 'event',
  event: {
    source: 'node',
    event: 'interview stage completed',
    nodeId: 4,
    stageName: 'NodeInfo'
  }
}
{
  type: 'event',
  event: {
    source: 'node',
    event: 'interview stage completed',
    nodeId: 4,
    stageName: 'CommandClasses'
  }
}
{
  type: 'event',
  event: {
    source: 'node',
    event: 'interview stage completed',
    nodeId: 4,
    stageName: 'OverwriteConfig'
  }
}
{
  type: 'event',
  event: {
    source: 'node',
    event: 'interview stage completed',
    nodeId: 4,
    stageName: 'Neighbors'
  }
}
{
  type: 'event',
  event: {
    source: 'node',
    event: 'interview stage completed',
    nodeId: 4,
    stageName: 'Complete'
  }
}


[GHSA-9wv6-86v2-598j] path-to-regexp outputs backtracking regular expressions

Updates

Affected products

Comments
https://github.com/pillarjs/path-to-regexp/security/advisories/GHSA-9wv6-86v2-598j
https://github.com/pillarjs/path-to-regexp/commit/925ac8e3c5780b02f58cbd4e52f95da8ad2ac485
https://github.com/pillarjs/path-to-regexp/commit/d31670ae8f6e69cbfd56e835742195b7d10942ef

Hi there @blakeembrey! A community member has suggested an improvement to your security advisory. If approved, this change will affect the global advisory listed at github.com/advisories. It will not affect the version listed in your project repository.
This change will be reviewed by our Security Curation Team. If you have thoughts or feedback, please share them in a comment here! If this PR has already been closed, you can start a new community contribution for this advisory


Code coverage

Do we want some kind of code coverage tool to guide writing tests or is that a lot of work to set up? It would be nice to have something like it for making sure all the possible branches in the gatestream protocol due to desynchronization are covered. Looks like most rust-specific coverage tools are dead with bugs, but kcov looks promising. Having said that, I have never done code coverage stuff in any serious way, so...

I'll work on this.

Before:
https://codecov.io/gh/mbrobbel/dqcsim-rs/src/d3cdf349f039e8db246ebc9334ef637128a9eb48/dqcsim/src/plugin/state.rs#L668
Add test:
https://github.com/mbrobbel/dqcsim-rs/pull/37/commits/e6f4d1700670ba6d4eef689c83ebe91b84edce6e#diff-c97869907924fce0bc799e8e4180201eR160
After:
https://codecov.io/gh/mbrobbel/dqcsim-rs/src/e6f4d1700670ba6d4eef689c83ebe91b84edce6e/dqcsim/src/plugin/state.rs#L668


Fix line-endings

This is the outcome of implementing the simplest possible .gitattributes line-ending solution outlined in the Github help section:
https://help.github.com/articles/dealing-with-line-endings/#per-repository-settings
@Asmor @jbarzilai

Note: you can quickly check for non-WS changes by appending ?w=1 to the URL of this PR.  All that should be in there is the .gitattributes file itself and the addition of .npmrc to .gitignore

Thanks!


Switch to using pytest-pydocstyle vice pytest-py257 in tox.ini

Unfortunately not a simple switch - pytest-pydocstyle is Python 3 only. We probably need a list for post-2.7-deprecation issues, this belongs on it.

Fixed in #214.


Remove queue and semaphore

Okay here is a biggie, but hear me out.
I believe it is possible to get rid of mutex, by using atomics. Generally this has been easy to figure out. And it saves a Lot of system call work, and works with hardware instructions on most modern platforms.
(We do still use it one more place which is on the uart driver i believe. )
As for semaphore, we have one use in zmqhub where it's used as a tread guard, because libzmq isn't threadsafe. Here multiple threads are contesting one object. Which is a nice case for a mutex actually. However since zmqhub is Linux only, I feel like this should be solved better somehow. Maybe a Linux specific method.
The final place where semaphore is used in rdp to take the tx task when more work needs to be done. For this where only one task is to be woken. We should be able to do it with a simple wake callback on the conn object. Similarly we need a sleep callback I'm order to suspend the tx task. This is simple and avoids a lot. And of the user wants he can simply ignore sleeping and waking and use polling instead.
I believe we can use something similar instead of the RX queue object for the router task to wait on. By replacing the synchronization of the router task and the input foto, with the aforementioned sleep and wake callbacks we can pretty much get rid of queues too.
Of course CSP would still rely on queueing. But it's not os dependant any longer. And can be made using simple ringbuffers.
This is a lot to take on. But i believe it would work. So CSP could actually operate completely without an OS. Neat huh.

locations used except examples:
semaphore

transport/csp_rdp.c
interfaces/csp_if_zmqhub.c

mutex

interfaces/csp_if_kiss.c

rdp
Even with a callback, we need to serialize the callbacks.  How do you wait from the calling thread for a callback to be finished?
zmqhub.c
we can just use pthread semaphore.  But the usage here in zmqhub.c is actually mutex.  so, i'd go with pthread mutex.
if_kiss
I don't know what the driver is trying to protect.
thoughts

This led me some questions.  Is libcsp thread safe? Or intend to be, at least?  we have some shared global variables, ie rtable_inptr, interfaces, but we have no locks around it.   We've never noticed any errors because most of modifying functions, csp_rtable_set_internal(), csp_iflist_add(), runs at startup time and no one has called in the middle of the operations.  Nor, it's just rare case to call these functions.

libcsp doesn't actually differentiate mutex and binary semaphore.  But many OSes do.
https://www.freertos.org/xSemaphoreCreateBinaryStatic.html

Binary semaphores and mutexes are very similar but have some subtle differences: Mutexes include a priority inheritance mechanism, binary semaphores do not. This makes binary semaphores the better choice for implementing synchronisation (between tasks or between tasks and an interrupt), and mutexes the better choice for implementing simple mutual exclusion.

But many OSes has a property of owner on mutex.  Recursiveness is another property of mutex.
https://www.freertos.org/xSemaphoreGiveRecursive.html

A mutex used recursively can be 'taken' repeatedly by the owner. The mutex doesn't become available again until the owner has called xSemaphoreGiveRecursive() for each successful 'take' request.

https://docs.zephyrproject.org/latest/reference/kernel/synchronization/mutexes.html#concepts

An owning thread that identifies the thread that has locked the mutex, when it is locked.

https://docs.windriver.com/bundle/vxworks_7_application_core_os_sr0630-enus/page/CORE/semLib.html

For a mutex, a semGive( ) can only be performed if the current task is the owner, implying that the semaphore has been taken; thus, there is always a change of state.

https://www.keil.com/pack/doc/cmsis/RTOS/html/group__CMSIS__RTOS__MutexMgmt.html

The advantage of a mutex is that it introduces thread ownership. When a thread acquires a mutex and becomes its owner, subsequent mutex acquires from that thread will succeed immediately without any latency. Thus, mutex acquires/releases can be nested.

https://pubs.opengroup.org/onlinepubs/7908799/xsh/pthread_mutex_lock.html

This operation returns with the mutex object referenced by mutex in the locked state with the calling thread as its owner.

Yes, you see what a mess that is...
I would like to address the three examples in reverse order:

KISS - The Mutex is there to ensure only a single task is transmitting to the UART driver at a time. And therefore only full frames are transmitted. Our UART driver API actually sends out bytes one at a time, so even though the underlying UART driver would ensure string-level consistency, CSP doesn't submit as whole strings (partly due to a memory issue with that). So we actually do need the mutex.

ZMQHUB - I agree, first of all, it should have been a mutex. And secondly, we should just use the native API on that platform. Maybe we should even check again, if the ZMQlib thread safety has improved since then. Because i would expect something like ZMQ to be just that. Considering that it's an inter-process communication tool in the first place. One would assume thread safety was a priority :)

RDP. This was the hardest one, because it actually uses the semaphore for real task sleep, and wake event. So in order to "fix" that, without being OS dependent, i would first like to elevate the issue to the more general one:

Question: How to make a caller block, on an event coming from the CSP stack?
The general case is used multiple places. csp_listen(), csp_read(), csp_send() - if RDP is enabled.
Answer 1: The NON solution
The NO-OS method, would simply be to return from the function call with an error and let the user handle getting back. IE. to NOT support blocking. I don't like this, because it changes the API. We should keep the blocking variants, and add special non blocking variants, designed for NO-OS.
Answer 2: Add csp_task_wait() and csp_task_wake() hooks, that the OS can implement
Whenever, the CSP stack encounters a place where blocking is required, csp calls csp_task_sleep which puts the current task to sleep for a specific amount of time (as requested by the user in the listen, read, send or queue call). When the sleep is completed by timeout, the function returns to the code that called the sleep, and resumes processing. If an interrupt, or another task causes the bloking item (a connection queue, for csp_listen, a conn_rx queue for csp_read() or an ACK packet is received and more TX is requested by RDP) to be woken, a call to csp_task_wake() is performed. This holds the reference to the task. CSP will keep the task handle associated with the connection, so it knows who to wake.
Question: How would sleep and wake be implemented?
Answer: FreeRTOS
We use the very nice and lightweight Task Notification function: See example here
Anwer: Posix
I asume we have something similar to freertos?
Anser: Baremetal
Baremetal should not use blocking, since it would cause the executing task to actually block the CPU. However, IF someone would simply want to wait a very short time, it could be done using an actual microsleep() call, or any other delay function. One other way would be in the case of Co-Routines, to make a call to taskYield(). (using freertos terminology here)
Note: listen() and read() is easy to pass a zero timeout to obtain non-blocking. But csp_send() actually recently got the timeout and return value removed. And if RDP is enabled on a connection, the csp_rdp_opt of the client, determines what the packet timeout and connection timeout is. So the answer is, the caller to csp_send actually don't know if it would be blocking or not. So for RDP i suggest we add csp_send_nonblocking() which is capable of returning false, if the packet was not accepted. csp_send() is fire and forget. And is guaranteed to always deliver or drop the packet. So a new csp_send_nonblocking() must be the answer here.
List of benefits

Extremely lightweight, almost zero memory impact
Zero OS dependencies
User can port to his OS of choice by implementing hooks a concept we already use for time, memfree, reboot etc.

List of disadvantages

wait() and wake() can only block a single task on a single connection. - This is not an issue with CSP

KISS

to ensure only a single task is transmitting to the UART driver at a time

I don't know why we need this restriction.  If accessing a device from multiple threads is the problem, we can push the lock down to the drivers.  is there any issue at the interface between IF driver and UART driver?
ZMQHUB
Have we had any problem?  4e7d4fa490e9805b introduced the lock but nothing is mentioned.
Notification API
Maybe because I don't know much about FreeRTOS, I don't see the benefit of introducing task notification API.  What API do you have in your mind for POSIX?
I don't want to be negative about it but:

I don't know how this can be "Zero OS dependencies", you have to port to each target platform.
"Extremely lightweight" is implementation detail.  It could be heavier than Mutex for some OSes.
If we have less than a hand-full of places for mutex and semaphore, do we care the memory reduction?  How many bytes can we save?
It's not widely understood API.  Developers already know mutex and semaphore.

KISS.
If we push the lock down to the driver, we would need to prepare the kiss packet into a temporary buffer, so the data to transfer could be done within a single call to the driver. I'm not sure that is practical, due to the memory allocation issue.  But we could make a new lock API just for the driver itself. So CSP would first ask the driver to retrieve a mutex, and then free the mutex again. Something like csp_uart_lock() / _unlock() would work fine. And move the os dependency into the driver layer. Where we already arch specific code in the driver folder. Which should work nicely.
ZMQ.
The documentation states that the zmq context object is thread safe. But the individual sockets are not thread safe. The idea is that each task using ZMQ should hold its own set of sockets for transmissions. This is impractical for CSP, since we cannot hold any task specific information. So a mutex seems to be the appropriate solution. I don't know why a semaphore was chosen and why it was called tx_wait. I believe that actually it's just a mistake. Because it could have been copied from RDP send where the tx semaphore is called tx_wait. I believe for zmq we should just use a POSIX mutex.
So with this. We have now removed the need for a generic CSP mutex API. At the expense of only one additional set of lock/unlock calls to the uart driver layer. I think that's nice.
I consider the issue solved for mutex. I'm addressing the task synchronization in the next comment which may be tomorrow. As it's late.

Notification API Maybe because I don't know much about FreeRTOS, I don't see the benefit of introducing task notification API. What API do you have in your mind for POSIX?

pthread_cond_wait()

I don't want to be negative about it but:

I don't know how this can be "Zero OS dependencies", you have to port to each target platform.
"Extremely lightweight" is implementation detail.  It could be heavier than Mutex for some OSes.

Perhaps. But for FreeRTOS and POSIX it would work out nicely. I think a binary semaphore can be considered a notification. But it comes with the semantics of being a semaphore. So one would usually say there needs to be as make entering and leaving. With the way we use it, for synchronization, we might as well use an API only designed for that. The notification system is designed to be just that. Which means usually more lightweight.  You just send the notification whenever an event happens. And if someone was waiting they will be unblocked.
For FreeRTOS this is additionally extremely lightweight as each task has its own method for unblocking built-in. So there is zero memory required.

If we have less than a hand-full of places for mutex and semaphore, do we care the memory reduction?  How many bytes can we save?

Oh, we have many. For each connection there is one for RX. One for RDP RX, one for RDP TX. So on a typical MCU with 10 connections this amounts to 30 semaphores. A semaphore in freeetos is a queues with length 1. So the entire queue structure follows. Which is around 32 bytes each. So it amounts to at least 1kb of RAM just for synchronization semaphores within CSP. Which isn't needed at all.
On our subsystems we use the largest cortex m0 possible, which holds a whopping 32 kB of RAM only. Now you see why 1 kB additional memory would be nice to have.
Also I don't like to waste ressources where I can see a prettier solutions.

It's not widely understood API.  Developers already know mutex and semaphore.

They also know conditional wait pretty well. And task synchronization in general. Task notify has been available within FreeRTOS for around 5 years only. So it's quite new. But we would of course include the implementation for these hooks in CSP so the users of CSP wouldn't even know.

To use POSIX cond var, you have to have mutex:
int pthread_cond_wait(pthread_cond_t *restrict cond, pthread_mutex_t *restrict mutex);

Zephyr and other RTOS' condition variable also requires to have a mutex.  Because most implementations of condition variables are actually not only a condition variable.  You use a condition variable and a mutex to have a Monitor. It's basically creating a block of mutual exclusion for accessing the resource protected by the mutex, but can atomically wait on the it.
Can we just implement binary semaphore using the notification API for FreeRTOS?  So that FreeRTOS can benefit everything you described.  But other OSes can keep using semaphore API as they used to.  It certainly is NOT  "Zero OS dependencies".  All OSes except FreeRTOS have to implement this new API.
I've read a bit about FreeRTOS task notification, and it seems like a Unix signal.  You wait for a number, you'll be woken by the number.

To use POSIX cond var, you have to have mutex:

Okay, weird. I read it like, if a Mutex was passed it will automatically release the lock and unblock the correct task. Assuming that if no mutex was passed it would simply wake the task.
So you are right in that what I am looking for, is a simple wake signal () however signals in Unix are a mess, and can only be used on processes. Threads don't work with signals.
I can see that the method pthreads librt uses to implement semaphores, is in fact a conditional variable and a Mutex. So on Linux at least, you always get that additional overhead. So it doesn't matter of we use semaphore.h to get the sem_wait() function or we use cond_wait with our own mutex.
I think it is perfectly fine to do notifications for FreeRTOS and binary semaphore for others. But instead of using the arch layer, and preprocessing macros to change the data structures to hold posix_sem_t * for example, I would rather implement the more general wait() and wake() API.
On posix and zephyr this can use an ordinary semaphore, on FreeRTOS we use lightweight notifications.
I wanted to make it so, after the call to wait () the task will input a generic handle, void *, to be used by the wake function. Which leads the question on where to store the semaphores.
On FreeRTOS there is no need for storage, so the wait() Will simply store the task handle it wants to wake up directly.
On POSIX the semaphores is created dynamically, so here we store the semaphore handle to wake on.
On zephyr I guess it's a little harder, because you need a larger memory block to hold the storage for the semaphore object. But I assume you want to avoid dynamic allocation. I think the solution is to create a generic reservation on the conn element, which can be compile time configured. That way the os hooks can put whatever information into the conn object it wants.
This approach is similar to how drivers borrow room in the padding area of the CSP buffers. And is really efficient. I like this idea.

Status

transport/csp_rdp.c
interfaces/csp_if_zmqhub.c Uses native pthread mutex
interfaces/csp_if_kiss.c Moved to UART driver

I have now vastly cleaned up the bin_semaphore api, so csp_rdp.c can continue to use this for now. I tested it on posix, and it builds on freertos. I will continue to move freertos to the even simpler/smaller task notify api later on.
Eventually i am going to take a look at queues too. I would like to add a no-os implementation of queues. I think we will leave the freertos and zephyr queues alone for now. It's going to actually grow CSP to use it's own queue implementation.

Okay today I tried out and added the task notification API of FreeRTOS. Also POSIX os completely static allocation for binary semaphore.
I did as you suggested and put the FreeRTOS notifications behind CSP binary semaphores.
On FreeRTOS a real binary semaphore which is based on a queue with depth = 0, takes up 76 bytes. Where the new API works just as well and takes only 4 bytes.
Right now just doing this in rdp saved me 72 * 20 connections = 1.4 kB of memory on a small microprocessor with just 32 kB RAM.
So i think thats significant.
I will close this for now, you will likely have to fix the zephyr semaphore.c with a cast.
Maybe I will revisit queues later to make a no-os queue implementation too.


Use Directory.Build.props/targets

Adopts a pattern we've started using in Kestrel, Mvc, and other repos. It helps us reduce duplication between csproj files.
Also, I moved the microbenchmarks project out of test/ into benchmarks/ because it isn't actually a test project.

@natemcmaster,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by .NET Foundation. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot

Do we want to do this before the alpha?

Do we want to do this before the alpha?

The impact of this change is minimal. PackageLineup, on the other hand, deserves more discussion. ==> #791

LGTM

Ok. I'll put this in for now. Fortunately, nothing in VS, KoreBuild, or TC requires us to use this, so we can revert if we change our minds later.


Attempt to circumvent error when opts.publisher is not a string

See https://github.com/electron-userland/electron-forge/issues/160
Have you read the section in CONTRIBUTING.md about pull requests?
Yes
Are your changes appropriately documented?
Yes (very small change, brief comment included to explain why change is desired)
Do your changes have sufficient test coverage?
No changes have been made to the test suite in this changeset. It may be good to add a test that demonstrates what this change fixes (e.g. have a package.json file with author: { name: "First Last", email<EMAIL_ADDRESS>but as I am unfamiliar with the codebase I am not sure if the maintainers would want this.
Does the testsuite pass successfully on your local machine?
There is one failure, but it is unrelated to this change.
1) electron-forge API (with installer=system default) after init after package make (with target=flatpak) successfully makes with default config:
     An error occured while making for target: flatpak
  spawn flatpak ENOENT
  Error: spawn flatpak ENOENT
      at exports._errnoException (util.js:1022:11)
      at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
      at onErrorNT (internal/child_process.js:359:16)
      at _combinedTickCallback (internal/process/next_tick.js:74:11)
      at process._tickCallback (internal/process/next_tick.js:98:9)

Summarize your changes:
I added a check that should prevent opts.publisher.match from being called when opts.publisher is not a string (has no callable match property).
See https://github.com/electron-userland/electron-forge/issues/160 and https://github.com/electron-userland/electron-forge/commit/74a12163f0d43e5e4a837bee380ca06072efe660#commitcomment-21176323

I have copied-pasted summary per your request. As for tests, it should be possible to add a simple test case for the problem that this addresses, and I am willing to spend a little time on that tomorrow if someone would be available to answer questions for / help me (I have not written tests for this project before).

Regarding the one test failure: The testsuite requires flatpak installed on Linux. (It should probably be a better error.)
I or one of the other maintainers can help with the test. We use mocha, if that helps.

I'm trying to write a test for this, but I am having trouble finding a sane way to inject a different value for packageJSON as it seems src/api/make.js only takes providedOptions from the caller, and that can only control dir, interactive, skipPackage, arch, platform, and outDir. If anyone would be willing to help me learn how to test this right please send me a message (I'm usually on the EmberJS Slack channel e-electron).

OK, I've attempted to write a test that covers this, but I don't like the way that I did it (running each build with both possible formats) because it may make the already quite long test suite as up to twice as slow. It seems like it should be possible to do some of this in parallel or--even better--move the test to a unit test that is closer to the actual problem in order to avoid wasting time recomputing things that aren't used/checked, or something, but I did not see how I could've done this without changing the API, monkey-patching, or doing some other BadThing(TM).
@malept Would you mind taking another look at this updated PR? If you like, I can squash the commits or perhaps you'd be willing to take over from here. Running the test suite seems to take an eternity (5 to 10 minutes) on my system, so I can't afford to spend much more time on this, and I'm afraid that despite my best efforts to conform, my coding style isn't going to be the way the project maintainers want it anyway.

Ah snap, there is a problem with the revised/simplified code. Since it's no longer taking opts.publisher.name in the case of non-string opts.publisher, [Object object] is getting fed in, which causes:
MakeAppx : error: Error info: error C00CE169: App manifest validation error: The app manifest must be valid as per schema: Line 8, Column 5, Reason: '[object Object]' violates pattern constraint of '(CN|L|O|OU|E|C|S|STREET|T|G|I|SN|DC|SERIALNUMBER|Description|PostalCode|POBox|Phone|X21Address|dnQualifier|(OID\.(0|[1-9][0-9]*)(\.(0|[1-9][0-9]*))+))=(([^,+="<>#;])+|".*")(, ((CN|L|O|OU|E|C|S|STREET|T|G|I|SN|DC|SERIALNUMBER|Description|PostalCode|POBox|Phone|X21Address|dnQualifier|(OID\.(0|[1-9][0-9]*)(\.(0|[1-9][0-9]*))+))=(([^,+="<>#;])+|".*")))*'.
The attribute 'Publisher' with value '[object Object]' failed to parse.

Since it's no longer taking opts.publisher.name in the case of non-string opts.publisher, [Object object] is getting fed in

Oh I didn't mean that that branch should be deleted, I was more thinking it should be a format that appx expects.

Regarding running the tests: mocha has .only support, so you should be able to use it.only(... and it should only run one test...for development purposes you would probably also only run it on the appx target until you're done, which would require a temporary test code change.
About writing the test - perhaps @MarshallOfSound has a better idea as to how to test this without doubling the make test time.

@malept How would you feel about something like this instead?
// Since opts.publisher defaults to the packageJSON.author value, which may be a string or object,
// we make sure it is a string before calling opts.publisher.match here
if (typeof opts.publisher !== 'string') {
  opts.publisher = `CN=${opts.publisher.name || opts.publisher.toString()}`
}
if (!opts.publisher.match(/^CN=/)) {
  opts.publisher = `CN=${opts.publisher}`;
}

Isn't opts.publisher.toString() equivalent to [Object object]?

Yes, but then it would get the CN= prefix and thus be OK.

Yeah, the problem becomes that we're going to get bug reports that their CN is [Object object]. I would rather have Forge error that there needs to be a name in the author field rather than set it to a JS object.

OK, that's easy enough. How do you like to trigger errors from inside makers?
if (!opts.publisher) {
  throw new Error('Could not find appropriate `publisher` name to use to create AppX package.' +
      '(Try checking the author field in package.json and the windowsStoreConfig in the forge configuration.)');
}

I would prefer something like:
if (typeof opts.publisher === 'string') {
  if (!/^CN=/.test(opts.publisher)) {
    opts.publisher = `CN=${opts.publisher}`;
  }
} else if (opts.publisher.name) {
  opts.publisher = `CN=${opts.publisher.name}`;
} else if (opts.publisher) {
  throw 'Please set config.forge.windowsStoreConfig.publisher or author.name in package.json for the appx target';
}

@MarshallOfSound let me know if your opinion differs.

@malept something to be careful about with the code snippet you suggested is that if opts.publisher = '' then it will match the first condition, get CN= prepended to it, and no error will be throw despite the blank result.

@jacobq As long as it's a logical and readable error I'm fine with this direction.  Just make sure that if it is a config issue / user input issue you throw a string not an error.
Throwing an error will produce a stack trace, throwing a string will simply produce the string as a red error message 👍

@MarshallOfSound Thanks for explaining that. I was only throwing an Error here because (1) I noticed that how errors were handled in nearby code and (2) I assumed stack traces were always preferable since they have more information (can figure out where things are going wrong). In this case the most likely cause of the error is improper configuration, so by your convention I should throw a string here.
Do you want me to do anything more with this PR (e.g. change back to throwing string and squash commits)? You have my $0.02, and I have a working fork that I can use, but this seems like such a trivial change that I can't justify spending much more time (i.e. waiting for npm and the test suite) messing with it. If you don't want to merge it until there's a faster way to test or something that's fine, I'll just leave it here for you to do as you see fit, but if there's some last little thing you want me to do I'll be happy to do it so this can get done; just let me know.

I'm about to look at this again since there appears to be at least one failing test on Windows and because it looks like we also pass opts.publisher to createDefaultCertificate before this check.

Now waiting on https://github.com/felixrieseberg/electron-windows-store/pull/72 so that automatic installation of the certificate can be disabled.

Another brief note: electron-windows-store PRs have been merged, but I'm pretty busy this week so will probably not finish this until next weekend. However, I think we're very close now.

I'm going to rebase it, at least.

Rather, I would, if I had write access to the branch.

@malept Sorry, I checked "Allow edits from maintainers."; I think the problem is because my repo was a fork of a fork. I'll try to do some housekeeping on my PRs and such tomorrow.

It's either the "fork of a fork" problem, or that it's off your fork's master.

I'm closing this in favor of a rebased branch, in #292.


Perform Linux package installs as dry runs

Trying to cut down time spent in CI for build apps for Linux.
PR Checklist:

[X] All new features have been tested
[X] All new features have been documented
[X] I have read the CONTRIBUTING.md file
[X] I will abide by the code of conduct

Before:

After:

sooo, not especially striking...but something, I suppose.

I'm all up for faster CI... but is this really a good idea? A dry run may be faster, but that's because it's not doing the thing that we're trying to validate works.

Well, yes and no, I suppose.
The part I really wanted to test by actually installing the produced package was ensuring:

the package could be properly read by package manager
the dependencies listed therein are valid according to the package manager

AFAICT, these two steps still happen for a dry run....it just doesn't waste all the additional time of downloading and unpacking those dependencies....which Briefcase really has no bearing on anyway.


subflows can turn on/off -headless flag dynamically? - no, try chaining flows in .cmd file instead

For tagui flow calling another flow, anyone know if there is 'headless_mode = false' etc ??
In another perspective, when calling another tagui flow, does it just reuse the instance of browser (hidden or not)?
The original design is to have a simpler flow to 'detect' and check something, then if really has error, then only trigger another tagui flow (which contains vision) to execute something which is more complicated.  By having such design, the automation task can then run more 'quietly' and hidden, unless until really has issue.
Thanks in advanced for any information

Hi @pohhian for subflows, you cannot specify parameters. It will inherit the parameters like headless mode etc from the main flow file you run. However from your scenario, it seems like the events happen in sequence and you can chain the flows together in a batch file by doing the following:
Create a .cmd file with the contents
call tagui flow1.tag -h && tagui flow2.tag

and you can run the file by double clicking it. This will run flow1 in headless and flow2 in normal mode.

Thank you for the reply. The idea actually is to run flow1.tag first, then depending on certain "result/status", then it shall, or shall not, trigger flow2.tag (flow2.tag use visio so cannot be headless).
I shall maybe have a cmd/batch file, to run flow1.tag, and then check its output, then decide whether to trigger flow2.tag.

maybe the best way is to have another intermediate flow, in flow1 you could save the return in a text file, in the intermediate flow you can read and interpret the txt to decide whether to run flow2 or not

Not sure if this is Ryan? 😄
Adding on, following could be experimented. I don't have a Windows laptop to validate below solution.
flow1.tag
dump run_flow2 to result.txt

batch file
call tagui flow1.tag -headless
set /p result=<result.txt
echo %result%
if %result%==run_flow2 call tagui flow2.tag

Thanks to Ken for update. Yes, the solution in the batch file is exactly what i need. Thanks a lot.


Is it final? Not working for me

Hello,
Not working for me whether run as script or standalone .exe. Is this version final one?
Win 11 Enterprise x64 23H2

Hello,
It's supposed to be working. Was the file running in the background/system tray? Or maybe could you provide a screenshot of your live caption app and its notification?

work in admin, but not in normal user

I don't know if it's really working. The notice still pops up, but seems less frequently


feat: update argocd version to 2.6.12

What type of PR is this?

/kind enhancement

What does this PR do / why we need it:
Upgrades Argo CD version to 2.6.12 for release v1.8
How to test changes / Special notes to the reviewer:

Run the operator locally
Wait for the operator to create resources
Go to the any Argo CD workloads pod logs to verify the version.

/lgtm
Thanks

/test v4.10-e2e

/lgtm
/approve

/test v4.11-e2e


main: disable pid ns check and disable perf when running on Fargate

Automatically disable pidns check and perf when running on Fargate.
Description

Related Issue

Motivation and Context

How Has This Been Tested?

Screenshots

Checklist:

[ ] I have read the CONTRIBUTING document.
[ ] I have updated the relevant documentation.
[ ] I have added tests for new logic.

merging master will resolve ci


serde skip_serializing_if and Many

If I have a struct which I want to serialize using serde, and wish to have a skip_serializing_if on a field which is a relation, I can use Option<ForeignKey<..>>, and use #[serde(default, skip_serializing_if = "Option::is_none")] .
If I am not using butane, a "many" field would be Vec<OtherModel> and I can use skip_serializing_if = "Vec::is_empty" to achieve the same.  Many doesnt have an is_empty, and it probably have anything like that as it needs a data connection in order to know whether the relation has zero members.
When attempting to use Option<Many<...>>, the result is:
error[E0277]: the trait bound `Many<OtherModel>: ToSql` is not satisfied
   --> rust/models/src/lib.rs:714:5
    |
714 |     #[model]
    |     ^^^^^^^^ the trait `ToSql` is not implemented for `Many<OtherModel>`
    |
    = help: the following other types implement trait `ToSql`:
              &Polygon
              &...
            and 45 others
    = note: required for `std::option::Option<Many<OtherModel>>` to implement `ToSql`
    = note: required for `SqlVal` to implement `From<std::option::Option<Many<OtherModel>>>`
    = note: required for `std::option::Option<Many<OtherModel>>` to implement `Into<SqlVal>`
note: required by a bound in `FieldExpr`
   --> /home/jayvdb/.cargo/git/checkouts/butane-5043582c88b692d2/ca571a9/butane_core/src/query/fieldexpr.rs:42:8
    |
42  |     T: Into<SqlVal>,
    |        ^^^^^^^^^^^^ required by this bound in `FieldExpr`
    = note: this error originates in the attribute macro `model` (in Nightly builds, run with -Z macro-backtrace for more info)

Building my own Option<Many<OtherModel>> (i.e. struct OptionManyOtherModel(Option<Many<OtherModel>>) doesnt seem to help, because the inner member Many doesnt seem to have something that would help with to_sql/into_sql/etc - hmm, maybe the owner / ower_type could be used here, but I feel like I might be going in the wrong direction, and I need to be doing something in butane_codegen or butane_core/src/codegen to make this work .

The error reporting here could probably be improved, but Many is definitely a special case in Butane because it indicates linkage without actually having an associated database column in the same table. Under the hood it uses a separate table to manage the relation. I'm not sure Option<Many> would even mean semantically because a Many is already allowed to be an empty relation.
Given the current design of Butane, I'm not sure it's going to be possible to do exactly what you want smoothly because as you note Many doesn't necessarily have all the related entities loaded into memory. I think the most straightforward way would be to use an active Connection to transform into a different struct with everything in memory and then serialize that. If you don't want to do that, you'd still have to make sure each Many was loaded and we'd have to add a method to Many like fn is_empty(&self) -> Result<boolean> which fails if the Many is not loaded. Application code could then add a wrapper which ignores errors (because you know you loaded it) to transform into a straight boolean result and then skip serialization with that function.

Having a different set of structs which include an active Connection feels like a lot of baggage just to know whether a member is null or not.  IMO it takes the joy out of the Many.
A Many.is_empty which fails if not already loaded may be an option, but feels brittle.  In my use case, I would prefer to have a Many.is_not_loaded_or_is_empty so the struct metadata indicates the default is to not serialise the Many relationships, and there is no need to load the Many - in my case, those Many have their own Many, several layers deep.  Requiring the app developer to be explicit about the loading and serialising of those Many is a good thing for performance.
Perhaps Many could be accompanied by a Multiple , which would work like a Many except it guarantees there is at least one item, which implies it has done the lookup to the additional table, and then Option<Multiple> makes more sense?  The benefit of this (maybe only to some users?) is that then the "is empty"-ness is exposed in the Rust type system.
Removing the last item from a Multiple might be prevented, as the correct way to achieve that would be to change the Option to be None, which due to ownership will force de-allocating of the Multiple and its last item - hopefully this deallocation can be caught and result in a db update to remove the last item.


:rocket: add L1-l2 messaging chapter

Should close #283
I think it's enough, please tell me if it's not clear.

@0xEniotna Can you address comments once the ethcc craze goes down? 🙏

good remakrs @julio4, fixed

@0xEniotna made some structural and syntax changes, looks good now wdyt?


terrain icons

Closes #19
Changes the design of terrain entries to include a new Icon box, as well as some other tweaks:

This change adds a new icon data slot to terrains, and allows you to set either an icon path or a tileset source_id and coord compo to choose a tile as the icon. A new "pick icon" button added to the dock allows you to easily choose a tile to become the icon for the selected terrain. The terrain property popup now includes an icon path input to allow specifying any image as its icon. All icon changes support undo/redo.
(I went through many different designs for the new look of the terrain entries. While the mockup provided in #19 is very nice it creates a contrast readability issue with bright colors behind the white text, and adding a shadow or outline to the text didn't look good imo.)

Your implementation looks great!
I see that you have replaced the Tree with a Vboxcontainer. maybe we could also add two buttons to make the terrain panel toggle between list/grid mode using GridContainer. This would be very helpful when there is a lot of terrain.
Again a rough prototype ;)

Wow! That looks amazing. The mockup is also good, @univeous , and might be useful when there's a lot of terrain types.
I'll take a look at this as a priority as it seems like a reasonably low consequence change, with a big boost to awesomeness.

Okay, the code looks good. I found it a bit odd that you can assign a tile to a terrain that's part of a different terrain... but that's actually fine. Means you can put something in a category icon even if it belongs to a specific terrain type.
Instead of merging this, perhaps it should be rolled into the other changes which affect the terrain version number, so there's not a redundant version number that nobody is using? I'll have a look at that PR next.

Thanks for the review :)
That's a great idea @univeous, I've included it in the PR:

I have an alternative design in mind that keeps the color bar similar, which gives the item more horizontal room to fit more of the name (for instance, "GrassSlope" in this example can only display "Grass"), and doesnt cover the icon with the terrain type. I went with the other design for now, but feel free to give your opinion one way or the other:

I would be fine rolling the other PR into this one or vice-versa for the sake of the terrain version number. I'll be bumping that number up in whichever PR gets merged later, either way.

I edited the previous message thinking I had pushed the version with univeous's design rather than my modification. Thinking about it now, I think I do prefer the more compact design, even with the limited text length and covered icon. I'll probably change it back (along with a small bug fix), in a moment.

I would rather roll the PRs into a staging branch before merging it all back. No point making upgrade points that aren't on release branch.

Makes sense. will do!

Closing, as it is rolled into https://github.com/Portponky/better-terrain/pull/26 which will be merged to main soon.
Note that any tileset terrains created using this branch will probably be in a invalid state with main/future versions.


KPLS benchmark on Griewank function

Hello,
I am currently working on KPLS techniques as part of my thesis. I am trying to reproduce the results established in the following article: https://hal.archives-ouvertes.fr/hal-01232938/document . The article focuses in part on applying KPLS model on the Griewank function while varying the input ranges, the number of inputs and the number of learning points.
I wrote a code to test KPLS under the same conditions as those defined in the article. Here is my code :
def griewank_function(x):
    """Griewank's function multimodal, symmetric, inseparable """
    y = np.zeros(x.shape[0])
    for j in range(x.shape[0]):
        x_j = x[j,:]
        partA = 0
        partB = 1
        for i in range(x.shape[1]):
            partA += x_j[i]**2
            partB *= np.cos(x_j[i] / np.sqrt(i+1))
        y[j] = 1 + (partA/4000.0) - partB
    return y

def calculate_error(sm,X_test, Y_test):
    Y_predicted = sm.predict_values(X_test)
    err_rel = 100*np.sqrt(np.sum(np.square(Y_predicted[:, 0] - Y_test))/np.sum(np.square(Y_test)))
    return err_rel

#Parameters
X_inf = -5.0
X_sup = 5.0
dim=20
num = 300
num_test = 5000
cri='ese' #ese or c
X_lim = np.tile(np.array([X_inf, X_sup]), (dim,1))

#Calculating test points. To be commented after first iteration
sampling = Random(xlimits=X_lim)
Xt = sampling(num_test)
Yt = griewank_function(Xt)

#initializing errors
err_krg=np.array([])
err_kpls1=np.array([])
err_kpls2=np.array([])
err_kpls3=np.array([])

#Loop for computing mean and sigma
for j in range (10):
    sampling = LHS(xlimits=X_lim, criterion=cri)
    X = sampling(num)
    Y=griewank_function(X)
    print(Y.shape)

   #initializing surrogate models
    sm_krg = KRG(print_prediction=False, corr='squar_exp', n_start=10, theta_bounds=[1e-06, 20.0], theta0=[1e-2])
    sm_kpls1 = KPLS(n_comp=1,print_prediction=False, corr='squar_exp', n_start=10, theta_bounds=[1e-06, 20.0], theta0=[1e-2])
    sm_kpls2 = KPLS(n_comp=2, print_prediction=False, corr='squar_exp', n_start=10, theta_bounds=[1e-06, 20.0],theta0=[1e-2])
    sm_kpls3 = KPLS(n_comp=3, print_prediction=False, corr='squar_exp', n_start=10, theta_bounds=[1e-06, 20.0],theta0=[1e-2])

   #Training surrogate models
    sm_krg.set_training_values(X, Y)
    start = time.time()
    sm_krg.train()
    time_krg = time.time()-start

    sm_kpls1.set_training_values(X, Y)
    start = time.time()
    sm_kpls1.train()
    time_kpls1 = time.time() - start

    sm_kpls2.set_training_values(X, Y)
    start = time.time()
    sm_kpls2.train()
    time_kpls2 = time.time() - start

    sm_kpls3.set_training_values(X, Y)
    start = time.time()
    sm_kpls3.train()
    time_kpls3 = time.time() - start

   #Calculating errors
    err_rel_krg = calculate_error(sm_krg, Xt, Yt)
    err_rel_kpls1 = calculate_error(sm_kpls1, Xt, Yt)
    err_rel_kpls2 = calculate_error(sm_kpls2, Xt, Yt)
    err_rel_kpls3 = calculate_error(sm_kpls3, Xt, Yt)
    #print("smt", err_rel)

    err_krg=np.append(err_krg, err_rel_krg)
    err_kpls1 = np.append(err_kpls1, err_rel_kpls1)
    err_kpls2 = np.append(err_kpls2, err_rel_kpls2)
    err_kpls3 = np.append(err_kpls3, err_rel_kpls3)

print("error krg",np.mean(err_krg,0),"; sigma",np.sqrt(np.var(err_krg,0)),"; time krg",time_krg)
print("error kpls1",np.mean(err_kpls1,0),";  sigma",np.sqrt(np.var(err_kpls1,0)),"; time kpls1",time_kpls1)
print("error kpls2",np.mean(err_kpls2,0),";  sigma",np.sqrt(np.var(err_kpls2,0)),"; time kpls2",time_kpls2)
print("error kpls3",np.mean(err_kpls3,0),";  sigma",np.sqrt(np.var(err_kpls3,0)),"; time kpls3",time_kpls3)

I am using the exact same error definition as the one defined in the article. The error is computed over 5000 random test points.
Correlation function is gaussian.
Here are the results I get (array on the left are my results and array on the right the results from the article)

My fist observation is that the error depends a lot on the DOE used for learning, that is to say, if I generate a new DOE for the same case, I will not get the same results.
In case 3, you can see that I used 2 different samples, one with ESE optimization and one with center criterion which leads to very different results. Furthermore, using KPLS with 2 or 3 components is supposed to lead to very small error (according to the array on the right).
What could be the cause of such a difference ?
I also did somme tests with [-5 5] input range. Do not hesitate to ask me for more details.
Thank you in advance,
Alexandre

I have encountered the same problem. Have you solved it

Hi, no I didn't go any further.

Thanks. I change the sampling method, which also leads to great changes in precision. Can you post this article again? The link won't open


[DOCFIX] update docs/cn/Configuring-Alluxio-with-Swift.md

https://alluxio.atlassian.net/browse/ALLUXIO-2242
thanks your review

Can one of the admins verify this patch?

ok to test

LGTM, thank you for the improvement!

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/11482/
Test PASSed.

Merged build finished. Test PASSed.


compile false alarm warning

fn op_equal[T : Eq](self : Cell[T], other : Cell[T]) -> Bool {
  loop self, other {
    Nil, Nil => true
    Cons({ content: x, next: xs }), Cons({ content: y, next: ys }) =>
       x == y &&
        continue xs, ys

    _, _ => false
  }
}

Warning 018: There is no [continue] in this loop expression, so [loop] is useless here.

this seems works as intended but the error shadows the warning


Update url for Fmovies

Source information
Fmovies 14.25
Source language
English
Source new URL
https://www.fmovies.do/
Other details
Site url got updated. Please change it in the repo.
Acknowledgements

[X] I have updated all installed extensions.
[X] I have opened WebView and checked that the source URL has not changed yet.
[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] I will fill out all of the requested information in this form.

We don't provide anime extensions


Abort delete/update operations early on errors

Codecov Report

Merging #4906 into master will decrease coverage by -0.1%.
The diff coverage is 33.33%.

@@            Coverage Diff             @@
##             master   #4906     +/-   ##
==========================================
- Coverage     82.19%   82.1%   -0.1%
+ Complexity    10692   10673     -19
==========================================
  Files          1294    1294
  Lines         44523   44524      +1
  Branches       5629    5630      +1
==========================================
- Hits          36597   36557     -40
- Misses         5298    5336     +38
- Partials       2628    2631      +3

Impacted Files
Coverage Δ
Complexity Δ

.../elasticsearch/action/bulk/BulkShardProcessor.java
76.66% <ø> (-1.49%)
48 <ø> (-1)

...va/io/crate/operation/projectors/DMLProjector.java
71.42% <33.33%> (-6.35%)
5 <ø> (ø)

...arch/indices/recovery/BlobStartPrefixResponse.java
66.66% <ø> (-33.34%)
3% <ø> (-2%)

...ration/collect/collectors/OrderedDocCollector.java
75% <ø> (-25%)
5% <ø> (-2%)

...a/io/crate/exceptions/ContextMissingException.java
81.81% <ø> (-18.19%)
1% <ø> (-1%)

...crate/executor/transport/TransportShardAction.java
77.5% <ø> (-12.5%)
8% <ø> (-1%)

...ate/operation/projectors/SortingTopNProjector.java
82.5% <ø> (-12.5%)
12% <ø> (-2%)

.../java/io/crate/analyze/symbol/ParameterSymbol.java
87.5% <ø> (-6.25%)
6% <ø> (-1%)

.../java/io/crate/blob/TransportDeleteBlobAction.java
75% <ø> (-5%)
5% <ø> (-1%)

.../distributed/TransportDistributedResultAction.java
77.27% <ø> (-4.55%)
9% <ø> (ø)

... and 27 more

Continue to review full report at Codecov.

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


Getting hold of position data

Hi,
I am a new user of RealSense through the Robotic Development Kit.
I have come across your packages, and have started running the demo demo_person_tracking.launch
I would like to get hold of the position data (x,y,z) of a person and then send this to a different software using UDP. Is it possible to do this with this packages?
Cheers,
Marcos

Hi,
I have been able to subscribe to realsense_ros_person/Frame using Python, however, I cannot access to the data inside Frame, as it prints it as a list? Any hint?
Also, I have not been able to acces realsense_ros_person/User. Is it because there is not an implemented subscriber in the library?
@mattcurfman It will be great if you could point me in the right direction here.
Thanks in advance,
Marcos


[Backport] [1.x] Removing Jenkinsfile (not used), replaced by opensearch-build/jenkins/opensearch/Jenkinsfile (#1408)

Signed-off-by: Andriy Redko<EMAIL_ADDRESS>Description
Backport of https://github.com/opensearch-project/OpenSearch/pull/1408
Issues Resolved
Part of https://github.com/opensearch-project/opensearch-build/issues/732
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

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

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

start gradle check


Add tests for daily_mean and daily_max

the daily_mean function in inflammation/models.py is covered by good tests, but the other functions in this file have no tests yet. Add tests for daily_min and daily_max to ensure these functions work correctly.

#4 : tests are present in develop branch but not main


Fitness landing pages #1373

Fitness landing page issue number-1373
Close #1373
Checklist:

[X] I have mentioned the issue number in my Pull Request.
[X] I have commented my code, particularly in hard-to-understand areas
[] I have created a helpful and easy to understand README.md

Can you please review the pull request @pranjay-poddar

Can you please merge the PR @pranjay-poddar @Saurabh-kumar09 or do I need to make any changes

Can you please label this PR under GSSoC'23 @pranjay-poddar @Saurabh-kumar09


Add basic Google Custom Search to Hugo docs

Fixes #753

Committed to both master and v0.12.docs branches.


Always "out of memory" while Initializing btcd backed fee estimator

My lightning node was created and synced for a few days and suddenly crashed. From then on every time I launch lnd it exits with "out of memory" while Initializing btcd backed fee estimator. I tried to reboot the machine but the same error persisted.
I then tried to remove wallet.db and recreated the wallet. It passed previous failure point and started to sync blocks. However, after 632104 blocks the same exact error happened again.
I'm running lnd + btcd(testnet) on Raspberry Pi model 3B. The memory itself looks fine as it did once synced up and running for a few days. Further information please find the attached files.
systeminfo.txt
lnd.log
runtime_err.txt
lnd.conf.txt

Just for your information. I recompiled lnd with go1.9.3 and this issue was gone.


Simplified requirements.

Additional notes (to be discussed in person):

not clear why we should select in-band vs outofband (is there any advantage?)
it would be nice to create a picture showing the workflow
not clear the meaning of the command "--context=consumer" in the peering

@giorio94 Feel free to add comments. If it's ok, I would merge this and leave the open points for a future PR.

/hold
Holding, as a remainder to squash the commits before merging.

/test

/unhold

/merge


columns missing from mysql database

schema.sql does not contain the columns admin, moderator in the user table.

I added the missing columns to the schema.sql. Thanks for your help! :)


feature: Wire Cache-based Listers Into Tenancy Reconcilers

Feature Description
We know that a number of the tenancy.kcp.dev reconcilers require global views of ClusterWorkspaceTypes and ClusterWorkspaces. We need to hard-code these types into the cache server & get cache-based listers and informers into these controllers.
Proposed Solution
Hard-coding the push of the types into the server is fine. We need to make sensible choices about handling NotFound errors with stale caches.
Alternative Solutions
No response
Want to contribute?

[ ] I would like to work on this issue.

Additional Context
No response

Followed-up by #2612


automate deployment to PyPi, Dockerhub

[ ] GitHub Secrets (PyPi password, Docker password)

[ ] GitHub Actions

https://medium.com/swlh/automate-python-testing-with-github-actions-7926b5d8a865

@djdebonis do we keep coffee-related namings? try to nail down this use case first, and then as we generalize, move core functionality into another repo (which would be amazing practice to not break CI/CD), while retaining specialized functionality in this one. or... try to keep things general from the get-go, incorporate decisions about specialization and generalizing models (crops) into the architecting choices? Both are actually great experience.


CourseState - Add label field

Sometimes, we do not want to concat the course state text with its datetime but we simply want to display a label which explicit the course state.
So we could assume to add a label property to the CourseState dict output.
STATE_LABELS = {
    ONGOING_OPEN: _("On going and still opened for enrollment"),
    FUTURE_OPEN: _("Opened for enrollment"),
    ARCHIVED_OPEN: _("Archived but opened for enrollment"),
    FUTURE_NOT_YET_OPEN: _("Not yet opened for enrollment"),
    FUTURE_CLOSED: _("Not yet started"),
    ONGOING_CLOSED: _("On-going"),
    ARCHIVED_CLOSED: _("Archived"),
    TO_BE_SCHEDULED: _("To be scheduled"),
}

After some thoughts, I'm not quit sure this is relevant to add those kind of labels to backend. Indeed, the label to display really depend to the user context. As a learner, if I'm not yet enrolled to the course, I surely want to know if enrollment are still opened and when the course will begin. Then if the learner is enrolled, enrollment dates are no more relevant. Now, from a course leader point of view, maybe only course dates are relevant (when the course will start? It is ongoing ? When it will be ended ?)
Then from an content editor point of view, maybe it's relevant to display both information : what is the course state ? what is the enrollment state ?
Ping @PanchoutNathan


Upload doesn't work

Using the Mac App Store version.
Upload doesn't seem to work: tested on El Capitan and High Sierra (10.13.5). The appex shows up in the Share menu, the application is registered with my imgur account, I am logged in, imGuru says, but when uploading an image, imGuru doesn't return a URL. Basically, nothing happens.
What gives?

@JayBrown thank you for feedback
I check it in few days

Can be closed.