Filter deploy based on Tag/TagName and pre-release status

Hi,
For our project (hosted on github) we tag releases and each release has a unique version tag.
For instance:

We commit multiple fixes/changes
We then update & commit an updated module manifest version# (ex: v2.6)
We create a pre-release that's tagged (ex: v2.6) and we publish a pre-release (we don't want this published by appveyor)
Once we confirm the release we remove the 'draft' flag and "publish" the final tagged release on GitHub

What I'm trying to do is:

Only deploy Tagged Releases on GitHub (no matter what the tag and possibly based on a portion of the tag name)
Skip deployment when they're flagged as a pre-release
Only deploy when there is a tag AND when it's not a pre-release.

Is there a way to get the release properties (like release / pre-release) and the Tag name from GitHub?  I tried seeing if there's a way to access these properties in deploy.psdeploy.ps1?
Thanks in advance for any pointers!

Hello!
Interesting question - you could likely gate calling PSDeploy (or a particular deployment or deployment tag) based on APPVEYOR_REPO_TAG and APPVEYOR_REPO_TAG_NAME
Now that you mention it, I'll likely try to abstract those into BuildHelpers (e.g. BHTagName which would grab CI_COMMIT_TAG from GitLab CI, APPVEYOR_REPO_TAG_NAME from AppVeyor) - thanks for the idea : )
Might have just gone over my head, but how are you flagging something as a pre-release? via a particular version number? something in the tag name?
Cheers!

Thanks for the super quick response!
When you create a release on github there's a checkbox (pictured below)

Interesting, your appveyor variable names helped me find some content - looks like provider settings contains most of the info:
https://www.appveyor.com/docs/deployment/github/#provider-settings

Looking into this a bit more now, is the idea that we'd commit to Master, commit something with !Deploy and then appveyor would be responsible for tagging and releasing as part of the deployment to powershell gallery?
Currently, we commit and commit until we're ready for a release, then we tag and draft a release to github, once we get some feedback or can test, we eventually decide to finalize the release, at that point we push out to powershell gallery (the gallery is always our final destination once we're sure we want the large audience to easily pull down the update).

The workflow is totally up to you, but the GitHub release part isn't covered by PSDeploy (yet) - as you notice though, AppVeyor can do that if it makes sense for you.
I work with modules that are pretty simple (from a module and release perspective) - here's my typical workflow:

All commits end up generating a package on AppVeyor's NuGet feed via psdeploy (e.g.)
Commits with !Deploy end up deploying to the gallery (e.g. via psdeploy)

That's about it!  I don't use tags or GitHub releases for any projects, so never got around to writing a psdeploy script for this... although now that you mention it, might be nice to have that : )
Cheers!

Thanks!  I did notice there are appveyor project settings to build tags only, I suppose I could just filter on the branch and build tags only though something to filter would be cool too.  Thanks again for the quick responses!

Closing this out!  If you have any ideas on things to add, feel free to open it back up - cheers!


HARVESTER: enhancement upgrade checkbox

Summary
PR Checklist
~- Is this a multi-tenancy feature/bug?
- [ ] Yes, the relevant RBAC changes are at:~
~- Do we need to backport changes to the old Rancher UI, such as RKE1?
- [ ] Yes, the relevant PR is at:~
~- Are backend engineers aware of UI changes?
- [ ] Yes, the backend owner is:~
Fixes #

https://github.com/harvester/harvester/issues/3551

Occurred changes and/or fixed issues

Technical notes summary

Areas or cases that should be tested

Areas which could experience regressions

Screenshot/Video

@mergify backport release-harvester-v1.2


Vulnerability roundup 107: libressl-3.4.0: 1 advisory [5.5]

search, files

[ ] CVE-2021-41581 CVSSv3=5.5 (nixos-unstable)

CVE details
CVE-2021-41581
x509_constraints_parse_mailbox in lib/libcrypto/x509/x509_constraints.c in LibreSSL through 3.4.0 has a stack-based buffer over-read. When the input exceeds DOMAIN_PART_MAX_LEN, the buffer lacks '\0' termination.

Scanned versions: nixos-unstable: 34ad3ffe08a.
Cc @fpletz
Cc @thoughtpolice

Update in #142232


Bump version to test build process

Coverage remained the same at 100.0% when pulling 1a8e7e337615aa579ad1f66a62327d7b8770cfc9 on jammycakes:master into e6ced6edc59d2268a3314ddefa8dbb9bd27c2a8e on ukparliament:master.


Hard to tell if it's working as intended.

I almost filed a bug entitled Doesn't work (in Brave). Add support?
I thought it wasn't working.  It was, just not on all DOIs.
So the lack of an error message and of a message as suggested in the P.S. at the end is the issue.
Original Issue description:  (title: Doesn't work (in Brave). Add support? )
Is there anything we need to configure before it'll work?  I try it and it opens up a save file dialog box, and (for example) creates a 10.1056 subdirectory, but no file is actually downloaded. It opens up https://libstc.cc/#/nexus_science/id.dois:10.1056/NEJMp2402379, but again, no file is actually downloaded. I have opted in to autodownload.
Version 0.2.3 in Brave on MacOS on ARM.
P.S.:  It would be helpful if to have a DOI that is known to work in the README.  Not sure what DOI would serve well.

This extension opens up STC web if autodownload fails because sometimes STC web provides a fallback method of getting the PDF. The problem with providing a known DOI that works is that sometimes the Nexus developers do maintenance and everything breaks. In your case, the article is simply too new so it hasn't been uploaded to Nexus yet.


fix(ci): properly skip release-body workflow in non-drivers tags.

What type of PR is this?
/kind bug
Any specific area of the project related to this PR?
/area CI
What this PR does / why we need it:
Per https://github.com/actions/runner/issues/662, exit 0 won't skip subsequent jobs. Instead, we will need to forcefully skip the workflow.
https://stackoverflow.com/a/75809743/6065692
Which issue(s) this PR fixes:
release-body was creating releases when kernel-tests workflow was triggered against any branch since it failed to exit.
Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

NONE

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: FedeDP
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [FedeDP]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/milestone 0.13.0

It is :) but i actually wanted to abort the workflow without failures.
Now it should skip the workflow and mark it as skipped.

 Fixed up! PTAL :pray:

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: FedeDP, LucaGuerra
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [FedeDP,LucaGuerra]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Bug 2187242: Increase Utilization pie charts popovers font size

📝 Description
Fixes:
https://bugzilla.redhat.com/show_bug.cgi?id=2187242
Increase pie charts popovers font size in the VM Overview Utilization card to be the same as in the line charts displayed below those pie charts, for better readability, as the original popovers font size was too small.
🎥 Screenshots
Before:
CPU chart popover font size too small to be easily readable (same for Memory and Storage charts):

After:
CPU chart popover font size bigger (same for Memory and Storage charts):

@avivtur @metalice @pcbailey @upalatucci @vojtechszocs please review


Update azure aks helm examples

This brings the new Azure aks/helm examples in as you requested @mikhailshilkov
TypeScript example was already in
TODOS:

[x] I have run mktutorial in a hacky way, is there official way to run it? I also manually edited what mktutorial wanted to add, which an be a minor nuisance for the next invocation (it wanted to add more examples from the repo); should I just bring those in as well?

[x] IF we want to remove examples without helm chart, like "Azure Kubernetes Service (AKS) Cluster using the native Azure Provider" what is the best way to remove them? I think if I use remove them from here then mktutorial will bring them back in. Perhaps I can PR to examples repo and rename those examples using a naming scheme such that mktutorial won't pick them up?

[x] Do we want "Featured Tutorials" links to direct to -aks-helm* examples instead of plain aks examples or leave as is?

Thank you!

It wanted to add more examples from the repo, should I just bring those in as well?

Yes.

IF we want to remove examples without helm chart

We don't want to remove anything.

Do we want "Featured Tutorials" links to direct to -aks-helm* examples instead of plain aks examples or leave as is?

Yes, we want to change to aks-helm.
Thank you!

Thanks - then this does the trick I think.

Thank you!
The large "Azure Kubernetes Service" link still leads to the old example. Also, could you update the same link on http://pulumi-hugo-origin-pr-63-b1188801.s3-website.us-west-2.amazonaws.com/docs/tutorials/ ?

Got two more links redirected!
Now one more interesting place remains:
> If you are looking to use Kubernetes on Azure, see [the AKS tutorial]({{< relref "../kubernetes/aks" >}}).

That one seems actually https://www.pulumi.com/docs/tutorials/kubernetes/aks/ quite detailed, but AFAIK it uses the classic Azure provider. Should we replace that with azure-py-aks-helm as well?

@mikhailshilkov --^ thanks

OK merging for now. If we want to redirect the "AKS tutorial" I can do so separately.


Checking for clearing chat history

Resolves #149. Also did some quick Tailwind cleanup by moving individual self-center to group items-center.

LGTM, Thanks!


Home screen: UI issue

wallet/Vault tiles are cutting from the bottom.Tested in iphone 7

Verified this issue on keeper app v 1.1.12(299)


haskell-cryptonite does not work on older CPUs

The Haskell package cryptonite uses the AES-NI CPU extension [1] by default. This means that the binary won't work properly on older CPUs that don't support that extension. We actually have that problem with some of Hydra's build slaves. Currently, we see occasional test suite failures [2] when the build is scheduled to a build slave that lacks support for AES-NI, because the test suite runs a "broken" binary on that machine.
How should we remedy that issue? There are two obvious choices:

Disable AES-NI support by default to make sure our binaries works on all CPUs, even older ones. This comes at the expense of performance.
Keep AES-NI enabled. This means we'll have full performance, but the binary will crash on older CPUs, probably without a good explanation of what is going on.

Which one is preferable? Are there other options?
[1] https://en.wikipedia.org/wiki/AES_instruction_set
[2] https://github.com/haskell-crypto/cryptonite/issues/314

I personally like stuff to be as optimal as it can be by default. In this case, despite obvious complications, I think we should stick to building faster binary that works on most machines. That way all users unaware of this issue will get the fast version which will most likely work for them. For users with older CPUs, they will need to opt-out from optimization and probably rebuild a lot of packages but at least it would be explicit action one takes so such users will be aware of the trade-off.
If we decide to go with disabling AES-NI I will personally define overlay. Not because I necessary believe this would have a great impact on performance but because I don't want to have this as a variable when ever I'm debugging performance related issues.
As for the hydra specifically, I think this is unfortunate but there likely be similar issues with packages outside of Haskell set as well. Maybe we can bring more maintainers together and find some general approach that works for all such issues?

I personally like stuff to be as optimal as it can be by default. In this case, despite obvious complications, I think we should stick to building faster binary that works on most machines

Can we conditionally disable AES-NI with CPP?
I think @ocheron here implies we can "remove global cc-options like -mssse3" if the CPU doesn't support them, presumably with CPP?

Can we conditionally disable AES-NI with CPP?

I don't think this will necessarily help with Nixpkgs.
If a hydra builder builds it with AES-NI, and then that package gets into the shared nix cache, users without recent CPUs will get hard-to-debug errors when trying to use it.

