➕ add pyinstaller dependency

Current dependencies on/for this PR:

#95  👈
main

This stack of pull requests is managed by Graphite.

Merge activity

Feb 27, 10:15 AM EST: @mingi3314 started a stack merge that includes this pull request via Graphite.


 and  placeholder compatibility on IE9-

Placeholder attribute isn't supported on IE9- browsers.

请问这个问题在哪个版本解决~

Solved.


[INF] Update mkdocstrings version to 0.19.0

PR Description
Please describe the changes proposed in the pull request:
Part of #1133.
When I removed this line (https://github.com/pyjanitor-devs/pyjanitor/commit/cfeaad775e796bb7d232a4b52eb3c1131a628f0b). the doc-preview ci still failed.
Due to mkdocstring which stays in a lower version.
So it is time to update it.
       - name: Build docs
         run: |
           conda activate pyjanitor-dev
-          python -m ipykernel install --user --name pyjanitor-dev
           pip install -e .
           mkdocs build

This PR resolves https://github.com/pyjanitor-devs/pyjanitor/pull/1133#discussion_r939503090.

PR Checklist

Please ensure that you have done the following:

[x] PR in from a fork off your branch. Do not PR from <your_username>:dev, but rather from <your_username>:<feature-branch_name>.

[x] If you're not on the contributors list, add yourself to AUTHORS.md.

[x] Add a line to CHANGELOG.md under the latest version header (i.e. the one that is "on deck") describing the contribution.

Do use some discretion here; if there are multiple PRs that are related, keep them in a single line.

Automatic checks
There will be automatic checks run on the PR. These include:

Building a preview of the docs on Netlify
Automatically linting the code
Making sure the code is documented
Making sure that all tests are passed
Making sure that code coverage doesn't go down.

Relevant Reviewers

Please tag maintainers to review.

@ericmjl

softmax tests failing is fixed via #1139


Allow #ci_to_hash_struct to work with ActiveRecord Association CollectionProxy instances

When trying to provision VMware with a customization spec, you would receive:
[----] I, [2015-08-11T12:26:30.986892 #6446:3fc194f5798c]  INFO -- : Started POST "/miq_request/prov_field_changed/new" for <IP_ADDRESS> at 2015-08-11 12:26:30 -0400
[----] I, [2015-08-11T12:26:31.042238 #6446:3fc194f5798c]  INFO -- : Processing by MiqRequestController#prov_field_changed as JS
[----] I, [2015-08-11T12:26:31.042446 #6446:3fc194f5798c]  INFO -- :   Parameters: {"customize__sysprep_enabled"=>"fields", "id"=>"new"}
[----] F, [2015-08-11T12:26:31.095232 #6446:3fc194f5798c] FATAL -- : Error caught: [NoMethodError] undefined method `base_class' for CustomizationSpec::ActiveRecord_Associations_CollectionProxy:Class
/home/bdunne/projects/redhat/manageiq/app/models/miq_request_workflow.rb:1005:in `ci_to_hash_struct'
/home/bdunne/projects/redhat/manageiq/app/models/miq_provision_virt_workflow.rb:677:in `allowed_customization_specs'
/home/bdunne/projects/redhat/manageiq/app/models/miq_request_workflow.rb:294:in `get_field'
/home/bdunne/projects/redhat/manageiq/app/models/miq_request_workflow.rb:281:in `block in get_all_fields'
/home/bdunne/projects/redhat/manageiq/app/models/miq_request_workflow.rb:281:in `each_key'
/home/bdunne/projects/redhat/manageiq/app/models/miq_request_workflow.rb:281:in `get_all_fields'
/home/bdunne/projects/redhat/manageiq/app/models/miq_request_workflow.rb:273:in `get_dialog'
/home/bdunne/projects/redhat/manageiq/app/models/miq_request_workflow.rb:265:in `block in get_all_dialogs'
/home/bdunne/projects/redhat/manageiq/app/models/miq_request_workflow.rb:265:in `each_key'
/home/bdunne/projects/redhat/manageiq/app/models/miq_request_workflow.rb:265:in `get_all_dialogs'
/home/bdunne/projects/redhat/manageiq/app/controllers/application_controller/miq_request_methods.rb:30:in `block in prov_field_changed'
/home/bdunne/.gem/ruby/2.2.2/bundler/gems/jquery-rjs-33e0fc1c0b25/lib/action_view/helpers/jquery_helper.rb:154:in `instance_exec'
/home/bdunne/.gem/ruby/2.2.2/bundler/gems/jquery-rjs-33e0fc1c0b25/lib/action_view/helpers/jquery_helper.rb:154:in `block in initialize'
/home/bdunne/.gem/ruby/2.2.2/gems/actionview-4.2.3/lib/action_view/helpers/capture_helper.rb:202:in `with_output_buffer'
/home/bdunne/.gem/ruby/2.2.2/bundler/gems/jquery-rjs-33e0fc1c0b25/lib/action_view/helpers/jquery_helper.rb:153:in `initialize'
/home/bdunne/.gem/ruby/2.2.2/bundler/gems/jquery-rjs-33e0fc1c0b25/lib/jquery-rjs/renderers.rb:7:in `new'
/home/bdunne/.gem/ruby/2.2.2/bundler/gems/jquery-rjs-33e0fc1c0b25/lib/jquery-rjs/renderers.rb:7:in `block in <module:Renderers>'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_controller/metal/renderers.rb:45:in `block in _render_to_body_with_renderer'
/home/bdunne/.rubies/ruby-2.2.2/lib/ruby/2.2.0/set.rb:283:in `each_key'
/home/bdunne/.rubies/ruby-2.2.2/lib/ruby/2.2.0/set.rb:283:in `each'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_controller/metal/renderers.rb:41:in `_render_to_body_with_renderer'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_controller/metal/renderers.rb:37:in `render_to_body'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/abstract_controller/rendering.rb:25:in `render'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_controller/metal/rendering.rb:16:in `render'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_controller/metal/instrumentation.rb:44:in `block (2 levels) in render'
/home/bdunne/.gem/ruby/2.2.2/gems/activesupport-4.2.3/lib/active_support/core_ext/benchmark.rb:12:in `block in ms'
/home/bdunne/.rubies/ruby-2.2.2/lib/ruby/2.2.0/benchmark.rb:303:in `realtime'
/home/bdunne/.gem/ruby/2.2.2/gems/activesupport-4.2.3/lib/active_support/core_ext/benchmark.rb:12:in `ms'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_controller/metal/instrumentation.rb:44:in `block in render'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_controller/metal/instrumentation.rb:87:in `cleanup_view_runtime'
/home/bdunne/.gem/ruby/2.2.2/gems/activerecord-4.2.3/lib/active_record/railties/controller_runtime.rb:25:in `cleanup_view_runtime'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_controller/metal/instrumentation.rb:43:in `render'
/home/bdunne/projects/redhat/manageiq/app/controllers/application_controller/miq_request_methods.rb:28:in `prov_field_changed'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_controller/metal/implicit_render.rb:4:in `send_action'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/abstract_controller/base.rb:198:in `process_action'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_controller/metal/rendering.rb:10:in `process_action'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/abstract_controller/callbacks.rb:20:in `block in process_action'
/home/bdunne/.gem/ruby/2.2.2/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:115:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:115:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:553:in `block (2 levels) in compile'
/home/bdunne/.gem/ruby/2.2.2/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:503:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:503:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:88:in `run_callbacks'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/abstract_controller/callbacks.rb:19:in `process_action'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_controller/metal/rescue.rb:29:in `process_action'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
/home/bdunne/.gem/ruby/2.2.2/gems/activesupport-4.2.3/lib/active_support/notifications.rb:164:in `block in instrument'
/home/bdunne/.gem/ruby/2.2.2/gems/activesupport-4.2.3/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/home/bdunne/.gem/ruby/2.2.2/gems/activesupport-4.2.3/lib/active_support/notifications.rb:164:in `instrument'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_controller/metal/instrumentation.rb:30:in `process_action'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
/home/bdunne/.gem/ruby/2.2.2/gems/activerecord-4.2.3/lib/active_record/railties/controller_runtime.rb:18:in `process_action'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/abstract_controller/base.rb:137:in `process'
/home/bdunne/.gem/ruby/2.2.2/gems/actionview-4.2.3/lib/action_view/rendering.rb:30:in `process'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_controller/metal.rb:196:in `dispatch'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_controller/metal.rb:237:in `block in action'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_dispatch/routing/route_set.rb:76:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_dispatch/routing/route_set.rb:76:in `dispatch'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_dispatch/routing/route_set.rb:45:in `serve'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_dispatch/journey/router.rb:43:in `block in serve'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_dispatch/journey/router.rb:30:in `each'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_dispatch/journey/router.rb:30:in `serve'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_dispatch/routing/route_set.rb:821:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/rack-1.6.4/lib/rack/etag.rb:24:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/rack-1.6.4/lib/rack/conditionalget.rb:38:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/rack-1.6.4/lib/rack/head.rb:13:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_dispatch/middleware/params_parser.rb:27:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_dispatch/middleware/flash.rb:260:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/rack-1.6.4/lib/rack/session/abstract/id.rb:225:in `context'
/home/bdunne/.gem/ruby/2.2.2/gems/rack-1.6.4/lib/rack/session/abstract/id.rb:220:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_dispatch/middleware/cookies.rb:560:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/activerecord-4.2.3/lib/active_record/query_cache.rb:36:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/activerecord-4.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
/home/bdunne/.gem/ruby/2.2.2/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:84:in `run_callbacks'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_dispatch/middleware/callbacks.rb:27:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_dispatch/middleware/reloader.rb:73:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_dispatch/middleware/remote_ip.rb:78:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/railties-4.2.3/lib/rails/rack/logger.rb:38:in `call_app'
/home/bdunne/.gem/ruby/2.2.2/gems/railties-4.2.3/lib/rails/rack/logger.rb:22:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/request_store-1.1.0/lib/request_store/middleware.rb:8:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_dispatch/middleware/request_id.rb:21:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/rack-1.6.4/lib/rack/methodoverride.rb:22:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/rack-1.6.4/lib/rack/runtime.rb:18:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/activesupport-4.2.3/lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/rack-1.6.4/lib/rack/lock.rb:17:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/actionpack-4.2.3/lib/action_dispatch/middleware/static.rb:116:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/rack-1.6.4/lib/rack/sendfile.rb:113:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/railties-4.2.3/lib/rails/engine.rb:518:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/railties-4.2.3/lib/rails/application.rb:165:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/rack-1.6.4/lib/rack/content_length.rb:15:in `call'
/home/bdunne/.gem/ruby/2.2.2/gems/thin-1.6.3/lib/thin/connection.rb:86:in `block in pre_process'
/home/bdunne/.gem/ruby/2.2.2/gems/thin-1.6.3/lib/thin/connection.rb:84:in `catch'
/home/bdunne/.gem/ruby/2.2.2/gems/thin-1.6.3/lib/thin/connection.rb:84:in `pre_process'
/home/bdunne/.gem/ruby/2.2.2/gems/thin-1.6.3/lib/thin/connection.rb:53:in `process'
/home/bdunne/.gem/ruby/2.2.2/gems/thin-1.6.3/lib/thin/connection.rb:39:in `receive_data'
/home/bdunne/.gem/ruby/2.2.2/gems/eventmachine-1.0.7/lib/eventmachine.rb:187:in `run_machine'
/home/bdunne/.gem/ruby/2.2.2/gems/eventmachine-1.0.7/lib/eventmachine.rb:187:in `run'
/home/bdunne/.gem/ruby/2.2.2/gems/thin-1.6.3/lib/thin/backends/base.rb:73:in `start'
/home/bdunne/.gem/ruby/2.2.2/gems/thin-1.6.3/lib/thin/server.rb:162:in `start'
/home/bdunne/.gem/ruby/2.2.2/gems/rack-1.6.4/lib/rack/handler/thin.rb:19:in `run'
/home/bdunne/.gem/ruby/2.2.2/gems/rack-1.6.4/lib/rack/server.rb:286:in `start'
/home/bdunne/.gem/ruby/2.2.2/gems/railties-4.2.3/lib/rails/commands/server.rb:80:in `start'
/home/bdunne/.gem/ruby/2.2.2/gems/railties-4.2.3/lib/rails/commands/commands_tasks.rb:80:in `block in server'
/home/bdunne/.gem/ruby/2.2.2/gems/railties-4.2.3/lib/rails/commands/commands_tasks.rb:75:in `tap'
/home/bdunne/.gem/ruby/2.2.2/gems/railties-4.2.3/lib/rails/commands/commands_tasks.rb:75:in `server'
/home/bdunne/.gem/ruby/2.2.2/gems/railties-4.2.3/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
/home/bdunne/.gem/ruby/2.2.2/gems/railties-4.2.3/lib/rails/commands.rb:17:in `<top (required)>'
bin/rails:4:in `require'
bin/rails:4:in `<main>'
[----] I, [2015-08-11T12:26:31.138687 #6446:3fc194f5798c]  INFO -- :   Rendered layouts/_exception_contents.html.haml (11.7ms)
[----] I, [2015-08-11T12:26:31.139307 #6446:3fc194f5798c]  INFO -- : Completed 200 OK in 97ms (Views: 42.6ms | ActiveRecord: 4.4ms)

An ActiveRecord::Associations::CollectionProxy instance was being passed in.  It is not a kind_of?(Array), but does respond_to?(:collect), so I updated the method accordingly.

@gmcculloug Please review.

@miq-bot add_label bug

@brandondunne Changes look good, just the one comment about the extra 'ConfiguredSystem' commit.

I noticed that when trying to use ConfiguredSystem as my regular class in the test.  I tried to sequence(:name) and it blew up because there is no #name= method.

Thanks @matthewd


chore(enhancement): Fix pod autoscaler recovery and add total chaos duration as upper limit

Signed-off-by: Udit Gaurav<EMAIL_ADDRESS>
In the pod autoscaler recovery, we should use the initial replica count rather than what is provided.
Add total chaos duration as the upper limit.

When the chaos duration gets completed but the application replicas have still not scaled.

INFO[2020-11-03T21:06:59+05:30] Experiment Name: pod-autoscaler
INFO[2020-11-03T21:06:59+05:30] [PreReq]: Getting the ENV for the  experiment
INFO[2020-11-03T21:06:59+05:30] [PreReq]: Updating the chaos result of pod-autoscaler experiment (SOT)
INFO[2020-11-03T21:07:02+05:30] The application informations are as follows   AppKind=deployment Label="run=nginx" Ramp Time=0 Namespace=default
INFO[2020-11-03T21:07:02+05:30] [Status]: Verify that the AUT (Application Under Test) is running (pre-chaos)
INFO[2020-11-03T21:07:02+05:30] [Status]: Checking whether application containers are in running state
INFO[2020-11-03T21:07:02+05:30] [Status]: The running status of container are as follows  container=nginx Pod=nginx-7bb7cd8db5-zzhkt Status=Running
INFO[2020-11-03T21:07:04+05:30] [Status]: Checking whether application pods are in running state
INFO[2020-11-03T21:07:05+05:30] [Status]: The running status of Pods are as follows  Pod=nginx-7bb7cd8db5-zzhkt Status=Running
INFO[2020-11-03T21:07:08+05:30] Application Started Scaling
INFO[2020-11-03T21:07:08+05:30] Deployment's Available Replica Count is 1
ERROR[2020-11-03T21:07:10+05:30] [Chaos]: Fail to scaleup the application replicas in the given chaos duration
INFO[2020-11-03T21:07:13+05:30] [Info]: Application pod started rolling back
INFO[2020-11-03T21:07:15+05:30] [RollBack]: Application Pod roll back to initial number of replicas
ERROR[2020-11-03T21:07:15+05:30] Chaos injection failed, err: Unable to perform autoscaling, err: Status Check failed, err: Failed to scale the application

When the application replicas are scaled but the chaos duration has completed yet.

INFO[2020-11-03T21:08:36+05:30] Experiment Name: pod-autoscaler
INFO[2020-11-03T21:08:36+05:30] [PreReq]: Getting the ENV for the  experiment
INFO[2020-11-03T21:08:36+05:30] [PreReq]: Updating the chaos result of pod-autoscaler experiment (SOT)
INFO[2020-11-03T21:08:39+05:30] The application informations are as follows   Label="run=nginx" Ramp Time=0 Namespace=default AppKind=deployment
INFO[2020-11-03T21:08:39+05:30] [Status]: Verify that the AUT (Application Under Test) is running (pre-chaos)
INFO[2020-11-03T21:08:39+05:30] [Status]: Checking whether application containers are in running state
INFO[2020-11-03T21:08:39+05:30] [Status]: The running status of container are as follows  container=nginx Pod=nginx-7bb7cd8db5-zzhkt Status=Running
INFO[2020-11-03T21:08:41+05:30] [Status]: Checking whether application pods are in running state
INFO[2020-11-03T21:08:41+05:30] [Status]: The running status of Pods are as follows  Pod=nginx-7bb7cd8db5-zzhkt Status=Running
INFO[2020-11-03T21:08:44+05:30] Application Started Scaling
INFO[2020-11-03T21:08:44+05:30] Deployment's Available Replica Count is 1
INFO[2020-11-03T21:08:47+05:30] Deployment's Available Replica Count is 5
INFO[2020-11-03T21:08:49+05:30] [Wait]: Waiting for completion of chaos duration
INFO[2020-11-03T21:08:54+05:30] [Info]: Application pod started rolling back
INFO[2020-11-03T21:08:57+05:30] [RollBack]: Application Pod roll back to initial number of replicas
INFO[2020-11-03T21:08:57+05:30] [Confirmation]: The application pod autoscaler completed successfully
INFO[2020-11-03T21:08:57+05:30] [Status]: Verify that the AUT (Application Under Test) is running (post-chaos)
INFO[2020-11-03T21:08:57+05:30] [Status]: Checking whether application containers are in running state
INFO[2020-11-03T21:09:09+05:30] [Status]: The running status of container are as follows  container=nginx Pod=nginx-7bb7cd8db5-zzhkt Status=Running
INFO[2020-11-03T21:09:11+05:30] [Status]: Checking whether application pods are in running state
INFO[2020-11-03T21:09:12+05:30] [Status]: The running status of Pods are as follows  Pod=nginx-7bb7cd8db5-zzhkt Status=Running
INFO[2020-11-03T21:09:14+05:30] [The End]: Updating the chaos result of pod-autoscaler experiment (EOT)

/run-e2e-all

INFO[2020-11-13T16:33:16+05:30] Experiment Name: pod-autoscaler
INFO[2020-11-13T16:33:16+05:30] [PreReq]: Getting the ENV for the  experiment
INFO[2020-11-13T16:33:16+05:30] [PreReq]: Updating the chaos result of pod-autoscaler experiment (SOT)
INFO[2020-11-13T16:33:19+05:30] The application informations are as follows   AppKind=deployment Label="run=nginx" Ramp Time=0 Namespace=default
INFO[2020-11-13T16:33:19+05:30] [Status]: Verify that the AUT (Application Under Test) is running (pre-chaos)
INFO[2020-11-13T16:33:19+05:30] [Status]: Checking whether application containers are in running state
INFO[2020-11-13T16:33:19+05:30] [Status]: The running status of container are as follows  Pod=nginx-6db489d4b7-jndpj Status=Running container=nginx
INFO[2020-11-13T16:33:21+05:30] [Status]: Checking whether application pods are in running state
INFO[2020-11-13T16:33:21+05:30] [Status]: The running status of Pods are as follows  Pod=nginx-6db489d4b7-jndpj Status=Running
INFO[2020-11-13T16:33:24+05:30] Application Started Scaling
INFO[2020-11-13T16:33:25+05:30] Deployment's Available Replica Count is 1
INFO[2020-11-13T16:33:27+05:30] Deployment's Available Replica Count is 4
INFO[2020-11-13T16:33:29+05:30] Deployment's Available Replica Count is 5
INFO[2020-11-13T16:33:31+05:30] [Wait]: Waiting for completion of chaos duration
INFO[2020-11-13T16:33:39+05:30] [Info]: Application pod started rolling back
INFO[2020-11-13T16:33:41+05:30] [RollBack]: Application Pod roll back to initial number of replicas
INFO[2020-11-13T16:33:41+05:30] [Confirmation]: The application pod autoscaler completed successfully
INFO[2020-11-13T16:33:41+05:30] [Status]: Verify that the AUT (Application Under Test) is running (post-chaos)
INFO[2020-11-13T16:33:41+05:30] [Status]: Checking whether application containers are in running state
INFO[2020-11-13T16:33:51+05:30] [Status]: The running status of container are as follows  Status=Running container=nginx Pod=nginx-6db489d4b7-jndpj
INFO[2020-11-13T16:33:53+05:30] [Status]: Checking whether application pods are in running state
INFO[2020-11-13T16:33:53+05:30] [Status]: The running status of Pods are as follows  Status=Running Pod=nginx-6db489d4b7-jndpj
INFO[2020-11-13T16:33:55+05:30] [The End]: Updating the chaos result of pod-autoscaler experiment (EOT)


Add a react-markdown library to convert the Markdown code to HTML format

Closes - #572
Description:
I have added a react-markdown library to convert the Markdown code to HTML format. And also changes the design of the search result card. Now the search result card looks good.
Test related changes:

I have also fix the test cases by adding the react-markdown library in the test environment.

Screenshot
Before:

After:

Great work in the markdown addition! UI looks really good!


Added solution support for VS2019

Added solution support for VS2019
Fixed project configurations (a lot of the projects were configured to build/use the wrong configurations: e.g., a debug configuration building debugU projects, or a releaseU configuration building debugU projects)

Thanks.  Changes merged to master.


Clarify README.md instructions for "Testing" Section

I'm not sure what the "Testing" section is really testing and request that the README.md should have a more detailed explanation on what specifically the "Testing" section is referring to. From reading the block of code, I understand that a dictionary `run_manifest' is setting desired file properties. But, the instruction does not tell me what the block of code is testing and what to expect when executing this block of code.

Issue is a duplicate of this issue here that was solved.


Fix Ansible 2.2 issue and update repo to latest standards

Ansible 2.2 requires with_dict to be quoted. Additionally we should update the repo to meet the latest Sansible standards.

Closed by #9


Replace smart quotes from code samples

PR Summary
Small changes to code samples that use smart quotes instead of regular quotes.
This fixes some samples and should allow for a better copy & paste experience.
PR Checklist

[x] Descriptive Title: This PR's title is a synopsis of the changes it proposes.
[x] Summary: This PR's summary describes the scope and intent of the change.
[x] Contributor's Guide: I have read the contributors guide.
[x] Style: This PR adheres to the style guide.

Learn Build status updates of commit f907e8f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

azps-7.5.0/Az.Compute/New-AzDiskPurchasePlanConfig.md
:white_check_mark:Succeeded
View (azps-7.5.0)

azps-7.5.0/Az.DigitalTwins/Update-AzDigitalTwinsInstance.md
:white_check_mark:Succeeded
View (azps-7.5.0)

azps-8.2.0/Az.Automation/Get-AzAutomationScheduledRunbook.md
:white_check_mark:Succeeded
View (azps-8.2.0)

azps-8.2.0/Az.DigitalTwins/Update-AzDigitalTwinsInstance.md
:white_check_mark:Succeeded
View (azps-8.2.0)

azps-8.3.0/Az.Automation/Get-AzAutomationScheduledRunbook.md
:white_check_mark:Succeeded
View (azps-8.3.0)

azps-8.3.0/Az.DigitalTwins/Update-AzDigitalTwinsInstance.md
:white_check_mark:Succeeded
View (azps-8.3.0)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel


Windows operating system support.

Can I run this project on Windows operating system?

@mnbv7581 I am also trying to use this on Windows, were you able to do it. if yes, can you share some resources that helped you in it?


Case conversion operations

We do not have toUpper, toLower, toTitle operations in unicode-data yet. base package implements these as Char -> Char operations, however that does not handle all the cases. In some cases a conversion may result in multiple characters so the general signature should beChar -> [Char] or equivalent.
General representation
[Char] is not ideal because of performance reasons. For example, it cannot be used for stream fusion, it would also not fuse in nested operations (like concat). A general solution would be to use Char -> Unfold m Char Char or Char -> Unfold Identity Char Char. This representation is amenable to stream fusion. See Unfold module in streamly.
The basic unfold type can be extracted out from streamly into a small module not depending on anything else. This can then possibly be used here to provide efficient implementations of case conversion operations that can be used generally by anyone. Unfolds can be easily converted to a list or it can be used in implementations that depend on stream-fusion, e.g. this could be used in the text package as well replacing the text package's case conversion implementation, and also in streamly's unicode module.
Is there any other way to represent these efficiently for general use?
Compatibility routines
For compatibility with the base Data.Char module we could potentially provide toUpper and toLower (Char -> Char) in the Compat module and provide toUpperCase and toLowerCase for the general case. This is independent of the discussion about general representation and can be done even today.

Some important points:

Currently the case conversion results in up to 3 characters (See SpecialCasing.txt)
Some case conversion are context-dependent (which characters come before or after).
Some case conversion are locale-dependent.

Because of 2), Unfold seems a reasonable option.
It could also be used to implement case folding.

@harendra-kumar So if we have:
toUpperCase :: (Monad m) => Char -> Unfold m Char Char

what does the second type parameter of Unfold denote? I think the seed should be the adjacent characters, such as:
data CharContext = CharContext (Maybe Char) (Maybe Char)
toUpperCase :: (Monad m) => Char -> Unfold m CharContext Char

It would be:
toUpperCase :: (Monad m) => Unfold m Char Char

Unfold m a b generates a stream of b from a seed a. So a would be the character that we want to convert and a sequence of b the characters it expands to.

Ok, so if the casing may depend on the adjacent characters, it is the internal state that keep track of the adjacent characters?

I did not pay attention to that case. It would be helpful in designing if we know all the specific cases.
The example above depends on whether the particular character is a last char or not irrespective of what the following character is. Are there cases that depend on it being a first character? Or cases where it depends on the previous or the following char being a specific char?

I found the "Context Specification" table in tr-21 . There are 4 context sensitive cases. Context dependent case conversion may be tricky. One way to represent the generalized case conversion could be:
data Context = NoContext | FinalSigma | MoreAbove | AfterSoftDotted | BeforeDot

toUpperCase :: (Monad m) => Unfold m (Char, Context) Char

The special cases are defined in https://www.unicode.org/Public/14.0.0/ucd/SpecialCasing.txt

Are there cases that depend on it being a first character?
Or cases where it depends on the previous or the following char being a specific char?

From my understanding only immediate previous and following characters. Only U+0345 requires a special treatment:
# IMPORTANT-when iota-subscript (0345) is uppercased or titlecased,
#  the result will be incorrect unless the iota-subscript is moved to the end
#  of any sequence of combining marks. Otherwise, the accents will go on the capital iota.
#  This process can be achieved by first transforming the text to NFC before casing.
#  E.g. <alpha><iota_subscript><acute> is uppercased to <ALPHA><acute><IOTA>

Some rules depend on the locale.

We should check ICU's implementation or other library to get an idea.
We could provide an implementation for String to benchmark it and get a first idea of perf.

I found the "Context Specification" table in tr-21 . There are 4 context sensitive cases. Context dependent case conversion may be tricky. One way to represent the generalized case conversion could be:
data Context = NoContext | FinalSigma | MoreAbove | AfterSoftDotted | BeforeDot

The page I linked for tr21 is superseded by notably section 3.13 (see table 3.17), that adds After_I. Also negation of some contexts is required. And handling these contexts does no make much sense if we do not handle the locale as well, such as:
toUpperCase :: (Monad m) => Unfold m (Char, Locale, Context) Char

I checked ICU4C, ICU4J and I am not sure we can implement it efficiently this way. Moreover proper case conversion is defined in CLDR (see files ending with -Upper, etc.) and sometimes requires normalization.
I propose we adopt the approach of text and provide only special case conversion without context. Full, localized case conversion could be handled in either unicode-transforms or a new package that depends on unicode-transforms.
cc @Bodigrim @adithyaov

Closing, since we are now on par with text (see #77).


Pagination Table

I'm trying to pass an object to pagination when using cdatatable. However the page number does not change. The objects tried: {pages:'51'} , {pages:51} or even {props:{pages:51}}
Is this an issue or I'm missing something in the object
Also the documentation could have an example for this prop.

Hi! It is not possible to pass pages number, CDataTable is calculating pages number based on:

How many items you have passed,
itemsPerPage prop,

If you want to define non-existing pages (i.e. with not loaded items) you have to make your own CPagination component.

Hi! It is not possible to pass pages number, CDataTable is calculating pages number based on:

How many items you have passed,
itemsPerPage prop,

If you want to define non-existing pages (i.e. with not loaded items) you have to make your own CPagination component.

Tank you for the quick reply.
If is not possible to pass pages number could you please update the docs where it says:
`pagination | false | Boolean/Object
Enables default pagination. Set to true for default setup or pass object with additional CPagination props.`
Thank you.

Yes, we will make a better 'pagination' prop description. Thank you for the report! :)


EDU-518 Create document picker

Closes https://educandu.atlassian.net/browse/EDU-518
EDU-518 Script run on Production dump - report.txt

Now that the old document-selector is gone, I will rename this document-picker to document-selector, cause all our other such components are selectors 🤔


Data needs to be explicitly logged as utf8 in node >v6.2.1

This fixes #603

Wow, this ended up being a minor fix. Is it worth adding tests to recreate the output from Node 4.x/5.x and Node 6.x?

I don't think we need tests. It is pretty minor and anything prior to this that is already in utf8 format won't be effected.

I did verify with+without the change in node v4.4.4, v5.12.0, v6.2.1

Cool, I say let's merge this then

Merged into master.


jetson.utils.videoOutput behavior on Jetson.utils.videoInput when using RTSP stream seems broken

Hi,
i have a pretty standard :
input = jetson.utils.videoInput('/dev/video1')
output = jetson.utils.videoOutput()

this works, the stream is on the display
but when I change the input stream to RTSP
input = jetson.utils.videoInput('rtsp://a:b@<IP_ADDRESS>:88/videoMain')
output = jetson.utils.videoOutput()

I get no output to the display.
even when I force videoOutput('display://0') still no luck
when I write this to a stream, the mp4 file is ok, so everything is working.
how can de input stream source change the output stream behavior?
Thanks

how can de input stream source change the output stream behavior?

I'm not sure, but try creating output = jetson.utils.videoOutput() first.

Hey Dusty,
That actually fixed it.
I can continue, thanks :-)
But, is this expected behavior? should it be at least documented on the 'camera streaming and multimedia page' ?
Thanks.

But, is this expected behavior?

It's not expected, I'm still trying to track down the bug.  No idea why creating RTSP feed in particular messes with the OpenGL, especially when RTP works fine...

It's an older foscam ip camera.
I also tried the raspberry pi setup with tpclientsrc but that was a no go (works in openecv tho)
If I can do any testing for you or you need more info, let me know.

#1186 (comment)
Where exactly do you put these lines? Which file? I have built from source and have a custom model... Thanks

I don't understand your question, can you give a little bit more information?


NodeExtension.groovy bad url

http://nodejs.org/dist/ is no longer supported
use
https://nodejs.org/dist/ (ssl)
see pull request #69

+1

+1

+1

http://nodejs.org/dist/ is working again

Thx,
I will close the PR

Which is the right one, https or http? Should we prefer https over http?

you should use https by default
see:
https://github.com/nodejs/node Releases are available at https://nodejs.org/dist/
https://github.com/eirslett/frontend-maven-plugin/pull/270  NodeJS sometimes doesn't permit http requests, which can cause build failures.

Ok. Then I will fix it.

@srs, I have already fixed it; see see request #69
It just needs to be merged.

The branch seems to be deleted. Could you add a pull request? Thanks.

Sorry - my bad, I was thinking this was for the frontend-maven-plugin project. I haven't made a pull request for gradle-node-plugin.
I think AvihayTsayeg's pull request #69 would be what you need.

@AvihayTsayeg, could you please add the pull request again? Looked at it and it seems to be closed by you. Thanks.

@srs
It is reopen and rebased #69.
Regards

Merged. Closing this issue.


Reduce ocean.py test suite runs, using mocks and patches where possible

Right now, ocean.py tests take around 30 mins. This is a long time interval, especially since we are required to run this before every PR merge. Also, most of the ocean.py tests are in fact integration tests. I think a big chunk of time can be saved if we use proper unit tests in some places.
My suggestion would be to use mocks and patches. Python offers a flexible way of using patches and replacing any functionality with a mock. Previously in ocean.py, we overcomplicated the usage of mocks, IF we used them at all. You can look into the Aquarius test suite for inspiration and I am thinking of creating a presentation for the next sprint review. I can attach that too, when it's done.

Started benchmarking.


Create Support Policy sections for NuGet.exe & NuGet SDK packages

Fixes: https://github.com/NuGet/Client.Engineering/issues/2660
Adapted the verbiage from the relevant blog post: https://devblogs.microsoft.com/nuget/announcing-nuget-exe-and-nuget-client-sdk-packages-support-policy-keeping-you-informed-and-secure/

I've replaced the Microsoft Support Policy link with https://aka.ms/lifecycle. I'm not able to find a direct link to the Modern Lifecycle page (https://learn.microsoft.com/en-us/lifecycle/policies/modern). If folks believe this is necessary, let me know and I'll track down how I can create a relative link directly there.

Should this be its own separate doc? Seems like it shouldn't distract this core doc about installing.


Fix the comment open delimiter for jsdoc comments

This PR add the proper comment opening delimiters (/** instead of /*) to the jsdoc comments in the files I wrote.  It also adds a few missing ones as well.
There shouldn't be anything to review, really, unless you see anything else wrong with the jsdoc comments.

OK, I've added the spaces.  See how it works for you now.

Nearly there, but the following files still have space problems:
core/MmlTree/MmlNodes/mo.ts
input/tex/FindTeX.ts
util/Entities.ts
util/FunctionList.ts
util/lengths.ts
util/LinkedList.ts
util/numeric.ts
util/Options.ts
util/PrioritizedList.ts
util/Retries.ts
util/string.ts
util/Styles.ts

OOPS!  Looks like I missed the util directory entirely, and I didn't look in input/tex because I thought they were all yours (forgot about FindTeX.ts).  Must have skipped over mo.ts my accident.
Anyway, those should now all be fixed.

Thanks!


Calculate statistics for serialization time / backup time / load time / skips etc

From martin.grotzke on February 27, 2010 15:16:20
It would be great to get some stats on

number of requests with sessions
number of requests with sessions without access -> skipped backup
number of requests with sessions without session modification -> skipped
backup
number of requests with sessions with backup
number of sessions loaded from memcached

for each of the following there should be min, avg, max:

serialization time
time it took to store it in memcached (the duration of
MemcachedClient.set)
load time (sessions loaded from memcached)

These stats should be available via jmx
Original issue: http://code.google.com/p/memcached-session-manager/issues/detail?id=43

From martin.grotzke on March 13, 2010 14:17:21
Also session size distribution, as a hint on memcached tuning

From martin.grotzke on March 15, 2010 10:02:36
Finished implementing stats, will be release with 1.2
Docs can be found here: https://code.google.com/p/memcached-session-
manager/wiki/JMXStatistics
Status: Fixed
Labels: Milestone-1.2


No price info in sensor

I have configured a price on the rainforest EMU2, but I am not seeing it in the sensor on the HA side. Both the Price and Price Tier attributes are set to ---. What am I doing wrong?

I know now that price info is not being pushed to HA. Would be great to add a link to https://www.niksa.dev/posts/power-meter/ or update the README with YAML examples and how mention you have to configure a static price.


Add documentation warnings for weak algorithms

Summary: This PR adds warnings for some weak algorithms and deprecates a few of them:

It adds documentation warnings regarding the use of MD2, MD4, MD5, DES, ARC4 and SHA-1:
a. Any public API function gets an appropriate Doxygen \warning.
b. config.h is enhanced by \warning's for the respective configuration option.
c. The documentation of identifier types relating to these algorithms (like mbedtls_md_type_t containng MBEDTLS_MD_MD2) are enhanced by an appropriate Doxygen \warning.
2. It deprecates MD2, MD4 and ARC4:
a. A single deprecation warning is emitted for md2.h, md4.h and arc4.h, and all public functions related to these algorithms get a Doxygen \deprecated flag.
b. Identifiers related to these algorithms are deprecated.
c. Configuration options related to these algorithms get a deprecation note in addition to the warnings mentioned above.

This leads to the following behavior: 1. Compilation without DEPRECATED_WARNING succeeds without any warnings. In particular, the default configuration builds without warnings.
2. Compilation with DEPRECATED_WARNING with either MD2_C, MD4_C or ARC4_C enabled results in numerous warnings from includes, ID uses, etc.
3. As a consequence of 2., it is not possible to build in modes like ASanDbg treating warnings as errors, when DEPRECATED_WARNING is set. While not optimal, I don't consider this critical. If you want to check where you use deprecated features, make a normal build and inspect warnings, and if you want to test your code in debug mode, disable DEPRECATED_WARNING again and build.
A small change to the test-code generating script generate_code.pl had to be made in order to omit mentioning identifiers like MBEDTLS_MD2_MD in case their respective modules were disabled; previously, this lead to unavoidable deprecation warnings even if no deprecated module was enabled.

Thanks @andresag01 for the quick feedback. I'll add comments at the top of the files and for the context structures, too. Regarding the wording, what about "It is recommended to use a strong cipher/message digest instead." instead?

@hanno-arm: Yep, I am happy with something like that. I am definitely agains saying something like: "use AES instead of ARC4" because I do not think it is our place to give security advice. Also whatever you recommend might be out-of-date soon (as unlikely as it might be...)

@andresag01 I have updated the PR according to your comments.

Thanks and apologies @andresag01, that was careless. I updated the PR, including two more warnings regarding the configuration options guarding the use of SHA-1 for certificate signing and within key exchanges.

@andresag01 Regarding DES, the main goal of this PR is so serve the internal requirements, so I'd prefer to stick to these and leave a further deprecation to a potential separate PR.
Regarding the mbedtls_md_type_t enum, good point, that's another part of the code that the user interfaces with, so we should add the warning there, too.

@andresag01 Updated.

@andresag01 The mbedtls_*_process functions are completely undocumented and internal only judging from the respective header files, so from that perspective I'd be inclined to omit the warnings for them in the headers. That said, though, I find it surprising that despite the lack of any documentation, there's a configuration option in config.h allowing the user to overwrite them. It's not very consistent.
For now, I've added the warnings to the MBEDTLS_XXX_ALT config options as you requested, but kept the rest as it is.

@hanno-arm: You mean is not consistent because there is no documentation for the function? I think the documentation was not omitted because it is supposed to be an internal function only...

@andresag01 I don't understand your last sentence.
The functions are meant to be internal only, hence undocumented - so far, so good. But then it doesn't make sense to expose them in config.h, allowing the user to overwrite them - looking at the documentation only, the user has no idea what functionality he's supposed to provide.

@hanno-arm: Its internal only in the sense that is only exposed for the purposes of alternative implementations. So if you want to replace mbedtls_*_process() then just define the macro and provide an implementation for the function.

@andresag01 How can I re-implement a function if I have no information on the functionality it is supposed to provide? That's odd.
Anyways, I've added a warning to the config options for XXX_PROCESS_ALT.

@hanno-arm: btw, are we going to backport these changes?

@andresag01 I don't know about internal requirements, but I think as these are warnings they should be backported.

I haven't checked in detail how we're going about deprecating these algorithms. But I'm surprised that DES isn't included. It isn't as badly broken as RC4 (if you're using 3DES), and it's the least bad ciphersuite to talk to Windows XP, but it is broken enough that we should be warning people away from it.

Please ensure that deprecated functionality has a doxygen comment with the \deprecated macro (if it's activated by config.h). In the doxygen-generated documentation, deprecated.html is a convenient dashboard to review deprecated functionality — if we keep it accurate.

@gilles-peskine-arm Yes, so far this PR hasn't been updated with any deprecation, but I'll use \deprecated for that. Thanks for mentioning the deprecation-dashboard, I didn't know about that.

@sbutcher-arm @yanesca @andresag01 @mpg @gilles-peskine-arm  I have added commits deprecating MD2 and ARC4. I didn't do the other algorithms yet because I'd like to await your feedback in order to avoid redundant work if it's not what we want.
Quick summary:

Add single deprecation warning to respective header files (md2.h and arc4.h)
Deprecate global identifiers, e.g. MBEDTLS_MD_MD2 or ciphersuite ID's involving ARC4.
Make multiple includes of md2.h and arc4.h conditional on MD2_C resp. ARC4_C being set, to avoid deprecation warnings if the latter are not set.
Minor improvements, mostly style.

This leads to the following behavior:

Compilation without DEPRECATED_WARNING continues without any warnings. In particular, the default configuration builds without warnings.
Compilation with DEPRECATED_WARNING with either MD2_C or ARC4_C enabled results in numerous warnings from includes, ID uses, etc. As far as I understood, we tolerate that.
As a consequence of 2., it is not possible to build in modes like ASanDbg treating warnings as errors, when DEPRECATED_WARNING is set. While not optimal, I don't consider this critical. If you want to check where you use deprecated features, make a normal build and inspect warnings, and if you want to test your code in debug mode, disable DEPRECATED_WARNING again and build.
Compilation with DEPRECATED_WARNING enabled and MD2_C and ARC4_C both disabled currently still results in 3 warnings originating from automatically generated test-code which extracts identifiers like MBEDTLS_MD2_MD from the test files and unconditionally generates code for it which is not guarded by the corresponding #if defined(MBEDTLS_MD2_C) ... #endif. If we don't like it, we could investigate how to adapt the test-code generation scripts accordingly.

Happy about feedback as always.

Removing needs_work temporarily while awaiting feedback before embarking on the other algorithms.

@hanno-arm MD4 was broken the year SSLv2 came out and never made it into any ciphersuite. So please make it as deprecated as MD2. RC4 is less deprecated than MD4 (though I do support marking it as deprecated in mbedtls): the final nail in RC4's coffin was relatively recent, and I think it's still possible to use it while keeping ahead of the existing attacks (not that I'd recommend doing it, because there's a serious risk of falling to next year's incremental improvement to the attacks).

@gilles-peskine-arm Please note that this is only incorporating MD2 and ARC4 to reach consensus before doing the other algorithms.

@hanno-arm: What's the plan then? My current understanding is that we are adding doxygen warnings for MD2, MD4, MD5, SHA1, ARC4 and DES. However, we are only deprecating MD2, MD4 and ARC4. Is this correct? Also, I have a couple of comments:

If ARC4 is being deprecated, why should we still have it enabled by default in the config.h?
Should we consider enabling MBEDTLS_DEPRECATED_WARNING by default in the config.h?
I think that we should look fixing the warnings in the deault config when all the deprecated modules are disabled, e.g. MD2, MD4 and ARC4.

@andresag01 That's in accordance with my understanding. The current state of the PR adds warnings about MD2, MD4, MD5, SHA-1 and ARC4, so DES still needs to be added (no specific reason to postpone it, it just hasn't been done). Deprecation is exemplified in MD2 and ARC4 and pending your and the other's feedback to see if it's what we want.
Concerning your questions:

My feeling was that this would probably wait until the next API breaking release; in any case, it's not my decision, so I left it enabled so far.
Again, I'm open for that, but in this case we should disable ARC4 by default, otherwise we won't build without warning, resp. not at all in ASanDbg.
Yes, as mentioned, currently the only warnings we get are from deficiency in the code generation which doesn't guard code for string-to-identifier conversion by the configuration flags guarding the tests in which the respective identifiers were found. Concretely, there are tests containing MBEDTLS_MD2_MD in their test input and which depend on MBEDTLS_MD2_C, but the test-code generation doesn't guard the translation of the string "MBEDTLS_MD2_MD" to the identifier MBEDTLS_MD2_MD by MBEDTLS_MD2_C.

@yanesca There was a bug in the test code generation incaught by the CI for unknown reasons. Could you check and potentially re-approve?

@gilles-peskine-arm Thanks for your feedback. I've addressed your comments.

Note: CI failed only due to a failure of the timing selftest (known issue).

@yanesca There have been some changes since your last approval - would you mind giving those another look?

Looks good to me!

Issue #1156 is fixed by this PR, too, and should be closed alongside it.

Decision has been taken to remove all deprecations.

Can't set status; build succeeded.

Can't set status; build succeeded.

@yanesca @gilles-peskine-arm As requested I have reverted all deprecations. Please have a look and potentially re-approve.
If you're ok with it, I strongly suggest to then clean up the history, keeping a copy of the present state so that you can verify there's zero diff after the rebase.

For reference, the last commit is 493f43b2, I preserve it temporarily on a local branch for comparison.

@yanesca @gilles-peskine-arm Dropped all commit-revert pairs from the PR. The diff between the current head 85f6c7d and 493f43b is empty.

@hanno-arm - Can you give a status update on this? Thanks.

As discussed with @sbutcher-arm, this PR is in hold for the moment.
Internal Reference: IOTSSL-2379

In 3.x, these algorithms are either removed, or have warnings.


Account for the root not being /app

From what I understood, the buildpack creates symlinks in /app, during build so that the path to Python shorter and the shebang in for example pip do not exceed the maximum length of 127 characters. This is smart little work-around, but this causes a problem with buildpacks that make other buildpacks run in a sub-directory of /app. The symlinks are set up during the build, but are lost when the slug gets deployed. This small modification does two things:

Set up symlinks at runtime as well if the $HOME is not /app.
Always use $HOME in export statements in the .profile.d script.

I like the idea of using $HOME instead of /app. I'm not sold about the idea of making /app a symlink during runtime, however.

@kennethreitz Do you have alternative for the symlinks? If you set them up during the build, then how would paths still work at runtime?

this seems like a correct approach, for other buildpack environments.


Deserializing variable length encoding

I am trying to implement a pre-defined network protocol but I am being caught up with a couple of its design decisions. At the moment I am working on implementing packets that rely on lengths being represented as 1 to 5 bytes, the structs are as follows.
struct VarVec{
  length: VarInt,
  data: Vec<u8>
}

struct Packet {
    packet_length: VarInt,
    packet_id: VarInt,
    #[serde(serialize_with = "ser_vec_no_len")]
    data: Vec<u8>,
}

Upon trying to implement Deserialize for VarVec I've realized that deserialize_seq still tries to determine the length ahead of time.
Is serde a suitable choice for this kind of thing?
I've managed to get serialization for these types working as expected.

Hi @disconsented, sorry that no one was able to provide help here. If this is still an issue, you could try taking this question to any of the resources shown in https://github.com/serde-rs/serde#getting-help.


Blank identifiers are declared

And they shouldn't be, obviously.

I've briefly started looking into this. It appears something is wrong with short variable declarations. The code as it's written should be throwing errors when a blank identifier is used in a short variable declaration (which it shouldn't). However, it isn't. Consequently, the global identifier for blanks is being used (which has UnknownType) causing the simplification to blow up with UnrepresentableType.


Questions on method sharedClone in  Module.lua

In https://github.com/Element-Research/dpnn/blob/master/Module.lua#L43, you just return the model itself for  recurrent module in RNN, however, can this cause the problem of each element in table self.outputs in recurrent module referencing the same memory chunk? i.e. self.outputs[1] will be identical to self.outputs[2] etc? How do you manage such things? can you give me some hint, many thanks

when calling forward on recurrent modules during training, the output will be different for each time-step so this isn't a problem. This is because the recurrent modules (i.e. AbstractRecurrent instances) handle manage the memory allocated to different time-steps internally. That way you can call forward multiple times on a recurrent module to produce a different output (with its own memory) every time.

hi, nicolas, thanks for your reply,  and can you be more specific. coz i noticed that in https://github.com/Element-Research/rnn/blob/master/Recurrent.lua#L73,  if recurrentModule reference the same module at each timestep,  then wouldnot this module's(i.e, recurrentModule) output  reference the same memory chunk? Besides I donot see any strategy you do here to avoid such problem, does not this cause a problem, or I must misunderstand such things?

what do you mean internally? can you point it out?

@eriche2016 So when you an AbstractRecurrent calls getStepClone to get a clone for that time-step, there are two use cases. If the internal recurrentModule is also an AbstractRecurrent instance, then it returns itself when calling stepClone(), otherwise it creates a sharedClone. The latter is a clone of itself where the parameter and gradParameters are shared between clone and original. In the former case, the recurrentModule, which is also an AbstractRecurrent will do its own internal stepClone of its recurrentModule when a forward is called and the time-step is incremented. In which case, the resulting clone shares parameters with the original, but has its own output, gradInput and other such stateful tensors. Get it?

@nicholas-leonard  hi, thanks for your reply. but I am still confused. so I declare test a model named:
r = nn.Recurrent(    7, nn.LookupTable(100, 7),     nn.Linear(7, 7), nn.Sigmoid(),     5 ) ,
an after checking the code and insert  print(self.dpnn_stepclone) in method sharedClone. And i run it interactive mode,  run below commands for first several times:
r:forward(torch.Tensor{2}),
I will got nil value, which means the self.dpnn_stepclone is no useless here, note that self.dpnn_stepclone has been set to be true in AbstractRecurrent.lua:
https://github.com/Element-Research/rnn/blob/master/AbstractRecurrent.lua#L6. Am I correct?

@eriche2016 It should be print(self.dpnn_stepClone).

@nicholas-leonard , no it is print(self.dpnn_stepclone), you can check it in https://github.com/Element-Research/rnn/blob/master/AbstractRecurrent.lua#L6 and https://github.com/Element-Research/dpnn/blob/master/Module.lua#L43. Note also that i have also tested in the if statements in https://github.com/Element-Research/dpnn/blob/master/Module.lua#L43.

I know the difference , the example I use is not proper, cause r is a module of type nn.AbstractRecurrent, however, in the the model it self, the self.reccurrentModule is not a module of type 'nn.AbstractRecurrent', but a module of type nn.Module.  so it has no attribute of self.dpnn_stepclone. thank you very much anyway,


Model Package Update to improve Model file caching

Earth2Studio Pull Request
Description

Refactoring of how the earth2studio.models.px.auto.Package class works to lean more into Fsspec to use more of their existing caching system as well as provide better downloading feedback for users via tqdm. Also adds better ability to customize caching directly in model, namely default can not hash file names to make cache readable. I made the call to decouple this from Modulus file system, which operates a little differently, because it takes too long to upstream.
Presently implemented as PackageV2 for the sake of presentation.
There is a slight "bug"/limitation in Fsspec which is the reason this took long to figure out related to the call back for caching. Had to  extend the caching cache to fix.
Closes: https://github.com/NVIDIA/earth2studio/issues/46
Closes: https://github.com/NVIDIA/earth2studio/issues/59
Checklist

[x] I am familiar with the Contributing Guidelines.
[x] New or existing tests cover these changes.
[ ] The documentation is up to date with these changes.
[x] The CHANGELOG.md is up to date with these changes.
[x] An issue is linked to this pull request.

Dependencies

/blossom-ci

/blossom-ci

/blossom-ci

/blossom-ci

/blossom-ci

/blossom-ci

/blossom-ci


Discovery single item view

WIP On introducing Discovery Views into SAGE.

Coverage decreased (-26.6%) to 17.723% when pulling b6edc81f3d70580b41fd4efda7447bf567fb235a on discovery-single-item-view into b0b2750a162da9b6aaaf98f636966a135fd20a41 on master.


#3859 Added Russian rouble in grid chart

Description

Added Russian rouble in grid chart
Related Issue : #3859

How Has This Been Tested?

Need additional checks?
Types of changes

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

Checklist:

[ ] I have read the CONTRIBUTING document.
[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have added tests to cover my changes.

Additional Context

deploy to 1

deploy to 1


Trojan:Win32/Vigorf.A detected by Windows defender

NOTE: This project is for Ruby version 2.3 and older.
For Ruby versions >= 2.4 please file an issue here.
What problems are you experiencing?
Windows Defender AV detected a trojan in the Win32 devkit installer.
rubyinstaller-devkit-2.5.1-2-x64.exe
Steps to reproduce
Download https://github.com/oneclick/rubyinstaller2/releases/download/rubyinstaller-2.5.1-2/rubyinstaller-devkit-2.5.1-2-x64.exe to a virtual machine running Windows 10.
Install the application.
Watch the quarantine event occur.
What's the output from ruby -v?
N/A I terminated the installer.

Windows 10 Home
Antimalware Client Version: 4.18.1806.18062
Engine Version: 1.1.15100.1
Antivirus Version: 1.273.122.0
Antispyware Version: 1.273.122.0


Python 3

Are there any plans for support in python3?
is it still maintained or should I fork?

@drorasaf There aren't immediate plans for supporting python3 so forking might be the right way to go for now. Or feel free to submit a PR!

I am working on it, hope to finish this weekend.
I have another suggestion, create tox.ini or a travis.yaml to allow quick integration and check for all environments

#3

Thanks @drorasaf. Just released version 1.0.0 which includes your merged PR as well as Travis.


Updating index.json for MaintenanceRP extension

Updating index.json for MaintenanceRP extension

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

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

If this PR is for a new extension or change to an existing extension, use the following to try out the changes in this PR:
docker run -it microsoft/azure-cli:latest
export EXT=<NAME>
pip install --upgrade --target ~/.azure/cliextensions/$EXT "git+https://github.com/abkmr/azure-cli-extensions.git@master#subdirectory=src/$EXT&egg=$EXT"

@abkmr the CI is failing due to mismatched metadata. Did you use azdev extension update-index?

closing this pr as there seem to be no activity, @abkmr please reopen if you want to continue

If this PR is for a new extension or change to an existing extension, use the following to try out the changes in this PR:
docker run -it microsoft/azure-cli:latest
export EXT=<NAME>
pip install --upgrade --target ~/.azure/cliextensions/$EXT "git+https://github.com/abkmr/azure-cli-extensions.git@master#subdirectory=src/$EXT&egg=$EXT"


Update JournalSheet to Foundry 0.8.2

extends DocumentSheet, id (new?), _render
Some changes in 0.8.8

Hi, I'm unsure about the state of this issue, as it seems to work for the most part. But the JournalSheet class does not seem to have its own render() method definition, and thus expects Application.RenderOptions, which is missing sheetMode.
This means TypeScript nags me about "object literals may only specify known properties".
The workaround right now (which seems to work) is this (called inside my own class that derives from JournalSheet):
this.render(true, { sheetMode: 'image' } as JournalSheet.RenderOptions);

It would probably be nicer if JournalSheet.render would actually expect a JournalSheet.RenderOptions object.

It still needs to be updated properly. We'll keep this in mind when doing that.


Migrate to official typings

fix https://github.com/howtimeflies-io/ngx-highcharts/issues/3

Codecov Report

Merging #4 into master will increase coverage by 0.5%.
The diff coverage is 100%.

@@            Coverage Diff            @@
##           master       #4     +/-   ##
=========================================
+ Coverage   96.24%   96.74%   +0.5%
=========================================
  Files           5        5
  Lines         133      123     -10
  Branches       32       15     -17
=========================================
- Hits          128      119      -9
+ Misses          5        4      -1

Impacted Files
Coverage Δ

src/highcharts/highcharts.config.ts
100% <ø> (ø)
:arrow_up:

src/highcharts/highchart.component.ts
98.11% <100%> (-0.04%)
:arrow_down:

src/highcharts/highcharts.service.ts
88.88% <100%> (+1.79%)
:arrow_up:

src/helper/lazy-asset-loader.ts
100% <0%> (ø)
:arrow_up:

src/helper/helper.ts
100% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Webhook URL validation is too strict

Issue Summary
The problem is that when I try to use the name of the container as a url in docker-compose, it shows that the url is not valid

Steps to Reproduce
Screenshot
Ghost Version
4.32.0-debian
Node.js Version
none
How did you install Ghost?
docker
Database type
Other
Browser & OS version
No response
Relevant log / error output
No response
Code of Conduct

[X] I agree to be friendly and polite to people in this repository

In general, I easily got around the problem, but perhaps this is excessive validation

This is a duplicate of https://github.com/TryGhost/Ghost/issues/12933, although sadly I never got around to triaging this issue.
I can see that it's annoying, although it's also fairly trivial to work around.
Would happily accept a PR that fixes it though :)

@ErisDS Hi, I would like to work on this issue. Could you please assign this to me?

Hi @KitaPDev you are welcome to work on this issue and submit a PR, however we are unable to assign issues to people who do not have a history of contributing to the project. Thanks!

Alright @ErisDS . I'll get started working on this.


[BUG] - UI bug when using "Slide Over"

landscape orientation
https://user-images.githubusercontent.com/84154073/198878027-1363838d-2dea-421e-9102-c976563abf00.MP4
portrait orientation
https://user-images.githubusercontent.com/84154073/198878023-dcc9b875-9cc7-4d6b-9e8e-a360e60ef7c7.MP4

Reopened. Not resolved yet.


You don't have or can't use skill #7297, macro aborted. - but skill was already used

Running c2t_hccs worked quite well by now, but currently running into the following problem:

[64] The Neverending Party
Encounter: party girl
Round 0: Dysis wins initiative!
Round 1: Dysis executes a macro!
Round 1: Dysis casts SING ALONG!
Round 2: Dysis executes a macro!
KoLmafia thinks it is round 3 but KoL thinks it is round 2
You're on your own, partner. (You don't have or can't use skill #7297, macro aborted.)
Click here to continue in the relay browser.

Skill 7297 is "Sing along", which was already used, but seemingly the combat script tries to use it again.
It only just now started, I think the script tries to get punching potion and uses meat-sing-a-long on the way?
Just so you know. Thanks a lot!

If you include part of the log that also include the previous 2 or so combats as well, I'd have a better idea where in the script this is happening.
There's a few guesses as to the why:

It's reentering the combat script too quickly after submitting the first macro
There's a missing requirement or a lapse in logic somewhere

I don't know if the first one is actually a thing, but #8db6f7953906461b4f53d0f8a589d10b763983ee is an attempted fix based on the very rare instances of something similar happening to me.
As for the second guess, it could be something I didn't think of to explicitly list as a requirement, or just a flub, which seeing the things leading up to it would help pinpoint.

It looks like it's not properly detecting the number of remaining free kills, since it really should not be adventuring in NEP after free kills are spent. And that's why it's not using a skill after the sing along: because there just isn't a free kill left to use.
If you could run this on the CLI at some point and paste the result here, it might give me some insight as to what is going on:
ash import <c2t_hccs.ash> print(`{c2t_hccs_freeKillsLeft()};{available_amount($item[lil' doctor™ bag])},{get_property("_chestXRayUsed")};{have_skill($skill[shattering punch])},{get_property("_shatteringPunchUsed")};{have_skill($skill[gingerbread mob hit])},{get_property("_gingerbreadMobHitUsed")}`);


How to use this to load FBX files

Does anyone have a clue about how to use the media app template to load fbx files the same way that photos and videos are loaded?

The Media App Template isn't built for viewing models. However, here are some starting points you can use to begin adapting it for that use:

In MediaHelpers.cs add a MediaType called model and add the appropriate extensions to the EXTENSIONS_TO_MEDIA_TYPE dictionary.
Create a subclass of BaseMediaPlayer to display models.
In MediaSelector.CreateMediaPlayer, add support for the Model media type.


changes v2 and v3

fix compatibility and tests

This should fix the incompatibilities of #51 and solve #50 for more environments.

Looks good. Thank you for taking the time to fix this!


Support changing log level at runtime for proxy

What changes are proposed in this pull request?
Support changing log level at runtime for proxy.
The user can change the logLevel with the following ways

With logLevel command

$ ./bin/alluxio logLevel --logName=alluxio.proxy.s3.S3RestServiceHandler --target=localhost:39999 --level=DEBUG
Role inferred from port: localhost:39999[proxy]
localhost:39999[proxy]LogInfo{DEBUG, alluxio.proxy.s3.S3RestServiceHandler, Setting Level to DEBUG}

With curl

$ curl -X POST -H "Authorization: AWS4-HMAC-SHA256 Credential=testuser/..." "http://localhost:39999/api/v1/proxy/logLevel?logName=alluxio.proxy.s3.S3RestServiceHandler&level=DEBUG"
{"level":"DEBUG","logName":"alluxio.proxy.s3.S3RestServiceHandler","message":"Setting Level to DEBUG"}

This looks good overall, please pass the failed test.

This looks good overall, please pass the failed test.

I rebased it and all tests passed.

@maobaolong Could you help review this pr? thanks.


About the result of “smoothing”

The GNSS positioning solution may be affected by multipath and deviate. (Especially in the height direction)
If there are large outliers, the averaging effect will be negated.
Countermeasures are needed.

I judge that correct pitch angle information is necessary for the countermeasure.
Therefore, multipath countermeasures are not performed in smoothing.
As a future works, measures will be taken when pitch angle estimation is implemented.


Python 3.7 Deprication

According to NEP29, dropping Python 3.7 should start late December 2021. With that, let's plan on dropping it 3.7 with the next realease.

[x]  Update CI matrices

[x]  Remove/update 3.7 in setup.cfg

[x]  Update any mentions of 3.7 in the docs

Requirements where already for 3.8 so I accepted the numpy version bump and will release a package next


Image for progressview in audio recording

how to add a image to progressview in audio recording

Since the progress view is currently only a couple of pixels high, I think you are going to want to create your own custom version. It's easy. Just copy the class into your own project, rename it, and re-write it to look the way you want.


packit-service config and PR status reports from stg app

TODO:

[x] tests

In the ideal case, this PR will be followed up by:

Remove sandcastle from packit completely
Packit API is using user config in the constructor, but now we are passing the service config there. This is why there is still github_token even if it is not necessary for the service. A solution could be to create an abstract class for these two configs.

Tested here.
https://github.com/packit-service/hello-world/pull/10

Fixes also #12. (This PR is live on stg)

Didn't review deeply since there is so many changes.
Is there some changes needed to be done in the deployment?

Indeed, I will open PR in the deployment repository.

CI is green ✅

Shall we merge?


05 (Method Not Allowed)

im getting an error when i try to to an update .... PUT http://<IP_ADDRESS>:8000/api/task 405 (Method Not Allowed), can someone help?

I'm closing this due to inactivity. If you still encounter this issue on the latest version (2.0.1 at the moment), please open a new issue with detailed information.


sandbox blocking mode doesn't work

Describe the bug
Unless I'm misunderstanding something, according to #2658 and the Sandbox docs, the Sandbox should default to blocking mode, whereby the HTTP response status code is supposed to reflect the backend rather than always being 200.
Steps to reproduce
curl -i \
     -H "x-format-output: txt-matched-rules" \
     -H "x-crs-paranoia-level: 2" \
     -H "x-crs-mode: blocking" \
     --json '{"foo": "0x1234"}' https://sandbox.coreruleset.org/

Expected behaviour
I would expect a status code not in the 2xx range.
Actual behaviour
It returns a 200 response:
HTTP/1.1 200 OK
Date: Mon, 11 Mar 2024 21:15:46 GMT
Content-Type: text/plain
Transfer-Encoding: chunked
Connection: keep-alive
X-Unique-ID: Ze90glGUhYyF4lJGamKlbwAAAM4
x-backend: apache-nightly

942450 PL2 SQL Hex Encoding Identified
949110 PL1 Inbound Anomaly Score Exceeded (Total Score: 5)
980170 PL1 Anomaly Scores: (Inbound Scores: blocking=5, detection=5, per_pl=0-5-0-0, threshold=5) - (Outbound Scores: blocking=0, detection=0, per_pl=0-0-0-0, threshold=4) - (SQLI=5, XSS=0, RFI=0, LFI=0, RCE=0, PHPI=0, HTTP=0, SESS=0, COMBINED_SCORE=5)

Additional context
https://coreruleset.org/docs/development/sandbox/#example says:

The sandbox will return a 200 response code, no matter if an attack was detected or not.

which seems to be in direct contradiction to https://coreruleset.org/docs/development/sandbox/#changing-options, which says:

Also, #2658 seems to imply that the default of blocking was implemented in 2022, but no link to the referenced PR was provided.
Your Environment
This is fully described by the curl command above, and the use of the public Sandbox.

This was working. Internally it was done in https://github.com/coreruleset/crs-sandbox/pull/44, and this is the test that I pasted there:
❯ curl -v -H 'x-crs-mode: blocking' -H 'x-crs-paranoia-level: 4' -H 'x-format-output: txt-matched-rules' http://localhost/anything\?id=alias%20j%3Da%3B%20c%24jt
*   Trying <IP_ADDRESS>:80...
* Connected to localhost (<IP_ADDRESS>) port 80 (#0)
> GET /anything?id=alias%20j%3Da%3B%20c%24jt HTTP/1.1
> Host: localhost
> User-Agent: curl/7.79.1
> Accept: */*
> x-crs-mode: blocking
> x-crs-paranoia-level: 4
> x-format-output: txt-matched-rules
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 403 Forbidden
< Date: Mon, 18 Jul 2022 22:36:48 GMT
< Content-Type: text/plain; charset=iso-8859-1
< Transfer-Encoding: chunked
< Connection: keep-alive
< X-Unique-ID: YtXggKoZRS-oSz1PYD0lcwAAAAQ
< x-backend: apache-nightly
<
920273 PL4 Invalid character in request (outside of very strict set)
942432 PL4 Restricted SQL Character Anomaly Detection (args): # of special characters exceeded (2)
949110 PL1 Inbound Anomaly Score Exceeded (Total Score: 8)
980170 PL1 Anomaly Scores: (Inbound Scores: blocking=8, detection=8, per_pl=0-0-0-8, threshold=5) - (Outbound Scores: blocking=0, detection=0, per_pl=0-0-0-0, threshold=4) - (SQLI=3, XSS=0, RFI=0, LFI=0, RCE=0, PHPI=0, HTTP=0, SESS=0)
* Connection #0 to host localhost left intact

Then in https://github.com/coreruleset/crs-sandbox/pull/47 the blocking mode was made the default mode, and you can switch to non-blocking by passing the header x-crs-mode: blocking as stated in the docs.
Now, somehow that behavior was changed. I'm figuring out why/when.

Ok, took me some time, but found the problem. Now I need to get the fix.

Just an update here: I've been trying to get this working while also updating the sandbox code. As there were some changes in our containers, I'm still having some problems to push the fix in a working state.

Thanks for the update

Works for me, thanks a lot!

Thanks for the patience. 🙇


bounceOffset not available

Unable to set bounceOffset in most recent version.

Yup, I removed bounceOffset as a property in recent versions. The reason is I didn't use contentOffset of tableView anymore, now I'm implementing dropdown menu animation with usingSpringWithDamping: initialSpringVelocity.


Can I use sleep(60) instead of sleep(1)?

Can I use sleep(60) instead of sleep(1)?

Hi, take look at documentation of run_pending().
Here it is:

Please note that it is intended behavior that run_pending() does not run missed jobs. For example, if you’ve registered a job that should run every minute and you only call run_pending() in one hour increments then your job won’t be run 60 times in between but only once.

So, if I'm not mistaken, your time inside time.sleep() should be smaller than any of your registered event's time.

You can also use sleep(scheduler.idle_seconds). It will wait just to run next scheduled job.


Recycle to enabled loading of multiple files one after another ?

Anyone managed to figure out how to do a recycle to load pdfs one after another without the dreaded recycle error message.
recycle() does not do it.....

if i remove the code below my i can reload as many pdf's as i wish, is that a problem?
if (!recycled) {
throw new IllegalStateException("Don't call load on a PDF View without recycling it first.");
}


runtime: mark traceEnabled and traceShuttingDown as no:split

This fixes a regression from CL 494181.
The traceEnabled function splits the stack and is being
called by reentersyscall that shouldn't call anything
that splits the stack. Same with traceShuttingDown.
Fixes #61975

This PR is being closed because go.dev/cl/519055 has been merged.

It didn't get closed automatically due to a bug in cmd/gerritbot tracked in #35867. Note that the last few comments here are about a different CL 519495, which is a cherry-pick of the original CL to the release-branch. Because the PR didn't get closed, cmd/gerritbot is still trying to import it (causing errors in its logs) and sync messages (causing confusing messages to show up). (CC @thepudds, @golang/release.)


bail out on download for git and dev installations

#8
/cc @ralphtheninja

+1

would an exit code of 0 be easier to integrate?

New minor I guess?

https://github.com/mafintosh/prebuild-install/issues/8#issuecomment-222384635 I'm +0 for this.  If you want it,  then just merge :) Minor should be good

1.1.0


Explain usage of use_builders and namedtuple_optional

Hi Andy,
pipeless is dead simple.  Can you help explain more about  usage of use_builders and namedtuple_optional?
Thanks,
Pilgrim

There's some examples in examples.py, namely:
Function Builders
>>> function, run, _ = pipeline(lambda item, e: None, use_builders=True)
>>> @function
... def bob_the_builder(): return lambda _: _+1
>>> list(run([1,2,3]))
[2, 3, 4]

Optional NamedTuples
>>> from pipeless import namedtuple_optional
>>> new_class = namedtuple_optional({'field': 'value'}, 'cool_class')
>>> my_instance = new_class()
>>> my_instance.field
'value'

Basically function builders runs the function and treats the result as the data processor. I use this like so in my projects:
function, run, _ = pipeline(lambda item, e: None, use_builders=True)
@function
def my_builder():
    import my_library
    option = 12
    def my_pipe_step(item):
        return my_library.operation(item, option)

The reason I have it set up this way for my projects is because I have a lot of imports and I like to keep those libraries and options scopped with their data processor function.
Don't use Optional NamedTuples, they should be depreciated/removed. More information if you are interested: What they are trying to solve is using NamedTuples when some fields should have default values. The replacement solution you should use is to make a prototype NameTuple value for your data with all the default values set and when you want to make new objects run .replace() with the fields you want changed. I hope this makes sense.

Let me know if you have any further questions!

These features were removed from the library in version 2.0 since good alternatives are available.


Bug: where condition is ignored in beforeFind and afterFind callbacks

PHP Version
7.3
CodeIgniter4 Version
4.2
CodeIgniter4 Installation Method
Manual (zip or tar.gz)
Which operating systems have you tested for this bug?
Linux
Which server did you use?
fpm-fcgi
Database
MariaDb
What happened?
model methods like findAll, paginate, accept where conditions but they are not referred anywhere in the $eventData so the $eventData['data'] returns all data, not filtered.
Steps to Reproduce
$model->where('filter', $filter_value)->findAll();
Nowhere to get that filter to use with beforeFind
$eventData only includes limit, offset
[https://github.com/codeigniter4/CodeIgniter4/blob/6bdbe10abdae1f2eb0366698519359f2cc1a5391/system/BaseModel.php#L567](findAll in BaseModel.php)
$eventData = $this->trigger('beforeFind', [
                'method'    => 'findAll',
                'limit'     => $limit,
                'offset'    => $offset,
                'singleton' => false,
            ]);

Expected Output
Ability to use the where filter
protected $beforeFind = ['beforeFindCallback'];
maybe as an element inside $eventData
protected function beforeFindCallback($eventData) {

switch ($eventData['method']) {
            case 'findAll':

                $this->builder = $this->db->table($this->table);
                //... here more complex query
                $this->builder->where('filter', $eventData['where']
                $query = $this->builder->get();

                $data['data'] = $query->getResultArray();
                $data['returnData'] = true;

                return $data;
            case 'find':

               /*...
                $data['data'] = $query->getRowArray();
                $data['returnData'] = true;

                return $data;
        }

}

Anything else?
No response

The where() method is called directly in the query builder. The model does not capture data, so it cannot be passed to the event.

Two solutions possible:

Using afterFind and modifying the data result with the filter
Set the filter value in the model and call the value in the query

//in the model
protected $where;

protected setWhere($where) {
    $this->where = $where;
}

protected function beforeFindCallback($eventData) {

switch ($eventData['method']) {
            case 'findAll':

                $this->builder = $this->db->table($this->table);
                //... here more complex query

                $this->builder->where($this->where); //the condition

                $query = $this->builder->get();

                $data['data'] = $query->getResultArray();
                $data['returnData'] = true;

                return $data;
            case 'find':

               /*...
                $data['data'] = $query->getRowArray();
                $data['returnData'] = true;

                return $data;
        }

}


Automated cherry pick of #3897: huawei disk detach bugfix

Cherry pick of #3897 on release/2.12.
#3897: huawei disk detach bugfix

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.12@7c5f014). Click here to learn what that means.
The diff coverage is n/a.

@@              Coverage Diff               @@
##             release/2.12   #3900   +/-   ##
==============================================
  Coverage                ?   6.92%
==============================================
  Files                   ?     500
  Lines                   ?   84437
  Branches                ?       0
==============================================
  Hits                    ?    5850
  Misses                  ?   78093
  Partials                ?     494

Flag
Coverage Δ

#aFlag
6.92% <ø> (?)

Continue to review full report at Codecov.

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

/lgtm

/approve


Use bot_core_lcmtypes to provide drake-visualizer interface types

This also includes changes from #272 since they end up touching some of the same lines.
The big exciting feature is that we can now build a fully-functional drake-visualizer app without the Drake dependency.
This adds bot_core_lcmtypes as an external to the superbuild, and uses it to provide the types needed by drakevisualizer. If bot_core_lcmtypes doesn't contain the appropriate types, it falls back to extracting them from Drake and throws a deprecation warning.
With this change, Director no longer depends on any of Drake's python LCM bindings (except in backwards-compatibility mode).
Closes #273

This seems to add the initial ability for a 3rd party to transmit the status of their own kinematic system over lcm and have it renderer by the visualise - which would be cool.
do you have a simple demo script you could add which creates a system and demonstrate this? E.g. adding a python script to director/src/python/tests

Yes! That's exactly the idea. I'm hoping to use this with https://github.com/rdeits/DrakeVisualizer.jl which provides a Julia interface to the visualizer.
Adding a demo script is a good idea. I'll do that.

Ok, script added and commented.

LGTM (test has been added and passes), can we merge this @mauricefallon and @rdeits?

I don't think we currently use the tip of bot_core_lcmtypes in oh-distro because the changes that TRI added to the CMake didn't work for us.
So I don't think the drake types are in the currently used revision.

PS: it would seem that TRI are no longer using bot_core_lcmtypes as they haven't been actively trying to push the open PR in either

Drake uses a fork of bot_core_lcmtypes.
Good point regarding the bot_core_lcmtypes, what should we do about this PR then to avoid capability divergence? I feel the feature presented here would be great.


[Darwin] MTRDeviceConnectivityMonitor stopMonitoring crash fix

This fixes a crash in a shutdown / cleanup scenario where MTRDevice goes away and calls stopMonitoring when the shared resolver connection/queue have already cleaned up.
Also added some logging for when resubscription happens in the MTRDevice layer.

Fast-tracking platform-specific fix with platform owner review.


AttributeError: 'Token' object has no attribute 'vehicle_id' when calling check_and_refresh_token()

Hyundai / Kia Connect version: 1.26.5
Python version: 3.9
Operating System: macOS 12.1

Description
I'm getting an attribute error - 'Token' object has no attribute 'vehicle_id' -- when calling VehicleManager.check_and_refresh_token().
Looking at the source, I think it's because vehicle_id is an attibute on Vehicle, not on Token; I think this is a bug in HyundaiBlueLinkAPIUSA.py, line 293 -- I believe that should read headers["vehicleId"] = vehicle.id?
I'll try to open a PR, but I wanted to open the issue in case my theory is wrong.
What I Did
>>> import hyundai_kia_connect_api as hkapi
>>> vm = hkapi.VehicleManager(
...     region=3,
...     brand=2,
<EMAIL_ADDRESS>...     password="xxx",
...     pin="xxx",
... )
>>> vm.check_and_refresh_token()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/jacob/Library/Caches/pypoetry/virtualenvs/ioniq-U4yWA9lt-py3.9/lib/python3.9/site-packages/hyundai_kia_connect_api/VehicleManager.py", line 86, in check_and_refresh_token
    self.initialize()
  File "/Users/jacob/Library/Caches/pypoetry/virtualenvs/ioniq-U4yWA9lt-py3.9/lib/python3.9/site-packages/hyundai_kia_connect_api/VehicleManager.py", line 51, in initialize
    self.update_all_vehicles_with_cached_state()
  File "/Users/jacob/Library/Caches/pypoetry/virtualenvs/ioniq-U4yWA9lt-py3.9/lib/python3.9/site-packages/hyundai_kia_connect_api/VehicleManager.py", line 58, in update_all_vehicles_with_cached_state
    self.update_vehicle_with_cached_state(self.get_vehicle(vehicle_id))
  File "/Users/jacob/Library/Caches/pypoetry/virtualenvs/ioniq-U4yWA9lt-py3.9/lib/python3.9/site-packages/hyundai_kia_connect_api/VehicleManager.py", line 61, in update_vehicle_with_cached_state
    self.api.update_vehicle_with_cached_state(self.token, vehicle)
  File "/Users/jacob/Library/Caches/pypoetry/virtualenvs/ioniq-U4yWA9lt-py3.9/lib/python3.9/site-packages/hyundai_kia_connect_api/HyundaiBlueLinkAPIUSA.py", line 158, in update_vehicle_with_cached_state
    state = self._get_cached_vehicle_state(token, vehicle)
  File "/Users/jacob/Library/Caches/pypoetry/virtualenvs/ioniq-U4yWA9lt-py3.9/lib/python3.9/site-packages/hyundai_kia_connect_api/HyundaiBlueLinkAPIUSA.py", line 154, in _get_cached_vehicle_state
    vehicle_status["vehicleLocation"] = self.get_location(token, vehicle)
  File "/Users/jacob/Library/Caches/pypoetry/virtualenvs/ioniq-U4yWA9lt-py3.9/lib/python3.9/site-packages/hyundai_kia_connect_api/HyundaiBlueLinkAPIUSA.py", line 293, in get_location
    headers["vehicleId"] = token.vehicle_id
AttributeError: 'Token' object has no attribute 'vehicle_id'
>>>

You are correct! USA regions haven't had much testing so any support is appreciated.  Feel free to drop a PR.

As a note please check if this is still current in the latest release.   Some issues were resolved in that brand recently.


Luci-app-fwknopd:add a couple config options to the interface

Minor tweaks to uci-defaults
refresh translation files
Signed-off-by: Jonathan Bennett<EMAIL_ADDRESS>

@oneru
Are the changes in sync with last changes to the fwknopd package at openwrt/packages ?
Or are there no dependencies ?

@chris5560 I believe there are no dependancies between the two changes. Also, I've tested them together without problems.
~Jonathan

@chris5560 also, I maintain both packages, so I generally will avoid breaking one from the other. ;)

Thanks


moto v5.0+ failing to mock AWS SNS service

Description
After successfully upgrading from moto v4.x to v5.0.9 on a few of my projects, I had no problem making
the required change to mock_aws. This allowed me to mock out AWS services such as s3, iam,
secretsmanager, ssm and dynamodb. However, trying to mock out SNS fails.
This behaviour differs from v4.2.14, which allows you to say create a SNS topic and it is returned in an ordered dict of SNS topics when sns_backend is inspected.
Expected outcome:
Created SNS topic exists in the sns_backend
❯ poetry run pytest -s -p no:warnings
===================================================================================== test session starts ======================================================================================
configfile: pyproject.toml
collected 1 item

test_main.py sns_backend.topics = OrderedDict({'arn:aws:sns:eu-west-2:123456789012:test-topic': <moto.sns.models.Topic object at 0x104d8bfe0>})
.

====================================================================================== 1 passed in 0.92s =======================================================================================

Actual outcome
Created SNS topic not found in sns_backend because it returns an empty OrderedDict().
❯ poetry run pytest -p no:warnings
===================================================================================== test session starts ======================================================================================
platform darwin -- Python 3.12.3, pytest-8.2.2, pluggy-1.5.0
configfile: pyproject.toml
collected 1 item

test_main.py F                                                                                [100%]

=========================================================================================== FAILURES ===========================================================================================
______________________________________________________________________________________ test_create_topic _______________________________________________________________________________________

    @mock_aws
    def test_create_topic() -> None:
        topic_arn = MyNotifier().create_topic(name="test-topic")

        print(f"{sns_backend.topics = }")

>       assert topic_arn in sns_backend.topics
E       AssertionError: assert 'arn:aws:sns:eu-west-2:123456789012:test-topic' in OrderedDict()
E        +  where OrderedDict() = <moto.sns.models.SNSBackend object at 0x10e02de80>.topics

test_main.py:16: AssertionError
------------------------------------------------------------------------------------- Captured stdout call -------------------------------------------------------------------------------------
sns_backend.topics = OrderedDict()
=================================================================================== short test summary info ====================================================================================
FAILED test_main.py::test_create_topic - AssertionError: assert 'arn:aws:sns:eu-west-2:123456789012:test-topic' in OrderedDict()
====================================================================================== 1 failed in 0.85s =======================================================================================

Versions:

python: 3.12
moto: 5.0.9
boto3: 1.34.127

How to reproduce this issue (using code snippet below):
To reproduce this issue please refer to the small code snippet below.

In a new directory, create the files highlighted below with their code contents
Install the dependencies (pyproject.toml below helps with this if you use poetry)
run pytest (e.g. poetry run pytest -s)

main.py
import boto3

AWS_REGION = "eu-west-2"

class MyNotifier:

    def __init__(self) -> None:
        self.client = boto3.client("sns", region_name=AWS_REGION)

    def create_topic(self, name: str) -> str:
        try:
            return self.client.create_topic(Name=name)["TopicArn"]
        except Exception as e:
            raise e

test_main.py
from moto import mock_sns
from moto.core import DEFAULT_ACCOUNT_ID
from moto.sns import sns_backends

from main import AWS_REGION, MyNotifier

sns_backend = sns_backends[DEFAULT_ACCOUNT_ID][AWS_REGION]

@mock_sns
def test_create_topic() -> None:
    topic_arn = MyNotifier().create_topic(name="test-topic")

    print(f"{sns_backend.topics = }")

    assert topic_arn in sns_backend.topics

pyproject.toml
[tool.poetry]
name = "mynotifier"
version = "0.1.0"
description = ""
readme = "README.md"

[tool.poetry.dependencies]
python = "^3.12"
boto3 = "^1.34.127"

[tool.poetry.group.dev.dependencies]
moto = "5.0.9"
pytest = "^8.2.2"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

Hi @wunzeco,
I don't quite understand why - but this does work when assigning sns_backend inside the mock_aws decorator:
@mock_aws
def test_create_topic() -> None:
    topic_arn = MyNotifier().create_topic(name="test-topic")
    sns_backend = sns_backends[DEFAULT_ACCOUNT_ID][AWS_REGION]

    assert topic_arn in sns_backend.topics

Hi @bblommers
Intriguing indeed! I can confirm that the workaround worked for me too. I don't understand it either. 🤷🏾♂
But with this behaviour in v5.x, the only explanation I can offer is that it seems that sns_backend = sns_backends[DEFAULT_ACCOUNT_ID][AWS_REGION] has to be within the same scope as the test function.

Took me a while, but I figured out the reason. When mock_aws() starts, we clear the entire sns_backends dictionary to prevent any test data creeping from one test into the next one.
In v4 there were quite a few bugs around this, so with v5 we took a more methodical approach, to ensure a new test always starts with a clean slate.
After clearing sns_backends, the next time sns_backends[ACCOUNT] is invoked, a new backend is automatically created, and queues will be added to that new backend. So the sns_backend variable in your test doesn't have any queues, because Moto has created a completely different SnsBackend-object in sns_backends[DEFAULT_ACCOUNT_ID][AWS_REGION], and the queues are added to that one instead.
Hope that makes sense. I understand that this is a breaking change in v5, but it works as expected as far as I'm concerned, so I'm going to close this. Feel free to follow up with any (other) questions though.


Swagger Generator - can't add server to list

I'm using Nswag 13.1.2 in .NET Core 3.0.0.
I'm trying to add new Server and Scheme to my swagger document.
services.AddOpenApiDocument(c =>
{
	c.PostProcess = d =>
	{
		d.Schemes.Add(OpenApiSchema.Https);
		d.Servers.Add(new OpenApiServer() { Url = "foo.com" });
	};
});

Unfortunatelly in my swagger there is still only localhost server option.

Do not change schemes and use
d.Servers.Add(new OpenApiServer() { Url = "https://foo.com" });

Hi,
Thanks for you answer.
Unfortunatelly it doesn't change anything. Still have only one element in my servers list

I'm also experiencing the same issue:
        services.AddOpenApiDocument(config =>
        {
            config.DocumentName = route;
            config.PostProcess = document =>
            {
                document.Servers.Add(new OpenApiServer { Url = "https://[ENDPOINT]" });
            };
        });

Still only generates a server list with my hostname in.

So I took a look at the .NET Core OpenApiDocumentMiddleware.
This sets the Servers as the current Host then calls PostProcess; same thing for the Owin version of the Middleware. It doesn't look like there should be an issue. But having said that I would have expected Servers to be populated with a URL in the PostProcess action which it is not.
I've also tried creating an IDocumentProcessor to see if there was any more luck adding the Server in that way, but the .Clear() logic on the Server list seems to be foiling this effort.

Its important to note that you can post process per document (in AddOpenApiDocument) and per request (in UseOpenApi) - the default server is only added when hosting in asp.net core (not via CLI) when an actual HTTP request is available after document post processing and before request post processing

I had the same problem. Thanks to the hint from @RicoSuter it was clear. The Servers.Add method doesnt work in AddOpenApiDocument, it had to be placed in the UserOpenApi PostProcess section in the startup configure method like this:
app.UseOpenApi(o => {
	o.PostProcess = (doc, httpReq) =>
	{
		doc.Servers.Clear(); //... remove local host, added via asp .net core
		doc.Servers.Add(new OpenApiServer { Url = "[YOUR SERVER URL]" });  //... add server
	};
});

The issue I was facing was that when hosting on multiple endpoints (http, https, proxy, etc..) only the first would be stored in the documentCache. I was able to fix this by doing the following:
app.UseOpenApi(options => {     options.CreateDocumentCacheKey = request => request.GetServerUrl(); 	options.PostProcess = (document, request) => 	{         var serverUrl = request.GetServerUrl(); 		document.Servers.Clear();         document.Servers.Add(new OpenApiServer { Url = serverUrl }); 	}; });
This creates a unique document cache per server url instead of the default String.Empty. Works like a charm.

@vic10us / @RicoSuter

The issue I was facing was that when hosting on multiple endpoints (http, https, proxy, etc..) only the first would be stored in the documentCache.

I was having this issue as well, and tried this solution. But to actually use request.GetServerUrl(), I had to copy HttpRequestExtension from here into my project, as the HttpRequestExtension class is internal.
After add doing that, the server url is correct both directly and through reverse proxy. But is there a better way to go about this? Since you didn't mention anything like that @vic10us I assume you didn't have to copy it into your project?

@vic10us / @RicoSuter

The issue I was facing was that when hosting on multiple endpoints (http, https, proxy, etc..) only the first would be stored in the documentCache.

I was having this issue as well, and tried this solution. But to actually use request.GetServerUrl(), I had to copy HttpRequestExtension from here into my project, as the HttpRequestExtension class is internal.
After add doing that, the server url is correct both directly and through reverse proxy. But is there a better way to go about this? Since you didn't mention anything like that @vic10us I assume you didn't have to copy it into your project?

NSwag has support for this by default now, BUT you need to configure the Dotnet application to actually use the forwardHeaders like described here:
https://nickkell.medium.com/swagger-service-url-behind-reverse-proxy-3a2795229100
https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/proxy-load-balancer?view=aspnetcore-6.0#forwarded-headers-middleware-order
Works perfectly without any other settings on UseOpenApi()