refactor(simple_planning_simulator): rework parameters

Description
Implement the ROS Node configuration layout described in https://github.com/orgs/autowarefoundation/discussions/3371 for the simple_planning_simulator package.

Remove the default value from the source code in order to ensure all parameter values are passed from the parameter files.
Create the schema

Tests performed
Package built and launch locally.
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release --packages-up-to simple_planning_simulator
Effects on system behavior
More reliable and faster parameter configuration file creation.
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.
[ ] The PR has been properly tested.
[ ] The PR has been reviewed by the code owners.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[x] There are no open discussions or they are tracked via tickets.
[ ] The PR is ready for merge.

After all checkboxes are checked, anyone who has write access can merge the PR.

The json-schema CI check fails because the config file should be under ../config/*.param.yaml. Could you move it there and ensure that if there are other packages making use of the config file they are updated to the new path as well?

The json-schema CI check fails because the config file should be under ../config/*.param.yaml. Could you move it there and ensure that if there are other packages making use of the config file they are updated to the new path as well?

@ambroise-arm Got it! Done.

The json-schema CI check fails because the config file should be under ../config/*.param.yaml. Could you move it there and ensure that if there are other packages making use of the config file they are updated to the new path as well?

@ambroise-arm Got it! Done.

@PhoebeWu21 Following error has occured by this PR. Could you confirm whether the autoware can be launch correctly with your branch?
[ERROR] [simple_planning_simulator_exe-53]: process has died [pid 572727, exit code -6, cmd '/home/satoshi/pilot-auto/install/simple_planning_simulator/lib/simple_planning_simulator/simple_planning_simulator_exe --ros-args -r __node:=simple_planning_simulator -r __ns:=/simulation -p use_sim_time:=False -p wheel_radius:=0.383 -p wheel_width:=0.235 -p wheel_base:=2.79 -p wheel_tread:=1.64 -p front_overhang:=1.0 -p
rear_overhang:=1.1 -p left_overhang:=0.128 -p right_overhang:=0.128 -p vehicle_height:=2.5 -p max_steer_angle:=0.7 --params-file /tmp/launch_params_cm1fjop5 --params-file /tmp/launch_params_99funsy_ -r input/vector_map:=/map/vector_map -r input/initialpose:=/initialpose3d -r input/ackermann_control_command:=/control/command/control_cmd -r input/manual_ackermann_control_command:=/vehicle/command/manual_control_cmd
 -r input/gear_command:=/control/command/gear_cmd -r input/manual_gear_command:=/vehicle/command/manual_gear_command -r input/turn_indicators_command:=/control/command/turn_indicators_cmd -r input/hazard_lights_command:=/control/command/hazard_lights_cmd -r input/trajectory:=/planning/scenario_planning/trajectory -r input/engage:=/vehicle/engage -r input/control_mode_request:=/control/control_mode_request -r outp
ut/twist:=/vehicle/status/velocity_status -r output/odometry:=/localization/kinematic_state -r output/acceleration:=/localization/acceleration -r output/imu:=/sensing/imu/imu_data -r output/steering:=/vehicle/status/steering_status -r output/gear_report:=/vehicle/status/gear_status -r output/turn_indicators_report:=/vehicle/status/turn_indicators_status -r output/hazard_lights_report:=/vehicle/status/hazard_light
s_status -r output/control_mode_report:=/vehicle/status/control_mode'].
[simple_planning_simulator_exe-53] terminate called after throwing an instance of 'rclcpp::exceptions::UninitializedStaticallyTypedParameterException'
[simple_planning_simulator_exe-53]   what():  Statically typed parameter 'initial_engage_state' must be initialized.

@PhoebeWu21 Following error has occured by this PR. Could you confirm whether the autoware can be launch correctly with your branch?
[ERROR] [simple_planning_simulator_exe-53]: process has died [pid 572727, exit code -6, cmd '/home/satoshi/pilot-auto/install/simple_planning_simulator/lib/simple_planning_simulator/simple_planning_simulator_exe --ros-args -r __node:=simple_planning_simulator -r __ns:=/simulation -p use_sim_time:=False -p wheel_radius:=0.383 -p wheel_width:=0.235 -p wheel_base:=2.79 -p wheel_tread:=1.64 -p front_overhang:=1.0 -p
rear_overhang:=1.1 -p left_overhang:=0.128 -p right_overhang:=0.128 -p vehicle_height:=2.5 -p max_steer_angle:=0.7 --params-file /tmp/launch_params_cm1fjop5 --params-file /tmp/launch_params_99funsy_ -r input/vector_map:=/map/vector_map -r input/initialpose:=/initialpose3d -r input/ackermann_control_command:=/control/command/control_cmd -r input/manual_ackermann_control_command:=/vehicle/command/manual_control_cmd
 -r input/gear_command:=/control/command/gear_cmd -r input/manual_gear_command:=/vehicle/command/manual_gear_command -r input/turn_indicators_command:=/control/command/turn_indicators_cmd -r input/hazard_lights_command:=/control/command/hazard_lights_cmd -r input/trajectory:=/planning/scenario_planning/trajectory -r input/engage:=/vehicle/engage -r input/control_mode_request:=/control/control_mode_request -r outp
ut/twist:=/vehicle/status/velocity_status -r output/odometry:=/localization/kinematic_state -r output/acceleration:=/localization/acceleration -r output/imu:=/sensing/imu/imu_data -r output/steering:=/vehicle/status/steering_status -r output/gear_report:=/vehicle/status/gear_status -r output/turn_indicators_report:=/vehicle/status/turn_indicators_status -r output/hazard_lights_report:=/vehicle/status/hazard_light
s_status -r output/control_mode_report:=/vehicle/status/control_mode'].
[simple_planning_simulator_exe-53] terminate called after throwing an instance of 'rclcpp::exceptions::UninitializedStaticallyTypedParameterException'
[simple_planning_simulator_exe-53]   what():  Statically typed parameter 'initial_engage_state' must be initialized.

Hi @satoshi-ota, I did successfully launch in local.

I have no idea what happened. I will recheck detailly again.

Hi @PhoebeWu21 Thanks for your investigation.
Hmm... OK. I'll recheck, too.

@PhoebeWu21 I guess you can see above errors if you try following tutorials.
https://autowarefoundation.github.io/autoware-documentation/main/tutorials/ad-hoc-simulation/planning-simulation/#lane-driving-scenario

When it launches planning_simulator from autoware_launch repos, the launch file includes other sim model yaml here.
ros2 launch autoware_launch planning_simulator.launch.xml map_path:=$HOME/autoware_map/sample-map-planning vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit

And, it seems that initial_engage_state param doesn't exist in the yaml file. I'm sure that this is the cause of the error.

@satoshi-ota  I see, thank you!

I add back { "initial_engage_state": LaunchConfiguration("initial_engage_state"), }, in simple_planning_simulator.launch.py file. It seems work for launching planning_simulator. But the error Caught exception in launch (see debug for traceback): launch configuration 'initial_engage_state' does not exist will occur while launching the single simple_planning_simulator node.

@satoshi-ota Hi, I am not sure how to deal with this situation, since I did not make any other change to the launch file.

@PhoebeWu21 Sorry for late reply. I'll investigate that error.

When it launches planning_simulator from autoware_launch repos, the launch file includes other sim model yaml here.
ros2 launch autoware_launch planning_simulator.launch.xml map_path:=$HOME/autoware_map/sample-map-planning vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit

And, it seems that initial_engage_state param doesn't exist in the yaml file. I'm sure that this is the cause of the error.

Hi @PhoebeWu21
I think you need to add NOT ONLY initial_engage_state but also enable_road_slope_simulation, pos_noise_stddev, etc...
And, as I wrote, when we call planning_simulator.launch.xml, this file will be loaded. Actually, I confirmed that I could launch Psim with your branch after I added missing params to this file.
In short, we have to add missing params to simulator_model.param.yaml of ALL vehicle description packages (TIER IV has a lot of vehicle descriptions...) before removing default values in cpp file at first. So, I'll ask TIER IV internal member to help adding missing params.

Hi @satoshi-ota,
I see. So I think I don't need do modify my branch until the missing params in simulator_model.param.yaml be added, right?

In short, we have to add missing params to simulator_model.param.yaml of ALL vehicle description packages (TIER IV has a lot of vehicle descriptions...) before removing default values in cpp file at first. So, I'll ask TIER IV internal member to help adding missing params.

@satoshi-ota - have you received feedback on adding the missing params? Can @PhoebeWu21 continue with this task or will you be taking over to complete it?

@satoshi-ota could you update the current status of this PR?


Promotions should be sorted lexicographically

The UI appears to order Promotions for a Stage by their Phase and creation timestamp. However, as the creation timestamp does not include nanoseconds, this approach will fail when multiple Promotions are (programmatically) created within a short period.
To address this issue, it should use the ULID in the Promotion name, which allows it to be lexicographically sorted beyond the creation timestamp of the Promotion.

Is this done by parsing the promotion name "shortName.ulid.shorthash" (maybe making a helper function on the Promotion struct for that) and sorting on that instead of the creation time?

It would not require parsing, the ULID component in the name would make any list entry sortable by default.

To clarify: as far as I am aware this is a frontend issue which would not require any changes to the backend.

See also: https://github.com/akuity/kargo/blob/769d1fc1e5b47cedd7b6a8f9032e30e25b354f7c/ui/src/features/stage/utils/sort.ts#L3

It would not require parsing, the ULID component in the name would make any list entry sortable by default.

Ah I see I didn't realize we are always dealing with the same prefix (stage name) so we can indeed just sort on the Name.
Are you sure we should be sorting this in the frontend and not in the api though. (would be a simple change)

Maybe doing so doesn't solve the issue you originally raised, as you still have some more "advanced" sorting in the frontend with running promotions versus non running. But it would I believe still make sense to change this in the API as well, to ensure we are returning properly sorted results there as well.

Agree it's ideally a back end change. Re-labeling accordingly.

Ill work on this.

Thank you!


Ember 3.1 Fix deprecation warning

Fix for deprecation warning in https://github.com/ember-decorators/argument/issues/59 as mentioned by @rwjblue

Thanks for the fix!


Compatibility with servant 0.10 / 0.11

I am currently getting this when compiling with servant 0.10
    [1 of 8] Compiling Servant.Subscriber.Subscribable ( src/Servant/Subscriber/Subscribable.hs, .stack-work/dist/x86_64-osx/Cabal-<IP_ADDRESS>/build/Servant/Subscriber/Subscribable.o )

    /private/var/folders/px/n0ytrp6d72l5m7rm8d7rgsvc0000gn/T/stack43633/servant-subscriber-<IP_ADDRESS>/src/Servant/Subscriber/Subscribable.hs:98:5: error:
        Ambiguous occurrence ‘And’
        It could refer to either ‘Servant.And’,
                                 imported from ‘Servant’ at src/Servant/Subscriber/Subscribable.hs:28:1-24
                                 (and originally defined in ‘Servant.API.TypeLevel’)
                              or ‘Servant.Subscriber.Subscribable.And’,
                                 defined at src/Servant/Subscriber/Subscribable.hs:97:1

    /private/var/folders/px/n0ytrp6d72l5m7rm8d7rgsvc0000gn/T/stack43633/servant-subscriber-<IP_ADDRESS>/src/Servant/Subscriber/Subscribable.hs:101:5: error:
        Ambiguous occurrence ‘Elem’
        It could refer to either ‘Servant.Elem’,
                                 imported from ‘Servant’ at src/Servant/Subscriber/Subscribable.hs:28:1-24
                                 (and originally defined in ‘Servant.API.TypeLevel’)
                              or ‘Servant.Subscriber.Subscribable.Elem’,
                                 defined at src/Servant/Subscriber/Subscribable.hs:100:1

    /private/var/folders/px/n0ytrp6d72l5m7rm8d7rgsvc0000gn/T/stack43633/servant-subscriber-<IP_ADDRESS>/src/Servant/Subscriber/Subscribable.hs:102:5: error:
        Ambiguous occurrence ‘Elem’
        It could refer to either ‘Servant.Elem’,
                                 imported from ‘Servant’ at src/Servant/Subscriber/Subscribable.hs:28:1-24
                                 (and originally defined in ‘Servant.API.TypeLevel’)
                              or ‘Servant.Subscriber.Subscribable.Elem’,
                                 defined at src/Servant/Subscriber/Subscribable.hs:100:1

    /private/var/folders/px/n0ytrp6d72l5m7rm8d7rgsvc0000gn/T/stack43633/servant-subscriber-<IP_ADDRESS>/src/Servant/Subscriber/Subscribable.hs:102:24: error:
        Ambiguous occurrence ‘Elem’
        It could refer to either ‘Servant.Elem’,
                                 imported from ‘Servant’ at src/Servant/Subscriber/Subscribable.hs:28:1-24
                                 (and originally defined in ‘Servant.API.TypeLevel’)
                              or ‘Servant.Subscriber.Subscribable.Elem’,
                                 defined at src/Servant/Subscriber/Subscribable.hs:100:1

I understand that the new versions of servant are not available in a lts yet (0.10 is available in a nightly). Do we just wait it out or can we prepare for this already? I see that the various stack yamls target a specific lts, so take make these updates should I add another yaml temporarily? I'll see if I can fix it in a way it works on both versions (0.9 and 0.10)

Sorry just found #11 :)


Week 4 Review Ticket

Practice FRQ #1

[x] 2018 FRQ #1

Iteration Mini Lab (2D Arrays)

[x] Iteration Lab with Monkeys

Agile Methodology Hacks

[x] Scrum Board Created
[x] Issues Created
[x] Team Agile Methodology Diagram

2.7+
FRQ 1
The frq is is very well done, and the answers are very detailed.
Iteration Mini Lab
The monkey hacks are done: added more to the rhyme, printed the monkeys horizontally, and created more with ACSII characters.
Agile Methodology
Went above and beyond with the agile methodology and diagram


OperationProcessor - Change lookup() implementation to be iterative instead of recursive

To avoid stack overflow.

Is this still an issue, given the code for this component has changed quite a bit since this Issue was last referenced?

@csuwildcat you are right, obsolete, closing this.


Treemap prototype

Description

What type of PR is this? (check all applicable)

[ ] 🍕 Feature
[ ] 🐛 Bug Fix
[ ] 📝 Documentation Update
[ ] 🎨 Style
[ ] 🧑💻 Code Refactor
[ ] 🔥 Performance Improvements
[ ] ✅ Test
[ ] 🤖 Build
[ ] 🔁 CI
[ ] 📦 Chore (Release)
[ ] ⏩ Revert

Related Tickets & Documents

Mobile & Desktop Screenshots/Recordings

Added tests?

[ ] 👍 yes
[ ] 🙅 no, because they aren't needed
[ ] 🙋 no, because I need help

Added to documentation?

[ ] 📜 README.md
[ ] 📓 docs.opensauced.pizza
[ ] 🍕 dev.to/opensauced
[ ] 📕 storybook
[ ] 🙅 no documentation needed

[optional] Are there any post-deployment tasks we need to perform?
[optional] What gif best describes this PR or how it makes you feel?

@foxyblocks - are there other API endpoints needed for this? Or does https://github.com/open-sauced/api/pull/320 also work for this?

@foxyblocks - are there other API endpoints needed for this? Or does open-sauced/api#320 also work for this?

@jpmcb
I need the API sketched out here https://github.com/open-sauced/app/issues/1701 under the Contributions by Project section

Cool beans, that's been implemented in my API pr 👏

@foxyblocks is this ready to merge so it can be added to a page?

Alright, it needs some color work and some changes to support the 4 levels of the data structure


Please explain {the obvious}

Please clarify that:
a) One needs to edit those commands and replace everything within curly brackets with specific information.
b) Show where to find that things like the {Subscription Guid}
I know seems like we should but guess what I thought wrongly that I could copy the commands as instructed.

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

ID: 26b66ee5-8956-edd1-21b7-166fb7ee754f
Version Independent ID: fecd897d-9a7a-7164-cf37-0044c5278f95
Content: Enable fusion in Azure Sentinel Preview
Content Source: articles/sentinel/connect-fusion.md
Service: sentinel
GitHub Login: @rkarlin
Microsoft Alias: rkarlin

@blouwagie Thanks for your feedback! We will investigate and update as appropriate.

@blouwagie Please find the answers below -

Yes, that is correct you need to replace curly braces {} and the inside text with the information asked for.
For Subscriptions Guid, Workspace Names and Resource Group name, please go to Services on Azure portal and search for 'Log Analytics workspaces' like below

Click on the specific workspace

and you can find all the required information on the blade.

Hi
Thank you for that response.  My request is for you to update the document
itself, top help future readersreaders
Regards
Bart
On Thu, Mar 14, 2019, 5:05 PM SaurabhSharma-MSFT<EMAIL_ADDRESS>wrote:

@blouwagie https://github.com/blouwagie Please find the answers below -

Yes, that is correct you need to replace curly braces {} and the
inside text with the information asked for.
For Subscriptions Guid, Workspace Names and Resource Group name,
please go to Services on Azure portal and search for 'Log Analytics
workspaces' like below
[image: image]
https://user-images.githubusercontent.com/38112130/54391221-79c16400-4661-11e9-95e7-a7a77628ab04.png
Click on the specific workspace
[image: image]
https://user-images.githubusercontent.com/38112130/54391320-b7be8800-4661-11e9-9eec-a4d44ccccdaa.png
and you can find all the required information on the blade.
[image: image]
https://user-images.githubusercontent.com/38112130/54391485-31567600-4662-11e9-969e-c333f9815289.png

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/azure-docs/issues/27055#issuecomment-473062321,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ASWZ9X2W9laIRfwrXUmUPKPUATX5Q1mWks5vWrmigaJpZM4buT4F
.

@blouwagie Thanks for your feedback, however, I have assigned this issue to content author to investigate and update the document as appropriate.
@rkarlin Can you please check if documentation can be updated to include information as requested by @blouwagie

Hi @SaurabhSharma-MSFT please assign this to @akadatacowboy who owns this article. thanks

@rkarlin Unable to assign this issue to @akadatacowboy.

@SaurabhSharma-MSFT Hi, what do I need to do to enable you to assign it? should I add his git user as the article author?

@cabailey do you want to review this? thanks

Closing this issue - it's no longer relevant now that Fusion is enabled by default in the general availability release, and if you need to disable it, you can do so using standard UI controls (no more unfriendly command line!)
In case you haven't found it, the new design is documented in this new article: https://docs.microsoft.com/en-us/azure/sentinel/fusion
#please-close


Unhandled promise rejection

When migrating postcss-loader from 1.3.3 to 2.0.0 I get the following error (Node 7.9.0):
Node#before is deprecated. Use Node#raws.before
(node:50262) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Cannot set property 'parent' of undefined
(node:50262) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
(node:50262) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): TypeError: Cannot set property 'parent' of undefined

Which is a particularly useless message from Node. If I run instead: node --trace-warnings node_modules/.bin/webpack --config webpack.config.js I get:
(node:50319) TypeError: Cannot set property 'parent' of undefined
    at Root.removeChild ([project]/node_modules/postcss/lib/container.es6:442:9)
    at Root.removeChild ([project]/node_modules/postcss/lib/root.es6:29:16)
    at [project]/node_modules/postcss-loader/node_modules/postcss/lib/container.es6:611:38
    at Array.map (native)
    at Root.normalize ([project]/node_modules/postcss-loader/node_modules/postcss/lib/container.es6:608:31)
    at Root.normalize ([project]/node_modules/postcss-loader/node_modules/postcss/lib/root.es6:32:21)
    at Root.insertBefore ([project]/node_modules/postcss-loader/node_modules/postcss/lib/container.es6:375:26)
    at AtRule.replaceWith ([project]/node_modules/postcss-loader/node_modules/postcss/lib/node.es6:232:29)
    at [project]/node_modules/postcss-partial-import/index.js:109:21
    at process._tickDomainCallback (internal/process/next_tick.js:135:7)
Node#moveAfter was deprecated. Use Node#after.

This persists on the latest version (2.0.5) of postcss-loader.
Filing it here as per michael-ciniawsky's suggestion since the stack trace suggests an issue with postcss-partial-import

I updated to postcss-import 9.1.0 which may resolve this issue. Would you try again?

It's working great! Thanks!


support Poetry vens

Request to support virtual environments created by Poetry normally located at  /home/<username>/.cache/pypoetry/virtualenvs/. Or, the possibility to add own configurations (paths to venv folder)
It looks like the tool does it not right now:
$ poetry env info
Virtualenv
Python:         3.10.7
Implementation: CPython
Path:           /home/username/.cache/pypoetry/virtualenvs/myvenv-6zKJdnIQ-py3.10
Executable:     /home/username/.cache/pypoetry/virtualenvs/myvenv-6zKJdnIQ-py3.10/bin/python
Valid:          True

System
Platform:   linux
OS:         posix
Python:     3.10.7
Path:       /home/username/.pyenv/versions/3.10.7
Executable: /home/username/.pyenv/versions/3.10.7/bin/python3.10

I see one of three Poetry venvs, the first I defined. Further Poetry venvs don't add to the list


Apply static refactor cleanup

Move using statements inside namespaces
Replace LINQ statements with method chains
Remove unused code
Correct spelling
Remove async from methods without await

What is the source config you are using for this refactor? Can we make this common or is it common to the repo?

What is the source config you are using for this refactor? Can we make this common or is it common to the repo?

This is with Rider/Resharper defaults and what I could remember from other teams' standards.   I'll bring in the rulesets from the azure-sdk-for-net repo and see how off we are.

@hallipr I assume you're waiting on other stuff to land for this?


Add command to enable source maps and reload VSC

Command to enable source map support in the extension

Message display when above command is selected

Message display upon reloading VS Code with source maps enabled

This message will be displayed everytime the extension activates and source map is enabled
Ensure user doesn't forget to turn it off
With latest version of VSC, the message will self dismiss after a few seconds

Setting in settings.json


no SMD or IVS human/vehicle detections

hello,
I installed the integraion on HA and tried to check the events received with dahua_event_received, but I see only CrossRegionDetection events, nothing about vehicle or human, they are enabled because with the dahua application DMSS I receive the alerts.
What may I check?
thanks

ok, I get these:
event_type: dahua_event_received
data:
  Code: CrossRegionDetection
  action: Start
  index: "5"
  data:
    Action: Appear
    Class: Normal
    CountInGroup: 1
    DetectRegion:
      - - 55
        - 97
      - - 8082
        - 97
      - - 8136
        - 8191
      - - 0
    - 8118
      - - 55
        - 97
    EventID: 15171
    GroupID: 5170
    LocaleTime: "2023-06-26 21:22:01"
    Name: Regola2
    Object:
      Action: Appear
      BelongID: 0
      BoundingBox:
        - 2888
        - 4320
        - 3224
        - 5632
      Center:
        - 3056
        - 4976
      Confidence: 0
      LowerBodyColor:
        - 0
        - 0
        - 0
        - 0
      MainColor:
        - 0
        - 0
        - 0
        - 0
      ObjectID: 77171
      ObjectType: Human
      RelativeID: 0
      Speed: 0
    PTS:<PHONE_NUMBER>0
    RuleID: 4
    Track: []
    UTC:<PHONE_NUMBER>
    UTCMS: 945
  name: Garage
  DeviceName: Garage
origin: LOCAL
time_fired: "2023-06-26T20:22:00.362846+00:00"
context:
  id: XXXXXXXXXXX
  parent_id: null
  user_id: null

and
event_type: dahua_event_received
data:
  Code: CrossRegionDetection
  action: Start
  index: "3"
  data:
    Action: Appear
    Class: Normal
    CountInGroup: 1
    DetectRegion:
      - - 18
        - 73
      - - 8155
        - 49
      - - 8155
        - 8167
      - - 18
        - 8142
      - - 55
        - 73
    EventID: 13003
    GroupID: 3002
    LocaleTime: "2023-06-26 21:22:00"
    Name: Regola2
    Object:
      Action: Appear
      Attachment: []
      BelongID: 0
      BoundingBox:
        - 3824
        - 808
        - 4704
        - 2456
      BrandYear: 0
      CarLogoIndex: 0
      CarWindow:
        BoundingBox:
          - 0
          - 0
          - 0
          - 0
      Category: Unknown
      CategoryConfidence: 0
      Center:
        - 4264
        - 1632
      Confidence: 0
      FusionInfo:
        BelongID: 0
        CartPosX: 0
        CartPosY: 0
        GpsPosValid: 0
        Latitude: 0
          Longitude: 0
        ObjectSource: 0
        RadarCoorXyValid: 0
        Speed: 0
        SpeedValid: 0
        SpeedX: 0
        SpeedY: 0
      MainColor:
        - 0
        - 0
        - 0
        - 0
      ObjectID: 4290
      ObjectType: Vehicle
      PTZ:
        - 0
        - 0
        - 0
      RelativeID: 0
      Speed: 0
      SubBrand: 0
      Text: Unknown
      VehiclePosture: 1
      VehicleSignConfidence: 0
      carLenMode: 0
      carLength: 0
      carTripLineDirection: 0
    PTS:<PHONE_NUMBER>0
    RealUTC:<PHONE_NUMBER>
    RuleID: 10
    Track: []
    UTC:<PHONE_NUMBER>
    UTCMS: 631
  name: Gabry
  DeviceName: Gabry
origin: LOCAL
time_fired: "2023-06-26T20:22:00.296878+00:00"
context:
  id: XXXXXXX
  parent_id: null
  user_id: null

as you can see there is the ObjectType that differentiate vehicle and human, but this is esposed in the same binary_sensor on HA, is there a way to have separate sensor for human and vehicle?

ok, I get these:
as you can see there is the ObjectType that differentiate vehicle and human, but this is esposed in the same binary_sensor on HA, is there a way to have separate sensor for human and vehicle?

You can make use of event triggers in an automation, or set up trigger-based sensors yourself:

trigger:
  - platform: event
    event_type: dahua_event_received
    event_data:
      name: Dahua
      Code: CrossLineDetection
      action: Start
    id: general
  - platform: event
    event_type: dahua_event_received
    event_data:
      name: Dahua
      Code: CrossLineDetection
      action: Start
      data:
        Object:
          ObjectType: Human
    id: Human Motion
  - platform: event
    event_type: dahua_event_received
    event_data:
      name: Dahua
      Code: CrossLineDetection
      action: Start
      data:
        Object:
          ObjectType: Vehicle
    id: Vehicle Motion

interesting, but how to build a sensor that updates on each detection?


File Formats

Could you please tell me which file formats this tool supports?
It would be great to get a complete list =)

It's kinda impossible to give a comprehensive list - it supports anything which FFmpeg supports, which is "pretty much everything" but in practice varies depending on how the user installed FFmpeg.
For example, if someone is using audio-separator on a system with ffmpeg installed with only free software (e.g. Fedora), without the ffmpeg compile time flags "--enable-gpl" and "--enable-nonfree", then they might not have access to encode to MP3 or Real Audio.
In my experience though, the vast majority of real ffmpeg installations are compiled with nonfree enabled, so anything on this huge list will be supported; https://www.ffmpeg.org/ffmpeg-codecs.html

Thanks!


Suggested improvements

Hey, thought I would offer some friendly help.
I've got 3 changes:

Minor typo corrections in README
Moved extension method into the Microsoft.AspNetCore.Builder namespace, this was a pro-tip from friend and is becoming a common practice.
Switching to EmbeddedFileProvider to serve the assets. It still might be preferable to have the control of middleware though, so let me know if you want this dropped.

Good thinking, I might as well keep the FileServerOptions until I don't need it - however I'll move it to a middleware class (just a personal preference). Thanks for the PR!


[Feature Request] Add a kittenKey to mail/list item response

Related to #31 It would be useful to add a kittenKey properties to the item in the /mail/list API items response.
kittenKey is the concatenation of the prefix in the storage.url (se or sw) and storage.key.
kittenKey can be used as mailKey in the /mail/getHtml?mailKey= API.

okay! I'll be working on this 👍


Persist notifications across routes

Hi,
The title says it all. Currently notifications go away when the route is changed. I'd like the notifications to stay until they expire even if the user changes the route.
Is this possible?
Thanks,
Theron

Not sure if I understand this correctly, but if you push a notification and go to another route, it will keep that notification the same way it does with the built-in Phoenix implementation.

@sezaru In my app when put a notification and then change routes the notification disappears before the timer is up. I'm following the instructions in the readme so not sure why this is happening. Are you saying Flashy's default behavior is to keep the flashes when the route is changed?

Ah, ok, I think I see what you mean.
Basically what you are saying is that you will send a notification to the user with a time of, let's say, 10 seconds, after that, if you click in some other page before the 10 second mark, the next page will not keep the notification open.
Yeah, unfortunately I would say that this is outside the scope of the library because it would need a more complex solution where you store the notification somewhere and show it up again in the next page.
But I don't think that is too complicated for you to implement as a custom solution in your project. For example, you can create a new custom notification type that you can persist into your DB.
You would persist the message/data you want to show in the notification and the datetime the notification should expire.
That way, you can also add a liveview on_mount hook that will fetch these persisted notifications from your DB, check if the datetime is already expired or not, and if now, send the notification again.


solves bug while calculating check_digit #4

Description of the change

Solves #4

Type of change

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

Related issues

Fix #4

Checklists
Development

[ ] Lint rules pass locally
[ ] The code changed/added as part of this pull request has been covered with tests
[ ] All tests related to the changed code pass in development

Code review

[ ]  This pull request has a descriptive title and information useful to a reviewer. There may be a screenshot or screencast attached
[ ] "Ready for review" label attached to the PR and reviewers mentioned in a comment
[ ] Changes have been reviewed by at least one other engineer
[ ] Issue from task tracker has a link to this pull request

@NiharZanwar the patch looks good. Anyway you can add a test case where this breaks as well? From the issue you reported, it looks like you already have an example where this fails?

Done @sharoonthomas . Also Check you calendly.


Not get highlighted when tagname is not directly followed by '>'

After issue #8, there's opening jsx tag only highlighted if directly followed by closing angle bracket. So, with this:
function App() {
    return (

    )
}

Line number 3 doesn't got highlighted by jsx. I think the culprit still this start pattern.

sorry, I reverted source code, so this issue is ceased, and reopen #8


CacheStrategy in Xamarin.Forms

Hi,
Is it posible to add cachestrategy in Xamarin.Forms?
Thank you.

What sort of caching? Please explain in more detail and come up with a proposal.


performance issue - possible solution

Hi,
i had terrible performance issues using jquery-bonsai with jquery-qubit. In my scenario I build a relativly big and deep (20 root-nodes, up to 4 levels) bonsai with checkboxes and qubit for indeterminate states.
It took approximatly 2sec to render that bonsai. Qubits part took 1.5sec.
With that "fix" the render time is down to 400ms, where qubit only takes 150ms.
The main problem seems to be, that you walk the tree down and up for every node, where you only need the root-nodes aka the first child level. I know that this solution isn't generally applyable and only works with bonsai. Bonsai seems to wrap all  in an , so qubit gets this . In other cases you may not have this wrapper, my selector may be wrong. But it should give you a general idea of the problem.
thx

Hi there, thanks for that but I'm afraid it's not a solution. I have found some performance improvements that should fix your problem in v2.0.4. Let me know if you're still having issues.

works perfectly now. Complete Bonsai render takes about 200-250ms :) Thanks!


UI / UX tweaks after proxy PR

Description :
UX :
Currently, we pre assume that every contract address is proxy contract and make 4-5* storage rpc calls to get the implementation address (max calls are been made if the contract is not proxy, and less calls if its proxy and we find the implementation address in early "if" condition) .
As such there is not a noticeable difference to me but it might for a user with slow internet connection before #72 and after #72 merge.
^ An naive solution might be having a check box on first screen "Load as proxy" and some URL search params in contracts page, so that we only make those implementation address storage rpc if the conditions are met.
UI:

Demo Image:

This is how we are showing implementation address, it looks good and serve it's purpose not sure if we can do better but happy to hear suggestions!!

I also agree that we should give the user the option to tick a box for "This is a proxy contract" or maybe if we detect a contract but no code in it, maybe we can check for a public write function or something we could detect any proxy and then we attempt the proxy contract detection logic.
We currently do a similar thing if we do not detect a contract bytecode for a given address on heimdall PR, notifying the user: "This is not a contract, are you on the correct chain?". Something like that could work.
About the styling of the implementation address, I definitely agree! We should change that to look better ASAP :D
Also, I think evm-proxy-detection does not work for base and base is going to be pretty active so I think we should migrate proxy detection logic to viem so that we can modify it better and pass the chain as well. I will soon open an issue for this problem. (Maybe we could even utilize a basic backend to store/validate proxy contracts which could help with faster load times.)


Build Reusable UI Components Library

This is blocked till we get some input from design teams
Context
Build a library of reusable components that will help maintain consistency across the app. These components should follow design guidelines and be built using ChakraUI.
Definition of Done
A set of base reusable components is implemented (e.g., buttons, inputs, modals, cards, etc.).
Engineering Details
Create components in a components folder of the project. Extend ChakraUI components using its extendTheme function to adjust base styles as needed.

I like this as a general umbrella task, but once we're ready, let's split this up into separate issues for each component that includes the specific Figma design and perhaps some testing criteria

Handled via PR


Split jest-cli into jest-cli, jest-config, and jest-runtime

export default jest-happiness

Rebased and followed up in #1167. Thanks for the hard work!


Image zoom issue

#If I try to resize a thumbnail image( for eg : 70x70) to a larger one, the image is getting zoomed. Instead I have to set the same image as is, to the larger canvas and make rest part as transparent. I don't see such an option in the documentation.

Hi @sreevishnu
I really cannot determine from your issue what you are trying to do.
Please.

Tell me which library and which version you are using.
Share a code sample of what you are doing.
Show me an example of your image and your expected output.

=> Tell me which library and which version you are using
id="ImageProcessor" version="<IP_ADDRESS>"
=>  Share a code sample of what you are doing.
  ` `using (MemoryStream inStream = new MemoryStream(fileContent))
        {

            using (MemoryStream outStream = new MemoryStream())
            {
                using (ImageFactory imageFactory = new ImageFactory(preserveExifData: true))
                {
                    imageFactory.Load(inStream);
                    if (imageFactory.Image.Height < size.Height || imageFactory.Image.Width < size.Width)
                    {
                        imageFactory.Resize(new ResizeLayer(size, ResizeMode.Pad))
                                  .BackgroundColor(Color.Transparent)
                                  .Quality(70)
                                  .Save(outStream);
                    }
                    else
                    {
                        imageFactory.Resize(new ResizeLayer(size, ResizeMode.Crop))
                                    .Quality(70)
                                    .Save(outStream);
                    }
                }`

=> Show me an example of your image and your expected output.
My Image

Expected Output

Please note that the expected image is having a higher ratio(or say bigger canvas), but background color is white. The Source Image should be croped on a Size we provide and keep it in the Target at center (because the target is bigger, we should be able to keep the source image in center).

That's much better thanks. So you want this image as your output yes?

You probably want something like the following.
imageFactory.Load(inStream);
int height = imageFactory.Image.Height;
int width = imageFactory.Image.Width;

if (height < size.Height || width < size.Width)
{
    imageFactory.Resize(new ResizeLayer(size, ResizeMode.Pad))
                .BackgroundColor(Color.Transparent)
                .Quality(70);
}
else
{
    int dX = (width - size.Width) / 2;
    int dY = (height - size.Height) / 2;

    // ->                         left,top, width,      height
    CropLayer crop = new CropLayer(dX, dY, size.Width, size.Height, CropMode.Pixels);

    imageFactory.Crop(crop)

                // If you wanted to then pad the image to a minimum size
                // you would then use ResizeMode.BoxPad to increase the canvas area.
                .Quality(70);
}

Now I wrote something like this
 imageFactory.Load(ImageToResize.ToStream(ImageFormat.Jpeg));                         if (imageFactory.Image.Height < size.Height || imageFactory.Image.Width < size.Width)                         {                             imageFactory.Resize(new ResizeLayer(new Size(imageFactory.Image.Height, imageFactory.Image.Height), ResizeMode.Crop))                                       .Resize(new ResizeLayer(size, ResizeMode.BoxPad))                                       .BackgroundColor(Color.Transparent)                                       .Quality(70)                                       .Save(outStream);                         }                         else                         {                             imageFactory.Resize(new ResizeLayer(size, ResizeMode.Crop))                                         .Quality(70)                                         .Save(outStream);                         }
Got the output like

the background color is not transparent :(

Jpeg's don't support transparency. They don't have an alpha channel.

ah...I really forget that! :D

I forget myself sometimes :smile: Change the format to png for transparency

I done like
Image ResizedImage = Image.FromStream(outStream<EMAIL_ADDRESS>ImageFormat.Png);
but still transperency is not working.
Is there any way to do it via ImageFactory ?

Yeah
.Format(new PngFormat())

http://imageprocessor.org/imageprocessor/imagefactory/format/

Yup, that makes my life easier :)

Excellent! If you have everything please close the issue. I'm very glad I could be of help.

Sure, I'll close the issue. Great help Jim! Thank you very much :)


Using "shape: hull" produces an error

aframe-physics-system.js:14840 : Uncaught TypeError: Cannot read property 'length' of undefined
Line 14840:  if (!geometry || !geometry.vertices.length) return null;
The problem is that the script doesn't check if the geometry that it receives is of type Geometry or BufferGeometry. BufferGeometry doesn't have the property array ".vertices". I solved it by adding an if statement and converting a possible BufferGeometry to Geometry:
      temp = getGeometry(object),
      geometry = new THREE.Geometry();
  if (temp instanceof THREE.BufferGeometry){
    geometry.fromBufferGeometry(temp);
  }
  if (!geometry || !geometry.vertices.length) return null;

Thanks! Is there an example (model, Codepen, Glitch, etc.) you could share?

Here you go: https://jsfiddle.net/boobiepls/60wx2rft/
You can see that the torus has no collision geometry and if you open up the browser's console you can see the error.


Fix cronos mainnet address

What was wrong?
The cronos mainnet address for v1.3.0 l2 was not right.
Check out the address in safe deployments: https://github.com/safe-global/safe-deployments/pull/93/files

Sounds good


Angular unit tests

Info
We need new unit tests written per component for the new Angular upgrade.
These tests include using either vitest snapshot testing or manual attribute tests
More Info
The current Angular upgrade work is being done on this branch, everyone should be able to access this and contribute back to it at the same time.
Acceptance Criteria:

We have unit tests written for the following

[x] Accordion
[x] Badge
[x] Block
[x] Button
[x] Button Group
[x] Calendar
[x] Callout
[x] Checkbox
[x] Chip
[x] Circular Progress
[x] Column Layout
[x] Container
[x] Date Picker
[x] Details
[x] Divider
[x] Dropdown
[x] Dropdown Item
[x] File Upload Card
[x] File Upload Input
[x] Footer
[x] Footer Meta Section
[x] Footer Nav Section
[x] Form Item
[x] Form Stepper
[x] Grid
[x] Header
[x] Header Menu
[x] Hero Banner
[x] Hero Banner Actions
[x] Icon
[x] Icon Button
[x] Input
[x] Microsite Header
[x] Modal
[x] Notification Banner
[x] Pages
[x] Pagination
[x] Popover
[x] Radio Group
[x] Radio Item
[x] Side Menu
[x] Side Menu Group
[x] Side Menu Heading
[x] Skeleton
[x] Spacer
[x] Spinner
[x] Tab
[x] Table
[x] Tabs
[x] Textarea
[x] Tooltip

Closing as this was merged into the angular-components branch


Added CMDLET to get work items via WIQL

PR Summary
I added a new cmdlet which was suggested with the issue #175. I had asked some questions regarding some more changes that needed to be made. Since I didn't get an answer yet, I just went with my idea anyways.
So the following things were added:

cmdlet Get-VSTeamWiql

added an extra parameter "Expand" to the cmdlet to already load all the work items with the given columns in the WIQL command. By default only URL and work item IDs are given

added -Team parameter to buildRequestURI and _callAPI because it was not supported by them to have this covered.
added a format file for the cmdelet
added a type file for the cmdlet

PR Checklist

[X] Write Help
[X] Write Unit Test
[ ] Update VSTeam.psd1
[ ] Update CHANGELOG.md

@DarqueWarrior if my approach with the private functions were correct. Where should I unit test them, if you have some already?

Sorry for delay. I am recovering from surgery. I will get to this ASAP.

NP! Take your time!

Can you sync your repo? Your Build-Module.ps1 is old. The new version runs tests and static code analysis .

@ferwe I gonna improve that. Thanks!

@DarqueWarrior I merged the newest version and also updated the psd and changelog

Just got a break at Ignite. Going to process as many as I can today.


suckerberg (incompatible)

Due to last dev update this afternoon, suckeberg becomes incompatible.

Any idea?

Works again - thanks.


Main dev

fix wrong name convention in logsToOS
keep record of the zipped es files
report zipped es file size and checksum, change the scope to 'transient'.
fix register logsInOS when the job fails

Thanks Wen. (I removed the comment about ddmType etc)


Quark Builder

This introduces the QuarkBuilder for constructing QuarkOperations based on intents. The idea is to offload the complexities of constructing QuarkOperations for various actions (e.g. transfer, bridge, etc.) into a pure Solidity contract that be run locally.

All the PRs rolling up into this one have been reviewed and approved already.


Datepicker min/max should invalidate the input if the value is outside the range

Can you check if this feature is in the most recent version of datepicker? Until then; closing due to inactivity. If it's not in the current version, I'll reopen this request.


?_shape=array option

Some tools (pandas.DataFrame(...) for example) are happiest when you give them a raw array of JSON objects.
?_shape=array should do just that
While I'm at it, rename the default ?_shape=lists to instead be called ?shape=arrays
And validate that _shape is a valid option
And have ?_shape=object return the object at the root level rather than nested in .rows to better match the behavior of ?_shape=array

Demos:

https://datasette-versions-and-shape-demo.now.sh/sf-trees-02c8ef1/qSpecies.json?_shape=array
https://datasette-versions-and-shape-demo.now.sh/sf-trees-02c8ef1/qSpecies.json?_shape=object
https://datasette-versions-and-shape-demo.now.sh/sf-trees-02c8ef1/qSpecies.json?_shape=arrays
https://datasette-versions-and-shape-demo.now.sh/sf-trees-02c8ef1/qSpecies.json?_shape=objects


Selection of Property for Raster

Display the properties of the shapefile in the file viewer #13 . Once the properties are displayed, this should allow the user to select the property to use to create the raster file. This property should be used to replace the hard-coded property.

The selector now works, we just need to pass the values to the form.


Get rid of compaction on rowset when making snapshot

@chaoyli
You should describe this fix in commit message in more details.


Example in repository is not working correctly

I copied the code from react-codemirror/example/src/example.js
I am running:
codemirror .5.12.0
react-codemirror 0.2.5
react 0.14.6
nodejs 5.6.0
Issues I am having:

with line numbers turned off the display has some extra area above the first line with a single character  x

x
var component = {
    name: "react-codemirror",
    author: "Jed Watson",
    repo: "https://github.com/JedWatson/react-codemirror"
};

With ** line numbers turned on**  the menus at the bottom stay left aligned and the text in the editor shifts way right( cannot figure out how much).

x

1
var component = {
2
    name: "react-codemirror",
3
    author: "Jed Watson",
4
    repo: "https://github.com/JedWatson/react-codemirror"
5
};

'''

I did a little more digging. Thanks to Dorian's  blog ( http://dorianpula.ca/2015/10/07/adding-a-code-editor-to-rookeries/) I was able to get rid of my issues above. But there is still an outstanding issue of highlighting not working.
Thanks Dorian.


trigger to incorparate security changes by dev

CI: No IaC security warnings found

CI: No security warnings found


Update HelloWorld(F#).f

Description

Types of changes

[ ] Bug fix or improving code quality
[x] New language
[ ] New feature

Checklist:

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

Ttuugy


Support new Dashboard versioning

What problem does this PR solve?
Adapt for https://github.com/pingcap-incubator/tidb-dashboard/pull/679

What is changed and how it works?
Support the new versioning format, as well as support specifying any arbitraty Dashboard commit when building PD.
Note that this PR does not support native Windows (and I think the Windows support should be dropped and prefer WSL instead).

[x] This PR should be merged only after https://github.com/pingcap-incubator/tidb-dashboard/pull/679 is landed and a release branch is created.

Check List

Tests

Manual test

Related changes

Need to cherry-pick to the release branch

Release note

Maybe we can put describe-dashboard-githash.sh and describe-dashboard-internal-version.sh into one script.

/merge

/merge

/merge

/run-cherry-picker


MultiDiscrete Action Space

I am working with this gym environment mobile-env which has a MultiDiscrete Action Space. I am wondering is there a way we can change the way we can use the gym implementation which produces an array of continuous outputs into a MultiDiscrete output?
Any sort of help/suggestion would be appreciated! :)

Hi, the simplest way to do this is probably to just expand the output dim of the action by a bunch, and then reshape the output predictions into the shape you need. You can also replace the loss function for training to match.
Alternatively, you could add multiple action tokens, one for each dimension of your action space.


How to handle errors in Express

Nice, thank you!

Good post Gergely!
Maybe it's worth adding that errors thrown in an async context won't be handled by the asyncMiddleware?
E.g. adding this code in a controller:
setTimeout(() => {
    throw new Error('Oops')
}, 2000);

It isn't necesssary to pass next, right?
Promise.resolve(fn(req, res))...

@robertmirro Here in this example next is not used inside handler. But it can, e.g. when callback function is used:
app.get('/users/:id', asyncMiddleware(async (req, res, next) => {
  const userId = req.params.id
  if (!userId) {
    throw boom.badRequest('missing id')
  }
  const user = await Users.get(userId)

  doSomethingWithUser(user, (err) => {
    if (err) {
      return next(err);
    }
    res.json(user)
  });
}))

@dolvik I thought the point of the final example was to avoid next in the callback and throw instead.
Also... I'm guessing that asyncMiddleware wraps the result of the callback in a promise for flexibility (callback isn't required to return a promise), but that's just a guess. :smile:

@ruanmartinelli It's worth mentioning it. I threw an error in a async function and got error: Unhandled promise rejection Promise :)
Why the author doesn't reply? :)

Hi @ruanmartinelli @Tiendq
I don't see that as a valid use case - if you want to add a delay in your controller, you should do something like this
app.get('/', asyncMw(async (req, res) => {
  function sleep (ms) {
     return new Promise ((resolve) => setTimeout(resolve, ms))
  }

  await sleep(2000)
}))

The whole point of this logic is not to add callbacks - this is how you can make it work with setTimeout. I hope it makes sense

@gergelyke Thank you, it makes sense now :)

@gergelyke
The setTimeout was just an example!
Think of it as any async operation that doesn't need to be awaited at (maybe an endpoint that triggers some background processing?). If it throws, the asyncMiddleware won't catch it.

@ruanmartinelli It was exactly my case too, but I think it was my code smell and I refactored it, if it's async I'll await, or I rewrite it as a normal (sync.) function.

@ruanmartinelli what kind of background processing you have in mind? if you want to do that, your endpoint should only dispatch a message to rabbitmq/nsq/etc, and let a separate process deal with that

@gergelyke Fair enough, but that is not my point.
What I am trying to say is that wrapping the code in asyncMiddleware-like functions can give a false sense of security, as if all errors thrown inside of the wrapper will be nicely handled by an express middleware. That is not true for the setTimeout example or any other errors thrown in an async context, which AFAIK crashes the app.

Understood - I recommend reading Eran's great piece on the topic:  https://medium.com/@eranhammer/catching-without-awaiting-b2cb7df45790

We can also patch router to add wrapper automatically (you may customize catchAsyncErrors for your boom needs)
https://gist.github.com/Paxa/da339f1f72732bb0ee42d342da9ff6f7

The point is exactly that - do NOT write try/catch block in every handler. Imaging you having many routes and you want to handle them, for every you write try/catch...
Async middleware prevents code repeat (try/catch blocks) and you have final error handling middleware at the end of the all route handlers which picka up an error.

I don't see the issue with this pattern. It's worked very well for C++/Java/etc for decades.
You can't possibly call try/catch code repetition can you? It's part of the native Javascript syntax for a reason. You've also removed all of the flexibility that try/catch offers. What if I want to use catch together with finally to recover from an error and return the application to a usable state? What if I want different parts of my middleware to catch different kinds of exceptions and handle them differently? Is every exception fatal in your model?
The pattern you're using is extremely inflexible, and creates unnecessary complexity. I have no idea why you'd consider try/catch boilerplate, considering it's an extremely well established pattern/paradigm...
One extremely common anti-pattern I see from Javascript developers is the misuse of Promise.reject(...). When using async/await promise rejection is analogous to throwing an exception, which should not be used for business logic. A good rule-of-thumb is to throw or reject only when assumptions made by your business logic have not been met, eg. null parameters and such.

I have to agree with you that the pattern is inflexible though. I tried it and found that I do not have fine control over my responses and I ditched it completely and went back to Promises.

@gergelyke what do you mean Express does not support Promise-based route handlers? It absolutely does in the form of async functions. Obviously you can't use the Promise API resolve and reject to affect control flow in an express app, but you can use async functions directly as middleware.

Also, even with the wrapped version, you can do try-catch and local error handling, if you'd like to recover from any error cases

This is what I do with my apps, most of the time I lets it goes to generic async middleware function and only use try/catch locally where needed.

I do love this article (:


boards: arm: enable CONFIG_USB_DC_HAS_HS_SUPPORT

enable CONFIG_USB_DC_HAS_HS_SUPPORT when we use OTG_HS in that case TEST_BULK_EP_MPS	(Endpoint max packet size) equal 512 and not 64
it is the case for nucleo_h723zg and for nucleo_h7a3zi_q

ok


Create hash function to generate a shortened URL

This hash function should adhere to the following:

the hash value should return a constant length
it can use a-z0-9
it should avoid the following ambiguous characters

0,O,l,I

it should be case insensitive

Are you thinking that the hash is completely random or in some way correlated to the URL?

Well, we’ll still need a way to retrieve the original URL yet it it seems like the way other shorteners work is that the input url generates the same output. After thinking about it though, perhaps that isn’t totally necessary.

Just pushed some code with a function that generates a hash. I know it doesn't belong where I put it but I also wasn't sure how you were going to structure everything. We can move it to the correct place later.
Currently all it does is generate a random string of a certain length out of a certain group of characters. With this approach there is no link between the URL and the hash aside from whatever is stored in the database. Some additional code will be needed to query the database to make sure there isn't a hash collision. This should happen rarely (there's 27 billion possible 7 character hashes that are all lower case and exclude 0, o, 1, and l).
If we want to match the functionality where the same url always generates the same hash then we would query the db when a user enters a URL to see if a hash has already been generated. If it has we'd return it, otherwise we'd generate a new one. That said, I can see some advantages to generating a unique hash for every submission. For instance, it would allow the submitter to get analytics on who has clicked their specific link, while overall analytics for a specific URL could easily be found by joining all the data from each unique hash.
Let me know what you think. Happy to approach this from a different direction too if you had something else in mind.

@panoz7 the term I was looking for the other day was idempotence. That's just a fancy way of saying that multiple calls to the a function yield the same results.
I took a look at how TinyURL seems to do things and it does appear that there is a direct mapping from URL->hash in that the same URL will produce the same hash. I somewhat like the idea of the hash function not being dependent on the database, but either way it does seem like we would have to check for collisions. I don't have a strong preference either way yet I would lean to trying to rely on little on a DB as possible.
I when ahead and moved your code into a utils/ folder and wrapped it inside of a typescript class. I also added starter unit tests that should be helpful to prototype and test the function. I started a draft PR (#20) where the work could continue.


Opening any Neogit popup halves the height of Neovim within my Terminal

Description
When I open Neogit, initially there is no buggy behaviour. But as soon as I open any Neogit popup at all, Neovim halves the height that it uses in my terminal.
Before pressing p:

After pressing p:

This behaviour does not occur with any other plugin.
The only way to fix it is to quit and restart Neovim.
My terminal is Kitty 0.29.1.
My config:
return {
  'NeogitOrg/neogit',
  dependencies = {
    'nvim-lua/plenary.nvim', -- required
    'nvim-telescope/telescope.nvim', -- optional
    'sindrets/diffview.nvim', -- optional
    'ibhagwan/fzf-lua', -- optional
  },
  config = { disable_context_highlighting = true, kind = 'replace' },
}

Relevant :CheckHealth output:
==============================================================================
diffview: require("diffview.health").check()

Checking VCS tools ~
- WARNING Configured `hg_cmd` is not executable: 'hg'

==============================================================================
lazy: require("lazy.health").check()

lazy.nvim ~
- ERROR Issues were reported when loading your specs:
- WARNING {neogit}: setting a table to `Plugin.config` is deprecated. Please use `Plugin.opts` instead

==============================================================================

Neovim version
NVIM v0.9.4
Build type: Release
LuaJIT 2.1.1700008891
Operating system and version
14.1.1
Steps to reproduce
Not sure anyone else will be able to reproduce this, but I can reproduce it by pressing p, as per the two screenshots shown above.
Expected behavior
Neovim continues to occupy the full terminal window.
Actual behavior
Neovim starts to to occupy half the height of terminal window.
Minimal config
I doubt anyone else will be able to reproduce this

For now I am working around the issue with the following config.
return {
  'NeogitOrg/neogit',
  dependencies = {
    'nvim-lua/plenary.nvim', -- required
    'nvim-telescope/telescope.nvim', -- optional
    'sindrets/diffview.nvim', -- optional
    'ibhagwan/fzf-lua', -- optional
  },
  config = {
    disable_context_highlighting = true,
    kind = 'replace',
    status = {
      kind = 'vsplit',
    },
    commit_editor = {
      kind = 'vsplit',
    },
    commit_select_view = {
      kind = 'vsplit',
    },
    commit_view = {
      kind = 'vsplit',
    },
    log_view = {
      kind = 'vsplit',
    },
    rebase_editor = {
      kind = 'vsplit',
    },
    reflog_view = {
      kind = 'vsplit',
    },
    merge_editor = {
      kind = 'vsplit',
    },
    tag_editor = {
      kind = 'vsplit',
    },
    preview_buffer = {
      kind = 'vsplit',
    },
    popup = {
      kind = 'vsplit',
    },
  },
}

(I'm assuming Neogit like most Lua plugins does a deep merge between this settings and the default settings.)

also use opts instead of config


bug: @acme/expo:dev:  WARN  [TRPCClientError: JSON Parse error: Unexpected character: <]

Provide environment information
System:
OS: Windows 10 10.0.19045
CPU: (16) x64 12th Gen Intel(R) Core(TM) i5-1240P
Memory: 1.51 GB / 7.68 GB
Binaries:
Node: 18.17.0 - C:\Program Files\nodejs\node.EXE
Yarn: 1.22.19 - ~\AppData\Roaming\npm\yarn.CMD
npm: 9.6.7 - C:\Program Files\nodejs\npm.CMD
Describe the bug
Everything was working alright until my TRPC Queries started failing... "bug: @acme/expo:dev:  WARN  [TRPCClientError: JSON Parse error: Unexpected character: <]"
im getting this error in
Link to reproduction
https://github.com/AvIsBeastMC/assetwing
To reproduce

Additional information
No response

Repro is private.
I don't have time to debug stuff without proper reproduction repos. Feel free to reopen this one when one is provided.

@AvIsBeastMC  I was having the same issue.
I am using clerk for authentication and modified my middleware.ts to be as the following
import { NextResponse } from "next/server";
import { authMiddleware } from "@clerk/nextjs";

export default authMiddleware({
  publicRoutes: [
    "/",
    "/sign-in",
    "/sign-up",
    "/forgot-password",
    "/api",
    "/api/trpc",
  ],
  afterAuth(auth, req) {
    // handle users who aren't authenticated
    if (!auth.userId && !auth.isPublicRoute) {
      const signInUrl = new URL("/sign-in", req.url);
      return NextResponse.redirect(signInUrl.href);
    }
  },
});

// Stop Middleware running on static files
export const config = {
  matcher: [
    /*
     * Match request paths except for the ones starting with:
     * - _next
     * - static (static files)
     * - favicon.ico (favicon file)
     *
     * This includes images, and requests from TRPC.
     */
    "/(.*?trpc.*?|(?!static|.*\\..*|_next|favicon.ico).*)",
  ],
};

