use of scoreDef and staffDef between measures in CMN

As discussed in https://github.com/rism-ch/verovio/issues/238, the current situation for using <scoreDef> and / or <staffDef> between measures is somewhat unclear and may need clarification.
My suggestion is to always require <scoreDef> outside of <measure>, and only use <staffDef> inside <measure>. However, this results in the need for an intermediate <staffGrp> in the first case. @pe-ro therefore argues that this causes problems:

Requiring the use of <staffGrp> to effect changes to a single staff creates a problem -- what's supposed to happen to the staves not mentioned in the new <staffGrp>? For me, it makes sense to use <staffGrp> to mark changes in the number, order and grouping of staves and <staffDef> to signal changes in the individual staves.

It's actually true that the grouping function is the sore spot in this, and admittedly, I have no final solution for that yet. However, I'd like to disagree with @pe-ro in some points. The presence or absence of a <staffDef> doesn't make any statement whether this staff is rendered or not in a "compressed" full score: That's the very purpose of @visible on <staffDef>. Everytime a <staffDef> isn't included in a later <scoreDef>, it preserves all the values specified earlier for this particular @n (which may actually be a compilation taken from multiple <staffDef> elements).
If I want to change the meter somewhere in the piece, all I need to do is to add a single <scoreDef> with the appropriate attributes. Since they inherit from there, I don't need to specify individual <staffDef> elements (inside the mandatory <staffGrp>). However, the absence of these <staffDef>s can't possibly mean that the whole score becomes invisible!
If it's true that we only need to specify the <staffDef>s that actually require some new statement, while all the others are "mentally preserved", then we need to clarify how grouping of staves is affected by this. At least I have used only the first, mandatory <staffGrp> in subsequent <scoreDef>s. I actually never had to do this so far, but if I had to process this, I would try to make best use of the groups specified in the very first <scoreDef> to render the now visible staves. I would need to see some more examples to decide whether this is feasible or not. Maybe @lpugin has more experience on this?
In out discussion, we just need to make sure we distinguish two cases here: a) the number of (rendered) staves changes, and b) some attributes on a subset of staves are changed, so that all other <staffDef>s are just omitted for convenience. Our solution must be perfectly clear for both cases.

In [our] discussion, we just need to make sure we distinguish two cases here: a) the number of (rendered) staves changes, and b) some attributes on a subset of staves are changed, so that all other s are just omitted for convenience. Our solution must be perfectly clear for both cases.

@kepper --
My suggestion is to use <scoreDef> when the number of staves changes, and <staffDef> for changing a subset of staves. That is,
<scoreDef>
  <staffDef n="1" ... />
  <staffDef n="2" ... />
  <staffDef n="3" ... />
</scoreDef>

regardless of where it occurs within a document, sets the number of rendered staves to 3 and provides attributes for each staff, while
<staffDef n="2" ... />
<staffDef n="3" ... />

as children of <section>, allows one to change the attributes for staves 2 and 3 only.
Because <scoreDef> resets the entire score layout, one must specify all staves (rendered or not) existing at that point in the score.  If this "score-level reset" is not what's desired, then a <staffDef> element should be used for each staff needing a change to its attributes.  Using this approach eliminates any confusion around whether staves missing from <scoreDef> are "carried over"; that is, they never are.

@pe-ro : do I understand correctly that an empty scoreDef can by used to change one attribute but on all staves? for example
<scoreDef meter.sym="common"/>

meaning that the number / order of staves remain the same?

Allow me to amend my last comment -- <scoreDef> can be used to reset the attributes of the score without specifying those of the staves; that is, in the case of
<scoreDef spacing.system="435"/>

all the previously existing staves are "carried over", since a score without staves isn't much of a score. :-)

Yes.

OK. Then with a score with transposing instruments, changing a key signature can look like
<scoreDef key.sig="4s"/>
<!-- changing the transposing instruments -->
<staffDef n="2" key.sig="6s"/>
<staffDef n="3" key.sig="6s"/>

Just to be clear -- there are files in the sample set, converted from MusicXML, that don't follow the plan I've outlined here, Joplin's Elite Syncopations, for example.  At some point, the musicxml2mei converter will need to be updated.
Also, the RNG schema can't enforce these expectations.  We may arrive at some helpful Schematron rules later.

@lpugin, Yes, this is the only way to preserve all the attributes (from previous <scoreDef> and <staffDef> elements) and override only the ones you want to change.

Just to clarify:
considering I want a staff not being rendered from a certain measure onward I could add
<staffDef n="1" visible="false"/>

at an arbitrary level (of course in the right "temporal" spot) in the structure, i.e. <section>, <measure>, <layer> (and some more that I ignore for the moment)?
So <staff n="1"> could contain it's own visibility change?!

In layer? Does not make much sense to me...

@bwbohl --

So <staff n="1"> could contain it's own visibility change?!

I assume your use of the exclamation mark is to register your surprise that a staff could relate information about itself.  In fact, this happens all the time.  For example, a change of clef is a signal that something is about to change with regard to the staff.  So, if a staff can say "I'm using a treble clef now", why shouldn't it also be able to say "I'm invisible now"?
@lpugin --
It doesn't really matter where (within the <staff> markup) the change occurs.  Since <layer> is a child of <staff>, the change can be recorded there just as well as in <staff>.

It doesn't really matter where (within the  markup) the change occurs. Since  is a child of , the change can be recorded there just as well as in

I am not sure I can visualise what it means to say that somewhere in a layer the staff to which is belongs is invisible, but as long as you do it does not matter indeed

😀

I'm not sure I can visualize that circumstance either, but that doesn't mean we should disallow it just because we can't yet see the usefulness of it.
Would it totally freak you out to contemplate that a layer can contain changes to the score? 😀

Of course a staff can contain info about itself. I was just picking the example of switching visibility as it is the most bewildering ;-)
There are cases in modern scores where a staff stops being rendered somewhere in the "middle" of a measure, in the middle of a page and its space kept blank just to the next page turn, then on the next page it would be omitted completely. Can we cover such things with the model proposed?

The observed problem is still there (we guess), but it might be solved differently. First, impact on different repertoires should be considered. Then, it might be interesting to think about the use of clef etc. elements inside layer. The other thing to keep in mind is changing keys at scoreDef, which gets complicated for transposing instruments


Fix Konami code styling

before:

after:

This doesn't attempt to fix the whitespace-between-boxes alignment issue, only the styling issue.

should have just removed it entirely. I already removed it in my mockup. We don't really need jokes like this is a serious site. It was fine and all when it was just Rob's pet project but it is just unnecessary code in ours.

:ok: I've got another change I'm trying to wrap up tonight, but I'll see if I can get that removed once I wrap that up.


[WIP] Parameterized manual retiming for Zynq 7020

Thanks for contributing to BlackParrot! Check out the CONTRIBUTING guide, if this is your first
time. A few details to check:
Issue Fixed
Does this PR address a BlackParrot GitHub issue? Link it here:
Area
Module/tool/makefile/script in question.
bp_be_pipe_fma.v, Vivado, Zynq 7020
Reasoning (outdated, confusing, verbose, etc.)
Why is this change required?
For devices/tools that do not do the necessary retiming automatically
Additional Changes Required (if any)
Next steps, downstream modules affected, etc.
Once HardFloat changes are pulled, we can set manual latency distribution; otherwise unchanged.
Ref
Analysis
Potential impact of the change.
None as is
Verification
Steps to taken to verify the change.
None, open to suggestions
Additional Context
Add any other context about the problem here.
Logs, screenshots or videos that show the issue are very helpful.

Hi, thanks for the PR. You can embed these retiming registers at the input/output of the FMA unit and that should get the same QoR as having them in bp_be_pipe_fma, but will be a lot cleaner (as long as cross-boundary retiming / ungrouping is enabled for the FPU).

Hi, thanks for the PR. You can embed these retiming registers at the input/output of the FMA unit and that should get the same QoR as having them in bp_be_pipe_fma, but will be a lot cleaner (as long as cross-boundary retiming / ungrouping is enabled for the FPU).

I tried using the -retiming and -flatten_hierarchy rebuilt/full options, but couldn't replicate the results from when having this manually placed retiming DFF. Could I be using the tool wrongly maybe?

Dan is saying that we can remove the retiming registers from the BP code, and just feed in a different set of retiming parameters for ASIC versus Zynq.
Dan, seems like we would scoop the *= operator into a bsg_mul_add module which takes a pipeline parameter and then use /hard to vector to FPGA versus ASIC implementation? That seems like a reasonable way to abstract it in a more general way?

Dan is saying that we can remove the retiming registers from the BP code, and just feed in a different set of retiming parameters for ASIC versus Zynq.

I meant without manually distributing some of the trailing retiming_chain registers, I'm unable to get Vivado to automatically retime the bp_be_pipe_fma module just as well. Either way, it's a difference of ~3 ns, and none of the paths are even close to violating timing at 50 MHz, so I'll go ahead and remove them.

Dan, seems like we would scoop the *= operator into a bsg_mul_add module which takes a pipeline parameter and then use /hard to vector to FPGA versus ASIC implementation? That seems like a reasonable way to abstract it in a more general way?

I have the suggested changes integrated with HardFloat, and I can get this done too if you decide to have it that way.

Dan, seems like we would scoop the *= operator into a bsg_mul_add module which takes a pipeline parameter and then use /hard to vector to FPGA versus ASIC implementation? That seems like a reasonable way to abstract it in a more general way?

I think that's reasonable, but the latency distribution parameter is still needed to handle the swap, to know how many cycles to pause after the muladd

Could I be using the tool wrongly maybe?

It seems like you're doing the right thing. Ungrouping / flattening should mean that having the flops on either side of the boundary is identical to the other. However, another student has also observed seemingly random limitations in Vivado, making me think the internal representations are not what you'd expect.

Either way, it's a difference of ~3 ns, and none of the paths are even close to violating timing at 50 MHz, so I'll go ahead and remove them.

This could just be noise if there are other tighter paths


[Bug]: Image for tic tac toe game and others not visible

Give a brief about the bug ✍
Description:
On loading the website the images do not load for games, particularly the tic-tac-toe game & others beside.
What is the expected behavior? 🤔
Description:
The images should be visible for every game.
Provide step by step information reproduce the bug 📄
Description:
I would want to add images for every game. Plus if required, I would willingly add images for all the games which are not loading in the website.
Screenshot:

Select program in which you are contributing
GSSoC24
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

/assign

Hello @riya-rjha, Time's up!⏰
Sorry for closing your issue!
But it's more than a week since we haven't received anything from your side 😢 .
Come up with new ideas, create a new issue and make sure you finish it within a week! 🔥
All the best! 🚀
Happy Hacking! 💗


feat: ability to parse strictly as JSON

To parse strictly as JSON, set all the allow_* properties to false.

Awesome!


