No module named 'logi'

Where is this package available? I can't seem to find it anywhere. At the very least in my opinion needs to be in the README.md as to how to setup. This issue may be resolved with #1
Traceback (most recent call last):
  File "./quack.py", line 23, in <module>
    import onewaymeasurement
  File "C:\tools\ultra_ping\onewaymeasurement.py", line 8, in <module>
    import logi_pi_timer
  File "C:\tools\ultra_ping\logi_pi_timer.py", line 6, in <module>
    import logi
ModuleNotFoundError: No module named 'logi'

Good catch, forgot to document that. It's from https://github.com/fpga-logi/logi-tools - but since it's something for the specific hardware platform we used, the LOGI Pi, I'm expecting most people to customise that part of the code. I've added a note to the README.

Thanks! :+1:


"Expected a single 'From' header" when trying to restore a Google Chat backup

I'm getting this error when restoring, and in digging through the SQLite databases, I figured out the message it started happening on, and it's an old-style google chat. Must be right on the date I switched to Hangouts.
Hangouts chats don't error (but don't restore in a useful way, either), but the old chats completely crash the restore process. The error makes sense, but I'm not sure what to do about it.
This is what one of those files looks like.
sender {
  id {
    unique_id: "116702751922476051888"
    obfuscated_gaia_id: "116702751922476051888"
  }
  full_name: "Bob Sacamano"
}
conversation_id: "UgzQVz1lat0ak63hkk54AaABAQ"
timestamp:<PHONE_NUMBER>230852
event_id: "7-H0Z7-2xai70pr8U8voM0"
chat_message {
  segment {
    text: "yup"
  }
}
is_off_the_record: false```

I have seen few emial causing same errors at my mailbox. There were two reasons:

two From headers
no From header

Once I have identified them (I have modified the code, so it prints to the console which message is being restored for both batch restore and single big message), I have changed message name, so it was skipped during import. For few that I really need, I have forwarded them from old to new email account. No other idea how to solve this.
Hope this helps.

I experienced the same error after having sucessfully restored more than 25,000 mails (and hangouts chat messages).
Expected a single 'From header'
@samsar777 could you please tell me what parts of the code you exactly modified in order to get it working? Thanks!

This should be fixed in 0.43.


Upload and Monitor via Pio

I am getting the following error (username blanked with xxxxxx) when running Upload and Monitor.
File "c:\users\xxxxxxxx.platformio\penv\lib\site-packages\serial\serialwin32.py", line 64, in open
raise SerialException("could not open port {!r}: {!r}".format(self.portstr, ctypes.WinError()))
serial.serialutil.SerialException: could not open port '/dev/cu.SLAB_USBtoUART': FileNotFoundError(2, 'The system cannot find the path specified.', None, 3)
I am on Windows 10 and the Kit COM port is COM9. How do I commit the port to the configuration - it does not seem to save correctly.
Thanks.

I resolved the issue above. However now when I run Build or Upload and Monitor I get the following:
Error: Couldn't find target config target-AWS_IoT_EduKit-Getting_Started.elf-c69afd479f49d5de2667.json

I resolved the issue above by configuring the COM port correctly with the format COM[9].
Might be worth documenting these errors in the documentation in case others come across same ?

I believe your underlying request is to move the cumbersome steps for Windows to be located within the documentation itself, rather than pointing to Espressif's documentation or PlatformIO's. If you look at the section for identifying the port, it calls out what you need to do for the upload_port option in Windows: https://edukit.workshop.aws/en/getting-started/run-rainmaker.html#identifying-and-setting-the-serial-port-on-host-machine
I will evaluate this—especially if others feel the same way. Leaving the issue open for now.


remove any/all code language hints for now

removes any language hints for now until the formatter can be consistent
did a find/replace for:
```.+

The Markdown linter suggests
```text
not highlighted
```

Instead of bare fences.
https://github.com/DavidAnson/markdownlint/blob/v0.31.1/doc/md040.md based on https://cirosantilli.com/markdown-style-guide/#option-code-fenced


webpack-typescript: DOMContentLoaded triggered twice

Hi,
one of our users found a problem with the document.ready event triggered a second time and  after some components have been attached. See the issue here for full context and console logs: https://github.com/aurelia-ui-toolkits/aurelia-materialize-bridge/issues/200
In the above mentioned issue, we're using Materialize which initializes itself on $(document).ready() or the DOMContentLoaded event. Because this is triggered twice, Materialize is initialized twice which leads to a couple of problems with its controls.
This only happens with the webpack skeleton. If you do the same in a "non-webpack" skeleton it behaves like expected. The DOMContentLoaded event is fired only once.
I've uploaded a reproduction here: https://github.com/Thanood/webpack-domready-issue
There are two skeletons in that repo: typescript and typescript-webpack. Both contain the same modifications:

a "DOMContentLoaded" listener in index html, logging to the console
a "DOMContentLoaded" listener in an imported file which logs to the console (this is to simulate any library which relies on this DOM event to initialize itself)
a custom attribute with an attached() handler, logging to the console

This is the log that's being generated when using the webpack version:
document.ready
DEBUG [aurelia] Loading plugin aurelia-templating-binding.
DEBUG [aurelia] Configured plugin aurelia-templating-binding.
DEBUG [aurelia] Loading plugin aurelia-templating-resources.
DEBUG [aurelia] Configured plugin aurelia-templating-resources.
DEBUG [aurelia] Loading plugin aurelia-history-browser.
DEBUG [aurelia] Configured plugin aurelia-history-browser.
DEBUG [aurelia] Loading plugin aurelia-templating-router.
DEBUG [aurelia] Configured plugin aurelia-templating-router.
DEBUG [aurelia] Loading plugin aurelia-event-aggregator.
DEBUG [aurelia] Configured plugin aurelia-event-aggregator.
INFO [aurelia] Aurelia Started
DEBUG [templating] importing resources for app.html Array[3]
DEBUG [templating] importing resources for nav-bar.html Array[0]
DEBUG [templating] importing resources for welcome.html Array[0]
custom-attr.attached
document.ready import

With the non-webpack version the last line document.ready import is missing, as expected. :smile:
Ping @JoschaMetze who found this.

@niieani Can you take a look at this?
@Thanood Do you know what is causing the issue? Any recommendations?

Odd. I'll add it to my ToDo list.

Thanks for looking into it.
Unfortunately my webpack experience is limited. So no idea what happens.

This shouldn't be happening in the 1.0.0 anymore.
I cannot reproduce with the recent changes to how Webpack is handled. Please test this after we release 1.0.0 and if the problem is still there, let me know.

I've just tried this with Aurelia 1.0 but an old skeleton. The problem is still there.
I'll use the 1.0 skeleton and try again.

Doesn't happen with the 1.0.0 skeleton. :+1:
Thanks!
btw. it would be nice if "compileOnSave": false was set in tsconfig.json.

Unfortunately it still is an issue in my opinion, but maybe @Thanood has a different approach.
It is correct that using DOMContentLoaded doesn't throw the import message, but using $( document ).ready still does. @Thanood try to add the following in dom-ready.ts:
$( document ).ready(function() {   console.log('document.ready import'); });

@JoschaMetze what do you mean by saying:

doesn't throw the import message

@Thanood compileOnSave is by default false, not sure why would we need it there explicitly? Unless it's on true that I don't know about?

Sorry for not stating that more clearly, I meant that the DOMContentLoaded event isn't triggered twice (as was the original implementation from @Thanood, see the last line of his log), so the bug is resolved for the DOMContentLoaded event. But unfortunately not for the document.ready()-event which is used quite regularly in materialize-css.
Or to rephrase, the problem in the original repro case has been resolved, but is still there using the jquery-events/document.ready.

document.ready cannot fire twice, so my guess is that the code is imported twice in your case, and thus the handler is executed twice. This can be caused by materialize-css being listed in the entry point and then being required again in some package, causing the handler to be set twice. Generally, import side effects are not recommended (with ES2015 modules startup should always be explicit, e.g. wrapped in a function), so this also seems like a bug in the way materialize-css initializes itself.

I will have to try this but when this is true:

try to add the following in dom-ready.ts: $( document ).ready(function() { console.log('document.ready import'); });

then materialize-css is not even involved.
@JoschaMetze did you try with dropdown? Because there is a known issue about dropdown options since the recent Materialize release 0.97.7: https://github.com/Dogfalo/materialize/issues/3417#issuecomment-235537425

Well, actually it "fires" twice (the SO post has a different context), since it behaves like a promise - and that is because it uses a deferred.
That doesn't change much, though.
So I suppose either you have two materialize-css imports as @niieani stated or it's the dropdown issue I posted above.. Anyway, the case at hand here (DOM event triggered twice) is solved.
Let's continue trying to find a solution here:
https://github.com/aurelia-ui-toolkits/aurelia-materialize-bridge/issues/200
Thanks.. :smile:

It's a deferred, but the passed in method should only fire once if it was set only once.
When you add it to dom-ready.ts like that, you still set it as a side effect of the import evaluation.

I may be wrong...
But why does this log twice, then?
$( document ).ready(function() { console.log('document.ready 1'); });
$( document ).ready(function() { console.log('document.ready 2'); });

@Thanood does it still log anything when you remove this line: https://github.com/Thanood/webpack-domready-issue/blob/master/skeleton-typescript-webpack/src/main.ts#L4 ?

Of course not and it certainly is not a good way of doing this (in a module env), but it simulates how materialize works. There may be other libraries, afaik even Bootstrap attaches event handlers that way.
But that's not the point, really. I just wanted to show (or more verify) that $(document).ready launches whatever you pass it even after the DOMContentLoaded event has fired. That does not mean that DOMContentLoaded is triggered twice but it's still possible for Materialize to initialize itself twice when you import it twice.
Let me make this clear: Listening to DOMContentLoaded yourself behaves correctly now.
I think you are right. Either the library is imported twice or @JoschaMetze is running into that dropdown issue. At least that is the current state of this problem. If I'm wrong and there is another issue with Aurelia/webpack, I'll report back. But for now I suppose it's related to imports or Materialize bugs.

Just for reference, I hit the dropdown issue, as @Thanood assumed correctly. The version from materialize-css@master works. Thanks for your help @niieani.


renew discussion of beta-thalassemia HBB/LCRB, MONDO:0013517

I see from https://github.com/monarch-initiative/mondo/issues/1756 that the decision was to treat MONDO:0013517 equivalent to SCDO:0000251
May I request clarification of the distinction between beta thalassmia and Clinical Phenotype of Beta Thalassemia?
is MONDO:0013517 restricted to a genetic basis in the beta globin cluster and its locus control region?
Are its children limited to a genetic bases in those loci as well?
I don't see any siblings of MONDO:0013517. Are there beta thalassemias that that are not caused by rare alleles in the HBB cluster or its locus control region?
I ask because MedGen had not made a distinction between beta thalasemia and  beta-thalassemia HBB/LCRB, and we are trying to determine if we should really split it out from beta thalassemia.