``

@AvIsBeastMC  I got it to work with authMiddleware by adding /api/:path/:trpc it looks as such
import { NextResponse } from "next/server";
import { authMiddleware } from "@clerk/nextjs";

export default authMiddleware({
  publicRoutes: [
    "/",
    "/sign-in",
    "/sign-up",
    "/forgot-password",
    "/api/:path/:trpc",
  ],
  afterAuth(auth, req) {
    // handle users who aren't authenticated
    if (!auth.userId && !auth.isPublicRoute) {
      const signInUrl = new URL("/sign-in", req.url);
      return NextResponse.redirect(signInUrl.href);
    }
  },
});

// Stop Middleware running on static files
export const config = {
  matcher: [
    /*
     * Match request paths except for the ones starting with:
     * - _next
     * - static (static files)
     * - favicon.ico (favicon file)
     *
     * This includes images, and requests from TRPC.
     */
    "/(.*?trpc.*?|(?!static|.*\\..*|_next|favicon.ico).*)",
  ],
};


Code lens not working

Didn't change anything started up pc yesterday. Opened vs code and for some reason, I'm not getting code lense anymore. I tried a lot from turning it first on and of, restarting pc, Updating vs code, and Changing editor in unity back and forth. resetting all settings, Reinstalling vs code. Restarting pc again.
But nothing helped and I'm very dependent on code lens for unity development. I tried looking up a lot but nobody seems to have this with vs code only in vs studio. So I can't find anything that can help.
It's strange that after 3 years of always having it worked out of nowhere it stopped.

