Clear plan and standardization for driver/backend naming

The current driver and backend names are used inconsistently throughout the codebase.
Currently, we have three iree compiler backends (vmla, llvm-ir, and vulkan-spirv) and three iree runtime drivers (vmla, llvm, and vulkan). While right now there is a 1:1 correspondence between target backends and drivers, their could in principle be a many-to-many mapping (e.g. two ways to get something to run on vulkan, or two ways to jit llvm IR). This distinction and the naming scheme is used inconsistently throughout the codebase. The check test rules use the naming in its full generality, which creates verbose test target names, the python e2e tests clump them together, but also use slightly different names (e.g. "llvmjit" as the backend name). These names are also used by the CI to filter based on runtime drivers that aren't available in certain environments (e.g. we can't run vulkan in OSS CI yet). We should figure out a way to do this that doesn't back us into a corner for the many-to-many case and still allows reasonable filtering and breakdown of tests.

I was saying we could put all targets for the same driver into the same target if you're worried about too many test targets. Having a separate test target per compilation backend, as we do for the check tests now, is fine with me. There is a need to know what driver a test is going to be using in order to be able to filter tests by required runtime capabilities. We can do that based on knowing what each compilation target will ultimately use as a driver

The runtime target is implicit based on your build configuration

This is different from what you said when I initially set things up. Is it not the case that we could have multiple drivers that could run the same compilation output? Then this is a many-to-one mapping and that makes things much easier.

if all targets are compiled together you lose that. That's what has caused so much mess with the current setup: you have to duplicate entire test suites just to exclude a single test and it's easy to loose tests from various configurations.

I don't understand what you're saying here. Each target is compiled separately and run separately in the check test suites. We can definitely clean up the macro API, but it's not compiling targets all together.

For a particular output format there's only a single HAL driver that can handle them. A HAL driver can handle multiple output formats, though, such as a TPU backend that may use different binary blobs for different hardware revisions.

The thing I really want is different hal drivers are different test targets.
The test targets should be the compilation options, and the HAL drivers should be selected implicitly, such that there's one test target per compilation mode (vulkan-spirv, llvm-aot-arm64, etc) an each depends on a binary containing only the driver required.

I think I was remembering things prior to what it currently is with the check tests.

For a particular output format there's only a single HAL driver that can handle them. A HAL driver can handle multiple output formats, though, such as a TPU backend that may use different binary blobs for different hardware revisions.

Excellent. That makes things much easier :-) I thought previously you mentioned an example like vulkan 1.1 vs vulkan 1.2? Wouldn't that be different drivers that could handle output from the same compilation backend?

Those would be the same driver code but it may expose multiple device types (both would live under iree/hal/vulkan/ and be linked in with the same library). So they could use the same binary, but may require different flags... hmm... though that's only really a useful contortion for testing and maybe we can avoid it. For example, by default the vulkan driver will try to create the highest version supported by the current platform and if there's a compiled executable that can't be loaded on that version (1.2 on 1.1) it'll just fail. But really that means we should not have tried that test in the first place (the 'vulkan-1.1-spirv-1.3-android-r29-etc' compilation target should execute in an environment where only vulkan 1.1 is available, so it'll never be running with vulkan 1.2, and thus there's no need to be able to specify). Same with TPU devices; the compilation target will define which device is supported and the test environment selected shouldn't expose other devices besides that one.

Those would be the same driver code but it may expose multiple device types

Ah thanks for clarifying the distinction.

the 'vulkan-1.1-spirv-1.3-android-r29-etc' compilation target should execute in an environment where only vulkan 1.1 is available, so it'll never be running with vulkan 1.2, and thus there's no need to be able to specify

How do we ensure the environment doesn't have vulkan 1.2 without specifying? :-D
Maybe this is what you're already saying, but what about having the module report what it should be run on (which is configured based on its compilation options). It can indicate this with varying levels of specificity. Like it could say "run me on vulkan" and the driver will create the highest vulkan version supported by the current platform. This is what we'd do in normal cases. For testing, we'd have it say "run me on vulkan 1.1" and the driver would always use that. Does that seem reasonable? Then everything is controlled by compilation options.
The test suites then become "run this test on all these different compilation options" and we extract the relevant runtime requirements from that, which we use to filter tests.

That's pretty much what I'm suggesting, only we want to do that entirely at build time instead of at runtime -- we don't want to specify the support within the built module output as then query it as we explicitly want modules to be forward compatible (something compiled for vulkan 1.1 can run on vulkan 1.2, and it could run on a future vulkan 1.3, etc).
Having a declarative target configuration that allowed us to specify precisely what we wanted for compilation options and runtime environments would let us separate the test suite definition from the rest of the data and get better reuse.
Brainstorming:
module_test_suite(
  srcs = ["foo.mlir", "bar.mlir"],
  targets = [
    ":llvm-aot-arm64",
    ":vulkan-1.1-generic",
    ":vulkan-1.1-mali",
    ":metal-2-generic",
  ],
)

# ties the compiler and runtime together as a single named config; really just an alias to allow us to update these independently as we add more runtime configurations
target_config(
  # could be "android-pixel4" or something more specific
  name = "llvm-aot-arm64",
  # shared compiler settings - could also make this a list
  compiler = ":llvm-aot-arm64",
  # this being a list lets us easily add new runtime configurations without needing to modify all tests
  runtimes = [":android-r29-arm64-dylib", ":ios-v13-arm64-dylib"],
)

target_config(
  name = "metal-2-generic",
  # would share compiler with ios/macos/etc
  compiler = ":metal-2-generic",
  # ... but different runtimes for each type
  runtimes = [":ios-v13-arm64-metal-2", ":macos-v10.13-x64-metal-2"],
)

# shared for all llvm-aot targets going to arm64
compiler_config(
  name = "llvm-aot-arm64",
  flags = [
    "-iree-hal-target-backends=llvm-aot",
    "-output-format dylib",
    "-march=arm64 ...",  # target-specific flags for output
  ],
)

runtime_config(
  name = "android-r29-arm64-dylib",
  deps = ["...:dylib_driver_module"],  # linked in hal driver module
  defines = [
    "-DANDROID_NDK=17", # may have compiler flags that are required
    "-DIREE_VM_VERBOSE_LOGGING",
  ],
  flags = [
    "--iree-status-capture-stack-traces",  # flags passed during test execution
    "--iree-dylib-search-paths=/data/...",
  ],
  # only supported on linux hosts where we can run the emulator, etc
  # would be darwin for ios targets, windows for win32/d3d12, etc
  host_os = "linux",
  # could have emulator flags and other things here in a nice central place
)

This would create these test targets:
foo_llvm-aot-arm64_android-r29-arm64-dylib
foo_vulkan-1.1-generic_android-r29-arm64-vulkan
foo_vulkan-1.1-mali_android-r29-arm64-vulkan
foo_llvm-aot-arm64_ios-v13-arm64-dylib
foo_metal-2-generic_ios_v13-arm64-metal-2
foo_metal-2-generic_macos_v13-arm64-metal-2
bar_llvm-aot-arm64_android-r29-arm64-dylib
bar_vulkan-1.1-generic_android-r29-arm64-vulkan
bar_vulkan-1.1-mali_android-r29-arm64-vulkan
bar_llvm-aot-arm64_ios-v13-arm64-dylib
bar_metal-2-generic_ios_v13-arm64-metal-2
bar_metal-2-generic_macos_v13-arm64-metal-2

The runtime builds required would be only those unique runtime_configs:
iree-check-test_android-r29-arm64-dylib
iree-check-test_android-r29-arm64-vulkan
iree-check-test_ios-v13-arm64-dylib
iree-check-test_ios-v13-arm64-metal-2
iree-check-test_macos-v13-arm64-dylib
iree-check-test_macos-v13-arm64-metal-2

The constructed test targets would have their filter tags set such that you could include/exclude based on the compiler ("I'm just testing vulkan changes, no need to test anything else"), platform ("I'm on linux and only care about android, so don't try to build macos binaries and compile for metal"), or device ("I'm specifically optimizing for the pixel 4, so only compile and run that single configuration").
Adding a new device is easy and just requires adding it to the right place in the matrix and its tags will be consistent with all existing tags such that adding new devices won't break existing workflows. The runtime configs have enough info to be able to filter at a build-generator level when needed (so we can in bazel and cmake detect the host platform and completely disable targets that can't be built/run), etc. It also lets us come up with one-off configurations that are useful for particular benchmarks/tests/etc and opt specific tests into them without (in many cases) producing more build artifacts.

Geoffrey and I were talking about removing the discrepancy between the python and C++ driver names for LLVM: iree_llvmjit and llvm respectively. Since we recently added dylib-llvm-aot, we are thinking that it might make sense to rename the python one to iree_llvm_jit and the driver to llvm-jit. Then they would be consistent with each other and clearly distinct from dylib-llvm-aot.

@phoenix-meadowlark I think you should just go ahead and do your rename as proposed

This will be done as part of #3817 / #3937 and related work.


[Question]: Execution failed for task ':package_info_plus:compileDebugJavaWithJavac'.

What is your question?
Am getting this error after upgrading to the latest version:
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':package_info_plus:compileDebugJavaWithJavac'.

error: invalid source release: 17

How do I go around this?
Checklist before submitting a question

[X] I searched issues in this repository and couldn't find such bug/problem
[X] I Google'd a solution and I couldn't find it
[X] I searched on StackOverflow for a solution and I couldn't find it
[X] I read the README.md file of the plugin
[X] I am using the latest version of the plugin
[X] All dependencies are up to date with flutter pub upgrade
[X] I did a flutter clean
[X] I tried running the example project

Same error here 😭

Same here

Same.
But it's Execution failed for task ':sensors_plus:compileReleaseJavaWithJavac'. instead of package_info_plus in my case.

~Same here~ Using java 17 solve it.

    compileOptions {
        coreLibraryDesugaringEnabled true
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }

    kotlinOptions {
        jvmTarget = '17'
    }

@theolm
Did it work with these settings?

~Same here~ Using java 17 solve it.

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }

    kotlinOptions {
        jvmTarget = '17'
    }

@theolm Did it work with these settings?

Didn't work for me :(

⬇

Why claim something if you didn't do it in reality? Lying to other people doesn't really encourage to help you.
Plugin requires Java 17 as it is mentioned in the changelogs and since recently also in README.
you need to check that your IDE uses Java 17 for Android builds as it is suggested in the Stack Overflow post that is literally the first link in the Google search.
https://stackoverflow.com/a/70215091/7339798

