Initial E2e test for bug #196521

To test this PR, these are the environment variable needed.
	EXPOSEDREGISTRYPATH   - path to the exposed registry for the source cluster
	SOURCEURL             - source cluster URL
	SOURCECONFIG          - path to kubeconfig of the source cluster
	HOSTCONFIG            - path to kubeconfig of the host cluster
	AWSBUCKETNAME         - aws bucket name
	AWSSECRETKEY          - aws secret key
	AWSACCESSKEY          - aws access key
	BACKUPSTORAGEPROVIDER - backup storage provider name

This PR assumes that MTC is installed and creates  controller (if not present), migStorage, migCluster, migPlan and runs a migration.

To test this PR, these are the environment variable needed.
	EXPOSEDREGISTRYPATH - path to the exposed registry for the source cluster
	SOURCEURL           - source cluster URL
	SOURCECONFIG        - path to kubeconfig of the source cluster
	HOSTCONFIG          - path to kubeconfig of the host cluster

Hey @JaydipGabani , just a thought on these env vars from an ease of use perspective, couldn't we extract some of this information without requiring the developer to set these manually?

EXPOSEDREGISTRYPATH - this is available on the source migcluster.status.registryPath
SOURCEURL - this is available on the source migcluster.spec.url
SOURCECONFIG - this could be derived from the source migcluster right?
HOSTCONFIG - this could be derived from the host migcluster right?

It seems like we could extract the needed info by just requiring SOURCE_MIGCLUSTER_NAME and DEST_MIGCLUSTER_NAME.
I always like to think about how we can reduce burden on users/developers to set a bunch of vars, but if the current approach makes things significantly better/easier in certain ways then that's OK too.
Here's a script that turns an SA into a kubeconfig file using the oc CLI for reference: https://github.com/konveyor/mig-log-reader/blob/master/sa2kubeconfig.sh

To test this PR, these are the environment variable needed.
	EXPOSEDREGISTRYPATH - path to the exposed registry for the source cluster
	SOURCEURL           - source cluster URL
	SOURCECONFIG        - path to kubeconfig of the source cluster
	HOSTCONFIG          - path to kubeconfig of the host cluster

Hey @JaydipGabani , just a thought on these env vars from an ease of use perspective, couldn't we extract some of this information without requiring the developer to set these manually?

EXPOSEDREGISTRYPATH - this is available on the source migcluster.status.registryPath
SOURCEURL - this is available on the source migcluster.spec.url
SOURCECONFIG - this could be derived from the source migcluster right?
HOSTCONFIG - this could be derived from the host migcluster right?

It seems like we could extract the needed info by just requiring SOURCE_MIGCLUSTER_NAME and DEST_MIGCLUSTER_NAME.
I always like to think about how we can reduce burden on users/developers to set a bunch of vars, but if the current approach makes things significantly better/easier in certain ways then that's OK too.
Here's a script that turns an SA into a kubeconfig file using the oc CLI for reference: https://github.com/konveyor/mig-log-reader/blob/master/sa2kubeconfig.sh

@djwhatle We are not just running a migration, but we are creating all the dependencies for migration as well, which includes creating migPlan, migCluster for source and a migStorage. To create these objects we need the above information right? or I am going in another direction than initially intended.

@djwhatle We are not just running a migration, but we are creating all the dependencies for migration as well, which includes creating migPlan, migCluster for source and a migStorage. To create these objects we need the above information right? or I am going in another direction than initially intended.

Ah I see. Ok, yes in that case what you're asking for makes sense, so please disregard above comment. I wasn't aware that we had settled on creating all of those. Thought we would be leveraging existing MigClusters.

@djwhatle We are not just running a migration, but we are creating all the dependencies for migration as well, which includes creating migPlan, migCluster for source and a migStorage. To create these objects we need the above information right? or I am going in another direction than initially intended.

Ah I see. Ok, yes in that case what you're asking for makes sense, so please disregard above comment. I wasn't aware that we had settled on creating all of those. Thought we would be leveraging existing MigClusters.
For the host migcluster, if that is being used in the e2e test, that will always exist by default so you probably shouldn't re-create it.

@djwhatle I am not creating migCluster for host, just getting the kubconfig file to interact with the cluster with client-go

Just one question have we run this e2e test on a controller that does not have the bugfix and notice that this test will fail?

Just one question have we run this e2e test on a controller that does not have the bugfix and notice that this test will fail?

Not Yet! But I have tested that it will fail if the data is not present on the destination!

@JaydipGabani some ideas after this get merged to look into:

The list of env variables set is non-trivial, it's not hard, but could be easier. What if we add a config file (YAML) to load those variables? Then we will read the path of the config file in the default place in the project. This will allow for more ease of use IMO
Can we write a doc to run this? for example we need to install ginkgo, gomega, add config etc etc (being repetitive here but just added to consolidate the list, I will keep adding more things as they occur to me)

@alaypatel07 I had the doc file in the list already!
+1 to using config YML for the variables

@JaydipGabani some comments

The DataGenerator image should be coming from quay.io/konveyor instead of your personal org
We should document how to run this E2E test somewhere in the repo, I'd suggest adding a section to HACKING.MD


the class dont update on the built-in editor

there are 2 ways to run this add'on.
1)runing from the godot editor (it apear beside the assetlb tab)
or runing the scene from the project itself:
2)get_tree().change_scene("res:///addons/godot_data_editor/data_editor_gui.tscn")
if i run it from the godot itself, and edit some property
(eg: base_damage, mana_cost or  any other custom property)
and click on the save button, sometimes,  it refuse to update itself.
on the other hand, if you instance it during the runtime of the project (2), it works fine.
you can either fix this or  remove the tab from the godot User interface and ask the user to run it during on the project itself, then remove on the final version to prevent the players from hacking the game.

Hi! I will look into it as soon as possible! To be honest, I have not yet considered to use it with change_scene, but of course it makes sense.


POST Request

We need to add the functionality to perform the get in real time through the server, currently the information is obtained before uploading the local server.

Tratando em outra issue #5


font not rending properly

I'm trying to generate octicons icon fonts using fantasticon.
When I ran it, the resulting font was filled in a strange state.
expected:

actual:

I tried changing the height and using svgo by referring to the following issues, but it did not solve.
Is there any solution?
https://github.com/Workshape/icon-font-generator/issues/53

@yamatsum how did you resolved?

@kabouzeid you can try this tool: https://github.com/oslllo/svg-fixer

Thanks, I also figured this out :)
Funnily enough, I just saw that the project I needed this for is from the author of this issue, @yamatsum 😅
https://github.com/yamatsum/nonicons/pull/11

Small world

I solved it using a figma plugin（https://www.figma.com/community/plugin/771155994770327940/Fill-Rule-Editor）.
However, oslllo/svg-fixer may be easier to solve, so I will verify it myself


[AutoPR compute/resource-manager] VMSS: exposing the requireGuestProvisionSignal field for 2019-03-01

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/7246

(message created by the CI based on PR content)

This PR has been merged into https://github.com/Azure/azure-sdk-for-python/pull/7859


Invalid link in Zephyr document to ACRN page

There's one invalid link in document page for "Getting started guide for Intel NUC "
https://docs.zephyrproject.org/latest/boards/x86/acrn/doc/index.html#on-the-acrn-sos
The latest ACRN GSG guide link should be:
https://projectacrn.github.io/latest/getting-started/rt_industry_ubuntu.html

@NanlinXie can you submit a PR to fix this?

@NanlinXie can you submit a PR to fix this?

This was quick to fix, I hope that helps @NanlinXie . Thanks for providing the corrected link in the bug report!


Remove scrollbar from phone and tablet view

Chrome shows scrollbars

If I remove scroll bars, the page can no longer scroll.
I weighed up the pro's and con's and went with keeping the scroll bar in there.


Set ambient_runtime version in examples ambient.toml

We should update the ambient_runtime version, same as we're updating the deployment id, so that when people clone the repo and try to run the examples it tries to use the last functional nightly version of ambient for the example

Campfire's version updater can be made to do this pretty easily. What's the behaviour of the CLI with -dev versions? We'd want to keep the examples -dev to avoid updating them every day, and then on release we can cut a tag where they're all 0.3 or such.

@philpax Aren't they being updated every day anyway? Since the deployment id is updated? So figured they could just be updated to latest nightly


Automatic renew does not work as expected

Hi, thanks for the super useful library. Mostly it's been working great for me, but I decided to test out the autorenew feature and I could not get it to work.
The autorenew was not working for me and when I began to investigate I realized that the timer callback was aborting. It would run once, maybe twice, and then stop silently. It appears there was an inner exception somewhere in all of the nested tasks occurring and the top-level timer callback is not resilient to inner exceptions maybe? Anyways it was very hard to get much out of break points and no exceptions, but I was able to piece most of it together.
I learned that the autorenew only works for MappingLifetime.Session type of mapping. No where in the docs or anything said this! It would be amazing if you could make just a quick mention somewhere of just a few key points of how the autorenew feature is designed and operates.
I figured it worked when I specified a lifetime manually as well, because honestly it's not any really different as the "session" is just a forced 10 minute lifetime anyways. Most people would use a specified timeout or session as a precaution in case of a crash or unclean shutdown of the application. It is possible that some people would want to start an application, then open a temporary timeout of a specified size, use it for that time, and then stop, and let it just timeout on its own... maybe. But this seems like the less likely default behavior. What do you think?
Well I did eventually figure out this is why my manual lifetimes were not autorenewing. I disabled the code that rejects manual lifetimes, and instead it treats them just like a session. When I tested this, it worked in that while my application ran, it stayed perpetually renewed. But when I closed the application and expected it to timeout, it never did. Sessions of int.MaxValue are long to test at 10 mintues, although I am testing it now. But I expect the same behavior as the code is more or less identical and just differs by time intervals (forced 10 minutes vs. user supplied).
Basically it's as if once my router has multiple temporary mappings created, it somehow turns it into a permanent one (as far as I can tell, I've never let it run super long, but it appears to be permanent). I'm running Tomato 1.28 if that's of any use. I understand this behavior could be the router, but curious why you think that might be?
My suggestions after lots of time lost on this issue:

It would be useful to offer a little more specificity around the feature somewhere in the README or on the WIKI. That it only works for sessions, explain they are 10 minute, autorenewing mapping types, and that manual lifetimes will not autorenew (or change the default behavior).
Also in the README would be nice if there was a super brief mention of debugging/tracing and how to get output out of the library if necessary. Even if an exception is ultimately not the libraries fault, when it's routines hold them hostage and let them die silently, it can deadend debugging. Is there a good way to extract exceptions from all of the nested tasks used by the library, if so shedding just a little bit of light on it would be a huge grace to people finding themselves needing to be able to debug into the project a bit.