Requesting timeframe lookup

#no issue, request feature
Is it possible for me to look up stats on someone in a given timeframe and not their overall average or overall stats?

No.
The API is strictly a snapshot of their stats currently; provided by the Blizzard website. Timeframe features will never be supported all the while Blizzard doesn't provide this data.


Tableau data for KS

Summary
Allows tableau data for Kansas counties to be parsed
Changes
Grabs data from the PDF version of the table containing cases, sorts the characters of the scraped results so they're in the same order they appear on the document, adds the characters together to get county names and case numbers, and gets the total death count for the state from a different sheet within the same tableau dashboard.
Additional notes
Where did this template come from? I like it!

Merged as part of #613


Check WP calculator looks OK with mib-nibb theme

We can't easily install the mib-nibb theme on another WP instance.
What we can do is use Chrome dev tools to copy everything created in a calculator block from a dev WP site into a test mib-nibb page.

Here's a screenshot of the calculator as shown in dev tools (manipulated above).

Looks like we need to adjust the table footer padding and borders.


How can I print footer page number?

I've setted pageCount to true, but when i create PDF file nothing is printed in the footer.
I'm sure that there's somthing I haven't done correctly...
please help me.

Facing the same issue. Also, when I try setting pageCount as false, I get error - Invalid memory access. I don't know whether to use this library or not because I don't find any response to raised issues.


Add a reduced text test-case for issue 4665

Re: issue #4665 and PR #6601.
Since we currently don't have a good text test-case that fails without the above PR, this patch adds a reduced one.

/botio test

/botio makeref

Thank you!


Tab Text Not Vertically Centered

This is a question not a bug per se. I noticed that the text in this tab isn't vertically centered. Is that expected?

https://github.com/h2oai/wave-apps/pull/10

Addressed: https://github.com/h2oai/wave/commit/565b6f60c604970bb9d83ab2cc2e2a83774073fe

Addressed: https://github.com/h2oai/wave/commit/565b6f60c604970bb9d83ab2cc2e2a83774073fe


Crash on Actor Duplicate

The Editor crashes on Actor Duplication.

Right click into scene
"Load GLTF Asset from File"
Select any asset
Copy & Paste the Object
CRASH

Edit:
Unreal Engine 5.3

The runtime objects just fill rendering related structures, they miss tons of stuff required by the editor, that feature is just a quick shortcut for testing assets but you cannot do asset-related operations (albeit there is a new plugin coming out allowing you to save transient objects and filling missing structures)

Thank you very much for your quick reply. The new plugin sounds promising! Any news where I can read about it already?


Add the GCNBMP model

Dear Gavin,

Please read the paper first. It is here.
There is also code-release with the paper here.
After that read the contributing guidelines.
If there is an existing open-source version of the model please take a look.
ChemicalX is built on top of PyTorch 0.10. and torchdrug.
The library heavily builds on top on torchdrug and molecules in batches are PackedGraphs.
There is already a model class under ./chemicalx/models/
Context features, drug level features, and labels are all FloatTensors.
Look at the examples and tests under ./examples/ and ./tests/.
Add auxiliary layers as you see fit - please document these, add tests, and add these layers to the main readme.md if needed.
Add typing to the initialization and forward pass.
Non-data-dependent hyper-ammeters should have default values.
Please add tests under ./tests/ and make sure that your model/layer is tested with real data.
Write an example under ./examples/. What is the AUC on the test set? Is it reasonable?

Hey @cthoyt
I discussed with @benedekrozemberczki  and I'm gonna implement this one. I've had a look at the original code and the paper and I think the architecture is pretty clear for me now. Will let you know how it goes.

Excellent!


Section tag missing in home page

Metrics Banner, Upcoming Events and brand collaboration are missing <section> tag.

Hi @gaurovgiri, can you assign this issue to me and give it the hacktoberfest label? I'll get working on it as soon as I can today.

Sure go ahead. The repo itself has the hackotberfest label. Also give the section with proper id name to metrics banner, upcoming events, recent events and brand colab.

@gaurovgiri I updated this issue now with #61


Add Iterators and the for..of loop

(For Iterator methods, see https://github.com/web-platform-dx/web-features/pull/1656)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of
https://chromestatus.com/feature/4696563918045184
Using compute_from here, as I think the for_of key is the most relevant data point for this one.
There are also iterator symbols on many JS builtins and these could belong to this feature (e.g. javascript.builtins.String.@@iterator and many more). Array has its own feature: https://github.com/web-platform-dx/web-features/blob/main/features/array-iterators.yml. Not sure if this should rather all be here or if we want this to be separate for each builtin.

There are also iterator symbols on many JS builtins and these could belong to this feature (e.g. javascript.builtins.String.@@iterator and many more). Array has its own feature: https://github.com/web-platform-dx/web-features/blob/main/features/array-iterators.yml. Not sure if this should rather all be here or if we want this to be separate for each builtin.

I think is good how you've done this as the generic + usage (for...of), and leaving instance-specific iterators w/ their instances.
Spec authors and implementers may think of something like iterableness as group that crosses instances of it, but developers think on the instance/usage level. Eg, imagine you're looking up if something is iterable - developer would go to the something docs for that.


Switch from api-server to CRDs approach

Description
When the Service Catalog project was started, Kubernetes didn’t have the concept of Custom Resource Definitions (CRDs), which is a way to extend the Kubernetes API without having to write your own API server.
The Service Catalog, instead, implements an aggregated API server, which requires writing an API server from scratch and maintaining its code. Using CRDs would allow the Service Catalog to only own the Controller implementation and to benefit from the implementation improvements of the general API machinery and the CRDs tools.
As the service catalog roadmap towards 1.0.0 includes a point about using CRDs instead of api-server we'd like to implement that change and remove custom api-server and etcd.
Reasons
We and other entities using Service Catalog facing issues with crashing often api-server, controller components also caused by etcd default configuration which doesn't fit a requested usage from controller. When etcd is down, api-server is down, all service catalog CRD and CR instances disappear. Then for example, we are able to delete a given namespace and when api-server is back we see have a state where for example service instances are assigned to not existing namespace (previously deleted)
As the k8s community going towards CRDs only as a way to expose k8s APIs

cut a release branch of the current apiserver code
hook the release branch up to a separate testing/release pipeline
merge CRDs into master / eliminate apiserver code
update Docs

Whats the status of this?

the actual CRD's have been merged and are in beta release. we're still fixing bugs and such before we cut an actual release.

/lifecycle frozen

What's the eta on the final release? The last release candidate was over 6 months ago...

Hi @k
Please take a look on this message :)
https://kubernetes.slack.com/archives/C232SF3TK/p1589536387010900
In general, once I will merge support for k8s 1.18 I will cut the 0.3.0 release. Adding the beta prefix (v0.3.0-beta.3) does not make sense anymore. It’s already been half a year since we merge CRDs and since then we didn’t have any major issues with this implementation.
The rest of the issues from the 0.3.0 milestone will be addressed later and released with 0.3.x versions.

We still need to update docs on k8s website: https://github.com/kubernetes/website/pull/15496

Hi @k
ICYMI: The 0.3.0 is officially released: https://github.com/kubernetes-sigs/service-catalog/releases/tag/v0.3.0
Please let me know if you run into any issues 🙂

I think we can close this, yes?
/close


change full name for drpf template

Coverage remained the same at 91.174% when pulling 278cea38deea14dbfcc6cbc13d60331a37d9238c on update_drpf_parameters into d65f232ecf13f13ef30ae8c1ed8607433c482afc on preprod.


silx.gui.plot.PlotWidget: Refactored management of active items

Merge PR #3987 first!
This PR follows PR #3986 and enable passing items rather than only their legend to PlotWidget.setActiveCurve|Image|Scatter.

It still need some tests.

Added some tests, ready for review.

Let's do it


Failure in update leaves inconsistent services versions

Describe the bug
The first step of updating orchest, be it in web mode or through the CLI, updates orchest-ctl by pulling the latest image. After that, all other services are updated. In the case of an error during the update process, the user might be left with a version of orchest-ctl that is not compatible with the other services.
To Reproduce
Steps to reproduce the behavior:

have unstashed changes in the orchest repository
run an update
orchest-ctl will be updated to the latest version
the update logic will refuse to continue because there are unstashed changes
The version of orchest-ctl is different and possibly incompatible with the other services.

Expected behavior
In case of an update failure (the versions of) services should remain consistent, at least when it comes to the updating process intentionally refusing to continue.