@mbfakourii I had to change my environment to use Java 17. I didn't touch the build Gradle.
 I didn't touch the build Gradle.
I also had to change my CI to use Java 17.

 I didn't touch the build Gradle.
I also had to change my CI to use Java 17.

How did you change the CI?


Perturbation space implementation

Step 1 of the mixscape vignette.

Remember that I renamed the dataset to papalexi_2021

@Koncopd I'll fix this PR up and merge it afterwards, OK?

Hm, i planned to finish this tomorrow before pertpy meeting.

Oh, that's also fine. Didn't want to steal your work :)
Feel free to do it!

Please note that the notebook should be here: https://github.com/theislab/pertpy-tutorials/

Adapt the dataset name in the notebook
Add your code do the mixscape.ipynb as you had it
Merge the notebook into pertpy-tutorials
Pull the notebook in the submodule (docs/tutorials/notebooks) here

OK?

Yep.


Vanced MicroG/Vanced Account Swapping

So, when I go to switch to a different account through the Vanced app or with MicroG I encounter an issue where it won't display my other connected accounts on Vanced. And the last few times MicroG won't display the Google Sign-in screen/page.

I'm also not able to update YT Music and MicroG is not able to add account. In Youtube Vanced, the account added is not shown in manage account. Also there's delay in opening and accessing youtube, sometimes I get an error: no network connection RETRY.

MicroG is also doing this with my account. The screenshot is when I try to login through microG

I am having the same problem. Assuming it has something do with me having the YouTube vanced and YouTube music vanced both downloaded but obviously only microG once.. idk. Might only let you be logged into your YouTube account on one or the other. Not both at the same time. :(

Yeah same problem here

I'm having the exact same issue. At first I couldn't switch between my youtube accounts so I tried to remove them for vancedMicroG and now I can't add any account. It says that the account already exist even though it's not there. Reseting vancedMicroG and adding the account again doesn't seem to fix it even though it lets you add it.
I'm on Vanced MicroG v<IP_ADDRESS>713 non Root on a One plus 6

This is an upstream issue, go bug them.
https://github.com/microg/GmsCore/issues/1373

In Youtube Vanced, the account added is not shown in manage account.

I was about to open an issue for this since my second account has been correctly added to Vanced MicroG according to the android settings app, but both Youtube Vanced and Youtube Music Vanced don't list it.
Poco X3 NFC(surya) here with root-less Android 10 QKQ1.200512.002 with the 2020-11-01 Android security patch, MIUI Global 12.0.7 Stable; Vanced Manager 2.5.0, YTV 16.02.35 and YTV Music 4.11.50 and Vanced MicroG <IP_ADDRESS>713.

In Youtube Vanced, the account added is not shown in manage account.

I was about to open an issue for this since my second account has been correctly added to Vanced MicroG according to the android settings app, but both Youtube Vanced and Youtube Music Vanced don't list it.
Poco X3 NFC(surya) here with root-less Android 10 QKQ1.200512.002 with the 2020-11-01 Android security patch, MIUI Global 12.0.7 Stable; Vanced Manager 2.5.0, YTV 16.02.35 and YTV Music 4.11.50 and Vanced MicroG <IP_ADDRESS>713.

Again, this is an upstream issue, the only work around is to downgrade to Vanced V15.40.37 & Music V4.04.52.


Collectionator Bugs?

Please include as much of the following information as possible to help me fix the bug:
Installed yesterday. Love it and only today I noticed I wasn't unable to click some in game dialogs when trying to talk with a NPC. The Dialog window opened as normal but could not click in anything, Respond, next, etc. Not even the X to close the window. Only ESC worked.
Same happened with my Macro Toolkit Addon. Was not able to drag the Macros into my Bar or click a macro to change it.
Another issue was that my first 3 keybinds (1, 2, 3) strangely changed out of nowhere to combinations such as Alt+Q and can't remember the others but was only the first 3 for sure and change specs was freezing my game for a few secs (about 30-60 secs)
While I don't understand why Collectionator has anything to do with this the true is that I checked everything that was installed/update yesterday and tried to enable/disabled those addons one by one to try find the culprit.
As soon I disabled Collectionator everything went back to normal.
Don't get me wrong. This isn't a complain since I love Auctionator and Collectionator. Just trying to help. And by the way, the only AH addons I have is Auctionator and Collectionator (until mins ago).
Versions I'm using are:
Auctionator: Alpha 347
Collectionator: Alpha 4
Unfortunately the list of Addons I use is very extensive (~490) so unless is there a way to export that list (only the enabled ones) it's going to be a pain to list them all here :-(

Are you able to test alpha 13. I've made quite a few changes in the interim that might have helped?

Will test and let you know. Just need to backup everything since it was a mess to fix my keybinds and macros again :-)

If you can, can you take screenshots of you testing if it breaks - it'll help me figure out what breaking.

will do

Same issue with the windows in version Alpha 13. I don't know if the follow screenshot will help but here it goes.
Can't click on anything. Not even the X to close the window

Can click on the X (it get red when I mouse over)

Download the new fixed version https://github.com/Auctionator/Collectionator/releases/tag/15-alpha


Reports tab doesn't show up in Safari or shows jumbled reports info

Defective ToolKit Feature Name:
Reports
Expected Behavior
Reports tab should be visible in left sidebar under Budget and Accounts. Should be able to select and view different reports.
Actual Behavior
After installing the Toolkit Safari extension either from the Extensions Gallery or the most recent 0.7.3, I can't seem to get Reports to reliably show up. Sometimes it is there, and sometimes it is not. When it is there, the time filter slider bar appears to get stuck, staying visible, and the top panel of the Reports page collapses up and disappears. I am left with a pie chart of expenses but no ability to select different reports.
I have tried clearing browser cache, signing out, reinstalling toolkit, and same behavior happens.
Steps to Reproduce the Behavior

I install the Toolkit extension via Extensions Gallery or latest release, make sure it is enabled in Safari, and then log in to app.youneedabudget.com.

Export of Toolkit Settings (Bottom Left of Settings Page)
Aside from Budget Settings, I'm not really sure where this is.
[paste settings here]

System Settings
ToolKit Version: 0.7.3
Operating System (Mac/Windows/Etc): Mac
Browser (Chrome/Firefox/Safari): Safari
Browser Version: Version 9.1.2 (11601.7.7)
Other Extensions: 1Password

Thank you for the report. It looks to me like this is a duplicate of #532, so I'll go ahead and close this one so we can track there. Please let me know if I'm wrong!


Add tests for Managed HSM

To record and run live tests for AES, backup/restore, and RBAC, we need to run our Keys tests on Managed HSM. We can create the necessary keys in the test-resources-pre.ps1 script but will need to pass data back to the main script. The ARM template can allocate both Microsoft.KeyVault/vaults and Microsoft.KeyVault/managedHSMs but will need the keys from the pre-script.
Tests to run on Managed HSM:

[ ] All tests for Azure.Security.KeyVault.Administration
[ ] CryptographyClient tests
[ ] AesCryptographyProvider tests

/cc @christothes

If we're planning to script the provisioning of the resources, then we'll also need to download the security domain  prior to adding the keys.
https://docs.microsoft.com/en-us/azure/key-vault/managed-hsm/quick-create-cli#activate-your-managed-hsm


fix error import

This error import is caused by module name change. Here is details: #10
After fixed it, I can run release.sh to build.
Signed-off-by: chaozbj<EMAIL_ADDRESS>

Sorry, we actually have a PR to address this problem. I will close it.


uskill localization

universal skills are not localized yet.

Hi, i'm interrested to help on this project but i'm not a very good JS programmer. However i can help on json files related issues
About this issue, it needs to insert skills description from the free edition into the skill pack items ?

Hey there! I'm not sure if I have permission for descriptions, so I'd rather not go there yet. This issue is actually about translation.
I'm trying to use a language file for text (lang/en.json) rather than put raw English text everywhere. This is in case I ever have the means/need to translate the system into another language. The universal skills pack is using raw text, though. There's already a HM.uskills member which contains keys/values and I'm simply not using that when I build characters in modules/actor.js (at the bottom).
I think the easiest way would be for the universal-skills.db skill names to reference the file (Name them 'HM.uskill.gleaninfo' instead of 'Glean Information', for example), and then in createActor, you translate each name with game.i18n.localize, and update all embedded documents so your changes stick.
Hackmaster only comes published in English afaik, but it's common (and good) practice to localize and I'd rather be ready for an unexpected book translation than not. That, and this is a good exercise.

got it. I'll look into it. I've already done a translation into french of the current en.json also. Do you want to include translations into the master project or prefer to have a module for each langage, using the babele module for example ?

Sure. If you wanted to add a fr.json, that would be pretty cool! Happy hunting!


V2 live share

All the work so far, based on @mikesimos V2 branch; trimmed and brought into line with the lower tiers of the Katapult V2 design.

@richbayliss shall we close this now? This was merged in #35

@richbayliss closing this (already merged)


Add support for setting allow_multimds/max_mds

This would involve running these commands against the MDS after startup:
ceph fs set allow_multimds true --yes-i-really-mean-it
ceph fs set max_mds <n>

I think the tricky aspect of this is that it needs to happen after mds setup but requires the use of ceph admin keys (on the mons?). I'd be happy to implement this but I'm unsure how to do that.
Copied from: http://tracker.ceph.com/issues/17303

Put this on the mons please. Probably here: roles/ceph-mon/tasks/create_mds_filesystems.yml.


PotreeConverter.exe: slow output

I'm starting to test PotreeConverter and I find it takes too long to execute when invalid input is provided. I mean, as I don't know all the available flags, my first option is to type just "PotreeConverter.exe" with no flags at all. Well, it takes 15 seconds to get the output message telling that you need to use -h to get help. When I do it, it takes another 15 seconds to provide the output.
Is this "normal"? I'm using precompiled binary from release 2.1.1.

I don't understand what happened, but today I made a new test and I get the output instantaneously, no delay at all. So, the problem is my OS not in PotreeConverter.
Sorry for bothering.


Unset the __mssql_sqlcmd_input_file variable

This is required because in the case when a task that precedes the
inputtask fails, the print task prints a previous result

[citest pending]


Fix xpath for logout button

Fix xpath for logout button in the resource file.