Thanks 👍

Seems like the session based lifetime (int.MaxValue) worked!  A little bit more testing need to verify. So I guess that puts things back on my router then with things becoming permanent. Strange that with shorter lifetimes, many in a row, and it I guess it just decides, "stop spamming me, you just get a permanent session!"

Thanks for this! Took me a while to get this to work, but await device.CreatePortMapAsync(new Mapping(protocol, port, port, int.MaxValue, description) worked.


Amend scoring function to allow passing of different scoring functions

There are different scorers here copy pasted from one of @burnedShushi repositories. Currently, the default scorer is hardcoded.
Steps:

Amend rescorer to allow passing different score functions, amend Enum to allow change via Role Config.
Normalize scorer and document rank; I prefer rank as uint64 - it can be used for placing in UI, rather than traditional float.
Amend scoring function to return vec of IndexedDocuments
Create tests for each scorer

See #57


Missing 4,549 items in masks_overlayed_eroded_0_dilated_2/val/distances

For some reason I am missing 4,549 masks in the masks_overlayed_eroded_0_dilated_2/val/distances directory, which I only found out after trying to train the first epoch and having it fail because it couldn't find one.
What do I do? Prepare masks again? How could doing it again fix the problem when it failed to create 4,549 masks the first time? Is there a way to make training just skip missing val masks? I still have the vast majority of them.

@jakubczakon do you have any idea what are possible reasons?

Hi, @carbonox-infernox .
metadata.csv is generated based on what the target folders contain.
So you could re-run prepare_metadata and it should create it based on what is there.
It is quick so I would suggest you do that and check if the size of the new metadata.csv is different than the old metadata.csv .

I ended up preparing masks again, and before I started training I made sure that the number of files in each sub-folder (distances, masks, sizes) matched the number of images in the data set for train and val. Then I prepared metadata again and started training. I set it to go for just one epoch for now, and It'll be done in about 2 hours, so I'll let you guys know how that turned out.

I ran into this issue again with a new training set. preparing metadata again does not fix the problem. It's still trying to find a mask that isn't there.


Simple rtop integration test

To prevent regression.

Great this would have saved at least two issues.

Wait don't merge yet.

YES! It finally failed!


⚠ ClamAV has degraded performance

In fc12a6a, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 251 ms

Resolved: ClamAV performance has improved in 80ae24b after 8 minutes.


Getting weird output on getbootstrap.com

Hi.
I've edited some vars at http://getbootstrap.com/customize/?id=292f34f3447b27068df8 and what is exported contains things like margin-bottom: 192px;. It (the 192px) seems to have nothing to do with the values that I customized. What's wrong?

Have you customized the line-height variable?

Ah, yes. That was the problem. It was set at 16, so that's fixed now. Thanks!


Added Name

@Rajkumar-justcoder as u said i re-pushed the code. Now, you can merge this.

Why css code is modified this much and adding ; at last properly of css
In css we can remove semi colon form last property
Pls add ss of modifications cause u are using some cdn and some icon packs with json files

Thanks for the suggestions @Rajkumar-justcoder. CSS code is modified so much just to revamp the site and give it a little better look. Margins had to be use it to align text and icon from top-left corner to better looking centre area. Icon packs are used for same reason. it would be really helpful if you could merge this code. Raising a pull request again would become hectic. Will really appreciate if u could merge this code only, although i really appreciate your suggestions, Thank You.

Okay nvm
merging its
i was telling because there was some thing to so with that test on left side so


The CARLA server uses the wrong map

Describe our question or idea
Hi, I just installed CARLA 0.9.13 and tried to use the scenario runner to spawn a simple FreeRide scenario
But I got this error:
$ python3 scenario_runner.py --scenario FreeRide_1 --timeout 100
The CARLA server uses the wrong map: Town10HD_Opt
This scenario requires to use map: Town01
No more scenarios .... Exiting

Do I need more maps?
Expected behavior
The scenario runner set-up the scenario
Desktop (please complete the following information):

OS: Ubuntu 18.04
CARLA CARLA 0.9.13
Python 3.6
Version 0.9.13

In short, you are using the wrong map, and you have to manually change the map, or use the --reloadWorld argument.
Why? Scenarios start at a specific location at a specific map, which has to be given by the users. To ensure the correct behavior, Scenario Runner checks that the loaded map is the one the scenario needs and if not, the simulation stops, and you see the message you are reporting.


double constraint validation?

https://docs.google.com/spreadsheets/d/1lzUOvNezo9HbVfJtISofZRbN0ZiI4SV8r7yLT4i7eLA/edit?usp=sharing
When enter value in first input, the constraint validation is performed twice. (Log FormModel.evaluate() to see)
@alxndrsn this could be the big performance improvement opportunity you were looking for :)

It only makes a difference for single questions, not for whole-form-validation. So not as exciting as I had hoped.

Sounds exciting enough to me!  Will try the update in the next couple days, thanks :-)


Discover more Linux distributions

We are trying to use kolide with osquery on Red Hat Enterprise Linux and Fedora, but Kolide shows both as "Ubuntu" on queries. Can Red Hat Enterprise Linux and Fedora be added to the list of detected OSes?

Where does it show up as Ubuntu for you? I thought I had the same issue, as it shows up in the osquery_info table as Ubuntu Xenial but that's the host that built the osquery binary, I think. The os_version table correctly detects Red Hat Enterprise Linux here.
What I would like is the tags on the RHS of the Fleet UI to be editable as currently there's macOS, Ubuntu, CentOS and Windows which means proper RHEL hosts don't appear there.

@bodgit You can create your own labels with whatever queries you like and they will be populated and available on the dashboard as well as for targeting queries.

@zwass that doesn't really help as it's the list of platforms I'd like to change, not the labels, sorry if that wasn't clear. For example, I don't have any Ubuntu hosts, but I do have RHEL (as well as CentOS) so I'd like to be able to update the list of platforms.

@bodgit the RHS labels are just a few special cased built in labels we provide. You get the exact same functionality by manually creating labels, they just don't get fancy icons.
If this doesn't suffice, can you help me understand more about your use case?

Maybe I just want fancy icons :laughing:
Given I have Windows, CentOS and RHEL hosts it would be nice to be able to remove/hide the macOS and Ubuntu labels and add a RHEL one otherwise it looks a bit inconsistent, especially if I try and sell this UI/tool to other colleagues. Just trying to preempt the obvious questions I'll get from them.

@zwass I agree with @bodgit. It would be nice if we could edit those labels. We are RHEL only here, no Ubuntu.

So I tried to use self-created labels, and this is kind of working, however, if you build a query and select the Targets, it shows the predefined labels only (so masOS, Ubuntu, CentOS, and Windows). You only get the self-created labels when you start typing the name of the label. It would be great if this would be more visible in the target selection, that there are more labels available.

I started to look into this, but I'm definitely far away from a front-end dev. Going to drop this for now but leaving notes that hopefully can help the next person to come along (or myself if I get more time).
frontend/utilities/platform_icon_class.js - this is where the special icon platform matching code is. Basically you get icons currently for:

macos
centos
ubuntu
"linux" (fallback for everything that isn't ubuntu / centos? or is this for all linux including those?)
windows

<EMAIL_ADDRESS>- web font (?) with the actual icons in them
frontend/styles/global/_icons.scss - contains "which character" in the woff file each icon is, like kolidecon-ubuntu (and kolidecon-ubuntu-original, but I'm not sure what each is).

Currently requested extra icons / platforms:

RHEL
Fedora
BSD (FreeBSD)

Workaround: Create labels
Short-term fix maybe: Add requested icons
I think a few things that we might want to do over time:

document "how to add additional labels w/ icons" (via pull request to fleet) or something of that nature, to make it easier to contribute new special labels
add the ability to add icons to custom labels (either by uploading an icon or using a URL for an icon on the web, with some restrictions); if using this option, we could consider combining the "special-case" labels with regular labels
have the 'target selecting UI' pull in the names of the self-created labels (see @ohaessler comment)

I don't have enough time to do this right now, but I thought this might be helpful for someone else picking this up.


Error during installation

Hi, I'm getting error during installation:
❌ Installing LuaJIT
Vim:E731: using Dictionary as a String

I'm using Neovim 0.9.5 on macos 14.3.1.
checkhealth luarocks:
luarocks
- luarocks system is not prepared
- OK python3 is available on PATH, and rocks system is ready to be built

Could you please help with it?

Thanks for the error logs! This should now be fixed I believe! Please test on MacOS and let me know if there are any other errors :)

Closing as fixed!


[Bug] No cursor block when using vim bindings in light themes

Describe the bug
As stated in the title, using vim bindings does not show the block cursor when in command (the default) mode.
To Reproduce

Enable vim mode.
Start a new document

Expected behavior
A square block indicating cursor location
Setup Information

Device Type: PC
Operating System: Windows 10 (21H2)
Prism version: 2.2.3
Color Schemes Used: True for all light themes
Obsidian Version: 0.14.15
Obsidian Installer Version: 0.14.15
Related Community plugins:

Sliding Panes (v3.2.3)
Style Settings (v0.4.10)

Hi @cafeclimber,
I've just had a look at this issue and it appears to work correctly in Prism version 2.3.0. Could you let me know if that's the case for you once you update the theme?
Thanks.

Hey @damiankorcz,
It appears to be working now. Is it possible to change the cursor to be solid and flashing instead of a box / make this a setting / where might be the existing setting to change this?
Thanks!

Hi @cafeclimber,
Currently there isn't an option for that but I'll look into adding some customisation for it in an upcoming update.


reading generic json can cause a stack overflow

If the json string comes from an untrusted source, it is possible to cause a stack overflow.
The following code:
  glz::json_t json{};
   auto ec = glz::read_json(json, str);

where str contains very many "[" characters, causes a stack overflow. In my build (debug with sanitizers) it happened after 1988 such characters.
I think this function should either exit with an error on such input, or be marked as "unsafe for erroneous input".

Added a max_recursive_depth_limit in #1202 which fixes this attack vector.


Export timeZone quasiquoter to parse to TimeZone

Closes #1
It is now possible to generate a QuasiQuoter that returns a TimeZone. This enables much of the LocalTime machinery.

Great! Thanks for this; sorry I missed it. I'll get a release out.


Cow: Watch virtual-graph-paper.com

Cow requests the watch of the watch_keyword virtual-graph-paper\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

virtual-graph-paper\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Rejected by Ryan M in Charcoal HQ. Reason: 'per author request; giving report benefit of the doubt'


Opaqueness setting for Lootbeams

Not sure if its possible for the new lootbeams that were added but i'd love the ability to make them a bit more opaque. They're gorgeous and i'd love to be able to make them stand out a bit more

The existing beams are actually lit incorrectly compared to West's original screenshot, which we will be fixing soon, which will make them more vibrant.

@Adam- that's lovely to hear! thank you :)


Can i use this with any Lambdatronic Frölig Kettle?

Has This implemented every Command and Sensor in the Documentation:
https://www.holzheizer-forum.de/attachment/36715-b1200419-modbus-lambdatronic-3200-50-04-05-17-de-pdf/
I have an S4Turbo and want to use it with that. Do you think that will work?

First of all, I'm a "user" only for this HA integration, not the developer!
I'm not sure if I understand your question correct, but this HA integration provide a method (service requests) to communicate with the Fröling Lambdatronic electronic with the special network converter. Inside HA the communication works with MQTT commands. Which values (registers) you want to receive from the Frönling furnace are defined in yaml code.
I receive several values from the furnace, but I think not all values described in your document will be supported. You have to try it by yourself to find out, which values you can receive and which not.


preserve case when explicitly setting scope names

In admin/users.rb I have:
scope 'With API Access', :with_api_access

It shows up in the admin as "With Api Access".
I'd like to be able to preserve the case on API.

+1 on this as well, might look into branching and publishing a fix for this over the weekend.


Populate Sample Data

Codecov Report

Merging #169 (192e93b) into master (cfdd931) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #169   +/-   ##
=========================================
  Coverage     60.67%   60.67%
  Complexity      426      426
=========================================
  Files            85       85
  Lines          1513     1513
  Branches        155      155
=========================================
  Hits            918      918
  Misses          538      538
  Partials         57       57

Impacted Files
Coverage Δ

...ain/java/seedu/programmer/model/student/Email.java
80.00% <ø> (ø)

...va/seedu/programmer/model/util/SampleDataUtil.java
50.00% <ø> (ø)

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 cfdd931...192e93b. Read the comment docs.


Clean up test suite from 3.x.x upgrade

As part of merging in #717 to upgrade to the Firebase 3.x.x SDK, we made a lot of testing changes and the test suite is now pretty unstable and does not pass in Travis. We need to clean things up in general and specifically focus on:

Defining a better tick() method to force the digest loop to update.
Make sure our promise chains are set up properly and that we are waiting for things properly. For example, this test does not wait for the Firebase set() to complete.
Make sure the e2e tests actually pass (e.g. the Todo app has two failing tests).

sounds good!!

did you guys just finished the angularfire 2.0 ? I see that the version is 2.0 now ?

Yes, version 2.0.0 of AngularFire has been released and you can see the change log here. This bug is tracking the build failures. We wanted to get the release out instead of waiting for us to tackle all the build failures which seemed more like testing issues than actual code issues.

See #740 for first batch of improvements

@abehaskins - I think we can close this one now that the tests are fast and run reliably. Please re-open if there was anything else you meant to do.


Add chain-id persistent flag

Based on #499, need that to be merged first.

Fixes #498

@akhilkumarpilli lgtm, just fix conflicts

great! @anilCSE / @akhilkumarpilli please resolve the conflicts


Microsoft.Authorization/roleDefinitions API Version reports as too old despite being the most recent from swagger

Hi
When using this resource: Microsoft.Authorization/roleDefinitions@2018-01-01-preview
ARM-TTK gives error on API being too old.
The AllAzureResources.cache.json has an apiVersion of 2018-07-01
The most recent version available here is 2018-01-01-preview
The bicep linter reports 2018-07-01 does not have linters available.
So it seems we can have to either trade type validation + documentation vs. a valid arm-ttk test.
Can we get validation + docs updated (preferably), or remove 2018-07-01 as a valid version from the cache, given it seems to be "undocumented"?

TTK is pulling from the manifest in production - 2018-07-01 is the latest there... So that's in prod.
ack on getting the docs and tooling (i.e. swagger) to match...  Can you file this issue in the bicep repo (i.e. missing apiVersion)?
They tend to have a good/better track record of getting platform changes in...

@bmoore-msft I see 'wsmelton' beat me to it with this issue
Based on your recommendation to post in biceps issue tracker, I am closing this issue with the above reference.


Do not fetch development dependencies

If I add dependency from github then bundle will fetch it's development_dependencies. This fix prevent it

Please add test coverage for this change

Ugh I forced push origin/master to Paxa/master which closed the PR so I can't actually push up my tests. I'll make a new PR :(

Thank you


Tomee 2465

Jira task : https://issues.apache.org/jira/browse/TOMEE-2465

Conflicts resolved and PR merged


EF7 fires several queries instead of 1 query with smart join -- and worse

var enrichedProducts = this.productContext.Products
  .AsNoTracking()
  .Where(p => productNumbers.Contains(p.SAPProductNumber))
  .Select(p => new
    {
      SAPProductNumber = p.SAPProductNumber,
      DisplayName = p.DisplayName,
      Brand = p.Brand,
      Type = p.Type,
      MultimediaValueEpochTime = p.ProductMultimedias
        .Where(pm => pm.Visible == true
                  && pm.ValueEpochTime != null)
        .OrderByDescending(pm => pm.MainItem == true)
        .ThenBy(pm => pm.SortOrder)
        .Select(pm => pm.ValueEpochTime)
        .FirstOrDefault()
    })
  .ToList();

productNumbers is a List and contains 8 product numbers.
EF7 fires 9 queries to SQL Server. The first query actually translates neatly to IN (...8 numbers...). Next EF7 fires 8 identical queries to SQL Server that aren't even correlated to the 8 numbers. 8 times tens of thousands of records from the ProductMultimedias table are fetched!

This happens because of
MultimediaValueEpochTime = p.ProductMultimedias
        .Where(pm => pm.Visible == true
                  && pm.ValueEpochTime != null)
        .OrderByDescending(pm => pm.MainItem == true)
        .ThenBy(pm => pm.SortOrder)
        .Select(pm => pm.ValueEpochTime)
        .FirstOrDefault()

part in the projection. EF currently can't handle collection projections well. Queries you see are not correlated with the main query because that correlation is happening on the client currently. You can try using Include on that navigation, projecting the entire collection and then performing the rest of the query on the client. It will still fetch all the rows from ProductMultimedias but should do so only once, and not 8 times.

Something like this:
var enrichedProducts = this.productContext.Products
  .Include(p => p.ProductMultimedias)
  .AsNoTracking()
  .Where(p => productNumbers.Contains(p.SAPProductNumber))
  .ToList()
  .Select(p => new
    {
      SAPProductNumber = p.SAPProductNumber,
      DisplayName = p.DisplayName,
      Brand = p.Brand,
      Type = p.Type,
      MultimediaValueEpochTime = p.ProductMultimedias
        .Where(pm => pm.Visible == true
                  && pm.ValueEpochTime != null)
        .OrderByDescending(pm => pm.MainItem == true)
        .ThenBy(pm => pm.SortOrder)
        .Select(pm => pm.ValueEpochTime)
        .FirstOrDefault()
    })
  .ToList();

Improving this translation is already tracked by https://github.com/aspnet/EntityFramework/issues/4007, so I'll close this one out.

'not planned'? Why? We always intent to fix bugs in our code. I guess I should stick to EF6 forever? EF Core is still not up to par compared to EF6 when it comes down to query generation.

@jancg This is a really old issues that was closed 6 years ago. All that is happening here is that the GitHub closed-reason is changing. If you think there is still a bug here, then please attach a small, runnable project or post a small, runnable code listing that reproduces what you are seeing so that we can investigate.


Exporting issues from After effects

Hello there,
I'm new to the whole HMTL, coding thing, I've been set a project at work to get some SVG's for a site, so I've created a little test animation in After Effects, but upon rendering, it goes whacky.
Here are some images:

This is how the imagery is meant to look, but when I click render on the bodymovin window, and preview the animation inside the console, I get this result:

The code is also out of whack, it looks crazy:
bodymovin.js.zip
Hope somebody can help!
Many thanks

I'm having a similar issue with the exporting; except that I'm not getting anything to show up in the 'Preview' window.  Do I need to be selecting the layers and all of the elements in the timeline?

I missed this issue.
@elgamble if you're still trying to solve this, can you send me the ae project?
@kencieszykowski you don't need to select the layers. Can you share your .ae project with me?

hello bodymovin,
First of all thank you for this great pluggin !
Well im getting the exact problem as described by @elgamble and @kencieszykowski with solid element. While rendering with the bodymovin plugin no animation showed up.
Thanks for help.
(I join the project so u can see what's going on !).
AmazingAppAnim.aep.zip

Hi, unfortunately the radio waves effect is not supported.
Only a few effects are right now.

Thank for your answer. Mean while i corrected the composition and then used Shape Layers, then every runs tight.

@bodymovin which ones are supported?

@sebbean Here is the list
https://github.com/airbnb/lottie-web/wiki/Effects

Thanks you very much
On Wed, Feb 14, 2018 at 8:08 PM hernan<EMAIL_ADDRESS>wrote:

@sebbean https://github.com/sebbean Here is the list
https://github.com/airbnb/lottie-web/wiki/Effects
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/airbnb/lottie-web/issues/130#issuecomment-365820282,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAZ4PeNcXt-X1AjObe1-NK6vGQL90ywBks5tU63TgaJpZM4JlVMp
.


Loading Operation Failed

Sorry I was opening the wrong exe file.

No worries. Happens to everyone. I hope to consolidate that issue with the next release of T3.


Update preferences look to match UI design

🚀 Feature

This requires adding a QSplit and reorganizing buttons a bit.

Motivation

Pitch

Alternatives

Additional context

The work is divided into 2:

[ ] Updating the left hand side
[ ] Updating the right hand side.

gorgeous!

@liaprins-czi , do we want to be able to resize the left/right part of the dialog, like if it was using a splitter?

@goanpeca We don't need to allow resizing for the preferences, we should just have a good default width that allows all the section labels (on the left side) to show completely.

@goanpeca  can we close this one?


Allow LUT calibration when no USB grabber is present

Allows to use other than USB video source for the HDR to SDR tone mapping LUT calibration, when the grabber is not present or the video grabber support was disabled in the build configuration.
Should make the calibration work e.g. for Webos graber-less build.

Hi, since there is no documentation here for the LUT calibration for LG webOS, wanted to know if the calibration for webOS still requires using a Windows computer capable of displaying HDR content and having HyperHDR installed. The Windows computer must be connected to the HDMI input of the TV so that the calibration page is displayed on the TV screen (as HDR content) and live preview in HyperHDR (captured by the grabber). Does HyperHDR then have to get data from webOS Grabber via flatbuffer, or the calculation simply follows via the instance screen capture with priority 245 and the tone mapping from HDR to SDR in software screen capture should be switched off?
What is the best way to proceed here?
Thanks in advance.

I'm also unable to get calibration to start with flatbuffer, seems like the LutCalibrator::assignHandler method:https://github.com/awawa-dev/HyperHDR/blob/5950b22b25c3aa1f018b020543c80076e667e252/sources/utils/LutCalibrator.cpp#L106 never called when flatbuffer is the source (I tried adding extra logging by https://github.com/asturel/HyperHDR/commit/caa2bc88933b4c5e9a5f8efa9248d50e49d4c21b). The JsonAPi lut-calibration method returns
{"success": true, "command": "lut-calibration", "tan": 1}

https://github.com/awawa-dev/HyperHDR/blob/5950b22b25c3aa1f018b020543c80076e667e252/sources/api/JsonAPI.cpp#L1346
But there's nothing in the logs with "CALIBRATOR".

Hi
It's very outdated sources but it's invoked by https://github.com/awawa-dev/HyperHDR/blob/5950b22b25c3aa1f018b020543c80076e667e252/sources/api/JsonAPI.cpp#L1342 via signal.
I just want to explain that the changes in the beta were available for 3 months and you could then submit comments that were taken into account on an ongoing basis. Currently, I'm taking a long well-deserved break from coding after the release of v20. The configuration without a grabber is not included in my tests because I treat it as a niche setup and I dont have grabberless setup like WebOS (BTW which limit performance of calibration by performing YUV to RGB conversion on its own). But of course, if you find a problem and are able to propose a solution, open a PR. If I have an idea, I will try to advise you.

Thanks, yeah sorry for that, I found that call, but "for some" reason the connected signal actually never runs in the lut calibrator, my guess was the same: its because we have no grabber, I've checked the ifdefs, some events but couldn't figure out, i hoped you have some idea how should/could debug this. Thanks for v20, enjoy your deserved relaxing.

Thanks. The model (both calibrator and grabber handler) was rewritten before beta1 and it has changed completely. But now that I looked into current code the issue may be here:
https://github.com/awawa-dev/HyperHDR/blob/52f12b4ec9753f0b00ddeeb98d709b15b55a0444/sources/api/HyperAPI.cpp#L1031
it should be check for nullptr:
_lutCalibrator->incomingCommand(_instanceManager->getRootPath(), (_videoGrabber != nullptr) ? _videoGrabber->grabberWrapper() : nullptr, getActiveComponent(), checksum, _startColor, _endColor, limitedRange, saturation, luminance, gammaR, gammaG, gammaB, coef);

Thanks, turned out the issue was "related to grabbers", I haven't checked that the issue is persist on the latest codebase, but it  was the following:
Every grabber ctor registered the ColorRgb metatype:
qRegisterMetaType<Image<ColorRgb>>("Image<ColorRgb>");

, but since we had no grabber, we run into this error:
QObject::connect: Cannot queue arguments of type 'ColorRgb'
(Make sure 'ColorRgb' is registered using qRegisterMetaType().)

Strange... the type is registered when the main daemon starts https://github.com/awawa-dev/HyperHDR/blob/52f12b4ec9753f0b00ddeeb98d709b15b55a0444/sources/hyperhdr/HyperHdrDaemon.cpp#L89

Probably ColorRgb could be also registered there.

I dont know why, but qRegisterMetaType<Image<ColorRgb>>("Image<ColorRgb>");  didnt worked for me, only 	qRegisterMetaType<ColorRgb>("ColorRgb"); (i did it in LutCalibrator ctor)

If the Image type was not registered, you would not have a preview in the live preview window because it is also sent there by signals. I suspect that in the older version this could have resulted from a different life cycle of the calibrator (the moment in which it was created), but this was later changed. You will definitely need a fix https://github.com/awawa-dev/HyperHDR/pull/518#issuecomment-2025721396 in the latest version and it should work.
BTW you probably also need to disable tone mapping in flatbuffer before you start calibration. Otherwise strange things may happen.


ledger

Closes #196

@Falilah what happened, why did you close the PR? :open_mouth:

I was having conflicts issue, so I did git rebase  and all my work cleared, I am trying to bring them up by writing  it back.
I actually did not know it will affect all the work that has not been merged.
I am so sorry.

Ah, no problem! It happens, and it's frustrating every time it does...
Once you revert everything, feel free to reopen the PR, I'll get a notification


[ACS] Add v3 deprecation warnings

Description
Add deprecation warnings for ARO v3, cc @sakthi-vetrivel
Testing Guide
n/a
History Notes

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.

ARO

Moved to https://github.com/Azure/azure-cli/pull/15802


Add textobjects.select.lookahead option to select the next textobject

Haven't added docs, if you think this functionality is in scope of the plugin let me know and I can add docs.
This allows select to look ahead in the syntax tree if it cannot find a match with the cursor position in it. E.g.
local x = 'hello' -- <- your cursor is here and you press `vaf`
function foo()  -- ----
  print('foo')  --     | <- this would be selected
end             -- ----

Sample Config:
treesitter.setup {
    textobjects = {
        select = {
            enable = true,
            lookahead = true,
            keymaps = {
                ['af'] =<EMAIL_ADDRESS>            }
        },
    }
}

I haven't tested this yet but the functionality is nice. The reason why this hasn't been merged yet is that I originally wanted to change the logic of that function or finding textobjects in general. The function and logic of get_textobject_at_point is way too complicated for something that is essentially not much different from next/previous_textobject.
In particular I want to get rid of get_capture_matches_recursively because it used the slow nvim-treesitter query aggregation instead of directly using the API provided by nvim. I wanted that all functions would use a version of find_best_matches or better find_n_best_matches where you can steer the behavior of the function by a scoring function and filter function, This makes it much easier to implement a feature of counts and also look ahead / look behind much easier (you can just score size and position of the textobject) and I can try to make this function find_n_best_matches fast as it can be reused in many places of nvim-treesitter.
But the code looks nice so I can review it on the weekend and we have a nice intermediate solution that I can probably copy some parts over to the refactor.

Feels very cool! Thanks for this nice work. But a refactor for this plugin is overdue. I have the feeling that this would also simplify the implementation of this feature.

If you do refactor would you also be changing the plugin interface? I'm wondering because it might be worthwhile to change the textobjects.select.keymaps semantics for table values, right now a table value for keymaps indicates individual queries for specific languages, but changing the table to be a list of opts (e.g. langs, lookahead) would allow for some interesting customization that doesn't need to apply to all the keymaps (like lookahead does right now in this PR). For example, a single keymap might want to be able to change the operator-pending behaviour to select with V (by line) instead of with v (current behaviour). Using V instead of v would be useful for @function.outer but less useful for @call.outer. I know breaking backwards compatibility can be rough, but since the language specific queries doesn't work (#65) right now anyways, I think it would be worthwhile if there is a refactor.
Really enjoy the plugin btw.


Fix for crash that came from trying to access an undefined property

What's this PR do?
Fixes crash that comes from attempting to access signup_id when it's undefined. Can particularly be seen from sending a GET request to the /users endpoint. Also fixes unit tests that failed due to the aforementioned bug (oops :bow:)

:+1:


ISO 639-1 is not sufficient for language fields

Currently, it is specified that language fields follow ISO 639-1.
See:

https://github.com/SAP/abap-file-formats/blob/c4d55fdedff20ef3b2a622a2230e76520860f619/docs/specification.md#language
https://github.com/SAP/abap-file-formats/blob/c4d55fdedff20ef3b2a622a2230e76520860f619/docs/json.md#original-language

SAP language code representing all possible languages does differentiate not only for the language but also for countries. ISO639-1 does not specify any country information in the language code.
For example there are differentiations in SAP system for different countries with language English. As SAP language code "EN" represents English United States SAP language code "6N" supports English United Kingdom. There are further country-specific SAP language codes for Englsish. But all are represented by ISO 639-1 language code "en".
Same issue also exists for other languages (Arabic, Chinese, Dutch, French, German or Spanish).
See SAP Note https://launchpad.support.sap.com/#/notes/73606.
During serialisation and transforming SAP language into the ISO 639-1 code, the information of the country is lost (or the wrong language code might be stored in the system).

Instead of ISO 639-1 we could use following option to represent SAP language

SAP language code like "EN", "6N" ...
Locale like "en_US", "en_UK", ...
Combination of ISO 639-1 language and ISO 3166-1 country code separated by an underscore*

*) Remark: I saw many examples where the locale is rendered with a hyphen instead of an underscore (e.g., "en-US", "en-UK", ...). SAP's APIs serialize it with an underscore.

Similar topic was also discussed in https://github.com/SAP/abap-file-formats/issues/34

https://en.wikipedia.org/wiki/IETF_language_tag

https://www.w3.org/International/questions/qa-choosing-language-tags

Beside the options I mentioned above, we could also use BCP47 language tags.
See also:

https://www.ietf.org/rfc/rfc5646.txt
https://www.ietf.org/rfc/rfc4647.txt

RFC5646 section 4.1 states following:

Use as precise a tag as possible, but no more specific than is
justified.  Avoid using subtags that are not important for
distinguishing content in an application.

As far as I understand this section, we could stay with our existing language tags (e.g., "en" for SAP language "EN" representing English (US)), but can additional information as soon as it is needed. I.e., if it should be English (Great Britain), we could use language tag "en-GB". Same would be valid for any other region/script for the English language.

Necessary steps to address this issue:

[ ] Decision which approach to follow
[ ] Update documentation in this repository
[ ] Adapt schema generator in the tools repository
[ ] Adapt all schemas in this repository

Decision: We plan to follow the approach of BCP47 language tags (see above). Whenever possible we stick to short language tags using the main language only, whenever possible.

Theoretically, we could replace the existing pattern ("^[a-z]+$") in the schema with value "^[a-z]{2,3}(?:-[A-Z][a-z]{3})?(?:-[A-Z]{2})?$" to address all languages supported by SAP (which is a subset of BCP47 language tags)
We think this would be somehow over engineered. We don't have patterns for other fields so far. Any objections?
This means the schema will only have the addition "minLength": 2.
Old code for original Language
        "originalLanguage": {
          "title": "Original Language",
          "description": "Original language of the ABAP object",
          "type": "string",
          "minLength": 2,
          "maxLength": 2,
          "pattern": "^[a-z]+$"
        },

New code for original language
        "originalLanguage": {
          "title": "Original Language",
          "description": "Original language of the ABAP object",
          "type": "string",
          "minLength": 2
        },

Maybe, it is more helpful if we list all supported languages based on SAP Note https://launchpad.support.sap.com/#/notes/73606 in our documentation


sift: cannot execute binary file: Exec format error

Running virtualized 32-bit Ubuntu 16.04.3 LTS. Successfully validated SHA256 signature,  move file to mv sift-cli-linux /usr/local/bin/sift and ran chmod 755 /usr/local/bin/sift.
When type sift --help, got error message: "sift: cannot execute binary file: Exec format error"
Is sift-cli-linux compiled for 64-bit? If so, why can I successfully run sift-cli-linux.sha256.asc on it? Is there a 32-bit sift-cli-linux binary? How do I compile for 32-bit? It's just javascript in executable wrapper.
Thanks.

I’m curious why you are running 32 bit?
SIFT is only guaranteed to install in a 64 bit environment and the cli is only compiled in 64 bit.
Regards,
Erik
Sent from my iPhone

On Oct 12, 2017, at 12:05, richdorfman<EMAIL_ADDRESS>wrote:
Running virtualized 32-bit Ubuntu 16.04.3 LTS. Successfully validated SHA256 signature, move file to mv sift-cli-linux /usr/local/bin/sift and ran chmod 755 /usr/local/bin/sift.
When type sift --help, got error message: "sift: cannot execute binary file: Exec format error"
Is sift-cli-linux compiled for 64-bit? If so, why can I successfully run sift-cli-linux.sha256.asc on it? Is there a 32-bit sift-cli-linux binary? How do I compile for 32-bit? It's just javascript in executable wrapper.
Thanks.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Thank you for answer. Even though I am running 64-bit Windows 7, AMD processor with virtualization supported and enabled in BIOS, install of any 64-bit Linux distro in Oracle VM fails. The VM doesn't seem to recognize BIOS virtualization setting for 64-bit (AMD-V) and only successfully installs 32-bit distros in VM.
Best,
Rich

I'm trying to run fastq-dump from sratoolkit but I get the output: "bash: ./cannot execute binary file: Exec format error". I'm using 64bit windows 7 professional


TiTiler STAC viewer returns 404

https://user-images.githubusercontent.com/866124/132497769-df2ab162-f45f-4e0a-afdb-0bad2f9563aa.mp4

are you using docker-compose?
if not can you make sure to have the TITILER_ENDPOINT env set pointing the eoapi.raster endpoint
https://github.com/developmentseed/eoAPI/blob/master/docker-compose.yml#L29

yes, I'm using default docker-compose.yml

the url seems weird raster/stac/viewer

👍 yep, confirmed I'm not an docker expert but it seems that https://github.com/developmentseed/eoAPI/blob/master/docker-compose.yml#L29 pass the word raster instead of http://<IP_ADDRESS>:8082 🤷

Correct, raster is the name which is used to communicate between containers and it is not available from the docker host. As you mentioned using http://<IP_ADDRESS>:8082 solves the issue:

I've hardcoded the host in the docker-compose file https://github.com/developmentseed/eoAPI/blob/master/docker-compose.yml#L34


[flutter_svg] i cant set custom user agent through headers

Imported from https://github.com/dnfield/flutter_svg/issues/1029
Original report by @joukhar on Jan 11, 2024
   SvgPicture.network(
              iconUrl,
              fit: BoxFit.contain,
              width: 50.0.w,
              height: 50.0.h,
              headers: {'User-Agent': 'AppName/1.0.0',},
            ),

the result: Dart/3.2 (dart:io), AppName/1.0.0

it took too long that i forgot about it


Fix typo in EMPTYFILE

ENPTYFILE -> EMPTYFILE

@blueelm-alex : Thanks for your contribution! The author, @pmasl, has been notified to review your proposed change.

@blueelm-alex I couldn't see any change to the content. Which typo did you fix? Thanks.

@rjagiewich second line. Approved. Thank you!

#sign-off


Implement versioned .js.flow

Proof of concept for #4917
Has bad performance on all resolutions
Performance checks
Current measurements: https://gist.github.com/goodmind/65695c3b7a3aa0766812b15779a984dc

Build flow binary
Run flow check --profile on codebase
Record results
Repeat with regular flow binary and this PR, properly stopping all servers before running new binary

@nmote how can I test server restart?

I took a quick look and didn't see any existing examples of testing for server restart. With that in mind, I would be happy if you manually test that the server restarts and update the PR description with the steps you took.

It appears that we don't have Core's String module available for our internal build, so the build here is failing. I would have mentioned this sooner but this was masked by another build issue that was easy to fix.
@mroch, do you know if it would be reasonable to pull in Core's String? @goodmind, if not, could you rewrite this without using that library?
Sorry, I know it's not a good developer experience to have a separate build system that you can't see or use. Unfortunately there's not a whole lot we can do about that currently.

Yeah, it just needs substr_index, couldn't find this in jane street core

@nmote I removed Base

Unfortunately the test you've added in this commit fails on Linux. Do you have access to a Linux development environment to look into this failure?

@nmote no, I'm on Mac, what fails?

@nmote any news?

Yes, I've been trying to get to this. Sorry again for the delay 😞
I'm planning to rebase it past the ocamlformat change for you, since I'm not sure whether we have ocamlformat properly set up on GitHub yet. I was hoping to get to that yesterday, but ran out of time. I should be able to do that and give you a review today.

I've rebased this past the ocamlformat update and I put up #8135 with the updated code. Feel free to take what's there and push to your branch here.
I'll do a round of review over there, so that I don't have to wait for you to update this PR.

I've done a round of reviewing over there. Let me know when you get a chance to respond.

I'm still concerned about the code in the types_versions_candidates function and node_paths_part.ml -- see my comment in #8135

Closing since there hasn't been any movement on this for some time


Sign VRTs

GDAL 3.4 added new STACIT and STACA drivers: https://gdal.org/drivers/raster/stacit.html, https://gdal.org/drivers/raster/stacta.html
My understanding is that these hit a STAC endpoint and build up a VRT with URLs to the STAC items or assets.
❯ gdalinfo "STACIT:\"https://planetarycomputer.microsoft.com/api/stac/v1/search?collections=naip&bbox=-100,40,-99,41&datetime=2019-01-01T00:00:00Z%2F..\":asset=image" > image.vrt

c/Users/taugspurger via 🐍 v3.10.0 via 🅒 gdal=3.4 took 2s
❯ cat image.vrt
Driver: VRT/Virtual Raster
Files: /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/39099/m_3909907_ne_14_060_20190709.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/40099/m_4009963_se_14_060_20190709.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/40099/m_4009964_se_14_060_20190709.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/40099/m_4009964_sw_14_060_20190709.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/39099/m_3909907_nw_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/39100/m_3910008_ne_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/39099/m_3909906_nw_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/39099/m_3909906_ne_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/39099/m_3909905_nw_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/39099/m_3909905_ne_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/39099/m_3909904_nw_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/39099/m_3909904_ne_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/39099/m_3909903_nw_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/39099/m_3909903_ne_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/39099/m_3909902_nw_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/39099/m_3909902_ne_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/39099/m_3909901_nw_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/39099/m_3909901_ne_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/40099/m_4009957_se_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/40100/m_4010064_se_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/40099/m_4009963_sw_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/40099/m_4009962_sw_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/40099/m_4009962_se_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/40099/m_4009961_sw_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/40099/m_4009961_se_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/40099/m_4009960_sw_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/40099/m_4009960_se_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/40099/m_4009959_sw_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/40099/m_4009959_se_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/40099/m_4009958_sw_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/40099/m_4009958_se_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/40099/m_4009957_sw_14_060_20190711.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/39098/m_3909801_nw_14_060_20190713.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/40098/m_4009857_sw_14_060_20190713.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/39099/m_3909908_nw_14_060_20190828.tif
       /vsicurl/https://naipeuwest.blob.core.windows.net/naip/v002/ks/2019/ks_60cm_2019/39099/m_3909908_ne_14_060_20190828.tif
Size is 161196, 25023
Coordinate System is:
PROJCRS["NAD83 / UTM zone 14N",
    BASEGEOGCRS["NAD83",
        DATUM["North American Datum 1983",
            ELLIPSOID["GRS 1980",6378137,298.257222101,
                LENGTHUNIT["metre",1]]],
        PRIMEM["Greenwich",0,
            ANGLEUNIT["degree",0.0174532925199433]],
        ID["EPSG",4269]],
    CONVERSION["UTM zone 14N",
        METHOD["Transverse Mercator",
            ID["EPSG",9807]],
        PARAMETER["Latitude of natural origin",0,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8801]],
        PARAMETER["Longitude of natural origin",-99,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8802]],
        PARAMETER["Scale factor at natural origin",0.9996,
            SCALEUNIT["unity",1],
            ID["EPSG",8805]],
        PARAMETER["False easting",500000,
            LENGTHUNIT["metre",1],
            ID["EPSG",8806]],
        PARAMETER["False northing",0,
            LENGTHUNIT["metre",1],
            ID["EPSG",8807]]],
    CS[Cartesian,2],
        AXIS["(E)",east,
            ORDER[1],
            LENGTHUNIT["metre",1]],
        AXIS["(N)",north,
            ORDER[2],
            LENGTHUNIT["metre",1]],
    USAGE[
        SCOPE["Engineering survey, topographic mapping."],
        AREA["North America - between 102°W and 96°W - onshore and offshore. Canada - Manitoba; Nunavut; Saskatchewan. United States (USA) - Iowa; Kansas; Minnesota; Nebraska; North Dakota; Oklahoma; South Dakota; Texas."],
        BBOX[25.83,-102,84,-96]],
    ID["EPSG",26914]]