Here are a couple other packages I found by grepping that deal with AES-NI:

https://github.com/NixOS/nixpkgs/blob/4f69262c190845ca36de255e857d8b54e2faf4b4/pkgs/tools/misc/cpuminer-multi/default.nix#L2
This defaults to compiling with aes-ni support.

https://github.com/NixOS/nixpkgs/blob/4f69262c190845ca36de255e857d8b54e2faf4b4/pkgs/tools/networking/i2pd/default.nix#L4
This defaults to compiling without aes-ni support.

https://github.com/NixOS/nixpkgs/blob/4f69262c190845ca36de255e857d8b54e2faf4b4/pkgs/tools/networking/strongswan/default.nix#L75
This enables aes-ni if on x86_64.

If the option can configured only at compile time, the natural solution would be a condition on nixpkgs.localSystem.gcc.arch

Nixpkgs should probably default to either disabling or enabling it by default,

nixpkgs default should't rely on advanced CPU features, there are still tons of old CPU in the wild.
It is not only the old hydra builders.
"QEMU Virtual CPU version 2.5+" - the default qemu's (and most cloud's) CPU does not support AES-NI

Still relevant, although I still haven't heard of any sort of policy in nixpkgs about what do to for these CPU flags by default.

I think if we don't have anything better we can maybe implement the most minimal change. Keep the default as as but make the this easy to override as https://github.com/NixOS/nixpkgs/issues/81915#issuecomment-596040252
This won't prevent random hydra failures but at least we will have some mechanism in place for users affected by this (at the cost of recompilation on their side) and a way to change the default if it because bigger problem.


merge from konsum-frontend-svelte,template-arlac77-github,template-svelte-app

package.json

fix(deps): add ^1.7.1 (dependencies.mf-hosting)
chore(package): add examples (pkgbuild.groups)

.github/workflows/browser_ci.yml

chore: add ubuntu-latest (jobs.test.runs-on)
chore(deps): remove 18.7.0 (jobs.test.strategy.matrix.node)

README.md

docs(README): update from template

package-lock.json

add missing package-lock.json from template

:tada: This PR is included in version 1.32.2 :tada:
The release is available on:

npm package (@latest dist-tag)
v1.32.2
GitHub release

Your semantic-release bot :package::rocket:


energy_g** from website pull does not report integrated energy

The energy_g** field when pulling data from the GLM website reports the energy of the first group, not the total integrated energy.

Given this is a bug in released code (that we know it is used by others), it is high priority to fix this bug.
If we had the personnel, ideally we would have unit tests for each release. I'm not sure we can support that. But we still need to fix bugs as they emerge.

It looks like the energy in the JSON data given at https://neo-bolide.ndc.nasa.gov/service/event/public is actually just the the energy of the first group in each NetCDF file. The JSON response does not seem to contain the integrated energy or a time series of energies. I don't know if this behavior on the website is intended or not.
Given that behavior, it is not currently possible to get the integrated energy without pulling the single-detection NetCDF or csv files from the website, which is very slow. What would you think of removing the energy values from the BolideDataFrame and only adding them when add_website_data (which actually pulls the single-detection files) is called?
In the future, when the website changes or we have a better way of pulling published detections into the package, we can put energy_g1* back into the initial BolideDataFrame.

I see. We could either remove the field or relabel it to first_cadence_energy_g**. The latter is not very useful and might cause confusion for some users. So, it's probably better to just not add the energy values unless the add_website_data is called. Also, mention this in the documentation.
Hopefully we can get the new website and unified database working in the near future, but I fear we are still numerous months away. When we do, we will still need a better way to pull data from the website for this package. I'll need to remember to ensure the web developers keep this in mind.


DualAxis Directional Snapping

What problem does this solve?
While working on #370, it got me thinking about joysticks being used as a dpad or an input that requires the full 360° to be split up into snap-able angles.
What solution would you like?
Probably something like:
// `with_snapping()` could take a radians or degree depending on which more ergonamic.
// Using degree does require converting to radians though.
DualAxis::left_stick().with_snapping(PI / 2.0);

How could this be implemented?
In axis_like.rs
pub struct AxisSnapping {
    pub snap_radians: f32,
}

impl AxisSnapping {
    pub snap_input(&self) -> Vec2 {
        // snap code
    }
}

In input_streams.rs in extract_dual_axis_data(), the snapping can be applied to the creation of the DualAxisData.

I've tinkered with this idea before, kind of like setting up input boundaries for four or eight directions (#491)

But it seems like it could also be a neat special input type, sort of like what discussed in #505.


Add exception location to default handle_failure output

If it is displayed only at the place of the closest source code,
debugging is becomes more comfortable.

seems reasonable.
@joker1007 thank you :yellow_heart:

:heart:


fix(configuration-service): Create tmpdir for unarchiving in /data/config

During the unarchive operation the configuration service tried to create a tmp directory in the file system root - since it does not have the permissions to write anything there, the temp directory is now created within /data/config

Integration tests are passing: https://github.com/keptn/keptn/runs/4482133787?check_suite_focus=true


Add Worlds

It is kinda self advertisement, but I really think this is a good addition and perfect for anyone who wants a fast, reliable and modern world management plugin for paper.
I wouldn't be mad if this doesn't get merged because it is my project

It is kinda self advertisement, but I really think this is a good addition and perfect for anyone who wants a fast, reliable and modern world management plugin for paper. I wouldn't be mad if this doesn't get merged because it is my project

Your plugin is published under any Minecraft-plugin platform? such as Spigotmc, modrinth etc?

yes it is published on hangar

Okey, please sort by alphabetical order. Despite little interest, the plugin seems to be well made. We will check the activity of the repository on github from time to time.

done :+1:

Thanks


fix: input styles

Details

https://github.com/Expensify/App/issues/5462#issuecomment-927869687
Fixed Issues

$ https://github.com/Expensify/App/issues/5462
Tests | QA Steps
Open NewDot on all the below-listed platforms one by one and follow the following procedure.

Open Profile Page.
Check the Input for FirstName and LastName is proper as per the issue description.
Check the Pronoun Dropdown is proper.

Tested On

[x] Web
[x] Mobile Web
[x] Desktop
[x] iOS
[x] Android

Screenshots

Web | Desktop

Mobile Web

iOS

Android

@shawnborton How about this?

I think that looks good, but to make sure, can you update the text input and the select menu to have the same exact labels and values? This will make it very easy to compare (by putting them on top of each other)

@shawnborton Does this work?

The missing outline for ExpensiPicker seems to be related to this change:
https://github.com/Expensify/App/pull/5742/files#diff-8ab8ba45ab927f1430b8d1209d187e003a9cdfe476f809e4483ef64cdba253ebL542-R551

This PR was never supposed to merge at this time. But I will submit another asap.

Created a PR to fix the Border issue and other input issues. https://github.com/Expensify/App/pull/5805
cc: @marcaaron @aldo-expensify

🚀 Deployed to staging by @pecanoro in version: 1.1.7-25 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by @roryabraham in version: 1.1.8-9 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Receive for HTTP always goes to default account

It should use the set-recv value.

Duplicate of https://github.com/mwcproject/mwc-qt-wallet/issues/332


Doesn't work with ccache

To reproduce, install ccache and set your PATH such that the hardening wrapper scripts come before the ccache scripts. Basically, it appears that the hardening wrapper is re-executing itself.

I enabled ccache twice...


Java path for kotlin tests compilation on Windows machines

In this merge request we are closing an issue where Windows users who did not have java in their PATH variable could not run the generated kotlin tests because kotlinc requires Java to be in the path variable.
Description of changes made
To address this issue, I added the same Java Path, which is used by the JavaTestCompiler to the KotlinTestCompiler class. This required changing the TestCompilerFacotry to find the Java path and pass it to KotlinTestCompiler. I decided to remove dedicated functions for creating Kotlin and Java test compilers because I thought that now they are more similar than different. Instead, I added a private function for finding the Java home path.
The KotlinTestCompiler now gets a javaHomeDirectoryPath which is not directly assigned in the constructor because that would require changing the TestCompiler class. I thought that TestCompiler class should not be dedicated to the Java / Kotlin language, hence I did not change it.
The Java path is set only if we detect that the system is a Windows machine. It is set through a chain of commands via command prompt.
Other notes

[ ] Please test that nothing broke on Mac with regard to Java- and Kotlin-based test case generation. Thanks!

Why is merge request needed
Closes #410

[X] I have checked that I am merging into correct branch

Probably closes #320

Kotlin compilation modulo this issue works on my Windows now.

Since we decided to do rebasing, the last commit should be reverted, and the entire branch rebased on development.

@Vladislav0Art

Since we decided to do rebasing, the last commit should be reverted, and the entire branch rebased on development (if possible without way to much time spent).

This will create a revert commit, are we okay with that?

Mind to close the issue Iurii mentioned above.

Do I need to manually check that issue 320 is also fixed? Because Iurii mentioned that it "probably closes" the issue.
Thanks!

@SergeyDatskiv

This will create a revert commit, are we okay with that?

Oh! I think we can do it better: when you start git rebase, type git rebase --edit-todo and remove the line with the merge commit 0fab360 (+ add break at the end to see the final result before rebase completes).
# rebase's todo list opened via `rebase --edit-todo`
[some other commits above]
- 0fab360 Merge branch 'development' into SergeyDatskiv/bugfix/410-javac-path-...
+ break (at the end)


update aca entities

ME-180768491

This will be taken care in PR: https://github.com/ideacrew/medicaid_gateway/pull/110.
Closing this per: https://github.com/ideacrew/medicaid_gateway/pull/110#issuecomment-1003608833

This will be taken care in PR: https://github.com/ideacrew/medicaid_gateway/pull/110.
Closing this per: https://github.com/ideacrew/medicaid_gateway/pull/110#issuecomment-1003608833


Windows: Ignore auto generated files

The commit 34f5d44 modified the names of generated files tsget and c_rehash. Please update .gitignore to reflect that.
The compiler outputs such as *.lib and *.exp have moved into /apps and /engines directories in openssl-1.1 other than /out32dll. Please update the Windows section in .gitignore.

+1 @levitte

Fixed in #1192

Now fixed, so closing.


Reward per block

Add a function to "coins to mine" that will allow each coin to enter the amount of loot per block , as this figure sometimes changes

Updates on this? :)


Suggestions about fu2::function_base

@Naios Here are some suggestions about fu2::function_base.

There are too many boolean template parameters. It's hard to imagine what specific combination of policies are given if we just write

template<typename Arg>
using my_consumer = fu2::function_base<true, false, fu2::capacity_fixed<100U>,
                                       true, false, void(Arg)&&>;

In my opinion, better alternatives might be:

Use separate enum types for each policy parameter, or
Change policy parameters from non-type parameters to type parameters, and define new empty type for each policy.

The second approach might require more template metaprogramming, but it's open-ended (users can add more options at their will) while the enum approach is closed-ended. This might be either pros or cons, though.
I recommend the enum approach, and I think there is virtually no downside of it compared to the boolean approach, except that the implementation might be a bit more verbose.