Code checked in - https://gerrit.openbmc-project.xyz/#/c/11169/


Issue when using workload

When node in lower cluster is not ready, pod would not be recreate by upper cluster workload

https://github.com/virtual-kubelet/virtual-kubelet/pull/874

https://github.com/virtual-kubelet/virtual-kubelet/pull/874
https://github.com/virtual-kubelet/tensile-kube/pull/44


Develop front-end

This includes the user interface & the code to interact with the backend (#3)

Initial version is live and continues to be developed over in epiverse-search-frontend](https://github.com/epiverse-connect/epiverse-search-frontend).
Would we consider this item resolved, even if the development of the frontend will continue?


Initial implementation

That's about the initial implementation. The rest can be in smaller separate PRs I think.


Setting RPC url in config menu doesnt seem to do anything

In dev env, I set the url to
https://services.jade.builders/
and nothing happens.

can you take a gif on how to reproduce?
not seeing that locally:


Cannot get the image without using [TGCamera setOption:kTGCameraOptionSaveImageToAlbum value:[NSNumber numberWithBool:YES]];

I created a demo project here (https://github.com/confile/TGCameraViewControllerTest) to show this problem. Only if I set:
[TGCamera setOption:kTGCameraOptionSaveImageToAlbum value:[NSNumber numberWithBool:YES]];

in my init method I get the images correctly returned from the TGCameraViewController. Without setting the above line there will be no image returned.
I hope that my sample project helps. You just have to look at BCamera.m. I modified the TGCameraViewController.m and marked the modified parts. The modification is just to skip the screen with the filters after the image has been captured.
Do you have any idea how I get the image captured or retrieved from the album without using the above line?

@Bruno-Furtado Do you have any idea on this issue?

@confile,
I conducted two tests.

I took a picture with the camera (http://goo.gl/78dHS8)
Selected a photo from album (http://goo.gl/t4Wg0u)

I'm sending you the two prints
In both you can get the picture.
Sorry but I don't understand your question.

@Bruno-Furtado You are right I get the Image, i.e. the UIImage on iOS but it is not correctly transferred to the html index page and it is not displayed there.
As you can see in the last line of both of your outputs the image URI is some strange url starting with:
asset.JPG?id=....

This only happens if I don't do
[TGCamera setOption:kTGCameraOptionSaveImageToAlbum value:[NSNumber numberWithBool:YES]];

in my init.
Do you get my point?

Do you want to display the image in HTML?

Yes I want to display the image in HTML. you can see that it works perfect if you enable
[TGCamera setOption:kTGCameraOptionSaveImageToAlbum value:[NSNumber numberWithBool:YES]];

in BCamera.m init.

@confile,
Some threads in your code are causing problems.
I managed to make the image is displayed by adding a timer, see if this can help:

-[BCamera cameraDidSavePhotoAtPath:]
- (void)cameraDidSavePhotoAtPath:(NSURL *)assetURL
{
    // When this method is implemented, an image will be saved on the user's device
    NSLog(@"%s cameraDidSavePhotoAtPath album path: %@", __PRETTY_FUNCTION__, assetURL);

    NSString *imagePath = [assetURL absoluteString];
   // _imagePath = [assetURL absoluteString];

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        [NSThread sleepForTimeInterval:1.0f];

        dispatch_async(dispatch_get_main_queue(), ^{
            CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:imagePath];
            [self.commandDelegate sendPluginResult:pluginResult callbackId: self.latestCommand.callbackId];
        });
    });
}

@Bruno-Furtado Your code works fine thank you. There is one last problem. If you choose to load an image from album in the camera view it gets saved again. How can I prevent the photo from being resaved when I choose an album photo?

@confile,
This is the problem I told you about.
Unfortunately I have not found a solution.
I believe there is no need to save an image that is already on the album.

@Bruno-Furtado Yes there is no need to save an image that is already on the album. So how do I prevent the app from doing this?
Thank you for your help.

@confile,
Just don't implement the cameraDidSavePhotoAtPath: method.
Ok?

@Bruno-Furtado I delete cameraDidSavePhotoAtPathin BCamera.m but still when I choose an image from album it saves this image again. How can I avoid this? Sorry for my many questions.

well I solved it thank you.


Extensions for getting successfully inserted SimContacts

Problem
There is currently no way to get a reference to the SimContact that is successfully  inserted via the SimContactsInsert API. This means that users would have to query the SimContacts table themselves.
It would look something like;
val newSimContact = NewSimContact(name = "Dude", number = "5555555555")
val insertResult = Contacts(context)
    .sim()
    .insert()
    .simContact(newSimContact)
    .commit()

val existingSimContact = Contacts(context)
    .sim()
    .query()
    .find()
    // Keep in mind that the IccProvider does not support selection so finding it has to be done after the query
    .find { it.name == newSimContact.name && it.number == newSimContact.number }
    .first()

Contacts(context)
    .sim()
    .update(existingSimContact, existingSimContact.mutableCopy {...})
    .commit()

This is a lot of code for users to be writing...
Solution
Just like the other insert APIs, provide extensions to conveniently get a reference to the newly inserted SimContact.
It would look something like;
val newSimContact = NewSimContact(name = "Dude", number = "5555555555")
val insertResult = Contacts(context)
    .sim()
    .insert()
    .simContact(newSimContact)
    .commit()

val existingSimContact = insertResult.simContact(Contacts(context), newSimContact)

Contacts(context)
    .sim()
    .update(existingSimContact, existingSimContact.mutableCopy {...})
    .commit()

This is included in 0.2.4!


DevOps Pipelines Automation  with Cloud Build and Triggers

Introduction
DevOps is a set of practices or stages that every application will go through before and after production deployment in the industry.  There are varieties of tools that can be used to automate these practices. All six stages of DevOps will be defined in this tutorial.
Cloud Build makes these stages very simple by using the infrastructure of the provider.
Key Takeaways
In this tutorial, we will be learning how to automate DevOps pipelines using the cloud build. The following shall be points of discussion;

Defining the stages of DevOps pipelines
Building Python Application
Testing the application in the Cloud Shell
Creating Docker images with Docker Build
Managing Images with Cloud Build and Container Registry
Automate Build with Triggers
Test Build Changes

Article Goal
This tutorial targets the problem behind how to use cloud build to automate DevOps pipelines. This will clear the doubt of beginners or junior engineers at all levels on DevOps with the Cloud.

good topic @damikanye  - approved. Thanks for submitting your article and we look forward to reviewing and hopefully publishing it. I’m sure our readers will enjoy and find your article very beneficial.


Problem: Outdated dependencies

Solution: Upgrade dependencies to latest versions

I usually prefer to have looser version strings ("1", "0.9"...) to keep it more flexible and have the fixed versions in Cargo.lock, but full versions are fine too as long as it's consistent

I also prefer the same way. But cargo upgrade automatically puts full versions.


TimerManager: Periodically check for thread exits

I identified a subtle bug in some other work, but have not figured out how to poke it reliably outside that work (The std::shared_ptr<EventEngine> GetDefaultEventEngine change, which should not affect TimerManager behavior).
Some thread ordering is resulting in a hang on TimerManager shutdown, since timer threads are exiting and the cv.Wait on TimerManager destruction is not being woken up.
I believe this invalidates a claimed guarantee about timer checks under contention, so we might want to reword that comment. There may also be a different fix that ensures proper ordering and cv signaling under all circumstances, but this PR works around it without much extra overhead.

This solution only hid a problem of circular dependencies. Even in successful runs, the timeout-wait would loop indefinitely, but TSAN did not catch the leaked thread in that situation.


[Cloud TPU] Intermittent freezes requiring reset of the TPU

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 18.04
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: N/A
TensorFlow installed from (source or binary): Source
TensorFlow version (use command below): r1.11
Python version: N/A
Bazel version (if compiling from source): 0.16.1
GCC/Compiler version (if compiling from source): 7.2.0
CUDA/cuDNN version: N/A
GPU model and memory: N/A
Exact command to reproduce: N/A

Describe the problem
We are seeing intermittent freezes of the Cloud TPU when running VGG19 inference from the Julia frontend via xrt (do note that we're also seeing incorrect answers, which is filed as #22709 and may or may not be related). If the Cloud TPU freezes, the TF_SessionRun call never returns. An aggravating, but non-essential factor is the concurrent execution of the TPU profiler via capture_tpu_profile. In that situation both the main program and the capture_tpu_profile invocation never exit. If the profiler is running, we usually see only 2-3 successful runs until things start hanging. If I manually disconnect and forcefully kill the session (by severing the socket) and then reconnect, I see either continued freezes or errors of the form
ERROR: Tensorflow error: Status: Unable to enqueue when not opened, queue: [0000:00:04.0 PE0 C0 MC0 TN0 Queue HBM_WRITE]. State is: CLOSED
	 [[{{node XRTAllocate}} = XRTAllocate[_device="/job:tpu_worker/replica:0/task:0/device:TPU:0"](XRTAllocate/Const_G1)]]

my standard protocol to recover from this has been the following:

Reconnect the session
Run the ShutdownDistributedTPU op (Remote session closes)
Reconnect the session
Run the ShutdownDistributedTPU op (Causes a non-fatal error, but the next step hangs if not done)
Run the ConfigureDistributedTPU op (works)

afterwards I can usually use the TPU again.
Source code / logs
XLA dump (batch size N=1, but the same happens for at least N=10 and N=100): https://gist.github.com/Keno/b54e4be146096daf4d464c1319639404

Nagging Assignees @tatatodd, @fdxmw: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignees @tatatodd, @fdxmw: It has been 44 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

same problem here. wondering if the problem is solved?

@Keno,  Sorry for late response. We are checking to see if you still need help on this issue.
You are using the old version of tensorflow (1.x) which is not supported. We recommend that you upgrade to 2.10.0 and let us know if the issue still persists in the newer version? Thank you.

This code path is obsolete - I don't think anyone is using it.


{Packaging} Add setuptools into dependency

Description

setuptools will not be installed when install pip in Python 3.12, see https://github.com/python/cpython/issues/95299.
But some dependencies still use __import__('pkg_resources').declare_namespace(__name__) to declare the namespace package, which requires setuptools. Adding it into setup.py to make sure it is installed correctly when install from pip.
I also add it into requirements.txt. Alpine, Windows and Homebrew install azure-cli with --no-deps, so the dependency in setup.py is not working.

Linux packages install latest pip and setuptools in build script.
Python-alpine image bundled setuptools will be removed?
Windows use get-pip.py to install setuptools inexplicitly but it will be removed?
Homebrew formula installs setuptools when install pip, it will be removed in 3.12.

Related issue:

https://github.com/Homebrew/brew/pull/15792
https://github.com/Azure/azure-cli/pull/25703

Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change
[Component Name 2] az command b: Add some customer-facing feature

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

Packaging

What dependencies still use the deprecated pkg_resources module?

What dependencies still use the deprecated pkg_resources module?

The packages are install from source code on MacOS. Not sure if this problem still exists.
https://github.com/Azure/azure-cli/issues/21910

How does getting installed from source relate to my question?

This is only related to MacOS. Details are provided in the PR.

I'm a bit disappointed that the problem was fixed the wrong way (adding setuptools instead of eliminating old-style namespace packages).


Parallelize graph_to_path_matrix

It's embarrassingly parallel, so why not?

Done (accidentally references #9)


#290 plugin not compatible with gradle configuration cache

🚀 Description

Provide the formatting options as property
📄 Motivation and Context

https://github.com/cortinico/ktfmt-gradle/issues/290
🧪 How Has This Been Tested?

Added integration tests.
📦 Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

✅ Checklist

[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.

I have also edited the CHANGELOG and removed the entries. In the other story you mentioned, that this is not relevant for the users. This is the same for these changes.


I can't install Twitchlink. please help!

i get this error after clicking finish installation

It seems that the program has not been installed properly. Some antivirus programs can cause such results.


Show error overlay on noscript

Simple message is shown, as JS is default today, no special attention to well designed message


Move Issue when Issue is Moved in other Project Boards

If an issue is moved on another project board to a new column (ie. In Progress, Code Review, etc), that it moves to the same column on other boards as well. This allows certain teams to monitor only 1 board without having to manually move Issues around on several boards.
ie. Team 1 (build team) uses Project Board 1 to track the Issues they're working on.
Team 2 (requirements gathering team) uses Project Board 2 to track Issues they're grooming.
When Issue on Project Board 2 is moved to 'Build Ready', it should be auto-added to 'To do' in Project Board 1.
When Issue on Project Board 1 is moved to 'Code Review' it should be auto-moved to 'Code Review' column on Project Board 2.
When Issue is moved to 'done' on either Project Board, it should move to 'Done' on all other Project Boards.

I was also thinking about this when trying to setup a workflow involving more boards. However, there is one major problem - different boards have different columns. So this could only work when columns with the exact same name are present in both boards. And there is no way to ensure that... In the end I decided to move the issues across more boards automatically with the help of labels and added_label rules.


chore(ci): bump chart-releaser-action to v1.5.0

Bumping to v1.5.0.
Mostly to check if it can handle by default OCI repos (to avoid problems like https://github.com/midokura/thingsboard-ce-k8s/actions/runs/6483652142/job/17605731743#step:5:36).
OCI repos are the default in some cases (like Bitnami, see this Bitnami blog entry)

@maht look into this too: https://github.com/midokura/thingsboard-ce-k8s/compare/helmrepo...ricardnacher-patch-1 WDYT?

@maht look into this too: helmrepo...ricardnacher-patch-1 WDYT?

yes, that was my plan B, but it seems that the upgrade to next version solved it and OCI a no longer experimental :)


[Removal]: Dapper Alabaster Bat

Hotspot Name
Dapper Alabaster Bat
Hotspot b58 Address
112CzaXC6kAKbWXfNMNze4j7acFiJaGdXuzM8eFggDasM1QGpnFV
Discord Handle
Jun311#2772
Hotspot Manufacturer
Heltec Automation
Removal Reason
I bought this hotspot on the secondary market on Jan 28th but not notice it was included in the denylist since it is not posteded on https://blacklist.longap.community/. However, I deployed the hotspot in the actual place without any gaming or spoofing activities. Maybe it used to be a gaming hotspot previously but it has been deployed properly since I bought it. please run the test algrothim again and check it, thanks a lot.
Modifications
No
Extra forwarders
No
Extra antennas
No
Additional Information
Hi the helium team,
Thanks for all you have done to maintain a health and honest network. Maybe I'm the unfortunate man who bought banned hotspot, but I deployed it at the right place to privide services to local devices as part of the network.
Pleas check the authenticity of the location with your algrothim again and it will prove my innocenc

You have 21 DENIED hotspots in the wallet. Your photo shows a 2dbi antenna, yet hotspot says 5.8 dbi. Come on, try harder.

We have taken into account this removal request in the next iteration of the denylist. It may take some time before it's processed. This is an automated comment due to the volume of addition and removal requests. A future tool is in the works to provide more insight into the analysis approach made by the Helium team and community members that maintain this list.


Auto-detect supported locales from locales directory?

It would be great if I didn't have to specify the locales manually, if instead it could just be derived automatically by seeing which extension (e.g. .js) files were in directory (e.g. ./locales).
That way, you wouldn't need to maintain the list of locales in the configuration separately from the files you've had translated.
Would you be open to that? I might be able to put together a pull req if so. Thanks again for the great lib!

Closed (the comment answers the issue)


Automated cherry pick of #2249: baremetal: fix rebuild root no password

Cherry pick of #2249 on release/2.10.0.
#2249: baremetal: fix rebuild root no password

/lgtm
/approve

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.10.0@711bd85). Click here to learn what that means.
The diff coverage is 0%.

@@               Coverage Diff                @@
##             release/2.10.0   #2253   +/-   ##
================================================
  Coverage                  ?   7.55%
================================================
  Files                     ?     410
  Lines                     ?   63647
  Branches                  ?       0
================================================
  Hits                      ?    4811
  Misses                    ?   58425
  Partials                  ?     411

Flag
Coverage Δ

#aFlag
7.55% <0%> (?)

Impacted Files
Coverage Δ

pkg/baremetal/tasks/rebuild.go
0% <0%> (ø)

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 711bd85...a4e9b38. Read the comment docs.


Rainbow-coloured animation added

Title and Issue number

I have added the project .Can it be merged now?
Close #4407

Checklist:

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

@MohitGupta121 ,@TusharKesarwani Please review my PR.


Creative Commons jurisdiction chosen is ignored

Describe the bug
When a standard Creative Commons license is selected, the user can select the jurisdiction but it is ignored by the Rest side. The Rest side uses a default configured value for the Creative Commons jurisdiction and replaces the selected value with it.
To Reproduce
Steps to reproduce the behavior:

Start a new submission and go to CC section
Select the standard Creative Commons license
Answer the two first question (for example select Yes and Yes ) and select a jurisdiction different from the configured in  cc.license.jurisdiction(default United States)
The selected license displayed is based on the configured jurisdiction and not the selected one.

For example, this is the result of select a Spanish jurisdiction with the United States configured as default (it should be http://creativecommons.org/licenses/by/3.0/es/ instead):

Expected behavior
In previous versions, this problem was solved by not showing the user the question to select the jurisdiction. The Creative commons selector only showed the first two questions. Another option is to get the default jurisdiction from the rest side and show the jurisdiction selector with the value already selected and disabled.

Closing, fixed by #1930 and DSpace/DSpace#8545


"serverless deploy" command fails

I'm unable to progress past chapter : https://serverless-stack.com/chapters/deploy-the-apis.html

OS: Windows 10
Node version : 8.0.0
No idea what this error is about, could any one help?
e/ Upon retrying to with node v6.1.0 this works fine, perhaps disclaimers should be included if it doesn't work with latest node versions ( Perhaps include a NVM section for downgrading if required )
This is ( unfortunately ) a bit of a turn off to using this stack, as i'm really enjoying out the box support for async / await etc in more recent node versions

@TomYeoman That's a weird issue. I'm personally using Node 8.4.0 and a bit of searching turned this up - https://github.com/serverless/serverless/issues/3723.
So it's a Node related issue I'm guessing.

Oh yeah, good spot @jayair, I'll close this and update the post then, so it's just node 8.0 that's the issue then how strange.
Well if anyone could close this ticket and perhaps look to update that chapter with a warning about node 8.0 that would be great :)


Spec Issue: super

super() within non-constructor method works, but should (unfortunately) not.
class Foo() {
  name() {
    return 'Foo';
  }
}

class Bar() {
  name() {
    return super(); // should throw, as it is only to be used in the constructor
  }

  name() {
    return super.name(); // will work
  }
}

6to5 emits the following for both super() and super.name()
 Foo.prototype.name = function () {
    _Bar.prototype.name.call(this);
  };

Just did some quick testing, Traceur and Chrome Canary support it:

I'll have to check the spec.

http://jsbin.com/zuzuzohiwe/1/edit?js,console seems to demonstrate failure. I am fairly confident this is the case, as it was the theme of a heated twitter discussion several weeks ago. (Unfortunately google search fails me)

found it: https://twitter.com/wycats/status/544553184396836864

Ah right okay, it's a recent change. I'm unsure if this check should be done at the parser or transformation level.

I would be favor of a parse-time failure if that isn't to aggressive.

Yes, super() inside a class method (and outside constructor) has to be a parse error. See rev 30, 14.5.1

ClassElement : MethodDefinition

It is a Syntax Error if PropName of MethodDefinition is not "constructor" and HasDirectSuper(MethodDefinition) is true.

While most spec-compliance related changes should go out immediately, I'm certain that 6to5 users are already doing this and I don't want to break their code suddenly.
I'm not sure how we should address these kinds of changes in semver.
@6to5/maintainers thoughts?

It depends on your semver tolerance. Bugfixes, or defining previously undefined behavior sometimes fall into this gray area.
I would personally not hesitate breaking at a patch or point release if it involves defining previous undefined behavior. Unfortunately, as I suspect this was previously defined, and now has change it should require a bump.

I'm thinking that it might be a good idea to put these kinds of changes, ones that are breaking to previous versions of the spec (which shouldn't happen very often anymore), in minor releases, so that people who need their code not to break can restrict it to patch releases.

in minor releases, so that people who need their code not to break can restrict it to patch releases.

+1
Also, it might be good to annotate breaking changes clearly in the changelog
2.6.0

[Breaking change] something something super
something else non-breaking

It'd be good to tag changes ([New Feature], [Breaking Change], [Bug Fix]) in general, but let's take that conversation elsewhere.

I too vote for point release with clear changelog annotation. I've certainly been using bare super() in my code, despite WebStorm complaining about it since before they changed the spec! Heh.

I'm completely in support of better changelog annotation. Anyone mind adding a scheme to the top of CHANGELOG.md?

@sebmck Sure I'll add it, any other suggestions other than these?

[Bug Fix]
[New Feature]
[Breaking Change]
[Documentation]

@thejameskyle I think a "Spec Compliancy" label would be a really good idea. Even though 99% of them would go under the "Breaking Change" I still think it'd be good for transparency.

This change seems to have been confirmed. Anybody have an issues if I make this illegal?

Looks like this was fixed in https://github.com/6to5/6to5/commit/f2a432531ef1908a18784999f3bc0d0c124a944e.

Bare super inside non-constructor methods now errors as of 3.0.0

yay


Separate methods for hashing with or without padding

This should be a tad better for for performance, and lets us do padding in a generic way, rather than each hash reimplementing it.
This also disables padding for public inputs. It seems unnecessary since the number of public inputs is fixed for any given instance.

I'm not sure that the current handling of padding has that much impact on the speed in the non-padded case. The branch should be very predictable, and if hash_n_to_m is inlined, it will go away altogether.
In the padded case, we allocate a vector for the padded input. @dlubarov, I think you mentioned that we don't really care about the speed in the padded case, so this is fine. But if we wanted to speed up padding, we could handle it by special-casing the last two (1) hashes after the for loop in hash_n_to_m. We cannot do this if the padding is delegated to a different function.
It is nice to see that pad argument gone from hash_n_to_m. It was always a bit confusing: you can't tell what it does just from the function name.
(1) two because the padding can go slightly over one chunk

Public inputs was actually the last use of padding, so now that that's switched, we could consider just removing hash_pad altogether. The only hesitation I have is that some other projects might be interested in using it. WDYT?
If we do keep it, we could potentially avoid allocation by accepting iterators and chaining on the padding. I gave this a try in #460. It seems to be a bit slower though. I had to replace copy_from_slice with a simple for-loop copy, so I suspect the old version may have been compiled with some optimized memcpy implementation.

Public inputs were actually the last use of padding, so now that that's switched, we could consider just removing hash_pad altogether. The only hesitation I have is that some other projects might be interested in using it. WDYT?

Tbh, the padding is simple enough to roll yourself. We've already done the hard bits!

If we do keep it, we could potentially avoid allocation by accepting iterators and chaining on the padding. I gave this a try in #460. It seems to be a bit slower though. I had to replace copy_from_slice with a simple for-loop copy, so I suspect the old version may have been compiled with some optimized memcpy implementation.

Yeah, I guess the current solution can copy a whole vector at a time, whereas the iterator solution can only copy 64 bits at a time (because the iterator length may not be a multiple of vector length).
Another hypothesis is that currently we're not doing memory writes at all, storing the state array in registers. If Rust is inserting a bunch of if statements, to see which iterator in the chain we're up to, then LLVM might get confused and refuse to keep the array in registers, forcing writes and reads where none existed before. In this case loop unrolling might help.


Create OpenMM engine harness

We would like to be able to execute OpenMM workloads, if possible, using QCEngine. This should involve creating a qcengine.programs.model.ProgramHarness subclass. Use the existing *Harness implementations as inspiration.
This issue should define the scope for this implementation; it serves as the nexus for discussion on this addition.

Currently working on this one.

@j-wags. Is there a Smirnoff toolkit piece we could borrow here?
Pretty excited about this. Should have quite a few applications such as starting guesses and conformer.

Apologies for hijacking this thread, but we're now in a position where we need to implement OpenMM-based energy and gradient evaluation for small molecule force fields for QCEngine for use in benchmark comparisons of SMIRNOFF and other small molecule force fields for the Open Force Field Initiative.
Our initial needs are to allow processing of small molecules through the same workflows we use for the Open Force Field Initiative, which are currently TorsionDriveDataset and OptimizationDataset.
Because we need a molecular topology to begin with, we would likely base this off of qcengine/programs/rdkit.py, which creates an RDKit Chem.Mol object that can then be fed to downstream parameterization engines.
We would like to support energy and gradient computation using OpenMM, using the following force fields:

Open Force Field SMIRNOFF-format force fields, assigned via the Open Force Field Toolkit using the RDKit/AmberTools backend
GAFF force fields (1.* and 2.*) assigned via Antechamber via AmberTools

Here's what we're thinking about how dispatch would work:

OpenMM execution would be accessed with program : openmm (should this be something else more specific to reflect small molecule parameterization will occur after RDKit processing?)
The model dict would specify the force field as method (e.g. gaff-1.8, gaff-2.0, smirnoff-1.1.0) to be consistent with how the rdkit support specifies method : uff.
gaff-* support would be provided via AmberTools and a distributed set of the appropriate GAFF versions excised from their corresponding AmberTools versions, but we would use the latest AmberTools. We can support a chargemodel keyword that specifies the model to pass to Antechamber, and possibly an optional charges array that overrides this.
If method : smirnoff is specified, a url key could specify a URL to a (hopefully immutable) force field specification file. Alternatively, an offxml key can specify the contents of an OFFXML file, but this will be pretty big (~60K). Charging schemes are specified in the OFFXML.

We could also potentially consider allowing the OpenMM ForceField processor to be used as well, but we would also need to specify an OpenMM ForceField XML file, which can get pretty big. Also, this is super fragile, and many molecules may fail to type and cause errors.
Since the QCEngine just computes a single energy/gradient pair per call, in order for AM1-BCC charging to not consume ~15 seconds/call, we would want to cache charges in memory or on disk.
OpenMM would be forced to use the Reference or CPU platforms. If there is a way to ask QCEngine how many CPU threads should be used, this could be passed on to the CPU platform.

The main decision tree here is if we make the OpenMM model field very rich or if we separate it out into many different programs such as smirnoff-openmm and gaff-openmm. I am leaning a bit towards a single openmm program that can dispatch to multiple typers and is largely transparent to the user. I would hazard most quantum chemist don't really want to know the details.
Supporting full force fields should be enabled as well for power users. A URL might not be a good way to go as a worker node is not guaranteed access to the internet. 60kb per result is likely fine for many use cases.

@jchodera no need to apologize! This is extremely valuable. It's much easier to build something of value when there is a tangible need and urgency. I will be using your comment as a reference point while implementing this to make sure we can cover all (or at least most) of what's present here rather quickly.
I'm in favor of keeping the program a single openmm harness, and put the complexity internal to this. We can at least start down that road and see if our opinion changes as we go.

@dotsdl If you're moving ahead on an implementation, please go ahead! You can model it off of qcengine/programs/rdkit.py to start with, and feel free to tap me to help. If you're not starting immediately, let me know.
What else needs to be specified? Should we create some test inputs as a way of aiding implementation and testing?

We should also rope in @jaimergp, who is working on an experimental OpenMM CPU-only build for conda-forge right now (openmm-cpu) that we could use for this.
We don't yet have AmberTools on conda-forge to bring in GAFF, but we can install that manually for now. We might want to rope in David Case and the AMBER folks to see if that might eventually be tractable---they've been working on a new "ambermini" that is a lightweight minimal Antechamber + LEaP + key toolchain set.

Work-in-progress PR posted at #151. Comments welcome; there is plenty to hammer on yet, but this is probably about half of what's needed for basic functionality to fulfill needs laid out by @jchodera.

This issue is now closed given merge of #151. I will create follow-on issues for each of the items raised that were declared out-of-scope for this PR.

Thanks! The extra issues will be very helpful to ascertain the status and health of the harness.


Update gsxlib for May 2016 GSX API changes

May 2016 GSX API changes will break MunkiReport's GSX integration unless updated gsxlib is used.

I assume this is allright as I don't have a way to test this code


GPU memory used for stable diffusion

I finetune the stable diffusion on one RTX3090 with config
python main.py --logdir /tmp -t --postfix test -b configs/train_colossalai.yaml

The config for lighting is as follows:

The batch size is set to 1. However, it is still out of memory.
Is this normal?
Thank you!

I can get it to start training by setting placement_policy to cpu or auto on my 2070 SUPER. But it crashes before it finishes training.

@DonStroganotti Setting placement_policy to cpu works. But like you, is crashes after 5 epoches.

In addition to GPU memory, I'm curious about how much RAM memory is needed for training.
My device has 32GB of RAM and an RTX 3090 (24GB), but it runs out of memory after a few steps.

I have 4*3090, I'll try it next week

We have updated a lot. This issue was closed due to inactivity. Thanks.


#3851 broke angular-ui-router and angular-translate definitions

On Typescript 1.4, the project won't compile anymore, since it's using the ng namespace not the angular module as per PR #3851 (from their bower package, inside the api folder in https://github.com/angular-ui/ui-router/tree/master/api)
G:/www/neuro/public/js/angular-ui-router/api/angular-ui-router.d.ts(31,38): error TS2304: Cannot find name 'IServiceProvider'.
G:/www/neuro/public/js/angular-ui-router/api/angular-ui-router.d.ts(49,42): error TS2304: Cannot find name 'IServiceProvider'.
G:/www/neuro/public/js/angular-ui-router/api/angular-ui-router.d.ts(82,63): error TS2304: Cannot find name 'IPromise'.
G:/www/neuro/typings/angular-translate/angular-translate.d.ts(36,85): error TS2305: Module 'ng' has no exported member 'IPromise'.
G:/www/neuro/typings/angular-translate/angular-translate.d.ts(37,87): error TS2305: Module 'ng' has no exported member 'IPromise'.
G:/www/neuro/typings/angular-translate/angular-translate.d.ts(47,36): error TS2305: Module 'ng' has no exported member 'IPromise'.
G:/www/neuro/typings/angular-translate/angular-translate.d.ts(51,27): error TS2305: Module 'ng' has no exported member 'IPromise'.
G:/www/neuro/typings/angular-translate/angular-translate.d.ts(57,42): error TS2305: Module 'ng' has no exported member 'IServiceProvider'.
G:/www/neuro/typings/angularjs/angular.d.ts(17,1): error TS2440: Import declaration conflicts with local declaration of 'ng'

I've started running into a similar issue. Most of my issues seem to be related to that last error

Import declaration conflicts with local declaration of 'ng'

Created the PR that fixes the issue: https://github.com/borisyankov/DefinitelyTyped/pull/4055

In case anyone else runs into this...
Depending on your installation of angular-ui-router you may already have a definition file included in the project which is outdated source
The definition file in DefinitelyTyped should be used instead. Be sure to disable compilation of the outdated file in your IDE.

In case anyone still has the issue.. i got angular-scenario-1.2 automatically installed which causes the same issue.. remove that, works

doing tsd install angularjs/ installs everything and break things.


Items BASEUOM query

Error: XL03000006 The following fields cannot be queried: [ item: [BASEUOM] ]
When I perform a ReadByQuery specifying BASEUOM on object ITEM the result is returned as per the code example below. When I perform a QueryFunction I get the above error.
Return results with BASEUOM
ReadByQuery read = new ReadByQuery()
                {
                    ObjectName = "ITEM",
                    Fields = { "BASEUOM", "RECORDNO", "ITEMID", "STATUS", "NAME", "WHENMODIFIED" },
                    PageSize = 1000,
                };

Throw error:
               SelectBuilder selectBuilder = new SelectBuilder();
                ISelect[] fields = selectBuilder.Fields(new[] { "BASEUOM", "RECORDNO", "ITEMID", "STATUS", "NAME", "WHENMODIFIED" }).GetFields();
                QueryFunction query = new QueryFunction()
                {
                    SelectFields = fields,
                    FromObject = "ITEM",
                    Filter = filter,
                    CaseInsensitive = false,
                    PageSize = 1000
                };

Hi,
The SDK behaves correctly. The problem is that BASEUOM is not queryable using the query function.
I will create a ticket to get this addressed.
Thank you
Karsten

I have created a ticket and left it with the application area.
I am going to close this issue, since it is not related to the SDK. Please open a customer support case, to get the API problem addressed. (this will give you an better insight on processing of this issue)


Add Security Schema Directives Support

when using querydsl to generate queries, those don't have code can't using annotations to secure. and graphql doesn't have routes, it can not be configured by security api.

Can you help me understand what you mean?

Could this be related to supporting ˋ@auth` annotations at the schema level as shown in the GraphQL Java docs?

Thank you @bclozel. That helps quite a bit.

@rwinch for example
type Book {
 name:String
 secret:String @Secured # <-- security server directive
}

query {
 books{
  name
  secret # <-- maybe throw forbidden error
 }
}

@Diluka since you bring this up in the context of querydsl, not sure if you've considered this already, but there is an option to apply security to Spring Data repositories, as shown in this example.

how about background jobs, they are no auth context, can not use those methods with security

Not sure I follow. What is a background job, in the context of a GraphQL request?

I mean repo method maybe use in other context

I've put together a prototype of Spring Security support that demonstrates how this could work. For now the code is entirely placed in the webflux-security sample to make trying the support easier.
I'm still thinking about what all should be supported. Right now either @auth(role : "ADMIN") or @auth(authority : "ROLE_ADMIN") are supported. I think we should look into supporting other concepts like authenticated.
If you have the opportunity, please give this a try and let me know if it is what you had in mind.


load_config() got an unexpected keyword argument 'config_dict'

'[' '!' -d container-image-scan ']'
pip3 install docker
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: docker in /var/lib/jenkins/.local/lib/python3.7/site-packages (5.0.3)
Requirement already satisfied: requests!=2.18.0,>=2.14.2 in /var/lib/jenkins/.local/lib/python3.7/site-packages (from docker) (2.26.0)
Requirement already satisfied: websocket-client>=0.32.0 in /var/lib/jenkins/.local/lib/python3.7/site-packages (from docker) (1.1.0)
Requirement already satisfied: idna<4,>=2.5; python_version >= "3" in /var/lib/jenkins/.local/lib/python3.7/site-packages (from requests!=2.18.0,>=2.14.2->docker) (3.2)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in /var/lib/jenkins/.local/lib/python3.7/site-packages (from requests!=2.18.0,>=2.14.2->docker) (1.26.6)
Requirement already satisfied: certifi>=2017.4.17 in /var/lib/jenkins/.local/lib/python3.7/site-packages (from requests!=2.18.0,>=2.14.2->docker) (2021.5.30)
Requirement already satisfied: charset-normalizer~=2.0.0; python_version >= "3" in /var/lib/jenkins/.local/lib/python3.7/site-packages (from requests!=2.18.0,>=2.14.2->docker) (2.0.3)
python3 container-image-scan/cs_scanimage.py
ERROR   Unknown error
Traceback (most recent call last):
File "container-image-scan/cs_scanimage.py", line 355, in main
client = docker.from_env()
File "/var/lib/jenkins/.local/lib/python3.7/site-packages/docker/client.py", line 10

1, in from_env
**kwargs_from_env(**kwargs)
File "/var/lib/jenkins/.local/lib/python3.7/site-packages/docker/client.py", line 45, in init
self.api = APIClient(*args, **kwargs)
File "/var/lib/jenkins/.local/lib/python3.7/site-packages/docker/api/client.py", line 132, in init
config_dict=self._general_configs, credstore_env=credstore_env,
TypeError: load_config() got an unexpected keyword argument 'config_dict'

Do you have more than 1 python interpreter installed?

The server has python version 2.7.18 and python 3.7.10

Do you have docker-py and docker python modules installed?

It only currently has docker-5.0.3

Is the python environment being called correctly?

"Python3 container-image-scan/cs_scanimage.py" is how it is being called and works on the server

What does pip3 freeze | grep docker return?

docker==5.0.3

On the image scan example repo, the "jenkinsfile" shows to install docker-py, after uninstalling both and updating docker it seemed to have worked. Please update the jenkinsfile

Glad it is fixed. Closing as this is an environment issue. For context, see https://github.com/docker/docker-py/issues/1916


Allow tap gestures on the splitter

Hi @caduandrade,
Thanks for this lib as well :)
I'd like to programatically change the position of the splitter when it is double clicked - reset it to its initial position. I couldn't find a way to detect any clicks on the splitter, am I missing something?

Hi @ykrasik!
You are right, it's not possible. But your request is an order :stuck_out_tongue_winking_eye:

@ykrasik,
done :wink:

Thanks for the quick work! Will start playing with it.

Works great, thanks!


from scatch

using chef/ubuntu-14.04
issue
when you just do
chef.run_list = [
  "recipe[nginx::default]"
]

which is like sudo apt-get install nginx
it spins up nginx on localhost:80
but the nginx.pid is never created
you can find the pid using
ps aux | grep nginx
which in turns leading to
sudo service nginx status
displaying its as not running
or any sudo service nginx cmd
as not working as port 80 is already binded
no default file is made for
/var/www/nginx-default/index.html
more of a annoyance then anything else as i was just trying to get my head around chef and nginx

This happened to me as well. When nginx is installed from the normal Ubuntu repositores, it comes with pid path set to /run/nginx.pid. The package starts the service, then the cookbook changes the files so that the pid path is now /var/run/nginx.pid.
It causes /etc/init.d/nginx to lose track of the pid file that actually references the running nginx instance at install time.
There are two ways to work around the issue in a clean way:

As stated by @boffbowsh, including recipe[nginx::repo] in the run_list.
Changing the attribute node['nginx']['pid'] if you want to continue using nginx packages from the official dist repo.

Seems like a fix for this might just be updating this to be:
if platform == 'ubuntu'
   default['nginx']['pid'] = '/run/nginx.pid'
end

fix from https://github.com/miketheman/nginx/commit/d2b954ef0507f3d458f5d7a5ced38f1ffcbf303b  should be more generic and support later versions. Any volunteers which find out, when Ubuntu started to change it?

@rmoriz Looks like it appeared in 13.04 raring (nginx-common = 1.2.6-1ubuntu3.3). Prior to that, nginx-common <= 1.2.1, used /var/run/nginx.pid.

I think that this was resolved. If it's still a problem with the current version of the cookbook please reopen with additional details.


problems with installation

Current plugin is older than jupiterlab version. what went wrong? Please advice what to do next
An error occured.
ValueError:
<EMAIL_ADDRESS>is not compatible with the current JupyterLab
Conflicting Dependencies:
JupyterLab             Extension      Package

=3.0.4 <3.1.0         >=2.2.1 <3.0.0 @jupyterlab/mainmenu
=5.0.2 <5.1.0         >=4.0.2 <5.0.0 @jupyterlab/coreutils
=3.0.5 <3.1.0         >=2.0.2 <3.0.0 @jupyterlab/rendermime
=6.0.4 <6.1.0         >=5.0.2 <6.0.0 @jupyterlab/services
See the log file for details:  /tmp/jupyterlab-debug-bv3e61o3.log

@admay Could you please give an advise?

@losrobertos fair warning, I'm not a maintainer or contributor for this library, so I don't know how much help I'm going to be.
Can you send me the following:

command run to get this output
full output
log file output

Also, can you answer the following for me:

What are you using to install?
Are you running within a virtual environment? If so, through what? Conda, virtualenv, etc...
What other packages ( and versions ) do you have installed in the environment you're running this in? pip freeze output. For conda it's conda env export I believe.

1.2.3.
npm install

<EMAIL_ADDRESS>postinstall /opt/node/jupyterlab_scheduler-master/node_modules/core-js
node -e "try{require('./postinstall')}catch(e){}"
Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!
The project needs your help! Please consider supporting of core-js on Open Collective or Patreon:
https://opencollective.com/core-js
https://www.patreon.com/zloirock
Also, the author of core-js ( https://github.com/zloirock ) is looking for a good job -)
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of webpack@>=2 but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>|| ^5.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>|| ^4.0.0 but none is installed. You must install peer dependencies yourself.
added 1 package in 4.78s
49 packages are looking for funding
run npm fund for details

npm run build:lib

<EMAIL_ADDRESS>build:lib /opt/node/jupyterlab_scheduler-master
babel src --out-dir lib
Successfully compiled 5 files with Babel (1156ms).

jupyter labextension install
An error occured.
ValueError:
<EMAIL_ADDRESS>is not compatible with the current JupyterLab
Conflicting Dependencies:
JupyterLab Extension Package

=3.0.9 <3.1.0 >=2.2.1 <3.0.0 @jupyterlab/mainmenu
=5.0.6 <5.1.0 >=4.0.2 <5.0.0 @jupyterlab/coreutils
=3.0.10 <3.1.0 >=2.0.2 <3.0.0 @jupyterlab/rendermime
=6.0.9 <6.1.0 >=5.0.2 <6.0.0 @jupyterlab/services
See the log file for details: /tmp/jupyterlab-debug-y_n4p077.log

What are you using to install?

Npm and jupyter labextension install

Are you running within a virtual environment? If so, through what? Conda, virtualenv, etc...

Without venv

What other packages ( and versions ) do you have installed in the environment you're running this in? pip freeze output. For
conda it's conda env export I believe.

pip freeze
alembic==1.6.5
anyio==3.2.1
argon2-cffi==20.1.0
async-generator==1.10
attrs==21.2.0
Babel==2.9.1
backcall==0.2.0
bleach==3.3.0
certifi==2021.5.30
certipy==0.1.3
cffi==1.14.5
chardet==4.0.0
contextvars==2.4
cryptography==3.4.7
dataclasses==0.8
decorator==5.0.9
defusedxml==0.7.1
entrypoints==0.3
greenlet==1.1.0
idna==2.10
immutables==0.15
importlib-metadata==4.5.0
ipykernel==5.5.5
ipython==7.16.1
ipython-genutils==0.2.0
ipywidgets==7.6.3
jedi==0.18.0
Jinja2==3.0.1
json5==0.9.6
jsonschema==3.2.0
jupyter-client==6.2.0
jupyter-core==4.7.1
jupyter-server==1.9.0
jupyter-telemetry==0.1.0
jupyterhub==1.4.1
jupyterlab==3.0.16
jupyterlab-pygments==0.1.2
jupyterlab-server==2.6.0
jupyterlab-widgets==1.0.0
Mako==1.1.4
MarkupSafe==2.0.1
mistune==0.8.4
nbclassic==0.3.1
nbclient==0.5.3
nbconvert==6.0.7
nbformat==5.1.3
nest-asyncio==1.5.1
notebook==6.4.0
oauthlib==3.1.1
packaging==20.9
pamela==1.0.0
pandocfilters==1.4.3
parso==0.8.2
pexpect==4.8.0
pickleshare==0.7.5
prometheus-client==0.11.0
prompt-toolkit==3.0.19
ptyprocess==0.7.0
pycparser==2.20
Pygments==2.9.0
pyOpenSSL==20.0.1
pyparsing==2.4.7
pyrsistent==0.17.3
python-dateutil==2.8.1
python-editor==1.0.4
python-json-logger==2.0.1
pytz==2021.1
pyzmq==22.1.0
requests==2.25.1
requests-unixsocket==0.2.0
ruamel.yaml==0.17.10
ruamel.yaml.clib==0.2.4
Send2Trash==1.7.1
six==1.16.0
sniffio==1.2.0
SQLAlchemy==1.4.19
testpath==0.5.0
tornado==6.1
traitlets==4.3.3
typing-extensions==<IP_ADDRESS>
urllib3==1.26.5
wcwidth==0.2.5
webencodings==0.5.1
websocket-client==1.1.0
widgetsnbextension==3.5.1
zipp==3.4.1

@admay thanks for helping out while I've been on a hiatus
@losrobertos I'm working on getting the tool working on the latest version of jupyterlab now, hopefully this isn't too painful of an upgrade

New version released that compatible with the latest Jupyter Labs


All tests with capturing stdout and stderr should print captured text on error

Printing captured text helps to see problem and fixing faster.

Not enough description in the issue to really do anything.


ForestDB integration

There are use cases that we have data set bigger than the available physical memory.  This means we need to store hot data in memory and cold data on disk, and then have an efficient mechanism to do CRUB operations.   ForestDB seems to be a good candidate for this purpose.

We have created a project for this issue, with a card on ForestDB.


BigQuery: Unhelpful code samples in "Migrating to Python Client Library v0.28+" doc

The code samples at https://cloud.google.com/bigquery/docs/python-client-migration show similar code before and after the big API changes in 0.28.  However, the before and after samples are often very different, making a comparison much harder than it needs to be.

@alixhami  @tswast can you take a look?

@inglesp Is there a specific sample that you believe does too much?

Is there a specific sample that you believe does too much?

All of them!  (And it's not really that the examples are doing too much, just that the before and after versions are written in totally different ways.)
For instance, in the Querying data synchronously section, the before version is:
query_results = client.run_sync_query(query)
query_results.use_legacy_sql = False

query_results.run()

# The query might not complete in a single request. To account for a
# long-running query, force the query results to reload until the query
# is complete.
while not query_results.complete:
  query_iterator = query_results.fetch_data()
  try:
     six.next(iter(query_iterator))
  except StopIteration:
      pass

rows = query_results.fetch_data()
for row in rows:
    print(row)

while the after version is:
QUERY = (
    'SELECT name FROM `bigquery-public-data.usa_names.usa_1910_2013` '
    'WHERE state = "TX" '
    'LIMIT 100')
TIMEOUT = 30  # in seconds
rows = list(client.query_rows(QUERY, timeout=TIMEOUT))  # API request

assert len(rows) == 100
row = rows[0]
assert row[0] == row.name == row['name']

The after version defines QUERY and TIMEOUT; the before version assumes that query is already defined, and doesn't specify a timeout.
The before version iterates over the results, printing them one by one; the after version turns the results into a list, asserts the length of the list, and asserts something about the first result.
Given the wholesale API changes introduced in 0.28, I would expect much more thought to go into the migration docs, especially as many (most?) of your library's users are paying customers.

Yeah, you're right that they aren't doing 100% exactly the same thing.
Your specific sample to highlight is a good indicator, actually. query_rows is no longer a method in 0.29+ since the query function can be used in exactly the same way as it is here. I'll leave this open to give that page another run through.

Also, the before version query.rows is a simple Python nested tuple, which is easy to compare and to remove duplicates (by calling set()) but the new version (after converting the iterator to a list) is returning a tuple of google.cloud.bigquery._helpers.Row objects, which isn't hashable and calling them on set() will yield a TypeError: unhashable type: 'Row'" exception. I understand the reason to make a wrapper object to facilitate both positional access and key access to the result row, but this broke our expectation of the result object and it's not documented either.
Can we 1. update the docs in all places where return type changed? 2. make google.cloud.bigquery._helpers.Row hashable so that calling a set() on it won't break?

Can we 1. update the docs in all places where return type changed? 2. make google.cloud.bigquery._helpers.Row hashable so that calling a set() on it won't break?

@ye Pull requests welcome. :-) There's definitely precedent for adding methods to the Row class. For example, https://github.com/GoogleCloudPlatform/google-cloud-python/pull/4393 makes it so that the Row class acts more like a dictionary. Since I'd expect rows not to be mutable, I think it would make sense for them to be hashable.

@tswast Seems like this issue has changed from a docs bug to a feature request.  Is it still relevant, given that the current release of google-cloud-bigquery is at 1.5.0?

I never updated the migration page samples, but I do think there's probably less demand to do so now. We can close this out.


Make notebook testing multithreaded

Going to see if this will speed up our testing runs.

Is there a risk of this failing due to netCDF4 not being threads safe?

I don't think so - since it's really multiple processes instead of threads (I decided to use multiprocessing instead of threading)

Ah 👍

Looks like the Mac builds are backing up - will check in later and see what's going on with Travis

FYI @mjames-upc we've had to blacklist a couple of AWIPS notebooks (NEXRAD3_Storm_Total_Accumulation.ipynb and Watch_and_Warning_Polygons.ipynb) that have been breaking things. Wanted to make sure you knew and could have a look at them.

@jrleeman what should I be looking at for this?  travis build logs aren't showing me anything.

@mjames-upc
[NbConvertApp] ERROR | Error while converting 'notebooks/python-awips/Watch_and_Warning_Polygons.ipynb'
Traceback (most recent call last):
  File "/home/travis/miniconda/envs/unidata-workshop/lib/python3.6/site-packages/nbconvert/nbconvertapp.py", line 373, in export_single_notebook
    output, resources = self.exporter.from_filename(notebook_filename, resources=resources)
  File "/home/travis/miniconda/envs/unidata-workshop/lib/python3.6/site-packages/nbconvert/exporters/exporter.py", line 171, in from_filename
    return self.from_file(f, resources=resources, **kw)
  File "/home/travis/miniconda/envs/unidata-workshop/lib/python3.6/site-packages/nbconvert/exporters/exporter.py", line 189, in from_file
    return self.from_notebook_node(nbformat.read(file_stream, as_version=4), resources=resources, **kw)
  File "/home/travis/miniconda/envs/unidata-workshop/lib/python3.6/site-packages/nbconvert/exporters/notebook.py", line 31, in from_notebook_node
    nb_copy, resources = super(NotebookExporter, self).from_notebook_node(nb, resources, **kw)
  File "/home/travis/miniconda/envs/unidata-workshop/lib/python3.6/site-packages/nbconvert/exporters/exporter.py", line 131, in from_notebook_node
    nb_copy, resources = self._preprocess(nb_copy, resources)
  File "/home/travis/miniconda/envs/unidata-workshop/lib/python3.6/site-packages/nbconvert/exporters/exporter.py", line 308, in _preprocess
    nbc, resc = preprocessor(nbc, resc)
  File "/home/travis/miniconda/envs/unidata-workshop/lib/python3.6/site-packages/nbconvert/preprocessors/base.py", line 47, in __call__
    return self.preprocess(nb,resources)
  File "/home/travis/miniconda/envs/unidata-workshop/lib/python3.6/site-packages/nbconvert/preprocessors/execute.py", line 211, in preprocess
    nb, resources = super(ExecutePreprocessor, self).preprocess(nb, resources)
  File "/home/travis/miniconda/envs/unidata-workshop/lib/python3.6/site-packages/nbconvert/preprocessors/base.py", line 70, in preprocess
    nb.cells[index], resources = self.preprocess_cell(cell, resources, index)
  File "/home/travis/miniconda/envs/unidata-workshop/lib/python3.6/site-packages/nbconvert/preprocessors/execute.py", line 242, in preprocess_cell
    raise CellExecutionError(msg)
nbconvert.preprocessors.execute.CellExecutionError: An error occurred while executing the following cell:
------------------
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER
import cartopy.feature as cfeat
from cartopy.feature import ShapelyFeature,NaturalEarthFeature
from shapely.geometry import Polygon
from awips.tables import vtec
def warning_color(phensig):
    if vtec[phensig]['color']:
        return vtec[phensig]['color']
def make_map(bbox, projection=ccrs.PlateCarree()):
    fig, ax = plt.subplots(figsize=(20,12),
            subplot_kw=dict(projection=projection))
    ax.set_extent(bbox)
    ax.coastlines(resolution='50m')
    gl = ax.gridlines(draw_labels=True)
    gl.xlabels_top = gl.ylabels_right = False
    gl.xformatter = LONGITUDE_FORMATTER
    gl.yformatter = LATITUDE_FORMATTER
    return fig, ax
%matplotlib inline
bbox=[-127,-64,24,49]
fig, ax = make_map(bbox=bbox)
for i, geom in enumerate(geometries):
    bounds = Polygon(geom)
    intersection = bounds.intersection
    geoms = (intersection(geom)
         for geom in geometries
         if bounds.intersects(geom))

    # For now do not plot SPS
    if (parameters['phensig'][i]):
        vparm = parameters['phensig'][i]
        color = warning_color(vparm.astype('U13'))
        shape_feature = ShapelyFeature(geoms,ccrs.PlateCarree(),
                        facecolor='none', edgecolor=color)
        ax.add_feature(shape_feature)
political_boundaries = NaturalEarthFeature(category='cultural',
                               name='admin_0_boundary_lines_land',
                               scale='50m', facecolor='none')
states = NaturalEarthFeature(category='cultural',
                               name='admin_1_states_provinces_lakes',
                               scale='50m', facecolor='none')
ax.add_feature(political_boundaries, linestyle='-')
ax.add_feature(states, linestyle=':')
plt.show()
------------------
TopologicalError: The operation 'GEOSIntersection_r' could not be performed. Likely cause is invalidity of the geometry <shapely.geometry.polygon.Polygon object at 0x7f114efeb320>

and
[NbConvertApp] ERROR | Error while converting 'notebooks/python-awips/NEXRAD3_Storm_Total_Accumulation.ipynb'
Traceback (most recent call last):
  File "/home/travis/miniconda/envs/unidata-workshop/lib/python3.6/site-packages/nbconvert/nbconvertapp.py", line 373, in export_single_notebook
    output, resources = self.exporter.from_filename(notebook_filename, resources=resources)
  File "/home/travis/miniconda/envs/unidata-workshop/lib/python3.6/site-packages/nbconvert/exporters/exporter.py", line 171, in from_filename
    return self.from_file(f, resources=resources, **kw)
  File "/home/travis/miniconda/envs/unidata-workshop/lib/python3.6/site-packages/nbconvert/exporters/exporter.py", line 189, in from_file
    return self.from_notebook_node(nbformat.read(file_stream, as_version=4), resources=resources, **kw)
  File "/home/travis/miniconda/envs/unidata-workshop/lib/python3.6/site-packages/nbconvert/exporters/notebook.py", line 31, in from_notebook_node
    nb_copy, resources = super(NotebookExporter, self).from_notebook_node(nb, resources, **kw)
  File "/home/travis/miniconda/envs/unidata-workshop/lib/python3.6/site-packages/nbconvert/exporters/exporter.py", line 131, in from_notebook_node
    nb_copy, resources = self._preprocess(nb_copy, resources)
  File "/home/travis/miniconda/envs/unidata-workshop/lib/python3.6/site-packages/nbconvert/exporters/exporter.py", line 308, in _preprocess
    nbc, resc = preprocessor(nbc, resc)
  File "/home/travis/miniconda/envs/unidata-workshop/lib/python3.6/site-packages/nbconvert/preprocessors/base.py", line 47, in __call__
    return self.preprocess(nb,resources)
  File "/home/travis/miniconda/envs/unidata-workshop/lib/python3.6/site-packages/nbconvert/preprocessors/execute.py", line 211, in preprocess
    nb, resources = super(ExecutePreprocessor, self).preprocess(nb, resources)
  File "/home/travis/miniconda/envs/unidata-workshop/lib/python3.6/site-packages/nbconvert/preprocessors/base.py", line 70, in preprocess
    nb.cells[index], resources = self.preprocess_cell(cell, resources, index)
  File "/home/travis/miniconda/envs/unidata-workshop/lib/python3.6/site-packages/nbconvert/preprocessors/execute.py", line 242, in preprocess_cell
    raise CellExecutionError(msg)
nbconvert.preprocessors.execute.CellExecutionError: An error occurred while executing the following cell:
------------------
if response.getData():
    for record in response.getData():
        # Get hdf5
        idra = record.getHdf5Data()
        rdat,azdat,depVals,threshVals = RadarCommon.get_hdf5_data(idra)
        dim = rdat.getDimension()
        lat,lon = float(record.getLatitude()),float(record.getLongitude())
        radials,rangeGates = rdat.getSizes()

        # Convert raw byte to pixel value
        rawValue=np.array(rdat.getByteData())
        array = []
        for rec in rawValue:
            if rec<0:
                rec+=256
            array.append(rec)
        #array=rawValue

        if azdat:
            azVals = azdat.getFloatData()
            az = np.array(RadarCommon.encode_radial(azVals))
            dattyp = RadarCommon.get_data_type(azdat)
            az = np.append(az,az[-1])
        header = RadarCommon.get_header(record, format, rangeGates, radials, azdat, 'description')
        rng = np.linspace(0, rangeGates, rangeGates + 1)
        # Convert az/range to a lat/lon
        from pyproj import Geod
        g = Geod(ellps='clrk66')
        center_lat = np.ones([len(az),len(rng)])*lat
        center_lon = np.ones([len(az),len(rng)])*lon
        az2D = np.ones_like(center_lat)*az[:,None]
        rng2D = np.ones_like(center_lat)*np.transpose(rng[:,None])*nexrad[code]['res']
        lons,lats,back=g.fwd(center_lon,center_lat,az2D,rng2D)
        bbox = [lons.min(), lons.max(), lats.min(), lats.max()]
        # Create 2d array
        multiArray = np.reshape(array, (-1, rangeGates))
        data = ma.array(multiArray)
        if product==135:
            data[data<2] = ma.masked
        elif product==172:
            # <entry displayValue='0.0' pixelValue='6' />
            # <entry displayValue='0.1' pixelValue='16' />
            # <entry displayValue='0.3' pixelValue='32' />
            # <entry displayValue='0.6' pixelValue='48' />
            # <entry displayValue='1.0' pixelValue='64' />
            # <entry displayValue='1.5' pixelValue='80' />
            # <entry displayValue='2.0' pixelValue='96' />
            # <entry displayValue='2.5' pixelValue='112' />
            # <entry displayValue='3.0' pixelValue='128' />
            # <entry displayValue='4.0' pixelValue='144' />
            # <entry displayValue='5.0' pixelValue='160' />
            # <entry displayValue='6.0' pixelValue='176' />
            # <entry displayValue='8.0' pixelValue='192' />
            # <entry displayValue='10.0' pixelValue='208' />
            # <entry displayValue='12.0' pixelValue='224' />
            # <entry displayValue='15.0' pixelValue='240' />
            # <entry displayValue='31.0' pixelValue='255' />

            # The Scale and Offset used in the equation (F = (N - OFFSET) / SCALE), where
            # N is the integer data value and F is the resulting floating point value)
            # to relate the integer data values to physical units are ANSI/IEEE
            # Standard 754-1985 floating point values. Halfwords 31 and 32 contain the
            # Scale, and halfwords 33 and 34 contain the Offset.
            data = ma.array((multiArray - float(threshVals[1])/float(threshVals[0])))
            data[data==0] = ma.masked
        else:
            data = ma.array(threshVals[0]/10. + (data)*threshVals[1]/10.)
            if nexrad[code]['unit'] == 'kts':
                data[data<-63] = ma.masked
                data *= 1.94384 # Convert to knots
            else:
                data[data<=((threshVals[0]/10.)+threshVals[1]/10.)] = ma.masked

        # Save our requested grids so we can render them multiple times
        radar_grid = {
            "code": code,
            "bbox": bbox,
            "lats": lats,
            "lons": lons,
            "data": data
        }
        grids.append(radar_grid)
------------------
AttributeError: 'list' object has no attribute 'getDimension'


VSCode does not pick up stree

Hi, I'm trying to set up our project to use syntax_tree for Ruby code formatting, and I'm having some trouble getting the VSCode extension to consistently pick up the stree executable. If I launch VSCode using the CLI tool (eg. code .) or using the .code-workspace file in our project it all works correctly.
However, if I just launch VSCode directly from the OS (macOS Ventura in this case), I get the following error messages and code formatting does not work.

Starting language server: stree lsp
[Error - 3:09:05 PM] Syntax Tree client: couldn't create connection to server.
Launching server using command stree failed. Error: spawn stree ENOENT

syntax_tree is installed in the bundle for the application and also globally. I use asdf for managing Ruby versions on my machine.
If I click on the "Install Gem" button I get an error about permissions:
Error installing gem: Error: Command failed: gem install syntax_tree
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.

This suggests that it's trying to install the gem for the system Ruby version rather than the version of Ruby selected by asdf.

Same here

This is a little outside my control unfortunately, so it's mostly dependent on how you set up your system. If it's within a project, clearly it's picking it up correctly. If it's not within a project, then it's going to be dependent on how gem resolves on your system. If you're using something like chruby, rvm, or rbenv, then they all have options to set how the global gem command resolves. I'm sorry I don't know asdf very well, but I'm sure there's a way to make it resolve your correct Ruby versions on login. I would suggest starting there.

For any passers-by, I found a solution for this. Set up the Ruby LSP extension for VS Code, and then configure it to use the Ruby version manager of your choice. Once that is done, you will still see the same warnings as in the OP, but the Restart button works, it will load stree using the correct Ruby version.


Compilation error

/home/naths/srcs/elastix/Common/CostFunctions/itkAdvancedImageToImageMetric.hxx:90:21: error:
no member named 'SetUseThreadPool' in 'itk::MultiThreaderBase'
this->m_Threader->SetUseThreadPool( false ); // setting to true makes ...

ITK (master branch from Github)
elastix (master branch from Github)

elastix does not yet support newer versions of ITK yet, where they changed/removed this function. If you compile with an earlier version of ITK, all should be fine.


New version: Cisco.Webex version <IP_ADDRESS>141

Created by 🥟 Dumplings in workflow run #6466.

Log
Updated: <IP_ADDRESS>928 → <IP_ADDRESS>141
Submitting WinGet manifests
Creating manifests
Uploading manifests and making commits
Creating a pull request

Microsoft Reviewers: Open in CodeFlow

/azp run