Data axis to CRS axis mapping: 1,2
Origin =<PHONE_NUMBER>00000023283,4435589.400000000372529)
Pixel Size = (0.600000000000000,-0.600000000000003)
Corner Coordinates:
Upper Left  (  408965.400, 4435589.400) (100d 4' 2.98"W, 40d 3'56.33"N)
Lower Left  (  408965.400, 4420575.600) (100d 3'55.41"W, 39d55'49.44"N)
Upper Right (  505683.000, 4435589.400) ( 98d56' 0.08"W, 40d 4'13.97"N)
Lower Right (  505683.000, 4420575.600) ( 98d56' 0.55"W, 39d56' 6.99"N)
Center      (  457324.200, 4428082.500) ( 99d29'59.87"W, 40d 0' 6.67"N)
Band 1 Block=128x128 Type=Byte, ColorInterp=Red
  Description = Red
Band 2 Block=128x128 Type=Byte, ColorInterp=Green
  Description = Green
Band 3 Block=128x128 Type=Byte, ColorInterp=Blue
  Description = Blue
Band 4 Block=128x128 Type=Byte, ColorInterp=Undefined
  Description = NIR
  Metadata:
    description=near-infrared

It'd be great if sign could handle this case. I imagine sign now taking

A string that looks like a VRT, find the URLs, and sign them. Returns a new string.
os.PathLike, which would infer if the contents look like a VRT (is that hard?). The output would be... a new file? written in place? a string?
Open file objects

Some of these are tricky, since sign already takes a string which it assumes is a URL. But I think it'd be convenient to stretch things a bit and shouldn't introduce any ambiguities.

#33 handles in-memory strings.
I'm actually going to close this. If we come up with a nice with to support filepaths / files in the future, then we can implement it then. For now, users can do
p = Path("my-data.vrt")
p.write_text(planetary_computer.sign(p.read_text()))


refactor: mock response with pytest_httpx

Status
IN DEVELOPMENT
Description
Impacted Areas in Library

Which issue(s) does this pull-request fix?

Closes: #208
Any special notes for your reviewer?

Checklist

[ ] Automated tests exist
[ ] Updated Package Requirements (if required, and with maintainers' approval)
[ ] Local unit tests performed
[ ] Documentation exists link
[ ] Local pre-commit hooks performed
[ ] Desired commit message set as PR title and description set above
[ ] Link to relevant GitHub issue provided

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

29 of 29 (100.0%)  changed or added relevant lines in 6 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.3%) to 97.047%

Files with Coverage Reduction
New Missed Lines
%

src/genai/services/prompt_template_manager.py
2
95.37%

Totals

Change from base Build<PHONE_NUMBER>:
0.3%

Covered Lines:
2333

Relevant Lines:
2404

💛  - Coveralls


feat: implement 0x47 - SELFBALANCE

Since
Istanbul
Group
Block Information
Description
0x47 - SELFBALANCE
Index 1 is top of the stack. See PUSH.NotesSemantically equivalent of calling BALANCE with ADDRESS as parameter, but with a reduced gas cost.Stack outputbalance: balance of the current account in wei.Example
| Input | Output
-- | -- | --
1 |   | 9
Reproduce in playground.Error casesThe state changes done by the current context are reverted in those cases:Not enough gas.Stack overflow.

I'll take this one as well

I'll take this one as well

Please coordinate with @LucasLvy

it's all yours


How do you create a Master Detail page? (v4)

I went through the docs multiple times but I'm still not sure how to create a layout that can share some common components.
How do you create a layout that always has a header and footer, and only body changes? And how do you create more routes within that body? (bonus)
thanks

the basic example does this, doesn't it?
On Thu, Sep 22, 2016 at 6:30 AM acpower<EMAIL_ADDRESS>wrote:

I went through the docs multiple times but I'm still not sure how to
create a layout that can share some common components.
How do you create a layout that always has a header and footer, and only
body changes? And how do you create more routes within that body? (bonus)
thanks
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/ReactTraining/react-router/issues/3928, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AAGHaBFepu3yF9ovlrprNn74t5oFOTa0ks5qsoLsgaJpZM4KD5Gs
.

Not exactly.
I want to do something like:
<Router>

    <Switch>
      <DefaultLayout>
        <Route exact path={'/'} component={Dashboard} />
      </DefaultLayout>

      <EmptyLayout>
        <Route component={NotFound} />
      </EmptyLayout>
    </Switch>

</Router>

Where the app uses a different container component based on which route matches.

@LukeAskew Have you found a better solution so far? I've got the same issue here. The page layout is expected to contain a header and a sidebar in all cases except when it's 404. The trick with routes.map would work, but it would also generate multiple instances of the header and the sidebar, so when a user is switching between routes, the layout DOM gets a deep refresh :–(

@ryanflorence how would you solve this?

const routes = [
  { path: '/one',
    component: One
  },
  { path: '/two',
    component: Two
  },
  { path: '/three',
    component: Three
  }
]

<Router>

    <Switch>
      {routes.map(route => (
        <Route path={route.path} component={Header}/>
      ))}
    </Switch>
    <Switch>
      {routes.map(route => (
        <Route path={route.path} component={Sidebar}/>
      ))}
    </Switch>

    <Switch>
      {routes.map(route => (
        <Route path={route.path} component={route.component}/>
      ))}
      <Route component={NoMatch}/>
    </Switch>

</Router>

There's a bug right now #4578 that will avoid the remounting of Header and Sidebar as the routes change, but does this do what you want?

@LukeAskew
const routes = [
  { path: '/one',
    Component: One,
    Layout: Layout1
  },
  { path: '/two',
    Component: Two,
    Layout: Layout2
  },
  { path: '/three',
    Component: Three,
    Layout: Layout2
  }
]

<Router>

    <Switch>
      {routes.map({ path, Layout, Component } => (
        <Route path={route.path} render={(props) => (
          <Layout {...props}>
            <Component {...props}/>
          </Layout>
        )}/>
      ))}
    </Switch>

</Router>

Thanks for your reply @ryanflorence – this is close to what I was looking for, assuming that the componets are reused. What would be good as well is to be able to control that top-level
, because someone might want to end up with something like this:
// /
<LayoutForPageWithContent>

  <Sidebar />
  <Home />
</LayoutForPageWithContent>

// /about
<LayoutForPageWithContent>

  <Sidebar />
  <About />
</LayoutForPageWithContent>

// /cart
<LayoutForPageWithContent>

  <Sidebar />
  <Cart />
</LayoutForPageWithContent>

// ...

// /404
<LayoutForPageWithError>
  <Error404 />
</LayoutForPageWithError>

@kachkaev
const routes = [
  { path: '/',
    exact: true,
    Component: Home
  },
  { path: '/about',
    Component: About,
  },
  { path: '/cart',
    Component: Three,
  }
]

<Router>

    <Switch>
      {routes.map({ path, exact, Component } => (
        <Route path={route.path} exact={exact} render={(props) => (
          <LayoutWithSidebarAndHeader {...props}>
            <Component {...props}/>
          </LayoutWithSidebarAndHeader>
        )}/>
      ))}
      <Route component={Error404}/>
    </Switch>

</Router>

@ryanflorence this solution wont reuse LayoutWithSidebarAndHeader as far as I understand, so their states and fetched will be lost each time the url changes.

there's a bug in switch #4578

fixed by
b556060d7f17d008877f4b976e0ff092b833d81d
32a5bbb5871f5024d9c4e62cddfaa020fd5f7857
7a02cc3545ea27b039d0bc6ebb652dd9e06928ed

I'm not sure that that bug is related. Reusing component={Sidebar} is one thing, because it's just a reference to a component type. But reusing render={(props) => (...)} inside map is probably a completely different story, because here we have subtrees of component instances, not just references to their names.
I don't see any solution in the current API, but I may be wrong. Looks like the only place the wrapper like that can be declared is in <Switch />:
<Switch wrapper={({match}) => (match ? LayoutWithSidebarAndHeader : LayoutForPageWithError)}>
  <Route exactly path="/" component={Home} />
  <Route exactly path="/about" component={About} />
  <Route exactly path="/cart" component={Cart} />
  <Route component={PageWithError404} />
</Switch>

It's ugly, but at least it gives a chance to reuse the Layout in the situation above. Once again, I can be totally wrong here.

It's not a different story. It's fixed on the v4 branch.

Just updated to v4.0.0-beta.7 and can confirm that shared layout wrappers are reused perfectly now! Checked this by rendering a random instanceId in the layout, which is came from here: componentDidMount() { this.isntanceId = instance ${Math.random()}`; }
Two caveats to share:

When running yarn add<EMAIL_ADDRESS>it is important not to forget yarn add<EMAIL_ADDRESS>because otherwise some weird context-errors will show up.

When looping through routes using map, do not add assign key to them as this is done elsewhere, because otherwise the layout will not be reused:

{routes.map(({ path, exact, content: ContentComponent }) => (
  <Route
    // NO key={path} etc. here!
    path={path}
    exact={exact}
    render={(props) => (
      <Layout {...props}>
        <ContentComponent {...props} />
      </Layout>
  )}
  />
))}

Thanks for your previous responses @ryanflorence! I like V4 API more and more!

@kachkaev you shouldn't be installing react-router yourself at all. react-router-dom re-exports everything from react-router that you need.

How the approach, is their any backlog issue if I'll try like this.
I want a couple of different layouts for Anonymous users, Logged in users, then Admin users, Addtional layout like Page Layouts.
      <Switch>
        <Route exact path="/login" render= { ({ ...rest }) => (
          <Login { ...rest } onLogin={ (props) => { // do something on login } } />
        ) } />

        <Route exact path="/register" component={Register} />

        <Route path="/admin" render={ ({ ...rest }) => (
          <AuthLayout { ...rest }>
            <Switch>
              <Route exact path="/admin" render={ (props) => (
                <Dashboard />
              ) } />
            </Switch>
          </AuthLayout>
        ) } />

        <Route path="/">
          <MainLayout>
            <Switch>
              <Route exact path="/" >
                <Home />
              </Route>
              <Route exact path="/about" >
                <About />
              </Route>
              <Route exact path="/faqs" >
                <Faqs />
              </Route>
              <Route exact path="/terms-of-service" >
                <TermsOfService />
              </Route>
            </Switch>
          </MainLayout>
        </Route>
      </Switch>

or how can I achieve this in a better way.

while this was pretty easy in previous versions
<Router history={browserHistory}>
  <Route path="/" component={MainLayout}>
    <IndexRoute component={Home} />
    <Route path="/about" component={About} />
    <Route path="/terms-of-service" component={TermsOfService} />
    <Route path="/faqs" component={Faqs} />
  </Route>
  <Route path="/" component={AdminLayout}>
    <IndexRoute component={Dashboard} />
    <Route path="/users" component={Users} />
  </Route>
</Router>

@ankibalyan Have you tried this:

Define one Route pointing to a component that will decide what to wrap the route in
<Router>
  <Route component={AppWrap} />
</Router>

In AppWrap do something like the following
 var isPrivateLayout;
 for (var path of listOfPrivateLayoutPaths) {
   if (this.props.location.pathname == path) {
     isPrivateLayout= true;
   }
 }
 if (isPrivateLayout) {
   return <PrivateLayout>
        (routes)
      </PrivatelyLayout>
 } else {
   return <PublicLayout>
        (routes)
      </PublicLayout>;
 }

@timdorr it does not seem that this issue should be closed. Based on the basic example one would need to create GuestLayout, AdminLayout and in each of those layouts define the routes? Whereas in the older version you could just define everything in 1 file. In v4 it seems you can only go 1 level deep each time when defining a route/template?

I tried with this approach:
const DefaultLayout = ({children}) => (

     {children}

);
<Router>
<Switch>
                <Route path="/checkout" exact component={Checkout}/>
                <DefaultLayout>
                    <Switch>
                        <Route path="/" exact component={Home}/>
                        <Route path="/products" component={Products}/>
                        <Route path="/product/:item" component={ProductSingle}/>
                        <Route path="/cart" component={Cart}/>
                        <Route path="/login"  component={Login}/>
                        <Route path="/register" component={Register}/>
                        <Route path="/forgetpass" component={ForgetPass}/>
                    </Switch>
                </DefaultLayout>
            </Switch>
</Router>

Hi @kachkaev ,
Do you have the any better solution for key ?
I used key={path} to defeat my confusing of key number 0 to all child components array, because of this line in React docs
"Keys help React identify which items have changed, are added, or are removed. "
But I really don't know is it the right way, the path should be unique as my think.

I used this approach
  <Provider store={store}>
    <ConnectedRouter history={history}> // this is from connected-react-router for my sagas
      <Switch>
        {routes.map(({ path, exact, component: Component }) => (
          <Route
            key={path}
            path={path}
            exact={exact}
            render={props => (
              <App {...props}>
                <Component {...props} />
              </App>
            )}
          />
        ))}
      </Switch>
    </ConnectedRouter>
  </Provider>

Anyone has idea to work with Sidebar like https://reacttraining.com/react-router/web/example/sidebar
with this approach?

@eashish93 Unfortunately there doesn't seem to be a way to make that approach work with a layoutless fallthrough (e.g. 404). But it works great if your fallthrough does use the layout.

@kachkaev Thanks for the tip about not using keys.  I was using keys and components were getting remounted on every route change.  What's the best practice for .map() to generate <Route> components in terms of assigning keys?

// when
<Switch>
        {routes.map(({ path, exact, component: Component }) => (
          <Route
            key={path}
            path={path}
            exact={exact}
            render={props => (
              <App {...props}>
                <Component {...props} />
              </App>
            )}
          />
        ))}
      </Switch>

exact match doesn't work
BUT, I inserted Layout directly as per @eashish93  commented on 27 Apr 2017, it works fine


LPT calculates uses different formulas for row totals

Fore revenue it sums the value, but for count it sums the amount of rows.

Testcase:
http://<IP_ADDRESS>/dsw/index.html#!/d/test/LPT4.dashboard#%2F%3Fns=SAMPLES

LPT implements COUNT aggregate as a count of non-empty rows displayed. Should this turn into SUM of values? If it is, how is it different from SUM aggregate?

For Total it should be always SUM

Done https://github.com/intersystems-ru/LightPivotTable/releases/tag/1.8.13 (I noticed that v1.8.13 was published in releases before while it should have been v1.8.12. So I've updated description and attached zip archive)

However, I don't like this fix: I think it will bubble up shortly somewhere.


Spread call/stakedao

Great job on this @ugolino! :D Left some comments to help you! This is a really challenging vault to build!


Batch not working

Running v3.45
Errors when running the batch command, with using CSV or TXT files.
Mac:
python gam.py batch /Users/peter/Desktop/jerome.txt
Traceback (most recent call last):
File "gam.py", line 7326, in
argv = shlex.split(line)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shlex.py", line 279, in split
return list(lex)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shlex.py", line 269, in next
token = self.get_token()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shlex.py", line 96, in get_token
raw = self.read_token()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shlex.py", line 172, in read_token
raise ValueError, "No closing quotation"
ValueError: No closing quotation
Windows:
c:\gam>gam batch jerome.txt
Traceback (most recent call last):
File "", line 7326, in
File "C:\Users\jlee\Documents\GitHub\GAM\build\gam\out00-PYZ.pyz\shlex", line
279, in split
File "C:\Users\jlee\Documents\GitHub\GAM\build\gam\out00-PYZ.pyz\shlex", line
269, in next
File "C:\Users\jlee\Documents\GitHub\GAM\build\gam\out00-PYZ.pyz\shlex", line
96, in get_token
File "C:\Users\jlee\Documents\GitHub\GAM\build\gam\out00-PYZ.pyz\shlex", line
172, in read_token
ValueError: No closing quotation

This was resolved for me in v3.5


upgrade golang version

What would you like to be added/modified:
The go version of edgemesh is too old. Can it be upgraded to 1.19?
Why is this needed:
The go version of the kubeedge main project has been upgraded to 1.19
https://github.com/kubeedge/kubeedge/issues/4930

That make sense


Build failure with GCC 11: error: function may return address of local variable [-Werror=return-local-addr]

When using the g++ version 11.2.1 20220401 (Red Hat 11.2.1-10), I see the below warnings.
/presto_cpp_repo/velox/velox/functions/prestosql/aggregates/ApproxPercentileAggregate.cpp: In member function 'const char* facebook::velox::aggregate::{anonymous}::ApproxPercentileAggregate<T>::getDeserializedDigest(facebook::velox::vector_size_t) [with T = int]':
/presto_cpp_repo/velox/velox/functions/prestosql/aggregates/ApproxPercentileAggregate.cpp:441:40: error: function may return address of local variable [-Werror=return-local-addr]
  441 |     return data.data() + stream.offset();
      |                                        ^
/presto_cpp_repo/velox/velox/functions/prestosql/aggregates/ApproxPercentileAggregate.cpp:433:10: note: declared here
  433 |     auto data = decodedDigest_.valueAt<StringView>(row);
      |          ^~~~
/presto_cpp_repo/velox/velox/functions/prestosql/aggregates/ApproxPercentileAggregate.cpp: In member function 'const char* facebook::velox::aggregate::{anonymous}::ApproxPercentileAggregate<T>::getDeserializedDigest(facebook::velox::vector_size_t) [with T = short int]':

This is fine because data here is a StringView and the underlying StringView::data() is still valid

If the StringView is inline, then this will be returning the address of a local variable?

The StringView here cannot be inlined because it's guaranteed to be longer than 12 bytes.  We can put an assert here to make sure.

I doubt the compiler can infer the StingView cannot be inlined based on the assert.

In this case we can just suppress the warning locally then

okay. Let's put an assert and suppress the warning locally.

I will work on this since I have access to GCC 11 handy.

Thanks @majetideepak


add missing conditional switch

On MacOS, typing in the text field throws an exception, which is then fixed

Hi @screenworker
That's a great find - thank you! 🙏


If model evaluates at initial conditions without autodiff but fails with autodiff then the error messages are not great

Summary:
For instance, with an ODE model @jtimonen found output like this:
Rejecting initial value:
  Error evaluating the log probability at the initial value.
Exception: ode_bdf_tol:  Failed to integrate to next output time (1.542) in less than max_num_steps steps (in 'lv.stan', line 34, column 2 to line 35, column 48)
Rejecting initial value:
  Error evaluating the log probability at the initial value.
Exception: ode_bdf_tol:  Failed to integrate to next output time (1.542) in less than max_num_steps steps (in 'lv.stan', line 34, column 2 to line 35, column 48)
Rejecting initial value:
  Error evaluating the log probability at the initial value.
Exception: ode_bdf_tol:  Failed to integrate to next output time (1.542) in less than max_num_steps steps (in 'lv.stan', line 34, column 2 to line 35, column 48)
Exception: ode_bdf_tol:  Failed to integrate to next output time (1.542) in less than max_num_steps steps (in 'lv.stan', line 34, column 2 to line 35, column 48)
Exception: ode_bdf_tol:  Failed to integrate to next output time (1.542) in less than max_num_steps steps (in 'lv.stan', line 34, column 2 to line 35, column 48)

We would expect an error message like:
Rejecting initial value:
  Error evaluating the log probability with gradients at the initial value.
Exception: ode_bdf_tol:  Failed to integrate to next output time (1.542) in less than max_num_steps steps (in 'lv.stan', line 34, column 2 to line 35, column 48)

Initialization between (-2, 2) failed after 100 attempts.
 Try specifying initial values, reducing ranges of constrained values, or reparameterizing the model.
Initialization failed.

Here is a model that exhibits this behavior at certain seeds (model below):
functions {
  // Lotka-Volterra system
  vector derivative_fun(real t, vector y, data int[] a0, vector theta) {
    vector[2] dydt;
    dydt[1] = theta[1]*y[1] - y[1]*y[2];
    dydt[2] = y[1]*y[2] - theta[2]*y[2];
    return dydt;
  }
}

data {
  int<lower=1> N;
  real t_eval[N]; // must be increasing
  vector[2] y_data[N];
  vector[2] y0;
  real t0;
  real<lower=0> ABS_TOL;
  real<lower=0> REL_TOL;
  int<lower=1> MAX_NUM_STEPS;
}

transformed data {
  int a0[0];
}

parameters {
  vector<lower=0>[2] theta;
  real<lower=0> sigma;
}

model {
  theta ~ normal(1, 0.3);
  sigma ~ normal(0, 2.0);
  vector[2] y_hat[N] = ode_bdf_tol(derivative_fun, y0, t0, t_eval,
    REL_TOL, ABS_TOL, MAX_NUM_STEPS, a0, theta);
  for(n in 1:N){
    target += normal_lpdf(y_data[n] | y_hat[n], sigma);
  }
}

Json data:
{
  "N": 20,
  "t_eval": [1.542, 3.314, 3.582, 3.942, 4.618, 5.974, 6.338, 6.546, 6.698, 7.106, 7.53, 7.602, 7.758, 8.334, 8.45, 9.018, 9.17, 10.886, 11.366, 11.574],
  "y0": [1, 2],
  "t0": 0,
  "y_data": [
    [0.344797088393873, 1.6930242060351],
    [0.635418289383446, 0.0906638098070269],
    [0.519516090322978, 0.821024324067281],
    [1.07889503979525, 0.477741038303985],
    [0.773776915048449, 0.255210793923543],
    [1.72581484166438, 1.5527620189067],
    [0.851008213891165, 1.80589311943048],
    [1.62769164960979, 1.57197163973671],
    [1.06907814440105, 1.77751680937944],
    [0.559461058239121, 1.77778520957167],
    [0.319224257399646, 2.09229342823705],
    [0.656623356899921, 2.35616034285975],
    [0.266800987984575, 1.59088141802012],
    [-0.0843099951671533, 1.29952132205262],
    [0.510139049085921, 1.16569483217513],
    [0.739499156159327, 1.5954691564362],
    [0.300537914354303, 1.33024642117391],
    [0.453591698548004, 0.627159819286871],
    [1.13100675948511, 0.372307762827462],
    [1.63136411638082, 1.04814114632482]
  ],
  "REL_TOL": 1e-06,
  "ABS_TOL": 1e-06,
  "MAX_NUM_STEPS": 30
}

Current Version:
v2.26.1

Yea, so it seems that the current code assumes that if computing log probability succeeds then also computing the gradient will succeed. With ODEs however, it is possible that log_prob succeeds for a given max_num_steps, but to compute the gradient, an extended system has to be solved and it fails. There could be also other models that have this sort of behaviour.

The code does not make this assumption.
As detailed in https://github.com/stan-dev/stan/blob/develop/src/stan/services/util/initialize.hpp the initialization begins by checking the double evaluation of log_prob (line 128).  The "Error evaluating the log probability at the initial value” message is passed after the double evaluation but before the gradient is considered, which means that the double evaluation alone is failing in @jtimonen ’s model (I’m guessing the replication of the message is due to four chains all dumping the same error).  The autodiff evaluation of log_prob is then checked (line 166) in the same loop, and if the evaluation fails then the message "Gradient evaluated at the initial value is not finite.” is passed.
Again because "Error evaluating the log probability at the initial value” is passed to the interface here the initialization attempt is stopped before the gradient is even considered.  The gradient is always checked but only after a double evaluation returns successfully.

It is throwing an error in log_prob_grad. Seems like it is printing the error twice. Not sure why that's happening.
I modified the initialize.hpp code and added some stuff around line 160:
    std::cout << "meow" << std::endl << std::flush;

    std::stringstream log_prob_msg;
    std::vector<double> gradient;
    auto start = std::chrono::steady_clock::now();
    try {
      // we evaluate this with propto=true since we're
      // evaluating with autodiff variables
      log_prob = stan::model::log_prob_grad<true, Jacobian>(
          model, unconstrained, disc_vector, gradient, &log_prob_msg);
    } catch (const std::exception& e) {
      if (log_prob_msg.str().length() > 0)
        logger.info(log_prob_msg);
      logger.info(e.what());
      throw;
    }

    std::cout << "woof" << std::endl << std::flush;

Output is:
Exception: ode_bdf_tol:  Failed to integrate to next output time (1.542) in less than max_num_steps steps (in 'lv.stan', line 34, column 2 to line 35, column 48)
Rejecting initial value:
  Error evaluating the log probability at the initial value.
Exception: ode_bdf_tol:  Failed to integrate to next output time (1.542) in less than max_num_steps steps (in 'lv.stan', line 34, column 2 to line 35, column 48)
meow
Exception: ode_bdf_tol:  Failed to integrate to next output time (1.542) in less than max_num_steps steps (in 'lv.stan', line 34, column 2 to line 35, column 48)
Exception: ode_bdf_tol:  Failed to integrate to next output time (1.542) in less than max_num_steps steps (in 'lv.stan', line 34, column 2 to line 35, column 48)
~/cmdstan-develop$

You need to separate out loop iterations, for example by printing "num_init_tries".  When "Error evaluating the log probability at the initial value." is passed to the logger the gradient evaluation isn't even attempted due to the "continue" statement on line 140.  My guess is that the first attempt fails with a bad function evaluation and then on the second loop iteration the function evolution passes but then the gradient evolution fails which triggers the throw on line 172.
If this is the case then all we need to do is add a logger message before 171 to clarify the failure of 'log_prog_grad,
      logger.info(
          "  Error evaluating the gradient of the log probability"
          " at the initial value.");

We could throw a more informative error but the code will behave more robustly if we just initialize where gradients also work so it's possible to start running HMC.
I believe that is the intention of this code (just find anywhere to start), and the difficulty of doing the ODE solves causes this problem.

I believe that is the intention of this code (just find anywhere to start), and the difficulty of doing the ODE solves causes this problem.

The code is very clearly laid out and is symmetric between double and var evaluations.  If the evaluation completes successfully and returns well-defined values then the initialization terminates successful.  if it completes successfully and returns an ill-defined value then it repeats.  If it throws an error (other than a domain error which only needs to be checked once since double and var evaluations have the same domain) then the initialization terminates unsuccessfully.
CVODES throws a non-domain exception when the integration of the sensitivity states fails, triggering the initialization to terminate as expected from the current implementation.
Changing the initialization logic to retry on var-evaluation exceptions requires a more careful discussion.  I recommend closing this issue and opening a new issue on the proper topic.

and is symmetric between double and var evaluations.

I don't know what symmetry means here. If you mean it's the same checks between the tries on line 124 and 163, they are not.
The try on 163 does not catch domain errors and continue running. Any exception it catches it re-throws.

CVODES throws a non-domain exception when the integration of the sensitivity states fails, triggering the initialization to terminate as expected from the current implementation.

It's a domain exception here.
You can change the code to:
auto start = std::chrono::steady_clock::now();
try {
  // we evaluate this with propto=true since we're
  // evaluating with autodiff variables
  log_prob = stan::model::log_prob_grad<true, Jacobian>(
      model, unconstrained, disc_vector, gradient, &log_prob_msg);
} catch (const std::domain_error& e) {
  std::cout << "It's a domain error" << std::endl;
  if (log_prob_msg.str().length() > 0)
    logger.info(log_prob_msg);
  logger.info(e.what());
  throw;
} catch (const std::exception& e) {
  if (log_prob_msg.str().length() > 0)
    logger.info(log_prob_msg);
  logger.info(e.what());
  throw;
}
auto end = std::chrono::steady_clock::now();

And you'll see in the output when this problem comes up:
Rejecting initial value:
  Error evaluating the log probability at the initial value.
Exception: ode_bdf_tol:  Failed to integrate to next output time (1.542) in less than max_num_steps steps (in 'lv.stan', line 34, column 2 to line 35, column 48)
It's a domain error
Exception: ode_bdf_tol:  Failed to integrate to next output time (1.542) in less than max_num_steps steps (in 'lv.stan', line 34, column 2 to line 35, column 48)
Exception: ode_bdf_tol:  Failed to integrate to next output time (1.542) in less than max_num_steps steps (in 'lv.stan', line 34, column 2 to line 35, column 48)

Anyway, this is the problem that I want to fix. These are recoverable errors and we should be recovering from them in the same way as we do already.
We should pick an initialization for the sampler where it is possible to both evaluate the log density and the gradients. Right now we do not check that we are able to evaluate the gradients. I do not think that is correct considering we need the gradients to do the sampling. That is the change I want to make over here.

@betanalpha

Bump. @betanalpha this looks all good to me. The intent to error out when the chosen initial leads to a nan for the log-likelihood or it's gradient is sensible, since the sampler needs both in order to move. I am happy to review the PR for this so that we get this into the release.

The intent to error out when the chosen initial leads to a nan for the log-likelihood or it's gradient is sensible, since the sampler needs both in order to move.

Yes, it is, which is why the code has always checked both.

Right now we do not check that we are able to evaluate the gradients. I do not think that is correct considering we need the gradients to do the sampling.

Yes, we do.

That is the change I want to make over here.

The description of this PR is incorrect.
Let me try to run through the code flow one more time:
For each of the 100 initialization attempts we check:

That the initial values are consistent with the parameter constraints.

If the failure is due to a domain error on the init var_context then a new attempt is made (L 149).
Otherwise the initialization fails immediately.

That we can evaluate log_prob for doubles at the initial value.

If the failure is due to a domain error then a new attempt is made (L 140).
Otherwise the initialization fails immediately.

That the returned log_prob is finite.

If it’s not finite then a new attempt is made (L 158).

That we can evaluate log_prob_grad for vars at the initial values.

If there is any failure in the evaluation of log_prob_grad then the initialization fails immediately.

If the Euclidean norm of the gradient is finite.

If it’s not finite then the initialization fails when it reaches the end of the loop body.

If all checks pass then the function returns before the end of the loop body (L 211).

Initialization returns successfully only if the both the value and gradient of the log target density can be evaluated.
All of this happens in one loop and, again, the double and var evaluations are checked for each attempt.
There are certainly a few changes that can be considered.

Adding a logger message when the gradient evaluation throws an exception beyond the log_prob message (L 170) and the exception message (L 171).  Pull #3035 does not address this but instead tries to completely change the initialization evaluation logic.

Attempting new initializations under some gradient evaluation failures, namely domain errors.  As I said before given the unforeseen behavior of CVODES errors when the initialization code was written this is reasonable but goes beyond the scope of this issue.


added pose_extractor path to runtime system path instead of export/set

Hi,
I found a lot of people using different OS are facing issue with export/set commands.
I have instead added pose_extractor path to the sys path at the time of execution. This also reduces the perquisites by 1 step. (I have modified Readme accordingly)

Hey, thanks for the contribution! Actually I'm unaware about such difficulties. Also do not like the idea of hardcoding values, because of bad flexibility.

Hope, it is clear now.


Enum nonmembers not supported

Environment data

Language Server version: 2024.2.2
OS and version: Windows 10
Python version (& distribution if applicable, e.g. Anaconda): cpython 3.12

Code Snippet
class Relationship(enum.Flag):
    # technical
    NONE = 0
    SELF = 1

    # direct
    PARENT = enum.auto()
    CHILD = enum.auto()
    SPOUSE = enum.auto()

    # testing methods {Relationship : (FamilyMember, FamilyMember) -> bool}
    # the order matters : the first matching relation will be preferred between two persons
    # all relationships should be there, except for None
    _testers: ClassVar[dict[Relationship, Callable[[FamilyMember, FamilyMember], bool]]] = enum.nonmember({})

def _relationship_tester(relationship: Relationship, /):
    def decorator(func):
        Relationship._testers[relationship] = func
        return func
    return decorator

Repro Steps
The enum.nonmember({}) is underlined and shows the error Expression of type "nonmember[dict[Any, Any]]" cannot be assigned to declared type "Literal[Relationship._testers]" "nonmember[dict[Any, Any]]" cannot be assigned to type "Literal[Relationship._testers]"Pylance(reportAssignmentType) (module) enum.
The Relationship._testers is underlined and shows the error "__setitem__" method not defined on type "Literal[Relationship._testers]"Pylance(reportIndexIssue) (variable) _testers: Literal[Relationship._testers]. Writing Relationship._testers.value in its place looks fine to Pylance, but doesn't actually work.
It appears the module is disregarding both the nonmember decorator and the ClassVar type indication, and treats the object as a member of the enum.

Could someone from the pylance team please transfer this to pyright since it's a core type checker issue?