After introducing our own operator (#916) the update process is now completely handled by the orchest-controller which will retry until all Orchest services (e.g. orchest-api) are on the same version.


network_reader_illegal_offset unit test failure on macOS

Bug
The network_reader_illegal_offset unit test is failing on GH's macOS runners. The issue is being investigated and mitigated in #517.
CLP version
1b67fdb
Environment
Any macOS GH runner
Reproduction steps
Run the clp-core-build-macos workflow on a macOS GH runner.

The investigation shows that the issue only happens in some versions of libcurl on macOS, where HTTP return code 416 is not treated as CURL_HTTP_RETURNED_ERROR. In Ubuntu 20.04 and 22.04, we tried to update libcurl to 8.9.1 (which is the latest release when this comment was written) and it didn't reproduce.
Therefore, we suspect this is a macOS-specific issue and will handle it with specialized check for macOS only.


Prepare for v1.10.0 release

When following the release instructions step 2, it seems we do get a failure on the test_warnings_count test. I thought it had to do with the ODK Validate version but that's not the case for 1.16 and 1.15 releases. I wonder, should a group section with no children be an error or a warning? We may need to update the test accordingly by either removing the empty group or adding a child to the group if that is what is desired for the test.
I do not think it should hold approval for this release since the issue should exist in the last couple of releases.
nosetests tests/test_xlsform_spec.py                                                                                (
E..
======================================================================
ERROR: Should raise an expected number of warnings for a diverse form.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/ukanga/ona/pyxform/tests/pyxform_test_case.py", line 258, in assertPyxformXform
    self._run_odk_validate(xml=xml)
  File "/home/ukanga/ona/pyxform/tests/pyxform_test_case.py", line 115, in _run_odk_validate
    check_xform(tmp.name)
  File "/home/ukanga/ona/pyxform/pyxform/validators/odk_validate/__init__.py", line 97, in check_xform
    raise ODKValidateError(
pyxform.validators.odk_validate.ODKValidateError: ODK Validate Errors:
Group has no children! Group: ${labeled_select_group}. The XML is invalid.

Group has no children! Group: ${labeled_select_group}. The XML is invalid.

Group has no children! Group: ${labeled_select_group}. The XML is invalid.

>> Xform is invalid! See above for errors and warnings.

The following files failed validation:
${tmpar0pdk2c}.xml

Result: Invalid

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ukanga/ona/pyxform/tests/test_xlsform_spec.py", line 57, in test_warnings__count
    self.assertPyxformXform(
  File "/home/ukanga/ona/pyxform/tests/pyxform_test_case.py", line 270, in assertPyxformXform
    raise PyxformTestError(
tests.pyxform_test_case.PyxformTestError: ODK Validate error was thrown but 'odk_validate_error__contains' was empty:ODK Validate Errors:
Group has no children! Group: ${labeled_select_group}. The XML is invalid.

Group has no children! Group: ${labeled_select_group}. The XML is invalid.

Group has no children! Group: ${labeled_select_group}. The XML is invalid.

>> Xform is invalid! See above for errors and warnings.

The following files failed validation:
${tmpar0pdk2c}.xml

Result: Invalid

----------------------------------------------------------------------
Ran 3 tests in 0.514s

FAILED (errors=1)

cc: @lognaturel @yanokwa

it seems we do get a failure

Sorry about that. I didn't immediately have an answer for what to do and moved on. I think we should modify the test in either of the two ways you described.

Should be available now, @ukanga!

Thank you @lognaturel


Packer VirtualBox builds failing under macOS High Sierra 10.13.2

So, super strange thing: I can't build this box—or any of my other Debian/Ubuntu boxes, for that matter—on my work laptop, running macOS 10.13.2. So far I've only debugged on that laptop, running both VirtualBox 5.2.4 and VirtualBox 5.1.30, along with both Packer 1.0.3, and 1.1.3.
For some reason, Packer itself is really slow no matter the version, so I'm wondering if there's something on the system hindering the build.
The boot_command was highly suspect (Ubuntu's always done weird things with it anyways...), because for some reason in one case the installer would drop to a blank screen (nothing on it), and then eventually it would drop back to language selection.
In other cases (playing with the <esc><wait><f6><wait> etc game in the beginning of the boot_command), I would get a popup for 'exit to the console installer' over and over again. Very odd behavior.
So using PACKER_LOG=1 packer build --only=virtualbox-iso ubuntu1604.json, I found that just using the following boot_command:
  "builders": [
    {
      "type": "virtualbox-iso",
      "boot_command": [
        "<enter>"
      ],
      ...

I would get the following output in the console on my host:
2017/12/24 22:59:49 ui: ==> virtualbox-iso: Typing the boot command...
==> virtualbox-iso: Typing the boot command...
2017/12/24 22:59:49 packer: 2017/12/24 22:59:49 Special code '<enter>' found, replacing with: [1c 9c]
2017/12/24 22:59:49 packer: 2017/12/24 22:59:49 Executing VBoxManage: []string{"controlvm", "packer-ubuntu-16.04-amd64", "keyboardputscancode", "1c"}
2017/12/24 22:59:52 packer: 2017/12/24 22:59:52 stdout:
2017/12/24 22:59:52 packer: 2017/12/24 22:59:52 stderr:
2017/12/24 22:59:52 packer: 2017/12/24 22:59:52 Executing VBoxManage: []string{"controlvm", "packer-ubuntu-16.04-amd64", "keyboardputscancode", "9c"}
2017/12/24 22:59:55 packer: 2017/12/24 22:59:55 stdout:
2017/12/24 22:59:55 packer: 2017/12/24 22:59:55 stderr:
2017/12/24 22:59:55 packer: 2017/12/24 22:59:55 [INFO] Waiting for SSH, up to timeout: 2h46m40s
2017/12/24 22:59:55 ui: ==> virtualbox-iso: Waiting for SSH to become available...
==> virtualbox-iso: Waiting for SSH to become available...

...but when switching off headless mode (so I could see the GUI), here's what I saw:

So super strange thing, too...
1c 9c is the keydown + keyup for the enter key... and if I run the following commands myself after going back to the installer main menu in the running vm:
VBoxManage controlvm packer-ubuntu-16.04-amd64 keyboardputscancode 1c
VBoxManage controlvm packer-ubuntu-16.04-amd64 keyboardputscancode 9c

Then it proceeds with installation and gets ready for the preseed file... so something's going funny with the interpretation of the keycodes, but only when they come from Packer. Maybe my terminal environment is jacking up the text somehow??

I'm dropping my own .bash_profile customizations in a new shell, and will see if this makes any difference. Could there be some other text encoding going on between Packer and the shell?

Don't know if this is related in any way, but https://github.com/hashicorp/packer/issues/2855.
I'm switching way back to Packer 0.12.2, which I know has worked on this particular computer in the past, and will see if there's any positive difference. Next test will be running the exact same config on my personal laptop (same config, same OS, different hardware).
And if that doesn't work, I'll try it on Fedora. If that doesn't work, Windows... gotta find somewhere this works.

Also, right when the commands are passed, while watching Apple's Console app, I see the message:
VirtualBoxVM (LaunchServices)
LSExceptions shared instance invalidated for timeout.

And a second before that some messages like:
IOHIDDeviceClass::start: elementCount=16 reportHandlerCount=4
IOHIDDeviceClass::buildElements: type=0 *buffer=7f91cb881030 *count=16 size=1536
IOHIDDeviceClass::buildElements: type=1 *buffer=7f91cc4334c0 *count=4 size=384
IOHIDDeviceClass::start: elementCount=16 reportHandlerCount=4
IOHIDDeviceClass::buildElements: type=0 *buffer=7f91cb882a30 *count=16 size=1536
IOHIDDeviceClass::buildElements: type=1 *buffer=7f91cc42d410 *count=4 size=384

And interestingly, a few of these:
Month 13 is out of bounds

Trying Packer 1.1.3 with Virtualbox latest dev build 5.2.97 (119762 - from https://www.virtualbox.org/wiki/Testbuilds)

Hmm, found this in the VirtualBox log (in the VM folder, in my case ~/VirtualBox VMs/[vm name]/Logs/VBox.log):
00:00:11.806103 VMMDev: Guest Log: BIOS: KBD: unsupported int 16h function 03
00:00:11.806513 VMMDev: Guest Log: BIOS: AX=0305 BX=0000 CX=0000 DX=0000

Found https://www.virtualbox.org/ticket/8058, but it doesn't seem necessarily related... checking all the created VM settings seems to indicate things are set up correctly.

Strange, if I just hit 1c... but not 9c, then the install starts going—but I think that's because it keeps hitting enter on the 'install ubuntu' screen then every dialog that comes afterwards.
Okay, changing the game a bit and will try on another computer.

Welp.
Ran it on my personal laptop. Same exact versions of everything... and no issues whatsoever.
I wonder if the work laptop has some sort of networking or other kind of proxying system installed that's screwing with commands and VirtualBox? Maybe some cache somewhere?
Well, since I can't reproduce this issue on another computer, I'm probably going to wipe my work laptop and reinstall. Probably faster to do that (~3-4 hours, all automated) than debug exactly where this error is coming from.


Do not use local time stamp when sending RTCP Sender Report

As local time does not take into account the transmission delay
of publisher side sender report, using local time to calculate
offset is not accurate.
Calculate NTP time stamp based on difference in RTP time.
Notes in code about some shortcomings of this, but should
get better RTT numbers. I think RTT numbers were bloated because of
using local time stamp.

@davidzhao Definitely something to keep a watch on. With tracks pausing/resuming and other combinations, have to watch if I am not catching some scenario here. Will keep an eye out.


Alter ImportData parent class

Alter ImportData parent class to make data attribute inaccessible. Users must use the getter method or the indicator attribute.
Change self.data to self.__data

Here is a suggested implementation
@dataclass
class ImportData(ABC):
    _data: dict[str, pd.DataFrame] = field(default_factory=dict)
    _raw_data: pd.DataFrame = None

    @abstractmethod
    def load_data(self, **kwargs) -> ImportData:
        """Load the _data saved on disk"""
        pass

    @abstractmethod
    def update_data(self, **kwargs) -> ImportData:
        """Update object _data"""
        pass

    def get_data(self, indicators: str | list, **kwargs) -> pd.DataFrame:
        """Get the _data as a Pandas DataFrame"""
        df = pd.DataFrame()

        if indicators == "all":
            indicators = self._data.values()

        if isinstance(indicators, str):
            indicators = [indicators]

        if isinstance(indicators, list):

            for _ in indicators:
                if _ not in self._data:
                    raise ValueError(
                        f"{_} has not been loaded or is an invalid indicator."
                    )

            indicators = [self._data[_] for _ in indicators if _ in list(self._data)]

        for _ in indicators:
            df = pd.concat([df, _], ignore_index=True)

        return df

I generally agree with this new structure. A few thought/questions:

_raw_data would only be used in those cases where you have to get all the data at once but not necessarily want to load it all correct?
Should load_data not require an indicator parameter?
Instead of all shouldn't get_data parameter be None to retrieve all data?
**kwargs should be removed
get_data should check if _data is empty
instead of raising an error if an indicator is not found, it should raise a warning and still return the existing indicators
get_data should check if the dataframe is empty before returning it

It may be useful to also write the tests for the base class before merging

I think there is a bug in get_data
if indicators == "all":
            indicators = self._data.values()

This will create a list of dataframes instead of strings

I generally agree with this new structure. A few thought/questions:

_raw_data would only be used in those cases where you have to get all the data at once but not necessarily want to load it all correct?

That is correct. Several sources may need this but definitely not all. Hence it is happy to be empty.

Should load_data not require an indicator parameter?
Perhaps but that could be a child class thing to implement (in case we decide indicator is not the right word in some cases)

Instead of all shouldn't get_data parameter be None to retrieve all data?
It's an interesting idea. But in the spirit of 'explicit is better' then 'all' is better. None literally means 'None'.

**kwargs should be removed
Not for the ABC, otherwise you can't pass anything not defined there

get_data should check if _data is empty
Indeed, I'll modify

instead of raising an error if an indicator is not found, it should raise a warning and still return the existing indicators
Good idea, I'll modify

get_data should check if the dataframe is empty before returning it
Good idea, I'll log a warning

It may be useful to also write the tests for the base class before merging
Yes!

def get_data(self, indicators: str | list = "all", **kwargs) -> pd.DataFrame:
        """Get the _data as a Pandas DataFrame"""
        if self._data is None:
            raise RuntimeError("No data or indicators have been loaded")

        df = pd.DataFrame()
        indicators_ = []

        if indicators == "all":
            indicators_ = self._data.values()

        if isinstance(indicators, str):
            indicators = [indicators]

        if isinstance(indicators, list):

            for _ in indicators:
                if _ not in self._data:
                    logger.warning(f"{_} not loaded or is an invalid indicator.")

            indicators_ = [self._data[_] for _ in indicators if _ in list(self._data)]

        if len(indicators_) == 0:
            logger.warning("No indicators were loaded. Returning empty dataframe.")

        for _ in indicators_:
            df = pd.concat([df, _], ignore_index=True)

        return df

New version @lpicci96

could rewrite the return to  return pd.concat([df, _] for _ in indicators_, ignore_index=True)
We can also reduce the number of for loops in the list condition by:
for _ in indicators:
    if _ not in self._data:
        logger.warning(f"{_} not loaded or is an invalid indicator.")
        invalid_indicators.append(_)
    else:
        indicators_.append(self._data[_])


Require function is used in a way in which dependencies cannot be statically extracted

Hi,
Firstly thank-you for all the hard work on msw, it really makes mocking end-points really easy. I have found that on latest Storybook (6.4.9), there's a warning in the console:
./node_modules/msw-storybook-addon/dist/mswDecorator.js
25:45-52 Critical dependency: require function is used in a way in which dependencies cannot be statically extracted

It is referring to this line. I have found simply commenting it out directly in my node_modules resolves the issue. Is there a reason for assigning require to __non_webpack_require__? Doesn't this overwrite the point of using __non_webpack_require__ in this instance? i.e.

globalThis.__non_webpack_require__ = require
is replaced by webpack to
globalThis.__non_webpack_require__ = __webpack__require__
Meaning the next line reads:
const { setupServer } = __webpack_require__('msw/node')

I'm going to see if I can get this repo up and running in a fork and replicate the issue...

When I installed this project it resolved to Storybook 6.3.8 and the issue was still prevalent, so it's not isolated to just the most recent version. Would you like me to submit this as a PR?
Before:

After removing the globalThis.__non_webpack_require__ = require line.

Hey @will-stone thanks for opening the issue and doing this investigation! The reason for that code is to support Webpack 5 codebases.
You can check here for more context. I'm not sure if there is a better way to support Webpack 5 and remove that warning, I'd love to hear some ideas and I appreciate your efforts!

It'd be great to find a better way, but the native require is stubbed by webpack, causing all sorts of issues when used in our scenario. Escaping that stub produces the warning you're mentioning.
This is not an issue, however, as static dependency analysis is primarily needed for production build optimization.

Using the solution that is linked to in the comment seems to work:
const nodeVer = typeof process !== "undefined" && process.versions?.node;
    const nodeRequire = nodeVer
      ? typeof __webpack_require__ === "function"
        ? __non_webpack_require__
        : require
      : undefined;

That sounds like a great approach, @will-stone. Would you like to open a pull request so we could release it?

Sure @kettanaito, will do 👍 Thanks.


Fix veracode vulnerability

This fixes a vulnerability detected by Vercode Cleartext Storage of Sensitive Information in Memory
https://cwe.mitre.org/data/definitions/316.html

Sorry but I fail to see how this code addresses the security vulnerability cited.
Changing a foreach to collection.ForEach is literally the same operation, and due to variable capturing could make the problem worse.
Seeing as how there's many many foreach statements scattered throughout the code, I fail to see how just this one triggered a security violation... additionally I fail to see how it addresses the cited problem.

This doesnt seem valid.  Closing.


Clickhouse keeper is broken in bitnami chart

see:
https://github.com/bitnami/charts/issues/15935
Current fix is to switch to zookeper.  The issue has been languishing for quite a while, but just noted that they are increasing the priority.  To use zookeeper set your values to clickhouse.keeper.enable = false and clickhouse.zookeeper.enabled = true.
alternatively in values.yaml:
clickhouse:
  keeper:
    enabled: false
  zookeeper:
    enabled: true

Do you know if this made ClickHouse entirely unusable with CH Keeper? I'll have to treat the switch of the default values with a little more caution if it's possible the existing CH Keeper holds any data. As far as I'm aware there's no migration path from CH Keeper to Zookeeper.

With the default config of shards=2, and replicas=3 I saw that databases never were created, so I went to create them manually since they were listed as not created by prisma here, when attempting to create the tables manually I saw that the DDL operations would hang at 49%.  I spent way too much time digging through clickhouse logs and the error messages eventually led me back to the mentioned bug report.   All that is to say, that I went about eliminating errors until I was able to have a working instance.

I have been messing with the bitnami clickhouse chart, and it looks like the issue is that it create a set of keeper replicas for every shard.

Good job finding out all of this. I merged #20 to at least provide a working clickhouse deployment by default. At least there's a documented migration path from zookeeper to keeper for when keeper is fixed in Bitnami's chart. Thanks a lot for the contributions!


'git submodule update --init --recursive' error

Hi,
I get the following errors when running git submodule update --init --recursive
Cloning into 'extra/cudnn'...
remote: Counting objects: 1184, done.
remote: Compressing objects: 100% (140/140), done.
remote: Total 1184 (delta 76), reused 0 (delta 0), pack-reused 1044
Receiving objects: 100% (1184/1184), 453.90 KiB | 479.00 KiB/s, done.
Resolving deltas: 100% (753/753), done.
Checking connectivity... done.
fatal: reference is not a tree: 8f4c536c0cd0e753d45f42e5ccd9f7052b4690da
Failed to recurse into submodule path 'distro'
Help much appreciated

Should be fixed now, please confirm!

The problem still persists. Moreover,  i get
Submodule path 'distro/pkg/xlua': checked out '98c11caac263e21f793ab2e6a8ed536b3c7cb135'
Unable to checkout 'fb0b256c3b98904f85e7f02288f78654c39350c3' in submodule path 'distro/extra/cunn'
Unable to checkout 'd21ddb2a85ccaf393ba2a8410637a354ed8e87b5' in submodule path 'distro/extra/cutorch'


[BUG] Static copyright Year

Description
Copyright year is not working dynamically It should fetch the current year automatically
Screenshots
No response
Any additional information?
No response
What browser are you seeing the problem on?
Chrome

Congratulations, @Meetjain1! 🎉 Thank you for creating your issue. Your contribution is greatly appreciated and we look forward to working with you to resolve the issue. Keep up the great work!We will promptly review your changes and offer feedback. Keep up the excellent work! Kindly remember to check our contributing guidelines

Hey you should work on an issue only when you're assigned to work on something. Please take that into notice next time you contribute on any Github repository.

Seems like you're quite new here, so will consider but please take that into consideration. @Meetjain1

Seems like you're quite new here, so will consider but please take that into consideration. @Meetjain1

Sure @pooranjoyb . Thanks for understanding


Cozmo App doesn't connect to pycozmo server

Title says it all. And yes i modified Cozmos app to connect to my PC instead of cozmo (well... i don't even have a cozmo lol).
The engine sends "COZ\x03RE\x01" but the pycozmo server doesn't respond to it for some reason...?
Edit: If someone wants it, I can give pcap file from my phone.

This is probably a library problem. I tried connecting to the server on my PC from my phone and it didn't work and tried the opposite. Even installed pycozmo on my RPI Zero and connecting to it from my phone/pc and it still didn't work.
@zayfod Do you have any idea why?

This is probably a library problem. I tried connecting to the server on my PC from my phone and it didn't work and tried the opposite. Even installed pycozmo on my RPI Zero and connecting to it from my phone/pc and it still didn't work.
@zayfod Do you have any idea why?

Update again, modified Cozmos app once again to connect to the local server on my phone and it works (sort of, still doesn't go past "Connecting to Cozmo..." screen(I get the Connected message on the server though, might need to add missing packets)).
Why does this work locally?

Update again, modified Cozmos app once again to connect to the local server on my phone and it works (sort of, still doesn't go past "Connecting to Cozmo..." screen(I get the Connected message on the server though, might need to add missing packets)).
Why does this work locally?

Probably the last reply if this doesn't get any response from anyone else.
I today came back to this and I found out the Cozmo app repeatedly sending the Ping frame and I think PyCozmo sends something invalid, causing Cozmo app to send Ping frame again and again until it fails.
Also, the server I think doesn't support giving cube data because I got to the "Pull the tabs on your Cubes" screen (by forcing the app) and clicking continue after it appears in a few seconds (Note that the frame might not even got sent because the Cozmo app probably closes the TCP connection after it fails).

I am not sure I understand your setup.
PyCozmo is designed to interact with Cozmo and not the Cozmo mobile app.

I am not sure I understand your setup.
PyCozmo is designed to interact with Cozmo and not the Cozmo mobile app.

Well, I've figured it out a few weeks ago.
It was because, guess it, I was not sending packets to the client.
Sooo, it just failed at doing anything when it didn't receive the robot events (like that event with FW version, S/N etc).
I tried emulating as a robot but I still failed (don't know why, also discovered the app has a native library for communicating with the robot). So, I just gave up.


Windows Kernel Mode Build Broken with Latest Azure Pipelines

Describe the bug
This morning it seems that Azure Pipelines took some kind of update because my teams' CI pipeline that builds our kernel mode code is completely broken.
[MSFT Internal Link Only]
https://microsoft.visualstudio.com/OS/_build/results?buildId=22662819&view=logs&j=1204e69e-9c52-5fc3-715c-177f7fdb0a3a&t=b2eebfab-7505-58e7-4497-5b1e11c53393&l=34
##[error]C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\km\ntddk.h(19206,1): Error C1001: Internal compiler error.
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\km\ntddk.h(19206,1): fatal error C1001: Internal compiler error. [d:\a\1\s\src\platform\platform.kernel.vcxproj]
  (compiler file 'msc1.cpp', line 1532)
   To work around this problem, try simplifying or changing the program near the locations listed above.

After some investigation, I was able to reproduce the build issue locally with VS version 16.5.1, but when I updated to 16.5.2 the issue was fixed. This is a very painful break for us, as this breaks our whole CI for a GitHub project. Would it be possible to update VS to the latest ASAP?
Area for Triage:

Question, Bug, or Feature?:

Virtual environments affected

[ ] macOS 10.15
[ ] Ubuntu 16.04 LTS
[ ] Ubuntu 18.04 LTS
[ ] Windows Server 2016 R2
[X] Windows Server 2019

Expected behavior
Build succeeds.
Actual behavior
Build fails. See build link above (only accessible for MSFT).

@nibanks could you try to add this workaround as the first step of your pipeline?
Start-Process -Wait -FilePath  "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe" -ArgumentList "update --passive --norestart --installpath ""C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise"""

@miketimofeev that didn't seem to work:
https://microsoft.visualstudio.com/OS/_build/results?buildId=22821963&view=logs&j=1204e69e-9c52-5fc3-715c-177f7fdb0a3a&t=60496b87-ee54-57bc-2b15-3bd0b5dee969
The change I tried can be seen here:
https://github.com/microsoft/msquic/compare/nibanks/test-kernel-workaround?expand=1

@nibanks Unfortunately, I don't have access to the logs, but it looks like you've made a mistake in the quotes,
you have
"update --passive --norestart --installpath 'C:\Program Files (x86)\Microsoft Visual **Studio\2019\Enterprise'"
should be
"update --passive --norestart --installpath ""C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise"""
Could you try with the proper quotes, please?

That seemed to fix the builds. Thanks:
https://microsoft.visualstudio.com/OS/_build/results?buildId=22824684&view=logs&j=1204e69e-9c52-5fc3-715c-177f7fdb0a3a&t=1204e69e-9c52-5fc3-715c-177f7fdb0a3a

Still awaiting deployment?! What's the ETA here?

@nibanks the deployment was finished yesterday. Could you please check the VS version?

Looks like the build succeeded without the workaround. Thanks.

Closing the issue, but feel free to reopen if you have any concerns.
Thank you!


Fix 'ignore' setting

When trying to set 'ignore' some files from linting, current version of sass-lint doesn't get it, and lint them anyway. I'm checking if current file in 'lintText()' is in configs ignore list, and prevent from linting it.
DCO 1.1 Signed-off-by: Michał Sajnóg<EMAIL_ADDRESS>

Hi @michalsnik can you please read and follow the contribution guidelines before submitting PR's
https://github.com/sasstools/sass-lint/blob/develop/CONTRIBUTING.md#pull-requests
Thanks

Hi,
Sure, i'll create appropriate issue later.

I updated my PR, now it solves issue #452
I'm checking if currently linted file matches any of 'ignore' setting value, either string and array. To check if it matches I added minimatch package, which is also used by glob package.
What do you think about it? Should I write some tests for this? Or I simply don't understand something in sass-lint and everything works fine without my change?
My PR makes it possible to set for example:

I moved my code into new helper function and wrote some tests.

I had a tiny comment then I think this is ready to merge. @DanPurdy any reason to wait?

Sorry, I've just not had the time to look into anything this week, will go over this today.

@benthemonkey thanks, i just reordered dependencies

OK @benthemonkey & @michalsnik I don't think we can merge this, I need to have a word with @Snugug because for me the issue isn't actually with sass-lint it's with gulp-sass-lint. gulp-sass-lint is using the lintText() method when it probably should be using the lintFiles() method.
We already load the config and sort out all of the ignores and includes including handling all glob patterns in lintFiles which then fires into lintText so we'd end up duplicating a lot of functionality for people using the CLI, grunt-sass-lint and some of the IDE integrations that are about.

@DanPurdy and I talked about this; it does need to be resolved in lintText not gulp-sass-lint, but we need to look in to this more to see if this is the way we'd like it resolved.

For reference in the future, I handled this in linter-sass-lint for atom with the globule module
https://github.com/AtomLinter/linter-sass-lint/blob/master/lib/main.coffee#L133
There could be a similar approach taken in gulp/grunt sass-lint as long as we can relativise the paths between the config and what gulp is receiving or we could load the config once in lintText, cache-it and then check for file matches before actually applying our rules.

Hi Guys,
Any progress with this issue?


updated the e2e test for eComm activity

Coverage remained the same at 99.79% when pulling a809d0d9da3a6c92fedc89ad85bf7628fdc63160 on sites into 65291e78b05c11bfa1fc0017359a9e2afecdcba5 on master.


Better check for symbol presence than NULL comparison

At the moment, there are two ways to check whether a library contains a symbol: Trying to get_xxxx it - which may throw, and requires the type; or get_symbol(), which doesn't throw, and may return NULL.
I'm not sure the user should even have to know about NULL in order to check for symbol presence.
There are different ways to approach this. One would be returning an optional; another - a contains() or has() method which returns a boolean.

I'm not sure the user should even have to know about NULL in order to check for symbol presence.

get_symbol() is a private member function

There are different ways to approach this. One would be returning an optional; another - a contains() or has() method which returns a boolean.

i made has_symbol() function is order to do that

Sorry, I missed that.


⚠ Bofrost.at has degraded performance

In 1953db3, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2076 ms

Resolved: Bofrost.at performance has improved in 7cb8149 after 15 minutes.


add additional aarch64 test machines

closes: https://github.com/AdoptOpenJDK/openjdk-infrastructure/issues/1037
FYI @smlambert

To confirm, yes, xvfb is currently how we enable certain openjdk jdk_awt and jdk_swing tests, that being said, the Jenkins Xvfb plugin does not seem to work for OS X, so we have disabled those tests in some cases (see https://github.com/AdoptOpenJDK/openjdk-tests/blob/master/openjdk/playlist.xml#L155 and https://github.com/AdoptOpenJDK/openjdk-tests/blob/master/openjdk/playlist.xml#L415
If we had to, we could do same on aarch64 (not ideal though).

I don't have a strong opinion for the other parts of the PR.  I would not hold up a merge of this but rather come in with follow-up PR, if need be.
How are these playbook changes tested?  I can run some tests on a machine to confirm if other testing looks good.

@sxa555 I've added the centos deps to the playbook for now as a workaround. Are you happy to merge this and then we can work on a more permanent solution?


Visibility creation and calibration improvements

Support other pixel combinations, currently only works with large pixels only, small pixels only, small and large, top bottom.
Check use of phase_center v centre make sure correct and keep same nomenclature as xrayvision
Don't have to overwrite u and v coordinates

Check also units of the STIX visibilities

Also, I think that the output of create_visibility and of calibrate_visibility should be a visibility structure. Maybe this is also related this issue in xrayvision


Shutdown Ray with its workers gracefully

... is this a draft?

... is this a draft?

Yeah.
Tried a few things, documented here: https://linear.app/runhouse/issue/RH-54/look-into-killing-ray-gracefully-only-on-port-6379-and-with-all


startrescan allows timestamps before genesis block on test networks

Entered a 2015 date as rescan date for a signet setup.
Rescan stopped at 100%, no errors handled by the GUI, only an error in logs:
2024-01-03T15:09:04.881557Z ERROR liana::bitcoin::poller::looper:289: Could not retrieve block height for timestamp '1421020800'

To fix this, i think we can simply query the time of the genesis block from bitcoind instead of using a hardcoded constant which is mainnet-specific:
https://github.com/wizardsardine/liana/blob/15b1f0c789d251dc3d420de50e859b6dd4bfda75/src/commands/mod.rs#L870-L880

xref #956


[WIP] Cache refactor

@damemi
This PR is Part I of refactor to use openshift/service-idler for scaling/idling.  It:

Renames pkg/idling to pkg/autoidling, and moves pkg/idling idle.go to pkg/cache. This separates origin idling/unidling from hibernation component auto-idling.
Replaces the ResourceObject cache with k8s Informers/Listers.  The ResourceObject fields are converted to project annotations with this change (such as LastSleepTimeAnnotation, ProjectIsAsleepAnnotation, etc).  We get rid of the complexity of the custom object cache, and now use k8s objects instead. No  longer have our own Indexers/DeepCopy/Resync/Add/Delete/Update/etc methods to maintain.
Using k8s client-go dynamic client when possible to collect info, to avoid having to loop through each Kind of object for everything.  Also, using k8s ScaleClient when possible to handle the scaling of scalable objects.

Now that the cache is simplified with this PR, paves the way for Part II of refactor to bring in openshift/service-idler...
Part II follow-Up PR will:

use service-idler Idler objects to handle all idling/scaling/unidling -- this can't happen until the service-idler is implemented in origin.  For now, we have to still rely on annotations for unidling.

TODO:
Fixup tests
Get @DirectXMan12 's help in implementing dynamic client.  See if I can avoid having to loop through an obj.Kind when scaling.

went in new direction with this PR, makes sense to close and reopen from a new branch...


How to intergrate antv/f2 to React Native

The issue which is not created via https://antv-issue-helper.surge.sh will be closed immediately.
Hi,
Im react native developer, Im going to use antv/f2 chart for my mobile app. is there any guideline to integrate this lib to react-native.

https://github.com/zengyue/f2-rn-gcanvas-demo
This is a simple example with gcanvas
gcanvas: https://github.com/alibaba/GCanvas

https://github.com/zengyue/f2-rn-gcanvas-demo
This is a simple example with gcanvas
gcanvas: https://github.com/alibaba/GCanvas

Why GCanvas?

https://github.com/zengyue/f2-rn-gcanvas-demo
This is a simple example with gcanvas
gcanvas: https://github.com/alibaba/GCanvas

https://github.com/chenshuai2144/f2-demo/blob/master/App.js#L22 , why this demo is not working?

react-native-canvas need await before method, F2 use Standard CanvasRenderingContext2D， not support async method

@m4devgeek You can try something like
const canvasContext = canvas.getContext('2d');
const chart = new F2.Chart({
context: canvasContext,
width: Layout.containerWidth,
height: 200,
padding: [20, 0, 20, 40],
});


⚠ Jenkins Plugins Artifactory has degraded performance

In 880d41f, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1380 ms

Resolved: Jenkins Plugins Artifactory performance has improved in 2d78de8 after 1 hour, 28 minutes.


Support for NFSv4 referrals in exports file

Can you please add support for NFSv4 referrals in the exports file?
Example from the linux-nfs list:
/ref<EMAIL_ADDRESS>should send accesses to /ref/path1/path2 to to host <IP_ADDRESS> with the path /export/home/path1/path2

We had referral support in the past, which was dropped during refactoring as the expectation was that FedFs would tape over. I will check how much work it takes to restore it.

I would like to have referral support too, mainly to have an in-house referral server and test it with the ms-nfs41-client (https://github.com/kofemann/ms-nfs41-client).

We had referral support in the past, which was dropped during refactoring as the expectation was that FedFs would tape over. I will check how much work it takes to restore it.

is it possible to add support for custom (non-2049) TCP ports, please ?
What would be the syntax ? Maybe this:
/ref<EMAIL_ADDRESS>for port 32049 ?

refer=/export/home

We had referral support in the past, which was dropped during refactoring as the expectation was that FedFs would tape over. I will check how much work it takes to restore it.

is it possible to add support for custom (non-2049) TCP ports, please ?
What would be the syntax ? Maybe this: /ref<EMAIL_ADDRESS>for port 32049 ?

Or better /ref *(no_root_squash,refer=/export/home@<IP_ADDRESS>:32049) ?

We had referral support in the past, which was dropped during refactoring as the expectation was that FedFs would tape over. I will check how much work it takes to restore it.

@kofemann Do you have any news?

No ETA yet.


Subsequences of a string using Bit manipulation

🚀 Feature
Given a string s, print all possible subsequences of the given string
Have you read the [Contributing Guidelines on Pull Requests]
Yes

@HarshCasper @Abhijit2505 @SKAUL05

#closed


Next steps towards using a separate AMQP cluster for logs processing

What is the problem that this PR is trying to fix?
https://github.com/travis-ci/reliability/issues/90
Having a separate logs cluster is part of our strategy for RabbitMQ scalability.
What approach did you choose and why?
Add the minimum necessary changes in order to get something functional and be able to test.
This makes things a bit confusing (with both the JobQueue and LogsQueue duplicating behaviour), but I expect some cleanup steps to follow.
How can you test this?
Will try to test on staging. I'll consider things to be successful if there are messages being sent to the logs queue on the separate cluster.
What feedback would you like, if any?
ALL THE FEEDBACK!

This is working on staging 🎉


Explain how playtests are aggregated

I'm trying to confirm if the plugin is joining playtests started before installation but I can't seem to pin down what it's actually doing. (I'm on "PlaytestMode": 3 and am running a single bot.)
Looking in the Bot_FreePackages.db file I see "WaitlistedPlaytests" for a list of appids it has tried to join (and was waitlisted instead of being immediately accepted) but there doesn't seem to be a que for playtests it has not yet gotten around to activating.
I confirmed it joined a playtest soon after I installed the plugin and it added some free apps but I didn't see any other playtests being added.
I used https://steamdb.info/search/?a=app_keynames&type=-1&keyname=511&operator=3&keyvalue=1&all=1 to look at which appids have a playtest running, closed ASF, and copied those appids into the "ChangedApps":[] section. After firing it up again "ChangedApps" became empty relatively quickly and I noticed it joining some of the playtests I added.
 Are the apps I added to "ChangedApps" forgotten about or was me mucking about in the files pointless to begin with because the plugin has its own way of finding ongoing playtests?
Please consider expanding the readme to contain some of this information as well.

This plugin works by listening for changes to Steam's PICS.  The plugin can discover new packages as they're released, but is limited due to PICS not showing all old changes.  As a result, the plugin can only discover packages that have changed recently, usually in the last ~12 hours.

If you use the queuestatus command, you might see something like:

1 free packages queued. 0/25 activations used. 4 apps and 12 packages discovered but not processed yet.

The  "discovered but not processed yet" are saved as ChangedApps and ChangedPackages in the db file.  The plugin knows these things exist, but doesn't know what they are or if it should try to activate them yet.  Once these are processed, they'll be deleted from ChangedApps and ChangedPackages.  If the plugin decides it wants to activate them, then they'll be added to Packages (represented above as "x free packages queued").
There's no such thing as ChangedPlaytests or Playtests in the db file because on Steam there are only apps and packages.  A playtest being an app with an App Type of "Beta".  All apps are granted to a Steam account through packages (hence why there also isn't an Apps).  WaitlistedPlaytests is just a way to keep track of what playtests an account has joined so that the plugin doesn't needlessly attempt to join them again.
I don't expect people to be editing the db file manually.  If you'd like to add playtests manually you can do so using the command queuelicense^, for example: queuelicense^ bot app/2896310.  Notice that you'd need to add the AppID of the playtest (2896310), not the actual game (2811100).
If AppIDs from https://steamdb.info/search/?a=app_keynames&type=-1&keyname=511&operator=3&keyvalue=1&all=1 are added to ChangedApps then I'd expect the only thing the plugin will do is to delete these AppIDs from ChangedApps.  These are not free apps and the plugin has no way to discover a playtest given only the parent AppID.  The playtests you saw the plugin join would have been playtests that the plugin discovered on its own.


Feature/greek translation

Added Greek Translation and fixed e2e tests for Frontend/Jp.UserManagement

Added tasks and configuration for e2e tests and npm for vscode debugging
Fixed e2e tests
Added greek translation

swt thx!


Current status?

Great stuff! Seems to be just what we're looking for.
I'm just wondering about what the dev status is, specifically for OpenAPI 3.0?

Great to know, thanks for your reply!


GoogleChat alerts are blank under certain conditions for ICMP endpoints

Describe the bug
When using ICMP and [CONNECTED] == true, whenever an endpoint fails, the Google Chat/Spaces App only sends a blank message with no data.
What do you see?
Nothing is displayed, it sends an empty message.
What do you expect to see?
Full alert, like with HTTPS, which works just fine. This is ICMP only.
List the steps that must be taken to reproduce this issue
Setup googlechat alert, have an ICMP endpoint fail.
Version
latest branch
Additional information
No response

@melsom I've made an attempt to fix it in #363, but I don't use Google Chat, so could you test it for me?
I've published the fix under the Docker image tag experimental (twinproduction/gatus:experimental).

Hello @TwiN - Tried your build now, and now we don't see any messages ICMP or HTTPS at all coming into our Google Chat Space. I have no way of debugging this myself unless you give me explicit instructions :) Hope you're able to solve it.

Here are the logs for you:
ICMP Endpoint:
2022/11/09 07:51:46 [watchdog][handleAlertsToTrigger] Sending googlechat alert because alert for endpoint=TEST ALERT with description='Endpoint is not responding' has been TRIGGERED
2022/11/09 07:51:46 [watchdog][handleAlertsToTrigger] Failed to send an alert for endpoint=TEST ALERT: call to provider alert returned status code 400: {
"error": {
"code": 400,
"message": "Invalid value at 'message.cards[0].sections[0].widgets[2].key_value.content_multiline' (TYPE_BOOL), ""\nInvalid value at 'message.cards[0].sections[0].widgets[2].key_value.icon' (type.google                                                                                apis.com/google.chat.v1.WidgetMarkup.Icon), """,
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.rpc.BadRequest",
"fieldViolations": [
{
"field": "message.cards[0].sections[0].widgets[2].key_value.content_multiline",
"description": "Invalid value at 'message.cards[0].sections[0].widgets[2].key_value.content_multiline' (TYPE_BOOL), """
},
{
"field": "message.cards[0].sections[0].widgets[2].key_value.icon",
"description": "Invalid value at 'message.cards[0].sections[0].widgets[2].key_value.icon' (type.googleapis.com/google.chat.v1.WidgetMarkup.Icon), """
}
]
}
]
}
}
And for HTTPS:
2022/11/09 07:51:48 [watchdog][handleAlertsToTrigger] Sending googlechat alert because alert for endpoint=TEST ALERT 2 with description='Endpoint is not responding' has been TRIGGERED
2022/11/09 07:51:48 [watchdog][handleAlertsToTrigger] Failed to send an alert for endpoint=TEST ALERT 2: call to provider alert returned status code 400: {
"error": {
"code": 400,
"message": "Invalid value at 'message.cards[0].sections[0].widgets[2].key_value.content_multiline' (TYPE_BOOL), ""\nInvalid value at 'message.cards[0].sections[0].widgets[2].key_value.icon' (type.google                                                                                apis.com/google.chat.v1.WidgetMarkup.Icon), """,
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.rpc.BadRequest",
"fieldViolations": [
{
"field": "message.cards[0].sections[0].widgets[2].key_value.content_multiline",
"description": "Invalid value at 'message.cards[0].sections[0].widgets[2].key_value.content_multiline' (TYPE_BOOL), """
},
{
"field": "message.cards[0].sections[0].widgets[2].key_value.icon",
"description": "Invalid value at 'message.cards[0].sections[0].widgets[2].key_value.icon' (type.googleapis.com/google.chat.v1.WidgetMarkup.Icon), """
}
]
}
]
}
}

@melsom Could you try again? I made another change & re-released experimental.

@TwiN
It now sends blank alerts for everything. No errors in the logs though:
022/11/10 08:04:34 [watchdog][handleAlertsToResolve] Sending googlechat alert because alert for endpoint=TEST with description='Endpoint is not responding' has been RESOLVED
See the following url for screenshot:
https://i.postimg.cc/CLsgTXwL/mon.png

@melsom So I finally gave in and decided to set up Google Chat myself, but well.. it seems like you need to be a paid user to create webhooks, so it seems like you'll be stuck with me for a bit longer 🤣
Anyways, I've made one more change.
Hopefully, third time's the charm 🤞

It was :) Finally working. Thank you!

@melsom Glad to hear it! I'll merge #363 shortly :)

It seems I have spoken too soon, we still get ICMP endpoints with no data. Do you have telegram or anything else? I want to share the data we use but do not want to put that public.

Before that, I just created #364 and re-released the tag experimental with only one change: it prints the GoogleChat request body.
Could you try again, and reply with the request body that shows as a blank message?
(don't forget to replace all confidential information by other, equivalent strings)

Sorry been a few busy days. Will test now shortly and report back.

Still does not output anything for icmp. Also tried tcp, same there, but https works. Tcp/icmp does report fine to our pushover (custom) instance.

If you want to share your email I can invite your account to a paid Space to test.

@melsom Please do, that would be awesome.
Use the following gmail account:
chris.nas.svr at gmail dot com

So I did some debugging using the space you provided me, and the cause seems to be that Google Chat refuses to display an URL when the underlying link is not prefixed with https://.
Because tcp:// and icmp:// endpoints aren't prefixed with https://, it just fails silently (and Google Chat even returns a 200!).
Fix incoming.


Multiple commands produce (...) Xcode 11, using 2 targets

My project use 2 targets MyApp and MyAppDev both has the R.swift script to generate the file.
After Xcode 11 I'm receiving this error when I try run with fastlane.
❌  error: Multiple commands produce '/Users/narlei/sources/ios/mobile-app-ios/MyApp/R.generated.swift':
duplicate output file '/Users/narlei/sources/ios/mobile-app-ios/MyApp/R.generated.swift' on task: PhaseScriptExecution R.swift /Users/narlei/Library/Developer/Xcode/DerivedData/MyApp-gzdqbugguohnkhdzzsdvsiatbckl/Build/Intermediates.noindex/MyApp.build/Debug-iphonesimulator/MyAppDev.build/Script-9C71E27C2177BE4D006F5B7E.sh (in target 'MyAppDev' from project 'MyApp')

Testing failed:
Multiple commands produce '/Users/narlei/sources/ios/mobile-app-ios/MyApp/R.generated.swift':

That command depends on command in Target 'MyApp' (project 'MyApp'): script phase “R.swift”

That command depends on command in Target 'MyAppDev' (project 'MyApp'): script phase “R.swift”
Testing cancelled because the build failed.

The same happened here. My solution was to create a different generated file for each target, so ultimately I got:
A) For the production environment the script is:
"$PODS_ROOT/R.swift/rswift" generate "$SRCROOT/R.generated.swift"
And the output files are: $SRCROOT/R.generated.swift
B) For the staging environment the script is:
"$PODS_ROOT/R.swift/rswift" generate "$SRCROOT/R.staging.generated.swift"
And the output files are: $SRCROOT/R.staging.generated.swift
Upon changing, I had to rebuild the project in each target, add the newly generated R.staging.generated.swift to the project in the staging target and change the old R.generated.swift to be only used by my default target.
At least for now, this seems like it solved it, if you guys find any drawbacks on the solution let me know :)

@RodrigoLGuimaraes  For me, using the Legacy Build System works, the bug is only with New Build System.

For me, I have R.swift build phase in 2 targets. Removing it in 1 works for me

@RodrigoLGuimaraes Monster Kill!!!! Best Answer!

The same happened here. My solution was to create a different generated file for each target, so ultimately I got:
A) For the production environment the script is:
"$PODS_ROOT/R.swift/rswift" generate "$SRCROOT/R.generated.swift"
And the output files are: $SRCROOT/R.generated.swift
B) For the staging environment the script is:
"$PODS_ROOT/R.swift/rswift" generate "$SRCROOT/R.staging.generated.swift"
And the output files are: $SRCROOT/R.staging.generated.swift
Upon changing, I had to rebuild the project in each target, add the newly generated R.staging.generated.swift to the project in the staging target and change the old R.generated.swift to be only used by my default target.
At least for now, this seems like it solved it, if you guys find any drawbacks on the solution let me know :)

@RodrigoLGuimaraes Monster Kill!!!! Best Answer! Saved my life today!

The same happened here. My solution was to create a different generated file for each target, so ultimately I got:
A) For the production environment the script is:
"$PODS_ROOT/R.swift/rswift" generate "$SRCROOT/R.generated.swift"
And the output files are: $SRCROOT/R.generated.swift
B) For the staging environment the script is:
"$PODS_ROOT/R.swift/rswift" generate "$SRCROOT/R.staging.generated.swift"
And the output files are: $SRCROOT/R.staging.generated.swift
Upon changing, I had to rebuild the project in each target, add the newly generated R.staging.generated.swift to the project in the staging target and change the old R.generated.swift to be only used by my default target.
At least for now, this seems like it solved it, if you guys find any drawbacks on the solution let me know :)