This one is about README. I'm not sure what HasStrongExceptGuarantee is meant to mean. I mean, I know what strong exception guarantee means in general, but I think it might be better to explicitly say (1) where are the places fu2::function_base is guarding against exceptions when HasStrongExceptGuarantee is set to be true, and (2) exactly what invariants are preserved. I assumed these are about copy assignment, is that correct?

Thanks!

Yes, you are right about the bool configuration. Using a strongly typed enum would prevent misconfiguration and would be an improvement. However, changing this would lead to a breaking change I could do earliest at the next major version bump.
Currently, the HasStrongExceptGuarantee only propagates noexcept from erased objects to the signature of the move construct and move assign of the type erasure such that containers can optimize their behavior based on that.
There are no guarantees made (yet) about the strong exception guarantees of the type erasure itself.

Yes, you are right about the bool configuration. Using a strongly typed enum would prevent misconfiguration and would be an improvement. However, changing this leads to a breaking change that I could do earliest at the next major version bump.

Sounds great.

Currently, the HasStrongExceptGuarantee only propagates noexcept from erased objects to the signature of the move construct and move assign of the type erasure such that containers can optimize their behavior based on that.
There are no guarantees made (yet) about the strong exception guarantees of the type erasure (function_base) itself.

Hmm. I'm not sure if I got you correctly. So my current understanding is that, if the underlying object's move constructor/assignment are not noexcept, and if HasStrongExceptGuarantee is set to be true, and if SBO is in action, then the move actually behaves as if it were copy. Is this correct?

https://en.cppreference.com/w/cpp/language/exceptions

Nothrow (or nofail) exception guarantee -- the function never throws exceptions. Nothrow (errors are reported by other means or concealed) is expected of destructors and other functions that may be called during stack unwinding. The destructors are noexcept by default. (since C++11) Nofail (the function always succeeds) is expected of swaps, move constructors, and other functions used by those that provide strong exception guarantee.

Strong exception guarantee -- If the function throws an exception, the state of the program is rolled back to the state just before the function call. (for example, std::vector::push_back)

Currently point 2) is not supported by function2. The only thing that HasStrongExceptGuarantee does is to mark its move constructor, move assignment operator, and destructor as noexcept and requires the wrapped object to also have a noexcept move constructor, move assignment operator, and destructor. The reason for this is that std::vector and other containers of the standard library would default to a copy instead of a cheap move operation otherwise.
By marking the move constructor, move assignment operator, and destructor of the function2 type-erasure as noexcept we implicitly provide the strong exception guarantee through being 1) Nothrow.
I see that this case is misleading and it would be better if we rename HasStrongExceptGuarantee to HasNoexcept while changing the behavior of the original HasStrongExceptGuarantee to conforming to 2) without requiring the wrapped object to have a noexcept move constructor, move assignment operator and destructor.

Thanks for clarification. Looking forward to the next release!


can not access iot edge device's blob storage

I have set blob module on iot edge device (https://docs.microsoft.com/en-us/azure/iot-edge/how-to-store-data-blob) I use the node JS sample (https://docs.microsoft.com/zh-tw/azure/storage/blobs/storage-quickstart-blobs-nodejs) to access the blob storage in iot edge device by other computer. I met this error messages
Containers: { Error: socket hang up     at createHangUpError (_http_client.js:331:15)     at Socket.socketOnEnd (_http_client.js:423:23)     at emitNone (events.js:111:20)     at Socket.emit (events.js:208:7)     at endReadableNT (_stream_readable.js:1064:12)     at _combinedTickCallback (internal/process/next_tick.js:139:11)     at process._tickCallback (internal/process/next_tick.js:181:9) code: 'ECONNRESET' }
The node JS version is 8.12.0 and here is the connection string
DefaultEndpointsProtocol=http;AccountName=testblob;AccountKey=Nczwmv7Awy4Z0Y+ZfIDyRA...oRc2UYUqehJOivvbj+Q==;BlobEndpoint=http://<IP_ADDRESS>:11002/testblob/
Here is the log in IOT Edge Device
[2018-11-09 08:08:48.229] [backend] [info] [Tid:55] Info: Accepting {0} request for '{1}'. RemoteEndPoint='{2}', Via='{3}', Expect='{4}', Connection='{5}', Version='{6}', ClientRequestId='{7}', UserAgent='{8}' DurationStayedInQueueInMs='{9}', RemainingRequestsInQueueAtEnqueue='{10}', RemainingRequestsInQueueAtDequeue='{11}', WasInHighPriorityQueue='{12}', ToSetKeepAliveToFalse='{13}', ActiveWorkerThreads='{14}', ActiveCompletionThreads='{15}' PassedInActivityId={16}, EnqueueTime={17}, DequeueTime={18}, RequestTraceActvityId = '{19}', p0="PUT", p1="http://<IP_ADDRESS>:11002/testblob/quickstartblobsb5176e65-b60d-40e0-bced-15ca4753b5c7?restype=container&comp=acl", p2="<IP_ADDRESS>:43877", p3="", p4="", p5="", p6="2018-03-28", p7="2a3a365e-3688-44ad-983c-3e6fce9ceba3", p8="Azure-Storage/9.3.0 (.NET Core)", p9="0.2363", p10="0", p11="0", p12="False", p13="False", p14="2", p15="0", p16="null", p17="2018-11-09T08:08:48.2284050Z", p18="2018-11-09T08:08:48.2285810Z", p19="b065d559-ac66-4f4d-807b-851ad3ceb0a6" [2018-11-09 08:08:48.555] [backend] [info] [Tid:179] Perf: PerfCounters: Account={0} Operation={1} on Container={2} with Status={3} RequestHeaderSize={4} RequestSize={5} ResponseHeaderSize={6} ResponseSize={7} ErrorResponseByte={8} TimeInMs={9} ProcessingTimeInMs={10} UserTimeoutInMs={11} OperationTimeoutInMs={12} MaxAllowedTimeoutInMs={13} SlaUsedInMs={14} ReadLatencyInMs={15} WriteLatencyInMs={16} ClientIP={17} UserAgent='{18}' RequestVersion='{19}' ProcessorVersionUsed='{20}' RequestUrl='{21}' ClientRequestId='{22}' MeasurementStatus={23} HttpStatusCode={24} TotalFeTimeInMs={25} TotalTableServerTimeInMs={26} TotalTableServerRoundTripCount={27} TotalPartitionWaitTimeInMs={28} TotalXStreamTimeInMs={29} TotalXStreamRoundTripCount={30} SmbOpLockBreakLatency={31} LastTableServerInstanceName={32} LastTableServerErrorCode={33} TotalAccountCacheWaitTimeInMs={34} TotalContainerCacheWaitTimeInMs={35} InternalStatus={36} RequestContentType='{37}' ResponseContentType='{38}' PartitionKey='{39}' ItemsReturned='{40}' BatchOperationCount='{41}' LastXStreamErrorCode={42} AuthenticationType='{43}' AccountConcurrentReq='{44}' OverallConcurrentReq='{45}' Range='{46}' EntityType='{47}' {48} LastTSPartition={49} TotalXCacheTimeInMs={50} TotalXCacheRoundTripCount={51} TotalTableServerOnlyTimeInMicroSeconds={52} TotalAuthTimeInMs={53} AuthenticationTimeInMs={54} AuthorizationTimeInMs={55} GetAuthenticationDataTimeInMs={56}, GetAuthorizationDataTimeInMs={57}, p0="testblob", p1="CreateContainer", p2="quickstartblobsb5176e65-b60d-40e0-bced-15ca4753b5c7", p3="Success", p4="379", p5="0", p6="223", p7="0", p8="0", p9="1948.4485", p10="1948.4485", p11="922337203685477", p12="30000", p13="30000", p14="0", p15="0", p16="0", p17="<IP_ADDRESS>:43877", p18="Azure-Storage/9.3.0 (.NET Core)", p19="2018-03-28", p20="2018-03-28", p21="http://<IP_ADDRESS>:11002/testblob/quickstartblobsb5176e65-b60d-40e0-bced-15ca4753b5c7?restype=container", p22="f53f13c9-eb86-4dba-80c8-5ed8f9d6fc49", p23="Success", p24="201", p25="1948.448", p26="0", p27="0", p28="0", p29="0", p30="0", p31="0", p32="", p33="0", p34="0", p35="0", p36="UnexpectedSuccess", p37="", p38="", p39="", p40="0", p41="0", p42="0", p43="NA", p44="", p45="1", p46="", p47="", p48="", p49="", p50="0", p51="0", p52="0", p53="775.549", p54="682.378", p55="93.171", p56="0", p57="0"
Then, I check the connection by this command by other computer and it success
nc -zv <IP_ADDRESS> 11002
Try some format or other language to test and it still fail to upload something to blob storage on IOT edge device.

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

ID: 07a44a28-a19c-f68e-167c-5e8ad91605e0
Version Independent ID: 33eacdff-4f0a-c543-d8f9-e7b208bab015
Content: Azure Blob Storage on Azure IoT Edge devices
Content Source: articles/iot-edge/how-to-store-data-blob.md
Service: iot-edge
GitHub Login: @kgremban
Microsoft Alias: kgremban

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

Hi @ml810326 please note that there are three different ways to try and reach Azure Blob Storage on IoT Edge:
For modules which are deployed on different edge device, than the edge device where "Azure Blob Storage on IoT Edge" is running, then depending upon your setup the blob endpoint is: http://<device IP >:11002/<account name> or http://<IoT Edge device hostname>:11002/<account name> or http://<FQDN>:11002/<account name>
You reported that it didn't work when using the . Can you test using  or  ?
@mbialecka do you have any other suggestions?
Thank you!

@ml810326 Can you please run the JS sample from within the IoT device using http://locahost:11002? That way we could understand if the issue is external to the device or not.

Thank you for @sergaz-msft and @sudhirap suggestions.
I have tried the blob endpoint  http://imx6artigoa820:11002/testblob
It shows the messages as below
Containers: { Error: getaddrinfo ENOTFOUND imx6artigoa820 imx6artigoa820:11002     at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:67:26)   errno: 'ENOTFOUND',   code: 'ENOTFOUND',   syscall: 'getaddrinfo',   hostname: 'imx6artigoa820',   host: 'imx6artigoa820',   port: '11002' }
In addition, I also check the issue on rasberripy pi and it has same problem.
Also try to run the JS sample from within the IoT device rasberripy pi using http://locahost:11002 and it still has error message like this
Containers: { Error: socket hang up at createHangUpError (_http_client.js:331:15) at Socket.socketOnEnd (_http_client.js:423:23) at emitNone (events.js:111:20) at Socket.emit (events.js:208:7) at endReadableNT (_stream_readable.js:1064:12) at _combinedTickCallback (internal/process/next_tick.js:139:11) at process._tickCallback (internal/process/next_tick.js:181:9) code: 'ECONNRESET' }
Thank you.