As I read the data from OMIM 613985; there are two phenotypes on this entry: Thalassemia, beta (associated with the HBB locus, which is the preferred concept) and Thalassemia, Hispanic gamma-delta-beta (associated with the LCRB, one allele is documented in OMIM https://www.omim.org/entry/152424#allelicVariants ).
This second phenotype maps to Gamma delta beta thalassemia, UMLS CUI: C4016247 (SNOMED CT 788944005)
So I am not sure that the HBB/LCRB locus term is a useful distinction, either.
I see MONDO:0011381 dominant beta-thalassemia as a child of the beta-thalassemia concept (but it maps to OMIM 603902, with mutations in HBB, so that should be a child of the HBB/LCRB term if Mondo maintains the distinction). The only other child of the beta thalassemia parent concept is MONDO:0008545, thalassemia, beta+, silent allele, which maps to https://omim.org/entry/187550, suggesting it is also an inherited/genetic form but without a confirmed causative variation in HBB or LCRB.

@JadeHotchkiss
@Khuthalamnika
@scdodev
@gmazandu
could I please ask you all for your expert advice and thoughts about the proposed revisions above? Thank you!

emailed 2022-02-16

@pnrobinson and @ahamosh could you help answer these questions?

Can we get an easier question please?
But I think it would be good for Mondo (and OMIM) to have separate numbers for the various subtypes including at least those that are discussed in the OMIM entry
Absence of beta globin causes beta-zero-thalassemia. Reduced amounts of detectable beta globin causes beta-plus-thalassemia. For clinical purposes, beta-thalassemia is divided into thalassemia major (transfusion dependent), thalassemia intermedia (of intermediate severity), and thalassemia minor (asymptomatic, carrier state).

Alpha thalassemia -- analogous comments.
@ahamosh  thoughts?

Just a gentle reminder that MedGen is still awaiting a decision from Mondo on this so we can appropriately represent this/these concept(s). Thanks!

Hi kanems, I will try to get an answer to this asap

Hi Peter and everyone,
I don't think that we will split the B-thalassemia phenotypes.  There is a major push to lump in ClinGen.  Remarkably the Inborn Error of Metabolism decided to lump all the different phenotypes from each enzyme deficiency in to one entry, even for things like Gaucher disease and early-onset vs. late-onset Pompe disease.  In OMIM, it is a mixed bag depending upon whether the phenotypes or the deficiencies were described first.  If you really want all these split, then you will need to push against the prevailing direction of ClinGen.

The bioinformatics for supporting genomic diagnostics will be more powerful if we "split" than if we "lump". We are not dependent on ClinCen since we can make disease subclasses in MONDO. It would be good to coordinate between all of our various data resources though! Could we discuss this, it is too difficult a topic for email or github issues!

Totally agree.  Would need to meet with the ClinGen PIs.  Can you join a DNAC call?  Melissa usually attends.
Thanks,
Ada
Get Outlook for iOShttps://aka.ms/o0ukef

From: Peter Robinson @.>
Sent: Monday, October 3, 2022 8:41 AM
To: monarch-initiative/mondo @.>
Cc: Ada Hamosh @.>; Mention @.>
Subject: Re: [monarch-initiative/mondo] renew discussion of beta-thalassemia HBB/LCRB, MONDO:0013517 (Issue #4229)
The bioinformatics for supporting genomic diagnostics will be more powerful if we "split" than if we "lump". We are not dependent on ClinCen since we can make disease subclasses in MONDO. It would be good to coordinate between all of our various data resources though! Could we discuss this, it is too difficult a topic for email or github issues!
—
Reply to this email directly, view it on GitHubhttps://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmonarch-initiative%2Fmondo%2Fissues%2F4229%23issuecomment-1265383155&data=05|01|ahamosh%40jhmi.edu|5e28cf6f0fb74d57107f08daa53c9a32|9fa4f438b1e6473b803f86f8aedf0dec|0|0|638003976959100691|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=XXG6kxm%2FrGbgDvPeYRYB9qxT4pQAAUgVzUjSR1Bghdg%3D&reserved=0, or unsubscribehttps://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAKKZWRCJB3R3FLONDL6DJLDWBLH7ZANCNFSM5K44SSHQ&data=05|01|ahamosh%40jhmi.edu|5e28cf6f0fb74d57107f08daa53c9a32|9fa4f438b1e6473b803f86f8aedf0dec|0|0|638003976959100691|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=vcNLLpzDl2fvDdHuaGEyXoPTW65MX5bjmyK7tJPu6rY%3D&reserved=0.
You are receiving this because you were mentioned.Message ID: @.***>

I agree with Peter: other users might want/need the more specific terms.
I think it is ok to "split" in Mondo, as long as we have a "lumped term" in Mondo. ClinGen would use this "lumped term", and other groups could still use the more specific terms.

I would ask Courtney who coordinates this group.  I would devote a call to it.
Thanks,
Ada
Get Outlook for iOShttps://aka.ms/o0ukef

From: sabrinatoro @.>
Sent: Monday, October 3, 2022 11:47:30 AM
To: monarch-initiative/mondo @.>
Cc: Ada Hamosh @.>; Mention @.>
Subject: Re: [monarch-initiative/mondo] renew discussion of beta-thalassemia HBB/LCRB, MONDO:0013517 (Issue #4229)
I agree with Peter: other users might want/need the more specific terms.
I think it is ok to "split" in Mondo, as long as we have a "lumped term" in Mondo. ClinGen would use this "lumped term", and other groups could still use the more specific terms.
—
Reply to this email directly, view it on GitHubhttps://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmonarch-initiative%2Fmondo%2Fissues%2F4229%23issuecomment-1265666914&data=05|01|ahamosh%40jhmi.edu|42e88ff00a1146bb7bcc08daa556955c|9fa4f438b1e6473b803f86f8aedf0dec|0|0|638004088565044840|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=fHOrHNqVOaVEyO5osLDvSP%2FdNGe370in3vmnNv5Vs10%3D&reserved=0, or unsubscribehttps://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAKKZWRAW6LFXXD4WF6PXHDLWBL5ZFANCNFSM5K44SSHQ&data=05|01|ahamosh%40jhmi.edu|42e88ff00a1146bb7bcc08daa556955c|9fa4f438b1e6473b803f86f8aedf0dec|0|0|638004088565201067|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=jExzDANi0l8luMbJZuDCF0PYIv%2F%2FWzzm%2FplA8sto4Qw%3D&reserved=0.
You are receiving this because you were mentioned.Message ID: @.***>

@sabrinatoro I am reassigning this to you. There was a meeting that was scheduled and it was canceled. Could you please help move this forward and schedule a meeting with the necessary folks if needed?
Thank you!


hocho emoji isn't looks like japanese hocho

I know there are a lot of different kinds of hocho.
but most japanese hocho's lower side is not curved.
straight lower side(but isn't completely straighted) and curve upper side is more like real japanese hocho I think.
here is google emoji for good sample:

and another sample photo:

The Emoji name for this is now "Kitchen Knife", in addition to the Unicode name "Hocho".
Google has changed it's design in Android O:

As mentioned above, the CLDR short name for this in English is "kitchen knife", not specifically "hocho".


Added playing or queueing artist/album/genre from music screen

Implemented context menus in music items shown on the music screen.
This allows the user to add everything from an artist, album, or genre by popping up the context menu and selecting either play or Add to playlist.

I will only be able to look and test this in a few weeks, but from a quick glance it looks good. Not sure about the name "MediaManager" for a class that just keeps utilities methods - MediaManager makes you think it does something "important", which it doesn't in this case, but i'll look into it in more detail later.

Looks good. Like i said, i'm not a fan of the name "MediaManager" and i will probably change it to reflect its Utils nature.
Thanks.

How about MediaPlayerUtils?

I've already changed it to MediaUtils, but that makes more sense, so i will change it again to that.


install jq for integration tests

How to categorize this PR?

/area testing
/kind enhancement
/priority 3
Release note:

The preparation scripts for the integration tests will now install `jq`, if not found.

/test

cc @achimweigel


device twin does not track metadata for json keys within an object if the object replaces a string

This might be a bug, but if not, it should be documented carefully because it's a little confusing
to reproduce:

create a device twin with desired property "test": "teststring"
this will create a metadata last updated/version bit for "test"
change "test" to an object without deleting it first: "test": {"test2": "teststring"}
observe that there is no metadata available for the "test2" key
normally the "test2" key would have metadata of its own if this structure was created without first setting "test" to a string

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 8ff6fbb2-5679-a9e7-b9f3-40d638cadae8
Version Independent ID: fa51c99a-0df6-cebf-aecc-b08df5f85454
Content: Understand Azure IoT Hub device twins
Content Source: articles/iot-hub/iot-hub-devguide-device-twins.md
Service: iot-hub
GitHub Login: @fsautomata
Microsoft Alias: elioda

@larsonmpdx Thanks for the feedback! We are currently investigating and will update you shortly.

Thanks again for the feedback! I have assigned the issue to the content author to evaluate and update as appropriate.

Adding @rezasherafat

@larsonmpdx, thanks for bringing this up. We were able to repro this issue and are working on the fix.

One update: we are aiming to have this fix rolled out in December towards the end of the year.

thanks!  No rush, I'm not waiting on a fix, this was just something I noticed while poking around

Sounds good. @larsonmpdx, we would also like to learn about customer's usage of twin metadata. If you have scenarios that depend on metadata, please let me know (you can reach me with email as well). Thanks!

@larsonmpdx, please use rezas AT microsoft email. Thanks

We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


Was the release really tested?

Is this a bug report?
Yes.

Have you read the Contributing Guidelines?
Yes.
Environment

react-native 0.48.0
node 8.4.0
npm 5.4.0
`yarn 0.27.5

Then, specify:

Target Platform:

Development Operating System: Mac OS Sierra 10.12.6

Build tools: iOS

Steps to Reproduce

(Write your steps here:)

react-native init TestProject
cd TestProject
react-native run-ios

Expected Behavior

It should run as the example in the docs.
I would like to ask that did you really test the release (with simple init command) before releasing? Yes I know RN is currently in heavy development but since 0.46 there are many breaking changes and init command is a fundamental feature, it shouldn't be ignored.
Actual Behavior

Same with #15762

(Paste the link to an example project and exact instructions to reproduce the issue.)

I also wondered about this. I remember that react-native test app is pretty decent (including the snapshot thing to check regression) but maybe it's no longer hooked to a continuous integration?

Yeah, we have quite a lot of tests to run - I am running them every time I am releasing new version (including 0.49.0-rc.0).
It's my fault that I've released 0.48.0 by promoting latest RC to stable - I assumed it was already tested after someone cherry-picked commits. I am going to add appropriate mention to the "Releasing.md" file.


Spark-hdfs build doesn't work and takes 3 hours to fail

Example: https://travis-ci.org/quasar-analytics/quasar/builds/283230710
I've disabled the build for now.

Seems like somebody changed the way sparkcore.jar is being build. Will have a look tomorrow

Fixed with https://github.com/quasar-analytics/quasar/pull/2891


[MinGW] Remove unused WinAPI includes/defines from RVO2.

Remove unused and conflicting WinAPI defines to fix MinGW cross-build, and unused RVO.h header (part of RVOSimulator).
Fixes https://github.com/godotengine/godot/pull/34776#issuecomment-584569637.
Fixes #36104.

Could this be sent upstream as well? (Is it still active?)

Are you sure that this doesn't lead to incorrect RVO behaviour on Windows?

If relevant, could this be sent upstream as well if it's still active?

It's last update in 2016.

Are you sure that this doesn't lead to incorrect RVO behaviour on Windows?

I have tested demo project form the #34776 top comment on macOS and Windows and didn't notice any difference.
SDKDDKVer.h - used to define _WIN32_WINNT, that's already defined by Godot build config.
 NOMINMAX - disables deprecated macros, already defined by Godot build config.
windows.h with significant portion of it disabled by WIN32_LEAN_AND_MEAN and NOxxx - not sure why it's there.
__declspec()s - only used if RVO is built as Windows .dll.
_USE_MATH_DEFINES - used to define M_ constants, but non of these are used in the RVO.

Thanks!


"Added codegeassmasterzeronebreakoutr1r2.code  to index.html"

this is position on Desktop

this is position on mobile

@NantipatSoftEn Current URL points to:
https://webring.wonderful.software#https://codegeassmasterzeronebreakoutr1r2.codes/

Can you fix it so that it points to this?:
https://webring.wonderful.software#codegeassmasterzeronebreakoutr1r2.codes

@NantipatSoftEn Current URL points to:
https://webring.wonderful.software#https://codegeassmasterzeronebreakoutr1r2.codes/

Can you fix it so that it points to this?:
https://webring.wonderful.software#codegeassmasterzeronebreakoutr1r2.codes

Done.


Forge Port

Make sure you are not opening a duplicate.

[X] I have searched the issue tracker and did not find an issue describing my bug/feature.

Description of your suggestion.
I know there is no plans for a Forge port but I'd like to use it in my modpack, do you mind if I port it to forge for 1.20.1? I have no plans to update it beyond that. I cannot find another mod that does what this one does. Thanks!

Seems like you already started working on it lul.
The license allows you to do it. Personally I would prefer you create your own mod so each loader has its own exclusives :)


Use equality saturation for optimization

I'm still working on it, but my senior thesis is on a language-generic performance-oriented Haskell implementation of equality saturation. Since I suspect not a huge amount of work has gone into writing optimizations in this compiler, it may be worthwhile to look into equality saturation, since it is a radically different way of structuring an optimizer. Right now I'm busy with finals, but I can expand more on this in about 10 days if you're interested.

Very cool! I'm definitely interested. I'll poke you in 10 days. Good luck with finals.

Looks interesting. Is this useful in functional setting?
The axiom part looks ad-hoc to me in contrast to constructive mathematics/dependent type systems.

It's basically optimization via proof search in the first-order syntactic theory of equality. It's absolutely relevant in the functional setting; in fact, the only reason it works for imperative programs is because the authors invented a way to compile an imperative control flow graph into a referentially transparent AST using token passing with linear types. The only requirements to make it work are:

A referentially transparent (i.e.: semantics of a node depend only on contents of node and semantics of children) graph representation of your code. The graph can have cycles.
A term-rewriting system representing the set of allowable "basic" optimizations (which the engine will then combine to make more complicated optimizations; if this TRS were just the operational semantics of the language then you'd basically have a partial evaluator).
A heuristic for the performance of a given piece of code. Since the code is referentially transparent, this will look like a function of type (node, [R]) -> R (where R is an ordered semiring like Rational or Int or SInt from sbv if you want to handle cycles) which gets turned into a catamorphism over the program expression graph.

Equality saturation (at least the way I'm implementing it) is an anytime algorithm; it will return better and better versions of the code as time goes on but can return a correct answer at any point during execution.
I'm quite sure the authors are aware of constructive mathematics; see their work on generating compiler optimizations from proofs, which is described as an instance of a more general category-theoretic algorithm/theorem.

@csabahruska also related; since congruence closure is a form of saturation-based automated theorem proving, you may be able to use the techniques described in Congruence Closure in Intensional Type Theory when implementing equality saturation for optimizing an core IR that is dependently typed. I think for it to be efficient you might have to figure out some way of efficiently "algebrizing" dependent type theory, though (SK calculus is the classic example, but encoding lambda terms as SK terms causes the size to blow up, so you'd want something like Conal Elliott's lambda-ccc work for any situation where you're optimizing lambda calculus with equality saturation).
One thing that may not be clear from the things I've been saying is that equality saturation is effectively a form of superoptimization, except instead of enumerating programs as sequences of instructions and testing if they are equivalent to the original program, you are enumerating all programs known to be equivalent to the original program under the reflexive-transitive closure of a (hopefully confluent!) term rewriting system. These two approaches actually work well together; you could run a stochastic superoptimizer like STOKE on some fraction of the code you generate, decompile the optimized instructions into your IR, and add a new equality axiom mapping from the input IR to the decompiled IR. The pattern matching algorithm (Rete / term indexing via discrimination trees) used by equality saturation scales quite well with the number of rules; if the pattern of a rewrite rule overlaps with the pattern of another rewrite rule, the computation will be shared between them.
Another interesting point is that equality saturation is a pretty good fit for a JITed language, since you could run the engine in parallel with a hot piece of code, occasionally swapping it out when your performance heuristic increases enough to make it worthwhile.

@csabahruska I'm not an expert on interaction networks, but from what I have read I suspect they are a good example of a referentially transparent IR that could be used in equality saturation. One correction to what I said earlier is that since you can have loops in the program expression graph, "algebrizing" the IR you want to optimize is a sufficient but not necessary condition for using equality saturation. It is however true that you can't quite have anything like variable binding; so you're limited to things like string diagrams and algebraic expressions.
I'm familiar with abstract interpretation, but I must confess that I'm not sure how you can get proofs of program equality from it; AFAIK the whole point of abstract interpretation over symbolic execution is that widening makes the analysis total at the cost of loss of precision. Since the proof of program equality would have to throw away any results of abstract interpretation in which widening was used, it seems to me that symbolic execution is more relevant. If you had meant symbolic execution, then I'd like to point out that STOKE works by symbolically executing a sequence of instruction to produce a first-order formula, and then recursively enumerates instruction sequences until it finds the shortest sequence that has a first-order formula (under symbolic execution) equivalent to the original instruction sequence's formula (and this is checked with Z3).

I've started to read Ross Tate's phd thesis. It seems that the E-PEG intermediate representation is the key thing to use equality saturation based optimization.
It seems that equality saturation based optimization approach requires E-PEG to be used as the compiler's IR. But LHC's IR is based on GRIN. Would not this change require a complete rewrite?

No, you can just convert GRIN to a PEG, then convert back. Equality saturation can be a compiler pass (though ideally it should be the only compiler pass, otherwise it's kind of defeating the purpose).

I thought that E-PEG + the heuristic replaces the whole optimisation framework.
If PEG is a compiler pass which does all the optimizations what would the other passes do?

I'm actually more interested in using equality saturation with Core rather than GRIN. Although it is applicable to both languages, Core should be way easier to convert to a PEG and the potential benefits seem greater.

@csabahruska

If PEG is a compiler pass which does all the optimizations what would the other passes do?

(though ideally it should be the only compiler pass, otherwise it's kind of defeating the purpose)

@Lemmih
Core definitely seems more applicable to eqsat; agreed.

How far along is your Haskell implementation? Are there examples I can play around with?

It still needs quite a bit of work, but the hard part (for me at least) is over; I now completely understand the algorithm and what needs to be implemented.

Hi @taktoa. Hope finals went well. Can you tell me more about your eqsat library? What are your plans and time horizon for the project?

I'd say that I plan to hack on eqsat at least over the next 2 months while I'm travelling in Europe, and probably after that as well. My intention is to implement most of the features described in the thesis.


Fix readme.md

broken image moment

Huh, funny, wasn't broken for me, though, I noticed it was broken in the IntelliJ MD preview.

Ohhh wait nevermind it's because I fixed the filepath name and forgot to update it in the README. Thank you!


Question about udp packets to loxone server

Hi,
First of all thank you for posting this script.    I've got it working today and I see all events being listed on my linux machine.
The script is sending the UDP packets to Loxone however in Loxone I'm not receiving all the information of the event.
For example :   on my linux machine I see this event output
received event update LightLevel(id='61954f6b-e89f-4741-85ce-f0c30aee2788', owner=ResourceIdentifier(rid='cb58b3b2-cfcd-4e14-ab17-a8cff89325d3', rtype=<ResourceTypes.DEVICE: 'device'>), enabled=True, light=LightLevelFeature(light_level_report=LightLevelReport(changed=datetime.datetime(2023, 10, 29, 14, 31, 8, 296000, tzinfo=datetime.timezone.utc), light_level=4825), light_level=4825, light_level_valid=True), id_v1='/sensors/40', type=<ResourceTypes.LIGHT_LEVEL: 'light_level'>)
EVENT: {event}
However in Loxone I'm only getting ;
15;15:32:37.043;Loxone Miniserver;Received;<IP_ADDRESS>;Philips Hue;5000;hue_event{sensor_id}/{sensor_state};68 75 65 5f 65 76 65 6e 74 7b 73 65 6e 73 6f 72 5f 69 64 7d 2f 7b 73 65 6e 73 6f 72 5f 73 74 61 74 65 7d;;
But the objects field remains empty ...
Do you have any idea what could be the problem ?

Hello @Mac5000
Happy to hear, that someone out there in the internet has found some use in my script. 😇
I did some tests on my end and I was able to figure out the issue.
When using pylint I formatted the strings wrong and did not test it again (I forgot the f in front of the formatted strings).
age = 30
message = "You are {age} years old"
print(message)

would have returned "You are {age} years old"
instead of...
age = 30
message = f"You are {age} years old"
print(message)

"You are 30 years old"
Sorry for any inconveniences caused by my little fault. I hope the fix in the latest commit #97d64e2 works for you.

Hi, thank you so much for the quick fix.   Now I'm receiving the correct messages.

Hi, Just to let you know I have also changed the udp message to this :
if sensor_id != "":
event = f"hue_event{sensor_id}/{item.type.name}/{sensor_state}"
As without the item.type.name you receive a udp message with just the sensor ID and a value but you have no idea what event type it is.    Now it is also sending the event type so I can filter and create actions for specific event type ID's


Librarify

This PR makes it possible to use parts of the Lingo code base in WebAssembly.
This PR is very experimental. It is also quite small, so the stakes are low here, and there isn't a big rush to get this merged.
The changes here are sufficient to a) compile this to WASM without errors, and b) make it easy to get the JSON build properties for a given LF file from JS/TS.
More changes would be required in order to make all of the functionality of Lingo work without panics; this is because apparently the norm in the Rust ecosystem is to panic at runtime when encountering an operation that doesn't support WASM instead of using Cargo features, which would result in compile-time errors.

we probably should setup a github action which checks if lingo still can be compiled into wsm


[X] The name of the port matches an existing name for this component on https://repology.org/ if possible, and/or is strongly associated with that component on search engines.
[X] Optional dependencies are resolved in exactly one way. For example, if the component is built with CMake, all find_package calls are REQUIRED, are satisfied by vcpkg.json's declared dependencies, or disabled with CMAKE_DISABLE_FIND_PACKAGE_Xxx.
[X] The versioning scheme in vcpkg.json matches what upstream says.
[X] The license declaration in vcpkg.json matches what upstream says.
[X] The installed as the "copyright" file matches what upstream says.
[X] The source code of the component installed comes from an authoritative source.
[X] The generated "usage text" is accurate. See adding-usage for context.
[X] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
[X] Only one version is in the new port's versions file.
[X] Only one version is added to each modified port's versions file.

I got the following error when testing the usage of neoslippi.
Severity	Code	Description	Project	File	Line	Suppression State	Details
Error		CMake Error at F:/neoslippi/scripts/buildsystems/vcpkg.cmake:859 (_find_package):
  Could not find a package configuration file provided by "NeoSlippi" with
  any of the following names:

    NeoSlippiConfig.cmake
    neoslippi-config.cmake

  Add the installation prefix of "NeoSlippi" to CMAKE_PREFIX_PATH or set
  "NeoSlippi_DIR" to a directory containing one of the above files.  If
  "NeoSlippi" provides a separate development package or SDK, be sure it has
  been installed.		F:/neoslippi/scripts/buildsystems/vcpkg.cmake	859

@jimwang118 Hmm, are you sure? I just tested it locally with a Visual Studio solution and it had no trouble picking it up. I also compared the port files to my previous project, cppslippi, and they are basically the same (except for name, SHA, etc. of course). Could you try building cppslippi and see if that one works for you? Could you also provide any other information, like error logs, that might help me investigate the problem?

@jimwang118 Hmm, are you sure? I just tested it locally with a Visual Studio solution and it had no trouble building it. I also compared the port files to my previous project, cppslippi, and they are basically the same (except for name, SHA, etc. of course). Could you try building cppslippi and see if that one works for you? Could you also provide any other information, like error logs, that might help me investigate the problem?

I created a cmake project and called the post-installation prompt usage in cmakelists.txt, and then the error mentioned above occurred. I checked that the config file was not generated in the installed/x-windows/share/neoslippi directory.

Usage test pass with following triplets:
x86-windows
x64-windows
x64-windows-static

Ping on this PR. I think all the issues are fixed now?

We look for multiple downstream projects consuming each library before accepting it into the core catalog. Can you help us by linking multiple downstream projects authored by other individuals/projects?
Otherwise, this seems like a great candidate for self-publishing (port overlays or a custom registry).

There are no downstream users because I am trying to publish the package. And I highly doubt there will be any downstream users (other than myself, but I did not write this for my own consumption) if it is not published. VCPKG is how I intend to make it available to downstream users.
I cannot find anything on the VCPKG documentation pages saying that projects should already have downstream users, and I did not receive any comments like this when I published my previous package, cppslippi (#30315).

If you confirm the repair is complete, click "ready for review".

Hi @Kered13, unfortunately we can't accept the port at this time. Any port accepted in the catalog is rebuilt when any of its dependencies update and a few times a week in CI for all time and we see this as a high ongoing maintenance cost. So, we are more selective in what we add to the catalog (the requirements I listed above). This is a new policy from the team, applying only to new ports. While we can't add it to the main catalog, you can make the library available through an overlay port or a custom registry.
Closing this PR.

Hi @Kered13
We apologize for closing this PR prematurely.
As we mentioned in our previous comment, we are considering new acceptance criteria for ports in the vcpkg registry.
Given that this is a new library with no pre-existing user base and it’s not part of a well stablished suite of libraries, we believe that it is a good candidate for self-hosting in a custom registry. Users will still be able to install your library with vcpkg using either the registries or overlay ports features; and you get full control of when you update the port and the changes it includes.
Would you be interested in setting up a custom registry for your library? We can aid setting up your registry and providing instructions for your users to install your vcpkg port.
We are also interested in receiving feedback regarding the suggested alternative if you decide to give it a try.
I'm reopening this PR to serve as a way of communication with you regarding the suggested alternative of self-hosting this port. Feel free to use this thread to request assistance with said task.

@Kered13 Thanks for your PR, Is work still being done for this PR?

/azp run


Port message actions popover to tippy

Waiting for #18869 to be merged before working further on this.

@amanagr can you rebase?

Removed the clipboard successful commit which was already done by andersk in a different PR.

I'm not thrilled with removing the node test, but it does look to have been a low-quality test that didn't verify anything.
I guess the user_info_popover_content.hbs test seems to verify something, so it seems possible to do a proper test for popover logic.

@amanagr thanks for working on this! I'm not yet sure whether the code simplifications attempted here are all things that we're going to end up proceeding with since we haven't fully investigated them.
But even if they are, I think for future popover porting, we should aim to do the simplest possible translation in a first commit, so that we can remove bootstrap, and then we can do the code cleanup projects (changing the sort order of options, reusing variables, deduplicating stopPropagation) as follow-up projects.  As you can see from the above, there's a lot of subtle things that could break when doing the refactoring work, and it'd be nice to not need to reason about them.

I think https://github.com/zulip/zulip/pull/18896#discussion_r692994861 suggests that the first commit is already in master, so I think you can drop it (my guess is the commit remaining here just adds a duplicate check).

Okay.

Closing this, since a lot of code here has changed, and I will have to do the port again.


Issue with gym==0.21.0

Was getting this:
Collecting gym==0.21 (from stable-baselines3==1.7.0->pantheonrl==0.0.1)
  Using cached gym-0.21.0.tar.gz (1.5 MB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [1 lines of output]
      error in gym setup command: 'extras_require' must be a dictionary whose values are strings or lists of strings containing valid project/version requirement specifiers.
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

So I downgraded my setuptolls and wheel which fixed the issue (see stackoverflow):
pip install setuptools==65.5.0 "wheel<0.40.0"

Thanks for letting us know! We've updated the README to reflect this.


[ENHANCEMENT] A better reserved memory value for VMs

Is your enhancement related to a problem? Please describe.

We reserve 100MB of memory since https://github.com/harvester/harvester/pull/1543, but we still see some VMs OOM.
Describe the solution you'd like

We can do some benchmarks and fine-tune a good default value.
We should have a document or KB on adjusting the values based on VM workload.

Describe alternatives you've considered

Additional context

A customer is hitting the issue with the default value.

It's a 64GB VM.
The VM is running RKE2 guest cluster.
The VM has many hot-plugging volumes. This should be taken into consideration, more volumes might increase memory usage.

@w13915984028 Please help check this issue. cc @innobead

From the investigation till now, there are still some doubts to be digged.
The main question is:
The Cgroup memory limit for a VM is set to: [(1) guest OS usable memory][(2)all kinds of reservation]
When OOM happens, it's the (1) + (2)  > limit, and normally, (1) >>>>> (2), it will mean (1) will use a big amount of memory to trigger the OOM.

In case it helps with the investigation, someone on the Rancher Users slack ran into the OOM issue back in March when doing high IO on a database in a VM, and provided a support bundle there. The discussion is at https://rancher-users.slack.com/archives/C01GKHKAG0K/p1710208792865519 but note that we're probably getting pretty close to the 90 day message limit on Slack in that conversation.

@w13915984028 Do you have any update on this issue?

The current summary is on https://github.com/w13915984028/harvester-develop-summary/blob/main/oom-related-issue-investigation.md, we will optimize the VM to have options for user:
(1) Set a higher reserved memroy by default, update documents about why to do so and how
(2) Remove the memory limit of a VM, keep the wanted memroy of guest VM. e.g. A VM can have upto 16GB memory, but the cgroup of this VM's backing POD, has no memory uplimit. This is useful for mission-critical VM which should never be OOM killed.
User will decide to use which kind of otpion for each VM.

@torchiaf Please also help remove the Show More from UI to expose the Reserved Memory option, it is very important to adjust this value accordingly. thanks.

[WIP]Set higher default reserved memory for VM #6177

How about simply move reserved memory inputBox out of Read More block ?
User can easily see the reserved memory number. See PR https://github.com/harvester/dashboard/pull/1117

@a110605 Moving Reserved Memory out of the Read More is also OK.

@a110605 @torchiaf
To solve this issue, PR https://github.com/harvester/harvester/pull/6438 is added, which defines a new setting:
additional-guest-memory-overhead-ratio
This setting itself is a string, can be empty or a valid float64 value string like "0.0" or "1.5" or "3.9", range:[0, 1..10]; all the checks are done at backend validator, it will deny the input like "-5", "not a number", "100".
This new setting also needs the help from UI to expose it on Harvester setting. Do you want a new issue for UI or stick to this issue? thanks.

Setting additional-guest-memory-overhead-ratio seems not included in v1.4.0-dev-20240918.
Perhaps due to UI PR just merged last week.
Will test in v1.4.0-rc1.

Reference

Reserved Memory: https://66d61b2b7a08694d93628b0f--harvester-preview.netlify.app/v1.4/vm/index/#reserved-memory
additional-guest-memory-overhead-ratio: https://66d61b2b7a08694d93628b0f--harvester-preview.netlify.app/v1.4/advanced/index/#additional-guest-memory-overhead-ratio

Hi @w13915984028,
Can user consider VM memory overhead configs as following?

Reserved Memory: Per VM configuration.
additional-guest-memory-overhead-ratio: Global configuration, affects all VMs.

If so, when existing VMs' POD memory limit changes after user update additional-guest-memory-overhead-ratio? Does it need to restart or something?
cc. @torchiaf and @bk201

@albinsun

Edit VM spce from GUI, VM is  rebooted by GUI

Edit vm spec from kubectl, VM is not rebooted automatically, but there is a hint about generation

Edit the settings additional-guest-memory-overhead-ratio from GUI or kubectl;  all running VMs are not affected, unless the VMs are rebooted. The resource limitation is computed and set on the namesapce & pod objects, they are the running instances of VM, for existing objects, they are not affected.  As this is a global setting, avoid rebooting all VMs directly are also more safe. (I will also update the document to emphasis this point)

default ratio 1.5:   vm 1 cpu 2 Gi, and the related pod resoruce limits
      resources:
        limits:
          cpu: "1"
          devices.kubevirt.io/kvm: "1"
          devices.kubevirt.io/tun: "1"
          devices.kubevirt.io/vhost-net: "1"
          memory: "2404034561"  // computed from default ratio 1.5

change ratio to 2, re-start the vm, and the related pod resoruce limits
      resources:
        limits:
          cpu: "1"
          devices.kubevirt.io/kvm: "1"
          devices.kubevirt.io/tun: "1"
          devices.kubevirt.io/vhost-net: "1"
          memory: "2660585561"  // computed from new ratio 2.0

@albinsun @w13915984028  I'd like to add a message when editing the additional-guest-memory-overhead-ratio saying that VMs need to be restarted for the new settings to take effect.
WDYT ?

Test FAIL, $m_{pod}$ is not expected except when r = 1.5.

[!NOTE]
In this test, expected VM memory $m_{vm}$ and pod memory $m_{pod}$ are calculated from the relation

$m_{guest} = m_{request} - m_{reserved}$
$m_{pod} = m_{request} + r_{overhead} * m_{system}$

A VM that is configured to have 1 CPU, 2 Gi Memory, 1 Volume and 1 NIC will get ~240 Mi memory overhead when the ratio is 1.0.
Ref. https://66d61b2b7a08694d93628b0f--harvester-preview.netlify.app/v1.4/advanced/index/#additional-guest-memory-overhead-ratio

Environment

Harvester

Version: v1.4.0-rc1
Profile: 3 nodes QEMU/KVM (include a witness node)
ui-source: Auto

Prerequisite

 Create image opensuse-leap-15.6.x86_64-nocloud.qcow2

 Create VM network mgmt-vlan1

 Create a VM (1 core and 2 GB) w/o Reserved Memory

Scenario
Configuration value
:green_circle: Positive

 Default value is 1.5

 Set to 2

 Set to 1.0

 Set by Use the default value

 Set to 0, value is 0 (disabled)

 Set to empty, value is 1.5 (default value)

:green_circle: Negtive

 Set to 100, should fail.

 Set to 0.1, should fail.

 Set to -1, should fail.

 Set to string, should fail.

VM Memory
:green_circle: $r_{overhead} = 1.5$ (default)

 $m_{pod}$ should be ~2408M and $m_{guest}$ should be 2048M when $m_{res}$ is 0M

 $m_{pod}$ should be ~2408M and $m_{guest}$ should be 1792M when $m_{res}$ is 256M

:red_circle: $r_{overhead} = 1$

 $m_{pod}$ should be ~2288 M and $m_{guest}$ should be 2048 M when $m_{res}$ is 0 M

:x: $m_{pod}$ is not expected ~2288M (r=1) but still ~2408M (r=1.5)

 $m_{pod}$ should be ~2288 M and $m_{guest}$ should be 1792 M when $m_{res}$ is 256 M

:x: $m_{pod}$ is not expected ~2288M (r=1) but still ~2408M (r=1.5)

:white_circle: $r_{overhead} = 5$

 $m_{pod}$ should be ~3248 M and $m_{guest}$ should be 2048 M when $m_{res}$ is 0 M

 $m_{pod}$ should be ~3248 M and $m_{guest}$ should be 1792 M when $m_{res}$ is 256 M

:white_circle: $r_{overhead} = 10$

 $m_{pod}$ should be ~4448 M and $m_{guest}$ should be 2048 M when $m_{res}$ is 0 M

 $m_{pod}$ should be ~4448 M and $m_{guest}$ should be 1792 M when $m_{res}$ is 256 M

:white_circle: $r_{overhead} = 0$ (disable)

 $m_{pod}$ should be ~2048 M and $m_{guest}$ should be 1948 M when $m_{res}$ is 0 M

A default $100 M$ overhead will be set implicitly when both $m_{res}$ and $r$ are 0

 $m_{pod}$ should be ~2048 M and $m_{guest}$ should be 1792 M when $m_{res}$ is 256 M

:white_circle: $r_{overhead} = ""$ (should be the same as default 1.5)

 $m_{pod}$ should be ~2408M and $m_{guest}$ should be 2048M when $m_{res}$ is 0M

 $m_{pod}$ should be ~2408M and $m_{guest}$ should be 1792M when $m_{res}$ is 256M

Supportbundle
supportbundle_329dee6a-7fb7-4f88-8502-c41e1922ede7_2024-10-08T03-43-01Z.zip

Hi @w13915984028 ,
The linear relation of new overhead ratio setting looks fine.
But we have a failure case just after fresh installation, the value shows 1.5 but the actual value act on VM pod is 1.0, you can refer detail in the following scenario Default Value (Just After Fresh Installation).
Please help to check, thanks.

[!NOTE]
In this test, expected VM memory $m_{guest}$ and pod memory $m_{pod}$ are calculated from the relation

$m_{guest} = m_{req} - m_{res}$
$m_{pod} = m_{req} + r_{overhead} \times m_{sys}$

Ref. https://66d61b2b7a08694d93628b0f--harvester-preview.netlify.app/v1.4/advanced/index/#additional-guest-memory-overhead-ratio

Environment

Harvester

Version: v1.4.0-rc1
Profile: 3 nodes QEMU/KVM (include a witness node)
ui-source: Auto

Prerequisite

Create image ubuntu-22.04-jammy-server-cloudimg-amd64.img

Create VM network mgmt-vlan1

 Create a basic VM and check $m_{sys}$ (~245 M)

Scenario
Config Explicitly
$r_{overhead} = 1$

 :green_circle: $m_{pod}$ should be ~2293 M (2048+245x1) and $m_{guest}$ should be 2048 M when $m_{res}$ is 0 M (2048-0)

 :green_circle: $m_{pod}$ should be ~2293 M (2048+245x1) and $m_{guest}$ should be 1792 M when $m_{res}$ is 256 M (2048-256)

$r_{overhead} = 1.50$

 :green_circle: $m_{pod}$ should be ~2416 M (2048+245x1.5) and $m_{guest}$ should be 2048 M when $m_{res}$ is 0 M (2048-0)

 :green_circle: $m_{pod}$ should be ~2416 M (2048+245x1.5) and $m_{guest}$ should be 1920 M when $m_{res}$ is 128 M (2048-128)

$r_{overhead} = 3$

 :green_circle: $m_{pod}$ should be ~2783 M (2048+245x3) and $m_{guest}$ should be 2048 M when $m_{res}$ is 0 M (2048-0)

 :green_circle: $m_{pod}$ should be ~2783 M (2048+245x3) and $m_{guest}$ should be 2038 M when $m_{res}$ is 10 M (2048-10)

$r_{overhead} = 0$

Basically same as $r_{o} = 1$ except when $m_{res}$ is 0 a default 100M memory overhead will be assign.

 :green_circle: $m_{pod}$ should be ~2293 M (2048+245x1) and $m_{guest}$ should be 1948 M (2048-100) when $m_{res}$ is 0 M (2048-0)

 :green_circle: $m_{pod}$ should be ~2293 M (2048+245x1) and $m_{guest}$ should be 1792 M when $m_{res}$ is 256 M (2048-256)

Restart VM to Fetch Latest Value

 :green_circle: Reboot all VMs and every pods should have $m_{pod}$ with ~2783 M

vm-1-0

vm-1-256

vm-1p5-0

vm-1p5-128

vm-3-0

vm-3-10

Default Value (should identical with 1.5)
By Use the default value

 :green_circle: Configure `additional-guest-memory-overhead-ratio` by **Use the default value**

 :green_circle: $m_{pod}$ should be ~2416 M (2048+245x1.5) and $m_{guest}$ should be 2048 M when $m_{res}$ is 0 M (2048-0)

 :green_circle: $m_{pod}$ should be ~2416 M (2048+245x1.5) and $m_{guest}$ should be 1920 M when $m_{res}$ is 128 M (2048-128)

By config as ""

 :yellow_circle: Configure by Use the default value

Configure with empty value

Setting Status False

 :green_circle: $m_{pod}$ should be ~2416 M (2048+245x1.5) and $m_{guest}$ should be 1920 M when $m_{res}$ is 128 M (2048-128)

Default Value (Just After Fresh Installation)

 :yellow_circle: Initial value (just after fresh installation)

 :red_circle: $m_{pod}$ should be ~2416 M (2048+245x1.5) and $m_{guest}$ should be 1920 M when $m_{res}$ is 128 M (2048-128)

:x: Got $m_{pod}$ ~2416 M ($r_o = 1$) instead of ~2416 M ($r_o = 1.5$)

Supportbundle

supportbundle_5768-running_2024-10-08T15-09-52Z.zip
Fresh install cluster
supportbundle_5768-fresh_2024-10-08T15-46-38Z.zip

Update:
The configuration is not processed by the setting controller on a freshly installed cluster by default.
The open points listed on https://github.com/harvester/harvester/issues/5768#issuecomment-2400233915 will be verified after PR #6745 is merged.

Remaining points can be futher verified on v140-rc3 version, thanks.
The PR #6758 is on https://github.com/harvester/harvester/releases/tag/v1.4.0-rc3 release lists.

Test PASS, close as done.
Environment

harvester-v1.4.0-rc3

Profile: 3 nodes QEMU/KVM (include a witness node)
ui-source: Auto

Prerequisite

Create image ubuntu-22.04-jammy-server-cloudimg-amd64.img
Create VM network mgmt-vlan1

Scenario
Default Value (Just After Fresh Installation)

 :green_circle: Initial value (just after fresh installation)

 :green_circle: $m_{pod}$ should be ~2416 M (2048+245x1.5) and $m_{guest}$ should be 1920 M when $m_{res}$ is 128 M (2048-128)

Configure $r_{overhead} = 2$

 :green_circle: $m_{pod}$ should be ~2538 M (2048+245x2) and $m_{guest}$ should be 2048 M when $m_{res}$ is 0 M (2048-0)

 :green_circle: $m_{pod}$ should be ~2538 M (2048+245x2) and $m_{guest}$ should be 1920 M when $m_{res}$ is 128 M (2048-128)

Use the default value (should identical with 1.5)

 :green_circle: Configure by Use the default value

 :green_circle: $m_{pod}$ should be ~2416 M (2048+245x1.5) and $m_{guest}$ should be 2048 M when $m_{res}$ is 0 M (2048-0)

 :green_circle: $m_{pod}$ should be ~2416 M (2048+245x1.5) and $m_{guest}$ should be 1920 M when $m_{res}$ is 128 M (2048-128)


Pre-condition Violation - Failed Expression: dir == Bond::ENDUPRIGHT || dir == Bond::ENDDOWNRIGHT

Describe the bug
Trying to open a specific molfile (with sanitize=True) raises:
****
Pre-condition Violation
bad dir
Violation occurred on line 382 in file /project/build/temp.linux-x86_64-cpython-310/rdkit/Code/GraphMol/Chirality.cpp
Failed Expression: dir == Bond::ENDUPRIGHT || dir == Bond::ENDDOWNRIGHT
****

To Reproduce
I simplified the failing molecule. This python code should trigger the error:
from rdkit import Chem
mol_file = """
  SomeFailingMolFile

  8  8  0  0  1  0            999 V2000
   -0.7145    1.2375    0.0000 C   0  0  2  0  0  0  0  0  0  0  0  0
    0.0000    0.8250    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0
    0.0000    0.0000    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
   -0.7145   -0.4125    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
   -0.7145   -1.2375    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
    0.0000   -1.6500    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
    0.7145   -1.2375    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
    0.7145   -0.4125    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
  1  2  1  6  0  0  0
  2  3  2  0  0  0  0
  3  4  1  4  0  0  0
  3  8  1  0  0  0  0
  4  5  2  0  0  0  0
  5  6  1  0  0  0  0
  6  7  1  0  0  0  0
  7  8  2  0  0  0  0
M  END
"""

Chem.MolFromMolBlock(mol_file, sanitize=False)  # This works

Chem.MolFromMolBlock(mol_file, sanitize=True) # This doesn't

Expected behavior
Expecting a specific error if the molfile is invalid (which is possible), but not an un-catchable error.
Configuration (please complete the following information):

RDKit version: Master and 2022.3.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
OS: Ubuntu 20.04 and 22.04
Python version (if relevant): Not relevant, seen the bug both in c++ and Python 3.10
Are you using conda? No
If you are not using conda: how did you install the RDKit? Pip, but same error with c++ code using rdkit from master

The error in c++ code is the same:
terminate called after throwing an instance of 'Invar::Invariant'
  what():  bad dir

I can reproduce this.
The mol block is not particularly sensible, but I agree that it shouldn't be throwing an exception here.

Appreciate the quick fix! Thanks.


Tests won't compile anymore

I've read Brief overview section and do understand basic concepts. [Yes]
I've read F.A.Q. section and there is no solution to my problem there. [Yes]
I've read Code of Conduct, I promise to be polite and will do my best at being constructive. [Yes]
I've read Reporting bugs section carefully. [Yes]
I've checked that all the hunter_add_package/find_package API used by me in example is the same as in documentation. [nA]
I'm using latest Hunter URL/SHA1. [Yes]

Since the latest restructure of hunter_config and hunter_default_version some tests don't compile anymore. Affected tests

issue/22
issue/24/unit
simple
For the three mentioned the following error is output

[hunter ** FATAL ERROR **] Unexpected 'hunter_config' usage from:
[hunter ** FATAL ERROR **]  tests/simple/CMakeLists.txt:32
[hunter ** FATAL ERROR **] [Directory:tests/simple]

issue/109/unit

[hunter ** INTERNAL **] Unexpected empty string
[hunter ** INTERNAL **] [Directory:tests/issue/109/unit]

Why are the regression tests not run anymore? Do they take too much time?

issue/22
issue/24/unit
simple

I've added it to my local TODO list after changing the format of Config-ID.

Why are the regression tests not run anymore? Do they take too much time?

In most cases those tests are quite useless.

fixed the tests:

https://github.com/ruslo/hunter/pull/1563
https://github.com/ruslo/hunter/pull/1564
https://github.com/ruslo/hunter/pull/1565

fixed the tests

Merged, thanks!

you're welcome :)
shall we re-enable the tests or let them rot, as they "are quite useless"?

shall we re-enable the tests or let them rot, as they "are quite useless"?

I don't see the problem about keeping them, rotting is not a requirement :) I just don't see the point of running them for every pull request. Most of the pull requests are about documentation (that's what is currently tested by CI) or package updates/new packages (tested by ingenue/ci/pkg.N).


Bump less.php to version 3.1.0 for better PHP 8.0 support

1. Why is this change necessary?
To improve PHP8 support.
2. What does this change do, exactly?
Bump version of less.php library.
3. Describe each step to reproduce the issue or behaviour.
Try to compile the theme on PHP8.0.
Error: Deprecated:  Required parameter $rules follows optional parameter $value in /vagrant/www/vendor/wikimedia/less.php/lib/Less/Tree/Directive.php on line 20
4. Please link to the relevant issues (if any).

5. Which documentation changes (if any) need to be made because of this PR?

6. Checklist

[ ] I have written tests and verified that they fail without my change
[x] I have squashed any insignificant commits
[x] This change has comments for package types, values, functions, and non-obvious lines of code
[x] I have read the contribution requirements and fulfil them.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Hello,
thank you for creating this pull request.
I have opened an issue on our Issue Tracker for you. See the issue link: https://issues.shopware.com/issues/SW-26243
Please use this issue to track the state of your pull request.

thanks for your contribution @xrogers   👍🎉💙
your change will be part of the upcoming 5.7.3 release


Added regex matching for wood cutting & Add WoodcuttingPluginTest (2 tests)

Closes #10212
I was trying to get regex to work but my small brain couldn't seem to get
message to regex for matches on "^You get (some|an)" && matches on logs?.$

It would be good to additionally have a test for the various messages.

It would be good to additionally have a test for the various messages.

Added 2 tests.

Yes or no to keep the duration of session test? Could it ever fail if some how the CPU is just really really faster in comparing the instant a few lines apart? I've ran the test ~150 times local computer and it never failed but I don't think it's a particularly good test to include.
I was simply going a tiny bit overboard.

If you want to test the session timeout, then simply add sleep to the test

If you want to test the session timeout, then simply add sleep to the test

Adam mentioned to not use Thread.sleep(), but maybe 5 wouldn't hurt. Originally it was 60001 to test for when the session time out was set to 1, but now it's set to 0.
I'll add 5ms.

Why not? I used it for testing configured timeouts for IdleNotifierPlugin, Thread.sleep is perfectly fine in tests.

I think it's more of I originally showed that Thread.sleep(60001) would work, 60 seconds for a test is a bit steep. Is it not?


Manage HH page causes duplicate contacts on error

Steps to replicate:

Press the Manage HH button from the Account page.
Create a new Contact from the Contact search component.
Type the name of the new Contact into the Primary Contact field in the field set form.
Save the page. Note error at the top of the page.
Save the page again. Note error no longer at the top of the page but have not navigated away.
Save the page again. Note navigated back to Account page with 3 of the new contacts created above.

Salesforce has determined that this issue will not be explored further.


Typing: Type Command, Pipeline as Generic on the return type

Invoking a command or pipeline can return a str or Result depending on the result mode. If Command is generic on the return type, with the default being str, this will make using shellous easier in typed programs.
# Return type for a Command can be either `str` or `Result`.
RT = TypeVar("RT")

@dataclass(frozen=True)
class Command(Generic[RT]):
    ...


Running but not logging or reporting

On Arch after installing via the AUR package, running psi-notify gives the following:
~/ > psi-notify
INFO: Using system-global resource pressures.
INFO: Config:

      Log pressures: true
      Update interval: 5s

      Thresholds:
        - CPU avg10 some: 50.00
        - Memory avg10 some: 10.00
        - I/O avg10 full: 15.00

INFO: Pressure monitoring started.
WARN: PSI dir (logind seat) seems to have gone away, reopening

And nothing is ever logged, no notifications are sent. The systemd service does the same (as expected).

What's unexpected here? If you want continual logging of pressures, you need log_pressures yes in your config.

Something weird is going on here, though:
INFO: Using system-global resource pressures.
[...]
WARN: PSI dir (logind seat) seems to have gone away, reopening

Why does it think it's using the system-global resource pressures at first, but then the logind seat? Hmm...

Oh, I see what you're saying, you have Log pressures: true but nothing gets printed.
That's interesting and probably indicates we entered some pathological state in psi-notify. It is particularly weird that it immediately complains that the PSI dir went away, that means that the /proc/pressure dir disappeared.
Let me try to get a reproducer.


Update upickle to 3.0.0-M2

This is a binary incompatible change!

@lefou from the error in the last run, it seems that the new uPickle is pulling in a version of Geny that is incompatible with the version of Geny that os-lib is using.
Not sure why it would only fail on Scala3, but maybe we can try bumping the os-lib version?

Seems like bumping os-lib from 0.8.0 to 0.9.0 should be enough to ensure that everyone is using geny 1.0.0

Seems like bumping os-lib from 0.8.0 to 0.9.0 should be enough to ensure that everyone is using geny 1.0.0

Makes totally sense. Thanks for reviewing.


Unable to install just Promethous exporter with RabbitMQ-HA

Is this a request for help?:
Is this a BUG REPORT or FEATURE REQUEST? (choose one):
YES
Version of Helm and Kubernetes:
Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.3", GitCommit:"d2835416544f298c919e2ead3be3d0864b52323b", GitTreeState:"clean", BuildDate:"2018-02-09T21:51:54Z", GoVersion:"go1.9.4", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.6", GitCommit:"9f8ebd171479bec0ada837d7ee641dec2f8c6dd1", GitTreeState:"clean", BuildDate:"2018-03-21T15:13:31Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

Client: &version.Version{SemVer:"v2.8.1", GitCommit:"6af75a8fd72e2aa18a2b278cfe5c7a1c5feca7f2", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.9.1", GitCommit:"20adb27c7c5868466912eebdf6664e7390ebe710", GitTreeState:"clean"}

Which chart:
rabbitmq-ha
What happened:
When trying to update it failed and then doing fresh install failed as below
First i was trying to install rabbit-mq with prometheus enable and operator disabled  , it was complaining about monitoring namespace even though i changed that to another namespace in values.yaml
(⎈ |production:rabbitmq)➜  rabbitmq git:(master) ✗ helm install -f values.yaml stable/rabbitmq-ha --name rabbitmq --namespace rabbitmq
Error: release rabbitmq failed: namespaces "monitoring" not found

Then I tried to disable both exporter and operator and i got the below
(⎈ |production:rabbitmq)➜  rabbitmq git:(master) ✗ helm install -f values.yaml stable/rabbitmq-ha --name rabbitmq --namespace rabbitmq
Error: apiVersion "monitoring.coreos.com/v1" in rabbitmq-ha/templates/servicemonitor.yaml is not available

What you expected to happen:
Normal Installation with prometheus enabled
How to reproduce it (as minimally and precisely as possible):
Use the below values.yaml
## RabbitMQ application credentials
## Ref: http://rabbitmq.com/access-control.html
##
rabbitmqUsername: guest
rabbitmqPassword: lE2hcc1QHz

## RabbitMQ default VirtualHost
## Ref: https://www.rabbitmq.com/vhosts.html
##
rabbitmqVhost: "/"

## Erlang cookie to determine whether different nodes are allowed to communicate with each other
## Ref: https://www.rabbitmq.com/clustering.html
##
rabbitmqErlangCookie: DwPXaRRJkJFPP1Jrd8kREPP3KzxJnaf4

## RabbitMQ Memory high watermark
## Ref: http://www.rabbitmq.com/memory.html
##
rabbitmqMemoryHighWatermark: 512MB

## Set to true to precompile parts of RabbitMQ with HiPE, a just-in-time
## compiler for Erlang. This will increase server throughput at the cost of
## increased startup time. You might see 20-50% better performance at the cost
## of a few minutes delay at startup.
rabbitmqHipeCompile: true

## Number of replicas
replicaCount: 2

image:
  repository: docker-registry.xxxxxxx.com:5000/rabbitmq
  tag: 3.7-management-delayed
  pullPolicy: IfNotPresent

ingress:
  ## Set to true to enable ingress record generation
  enabled: true

  path: /

  ## The list of hostnames to be covered with this ingress record.
  ## Most likely this will be just one host, but in the event more hosts are needed, this is an array
  hostName: rabbitmqha.xxxxxxxxx.com

  ## Set this to true in order to enable TLS on the ingress record
  tls: true

  ## If TLS is set to true, you must declare what secret will store the key/certificate for TLS
  tlsSecret: rabbitmq-rabbitmq-ha-tls

  ## Ingress annotations done as key:value pairs
  annotations:
    certmanager.k8s.io/acme-challenge-type: http01
    certmanager.k8s.io/cluster-issuer: letsencrypt-production
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/whitelist-source-range: <IP_ADDRESS>/28

prometheus:
  ## Configures Prometheus Exporter to expose and scrape stats.
  exporter:
    enabled: true
    env: {}
    image:
      repository: kbudde/rabbitmq-exporter
      tag: v0.28.0
      pullPolicy: IfNotPresent

    ## Port Prometheus scrapes for metrics
    port: 9419

    ## Allow overriding of container resources
    resources: {}
     # limits:
     #   cpu: 200m
     #   memory: 1Gi
     # requests:
     #   cpu: 100m
     #   memory: 100Mi

  ## Prometheus is using Operator.  Setting to true will create Operator specific resources like ServiceMonitors and Alerts
  operator:
    ## Are you using Prometheus Operator? [Blog Post](https://coreos.com/blog/the-prometheus-operator.html)
    enabled: false

    ## Configures Alerts, which will be setup via Prometheus Operator / ConfigMaps.
    alerts:
      ## Prometheus exporter must be enabled as well
      enabled: true

      ## Selector must be configured to match Prometheus Install, defaulting to whats done by Prometheus Operator
      ## See [CoreOS Prometheus Chart](https://github.com/coreos/prometheus-operator/tree/master/helm)
      selector:
        role: alert-rules
      labels: {}

    serviceMonitor:
      ## Interval at which Prometheus scrapes RabbitMQ Exporter
      interval: 10s

      # Namespace Prometheus is installed in
      namespace: prometheus

      ## Defaults to whats used if you follow CoreOS [Prometheus Install Instructions](https://github.com/coreos/prometheus-operator/tree/master/helm#tldr)
      ## [Prometheus Selector Label](https://github.com/coreos/prometheus-operator/blob/master/helm/prometheus/templates/prometheus.yaml#L65)
      ## [Kube Prometheus Selector Label](https://github.com/coreos/prometheus-operator/blob/master/helm/kube-prometheus/values.yaml#L298)
      selector:
        prometheus: kube-prometheus

helm install -f values.yaml stable/rabbitmq-ha --name rabbitmq --namespace rabbitmq

Anything else we need to know:

Ok I found that templates/alerts.yaml contain monitoring as fixed in namespace

This is still valid, workaround is to create a namespace called monitoring, and this will install


Wrong signature of arguments for rule with function wrapper?

A version of this occurred when I tried to benchmark Mooncake with DifferentiationInterfaceTest.
using DifferentiationInterface
import Mooncake

backend = AutoMooncake(; config=nothing)

struct Caller{F}
    f::F
end

(c::Caller)(args...) = c.f(args...)

Caller(sum)([1.0])
gradient(sum, backend, [1.0])  # works
gradient(Caller(sum), backend, [1.0])  # fails

The stacktrace reads
julia> gradient(Caller(sum), backend, [1.0])  # fails
ERROR: ArgumentError: signature of arguments, Tuple{Mooncake.CoDual{Caller{typeof(sum)}, Mooncake.NoFData}, Mooncake.CoDual{Vector{Float64}, Vector{Float64}}}, not equal to signature required by rule, Tuple{Mooncake.CoDual{Caller{typeof(sum)}, Mooncake.NoFData}, Mooncake.CoDual{Tuple{Vector{Float64}}, Tuple{Vector{Float64}}}}.
Stacktrace:
 [1] __verify_sig(::Mooncake.DerivedRule{…}, ::Tuple{…})
   @ Mooncake ~/.julia/packages/Mooncake/tUYT3/src/interface.jl:26
 [2] __value_and_pullback!!(::Mooncake.DerivedRule{…}, ::Float64, ::Mooncake.CoDual{…}, ::Mooncake.CoDual{…})
   @ Mooncake ~/.julia/packages/Mooncake/tUYT3/src/interface.jl:13
 [3] value_and_pullback!!(::Mooncake.DerivedRule{…}, ::Float64, ::Caller{…}, ::Vector{…})
   @ Mooncake ~/.julia/packages/Mooncake/tUYT3/src/interface.jl:116
 [4] value_and_pullback(::Caller{…}, ::DifferentiationInterfaceMooncakeExt.MooncakeOneArgPullbackPrep{…}, ::AutoMooncake{…}, ::Vector{…}, ::Tuple{…})
    Use `show(err)` to see complete types.

Ah, this is annoying. I need to add some tests for value_and_pullback!! with varargs functions.
Does a version of this also happen with the two-arg interface, or do we not have this probelm there?

@gdalle could you confirm that this problem is resolved if you use version 0.4.5, and close this issue if so?

Thanks, this is now fixed for both out-of-place and in-place functions


Skip Produce Executable Job if not needed

If we aren't building standalone exe's skip the job all together.
Looks like this wasn't covered in the original change at https://github.com/Azure/azure-sdk-tools/pull/5174#discussion_r1137972871

/azp run tools - pipeline-generator - ci

pipeline-generator test build https://dev.azure.com/azure-sdk/public/_build/results?buildId=2778397&view=results
test-proxy test build https://dev.azure.com/azure-sdk/public/_build/results?buildId=2778398&view=results


Manage the incorrect map of object(using realm)

Hi, sorry if this question is already asked.
How I can manage the error when I try to map the Json with my model in Realm and for some reason a value doesn't match the type of my model, I know it save it anyway but is there a way to manage if its not correctly map.
Your JSON dictionary:
{
  "name": "Juan",
  "amount": "1200"
}

Your model:
struct Person: Object, Mappable {
  var name: String! = ""
  var amount: Int! = 0

   //Impl. of Mappable protocol
    required convenience init?(map: Map) {
        self.init()
    }

   func mapping(map: Map) {
    name <- map["name"]
    amount <- map["amount"]
  }
}

What you did:
Alamofire.request(request)
                .responseObject(completionHandler: { (response:
                    DataResponse<Person>) in ......

It will save amount = 0, just cause its not Int.

Unfortunately there is not validation errors on individual mappings. I think the best you can do is check you variables at the end of the mapping function

Unfortunately there is not validation errors on individual mappings. I think the best you can do is check you variables at the end of the mapping function


csfm.so: undefined symbol: cs_di_chol

when I run:
bin/run_all data/berlin
I get the following output:

Any ideas?
Thanks.

This seems to be ceres missing libcxsparse which it should not need. Did you install the libsuitesparse-dev ubuntu package before building ceres?

The libsuitesparse-dev ubuntu package has been installed before building ceres.
I have installed step by step following on the https://github.com/mapillary/OpenSfM/blob/master/Dockerfile.
However, there is the suitesparse version 4.2.1 installed on my machine before installing libsuitesparse-dev. Is there any conflict?
Thanks,

i could not reproduce the problem. @smilecolon please reopen if this is still an issue for you.

exactly same as @smilecolon

i could not reproduce the problem. @smilecolon please reopen if this is still an issue for you.

I've got the same problem of "undefined symbol: cs_di_chol"


Change Defined to Qed for proofs

I believe that the fact that these proofs were originally transparent was an entirely accidental side effect of using Definition. Since nothing depends on their being transparent and nothing breaks in neither repo, I think it's ok to make them opaque.

That argument sounds reasonable to me, but currently the diff is poor and includes many Definition to Lemma changes. I think you need to rebase this branch on top of the rebased version of change-definition-to-lemma.

@wkolowski please rebase this, and I will review it afterwards. You may want to merge #243 first.


WIP: upstream-dev CI

This adds a upstream-dev CI.

[x] closes #18

the CI seems to work, so this should be ready for review and merge. I'd especially take a look at the upstream-dev dependencies: should we add more, like the main indirect dependencies of xarray (pandas, mostly).

Do we want to have this CI job be optional or not (i.e., should an upstream but unreleased break hold up PRs here until it is fixed)? Though, that may require it to be a separate check (which I'm not sure on what the status of separate checks is from https://github.com/xarray-contrib/pint-xarray/pull/16).

we currently don't have branch protection on, so I'd say if the fix wouldn't take too long it's fine to merge with a failing upstream-dev CI. If it's not clear how to fix that (even upstream) we should just add conditional xfails.

@keewis Sounds good. Hopefully the separate checks can get figured out at some point. I think then this should be good to merge.


Builtin vs custom exceptions

Description of issue or feature request:
Before releasing TUF 1.0.0 we should review our code and make sure that:

We are using built-in exceptions (ValueError, TypeError, KeyError, etc.) consistently and idiomatically.
We are using custom exceptions when it makes sense and not in places that could be replaced by a built-in exception.

Initiated from comment https://github.com/theupdateframework/python-tuf/pull/1725#pullrequestreview-856729491

IMO @jku's taxonomy from https://github.com/theupdateframework/python-tuf/issues/1312#issuecomment-842242333 makes a lot of sense

One thing to check here is whether any of the builtins (above all ValueError) raised in metadata classes __init__ methods propagates to a place, e.g. from_(dict, bytes, file, data), where we'd actually  expect a RepositoryError?

I just did a thorough review of all exceptions we raise in api and ngclient and it all looks good modulo some minor issues, mostly missing documentation.
metadata.py

built-ins raised in  __init__ and from_dict methods and verify_delegate are not documented.
KeyError and SerializationError raised in verify_signature are not documented.
from_securesystemslib_key may raise a securesystemslib.FormatError if the passed key dict is invalid. This is not documented and not ideal. Maybe we should catch all and re-raise as ValueError? It's about invalid inputs after all.

requests_fetcher.py
The FetcherInterface claims that it raises SlowRetrievalError and FetcherHTTPError, which seem rather specific to the concrete RequestsFetcher implementation, especially the latter.
OTOH, the DownloadError raised for an invalid url argument, which is mandated by the interface, is not documented.
Should we maybe create a custom generic FetcherInterface exception that all exceptions raised in implementations of the interface must inherit (or just re-use DownloadError) and only mention that in the docstring?
Also, and this is slightly contradictory the what I just said, but wouldn't ValueError also make sense for the invalid url argument?
cc @jku, @MVrachev

Big thanks for doing this.
Metadata:

on undocumented builtin errors (ValueError in particular but KeyError as well) -- I don't object to documenting them but on the other hand we could just say in module docstring that "invalid input to any functions in API can result in ValueError/KeyError": I think this is fairly standard in python libraries (or rather not documenting this at all is normal).
SerializationError in verify_signature does seem undocumented
from_securesystemslib_key suggestion seems good

I'll have a closer look at Fetcher situation early next week.

tuf/api/metadata.py:

I prefer if we document ValueError and KeyError as we are already documenting everywhere where we know they can be thrown. If we want, we can add the module docstring, but I don't feel that it replaces the need for exceptions documentation.
For verify_signature: there are two options:

leave it the way it is or more precisely the SerializationErrors are reraised as UnsignedMetadataError with the message Failed to verify..., but it could be unclear why it failed.
move signed_serializer.serialize outside the try block and document SerializationError the same way we did here. I think I prefer this as it shows the problem could not be in the signature, but when serializing the metadata.

for from_securesystemslib_key: I agree it's good to catch securesystemslib.exceptions.FormatError and reraise it as ValueError

Fetcher Interface:
I think I agree with you that a general FetcherError which all others will inherit sounds logical and we document SlowRetrievalError and FetcherHTTPError inside the request fetcher implementation. Also, I do agree FetcherHTTPError sounds a little too specific for an interface.
For invalid URL I think it's better to just use ValueError as it seems the pythonic way to raise that exception on bad arguments

I have a suggestion for the downloading/fetcher error handling in #1810, please have a look. I did include one rename to make things more consistent... SlowRetrievalError is still left as is (since it's just not very important) but I won't complain if others want it renamed to e.g. DownloadTimeoutError

We went through this with Martin and came back with this list:

verify_signature() should handle SerializationError and throw UnsignedMetadata (this is what callers are interested in)
verify_delegate() should document ValueError and TypeError
from_securesystemslib_key should raise ValueError if securesystemslib.FormatError is caught

All init() and from_dict() should document ValueError (and Keyerror if needed) -- the reason this was not done is that this sort of makes it look like programmer should handle these errors... but as long as we are clear in the docstring that these are invalid argument errors, this should be fine

We will file issues for these so there is something actionable. After these issues are filed I believe this meta-issue can be closed

We went through this with Martin and came back with this list:

verify_signature() should handle SerializationError and throw UnsignedMetadata (this is what callers are interested in)
verify_delegate() should document ValueError and TypeError
from_securesystemslib_key should raise ValueError if securesystemslib.FormatError is caught
All init() and from_dict() should document ValueError (and Keyerror if needed) -- the reason this was not done is that this sort of makes it look like programmer should handle these errors... but as long as we are clear in the docstring that these are invalid argument errors, this should be fine

We will file issues for these so there is something actionable. After these issues are filed I believe this meta-issue can be closed

There are issues for all of those:

#1816
#1817
#1818
#1819

We can close this issue as it's a little vague.


Fix balances not being created due to wrong casing.

Seems like the build is failing, not sure if its these changes or something wrong with the build?

Seems like the build is failing, not sure if its these changes or something wrong with the build?

just merged master to fix the failing test

just merged master to fix the failing test


(fix): (ansible): temporarily ignore CVEs

Description of the change:

Ignores more recent CVEs that have presented when attempting to build the ansible base images. This is meant to be temporary until we can properly resolve them by bumping the ansible version used in the base images. This will allow us to continue building base images for new releases in the meantime.

Motivation for the change:

Fix base image build failures so that we can continue building new base images for new releases of the Operator-SDK

Checklist
If the pull request includes user-facing changes, extra documentation is required:

[ ] Add a new changelog fragment in changelog/fragments (see changelog/fragments/00-template.yaml)
[ ] Add or update relevant sections of the docs website in website/content/en/docs

/cc @oceanc80 @grokspawn @rashmigottipati

/lgtm


Submit assignment-2

What changes are you trying to make? (e.g. Adding or removing code, refactoring existing code, adding reports)
I aimed to develop a word-level text generation model using RNNs and Keras, which involved several key steps. Firstly, I prepared the dataset for training by cleaning the text, tokenizing words, and generating sequences that the model could learn from. I then defined the architecture of the RNN model, compiled it, and trained it using the prepared data. Additionally, I intended to plot the training history to visualize the model's learning progress, including both training and validation loss. Another significant change was diagnosing and resolving the kernel crash issue on both Colab GPU and the local GPU when running TensorFlow and PyTorch.
What did you learn from the changes you have made?
From these changes, I learned how to effectively prepare a text dataset for training, including important steps such as tokenization and sequence generation. I also gained experience in designing, compiling, and training an RNN model for text generation tasks. Moreover, I learned techniques for diagnosing and resolving GPU-related issues in machine learning frameworks, particularly the importance of ensuring compatibility between GPU drivers and machine learning frameworks like TensorFlow and PyTorch.
Was there another approach you were thinking about making? If so, what approach(es) were you thinking of?
Yes, I considered a few alternative approaches. One was to reinstall or update the GPU drivers to ensure they were compatible with the latest versions of TensorFlow and PyTorch. Another approach was to try using a different machine learning framework or a different version of the current frameworks to see if the issue persisted. Additionally, I thought about running the code on a different machine with a more recent GPU to determine if the hardware was contributing to the problem.
Were there any challenges? If so, what issue(s) did you face? How did you overcome it?
The primary challenge was dealing with kernel crashes when using the GPU on both Colab and the local machine. These crashes were accompanied by error messages indicating conflicts with CUDA-related libraries, such as cuDNN, cuFFT, and cuBLAS. To overcome this issue, I disabled the GPU for both TensorFlow and PyTorch, which allowed the code to run without crashing, albeit on the CPU. This step ensured that I could continue developing and testing the model without further interruptions from the kernel crashes.
How were these changes tested?
The changes were tested by running the modified code in a Jupyter Notebook environment and verifying that disabling the GPU allowed the code to execute without crashes. I checked the output of TensorFlow and PyTorch to confirm they were running on the CPU and ensured that the training process was completed successfully. Even though I could continue because the CPU only ran if the GPU crashed during model compilation.
A reference to a related issue in your repository (if applicable)
The current setup does not adequately account for the available resources needed to complete the tasks effectively. Specifically, the kernel crashes when using the GPU for TensorFlow and PyTorch on both Colab and local environments. The repository's configuration leads to compatibility problems and conflicts with CUDA-related libraries, causing these kernel crashes. Moreover, the setup is not suitable for running on a local GPU or a free Colab GPU due to these conflicts and resource limitations.
Checklist

[x] I can confirm that my changes are working as intended

Reviewed and marked as completed


Example on how to mock Fuel when running unittests?

I have been trying for 2 days now to mock/stub Fuel, with no real luck.
I'm building a small piece of software which needs to perform a REST GET request to acquire some data. I'm using Fuel to request the data, which works fine, but I also want to be able to unittest my code.
I can see from the documentation that Fuel has a "test-mode", which makes it run in blocking mode, but I can't seem to figure out a way to stub out Fuel, such that it doesn't actually call the web-endpoint.
How do you stop Fuel from performing real web requests, during tests?
I have been trying to use mockito to mock out the fuel responses, but it gets very cumbersome very quickly, and due to all sorts of things being internal, sealed and static I'm having no luck.
Disclaimer: I'm new to Kotlin, so I might just have missed something blatantly obvious.

I also tried to create my own client and setting it on the FuelManager like this:
val client = object: Client {
    override fun executeRequest(request: Request): Response {
        val resp = Response()
        resp.apply {
            dataStream = podJson.byteInputStream()
        }
        return resp
    }
}

FuelManager.instance.client = client

But when I try to set the dataStream I'm told by the compiler: Cannot Access 'dataStream': it is internal in 'Response'

Hmm, it seems that the ability to replace the client, broke with #172.
I have downgraded to version 1.7.0, where the following code works fine:
val client = object: Client {
    override fun executeRequest(request: Request): Response {
        return Response().apply {
            data = podJson.toByteArray()
            httpStatusCode = 200
            httpResponseMessage = "OK"
        }
    }
}

FuelManager.instance.client = client

Yes. @FrederikNS I designed Client to be pluggable and the way you have done for mocking the response was correct. However, I agree with you that it becomes annoying after data has been set to internal.
I will open a PR to patch that in the next version. Or if you want to open a PR for that, I am more than happy to merge yours too!
Thanks for using Fuel and also reporting back the problem you may find. It meant a lot for me to improve this library further.

@FrederikNS I think this should be fixed with the new version. I will close this issue for now. If you don't think it satisfies you, feel free to reopen it again :)

I always wrap the network library I use so I can replace the library later or test it easily.

@FrederikNS check this snippet on how to rewrite it to mockk mocking library.
May be it's pretty similar to your code and do not add a lot of value here, but may be in more sophisticated cases it can be useful.
`
val client = mockk()
    val someJson = "{\"key\":\"value\"}"

    every { client.executeRequest(any()).statusCode } returns 200
    every { client.executeRequest(any()).responseMessage } returns "OK"
    every { client.executeRequest(any()).data } returns someJson.toByteArray()

    FuelManager.instance.client = client

`

@oleksiyp Genius! Thanks!

With nhaarman.mockitokotlin2
  val someJson = "{\"key\":\"value\"}"
    val client = mock<Client> {
        onGeneric { executeRequest(any()) } doReturn Response(
            statusCode = 200,
            responseMessage = "ok",
            dataStream = ByteArrayInputStream(someJson.toByteArray()),
            url = URL("https://www.mydomain.test")
        )
    }

    FuelManager.instance.client = client

@FrederikNS check this snippet on how to rewrite it to mockk mocking library.
May be it's pretty similar to your code and do not add a lot of value here, but I believe in more sophisticated cases it can be useful.
        val client = mockk<Client>()

        val someJson = "{\"key\":\"value\"}"

        every { client.executeRequest(any()).statusCode } returns 200
        every { client.executeRequest(any()).responseMessage } returns "OK"
        every { client.executeRequest(any()).data } returns someJson.toByteArray()

        FuelManager.instance.client = client

wow i was just thinking am i gonna use mockk library on this or not , now i know i am

@oleksiyp wow i was just thinking am i gonna use mockk library on this or not , now i know i am


NodeJS:

Additional context

https://github.com/dotansimha/graphql-code-generator/pull/5015

Fixed in<EMAIL_ADDRESS>


reboot hosts handler occurs without changes

Details
The hosts should only need to be reboot for significant changes that require them to be restarted.
Currently, without any changes they'll still trigger into a host reboot which isn't intended.

After doing several trials what seems to be the offending notify that triggers the host reboot handler is the following task:
- name: install log2ram
  command: /bin/sh ./install.sh
  args:
    chdir: '/opt/log2ram'
  register: log2ram
  changed_when: '"Reboot to activate log2ram" in log2ram.stdout'
  notify: reboot hosts

Tested consecutive installs for log2ram to determine if it was idempotent, however, each install will still require a restart or at least prompt the user that a restart is required.
pi@k8s-master-01:/opt/log2ram$ sudo /bin/sh ./install.sh
#####         Reboot to activate log2ram         #####
##### edit /etc/log2ram.conf to configure options ####
pi@k8s-master-01:/opt/log2ram$ sudo /bin/sh ./install.sh
#####         Reboot to activate log2ram         #####
##### edit /etc/log2ram.conf to configure options ####

This might potentially be solved if we installed with the recommended official method rather than running the shell script as described here: https://github.com/azlux/log2ram#with-apt-recommended


Missing base class for all GTFS exceptions

The GTFS exceptions in namespace GTFS.Exceptions all derive from the System.Exception class.
In order to log all issues that occur while reading a GTFS feed, one now needs to either catch the base class System.Exception or catch all exceptions from namespace GTFS.Exceptions explicitly.
Catching System.Exception is considered bad practice. The second approach is also not ideal because if a new GTFS exception is added, it will pass through.
IMHO, it is best to add an abstract base class (e.g. class GTFSExceptionBase) for all GTFS exceptions in namespace GTFS.Exceptions.
Ugly workaround for now:
        try
        {
            gtfsData.GtfsFeed = reader.Read(gtfsDirectorySource);
        }
        catch (Exception ex)
        {
            var type = ex.GetType();
            if (!type.FullName.StartsWith("GTFS.Exceptions"))
            {
                throw;
            }

            // TODO: add logging here
        }

Ugly workaround for now:
        try
        {
            gtfsData.GtfsFeed = reader.Read(gtfsDirectorySource);
        }
        catch (Exception ex)
        {
            var type = ex.GetType();
            if (!type.FullName.StartsWith("GTFS.Exceptions"))
            {
                throw;
            }

            // TODO: add logging here
        }

Two things:

The feed validation process needs to be reworked.
Exceptions should only occur when reading the feed is impossible.

I agree that it would be better to have a base class. Feel free to submit a pull request, otherwise I'll try and do this next time I work on this.

Added class GTFSExceptionBase, derived all exceptions currently  in namespace GTFS.Exceptions from it and added unit test to ensure all exceptions derive from this base.


Unable to merge DEX

Hi, this is what I'm getting.
Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
i have updated all versions, but still not resolved my problem. please guide me to solve this. Thanks in advance

Seems like you have crossed your dex limit. Follow this link to enable Multidex in your app: https://stackoverflow.com/questions/26609734/how-to-enable-multidexing-with-the-new-android-multidex-support-library

I am getting the same problem. Multidex enable didn't help.


Ensure all unsupported options are removed from JavaCompilationDetails [phab:D1480]

Created by schroederc at 2017-04-03 19:10:23:

zarko accepted this revision at 2017-04-03 19:14:07

schroederc closed via commit 395dd97356a5072e9c2a0cda9fc68eb1c4cd3579 at 2017-04-03 19:14:31