Yeah totally saved me too.  I really think this should be in the main page of the FAQS within the documentation on how to integrate R.swift into multiple targets.  I'm sure it's a common theme for big production apps.

@RodrigoLGuimaraes Monster Kill!!!! Best Answer! Saved my life today!

The same happened here. My solution was to create a different generated file for each target, so ultimately I got:
A) For the production environment the script is:
"$PODS_ROOT/R.swift/rswift" generate "$SRCROOT/R.generated.swift"
And the output files are: $SRCROOT/R.generated.swift
B) For the staging environment the script is:
"$PODS_ROOT/R.swift/rswift" generate "$SRCROOT/R.staging.generated.swift"
And the output files are: $SRCROOT/R.staging.generated.swift
Upon changing, I had to rebuild the project in each target, add the newly generated R.staging.generated.swift to the project in the staging target and change the old R.generated.swift to be only used by my default target.
At least for now, this seems like it solved it, if you guys find any drawbacks on the solution let me know :)

Yeah totally saved me too.  I really think this should be in the main page of the FAQS within the documentation on how to integrate R.swift into multiple targets.  I'm sure it's a common theme for big production apps.

I experienced the same issue, however, I believe that the problem is not really on the R.swift side but rather in your project configuration.
In my case, the project has also a target for MyAppUITests. In your scheme configuration that builds MyAppDev target (Edit scheme -> Build), you'll have most likely also the MyAppUITests target. If your MyAppUITests target has a MyApp dependency then you're building both targets in one step which results in generating twice the R.generated.swift and results in this error.