@ml810326 Currently we don't support "set container ACL" operation. Could you update the following code at line 24 in index.js and try again?
From:
blobService.createContainerIfNotExists(containerName, { publicAccessLevel: 'blob' }, err => {
To:
blobService.createContainerIfNotExists(containerName, err => {

Thank for @qibozhu suggestion
I have updated the code in index.js
From:
blobService.createContainerIfNotExists(containerName, { publicAccessLevel: 'blob' }, err => {
To:
blobService.createContainerIfNotExists(containerName, err => {
It still has socket hang up error on both our device and raspberry pi
Thank you.

@ml810326 Hi, Tom, looks like createContainerIfNotExists API will call "set container ACL" operation anyway. Is it possible for you to try the .NET sample just to make sure the blob storage module is running properly?
https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-dotnet?tabs=linux
You need to comment out the following lines in storage-blobs-dotnet-quickstart/Program.cs to avoid setting container permissions.
Line 86 - 90:
// Set the permissions so the blobs are public.
BlobContainerPermissions permissions = new BlobContainerPermissions
{
PublicAccess = BlobContainerPublicAccessType.Blob
};
await cloudBlobContainer.SetPermissionsAsync(permissions);
I confirmed that this .NET sample code works.

@qibozhu Thank you for your suggestion.
I have used the .NET sample code and commented out line 86 -90.
It can be worked for uploading messages into blob storage on EDGE device and downloading from it.
Thank you.

@ml810326 Can you please educate us about your blob storage scenarios? What workload needs this module and what is your end-to-end goal?

As we provided you an answer\workaround to your issue 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.
Please let @sudhirap know about your scenarios if possible :)!


How to use the Code Interpreter in conjunction with prompts?

The Bridget (BioImage Analyst) mode has a nifty Code Interpreter pane. But no guidance on how to use it. I tried help() but it gives a stack trace with OSError: [Errno 29 I/O error.

The current code interpreter pane is only used for debugging purpose, e.g. we can use it to inspect global variables produced by the chatbot code execution.
I have updated the welcome message in this PR: https://github.com/bioimage-io/bioimage.io/pull/394
Feel free to reopen!

Thanks. I opened a separate issue #128 for the OSError from help().


Reduce dimensions of feature vectors

The examples you sent over yesterday evening are great! I'm going to leave this in In Progress for now though - I'd like to to try it with >1000 images and some more example paths to get a better sense of what's really happening at each dimensionality


HTTP/2 codec missing from all/pom.xml

Motivation:
The codec-http2 module was excluded from the all/pom.xml.
Modifications:
Include the codec-http2 dependency in the all/pom.xml.
Results:
Projects including the all dependency get codec-http2.

@nmittler @buchg - Only for 4.1.  Should be trivial...

@Scottmitch +1 .. Please cherry-pick

LGTM ... didn't this used to be there? Weird.

It is in master...not in 4.1 apparently.

Cherry picked into 4.1 (a24627a)


Publishing data to the view with functions is bad practice ?

There is no good practices in this style-guide about publishing data in the views.
I have some dev who likes to do this kind of things :
<xx-list-item ng-repeat="item in myCtrl.getItems()">

{{ item.prop1 }}

{{ item.prop2 }}

</xx-list-item>

// or worse
<xx-list-item ng-repeat="item in myCtrl.getItems()">

{{ item.getProp1() }}

{{ item.getProp2() }}

</xx-list-item>

// in the controller :

(function (angular) {
    "use strict";

    angular
        .module('app')
        .controller('MyController', MyController);

    MyController.$inject = ['dataHolderService'];

    function MyController(dataHolderService){
        var vm = this;
        vm.getItems = getItems;

        function getItems(){
            return dataHolderService.data;
        }
    }

}(angular));

The dataHolderService hold data. Theses data are set in the service elsewhere in the webapp.
I don't like this, i prefer regular data binding but do you see any reason to avoid this ?
By regular data binding i mean vm.data = dataHolderService.data.
I see some cons :

a console.log in getItems() show that the function is executed multiples times at each digest.
there is a risk to see another dev writing code inside getItems, leading to bad perf issues because of first of the cons.
one time binding only work for expressions, [see this answer] (https://github.com/angular/angular.js/issues/11416#issuecomment-94837181) from an angular dev.
<xx-list-item ng-repeat="item in ::myCtrl.getItems()"> will not work.

I see no pros.

It depends on the implementation of dataHolderService. If dataHolderService.data is already assigned when you try to access it during your controllers instantiation and is never re-assigned, then the direct version is OK. But it will break if dataHolderService.data is not available yet, or if it gets re-assigned. (That's when you need the function form.)
Basically, the asynchronous initialization should be solved using promises, but if the dataHolderService.data gets re-assigned, then you either need a function or you need to expose the whole service and access it's data property from the template (which might not be ideal).

also ... you could assign the value of the function just once only.
(function () {
    "use strict";

    angular
        .module('app')
        .controller('MyController', MyController);

    MyController.$inject = ['dataHolderService'];

    function MyController(dataHolderService){
        var vm = this;
        vm.items = [];
        activate();

        function activate(){
            return dataHolderService.data;
        }
    }

}());

@gkalpak

But it will break if dataHolderService.data is not available yet, or if it gets re-assigned. (That's when you need the function form.)

It works well with direct assign, you just need to wrap primitives and array in an object like that :
vm.data = {
    items: []
}

With this pattern you can re-assign vm.data.items and the view will render correctly the data.
My concern is about performances essentially, a function is constantly executed at each digest, and about good practices, if you use a function de publish data, some dev can have the temptation to write more code in there.
So my question is more : "Do you think direct binding is a better practice then function assign ?"
@johnpapa
I don't understand your code, activate() is not exposed to the view and it return data to ?

typo is now fixed ... the point is you dont want to call a function in a binding. that makes it call that over and over again. instead, call the func in your controller when you need it (active in the above code) and then set your array.

@MarcLoupias

It works well with direct assign, you just need to wrap primitives and array in an object

That's why I said, it depends on the implementation of dataHolderService. You can make it work both ways, but note that you are not always the implementor of dataHolderService.

Do you think direct binding is a better practice then function assign ?

I generally do, with the exception when dataHolderService is implemented in a way that doesn't lend itself for property binding and you don't have access to change dataHolderService. In any other case, binding to properties (possibly through a promise if necessary) is both cleaner and more performant* (and avoids the pitfall of putting extra logic into the function, where it doesn't belong).
(*): It's not the kind of performance gain that you are likely to notice, but a gain is a gain :wink:


Access denied for user

Hey!
I'm using a remote MySQL database with SSL (REQUIRE SSL), so without a cert. I can connect through the terminal without problems, but the MySQL package returns the error Access Denied for user 'jerome724'@'ip'. I can't figure out why it is not working with the package, but working in the terminal.
const pool = require('mysql').createPool({
	host: global.config.mysql.host,
	port: global.config.mysql.port,
	user: global.config.mysql.user,
	password: global.config.mysql.password,
	database: global.config.mysql.database,
	debug: true
});

Debug:
<-- HandshakeInitializationPacket
HandshakeInitializationPacket {
  protocolVersion: 10,
  serverVersion: '5.5.53-0+deb8u1',
  threadId: 48,
  scrambleBuff1: <Buffer 44 5b 7b 7c 7b 77 62 65>,
  filler1: <Buffer 00>,
  serverCapabilities1: 65535,
  serverLanguage: 8,
  serverStatus: 2,
  serverCapabilities2: 49167,
  scrambleLength: 21,
  filler2: <Buffer 00 00 00 00 00 00 00 00 00 00>,
  scrambleBuff2: <Buffer 56 5f 57 79 79 74 5a 47 33 6a 3e 33>,
  filler3: <Buffer 00>,
  pluginData: 'mysql_native_password',
  protocol41: true }

--> ClientAuthenticationPacket
ClientAuthenticationPacket {
  clientFlags: 455631,
  maxPacketSize: 0,
  charsetNumber: 33,
  filler: undefined,
  user: 'jerome724',
  scrambleBuff: <Buffer 84 51 88 43 ef 14 7f 5b 8a 81 80 4b 53 bf 1d c2 d8 67 39 9f>,
  database: 'jerome724',
  protocol41: true }

<-- ErrorPacket
ErrorPacket {
  fieldCount: 255,
  errno: 1045,
  sqlStateMarker: '#',
  sqlState: '28000',
  message: 'Access denied for user \'jerome724\'@\'xxxx\' (using password: YES)' }

User:
+-----------+------------------+-------------------------------------------+
| host      | user             | password                                  |
+-----------+------------------+-------------------------------------------+
| %         | jerome724        | *B87D9175443636E04553DE571D0C464E5BFC4D10 |
+-----------+------------------+-------------------------------------------+

Okay i tested it with and without REQUIRE SSL, and without it i can connect. Why isn't it working with a SSL connection? Afaik my setup doesn't require a cert or something.


Get Billing Account instructions not clear and no longer valid

The screenshot of the Billing Account details shows a highlight around billing account type which I believe is misleading, when the Billing Account ID is what is required.
Also, it seems it's not possible to get the Billing Account information for a CSP subscription in this way anymore, there's no properties within the Cost Management / Cost Analysis section.

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

ID: 1dc4bd0c-b3d7-3ace-ca76-696e9c278d4b
Version Independent ID: 3c0f58ee-b290-559a-cb6d-b7afe1996760
Content: Connect the Microsoft Sustainability Calculator - Power BI
Content Source: powerbi-docs/connect-data/service-connect-to-microsoft-sustainability-calculator.md
Service: powerbi
Sub-service: powerbi-template-apps
GitHub Login: @andreabichsel
Microsoft Alias: rosode

Thanks for your comment, @andyreadman.
I've assigned this issue to the doc author for review.

@andyreadman - this article was recently updated to reflect changes to the template app. It is now the Emissions Impact Dashboard. Please feel free to open a new issue if your feedback was not addressed with the update.


Export sorting helpers.

Exports byName, stringList, and byNameAndType so that we can use LXD's sorting implementation for cli tables in other projects.

@stgraber @masnax As we are starting to pull in packages from various places in the LXD repo into LXD cloud, perhaps we should move any shared packages into the existing "shared" namespace so its clear to anybody working on them that they can be used by different applications (potentially lxc, lxd and lxd-cloud). Then we can start moving the non-shared packages into "internal" to make it clear they are not being used elsewhere.
Its making me a bit uncomfortable that its becoming trickier to see where a package is being used. Its true that go mod will prevent any immediate breakages, but this is in some ways worse and it may not come to light until much later.


Fixed issues reported by RH coverity tool

Hi Till!
This is the last batch of coverity fixes after the rebase :) would you mind merging it?

Now I get several warnings:
$ make
make  all-recursive
make[1]: Entering directory '/home/till/printing/openprinting/cups-browsed/x'
make[2]: Entering directory '/home/till/printing/openprinting/cups-browsed/x'
  CC       daemon/cups_browsed-cups-browsed.o
daemon/cups-browsed.c: In function ‘create_remote_printer_entry’:
daemon/cups-browsed.c:7720:10: warning: passing argument 1 of ‘free’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 7720 |     free(resource);
      |          ^~~~~~~~
In file included from daemon/cups-browsed.c:31:
/usr/include/stdlib.h:568:25: note: expected ‘void *’ but argument is of type ‘const char *’
  568 | extern void free (void *__ptr) __THROW;
      |                   ~~~~~~^~~~~
daemon/cups-browsed.c:7721:10: warning: passing argument 1 of ‘free’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 7721 |     free(service_name);
      |          ^~~~~~~~~~~~
/usr/include/stdlib.h:568:25: note: expected ‘void *’ but argument is of type ‘const char *’
  568 | extern void free (void *__ptr) __THROW;
      |                   ~~~~~~^~~~~
daemon/cups-browsed.c:7722:10: warning: passing argument 1 of ‘free’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 7722 |     free(type);
      |          ^~~~
/usr/include/stdlib.h:568:25: note: expected ‘void *’ but argument is of type ‘const char *’
  568 | extern void free (void *__ptr) __THROW;
      |                   ~~~~~~^~~~~
daemon/cups-browsed.c:7723:10: warning: passing argument 1 of ‘free’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 7723 |     free(domain);
      |          ^~~~~~
/usr/include/stdlib.h:568:25: note: expected ‘void *’ but argument is of type ‘const char *’
  568 | extern void free (void *__ptr) __THROW;
      |                   ~~~~~~^~~~~
daemon/cups-browsed.c: In function ‘create_queue’:
daemon/cups-browsed.c:8493:12: warning: passing argument 1 of ‘free’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 8493 |       free(loadedppd);
      |            ^~~~~~~~~
/usr/include/stdlib.h:568:25: note: expected ‘void *’ but argument is of type ‘const char *’
  568 | extern void free (void *__ptr) __THROW;
      |                   ~~~~~~^~~~~
daemon/cups-browsed.c:8510:17: warning: passing argument 1 of ‘free’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 8510 |            free(loadedppd);
      |                 ^~~~~~~~~
/usr/include/stdlib.h:568:25: note: expected ‘void *’ but argument is of type ‘const char *’
  568 | extern void free (void *__ptr) __THROW;
      |                   ~~~~~~^~~~~
daemon/cups-browsed.c:8649:10: warning: passing argument 1 of ‘free’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 8649 |     free(loadedppd);
      |          ^~~~~~~~~
/usr/include/stdlib.h:568:25: note: expected ‘void *’ but argument is of type ‘const char *’
  568 | extern void free (void *__ptr) __THROW;
      |                   ~~~~~~^~~~~
  CCLD     cups-browsed
$

Can they be caused by the Coverity fixes?

Damn, they are - preparing a PR to fix it.

The PR was created - I'm sorry for inconvenience.


Update modsec config

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 94.79%. Comparing base (60b34ee) to head (601915b).

Additional details and impacted files
@@            Coverage Diff            @@
##               main     #146   +/-   ##
=========================================
  Coverage     94.79%   94.79%
  Complexity      619      619
=========================================
  Files            96       96
  Lines          1961     1961
  Branches        109      109
=========================================
  Hits           1859     1859
  Misses           70       70
  Partials         32       32

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Chrome Memory Leak on slide-content resize

When resizing Electron freezes up and requires a force reload. Only happens on Resize, a likely result is due to the constant changes of slides and items is too much for the process to handle. Will require debugging before moving on to the search section

After some debugging found out the issue
Google Chrome gets a memory leak when animeList.js cannot fit any items into slide-content.
this is a result of removing the minimum width of the slide-content div. this woudn't be a issue in production as users wouldnt have access to developer console but will work on a fix

Commit d5fb7ef resloved issue by adding min-width to the content. was not able to cause a memory leak when making the window size smaller then expected


feat(connectivity_plus): Return multiple active types on MacOS/iOS when available

Description
Switching from check for active used connection on iOS/MacOS to available connections to return multiple connection types when such are available. Tested with a dongle for MacBook which has Ethernet port and looks like getting results as expected:

Here is a screenshot from a few more test cases where I tried to connect/disconnect both Wi-Fi and Ethernet

Additionally did a few changes to the API documentation comments.
Related Issues
Closes #3073
Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change (please indicate that with a ! in the title as explained in Conventional Commits).
[x] No, this is not a breaking change.

Would appreciate an additional check on how it works on iOS with mobile and wi-fi active as don't have iPhone with a SIM card

Would appreciate an additional check on how it works on iOS with mobile and wi-fi active as don't have iPhone with a SIM card

I should be able to do that.
Btw, I think we can change the Android implementation to also report the available connections instead of just the used ones, but I don't remember exactly now what was the api.

Maybe we should implement this change in a different stream listener?
In other words:

checkConnectivity and onConnectivityChanged continue to report the "active" used connection
A new property availableConnectivity and onAvailableConnectivityChanged report on all available interfaces, even when not actively used.

I know it is more work, but I think there is still a valid use case for the previous implementation.
While we implement the rest of the platforms, we can mirror availableConnectivity to checkConnectivity if no specific implementation for availableConnectivity exists.

Btw, I think we can change the Android implementation to also report the available connections instead of just the used ones, but I don't remember exactly now what was the api.

For some reason I thought that on Android we already do it this way and return multiple types after introducing this feature with multiple types returned. But seems like I confused something as tested and see that no, we return only the one currently active/used ones.

In other words:
checkConnectivity and onConnectivityChanged continue to report the "active" used connection
A new property availableConnectivity and onAvailableConnectivityChanged report on all available interfaces, even when not actively used.

I like this idea. It would make sense for users, who rely on onConnectivityChanged as a way to determine if user has internet (even though the plugin doesn't guarantee that, but still most people use the plugin for this exact purpose).
Will need to do some additional research on APIs to achieve this.

If I remember correctly, the hasTransport() method says if the interface exists, and hasCapability that it is being used. Both are on the NetworkCapabilities class, so the implementation shouldn't be too different.

If I remember correctly, the hasTransport() method says if the interface exists, and hasCapability() if it is being used. Both are on the NetworkCapabilities class, so the implementation shouldn't be too different.

Yeah, that is for Android. I meant more Windows/Linux platforms as a subject for research as not really familiar with them.

I don't see any activity in the related issue, so will just close the PR, considering having no real value in expanding API that way.


Make destination type string

Instead of trying to map to specific folders for destination make it type string and accept a file path.
this way people can use capacitor file system plugin to get the base path (data, documents etc) and can add on their own sub folder if wanted.
filename just specifies the destination filename and you concat the 2 values to get the file path to save to.
you could add a check to make sure that destination exists before trying to download and reject if not.

Have a look at Cordova plugin file transfer as this is what anyone moving from Cordova is probably looking for.

Instead of trying to map to specific folders for destination make it type string and accept a file path.
this way people can use capacitor file system plugin to get the base path (data, documents etc) and can add on their own sub folder if wanted.
filename just specifies the destination filename and you concat the 2 values to get the file path to save to.
you could add a check to make sure that destination exists before trying to download and reject if not.

Great advice, I'll be tweaking it in the near future


*: fix split region.

Coverage decreased (-0.2%) to 85.127% when pulling ae42af661d150d7141c1c0d3b7f424eb9dc1ab9a on ngaut/fix-region-split into 51f79fd6aecd07451d2cece9525117e96a6b5e1b on master.

PTAL @siddontang @disksing @BusyJay

LGTM

no test case?

Coverage decreased (-0.2%) to 85.173% when pulling 0f11e7a55b9f6b2ecc195a371923f0327ded6913 on ngaut/fix-region-split into 51f79fd6aecd07451d2cece9525117e96a6b5e1b on master.

LGTM.
Well done. @BusyJay


Spanning multiple zones (more than 2)

Spanning multiple zones (more than 2)
I have another suggestion regarding the same.
After using the spanning of 2 zones I've been inspired to do the same with more than two.
What if you could merge more, like 3 out of 4.
What do you think of the following?
(Context: Layout with 4 columns)

Drag a window, press shift, and place it in the far most right column.

[ ][ ][ ][A]

Drag another window, press shift, when holding down ctrl, it'll create a "Selection square" (like dragging on the desktop), merge the zones you select/drag over.
So if I'm at the 1st zone, and drag till the 3rd, it'll merge those 3. Leaving you with this layout.

[B][B][B][A]

What do you think of the idea?

A big yes. I don't even get the spanning of 2 zones to work. I have another layout that I would like to use in my setup:
[A][A][B]
[A][A][C]
Not super critical with keyboard shortcuts to do it, but that would be even nicer.

@mastoj

I don't even get the spanning of 2 zones to work

You have to drag the window and place the mouse cursor near the common edge of two zones.

I just had to update powertoys, was running an old version.
On Wed, 3 Jun 2020 at 10:26, Enrico Giordani<EMAIL_ADDRESS>wrote:

@mastoj https://github.com/mastoj
I don't even get the spanning of 2 zones to work
You have to drag the window and place the mouse cursor near the common
edge of two zones.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/PowerToys/issues/3984#issuecomment-638044102,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAD2NMAT4AX2NGIZNTULDATRUYCLNANCNFSM4NQNMKRA
.

Didn't remember that there was already a similar issue open https://github.com/microsoft/PowerToys/issues/3337

If you're looking for "how to make a window span multiple zones using only the keboard" like me:

It`s already implemented, use Ctrl+Win+Alt+[arrow key]
https://docs.microsoft.com/en-us/windows/powertoys/fancyzones#snapping-a-window-to-two-or-more-zones
https://github.com/microsoft/PowerToys/issues/1972

If you're looking for "how to make a window span multiple zones using only the keboard" like me:

It`s already implemented, use Ctrl+Win+Alt+[arrow key]
https://docs.microsoft.com/en-us/windows/powertoys/fancyzones#snapping-a-window-to-two-or-more-zones
https://github.com/microsoft/PowerToys/issues/1972


[Misc] Make benchmarks use EngineArgs

Update the benchmark scripts to directly use the CLI arguments provided by EngineArgs instead of duplicating a subset of these arguments in each benchmark script.
Currently the CLI arguments are duplicated, forcing changes to be made in multiple locations and resulting in some useful vLLM options not being exposed in the scripts.  For example, the --num-scheduler-steps option is currently available in benchmark_throughput.py but not benchmark_latency.py, making it difficult to understand the latency impacts of this option.  As another example, the benchmark_prioritization.py script appears to be broken currently because it was not updated to expose the --scheduling-policy option which is required for enabling priority.
These maintenance challenges are eliminated by using EngineArgs.add_cli_args to add support for all engine arguments directly, and then passing these options to the engine initialization.
One minor change in behavior is that when benchmark_throughput.py runs in async mode it no longer includes hard-coded settings for worker_use_ray=False (which is deprecated anyway) and disable_log_requests=True (but the user now has the option to pass --disable-log-requests on the command-line).
Similarly, benchmark_prefix_caching no longer has hard-coded values for trust_remote_code=True and enforce_eager=True, but these may now be passed on the command-line.

Also cc @KuntaiDu


fix(si): agent improvements

Checklist

[x] I have read the coding guide.
[ ] My change requires a documentation update, and I have done it.
[ ] I have added tests to cover my changes.
[ ] I have filled out the description and linked the related issues.

Description

removed optimization because there is no need for optimization as this handled is quite trivial. additionally, this optimization had a flaw because it could actually reduce phase length (potentially this could make issues when playing the game).
adding context to doWork for gracefully handling cancellation
doWork called manually when starting in order to set initial data

@vladopajic The optimization was to basically not call the blockchain backend at every block for the block height. The block time is 5 seconds.
With the optimization, the maximum amount of delay for the notification of a new phase is 25 seconds,

(the closing of the PR was an accident)

@vladopajic The optimization was to basically not call the blockchain backend at every block for the block height. The block time is 5 seconds.
With the optimization, the maximum amount of delay for the notification of a new phase is 25 seconds.
The sampler is the one that needs the notification as early as possible, and with this optimization, it still has 5.9 minutes to complete.

got it, I will revert that part tomorrow


Use max-training-framework package

Removed MAX training framework code
Updated training README
Closes #41

Passed all tests.

LGTM
Jenkins test passed


Prebuilt Binaries for Arm?

I'm using a Pi and it says WARN install No prebuilt binaries found (target=16.13.1 runtime=node arch=arm libc= platform=linux)

Linux raspberrypi 5.10.63-v7l+ #1496 SMP Wed Dec 1 15:58:56 GMT 2021 armv7l GNU/Linux

Is there a way to get Prebuilt binaries for this?

Hi @KnightAR,
I was actually planning on adding Linux arm prebuilds in the next beta release. I kept sleeping on the idea because running arm containers on CIs is quite troublesome. Especially with testing. It also heavily increases the build time. But I agree that it's a necessity. I'll track this issue as the enhancement suggestion.

Got an update on this. Been trying some build configurations for arm in the past few hours. I've attached a prebuilt binary on this comment and I'd appreciate it if you can try it out on your project. It's built for Node v16 and BS3MC v7.5.0.
All you have to do is extract the better_sqlite3.node file in the attached archive to <YOUR_PROJECT>/node_modules/better-sqlite3-multiple-ciphers/build/Release directory. Replace the file if it already exists. Don't run any NPM installs after this step. Then run your project and do some DB transactions to make sure that the library is fully functional.
If your project runs successfully with this binary, I can happily mention that prebuilt binaries for arm architecture will be available starting from next release which I'll be doing probably within the next day if everything goes right.
Prebuilt file - better-sqlite3-multiple-ciphers-v7.5.0-node-v93-linux-arm.tar.gz

Thank you I'll try it out once I'm in front of the Pi, I'll let you know I'll be later on today

I'm currently unable to install at all because something fails to compile. Wonder if theres something I'm missing

something fails to compile

It must still be trying to build the addon on install.
Start your project from the scratch and use npm install --ignore-scripts<EMAIL_ADDRESS>to install. This will prevent the post-install scripts from running. Also make sure that you're using Node 16.

It looks like that worked! I installed it with --ignore-scripts and placed the file in the correct place and tested it stand alone. Everything works properly!

Perfect. I'll keep this issue open till I do the new release with arm assets.
BTW what model of RPi are you testing this on? I'm guessing Pi 2 Model B?

4 4gb
Raspberry Pi 400 All-in-One Quad-Core 64 Bit 4GB https://www.amazon.com/dp/B08XS24CMV/ref=cm_sw_r_apan_glt_i_T49WYADFVQHGCNYVMCQ3?_encoding=UTF8&psc=1

Huh. That's odd because the binary is compiled for armv7l. I guess it works for you because Raspbian runs in 32-bit and that makes the CPU appear to be an armv7l.

The latest release v7.5.1-beta.0 now contains prebuild binaries for Linux on both arm and arm64. I suggest you try this on a clean project to test it.
npm install better-sqlite3-multiple-ciphers@beta

I'm closing this issue marking the feature as implemented. Feel free to reopen if you run into any problems.


Add the ability to limit the amount of disk given to the action pod in k8s

Description

This will allow the deployment to limit the total amount of ephemeral disk given to a pod when it's created. This prevents an attacker from overwhelming the node with disk writes.

Related issue and scope

[ ] I opened an issue to propose and discuss this change (#????)

My changes affect the following components

[ ] API
[ ] Controller
[ ] Message Bus (e.g., Kafka)
[ ] Loadbalancer
[x] Invoker
[ ] Intrinsic actions (e.g., sequences, conductors)
[ ] Data stores (e.g., CouchDB)
[ ] Tests
[ ] Deployment
[ ] CLI
[ ] General tooling
[ ] Documentation

Types of changes

[ ] Bug fix (generally a non-breaking change which closes an issue).
[x] Enhancement or new feature (adds new functionality).
[ ] Breaking change (a bug fix or enhancement which changes existing behavior).

Checklist:

[x] I signed an Apache CLA.
[x] I reviewed the style guides and followed the recommendations (Travis CI will check :).
[x] I added tests to cover my changes.
[ ] My changes require further changes to the documentation.
[x] I updated the documentation where necessary.

Codecov Report

Merging #4915 into master will increase coverage by 0.08%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master    #4915      +/-   ##
==========================================
+ Coverage   83.42%   83.51%   +0.08%
==========================================
  Files         201      201
  Lines        9517     9520       +3
  Branches      392      400       +8
==========================================
+ Hits         7940     7951      +11
+ Misses       1577     1569       -8

Impacted Files
Coverage Δ

...re/containerpool/kubernetes/KubernetesClient.scala
20.90% <ø> (ø)

...ore/containerpool/kubernetes/WhiskPodBuilder.scala
95.00% <100.00%> (+0.26%)
:arrow_up:

.../org/apache/openwhisk/common/NestedSemaphore.scala
84.84% <0.00%> (-3.04%)
:arrow_down:

...e/openwhisk/core/containerpool/ContainerPool.scala
97.89% <0.00%> (+<0.01%)
:arrow_up:

...core/database/cosmosdb/CosmosDBArtifactStore.scala
96.60% <0.00%> (+0.37%)
:arrow_up:

.../org/apache/openwhisk/core/connector/Message.scala
80.15% <0.00%> (+1.58%)
:arrow_up:

.../scala/org/apache/openwhisk/core/entity/Size.scala
79.10% <0.00%> (+2.98%)
:arrow_up:

...core/database/cosmosdb/RetryMetricsCollector.scala
85.71% <0.00%> (+4.76%)
:arrow_up:

...rg/apache/openwhisk/common/ForcibleSemaphore.scala
96.15% <0.00%> (+7.69%)
:arrow_up:

Continue to review full report at Codecov.

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


Bug that uses ESP_SECURE_CERT_DEV_CERT_OFFSET instead of ESP_SECURE_CERT_CA_CERT_OFFSET

https://github.com/espressif/esp_secure_cert_mgr/blob/9c9a7b465e9d1fe56ec9993da669b7ba74692155/srcs/esp_secure_cert_read.c#L443

@mohabdallah Thanks for the issue and the fix. I can take this up internally.
Do you want to raise a PR for this? so the contribution would be in your name.

@AdityaHPatwardhan Yes sure, are there specific steps to follow to do so?

You can create a GitHub pull request for the above change.
Please find more details here

For the pull request, shall I create a pull request from a fork or you will create a branch here that I can use?

I think the simple steps would be

You fork this repository
You create a new branch in your fork that contains this change
Raise a pull request to pull your branch into the master branch of this repository.
After that I shall get it merged.

Done https://github.com/espressif/esp_secure_cert_mgr/pull/14

@AdityaHPatwardhan  Added new PR


Parser for for IESNA LM-63 Photometric Data Files (Fixed)

Previous pull request: https://github.com/appleseedhq/appleseed/pull/1394


[Relanding] Add support when RAY_EXPERIMENTAL_NOSET_*_VISIBLE_DEVICES is set

Relanding of PR https://github.com/OpenRLHF/OpenRLHF/pull/524
RAY_EXPERIMENTAL_NOSET_*_VISIBLE_DEVICES is used for overriding the auto setting of *_VISIBLE_DEVICES for each actor. This commit address the 2 issues when the flag is set:

LOCAL_RANK should reflect the actual value instead of "0", to select the correct GPU.
vLLM workers should be forced to use ray even if tensor_parallel_size is 1, as "mp" distributed executor backend won't work correctly when *_VISIBLE_DEVICES is not properly set.

Setting RAY_EXPERIMENTAL_NOSET_ROCR_VISIBLE_DEVICES flag is neccessary to get OpenRLHF running on AMD GPUs when ray >= 2.10.0 (Referring to https://github.com/vllm-project/vllm/blob/v0.6.4.post1/Dockerfile.rocm#L131-L132)
If without setting RAY_EXPERIMENTAL_NOSET_ROCR_VISIBLE_DEVICES, the
error log is as follows:
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "OpenRLHF/openrlhf/cli/train_ppo_ray.py", line 396, in <module>
    train(args)
  File "OpenRLHF/openrlhf/cli/train_ppo_ray.py", line 146, in train
    ray.get(refs)
  File "venv/lib/python3.11/site-packages/ray/_private/auto_init_hook.py", line 21, in auto_init_wrapper
    return fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^
  File "venv/lib/python3.11/site-packages/ray/_private/client_mode_hook.py", line 103, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "venv/lib/python3.11/site-packages/ray/_private/worker.py", line 2753, in get
    values, debugger_breakpoint = worker.get_objects(object_refs, timeout=timeout)
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "venv/lib/python3.11/site-packages/ray/_private/worker.py", line 904, in get_objects
    raise value.as_instanceof_cause()
ray.exceptions.RayTaskError(DeferredCudaCallError): mray::RewardModelRayActor.init_model_from_pretrained()(repr=<openrlhf.trainer.ray.launcher.RewardModelRayActor object>)
  File "venv/lib/python3.11/site-packages/torch/cuda/random.py", line 126, in cb
    default_generator = torch.cuda.default_generators[i]
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^
IndexError: tuple index out of range

The above exception was the direct cause of the following exception:

ray::RewardModelRayActor.init_model_from_pretrained()[(repr=<openrlhf.trainer.ray.launcher.RewardModelRayActor object>)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "OpenRLHF/openrlhf/trainer/ray/launcher.py", line 110, in init_model_from_pretrained
    self._setup_distributed(strategy)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "OpenRLHF/openrlhf/trainer/ray/launcher.py", line 58, in _setup_distributed
    strategy.setup_distributed()
  File "OpenRLHF/openrlhf/utils/deepspeed.py", line 87, in setup_distributed
    torch.cuda.set_device(self.args.local_rank)
  File "venv/lib/python3.11/site-packages/torch/cuda/__init__.py", line 478, in set_device
    torch._C._cuda_setDevice(device)
  File "venv/lib/python3.11/site-packages/torch/cuda/__init__.py", line 338, in _lazy_init
    raise DeferredCudaCallError(msg) from e
torch.cuda.DeferredCudaCallError: CUDA call failed lazily at initialization with error: tuple index out of range

CUDA call was originally invoked at:

  File "OpenRLHF/openrlhf/trainer/ray/launcher.py", line 110, in init_model_from_pretrained
    self._setup_distributed(strategy)
  File "OpenRLHF/openrlhf/trainer/ray/launcher.py", line 58, in _setup_distributed
    strategy.setup_distributed()
  File "OpenRLHF/openrlhf/utils/deepspeed.py", line 81, in setup_distributed
    self.set_seed(self.seed)
  File "OpenRLHF/openrlhf/utils/deepspeed.py", line 78, in set_seed
    torch.cuda.manual_seed_all(seed)
  File "venv/lib/python3.11/site-packages/torch/cuda/random.py", line 129, in manual_seed_all
    _lazy_call(cb, seed_all=True)
  File "venv/lib/python3.11/site-packages/torch/cuda/__init__.py", line 256, in _lazy_call
    _lazy_seed_tracker.queue_seed_all(callable, traceback.format_stack())

@HollowMan6 https://github.com/OpenRLHF/OpenRLHF/pull/537

@HollowMan6 It is recommended to merge #537 into this MR And only modify the import modules related to DeepSpeed. Clean up unused modules for other import xxx, and place all Ray-related utility in the ray directory.

PR #537 actually can be a separate one, as now we no longer call ray_noset_visible_devices() in LLMRayActor, so something like https://github.com/OpenRLHF/OpenRLHF/pull/524#issuecomment-2497187705 should not happen again even if you only merge this PR.
In addition, It's still unknown what exact import in openrlhf.utils.deepspeed has the side effect to make this fail. I also tried import deepspeed directly there and it seems like it's not enough to cause this to fail. Also, it makes it challenging and too much overhead to guarantee if the import doesn't undirectly contain things related to deepspeed, e.g., you will never expect this to contain import of DeepspeedStrategy:
https://github.com/OpenRLHF/OpenRLHF/blob/83d381b77c9d53ed67272464d9acc885ceabe0b8/openrlhf/trainer/ray/__init__.py#L1
In fact, having init files empty is usually a sign of better design! Lots of problems are caused by code added to this file, which, in fact, should not be. As a rule of thumb, if any import is done, there is likely a source of problems. You will never expect what your next problem would be.

Finally, we should ensure high priority for NVIDIA GPU users, meaning they should not encounter any errors without modifying the code. That is NVIDIA GPU users should not use export RAY_EXPERIMENTAL_NOSET_CUDA_VISIBLE_DEVICES=1. Thanks!

Yes, there should be no problem, as I mentioned here, https://github.com/OpenRLHF/OpenRLHF/pull/524#issuecomment-2497329923, in any case, it will work just like before, when you don't set the RAY_EXPERIMENTAL_NOSET_CUDA_VISIBLE_DEVICES, as this is a non-intrusive modification. It's unfortunate that no one would expect from openrlhf.utils.deepspeed import DeepspeedStrategy can cause this to fail.
Regarding NVIDIA GPU users should not use export RAY_EXPERIMENTAL_NOSET_CUDA_VISIBLE_DEVICES=1, no methods can force users not to do that. If they do, the current upstream codebase is still broken, and this PR is the fix.

@HollowMan6
A question: why execute  noset_visible_devices = ray_noset_visible_devices(ray.get(get_all_env_variables.remote())) in create_vllm_engines can solve the NVIDIA GPU env issues?
I’m asking this to understand whether the current approach happens to work by chance, rather than being reliably correct.

@HollowMan6 A question: why only execute noset_visible_devices = ray_noset_visible_devices(ray.get(get_all_env_variables.remote())) in create_vllm_engines can solve the NVIDIA GPU env issues? I’m asking this to understand whether the current approach happens to work by chance, rather than being reliably correct.

@HollowMan6 It should be reliably correct, since create_vllm_engines is not scheduled in any ray actor (also not in LLMRayActor) (this can also be confirmed by https://github.com/OpenRLHF/OpenRLHF/pull/524#discussion_r1850330020). Something like https://github.com/OpenRLHF/OpenRLHF/pull/524#issuecomment-2501505023 will only happen when a CUDA call is scheduled in that ray process with CUDA_VISIBLE_DEVICES, and that CUDA_VISIBLE_DEVICES needs to be changed after that call.
https://github.com/OpenRLHF/OpenRLHF/blob/83d381b77c9d53ed67272464d9acc885ceabe0b8/openrlhf/cli/train_ppo_ray.py#L146-L154
But in any case, something like #537 should be the ultimate guarantee so that we can be sure no import deepspeed or any other CUDA calls contaminated the ray actor process when initializing

Another question, so why move ray_noset_visible_devices to driver worker can avoid torch.cuda.is_available() issue?

Actually, I have already kind of explained it previously:

It should be reliably correct, since create_vllm_engines is not scheduled in any ray actor (also not in LLMRayActor) (this can also be confirmed by https://github.com/OpenRLHF/OpenRLHF/pull/524#discussion_r1850330020). Something like https://github.com/OpenRLHF/OpenRLHF/pull/524#issuecomment-2501505023 will only happen when a CUDA call is scheduled in that ray actor process with CUDA_VISIBLE_DEVICES pre-set, and that CUDA_VISIBLE_DEVICES needs to be changed after that call.

To make it more clear, LLMRayActor will be in a separate process than the one in Ray driver/main process (create_vllm_engines) (Of course, a separate context for PyTorch), and vLLM will spawn additional ray actor process to run workers, except for vLLM driver worker, as it will directly use the LLMRayActor process, which case the error to happen because that specific process gets contaminated (torch.cuda.is_available() is called in that process before ray sets CUDA_VISIBLE_DEVICES).
Move ray_noset_visible_devices to driver worker can cause no issue, not only because RAY_EXPERIMENTAL_NOSET_CUDA_VISIBLE_DEVICES is automatically always set by ray on that process and ray won't modify CUDA_VISIBLE_DEVICES, but also because no GPU job will be run directly on the driver worker process.

for one specific worker that is at the same node of LLMRayActor process, vLLM will not use the actual ray reserved process, but rather update the CUDA_VISIBLE_DEVICES and directly start the driver worker in LLMRayActor process. This modification will work if any of the CUDA API hasn't been called, but unfortunately it doesn't because import deepspeed is executed.

Another question, so why move ray_noset_visible_devices to driver worker can avoid torch.cuda.is_available() issue?

Actually, I have already kind of explained it previously:

It should be reliably correct, since create_vllm_engines is not scheduled in any ray actor (also not in LLMRayActor) (this can also be confirmed by #524 (comment)). Something like #524 (comment) will only happen when a CUDA call is scheduled in that ray actor process with CUDA_VISIBLE_DEVICES pre-set, and that CUDA_VISIBLE_DEVICES needs to be changed after that call.

To make it more clear, LLMRayActor will be in a separate process than the one that is Ray driver/main process (create_vllm_engines) (Of course, a separate context for PyTorch), and vLLM will spawn additional ray actor process to run workers (for tensor_parallel_size > 1), except for vLLM driver worker (only when VLLM_USE_RAY_SPMD_WORKER is not set, as if it's set, there won't exist any driver worker), as it will directly use the LLMRayActor process, which case the error to happen because that specific process gets contaminated (torch.cuda.is_available() is called in that process before ray sets CUDA_VISIBLE_DEVICES).
Move ray_noset_visible_devices to driver worker can cause no issue, not only because RAY_EXPERIMENTAL_NOSET_CUDA_VISIBLE_DEVICES is automatically always set by ray on that process and ray won't modify CUDA_VISIBLE_DEVICES, but also because no GPU job will be run directly on the driver worker process.

for one specific worker that is at the same node of LLMRayActor process, vLLM will not use the actual ray reserved process, but rather update the CUDA_VISIBLE_DEVICES and directly start the driver worker in LLMRayActor process. This modification will work if any of the CUDA API hasn't been called, but unfortunately it doesn't because import deepspeed is executed.

could you add me wechat account/ or others through the email<EMAIL_ADDRESS>

New bug
I just set export RAY_EXPERIMENTAL_NOSET_CUDA_VISIBLE_DEVICES=1 with NVIDIA GPUS
(LLMRayActor pid=43469) ERROR 11-28 02:28:01 worker_base.py:466] Error executing method update_weight. This might cause deadlock in distributed execution.
(LLMRayActor pid=43469) ERROR 11-28 02:28:01 worker_base.py:466] Traceback (most recent call last):
(LLMRayActor pid=43469) ERROR 11-28 02:28:01 worker_base.py:466]   File "/home/jianh/.local/lib/python3.10/site-packages/vllm/worker/worker_base.py", line 458, in execute_method
(LLMRayActor pid=43469) ERROR 11-28 02:28:01 worker_base.py:466]     return executor(*args, **kwargs)
(LLMRayActor pid=43469) ERROR 11-28 02:28:01 worker_base.py:466]   File "/tmp/ray/session_2024-11-28_02-19-27_203397_30861/runtime_resources/working_dir_files/_ray_pkg_a9d533e9ca37c04b/openrlhf/trainer/ray/vllm_worker_wrap.py", line 39, in update_weight
(LLMRayActor pid=43469) ERROR 11-28 02:28:01 worker_base.py:466]     torch.distributed.broadcast(weight, 0, group=self._model_update_group)
(LLMRayActor pid=43469) ERROR 11-28 02:28:01 worker_base.py:466]   File "/home/jianh/.local/lib/python3.10/site-packages/torch/distributed/c10d_logger.py", line 83, in wrapper
(LLMRayActor pid=43469) ERROR 11-28 02:28:01 worker_base.py:466]     return func(*args, **kwargs)
(LLMRayActor pid=43469) ERROR 11-28 02:28:01 worker_base.py:466]   File "/home/jianh/.local/lib/python3.10/site-packages/torch/distributed/distributed_c10d.py", line 2421, in broadcast
(LLMRayActor pid=43469) ERROR 11-28 02:28:01 worker_base.py:466]     work = group.broadcast([tensor], opts)
(LLMRayActor pid=43469) ERROR 11-28 02:28:01 worker_base.py:466] torch.distributed.DistBackendError: NCCL error in: ../torch/csrc/distributed/c10d/NCCLUtils.hpp:317, unhandled cuda error (run with NCCL_DEBUG=INFO for details), NCCL version 2.21.5
(LLMRayActor pid=43469) ERROR 11-28 02:28:01 worker_base.py:466] ncclUnhandledCudaError: Call to CUDA function failed.
(LLMRayActor pid=43469) ERROR 11-28 02:28:01 worker_base.py:466] Last error:
(LLMRayActor pid=43469) ERROR 11-28 02:28:01 worker_base.py:466] Cuda failure 'invalid argument'


fix: banner highlighting issue

Description
I fixed the code highlighting issue by changing the banner docs page from tsx to mdx.

Related Issue
Fixes #253
Proposed Changes

banner/page.mdx -> banner/page.tsx

Checklist
Please check the boxes that apply:

[x] I have rebased my branch on top of the latest main branch.
[x] I have tested the changes locally
[x] I ran npm run build and build is successful
[x] I have added necessary documentation (if applicable)
[x] I have updated the credits.md file (if applicable)

Additional Context
Without #251, the banner still does not hide properly.

fixed in https://github.com/SyntaxUI/syntaxui/pull/254


[QUESTION] HTTPS within script

Is it possibile to make an HTTPS call to a different endpoint within the mitmproxy script?
Assumed I have like
def response(flow):
    if flow.request.pretty_host.endswith(my_host):
        res = flow.response
       if res.content:
          # http call?

it seems that the mitmproxy hangs when trying the HTTPS call within the script. I do no have to forward traffic etc., just calling a different endpoint, while keeping the flow as-it-is.

You can use requests or whatever you want, but keep in mind that this is blocking and will by default freeze your proxy in the meantime.


[CS] A couple of ExprPattern conjunction fixes

Make sure to walk patterns when collecting type variables for closure constraint
Make sure to walk ExprPattern conjunction elements the same way we walk other conjunction elements to allow e.g property wrapper projections to work correctly

rdar://110617471
rdar://110649179
Resolves #66561

@swift-ci please test

@swift-ci please test source compatibility

@swift-ci please test macOS


Use a temp file to create prometheus logs

From time to time, I receive bogus metrics.
For example, Prometheus reports data for a none-existing server named “sgn.sgn.1” in addition to the correct server “sgn.1”.
The node_exporter process also occasionally crashes on wrong data in the p4_cmds-*.prom file.
Many errors for this file are logged in te node_exporter logfile.
I think this is because sometimes, this p4_cmds-*.prom file is overwritten while the node_exporter process is still reading it.
The monitor_metrics.sh script handles this correctly in most places.
It defines the name of the prom file in variable fname.
Next, it defines: tmpfname="$fname.$$".
This tmpfname is used as the filename for the new data.
When it is complete, it is moved to the correct name with: mv "$tmpfname" "$fname"
Can something similar be done in the writeMetricsFile function in the p4prom.go file?

Fixed in v0.7.3 521a423


Update KIE versions (KIE 7.59, Kogito 1.11.1)

Do not merge yet!

It seems this is already delivered by #12 . Closing. If you think this is still valid please reopen.


Add badges in README.md

Codecov Report

Merging #105 (489f48a) into main (d08ef3f) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #105   +/-   ##
=======================================
  Coverage   89.53%   89.53%
=======================================
  Files           1        1
  Lines          86       86
=======================================
  Hits           77       77
  Misses          5        5
  Partials        4        4

Continue to review full report at Codecov.

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


Completely reindex weekly

packages like eslint-config-algolia-cdn are actually spam, and removed by npm a while ago, so we shouldn't list them either.
Maybe we should periodically make a second index, fill it from scratch, and then moveIndex to replace the main one?

Maybe it's also possible to check the unpublished flag on packages and avoid these, but then they're still not removed. We could send a deleteObject for those maybe?
registry

I'm not sure what the infrastructure is behind the scenes, but is it possible that if someone hits the "registry.yarnpkg.org" site and we get back a "deleted" response from NPM, we also remove that entry from the Algolia index?

Interesting idea, but I fear that might be making it too complicated. I think that by doing something in one of these lines:
https://github.com/algolia/npm-search/blob/8dd2cdac2e03cc0e4e9b6cc700cdd1519116a894/saveDocs.js#L8-L11
that calls algoliaIndex.deleteObjects for the ones that need to be deleted might work. To be sure how that works we’d need to see how the deleted objects are represented in db.allDocs as we request here
https://github.com/algolia/npm-search/blob/8dd2cdac2e03cc0e4e9b6cc700cdd1519116a894/index.js#L97-L98
Another option is to have a completely separate process, which periodically browses the complete index, queries the registry to see if it’s deleted, and then applies that deletion to our index.
If you want to help with this logic, please get in touch and we can raise limits to your Algolia index if the free plan would be used up by the testing

Just got an update from npm, deleted packages should still be in allDocs, so we should take that from there
https://github.com/npm/registry/issues/203#issuecomment-324959811


Fix the create_algorithm_script.sh

Closes #88. There was a problem with the script as reported by @yanjen which that objects with a similar name (e.g. cg vs cgs vs fcg) were wrongly differentiated sometimes. This PR fixes that problem.

Thanks for catching that. I have now fixed this.


Right angled triangle

Why:

Closes #760
What's being changed:

ran with replit and got this.

@victoriacheng15 can you pls retest now


Cloud Keys minor header issue

Version: Master 2.2 (2/20/19)
What kind of request is this (question/bug/enhancement/feature request):
Bug, Minor
Steps to reproduce (least amount of steps as possible):

Look at the Cloud Keys page. For some reason the "Cloud Keys" header is not centered it is up and to the left more than other pages such as the Clusters page, Catalogs Page, etc, etc.

Result:

@tfiduccia i can't tell if @lvuch put in a PR to fix this, but can you check if it's been fixed or not?

Version - master 4/8, UI version - v2.3.0
Verified fixed.  Changed name to Cloud Credentials and centered properly.


Multi-line Copy

Hello,
I recently used the directive in my own project and it was great but one problem was multi-line copying. I tried using line breaks and even carriage returns but they both eventually broke. I finally got around it by changing node.textContent to node.innerHTML within the createNode function. Then all I had to do was put line break tags in my txt and now it formats perfectly to new lines and the copying also keeps the formatting.
Just wondering if you'd like the update for multi-line copying.

Thanks for the heads up.
I've chosen textContent as a matter of best practice to avoid an XSS attack vector, but I can see the advantage for enabling coping of HTML as well.
I will consider whether to change it completely to innerHTML or maybe make it optional through a property.

This has now been added with PR #5


Add udf for non-locale aware number formatting.

Thanks for this - can you also add an update to the Readme that explains how to use the function?

Thanks for accepting this, the Readme is updated.


Refactor tests to use new makeChoices API

See https://github.com/Zarel/Pokemon-Showdown/commit/8473c3f4fa3c78785fb51535857d1139bd7687fd for the example followed in the refactor

Thanks! This is a huge help!


Feat/add dashboard auth

This PR has the following changes:

Add auth system back for deploy repo
Make the dashboard pages editable by creating a mount

Test in progress

Still ongoing:
cc: https://github.com/hummingbot/dashboard/pull/157#issuecomment-2220352548

Page refresh will lead to user Logged out

After you added connector you need to refresh the page to reflect the changes, however it will lead to user logged out

Minor

Actual: Logout button available only for Humingbot Dashboard tab on side pane (if you are on other tab you could not log out)

PR update:

Ran tests using docker-compose-dev.yml
By default, auth is set to false and can be viewed when clicking the title pages ✅

What happens if you logout?

When auth is false (default):

Successfully logout even closing the browser and opened it still ask us to login again
Cleared cache, still require to login
Logged in again ok

Dashboard would ask to login again when:

Refresh browser
Clear cached

Relaunch docker compose again but still it prompt for user login, see recording https://www.loom.com/share/d32742ccd8fd4de4983b4a7bf935be67
Q: Should dashboard not prompt for login when AUTH_SYSTEM_ENABLED is false?

PR update:

Pull latest development update for both backendapi and dashboard
Build docker image locally and use on deploy -> docker-compose-dev.yml file
Run docker compose successfully:

AUTH_SYSTEM_CONFIG are on default setup which is false
AUTH_SYSTEM_CONFIG is false on docker-compose as well
However its still prompting me with login screen, see recording here https://www.loom.com/share/fff3ea1b9dd34689b474212cb7ee2ee2


typo, use of the/an in "changing-the-an-elements-margins"

there is a typo in the heading "changing-the-an-elements-margins". either the or an should be used.

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

ID: 3bfd1636-a149-bcf7-823f-d2ecf0a0120f
Version Independent ID: c65af203-fb57-0609-7f12-902bfb497fdd
Content: Working with elements in XAML Designer - Visual Studio
Content Source: docs/designers/working-with-elements-in-xaml-designer.md
Service: visual-studio-dev15
GitHub Login: @gewarren
Microsoft Alias: gewarren

@yilmazdurmaz Thanks; I'll fix this in our next sprint.

I did a correction as suggested on GitHub, and correction is now merged. Thanks


Test: Provide a separate 'Insert snippet' command that allows the user to pick a snippet

Test for #9072, #9122, #6320, #9286:

[x] Windows - @DonJayamanne
[ ] OS X - @waderyan
[ ] Linux - @kieferrm

There is a new command to insert snippets. Verify that

there is a Show Snippets command in F1, and that
it does what you expect

I'm not seeing a Show Snippets command.

@waderyan, @Tyriar, that's odd I just tested this on my OSX and it works! Thought I'd mention that.
@Tyriar, yes I have tested this on windows and it works as expected (thought I'd test on OSX as well, as that's my primary OS)

@DonJayamanne are you on the same commit as Wade's in the screenshot?

@Tyriar, identital

Works for me on both OS X and Windows.

Suggest to make labels matching Snippets (Show Snippets, Preferences: Snippets) more distinct, e.g.,:
Insert Snippet, Preferences: Edit Snippets

Ok I see it now. Weird it didn't show yesterday.

@jrieken maybe this was discussed when I was on vacation but is there a reason we cannot show the list of snippets in the intellisense widget? I find it better to show the snippets closer to where I am typing.

Yeah, it's mostly to be aligned with other editors and to avoid ambiguity between snippets and the current line text wrt to filtering, selection etc. Last there technical debt that didn't allow it ;-) We figured ship it and wait for feedback ;-)

Ok. because I think it would be cool if I could assign a keybinding like
{ "key": "ctrl+space", "command": "editor.action.showSnippets", "when": "editorTextFocus && suggestWidgetVisible" }
And then essentially I could show snippets only by pressing Ctrl+Space twice (similar to Eclipse).


Add OpenBSD topic

Thank you for contributing! Please confirm this pull request meets the following requirements:

[x] I followed the contributing guidelines: https://github.com/github/explore/blob/master/CONTRIBUTING.md
[x] I have no affiliation with the project I am suggesting (as a maintainer, creator, contractor, or employee).

Which change are you proposing?

[ ] Suggesting edits to an existing topic or collection
[x] Curating a new topic or collection
[ ] Something that does not neatly fit into the binary options above

Curating a new topic or collection

[x] I've formatted my changes as a new folder directory, named for the topic or collection as it appears in the URL on GitHub (e.g. https://github.com/topics/[NAME] or https://github.com/collections/[NAME])
[x] My folder contains a *.png image (if applicable) and index.md
[x] All required fields in my index.md conform to the Style Guide and API docs: https://github.com/github/explore/tree/master/docs

OpenBSD is a popular operating system and there are many repositories related to OpenBSD are available on GitHub. It would be nice to have a topic with description and logo for that operating system.

@deniseyu, could you review?

I could but I don't have write access to the repo. So nothing will change but here you go

Thanks so much for your first contribution!  You rock, @ligurio!


To create multiple files

Hi,
It will be great if NerdTree can create multiple files at once.
Something like this.
m (to show menu)
(g)enerate multiple files
/Users/myname/dirname/file1.php file2.php file3.php file4.php

Is is possible?

I believe you're better off using your shell for something like this. Brace expansion in bash is perfect for this kind of thing.
# Create files "file1.txt", "file2.txt", ... "file100.txt"
touch file{1..100}.txt

Since the feature already exists in external tools, I see little point in adding it here other than flair. This is a very low priority feature request. I vote that it be rejected.

Is this still not possible today?

That's right. This is still something that should be done in the shell. NERDTree is already too bloated to be adding unnecessary functionality.