I have been trying to fix it now for 2 days sadly nothing worked... Hope to get help with this.

It looks like the issue is caused by one of your installed extensions. All extensions execute together on a single nodejs process, so in order to narrow down the possible problematic extension, please try the following:

run F1 > Help: Start Extension Bisect
(this will restart VS Code with half of your extensions disabled)
try to do the steps which reproduce the problem
if the problem reproduces, click "This is bad" (this narrows down the problematic extension to the half which was enabled)
if the problem does not reproduce, click "Good now" (this narrows down the problematic extension to the half which was disabled)
these steps will repeat until the problematic extension is found

initial
step
final


[integration-tests] Assert on the message queued after createChannel()

Eek another concurrency test timeout https://app.circleci.com/pipelines/github/statechannels/statechannels/8655/workflows/78589957-c104-4e53-a7f3-c3fe05ad364b/jobs/40767

Eek another concurrency test timeout https://app.circleci.com/pipelines/github/statechannels/statechannels/8655/workflows/78589957-c104-4e53-a7f3-c3fe05ad364b/jobs/40767

Let's just skip that test for now, and create an issue for it. No need to waste your time on that right now.


Bump chef-vault to 2.6.1

Chef Vault 2.6.1 includes https://github.com/Nordstrom/chef-vault/pull/172 which will help us with some dependency issues we've been causing ourselves in ChefDK (https://github.com/chef/knife-windows/issues/236)
@chef/client-core
@chef/omnibus-maintainers