@branohricardo I have this issue now with my unit test. How to proceed with this?


Bug: Repeated event does not always end correctly.

Bug Description
I encountered inconsistent behaviour regarding those few lines.

I would expect that given enemiesToSpawn = 1 it would exactly execute ones. Unfortunately, seemingly randomly it will spawn infinite amount of enemies.
Behaviour
Step 1: I run the code and everything works fine.
Step 2: I change unrelated code and suddenly instead of once, it is executed infinite times.
Step 3: I stop the execution and rerun, it works now without changing any line of code.
Importance
This issue is not critical to me and might be hard to fix without reproducible example. I will add more information if I see a pattern or get a consistent case.

Thanks for this. Can you please also post spawnEnemy function?

In addition, if you explain your use case, perhaps we can find a more suitable solution altogether?

Thanks for taking the time. As for the use case, I only happened three times yet and I was not able to deduce a cause. I just know that either enemiesLeft does not update to false, although the enemiesToSpawn variable is negative, or that runAtIntervalWhile function is not informed about the change of enemiesLeft.

I think I get what you are trying to do: spawn enemies every second until all of them are spawned. So I assume enemiesToSpawn > 0 when the game starts, otherwise the timer won't run at all. Is it possible that the enemiesLeft is garbage collected? That would explain the erratic behaviour. Please can you move enemiesLeft to an instance-level variable and then run the game?

Exactly, it is pretty much copy pasted from your tower defense example. Garbage collector would explain the inconsistent behaviour very good.
However, not sure if that is possible.

enemiesLeft is a SimpleBooleanProperty which is in the scope of initGame
then I give it as argument for runAtIntervalWhile, this creates a TimerAction which is stored in timerActions and is added as listener to enemiesLeft. Therefore there is a hard link chain which should prevent collecting. Right?

The next time it occurs I try to get more information and experiment with making enemiesLeft an instance-level variable.

When initGame() completes, enemiesLeft ref goes out of scope, whilst no reference in run... is retained, so it is feasible that it gets GC'ed.

So, a little update. I managed to create a reproducible example by calling the garbage collector. And as you predicted, the issue resolves itself when I move the enemiesLeft declaration to the instance scope.
However, I still do not understand why adding a listener to enemiesLeft does not create a hard-reference between the two objects and prevent collection.
Anyway, I guess this was more an implementation error of mine and no bug. Thanks for the help.

@marvinbuff I've had a quick look at the implementation of listeners. You are correct that a hard reference is created but it is circular:
Property (object) -> ExpressionHelper (SingleInvalidation) -> Property (object)

After initGame() is finished, the last reachable reference to object is lost. The reference kept by ExpressionHelper is not reachable since the only way to reach ExpressionHelper is via object. So it makes sense that object is eligible for GC.
I'll keep the issue open until I add a note in the documentation of runAtIntervalWhile; you are welcome to contribute that as well if you want.