Chef Software people can see the test build of this http://manhattan.ci.chef.co/job/chefdk-build/

Yay!

This fixed the ChefDK build (thus far, haven't waited for the windows testers): http://manhattan.ci.chef.co/job/chefdk-test/242/ so I think it's good.


Document what VariablePresentationHint does

I've tried searching the docs and GitHub, but I can't figure out what VariablePresentationHint values are supposed to do (except a kind of virtual). As far as I can tell, nothing changes in the UI.
Are these values just provided for future-proofing, or should they do something? I was looking for a way to make getters (which have executed code to be displayed) look slightly different to fields in my variables list.

"hints" are optional and every frontend is free to ignore them.
"VariablePresentationHint" are ignored by VS Code but honored by VS. If you want to see them in VS Code please file a feature request with details about what exactly VS Code should be implemented.


[BUG] React 18 is not supported

Description/Screenshot
The library requires react 17 as peer-dependency
Steps to Reproduce

see https://github.com/microsoft/applicationinsights-react-js/blob/main/applicationinsights-react-js/package.json#L75

Expected behavior
the library should support react 18
Additional context
I'm using this library in a project that is currently on react 17. Trying to upgrade to react 18, npm is highlighting this lack of support for react 18

Known issue and one of the reasons for pulling this plugin out of ApplicationInsights repo.
Related Issues from the ApplicationInsights repo

https://github.com/microsoft/ApplicationInsights-JS/issues/1799
https://github.com/microsoft/ApplicationInsights-JS/issues/1804
https://github.com/microsoft/ApplicationInsights-JS/issues/1820

#15

We believe that this should be addressed simplistically by #15 above, this is now available as a nightly package. If we could get some validation to confirm would be helpful.

@MSNev  hi - thanks for the new nightly - it worked for me :octocat:

@MSNev I can also confirm that it works for me! 🎉🚀


add support to provide metro r2 dr rdf group

Add support to provide metro r2 dr rdf group when converting to a metro dr environment

yes, please, merge into 10.2

Sergio, I have added this into a separate branch and run CI tests on it.    I will merge my branch as I had some other work to go in.  Thanks so much for contributing to the project.


Ubuntu 22.04 ARM64 Distribution Request

Name of the Distribution
Ubuntu 22.04 ARM64
Version of the Distribution
Ubuntu 22.04
Package Types

[ ] Deb
[ ] RPM
[ ] Tar.gz
[ ] Snap - Stop! Please file your issue in PowerShell-Snap instead.

Processor Architecture
ARM64
.NET Core Support

[X] The version and architecture of the Distribution is supported by .NET Core.

Distribution Requirements

[X] The version of the Distribution is supported for at least one year.
[X] The version of the Distribution is not an interim release or equivalent.

Exemption Justification
No response
Progress

[ ] An issue has been filed to create a Docker image in PowerShell-Docker

For PowerShell Team ONLY

[ ] Docker image created
[ ] Docker image published
[ ] Distribution tested
[ ] Update packages.microsoft.com deployment
[ ] Lifecycle updated
[ ] Documentation Updated

https://github.com/PowerShell/PowerShell/issues/18211


Get center lon/lat for "type": "way" entries

to derive marker node for those entries as well

downloaded Saxony, Saxony-Anhalt and Thuringia osm.bz2 files from http://download.geofabrik.de/europe/germany.html, used https://github.com/mediasuitenz/docker-overpass-api to host those files separately in a local Overpass API server instance and then resolved ways and relations to their containing nodes, calculating the center position out of them, taking this a marker Geo position for the geojson file to create, see result here: https://codeforleipzig.github.io/codingdavinciost2018/


Remove algorithm string  from EncryptionKeyWrapMetadata

referring .NET PR https://github.com/Azure/azure-cosmos-dotnet-v3/pull/2283

closed with PR https://github.com/Azure/azure-sdk-for-java/pull/20845


TargetPlatform enumeration and native views

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/platform/native-views/xaml refers to the target platform:

As well as specifying the clr-namespace and assembly for a native view namespace, a targetPlatform must also be specified. This should be set to one of values of the TargetPlatform enumeration, and will typically be set to iOS, Android, or Windows.

However, that enum (which is linked from the page) is deprecated. It also seems to be incomplete; my expected value of macOS isn't included.
What's the new approach to a platform-specific control inside a view?

Hi @chucker
Thanks for pointing this out. Although the TargetPlatform enum is deprecated, the targetPlatform value must be identical to one of: iOS, Android, UWP, Windows (which is equivalent to UWP), macOS, GTK, Tizen, or WPF.
I've just updated the doc, in a PR that will go live later.


Remove object properties and enumerated types values that were deprecated in v3.1

This PR removes all object properties and enumerated type values that were marked as deprecated in the WZDx v3.1 release.
It was noted at the time of release and in the documentation that the deprecated elements would be removed in a future major WZDx version. Since the fall 2021 release will be v4.0 (major version change), WZDx is still in the earlier adoption phase, and there has been no objection during any subgroup meetings in the v4.0 development cycle to removing the deprecated fields, this change will happen for v4.0.

Specifically, the following changes were made:
The following deprecated properties were removed from the RoadEvent object:

road_name
road_number
total_num_lanes
road_event_id

The following deprecated value was removed from the LaneStatus enumerated type:

alternating-one-way

The following deprecated values were removed from the LaneType enumerated type:

left-lane
right-lane
middle-lane
center-lane
right-shoulder
left-shoulder
right-second-exit-ramp
left-second-exit-ramp
right-entrance-exit-ramp
left-entrance-exit-ramp
hov-lane
alternating-flow-lane
reversible-lane

For history regarding the LaneType and LaneStatus deprecated values, see #137.


Android Tutorial

Description

What about adding some android resources
Why

This wonderful resource hub is really missing any android materials .

Is this something you're interested in working on?

[x] YES
[ ] NO

I'd like to contribute to the Android tutorials.


Will Support Singularity/Slurm?

Is any plan for shinyproxy to support singularity image? It is a very good container solution for HPC. BTW, shinyproxy might consider support slurm or other HPC job manager to proxy different shiny apps in different computing nodes. Thanks!

Hi
Thanks for opening the issue. Unfortunately, supporting singularity or slurm is not on our roadmap. However, we do believe in the HPC usecase for ShinyProxy.
I'll leave this issue open as a feature request.


Improve caching in Catalog.getPageDict (PR 8207 follow-up)

PR 8207 added caching to improve the performance of Catalog.getPageDict, by not having to repeatedly fetch the same data and also reducing the asynchronicity of that method.
However, because of annoying off-by-one errors[1] the caching became less efficient than it could/should be.[2] Note here that the /Pages-tree is zero-indexed, and that e.g. pageIndex = 5 thus correspond to the sixth page of the document.

[1] In particular the currentPageIndex + count < pageIndex part.
[2] For example, even when loading a relatively small/simple document such as tracemonkey.pdf in the viewer, the number of xref.fetchAsync(currentNode) calls are reduced from 56 to 44 with this patch.

/botio test

Thank you for fixing this!


Better assertion for running tests in parallel with junit4

Had a co-worker call me over yesterday and explain that he had been trying to figure out why our CI pipeline failed for around 10 minutes and didn't understand.  He was new and knew nothing about karate.  All he had to go on was a failed assertion that the test expected 0 but got 2.  I helped him out by telling him to scroll up in the terminal and just above the fold at the top were the actual errors.
While I could (and probably should... :shrug:) provide a better test failure description, it made me wonder if the karate-junit4 package could provide a custom assertion?  I'm thinking that it could be inspired by junit5's new assertAll() feature found here.  Anything to make it more clear when looking where we are used to seeing test failure descriptions.  Let me know what you think!  Thanks for all your work

@matthewmcgarvey thanks ! honestly what normally happens in practice is you get the Cucumber HTML report as well which is super-effective for drilling right down to the error, have a look at this video:
https://twitter.com/KarateDSL/status/899671441221623809
and as you mentioned, we took care to have a summary of errors printed to the console just before the parallel runner exits.
I'm personally against custom assertions because it clutters the match syntax :)
that said, this is an opportunity to make improvements as I'm in the middle of doing a total re-write of the "engine".
questions:

what specifically can we do to make interpreting the console log easier
example of proposed syntax addition to Karate DSL. a custom assertion is good to have, but what would it look like ? keep in mind we already log the feature name, line number, who called it etc.


can't connect to the exposed port

after I start nginx container ，I can‘t connnet to the 80 port that I just expose, netstat show that 80 port is listening
tcp6       1      0 :::80                   :::*                    LISTEN      26741/docker

but when I wget http://localhost:80/index.htm ,it stuck at the connecting phase.
[root@localhost docker]# wget http://<IP_ADDRESS>:80/index.htm
--2016-05-11 15:53:35--  http://<IP_ADDRESS>/index.htm
Connecting to <IP_ADDRESS>:80...

after wget ,netstat will show up a FIN_WAIT and CLOSE_WAIT connect
tcp6       2      0 :::80                   :::*                    LISTEN      26741/docker
tcp6     108      0 ::1:80                  ::1:50252               CLOSE_WAIT  -
tcp6       0      0 ::1:50254               ::1:80                  FIN_WAIT2   -

any idea?
Output of docker version:
Client:
 Version:      1.11.1
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   5604cbe
 Built:        Wed Apr 27 00:34:42 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.11.1
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   5604cbe
 Built:        Wed Apr 27 00:34:42 2016
 OS/Arch:      linux/amd64

Output of docker info:
Containers: 2
 Running: 1
 Paused: 0
 Stopped: 1
Images: 39
Server Version: 1.11.1
Storage Driver: devicemapper
 Pool Name: docker-253:0-67903334-pool
 Pool Blocksize: 65.54 kB
 Base Device Size: 107.4 GB
 Backing Filesystem: xfs
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 1.642 GB
 Data Space Total: 107.4 GB
 Data Space Available: 43.55 GB
 Metadata Space Used: 3.514 MB
 Metadata Space Total: 2.147 GB
 Metadata Space Available: 2.144 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Deferred Deletion Enabled: false
 Deferred Deleted Device Count: 0
 Data loop file: /var/lib/docker/devicemapper/devicemapper/data
 WARNING: Usage of loopback devices is strongly discouraged for production use. Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning.
 Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
 Library Version: 1.02.107-RHEL7 (2015-12-01)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: host bridge null
Kernel Version: 3.10.0-229.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 6
Total Memory: 7.64 GiB
Name: localhost.localdomain
ID: 6BNG:DROD:ILB7:7R72:OXJN:MY5V:UX4N:GDFT:KTGY:6Y6V:7XT5:WP5W
Docker Root Dir: /var/lib/docker
Debug mode (client): false
Debug mode (server): false
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

Additional environment details (AWS, VirtualBox, physical, etc.):
Steps to reproduce the issue:
1.
2.
3.

Can you show;

the command you used to start the nginx container (i.e. docker run .... with all the options you passed)
the IP-address you're trying to connect to, is that the IP-address of the container, or of the host that the container is running on?

Also, could this be related to https://github.com/docker/docker/issues/2174 ?

Closing because OP did not provide more information


Turbo morph not preserving stimulus values

I am unsure if this issue is with Stimulus or Turbo, so I apologize if this is the wrong repo. I am using Turbo 8 morphing and I am noticing that all my controller values are reset when my page morphs. This behavior is a bit confusing since the connect callback is also skipped in these situations. I've included a simple example repo I used for testing this behavior here: https://github.com/rbclark/turbo-8-stimulus-bug-demo
In the video below I initially load the page and then after the first refresh morph the connected-value attribute disappears.
https://github.com/hotwired/turbo/assets/2308869/8f547b69-d407-4590-aac6-15df96d2e296
For now I have a global workaround added to my application.js to avoid this issue, although I'm not sure if it will have any other unforseen implications:
document.addEventListener("turbo:before-morph-attribute", (event) => {
  const {detail: {attributeName}} = event

  if (attributeName.startsWith("data-") && attributeName.endsWith("-value")) {
    event.preventDefault()
  }
})

With how well Stimulus works with Turbo normally, it would be great if this behavior just worked out of the box.

Thank you for opening this issue and for sharing a reproduction repository.
This feels related to several existing issues:

https://github.com/hotwired/turbo/issues/1083
https://github.com/hotwired/turbo/issues/1087

The events that you mention were introduced by https://github.com/hotwired/turbo/pull/1097 (as a successor to a commit (https://github.com/hotwired/turbo/pull/1019/commits/9944490a3c8aec0c5060401125cc8932e93a32df) that was ultimately reverted).

although I'm not sure if it will have any other unforseen implications

The unforeseen circumstances are certainly a risk. Over-committing to ignore all server-sent Stimulus Values feels safer than under-committing. I'm sure with time there will be some edge cases that will emerge.

it would be great if this behavior just worked out of the box.

Integration with Stimulus was the main driver behind that contribution. As the dust of the Turbo 8 release settles, I hope that there will bandwidth for a coordinated effort to expand built-in Morph integration for Stimulus and Trix (and therefore Action Text). Something that affords a configuration-less turn-key solution for most circumstances with some focused escape hatches when necessary.


[BUG] false invalid schema

Checklist

[x] I checked the FAQ section of the documentation
[x] I looked for similar issues in the issue tracker
[x] I am using the latest version of Schemathesis

Describe the bug
Hi,
I have an openapi 3.0.3 document file, which contains references for parts of another file (it contains common stuff)
for example:
$ref: './common-components.yaml#/components/responses/UnauthorizedError'
validators that I found say it is valid, also swagger UI is created well from the two files (the parts from common file are included)
But schemathesis says it is invalid:
when
my_stuff = schemathesis.from_file("./my-file.yaml")
is called, the following error is given:
.venv\Lib\site-packages\schemathesis\specs\openapi\loaders.py:256: in from_file
    return from_dict(
.venv\Lib\site-packages\schemathesis\specs\openapi\loaders.py:309: in from_dict
    raise SchemaError(SchemaErrorType.OPEN_API_INVALID_SCHEMA, SCHEMA_INVALID_ERROR)

E   schemathesis.exceptions.SchemaError: The provided API schema does not appear to be a valid OpenAPI schema

To Reproduce
will anonymize, and send example if this is not enough
Environment
- OS: [Windows]
- Python version: [3.11]
- Schemathesis version: [e.g. 3.25.4]
- Spec version: [e.g. Open API 3.0.3]

BR,
George

I changed the openapi doc version to 3.0.1 and got some additional warnings:
.venv\Lib\site-packages\schemathesis\specs\openapi\references.py:49
.venv\Lib\site-packages\schemathesis\specs\openapi\references.py:49: DeprecationWarning: jsonschema.RefResolver is deprecated as of v4.18.0, in favor of the https://github.com/python-jsonschema/referencing library, which provides more compliant referencing behavior as well as more flexible APIs for customization. A future release will remove RefResolver. Please file a feature request (on referencing) if you are missing an API for the kind of customization you need.
class InliningResolver(jsonschema.RefResolver):
.venv\Lib\site-packages\schemathesis\specs\openapi\security.py:6
.venv\Lib\site-packages\schemathesis\specs\openapi\security.py:6
.venv\Lib\site-packages\schemathesis\specs\openapi\security.py:6: DeprecationWarning: jsonschema.RefResolver is deprecated as of v4.18.0, in favor of the https://github.com/python-jsonschema/referencing library, which provides more compliant referencing behavior as well as more flexible APIs for customization. A future release will remove RefResolver. Please file a feature request (on referencing) if you are missing an API for the kind of customization you need.
from jsonschema import RefResolver
.venv\Lib\site-packages\schemathesis\specs\openapi\schemas.py:84
.venv\Lib\site-packages\schemathesis\specs\openapi\schemas.py:84: DeprecationWarning: jsonschema.exceptions.RefResolutionError is deprecated as of version 4.18.0. If you wish to catch potential reference resolution errors, directly catch referencing.exceptions.Unresolvable.
SCHEMA_PARSING_ERRORS = (KeyError, AttributeError, jsonschema.exceptions.RefResolutionError)

As a side note, there are cases when such failures come directly from YAML quirks, and some online editors parse inputs differently, in a more permissive way. I don't remember the exact issue in the issue tracker but will link it later

Could it be this one? https://github.com/schemathesis/schemathesis/issues/610#issuecomment-658996299

Hi @Stranger6667 ,
that is not the same issue, perhaps it came from yaml,  I do not know.
I anonymized my files: the main file contains references to itself, and to the common parts, the common parts file has references to itself.
I attach the files, it is a tar.gz
BR,
George
anonym.gz

Thanks for sharing!
I found two issues:

Schemathesis does not resolve $ref inside security schemes, but it should. (see components/securitySchemes/Bearer)
Error message is useless, the issue is that it Schemathesis assumes that type key is always there and tries to check it and fails with KeyError. It would be useful to at least show the trace (when --show-trace is present).

I am going to fix these soon


Add issue templates to this DevOps Repository

Signed-off-by: Peter Zhu<EMAIL_ADDRESS>Description
Add issue templates to this DevOps Repository
Issues Resolved
Check List

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@TheAlgo @DandyDeveloper @smlx
I start adding the standard issue templates to this repo, please give your thought or approve it.
Thanks.

We should ask for config snippets as well.
I'd recommend having something like the title also contain the component being used:
[DASHBOARD] Dashboard can't connect to OpenSearch etc.

Add [Component Name] in the title let me know if this is good.


Fix break words

Fix break words in firefox.  Break-all only works in table cells in firefox if it is displayed as an inline block.

:+1:

I'm going to merge this now to ship it along with the regex fix this morning.


[FEATURE] Distinguish more errors for Hypothesis' shrinking logic

Ideally, Schemathesis would produce a single minimal example of each distinct error.  We use Hypothesis' shrinking for this, which requires us to distinguish errors by exception type, code location, and __context__; and so Schemathesis creates new exception types for each distinct error message:
https://github.com/schemathesis/schemathesis/blob/7e71b00f285139c79d96d2dfb5cb16f6463e2544/src/schemathesis/exceptions.py#L43-L47
Collapsing errors by message seems fine in cases like {expected_contenttype}_{got_contenttype}, but collapsing all HTTP 500 errors together because they share a status code probably causes under-counting.
Re-running on the fixed version will re-find the remaining errors, so that's not a disaster, but it would be a nicer UX (and paper result) to report them all in the first place.
Possible fixes

If we can access the original exception when using the ASGI/WSGI integration, raise schemathesis_exc from the_inner_exc is sufficient.  (and perhaps e.g. enable Flask's debug mode to ensure such exceptions are propagated)

Maybe we could distinguish HTTP 5xx by message as well status code, if we removed the dynamic response content?  This risks not-deduplicating though, which I don't like.

Dynamically create a "from" exception using locations and messages from stringified stack traces and/or locations in responses, for example from Jupyter Server & Jupyterhub, and then raise from that.  This seems promising to me, and reasonably easy to implement on a per-programming-language basis.

Hi @Zac-HD !
Thank you for creating an issue about this! :) I am inclined to think that having access to the underlying exception would be the best way to go in principle. However, as, generally, HTTP response content is opaque, we might need to have some kind of an agent on the application side (similar to what Sentry is doing) to get the data to re-create the exception on the Schemathesis side.
For such opaque cases, it could be another Schemathesis hook as it heavily depends on the app implementation. E.g. it will accept the app response + generated case and then return an exception class. In such a case, the user will be able to connect to the agent inside the hook and get the app-level exception.
Though, for the ASGI/WSGI case, it could be a built-in thing.

Maybe we could distinguish HTTP 5xx by message as well status code, if we removed the dynamic response content? This risks not-deduplicating though, which I don't like.

Indeed, looks very fragile to me.


Add stream setting for who can create new topics

For some organizations, it would be useful to restrict permissions to create topics in certain streams, as reported in this CZO thread:
"It would be great to be able to set a particular stream such that only admins/mods etc. could create topics, but any member could post in them. Would be perfect for keeping streams orderly in terms of topics, but still allowing interactivity. Currently we just request people not create new topics for certain streams, but people always still do. This would make for one less administration headache."
We should add a setting for which groups can create new topics in a stream after the relevant infrastructure in #19525 is completed.

Hello, An organization I am a part of is currently looking into Zulip as a candidate for a communication platform we will use. Given our intended use case, the ability to restrict channels to a fixed number of topics(in our case, likely 1) would be much appreciated, to help keep users in one place, rather than spread out all over the channel. Is this still being worked on or considered? Thank you!

This setting is being worked on. However, in most situations, I would strongly advise against using Zulip in the way you describe, as you'd be losing out on the benefits of organizing conversations with topics.
Have you experimented with using Zulip without restricting topic creation? What concerns did you have about it, if so?

While I understand and appreciate the benefits of using topics, those may be used in some more permanent rooms. However, the primary use of the platform would be moderated popup rooms, used by teens. Trying to keep these youth on topic and moderate the conversation is a task in itself sometimes. Asking them to keep tabs on messages that are being sent outside of the main "stream" of messages isn't something we would like to do.

Hello. For some of our user groups too, the use of "topics" ultimately creates confusion. And that's an obstacle to the expansion of Zulip here. I'd also like to have a system of restrictions.


Prepare release for Dns, PrivateDns

Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

API change check
API changes are not detected in this pull request.


Visualizing Camera Projection

Hi,
I am trying to visualize camera projection on other images by changing images index as follows
mask = tf.equal(cp_points_all_tensor[..., 0], images[3].name)

Here's a screenshot of the output

Is this the correct way to do it? Does the screenshot look correct?

It looks correct to me.


Add openFile based on URIStatus

to potentially save a RPC getStatus

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/8078/
Test PASSed.

alluxio-bot, merge this please.


Fix mypy type annotations

Thanks.
I think the if TYPE_CHECKING:s are due to https://github.com/PyCQA/pyflakes/issues/247 so we can try and remove them.


UNC not working in glob.sync

Hello! I have tried to look at the documentation and from previous issues (#74 #167) regarding this topic, but I simply cannot get it to work
glob version: v10.3.12,
I'm trying to access files on UNC with glob.sync, like this:
    validateConfiguration(settingsFile: string, stepsPathes: StepSettings, workSpaceRoot: string): Diagnostic[] {
        return stepsPathes.reduce((res, path) => {
            const files = glob.sync(path, {ignore: '.gitignore' });
            if (!files.length) {
                const searchTerm = path.replace(workSpaceRoot + '/', '');
                const range = getTextRange(workSpaceRoot + '/' + settingsFile, `"${searchTerm}"`);
                res.push({
                    severity: DiagnosticSeverity.Warning,
                    range: range,
                    message: `No steps files found`,
                    source: 'cucumberautocomplete'
                });
            }
            return res;
        }, []);
    }

where path is written like "//scs2/F2/Sc2Cloud08.Test/Integrations/Cucumber/TestFramework/ScenarioSteps/*.cs"
I have tried to include cwd:"//scs2/", and playing around with changing the path.
By debugging, I can see it sets UNC to true in the Pattern object method on glob.js:170 and the Pattern looks correct.
However it returns an empty array as the matches.
Would love if anyone could help me out :)

What does this node program output when run?
require("fs").readdirSync(
  "//scs2/F2/Sc2Cloud08.Test/Integrations/Cucumber/TestFramework/ScenarioSteps"
)

Will reopen when/if requested info is provided.

Hello @isaacs
Sorry for late reply.
I get the following stack
"Error [ERR_UNC_HOST_NOT_ALLOWED]: UNC host 'scs2' access is not allowed\n    at Object.readdirSync (node:fs:1516:10)\n    at Object.readdirSync (node:electron/js2c/node_init:2:11289)\n    at watchFiles (c:\\Projects\\ProcessWork\\VSCucumberAutoComplete\\gclient\\server\\server.js:59:27)\n    at c:\\Projects\\ProcessWork\\VSCucumberAutoComplete\\gclient\\server\\server.js:81:9\n    at handleNotification (c:\\Projects\\ProcessWork\\VSCucumberAutoComplete\\gclient\\server\\node_modules\\vscode-jsonrpc\\lib\\main.js:483:43)\n    at processMessageQueue (c:\\Projects\\ProcessWork\\VSCucumberAutoComplete\\gclient\\server\\node_modules\\vscode-jsonrpc\\lib\\main.js:255:17)\n    at Immediate._onImmediate (c:\\Projects\\ProcessWork\\VSCucumberAutoComplete\\gclient\\server\\node_modules\\vscode-jsonrpc\\lib\\main.js:242:13)\n    at process.processImmediate (node:internal/timers:476:21)\n    at process.callbackTrampoline (node:internal/async_hooks:130:17)"
In short "UNC host 'scs2' access is not allowed"
It is a work server, so might be blocking me access. However, I can open files on the scs2 server in vscode and edit them, so it does not seem like that.

If node can't read the directories in the share, then node-glob can't tell you which files are in the directories in the share, it's as simple as that. Figure out why node can't read those dirs, and you'll have your answer. Nothing else I can do from here.


Allow markdown input for updates

Please allow markdown support when creating new updates.

We used to support markdown and decided to focus our efforts on the wysiwyg editor. It was too complicated to support wysiwyg and markdown at the same time.
Our platform being used by non technical people, it was difficult to justify making it markdown only. On the other hand, we thought technical people could live with the visual wysiwyg editor.


merge master into develop

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


It is very difficult to determine whether there is an image in the summary of the homepage on the render.
But It is easy to determine whether there is an image on the article page.
There are many pits about Scracth Store and render cache on the Hugo server. https://discourse.gohugo.io/t/strange-behavior-with-scratch-variable/52288/11?u=xiao_qing
So The best method is to load it on demand from the front end.
Useful reference 有价值的参考
No response

I think the easiest fix is to just mark these scripts as deferred
https://github.com/HEIGE-PCloud/DoIt/blob/e68974c47e4bcf086c6a0dbff153352e71fcfd16/layouts/partials/assets.html#L56-L60


knife status: ArgumentError: comparison of Hash with Hash failed

Whenever I try "knife status", I get an "ERROR: ArgumentError: comparison of Hash with Hash failed". I'm not sure what exactly lead up to it breaking, it used to work for me. I don't seem to have any weird node data, I can run a "knife show" for each of my nodes and they all look sane.
Verbose error: https://gist.github.com/bwann/32ecbc64b3ab83e7cca8
client/knife verson:  Chef: 12.4.1
Chef server version: 12.4.1

Looks like a node with no ohai time did this. Dumping variables n1 and n2 in the all_nodes.sort function, knife status died on this node
n1: {"name"=>"simple02", "ipaddress"=>{}, "ohai_time"=>{}, "ec2"=>nil, "run_list"=>[], "platform"=>{}, "platform_version"=>{}, "chef_environment"=>"_default"}
n2: {"name"=>"canary20", "ipaddress"=>"<IP_ADDRESS>", "ohai_time"=>1442697742.9531252, "ec2"=>nil, "run_list"=>["recipe[site-init]", "role[canary_role]"], "platform"=>"raspbian", "platform_version"=>"7.8", "chef_environment"=>"_default"}
ERROR: ArgumentError: comparison of Hash with Hash failed
When I deleted the "simple02" node and client from the server, knife status started working again.

I'm going to close this one out since it's been 6 years and we don't really have the information to fully debug the issue at this point.


Dynamic black list

Dynamic Black List
dynamic ip black list like nginx + lua + mysql
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[x] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
We have requirements about dynamic ip black list to defend against some cyber attacks and ensure cluster performance, We have used nginx + lua to do it.
Istio is using nginx as ingressgateway so I think it is up to the job.
Maybe someone can give advice to me about how to realize the requirements in istio or k8s

Istio's ingressgateway is using Envoy. Envoy supports Lua filters -- which Istio enables via EnvoyFilter configuration.
Please let us know if you have any questions about Istio + Lua on our forums: discuss.istio.io