update protocol lockfile

nothing currently enforces this lockfile being updated, @chrisnojima  is --frozen-lockfile the right way to go or should we do something else here?

merging over unrelated check flake


Add info about funds landing in on-chain balance when channel closing

Currently, channel close looks like this:

I'll add to first modal a sentence at the top:

"Closing this channel will move it's remaining funds to your on-chain balance and reduce your receive limit."

or, ideally:
"Closing this channel will move XXXX sats in this channel to your on-chain balanceand reduce your receive limit by YYYY sats."
On the second modal, I'd shorten first description a bit:

Attempt to settle with your channel partner for a quick, low-cost closure. If your partner is offline or agreement cannot be met, it will initiate a force closure.

What would be useful, If we know it, to mention how long it usually takes (1, 6 confirmations?)

Attempt to settle with your channel partner for a quick, low-cost closure. Your funds should be available on-chain within X confirmations. If your partner is offline or agreement cannot be met, it will initiate a force closure.

alternatively:

within an hour

I think it's a single confirmation for a co-operative close. But @stackingsaunter should we also hide the force closure option behind an "advanced" setting as in other places?

@rolznz no need to hide it imho.


I don't use Visual Studio

URL
https://dotnet.microsoft.com/en-us/learn/maui/first-app-tutorial/install
Operating system
Linux
More information about your system
Linux 6.5.0-35-generic #35~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue May  7 09:00:52 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
Description
I don't use Visual Studio (Code) and it would be great if the tutorial provided some way of setting up with just the dotnet CLI command.
dotnet --info
.NET SDK:
Version:           8.0.110
Commit:            87a66bb3d1
Workload version:  8.0.100-manifests.9143487c
Runtime Environment:
OS Name:     ubuntu
OS Version:  22.04
OS Platform: Linux
RID:         ubuntu.22.04-x64
Base Path:   /usr/lib/dotnet/sdk/8.0.110/
.NET workloads installed:
Workload version: 8.0.100-manifests.9143487c
There are no installed workloads to display.
Host:
Version:      8.0.10
Architecture: x64
Commit:       81cabf2857
.NET SDKs installed:
8.0.110 [/usr/lib/dotnet/sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 8.0.10 [/usr/lib/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 8.0.10 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]
Other architectures found:
None
Environment variables:
Not set
global.json file:
Not found
Learn more:
https://aka.ms/dotnet/info
Download .NET:
https://aka.ms/dotnet/download

@BethMassi @rachelkang not sure how feasible this is. It seems a very niche scenario. What do you think of this suggestion for Linux? I remember we haven't even added the VS Code version for Linux before by design.

I don't think a getting started via CLI will be that useful for a getting started tutorial because of the many manual steps you'll need to do to get Android set up. We're also not prioritizing MAUI development on Linux at this time. I imagine that if we did create a Linux tutorial, it would be VS Code-focused.

Closing with no action required at this time


Add remarks to live/lb/position.md

Remarks: duplicate mapUids not supported, and scores must be >= 0.

The duplicate mapUid thing feels a bit like an obvious remark that probably doesn't need to be be this high in the list of remarks, whereas the minimum score of 1 is a lot more important. Can you move the line with the minimum score above the duplicate mapUid one?


[BUG] Example notebooks should use column_mapping for custom operators

The tutorial and end-to-end session-based example notebooks define custom operators that have the output_column_names method defined. They should use column_mapping instead, like in NVIDIA-Merlin/NVTabular#1424.

@rnyak I think this might be connected to some of the issues with extra columns being returned from workflows

@rnyak I think this might be connected to some of the issues with extra columns being returned from workflows

Thanks Karl. I will take a look that.

Resolved by https://github.com/NVIDIA-Merlin/Transformers4Rec/pull/388


Supporting Verilog's "inout" construct

There is a problem where existing Verilog boxes have ports that can be driven by different places, i.e. I2C bus. This is represented by the Verilog "inout" construct. While we don't want to directly support modeling tri-state buses, we do need a way to connect black boxed Verilog designs within FIRRTL to other black boxed Verilog designs.
As a result, we need a way to indicate that two ports are connected, but that we can make no other assumptions about it (i.e. you cannot buffer the signal, or introduce a mux, etc.)
My proposal is to add two new constructs:

An Analog type. An analog type has the property that no two Analog types are equivalent. Thus, the following FIRRTL causes a type error:

wire x : Analog
wire y : Analog
x <= y   ;ERROR: x and y do not have equivalent types
y <= x   ;ERROR: x and y do not have equivalent types

Another benefit is a bundle type that contains an Analog type will also fail when assigning to/from:
wire x : {a : Analog, b : UInt<32>}
wire y : {a : Analog, b : UInt<32>}
x <= y   ;ERROR: x and y do not have equivalent types
y <= x   ;ERROR: x and y do not have equivalent types

Finally, no primitive operation, mux, or node will accept an Analog-typed argument.

An attach operator. The attach operator takes a variable number of Analog-typed expressions, and attaches them together.

wire x : Analog
wire y : Analog
attach(x,y)

Assuming a, b, and c are all Analog types, the following two examples are equivalent:
attach(a,b)
attach(b,c)

and
attach(a,b,c)

Middle FIRRTL and Low FIRRTL will have the restriction that no two attach operators will have the same referenced expressions.
These two constructs give us the following property that Analog types will never interact with our existing connection semantics. This is for good reason - and Analog signal's direction is dynamic (or non-existent), while the connection semantics assumes a statically known direction. Rather than change our existing connection semantics and worry about how it interacts with other constructs, its better to never cause an interaction.
Thoughts?
@aswaterman @jackkoenig @jackbackrack @sdtwigg and any others?

I haven't thought through the implications fully, but I think you're going to want to add the ability to attach analog types to other FIRRTL types.  Otherwise, people will just write black boxes that consist only of a single assign statement to connect them together, as a means to get around the FIRRTL limitation.  This is hokey and provides even less safety.

Good point Andrew. Let's add an asAnalog primop that converts Clk/UInt/SInt to Analog, and add Analog as a valid input type to asUInt, asSInt, and asClock.


Bugfix/#1-No longer works on youtube

I know, this is not that subtle, but it works with any site I use...

Fixes #1


Won't switch branch

VSCode Version: Version 1.31.1 (1.31.1)
OS Version: MacOS Version 10.14.3

Steps to Reproduce:

Open MacOS Terminal.
Go to project folder.
Open folder with VSCode: $ code .
Switch to another branch: $ git checkout anotherbranch
VSCode shows error: Unable to open: <file-name>: file not found. Any file that exists on one branch but not the other will cause this error. VSCode used to be able to switch between git branches without issues.

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

Duplicate.


show 3-legged script example

Currently the documentation only shows 2 legged auth.
Need to show 3-legged oauth example for connections to sources like A360, BIM360, Fusion-Team, etc.

Does the unity plugin support/ require any files outside of what is supported by Forge data management service?
We have had a problem where we need to store obscure file formats in the context of a BIM360 project but due to Forge not supporting the file format, we get an error and I am wondering if you might come up against the same problem with a material file or similar...


Fix APIKey Secrets Not Found issue in K8s Infra

Fixes #390
As per changes in PR #388, Default secrets name for api key does not matches with secrets defined in k8s-infra/secrets.yaml template, This causes secrets not found issue for default secrets.

@weastel can you double-check if this change works?
The mentioned issue was already addressed in this PR: https://github.com/SigNoz/charts/pull/400
Looks like I forgot to close it.

Sorry just missed this change on PR. Issue is resolved itself, we don't need to merge this PR. Closing this PR


Async support

Privileged issue

[X] I'm @tiangolo or he asked me directly to create an issue here.

Issue Content
I want Typer to have optional support for async functions.
It would depend on having AnyIO (or maybe Asyncer :thinking:) installed. If the command function is async, then it would run it with anyio.run().
Maybe autocompletion functions could also be async, so they would have to be checked to see if they need to be called directly or awaited.

Why not use native asyncio.run() ?

I'm currently using this type-annotated wrapper to make the Typer.callback() and Typer.command() decorators compatible with both async and non-async functions:
import asyncio
import inspect
from collections.abc import Callable, Coroutine
from functools import wraps
from typing import Any, ParamSpec, TypeVar, cast

from typer import Typer
from typer.core import TyperCommand, TyperGroup
from typer.models import CommandFunctionType

P = ParamSpec("P")
R = TypeVar("R")

class AsyncTyper(Typer):
    @staticmethod
    def maybe_run_async(
        decorator: Callable[[CommandFunctionType], CommandFunctionType],
        f: CommandFunctionType,
    ) -> CommandFunctionType:
        if inspect.iscoroutinefunction(f):

            @wraps(f)
            def runner(*args: Any, **kwargs: Any) -> Any:
                return asyncio.run(cast(Callable[..., Coroutine[Any, Any, Any]], f)(*args, **kwargs))

            return decorator(cast(CommandFunctionType, runner))
        return decorator(f)

    # noinspection PyShadowingBuiltins
    def callback(
        self,
        name: str | None = None,
        *,
        cls: type[TyperGroup] | None = None,
        invoke_without_command: bool = False,
        no_args_is_help: bool = False,
        subcommand_metavar: str | None = None,
        chain: bool = False,
        result_callback: Callable[..., Any] | None = None,
        context_settings: dict[Any, Any] | None = None,
        help: str | None = None,  # noqa: A002
        epilog: str | None = None,
        short_help: str | None = None,
        options_metavar: str = "[OPTIONS]",
        add_help_option: bool = True,
        hidden: bool = False,
        deprecated: bool = False,
        rich_help_panel: str | None = None,
    ) -> Callable[[CommandFunctionType], CommandFunctionType]:
        decorator = super().callback(
            name=name,
            cls=cls,
            invoke_without_command=invoke_without_command,
            no_args_is_help=no_args_is_help,
            subcommand_metavar=subcommand_metavar,
            chain=chain,
            result_callback=result_callback,
            context_settings=context_settings,
            help=help,
            epilog=epilog,
            short_help=short_help,
            options_metavar=options_metavar,
            add_help_option=add_help_option,
            hidden=hidden,
            deprecated=deprecated,
            rich_help_panel=rich_help_panel,
        )
        return lambda f: self.maybe_run_async(decorator, f)

    # noinspection PyShadowingBuiltins
    def command(
        self,
        name: str | None = None,
        *,
        cls: type[TyperCommand] | None = None,
        context_settings: dict[Any, Any] | None = None,
        help: str | None = None,  # noqa: A002
        epilog: str | None = None,
        short_help: str | None = None,
        options_metavar: str = "[OPTIONS]",
        add_help_option: bool = True,
        no_args_is_help: bool = False,
        hidden: bool = False,
        deprecated: bool = False,
        rich_help_panel: str | None = None,
    ) -> Callable[[CommandFunctionType], CommandFunctionType]:
        decorator = super().command(
            name=name,
            cls=cls,
            context_settings=context_settings,
            help=help,
            epilog=epilog,
            short_help=short_help,
            options_metavar=options_metavar,
            add_help_option=add_help_option,
            no_args_is_help=no_args_is_help,
            hidden=hidden,
            deprecated=deprecated,
            rich_help_panel=rich_help_panel,
        )
        return lambda f: self.maybe_run_async(decorator, f)

There is no dependency on AnyIO or Asyncer.

This would be a useful addition. Currently I'm using a decorator to run the async callback
def cli_coro(
    signals=(signal.SIGHUP, signal.SIGTERM, signal.SIGINT),
    shutdown_func=None,
):
    """Decorator function that allows defining coroutines with click."""

    def decorator_cli_coro(f):
        @wraps(f)
        def wrapper(*args, **kwargs):
            loop = asyncio.get_event_loop()
            if shutdown_func:
                for ss in signals:
                    loop.add_signal_handler(ss, shutdown_func, ss, loop)
            return loop.run_until_complete(f(*args, **kwargs))

        return wrapper

    return decorator_cli_coro

@cli_coro()
async def cli_command(...):

but it would be useful to have an option directly in Typer.

Strong support for async! Especially for chained sub commands.
I'm not sure it makes sense to support async shell completions though. There's never an instance where more than one parameter needs completion simultaneously and if you need to do multiple I/O bound things at once to complete a parameter you can just start an event loop in your completer function.


Color does not work

The results column should have colors but doesn't seem to work.

That's because it's not supported 😄
Replacing colors with icons: 🥇 ⏸  ❌


Refactoring of Pooled Storage Manager classes

Description
The functionality provided by GPUPooledStorageManager and GPUPooledRoundedStorageManager classes was re-implemented. This allowed using caching not only for the GPU, but also for the CPU and  CPU_Pinned memory.
Checklist
Essentials

[x] Changes are complete (i.e. I finished coding on this PR)
[x] All changes have test coverage:
[x] Code is well-documented:
[x] To the best of my knowledge, examples are either not affected by this change, or have been fixed to be compatible with this change

Changes

[x] Class PooledStorageManager implemented as a template:

template<typename BucketingStrategy, typename StoringMethod>
class PooledStorageManager : public StorageManager,
 public BucketingStrategy, public StoringMethod { ... }

which

allows using different methods/algorithms for bucketing and storing cached data;

eliminate duplication of code for different memory types: gpu, cpu, cpu_pinned;

[x] The default Storage Manager for CPU, CPU_Pinned memory will be Pooled and not Naive as before.

[x] Duplicated code related to the profiling and some parameter checks (handle.size / handle.dptr) which was spread inside the different Storage Manages now is located in corresponding methods of StorageImpl class.

[x] New environment variables which define the bucketing parameters for CPU, CPU_Pinned memory used with the Pooled Storage Managers are implemented and described in **docs/static_site/src/pages/api/faq/env_var.md**

[x] If needed, the user can

set MXNET_USE_NAIVE_STORAGE_MANAGERS=1 and the Naive Storage Managers for all types of memory

use MXNET_[XXX]_MEM_POOL_TYPE=Unpooled, with XXX is one of {GPU, CPU, CPU_PINNED} and start using Native storage Manager for that specific memory type.

Comments
Our experiments show a 2.2-2.3x improvement in training time when using CPU / CPU_Pinned memory with new Pooled Storage Managers compared to their usage with Naive (non-pooled) Storage Manager's

@szha :  I think this PR is ready for review. Two non-required tests failed, but for some reason, CI launched both of them twice, and first launches succeeded.

@andrei5055 thanks, I will take a look. Since this PR is for refactoring so I don't expect performance change, but just in case given that this is core functionality: could you do some benchmarking on how fast the allocation is (in terms of calls per second), as well as come up with a snippet for comparing the performance before and after the change?

Here is first graph for GPU Storage Managers:

I will construct similar graphs for CPU, CPU_PINNED and Threaded Engines.
My benchmarks are based on that script. As you could see, some lines are almost identical, as it should be.

(Here we do have only three lines, because the Pooled Storage Manager was not implemented for CPU_PINNED memory.)

(Here we do have only three lines, because the Pooled Storage Manager was not implemented for CPU memory.)

Regarding my previous comment...
Please, for now ignore graphs for CPU and CPU_PINNED memory. I am not sure why, but I don't see 2x run time improvement for newly implemented Pooled Storage Managers with respect to "Unpooled" ones, which I saw on my local NVidia branch. Perhaps, it's because I was using my workstation with limited amount of CPU memory. I will try to run the same benchmarks on the machine with more CPU memory and I will update the results.
I tried, but, unfortunately, I cannot compile MxNet on our dbcluster because of 5GB memory limitation we have here.
But it is not important anymore, because I notices significant difference in performance between current NVidia version of MxNet  and Incubator-MxNet.

As we could see, for Batch Size > 1,the Incubator-MxNet is much faster for CPU/CPU_PINNED Storage Manager.
I do not know why this is happening, but it does not interfere with this merger.
I will make the changes you proposed.

@andrei5055 thanks for the refactor