AppService failures from missing SDK components.

Description
It looks like there are AppService failures with the latest bits due to SDK issues (?).  Some operations work; others fail with a WebAppsOperations failure.
This does not repro with the latest released bits: I am running into it on latest bits on my dev box only.
Actual Behavior
$ az appservice web deployment slot swap \
    -g my_rg \
    -n myunqiueapp \
    --slot staging \
    --target-slot production

results in
'WebAppsOperations' object has no attribute 'swap_slots_slot'
Traceback (most recent call last):
  File "c:\users\twitc\onedrive\projects\azure-cli\src\azure-cli\azure\cli\main.py", line 37, in main
    cmd_result = APPLICATION.execute(args)
  File "c:\users\twitc\onedrive\projects\azure-cli\src\azure-cli-core\azure\cli\core\application.py", line 157, in execute
    result = expanded_arg.func(params)
  File "c:\users\twitc\onedrive\projects\azure-cli\src\azure-cli-core\azure\cli\core\commands\__init__.py", line 343, in _execute_command
    raise ex
AttributeError: 'WebAppsOperations' object has no attribute 'swap_slots_slot'

Expected Behavior
The operation should work as it does with the latest released bits.

@yugang-msft, @derekbekoe, @tjprescott, @troydai, can one of you please take a look? :)

Seemingly related...
$ az appservice web deployment user set --user-name my_user_name

yields
'WebSiteManagementClient' object has no attribute 'provider'
Traceback (most recent call last):
  File "c:\users\twitc\onedrive\projects\azure-cli\src\azure-cli\azure\cli\main.py", line 37, in main
    cmd_result = APPLICATION.execute(args)
  File "c:\users\twitc\onedrive\projects\azure-cli\src\azure-cli-core\azure\cli\core\application.py", line 157, in execute
    result = expanded_arg.func(params)
  File "c:\users\twitc\onedrive\projects\azure-cli\src\azure-cli-core\azure\cli\core\commands\__init__.py", line 343, in _execute_command
    raise ex
AttributeError: 'WebSiteManagementClient' object has no attribute 'provider'

Looks like #2045 has some bad edits after SDK upgrade: I have fixed these two instances, but there may be more...


Unable to disable support for  rds , dccp , sctp ,  ticp protocol

I used lynis 3.0.8 it suggests me to disable support for rds , dccp , sctp , ticp  protocol if not  required though this installer script should have disabled these protocols. I am using linux-hardened kernel 5.17.15

@tommytran732 should i post lynis logs here. I don't know how to report log securely :(

You can email me or contact me on Matrix. The details are at https://tommytran.io/#contact

Should be blocked by default with this: https://github.com/TommyTran732/Arch-Setup-Script/blob/dee25eae388203f51641d774ec4287490deae1c7/install.sh#L359


Assume yes when installing deps on Raspberry Pi via apt-get

On a fresh install of Raspbian Stretch, the MagicMirror installer script silently hung waiting for my input.
Signed-off-by: David Galloway<EMAIL_ADDRESS>

Warnings

:warning:

Please include an updated CHANGELOG.md file.This way we can keep track of all the contributions.

  Generated by :no_entry_sign: dangerJS


test(sdk): temporary lower network buffer for testing

Fixes WB-NNNN
Fixes #NNNN
Description
What does the PR do?
Testing
How was this PR tested?
Checklist

[ ] Include reference to internal ticket "Fixes WB-NNNN" and/or GitHub issue "Fixes #NNNN" (if applicable)
[ ] Ensure PR title compliance with the conventional commits standards

@wandb/sdk-team reminder to remove this before release

@wandb/sdk-team added a corresponding item to the release checklist for 0.13.8


[Crash] Failed to load GLES library

This issue is related to chromedp/docker-headless-shell, I am adding it here since there is no way to report there.
@kenshaw The issue with swiftshader libraries is back again. It appears with chromium 98 (latest tag for now) they moved it back to swiftshader directory.
[0209/084001.334508:ERROR:egl_util.cc(74)] Failed to load GLES library: /usr/local/bin/swiftshader/libGLESv2.so: /usr/local/bin/swiftshader/libGLESv2.so: cannot open shared object file: No such file or directory
[0209/084001.338625:FATAL:viz_main_impl.cc(273)] Check failed: gl::GetGLImplementation() == gl::kGLImplementationDisabled (0 vs. 8)

Browser crashes when --use-gl=swiftshader and --in-process-gpu are in use.

According to https://github.com/chromium/chromium/commit/8c54b0b7e3e2f9c83bcf42e4ddc53415818442ac, legacy SwiftShader GL is deprecated, the --use-gl=swiftshader option was (or will be?) removed. The replacement option will be --use-gl=angle --use-angle=swiftshader. The support of the new option is the topic of chromedp/docker-headless-shell#18, so I'm going to mark this issue will be fixed by that PR too.


Fix nbgrader installation and configure correctly for nbgrader>=0.5.0

This pull request fixes the following issues:

Currently, nbgrader is installed to /tmp/src, therefore it is lost and stops working if the server is rebooted.
The nbgrader role installs from git (master branch), however all the config files seem to be generated with version 0.4.0 in mind. Here we adopt the new configuration scheme for nbgrader>=0.5.0.

Please note that I'm a newcomer to jupyterhub, so I expect feedback --- this surely is not a well-polished patch. For example, I have no idea on how to get nbgrader working with multiple graders in this new configuration scheme.

I'm fine with this update, but I don't have the right experience to confirm that it's all correct. I'd love to get an OK from @jhamrick or @ellisonbg .

@minrk Thanks for the review! @jhamrick Thanks for review and the pointers!
I am a little overwhelmed for the next few weeks, so I do not know if I will be able to implement the way @jhamrick proposed it. If anybody wants to take over this issue in the meantime, please feel free.

@thotypous thanks for the fixes, I ran into similar problem and using this open merge request resolved them. Although I was required to register the nbgrader plugin using
jupyter nbextension install --sys-prefix --py nbgrader --overwrite
jupyter nbextension enable --sys-prefix --py nbgrader
jupyter serverextension enable --sys-prefix --py nbgrader

There is only one problem and I'm not sure if it is a separate issue or belongs in this merge request. After creating assignments and releasing them to the exchange directory I was unable to fetch the assignments for the students. Do you have any suggestions to resolve this? There are no error messages or whatsoever so I'm a bit clueless here. I'm using pretty much the standard config as provided in hostname.example but with nbgrader set to true.
@thotypous I might be able to help out with incorporating the suggestions of @jhamrick although I'm not an expert in jupyterhub as well but would love to learn!

[Catching up on issues and PRs as I've been away for the last two months]
@boersmamarcel Did you fetch using the web interface, or on the command line? If in the web interface, in what way did it fail (e.g. can you post a screenshot)? And can you also check the javascript console for errors?

I have updated the nbgrader documentation to provide more examples of how to use it with JupyterHub if that helps with this PR: http://nbgrader.readthedocs.io/en/latest/configuration/jupyterhub_config.html


Support instructions that clobber all registers and have non-fixed uses

There are currently special cases for when an instruction uses a fixed register and clobbers it, but when an instruction uses an unconstrained register and clobbers all registers there is no special case and we get a TooManyLiveRegisters error. This can be avoided by adding an unnecessary fixed register constraint so that the first special case is hit, but one shouldn't have to constrain the register allocation in that way, regalloc2 should just handle this case.

My comment in #146 should probably have gone here; I think there's a way to do this more generally, by doing splits in a more general way (in the middle of insts) and leveraging overlap support.

The interesting thing with this issue is that it isn't limited to a single RegClass. If an instruction clobbers/Defs all registers in the Vector class, but has some Uses in the Integer class that are non-fixed, the error TooManyLiveRegisters is still raised. This is really unintuitive because the classes (in my mind) should be entirely disjoint and the constraints on one should not affect another. I confess I'm not familiar enough with the code base to try and tackle this yet though.


cmd/compile: C.malloc fails with -d=checkptr

$ cat malloc.go
package main

// #include <stdlib.h>
import "C"

func main() {
	println(C.malloc(1000))
}

$ go run -gcflags=all=-d=checkptr malloc.go
fatal error: runtime: C malloc failed

goroutine 1 [running]:
runtime.throw(0x47aea6, 0x18)
	/usr/local/google/home/mdempsky/wd/go/src/runtime/panic.go:774 +0x72 fp=0xc000082708 sp=0xc0000826d8 pc=0x426122
main._cgo_cmalloc(0x3e8, 0x0)
	_cgo_gotypes.go:55 +0x91 fp=0xc000082738 sp=0xc000082708 pc=0x4576a1
main._Cfunc__CMalloc(...)
	_cgo_gotypes.go:40
main.main()
	/tmp/malloc.go:7 +0x2a fp=0xc000082760 sp=0xc000082738 pc=0x4576da
...

Looks like checkptr instrumentation needs to be skipped for //go:cgo_unsafe_args functions.

Ah, it's because of CL 201781.
cgo depends on the ability to take the address of its parameters on the stack, and know that they'll all be contiguous there. But CL 201781 caused them to start being heap allocated.
Easy fix is to make //go:cgo_unsafe_args imply //go:nocheckptr so that this behavior is disabled.


Parallel blockwise processing

Parallel blockwise processing for:

[ ] Predictions
[ ] Post-processing (e.g. watershed)
[ ] Validation

Ideally implemented with Dask, Flow, or another community library.

Ideally this is done by a general purpose wrapper callable from the different parts within DaCapo (as described above). Bonus points for having that wrapper be an abstraction above modules implementing various schedulers (i.e. Dask, Daisy, Ray, etc.).

See https://github.com/GFleishman/cellpose/blob/distributed/cellpose/contrib/distributed_segmentation_alternative.py for Dask example

See https://github.com/janelia-cellmap/utils-share/blob/f23b86f11251cbeccd697d5a121c0c7748432693/rhoadesj/daisy/segment_blockwise.py#L104-L105 for example of current Daisy task implementation

Should be utilizing compute contexts, such as dacapo/compute_context/bsub.py

Make sure to add git+https://github.com/funkelab/funlib.segment.git to requirements


New Module: EarthAndMoon

Great work on your module; I love it.  But I also love the Moon Phases Module.  So I came up with an idea of how to combine them. Earth and Moon toggles between earth and moon at sunrise and sunset.  Please give it a try and let me know what you think!
There are sample config values in the code.
Joel

Thanks, but I also wrote a moon module some time ago called MMM-Lunartic. It's nothing special but it does give me satisfaction. I'm glad you liked MMM-Earth enough to use it. It was one of my very first modules and I still have it on my first mirror

Oh, this isn't a moon module, it's just a module that transitions between the earth and moon modules at sunrise and sunset.


Should default values for voxel size be removed?

I'm running through the cellfinder-napari guide and there's a section that says that selecting the voxel size is mandatory and no defaults are listed. Currently there are defaults set in the widget however:

Should we:

Remove the defaults in the widget, and force the user to choose a value?
Update the docs to list the default values, but still recommend the values are updated by the user?

Not sure what is correct, but this has historically served two purposes:

Providing an example of correct voxel sizes, without users needing to dig into the docs. A "nudge" in the right direction makes it obvious they are in microns etc.
Made life easier for the lab/institute that originally supported/funded the work (5x2x2 is what they typically acquire at).

Neither particularly strong reasons to keep it this way, but some context.


switch to large text embedding model

What are the relevant tickets?

Related to https://github.com/mitodl/hq/issues/6271
Description (What does it do?)
This PR switches us to using open ai's large embedding model (currently we are using small)
Additional Context
When this is deployed I will need to regenerate the embeddings.

will merge and coordinate on the release of this once https://github.com/mitodl/mit-learn/pull/1907 lands


Don't use @assert, and print some debugging info if C is not approximately equal to reference

Fixes #46
Also, if C !≈ reference, we print some info (the name of the library, as well as the values of M, K, and N) to help with debugging.

Feel free to merge when ready.


Sampling Scene Instances

Hi everyone,
I would like to create several scenarios in a scene, where there will be objects on the table in random initial positions. However, if I define both table and objects in the BDDL, the table has also random position in the room and has different 3D model each time.
I want to have single model and position for the table and random positions for objects. I assume, that this should be possible, based on the example here
How I can define this scenario in BDDL?
Is there some example code for such usecase?
Thank you

Hi - BDDL is not grounded in the physical scene, it is purely symbolic. So you can keep the objects constant at a conceptual level (one table, two chairs, etc.) but you can't control which specific table or two chairs since that becomes dependent on the (simulated) physical world.
You can control this by interfacing with the simulator itself, however! That can be found in the simulator codebase - the example you sent is actually from the iGibson docs.
The best way forward may be to directly edit pre-sampled scene files, but @ChengshuLi @cgokmen may be able to advise better.


Mention Matrix as an alternative to using webchat.freenode

Page in question: https://perl6.org/community/irc
I was reading this article and realized something. There are not many matrix users right now, and I see only 10 users on perl6 channel. However, it's a great way to make people stay.
The link will look like this: https://riot.im/app/#/room/#freenode_#perl6:matrix.org
And those who are using Riot through the browser will have to click one button to join the channel. Those who don't have an account will have to create it, but I think that by mentioning this we should only be focusing on those who already have it.
And those who use desktop or phone apps will have to click “Room directory” and type #perl6:freenode.org in there.
Assigning myself so that I won't forget about this issue. But please free to work on it.

With freenode dead, going to close this out.


ruamel.yaml upgrade to >0.15

upgrade version for new pypi release
update ruamel.yaml to >0.15. This is a major, interface breaking change on the part of ruamel. pypyr consumers are not affected, however.
add fileformatyaml.yaml example
.pytest_cache to gitignore
minor formatting change on new linting rules for = on a single line

admin override for PR from maintainer.


[HW] Christian Yamepi Tonag

Name: Christian Yamepi Tonag
Email<EMAIL_ADDRESS>Linkedin Profile: https://www.linkedin.com/in/yamepi/
Attach the homework screenshots below for both step II and step III:
<

I created a new thread by mistake. Actually Issues number 226 and 231 are always mine

This is a duplicate of https://github.com/datastaxdevs/workshop-intro-to-cassandra/issues/226


Move Operation to a separate header

This is the first step of #581. It makes the following changes

Move Operation to a new header file OperationBase.h
Make Operation non-copyable and refactor and/or delete all cases that tried to copy an operation instance

Luckily, nothing really copies operation instances so the changes needed to do this were straightforward.

@Mergifyio rebase


Alternate parameter set for when a modifier key is pressed

I'm trying to come up with a good way to define a parameter for when a modifier key (e.g. Option) is pressed. I'm thinking adding alternate=true to mark a line as an alternate to the previous one, matching NSMenuItems's alternate. What do you think?
Happy to implement this when we decided on the specifics.

Updated with a better solution.


Routeable engine instances should be destroyed

This change causes routeable engine instances and everything in their containers to be properly destroyed when an app is destroyed.
The routeless ones are also missing this feature, but I will file a separate issue for that, since I'm less clear on the right way to fix it.

Thank you!


Refactor Dirent.of_list

This may fix https://forums.docker.com/t/files-missing-inside-host-mounted-volume/16721. Could you write a test case that reproduces the behavio(u)r and demonstrates the fix?


example-api-integration

A very contrived example of how to write an API integration with HOF

This example might be nicer if it was a little less contrived. Maybe have a step that asks for a github username and then makes a call to https://api.github.com/users/:username/repos and then displays a list of repos on the next page.
It'd be nice if the README content were a bit more "tutorial-like" as well so it can be pulled into hof-guide.

@lennym agree

@lennym cheers for the comments

This is a really good tutorial.  I would like to use it to test the API integration but that can happen separately.  Other than some typos, it LGTM.

Thanks for the feedback @lennym and @sulthan-ahmed

👍


Implements ShouldQueue not sending Notifications

Laravel Version: 5.4.32
PHP Version: 7.0
Database Driver & Version: 5.7.9 - MySQL

Description:
Hi,
I'm implementing the Twilio notification channel to send sms notifications to my application users. Here is the problem:
The notification works perfect without the implements ShouldQueue
class orderRecieved extends Notification

As soon as I add it to the notification class it stop sending the SMS.
I've configured the queue.php to the database driver:
 'default' => env('QUEUE_DRIVER', 'database'),

 'database' => [
            'driver' => 'database',
            'table' => 'jobs',
            'queue' => 'default',
            'retry_after' => 90,
        ],

Steps To Reproduce:
I've created the jobs and failed_jobs table. I can see the job when I delay the notification but it seems like it doesn't trigger it.
Here is the notification code orderReceived:
<?php

namespace App\Notifications;

use App\Models\Patient;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use NotificationChannels\Twilio\TwilioChannel;
use NotificationChannels\Twilio\TwilioSmsMessage;

class orderRecieved extends Notification implements ShouldQueue {

    use Queueable;
    /**
     * @var Patient
     */
    private $user;

    /**
     * Create a new notification instance.
     *
     * @return void
     */
    public function __construct(Patient $user)
    {
        //
        $this->user = $user;
    }

    /**
     * Get the notification's delivery channels.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function via($notifiable)
    {
        return [TwilioChannel::class, 'mail'];
    }

    /**
     * @param $notifiable
     * @return mixed
     */
    public function toTwilio($notifiable)
    {
        return (new TwilioSmsMessage())
            ->content("Hi,\nVi har mottatt prøven(e) du har sendt til oss. Se vår nettside, www.lab1.no, for forventet svartid.\nMvh\nLab1 AS");
    }

    public function toMail($notifiable)
    {
        return (new MailMessage)
            ->line('The introduction to the notification.')
            ->action('Notification Action', 'https://laravel.com')
            ->line('Thank you for using our application!');
    }
}

Sending the notification:
$user = Patient::find($this->crud->entry->patient_id);
$when = Carbon::now()->addMinutes(1);
Notification::send($user, (new orderRecieved($user))->delay($when));

The mail Notification works perfect!
Any idea? Thank you for the help!!!

Can't replicate your issue.

Does it work for you?

Yes, queued sms notifications are sent, have a test Horizon app that sends queued notifications and it's working.

Are you using same TwilioChannel?

But we use Nexmo channel, looks to me an issue with NotificationChannels\Twilio\TwilioChannel, please report your issue there since it's not a built-in channel.


[balsa] Update comment for line folding tests.

Commit Message: [balsa] Update comment for line folding tests.
Additional Description: Obsolete line folding was enabled for BalsaParser at https://github.com/envoyproxy/envoy/pull/31168 but the comment did not get updated at that time.
Risk Level: low, test-only change
Testing: n/a test-only change
Docs Changes: n/a
Release Notes: n/a
Platform Specific Features: n/a

/assign @yanavlasov


422 error when making a new place - return user to page and show helpful error message

When a user creates a new page and gets a 422 error (which happened recently when one of hte place's polygons had fewer than four points) we showed them a 404 page, which was both inaccurate and not helpful to them. So for 422s let's return them to the place creation page and show them a helpful error message like we do for other errors.

This should be fixed now, at least for the error that led to this ticket


when multiple shots are loaded the re-cache current frame seems to not display the correct frame from the shot

When multiple shots are in the timeline, the call to cache current frame seems to display a frame from earlier in the timeline, although the correct frame is being cached

Fixed in the following commit, will be part of the next release :
(https://github.com/mteillet/PyVexr/commit/e97672cfbdb3c8399fd154b43cd3f183cee5a2dd)[url]


Non-explanatory error received when  trying to persist object with enum outside of Session package

Without @Property, we silently ignore the enum if it's not in the scanned packages. With @Property we throw an unhelpful exception.
Need to decide whether we want to consistently log a warning and be silent, or throw an exception (in both cases)

Fixing tests


Update Dependabot Supported Versions of Terraform

Code of Conduct

[X] I have read and agree to the GitHub Docs project's Code of Conduct

What article on docs.github.com is affected?
https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/about-dependabot-version-updates
What part(s) of the article would you like to see updated?
The supported version of terraform appear to be out of date, at the bottom of this table.
The line in GitHub is here.
I saw some merged PRs for dependabot that show newer versions of Terraform are supported.
Bump Terraform from 1.0.11 to 1.1.6
Bump Terraform from 1.0.16 to 1.2.0
Additional information
No response

@entscheidungsproblem Thanks so much for opening an issue! I'll triage this for the team to take a look :eyes:

@entscheidungsproblem 👋🏻 - thanks for opening this issue. I am checking with the Dependabot team and will update you when I hear back.

@entscheidungsproblem - I have checked with the team and we support <= v1.2.x
Thank you for bringing this inaccuracy to our attention ✨
Feel free, you or anyone else, to raise a PR with the updates for this.


ArcGIS Workflow Manager Web App

Hi guys,
Thanks for adding the GISServer-WorkflowManager.json config sample and adding support for Workflow Manager Server role. Really useful.
I am installing ArcGIS Workflow Manager on the same machine acting as a hosting server. Everything seems to go fine except that I still need to go to the Portal and configure the hosting server also with the role of Workflow Manager Server. This is a supported configuration of Workflow Manager and seems to work fine.
Questions:

Shouldn't the DSC PowerShell also enable the Workflow Manager Server role when installing the software on the same machine used as a hosting server?
Is there is a way to install ArcGIS Workflow Manager Web App as part of this config. This is a separate install to ArcGIS Workflow Manager Server.

Look forward to hear back from you.
Cheers,
Jose
Esri NZ

Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request

Module Version

3.0.0

Affected Resource(s)

ArcGIS_Server
ArcGIS_Portal

Configuration Files

# Copy-paste your DSC JSON configurations here - for large configs,
# please use a service like Dropbox and share a link to the ZIP file.

Expected Behavior

Actual Behavior

Steps to Reproduce

Important Factoids

References

Hi @dimesv,
1. Shouldn't the DSC PowerShell also enable the Workflow Manager Server role when installing the software on the same machine used as a hosting server?
This is a limitation of the ArcGIS Module. You will need to run the GISServer-WorkflowManager.json without defining the federation block in the json and manually set it if ran from the same machine as the hosting server.

Note: This will also be the case in the next release v3.3.0. But we can certainly make this as an enhancement request to be evaluated for a future release!

2. Is there is a way to install ArcGIS Workflow Manager Web App as part of this config. This is a separate install to ArcGIS Workflow Manager Server.
No, not in v3.2.0. However, we plan on supporting this in next release v3.3.0:
https://github.com/Esri/arcgis-powershell-dsc/issues/348#issuecomment-971189991
Thanks,
Cameron K.

Support for enabling WorkFlowManager Server role on the hosting server has been added in v3.3.1. Additionally support for installing ArcGIS WorkflowManager Web App was added in v3.3.0.


Having trouble with multiple custom fields of the same type in a single grid

So I've successfully implemented the plugin select2 into JsGrid to make use of its multiselect capabilities and I'm running into a little bit of a road block. I stole the prototype from one of your other jsfiddles, tabalinas, and adapted it to my uses, but when I try to use 2 "multiselect" custom fields as a filter, the items are being applied to both dropdowns. Here's a jsfiddle that might help:
http://jsfiddle.net/5zxj2rf7/72/
I'd like to think myself decent at javascript/jquery, but I feel like there might be something wrong here... or maybe  I'm just missing something. The only way I can work around this at the moment is declaring 2 prototypes that are exactly the same but with different names (ie. "multiselect" and "multiselect2".
Thanks!

Fiddle doesn't work.
We need to see how you're initializing and interacting with the Select2 fields. We have the same type of columns in our project and everything works fine.

Oh sorry try this one http://jsfiddle.net/5zxj2rf7/72/

The cause of your problem: the items array you're declaring in your field is "global" in the context of your select fields - both of your columns inherit the array from their parent, var MultiSelectField instead of instantiating a separate object for themselves. So when you add countries first and then people, they get merged together.
There are two possible solutions:

Change the class you're extending from Field to SelectField.

var MultiselectField = function(config) {
    jsGrid.SelectField.call(this, config);
};

MultiselectField.prototype = new jsGrid.SelectField({
  //configuration
});

Remove the items array from the field configuration

MultiselectField.prototype = new jsGrid.Field({

  items: [],
  //rest of your field conf
});

I went with #1 and it works great. I'd like to think I'm fairly decent at this, but man i just looked right past that.
Thanks for the help!


Convert PChem to use netCDF Fortran 90 interfaces

For some reason, GEOSgcm v10.14.1 doesn't run on macOS now. The issue seems to be with nf_open_par() when run within GEOS. Converting to the Fortran 90 netCDF interfaces seems to "fix" this (or maybe "avoid" the issue).

Tests need to be done to determine zero-diff-ness.

Testing on discover shows this to be zero-diff. Ran both MERRA2 GOCART as well as GOCART.data.


boards: sim: Normalize sim:vpnkit

Summary

This commit fixes the warning reported by the CI

Impact

None

Testing

Build only

sim:libcxxtest need update too.


Changes to StockTradingEnv Cause Hyperparameter Optimization Notebook to Fail

My notebook, FinRL_HyperparameterTuning_Optuna.ipynb, (in Tutorials/4-Optimization) is failing because of the changes recently made to the StockTradingEnv class, specifically the introduction of "initial_list" to env_stocktrading.py. After an initial failure, I created an initial list based on reading the new code, but it failed as well. See below.
This new code was introduced through the standard installation command I have been using since I first began working on my notebook:
!pip install git+https://github.com/AI4Finance-LLC/FinRL-Library.git
In the near term, is there a previous release of the FinRL library available that does not include the initial_list concept? If not, I need further instructions on using the initial_list.
Thanks. Please let me know if you need more information.
[I 2022-03-08 20:33:10,205] A new study created in memory with name: ddpg_study
Callback threshold 1e-05,             trial_number 5,             patience 15
{'buffer_size': 10000, 'learning_rate': 0.15271325981748027, 'batch_size': 64}
Using cuda device
[W 2022-03-08 20:33:22,933] Trial 0 failed because of the following error: TypeError("'float' object is not subscriptable")
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/optuna/study/_optimize.py", line 213, in _run_trial
    value_or_values = func(trial)
  File "[<ipython-input-21-0d1eff1ddb52>](https://12lizvrkplh-496ff2e9c6d22116-0-colab.googleusercontent.com/outputframe.html?vrz=colab-20220304-060046-RC00_432410246#)", line 26, in objective
    total_timesteps=total_timesteps)
  File "/usr/local/lib/python3.7/dist-packages/finrl/drl_agents/stablebaselines3/models.py", line 103, in train_model
    callback=TensorboardCallback(),
  File "/usr/local/lib/python3.7/dist-packages/stable_baselines3/ddpg/ddpg.py", line 139, in learn
    reset_num_timesteps=reset_num_timesteps,
  File "/usr/local/lib/python3.7/dist-packages/stable_baselines3/td3/td3.py", line 214, in learn
    reset_num_timesteps=reset_num_timesteps,
  File "/usr/local/lib/python3.7/dist-packages/stable_baselines3/common/off_policy_algorithm.py", line 361, in learn
    log_interval=log_interval,
  File "/usr/local/lib/python3.7/dist-packages/stable_baselines3/common/off_policy_algorithm.py", line 587, in collect_rollouts
    new_obs, rewards, dones, infos = env.step(actions)
  File "/usr/local/lib/python3.7/dist-packages/stable_baselines3/common/vec_env/base_vec_env.py", line 162, in step
    return self.step_wait()
  File "/usr/local/lib/python3.7/dist-packages/stable_baselines3/common/vec_env/dummy_vec_env.py", line 44, in step_wait
    self.actions[env_idx]
  File "[/usr/local/lib/python3.7/dist-packages/finrl/finrl_meta/env_stock_trading/env_stocktrading.py](https://12lizvrkplh-496ff2e9c6d22116-0-colab.googleusercontent.com/outputframe.html?vrz=colab-20220304-060046-RC00_432410246#)", line 298, in step
    actions[index] = self._sell_stock(index, actions[index]) * (-1)
  File "/usr/local/lib/python3.7/dist-packages/finrl/finrl_meta/env_stock_trading/env_stocktrading.py", line 149, in _sell_stock
    sell_num_shares = _do_sell_normal()
  File "/usr/local/lib/python3.7/dist-packages/finrl/finrl_meta/env_stock_trading/env_stocktrading.py", line 104, in _do_sell_normal
    * (1 - self.sell_cost_pct[index])
TypeError: 'float' object is not subscriptable
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-21-0d1eff1ddb52> in <module>()
     51                                    trial_number=lc_trial_number)
     52 #You can increase the n_trials for a better search space scanning
---> 53 study.optimize(objective, n_trials=n_trials,catch=(ValueError,),callbacks=[logging_callback])

15 frames
/usr/local/lib/python3.7/dist-packages/finrl/finrl_meta/env_stock_trading/env_stocktrading.py in _do_sell_normal()
    102                         self.state[index + 1]
    103                         * sell_num_shares
--> 104                         * (1 - self.sell_cost_pct[index])
    105                     )
    106                     # update balance

TypeError: 'float' object is not subscriptable

In your env_kwargs, instead of initial_amount, pass initial_list because inside the init method initial amount is set to the first value only.
What changes have you done?

Below is the information I shared with Athe-kunal yesterday. I tested both a initial_list with only dollar amount and an extended list with both cash and numbers of shares for each of the 29 stocks in the portfolio. Both failed.
The attached file provides details.
Initial_List_Failures.txt

Did you fixed the problem ? I have same

Have you fixed the error ? I have same

Did you correct the error? I have the same

Astarag,
Thanks for your response, to which I am replying in this email, which came directly to me, not via Slack. Let me know if you want me to also reply on Slack.
I have tried two approaches using initial list, both of which have failed:
Only a dollar amount. Thus, initial_list[0] holds this value, consistent with the new code.
Dollar amount followed by entries for each stock in portfolio, for a total length of 30
Here is a code snippet:
stock_dimension=29
initial_amt = 1000000
#Case (1)
initial_list = [initial_amt]
#Case(2)
initial_shares = [10 for _ in range(stock_dimension)]
initial_list.extend(initial_shares)
I will re-run the two cases and share error information with you.
Thanks.
David L. Wilt
3272 Bayou Road
Longboat Key FL 34228
@.***
540-420-0844
From: Astarag Mohapatra @.>
Reply-To: AI4Finance-Foundation/FinRL @.>
Date: Wednesday, March 9, 2022 at 7:46 AM
To: AI4Finance-Foundation/FinRL @.>
Cc: DLWCMD @.>, Author @.***>
Subject: Re: [AI4Finance-Foundation/FinRL] Changes to StockTradingEnv Cause Hyperparameter Optimization Notebook to Fail (Issue #506)
In your env_kwargs, instead of initial_amount, pass initial_list because inside the init method initial amount is set to the first value only.
What changes have you done?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you authored the thread.Message ID: @.***>

It is the hyperparameter that matters. When I use different target_policy_noise and gamma, the reward changed


[zh-cn] updated network-plugins.md

Updated by following the upstream en version.
content/zh-cn/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins.md

Preview: https://deploy-preview-35661--kubernetes-io-main-staging.netlify.app/zh-cn/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/

/approve


cmake config

I'm still creating a FreeBSD port, and it would be great to have a cmake config for cpr in order to do stuff like find_package(cpr).
Thank you very much in advance.

I don't know if it's what you want ?
I found these 2 :
https://github.com/whoshuu/cpr/blob/master/cpr-config.cmake
https://github.com/Microsoft/vcpkg/pull/3185/files#diff-c3504c47965a68cfb1adf265ce8babfe

Yup, looks like what I want.

Doesn't seem to build with that config. Am I missing something? This is what cmake says:
-- The C compiler identification is Clang 6.0.0
-- The CXX compiler identification is Clang 6.0.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Could NOT find CPR (missing: CPR_INCLUDE_DIR)
-- Configuring done
-- Generating done
-- Build files have been written to: /home/che/git/qfr/api/build

Ok, I modified the cmake config a bit according to the patch you provided, still no luck yet. Now it requires curl to be a dependency (what, though valid), and when found, gives 405 on a POST request.

The exact same program, however, compiles and runs flawlessly when I'm using the provided receipt (the one in README.md)

Are you sure cpr-config.cmake found cpr.h https://github.com/whoshuu/cpr/blob/master/cpr-config.cmake#L13
It seem you need to add cpr include in your path.
For the second config file, you're right it was design to work with vcpkg and use external curl instead of the submodule.
At this time, I use these two methods to include CPR in a project:

add CPR as submodule and add these lines in your CMakeLists:

add_subdirectory("third-party/cpr")
target_link_libraries(main ${CPR_LIBRARIES})
include_directories(${CPR_INCLUDE_DIRS})

use vcpkg to install cpr and add these lines in your CMakeLists

find_path(CPR_INCLUDE_DIR cpr.h)
find_library(CPR_LIBRARY cpr)
target_link_libraries(main ${CPR_LIBRARIES})
include_directories(${CPR_INCLUDE_DIRS})

It seem there is an issue with cpr installation see arthur-tacca's comment

Thank you very much for your kind comments. The point is, when I add cpr as a submodule and use add_subdirectory, everything works flawlessly, but as soon as I try using the "system-wide" installation I made, it only makes a GET request properly. I also use system curl in both cases.

Moreover, the one I built manually (lib/libcpr.a) has a different checksum from the one installed system-wide (/usr/local/lib/libcpr.a):
[15:09:15] 0 [che@xeon ~/git/cpr/build]% sha256 lib/libcpr.a
SHA256 (lib/libcpr.a) = 88682e890a56e071c6aa2b45009f6cbd1f2d6c37704e60c5792783baae470deb
[15:09:19] 0 [che@xeon ~/git/cpr/build]% sha256 /usr/local/lib/libcpr.a
SHA256 (/usr/local/lib/libcpr.a) = 68d86a88b7781e98e1739a36b2a0590405d78ab672f9c56004674eeb33aa591a
[15:09:22] 0 [che@xeon ~/git/cpr/build]% file lib/libcpr.a
lib/libcpr.a: current ar archive
[15:09:32] 0 [che@xeon ~/git/cpr/build]% file /usr/local/lib/libcpr.a
/usr/local/lib/libcpr.a: current ar archive
[15:09:42] 0 [che@xeon ~/git/cpr/build]% ls -l /usr/local/lib/libcpr.a
-rw-r--r--  1 root  wheel  195442 17 июля  04:04 /usr/local/lib/libcpr.a
[15:10:03] 0 [che@xeon ~/git/cpr/build]% ls -l lib/libcpr.a
-rw-r--r--  1 che  che  416560 17 июля  15:09 lib/libcpr.a```

I don't think checksum will mean usefull information. If there is a small difference (version, options, etc ...) it will mismatch.
what is your error when you try POST request ?

Ah, I see what my problem with checksum may be! I'm using a tag in the port while using the latest master commit in the manual build. So the checksum may differ.
My error is 405.

It is. Again: when I compile using cpr as a submodule, the exact same request goes flawlessly fine.

I mean, does http://httpbin.org/post accept POST? Does it? It does, doesn't it?

This program:
#include <cpr/cpr.h>
#include <iostream>

using std::cout;
using std::endl;

int main(int argc, char** argv) {
        // auto r = cpr::Get(cpr::Url{"https://api.github.com/repos/whoshuu/cpr/contributors"},
        //                   cpr::Authentication{"part1zano", "Aighath7"},
        //                   cpr::Parameters{{"anon", "true"}, {"key", "value"}});
        auto r = cpr::Post(cpr::Url("http://httpbin.org/post"), cpr::Parameters{{"you", "suck"}, {"fuck", "you"}});
        cout << r.status_code << endl;                  // 200
        cout << r.header["content-type"] << endl;       // application/json; charset=utf-8
        cout << r.text << endl;                         // JSON text string
}```

returns this:
```% ./cpr-test
405
text/html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>405 Method Not Allowed</title>
<h1>Method Not Allowed</h1>
<p>The method is not allowed for the requested URL.</p>```

if you post the request with curl command line ?
curl -d '{"key1":"value1", "key2":"value2"}' -H "Content-Type: application/json" -X POST http://httpbin.org/post
does it works ?

It does:
% curl -d '{"key1":"value1", "key2":"value2"}' -H "Content-Type: application/json" -X POST http://httpbi
n.org/post
{"args":{},"data":"{\"key1\":\"value1\", \"key2\":\"value2\"}","files":{},"form":{},"headers":{"Accept":"*/*","Connection":"close","Content-Length":"34","Content-Type":"application/json","Host":"httpbin.org","User-Agent":"curl/7.60.0"},"json":{"key1":"value1","key2":"value2"},"origin":"<IP_ADDRESS>","url":"http://httpbin.org/post"}

As I think it's more an issue with curl than cpr can you try with libcurl directly.
Here a example to post request with libcurl: https://curl.haxx.se/libcurl/c/post-callback.html
you can copy/past this example and change url.

It's more of an issue with the cmake config. Again: I use system curl in both cases. In one case, everything works while in the remaining one I get a 405.

I took the example you mentioned, and here's what it returned:
% ./libcurl-post
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Connected to httpbin.org (<IP_ADDRESS>) port 80 (#0)
> POST /post HTTP/1.1
Host: httpbin.org
Accept: */*
Content-Length: 424
Content-Type: application/x-www-form-urlencoded

* We are completely uploaded and fine
< HTTP/1.1 200 OK
< Connection: keep-alive
< Server: gunicorn/19.8.1
< Date: Wed, 18 Jul 2018 11:47:05 GMT
< Content-Type: application/json
< Content-Length: 684
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Credentials: true
< Via: 1.1 vegur
<
{"args":{},"data":"","files":{},"form":{"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vel urna neque. Ut quis leo metus. Quisque eleifend, ex at laoreet rhoncus, odio ipsum semper metus, at tempus ante urna in mauris. Suspendisse ornare tempor venenatis. Ut dui neque, pellentesque a varius eget, mattis vitae ligula. Fusce ut pharetra est. Ut ullamcorper mi ac sollicitudin semper. Praesent sit amet tellus varius, posuere nulla non, rhoncus ipsum.":""},"headers":{"Accept":"*/*","Connection":"close","Content-Length":"424","Content-Type":"application/x-www-form-urlencoded","Host":"httpbin.org"},"json":null,"origin":"<IP_ADDRESS>","url":"http://httpbin.org/post"}
* Connection #0 to host httpbin.org left intact

As you can observe, this is NOT a problem with curl.

it's strange because cpr is a really thin layer on top of libcurl. If it work with libcurl it has to work with cpr.

Sorry, are you even listening? What I'm talking about is a problem with cmake configs. How on earth can it be a problem with cpr itself?

@part1zano Are you sure both the working and non-working examples are loading the same curl dll? Try using Process Monitor to check.

Are you sure both the working and non working examples are using the same curl .so? Try running them under ltrace (or possible strace) to see.

you can also use ldd to check which *.so is used by your executable

And as far as FreeBSD's package manager says, it's been installed by the curl package:
/usr/local/lib/libcurl.so.4.5.0 was installed by package curl-7.60.0

Just in case someone notices it's .4 and not .4.5.0:
% ls -l /usr/local/lib/libcurl.so.4
lrwxr-xr-x  1 root  wheel  16 26 июня  04:13 /usr/local/lib/libcurl.so.4 -> libcurl.so.4.5.0

It was actually a problem with cpr. See, in Session::Post they somehow used CURLOPT_HTTPGET instead of CURLOPT_HTTPPOST, so it was GET instead of POST with applicable consequences. Made a patch in the port itself, gotta prepare a proper cmake config and submit!

In case anyone wonders, here's my patch to the config for cmake:
--- cpr-config.cmake.orig       2018-07-18 20:06:59 UTC
+++ cpr-config.cmake
@@ -11,11 +11,15 @@
 #                     file that uses this interface

 find_path(CPR_INCLUDE_DIR
-          NAMES cpr.h)
+          NAMES cpr/cpr.h
+                 PATHS
+                 /usr/local/include)

 find_library(CPR_LIBRARY
-             NAMES cpr
-             HINTS ${CPR_LIBRARY_ROOT})
+                        NAMES cpr
+                        PATHS
+                        /usr/local/lib
+                        )

 include(FindPackageHandleStandardArgs)
 find_package_handle_standard_args(CPR REQUIRED_VARS CPR_LIBRARY CPR_INCLUDE_DIR)

Please note: you might want to add your own paths to includes and libs (like /usr/lib or /usr/include). I'm not interested in that, sorry not sorry.


Low priority: show font names in their own font

It would be nice to show each of the available fonts in their own typeface instead of the currently selected one so you don't have to go one-by-one to see what they look like.

It's possible, but there's a lot of work to do first.
Here's how it would look. Note that a lot of the fonts look the same because they are mostly san serif fonts  for different languages (usually based on Segoe).

The problem, currently, is that feature only works in MSHTML 11 mode. I'm currently running in 8 mode because any mode higher, using VBScript, is unstable with the amount and nature of the code involved. I have rewritten all of the code in JScript (currently available as a beta) and that appears to have fixed the stability problem so that I can now use 11 mode, but it's still set to 8 mode because I would have to completely rewrite the table code to work in 11 mode, otherwise the Columns page is all messed up like this:

I spent a few frustrating hours on this and couldn't get the table contents aligned correctly in 11 mode. The static header is fine. It's just the dynamically generated content that ignores the widths. For now I'm closing this as not planned as I have other projects to work on. Sorry.

@LesFerch No worries, it was a small thing anyway. Thanks for taking a look.


BTreeSet and HashSet cause AddressSanitizer errors

#[export_name="rust_fuzzer_test_input"]
pub extern "C" fn go(data: &[u8]) {
    let mut bt: BTreeSet<u64> = BTreeSet::new();
    bt.insert(0);
}

#[export_name="rust_fuzzer_test_input"]
pub extern "C" fn go(data: &[u8]) {
    let mut bt: HashSet<u64> = HashSet::new();
    bt.insert(0);
}

Both of these functions cause a AddressSanitizer error for me.  Here is the one for BTreeSet:
INFO: Seed: 765651658
INFO: Loaded 0 modules (0 guards):
Loading corpus dir: corpus
INFO: -max_len is not provided, using 64
#0	READ units: 20
=================================================================
==15413==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7fff8e0a6f10 at pc 0x55a091206598 bp 0x7fff8e0a60d0 sp 0x7fff8e0a60c8
ACCESS of size 0 at 0x7fff8e0a6f10 thread T0
    #0 0x55a091206597  (/home/brain/src/roaring-rs/fuzz/target/x86_64-unknown-linux-gnu/debug/fuzzer_script_1+0xf597)
    #1 0x55a0912374f9  (/home/brain/src/roaring-rs/fuzz/target/x86_64-unknown-linux-gnu/debug/fuzzer_script_1+0x404f9)
    #2 0x55a091229463  (/home/brain/src/roaring-rs/fuzz/target/x86_64-unknown-linux-gnu/debug/fuzzer_script_1+0x32463)
    #3 0x55a091229503  (/home/brain/src/roaring-rs/fuzz/target/x86_64-unknown-linux-gnu/debug/fuzzer_script_1+0x32503)
    #4 0x55a09123e945  (/home/brain/src/roaring-rs/fuzz/target/x86_64-unknown-linux-gnu/debug/fuzzer_script_1+0x47945)
    #5 0x55a09124256a  (/home/brain/src/roaring-rs/fuzz/target/x86_64-unknown-linux-gnu/debug/fuzzer_script_1+0x4b56a)
    #6 0x55a09124060f  (/home/brain/src/roaring-rs/fuzz/target/x86_64-unknown-linux-gnu/debug/fuzzer_script_1+0x4960f)
    #7 0x55a09137970b  (/home/brain/src/roaring-rs/fuzz/target/x86_64-unknown-linux-gnu/debug/fuzzer_script_1+0x18270b)

Address 0x7fff8e0a6f10 is located in stack of thread T0 at offset 48 in frame
    #0 0x55a091236f0f  (/home/brain/src/roaring-rs/fuzz/target/x86_64-unknown-linux-gnu/debug/fuzzer_script_1+0x3ff0f)

  This frame has 5 object(s):
    [32, 48) '_11' <== Memory access at offset 48 is inside this variable
    [64, 136) 'iter'
    [176, 200) '_6'
    [240, 312) '_5'
    [352, 424) '_4'
HINT: this may be a false positive if your program uses some custom stack unwind mechanism or swapcontext
      (longjmp and C++ exceptions *are* supported)
SUMMARY: AddressSanitizer: stack-buffer-overflow (/home/brain/src/roaring-rs/fuzz/target/x86_64-unknown-linux-gnu/debug/fuzzer_script_1+0xf597)
Shadow bytes around the buggy address:
  0x100071c0cd90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x100071c0cda0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x100071c0cdb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x100071c0cdc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x100071c0cdd0: 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1
=>0x100071c0cde0: 00 00[f2]f2 00 00 00 00 00 00 00 00 00 f2 f2 f2
  0x100071c0cdf0: f2 f2 00 00 00 f2 f2 f2 f2 f2 00 00 00 00 00 00
  0x100071c0ce00: 00 00 00 f2 f2 f2 f2 f2 00 00 00 00 00 00 00 00
  0x100071c0ce10: 00 f3 f3 f3 f3 f3 f3 f3 00 00 00 00 00 00 00 00
  0x100071c0ce20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x100071c0ce30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Heap right redzone:      fb
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack partial redzone:   f4
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
==15413==ABORTING
MS: 0 ; base unit:<PHONE_NUMBER>000000000000000000000000000000

artifact_prefix='artifacts/'; Test unit written to artifacts/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709
Base64:

Can other people reproduce this?  I think this is because rust does not support AddressSanitizer.  Can it be disabled for cargo-fuzz?  There don't appear to be any flags to set to work around it.

That's https://github.com/rust-lang/rust/issues/39882. I also tried to make ASAN ignore specific crates but wasn't able to figure it out (https://github.com/rust-fuzz/cargo-fuzz/issues/3#issuecomment-284177914).

Rust does support ASan. But yeah, ASan and friends are written for C, which don't have things like ZSTs, so these things tend to be buggy when it comes to rust-specific stuff. But they're LLVM tools, so these are bugs in LLVM (anything that can be expressed via LLVM IR should be an okay input to a sanitizer), not bugs in Rust.

Might be fixed upstream, needs triage.

The upstream rust bug for this is fixed, can we close?


Null Exception - ClientNetworkStatus.cs

After running a subscription for a long period of time, I am receiving a null exception that isn't handled in the ParseCheckSocketConnectException<T> method.  Specifically the line:
PubnubClientError error = new PubnubClientError(statusCode, PubnubErrorSeverity.
Warn, true, ex.Message, ex, PubnubMessageSource.Client, null, null, errorDescription,
string.Join(",", channels), string.Join(",", channelGroups));

The null exception is stating that "channels" cannot be null.  At that point the exception will stop the program execution.  Looking for a solution that would at a minimum throw a disconnect message back to be handled via the subscription implementation call back.

Thanks for reporting this. We are working on resolving this and will provide an update when available.

I am unable to reproduce this even when running long subscriptions. Is there more information you can provide me? I have a hunch this has been related to the other issues but as I can't reproduce this error. #16 and #15  I was able to reproduce anywhere from 8-12hrs into a long running a subscription. After running a subscription for over 48hrs, with new fixes, I was not getting any errors including this one.
The console app uses .NET 4.0 and sent a sms out every 15 minutes over those 48hrs. This included handling the notifications received as well.

@goetzcj Since #15 and #16 have been resolved which may have been related to this and we haven't been able to reproduce this issue, I'm going to close this for now. If it comes up again, please post here.


fix(@angular/pwa): typo and display standalone in manifest.json

In manifest.json:

fixes a typo in scope property
changes display to standalone instead of browser (otherwise it's just a normal website, not a PWA)

I'm also concerned about the manifest being in assets, as the default ngsw-config.json tells to lazy load assets, while the manifest.json should certainly be prefetched (but as it should be load from start by the browser, maybe it's OK).
@filipesilva

It would be "most correct" to cache the manifest.json in prefetch mode, but caching it lazily is okay - it will be loaded by the browser, so it will be cached eventually. And I believe with PWA install to home screen, the browser saves the data in the manifest independently (it needs to e.g. remember the splash screen icon and home URLs)

For now, I would prefer to leave the default display value as browser. It is the default value and will be the assumed default for most users.

Could you explain why you assume it will be the default for most users? The point of this package is to have a PWA, but with display: browser you just have a classic website with a shortcut, so I don't see the point.


fix(failure using ipv6 in tests): fix controller addresses resolution

Description
The previous shell command to extract the ipv6 removed all the '[' regardless.

The new command removes only the surrounding '[', preserving the [ for the ipv6.

Fixes: #582
The shell command was copied from the workflows.
https://github.com/SimoneDutto/terraform-provider-juju/blob/22b76d0d0f67fc22df41a424c0fc0539119320bd/.github/workflows/test_integration.yml#L150
Type of change

fix using ipv6 in tests

A good start, the docs do need updating.
This change though has no impact on how the actual tests are run in the GitHub jobs. Update the workflow files as well as https://github.com/juju/terraform-provider-juju/wiki/Developing.

the github actions already have the right bash command for ipv6 compatibility. So i think this issue with ipv6 was local because people were using the wrong command from the docs/using the makefile.
Or do you have any recent examples of this issue in the ci?

A good start, the docs do need updating.
This change though has no impact on how the actual tests are run in the GitHub jobs. Update the workflow files as well as https://github.com/juju/terraform-provider-juju/wiki/Developing.

updated the developer wiki as well.


Consider adding a feature that allows semantic coloring for the current split

:wave:
I'm working through delta split times changing color when behind/ahead of PB.
I'm using ColumnSettings to create a +/- column to show the delta in a column next to the time and I'm expecting to get back a SemanticColor when the column state updates.
However, it seems to only be returning SemanticColor::Default, assuming its being nullified by is_live to only show Default in the following code:
https://github.com/LiveSplit/livesplit-core/blob/master/src/component/splits/column.rs#L273
I'd love to know if I'm approaching this incorrectly,if you need more information, or if I'm on to something!
(It's very early in the morning, so I am probably just missing something)
Thanks!

This is actually mostly a missing feature that I may want to add. If you look at the normal LiveSplit (or LiveSplit One), then you'll notice that it always uses the default text color for live deltas, as red / green on whatever background color for the current split is chosen, does not look great.

Doh!
It's been so long since I've actually been doing with livesplit that i totally forgot how it works :) ty!


Add space members (followers) to about page

@samuveth Do you mean just a counter here? Or the whole list of followers?

There should be an option to view the whole list of followers


ReplyAll button doesn't work

From @nzola:

Reply to all button does not reply to all, but only to the sender. Same as simply reply button.

Relevant section of the code: https://github.com/ascoderu/lokole/blob/4468eda976437da16b38cb81cad7408421402c40/opwen_email_client/webapp/forms/email.py#L165-L180

Took a quick look at this issue, I suspect the bug results from the inbox logic vs. the replyAll logic. If you include multiple emails in the To: field, i.e.
to<EMAIL_ADDRESS><EMAIL_ADDRESS>the receiving inbox appears to strip the additional addresses from the to field.

@nzola I have a fix for this which copies all the people on TO and CC from the email to the CC of the reply email when "reply all" is used. Hope that behavior works for you.


Workbook class constness

Is there any reason the following methods can’t be const?
XLSheet sheet(uint16_t index);
XLSheet sheet(const std::string& sheetName);
XLWorksheet worksheet(const std::string& sheetName);
XLChartsheet chartsheet(const std::string& sheetName);
i.e
XLSheet sheet(uint16_t index) const;
XLSheet sheet(const std::string& sheetName) const;
XLWorksheet worksheet(const std::string& sheetName) const;
XLChartsheet chartsheet(const std::string& sheetName) const;
I've changed them, hoping not to run into any issues

Can't be const as querying the sheet throws an exception.
I guess that's one plus of having an interface, the signatures don't change.


[FLINK-4310] [build] Selectively run API compatibility checks in API projects.

This moves the API compatibility checks into the API projects that use stability annotations.
Previously, every project ran the tests, regardless of whether it contained public API classes or not.
API compatibility checks are done in

flink-metrics-core
flink-core
flink-java
flink-scala
flink-streaming-scala
flink-streaming-java
flink-hadoop-compatibility

Those were the projects where I found the @Public annotation being used.

The added benefit is that this increases build stability on Travis, because it relies on fewer flink-specific JARs to be downloaded and cached.

flink-metrics-core does not contain any annotations, so the plugin will never fail here, right?

True, the flink-metrics-core would not need it right now. I added it because it is somehow part of the public API.
We would need to re-add the annotations dependency - for that, let's check with the users that requested the "project independence" if they see any problem with that.

Changes look good and make sense. +1 to merge.


[PROF-10656] Add crash_address to crashtracker reports

What does this PR do?
While investigating a customer crash, I found that I dearly missed having the address that caused a segfault.
E.g. given this code:
  char *potato = 0x1234;
  fprintf(stderr, "Value of potato is %c\n", *potato);

...I want to know that the crash was triggered when 0x1234 was dereferenced, as this information may be key in debugging the issue.
We already get this information in our signal handler, so this PR just adds the needed piping to report it to datadog.
Motivation:
Improve debugging of crashes reported by crashtracker.
Additional Notes:
I added the crash_address as a tag, similar to siginfo and signame. We may want to send it as some other thing; no strong opinions there.
How to test the change?
I was able to test this with the Ruby profiler. I've been trying to update the tests but there's still some failing and I'm kinda struggling with that. Hopefully someone with a bit more rust-fu than me can help out there.
Here's a submitted crash report with a crash_address tag: https://app.datadoghq.com/dashboard/uwt-n4k-y9a?fromUser=true&refresh_mode=sliding&tpl_var_org_id[0]=197728&tpl_var_runtime[0]=ruby&from_ts=1727956296556&to_ts=1727959896556&live=true

Codecov Report
Attention: Patch coverage is 12.19512% with 36 lines in your changes missing coverage. Please review.

Project coverage is 71.82%. Comparing base (6e7d1e6) to head (ba89ec0).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #663   +/-   ##
=======================================
  Coverage   71.82%   71.82%
=======================================
  Files         271      271
  Lines       40869    40900   +31
=======================================
+ Hits        29354    29377   +23
- Misses      11515    11523    +8

Components
Coverage Δ

crashtracker
20.29% <12.19%> (-0.12%)
:arrow_down:

crashtracker-ffi
8.97% <0.00%> (-0.10%)
:arrow_down:

datadog-alloc
98.73% <ø> (ø)

data-pipeline
91.60% <ø> (ø)

data-pipeline-ffi
0.00% <ø> (ø)

ddcommon
82.73% <ø> (ø)

ddcommon-ffi
69.12% <ø> (ø)

ddtelemetry
59.10% <ø> (ø)

ddtelemetry-ffi
22.13% <ø> (ø)

dogstatsd
90.90% <ø> (ø)

dogstatsd-client
79.77% <ø> (ø)

ipc
82.79% <ø> (+0.10%)
:arrow_up:

profiling
84.26% <ø> (ø)

profiling-ffi
77.42% <ø> (ø)

serverless
0.00% <ø> (ø)

sidecar
36.07% <ø> (ø)

sidecar-ffi
0.00% <ø> (ø)

spawn-worker
50.36% <ø> (ø)

tinybytes
94.77% <ø> (ø)

trace-mini-agent
72.66% <ø> (ø)

trace-normalization
98.25% <ø> (ø)

trace-obfuscation
95.73% <ø> (ø)

trace-protobuf
77.67% <ø> (ø)

trace-utils
93.36% <ø> (ø)

Hmm... there's still two tests that hang and time out in CI:
test test_crash_tracking_bin_debug_stdin ... FAILED
test test_crash_tracking_bin_debug_unix_socket ... FAILED

I have no idea how to debug these tests :/ . Anyone has any hints on how to find what's failing?

Renamed crash_address to faulting_address in https://github.com/DataDog/libdatadog/pull/663/commits/0d4bb98e732dce251a1d06a1ba5fa35b116fff4a . There's still 2 tests failing, I'm still looking into them.

Unfortunately I wasn't able yet to figure out what's up with the failing tests... I've ping'd @danielsn to see if he has any idea on how to improve there.

Yeah, looks like an issue on amd64 alpine

Unfortunately I wasn't able yet to figure out what's up with the failing tests... I've ping'd @danielsn to see if he has any idea on how to fix those.

FWIW I tried those tests on an x86_64 Alpine image on the commit this PR is based on (67d4f7a) and main (a76c5ad as of this writing) and they still fail. So... I don't know why they fail, but I don't think this PR breaks them?

FWIW I tried those tests locally on an x86_64 Alpine image on the commit this PR is based on (https://github.com/DataDog/libdatadog/commit/67d4f7a19afd7f7301423e400008d42cc9284c04) and main (https://github.com/DataDog/libdatadog/commit/a76c5ade40c8ac83418fc7ed6bb2f319a874b327 as of this writing) and they still fail. If I comment out these lines they pass. Strangely though, the tests seem to be passing on main and a https://github.com/DataDog/libdatadog/pull/680. So... I don't know why they fail, but I don't think this PR breaks them?

Thanks for giving it a stab! I wonder if the issue is still related to some of the test assertions, but I've found these tests are a bit weird... when they fail they don't give a lot of info; some of the fixes in this PR were kinda trial-and-error. :eyes:
(I've also merged main into this PR, to make sure it doesn't fall behind)

I'm... still stuck on this one. I suspect it may be a real issue; specifically, I see the issue going away if I replace
        if !sig_info.is_null() && (signum == libc::SIGSEGV || signum == libc::SIGBUS) {
            unsafe { Some((*sig_info).si_addr() as usize) }
        }

with something else that does not touch the sig_info. I suspect it may have to do something with chaining the signal handlers. :(


Extra add-on: Make sidebar fixed

The idea for a fixed sidebar is that it gives users a quicker way to submit posts and also see the rules, other info, and stuff.
You could use something like this (but please don’t; you can’t scroll on the sidebar with this of a hack):

I’ve made it work before, I can’t remember what I exactly did though.
.side {
    margin: 33px 0 0;
    width: 300px;
    border-left: 1px solid #eaeaea;
    -ms-flex-order: 2;
    order: 2;
    position: fixed;
    overflow-y: scroll;
    top: 6px;
    right: 0;
    z-index: 9999999;
}

This is an interesting idea. I've considered doing odd things to the sidebar before, sticky isn't a bad plan. The easiest way I can think is to make the content and side fixed scrollable containers, so the page doesn't overflow, the two elements do. But that gets tacky fast. I'll look into it.

@12px Tacky? How so? I think that would work fine.

Mainly it would break the header image option and a few other things.
On Tue, Aug 8, 2017, 9:16 AM Mantas<EMAIL_ADDRESS>wrote:

@12px https://github.com/12px Tacky? How so? I think that would work
fine.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/12px/eddited/issues/2#issuecomment-320969323, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AX7s9z8hciE46RNhr3fnsFJq90ZioLJuks5sWG2jgaJpZM4OwuO7
.

Hmm. You could squish everything–like the footer–into that little space, plus I think you could just make the sidebar an extra. With the sidebar code you can fix any quirks that could come of it. It’s most definitely an interesting option.


Fix emapTry test

[Current coverage][cc-pull] is 80.49%

Merging [#311][cc-pull] into [master][cc-base-branch] will increase coverage by 0.05%

[][cc-pull]

Powered by Codecov. Last updated by [fac9619...ecc6b09][cc-compare]
[cc-base-branch]: https://codecov.io/gh/travisbrown/circe/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/travisbrown/circe/compare/fac961972f9fe88d6d6702558c1b34dc8471600d...ecc6b09afe326b22f0dd09cbe0f0baa697dcaca7
[cc-pull]: https://codecov.io/gh/travisbrown/circe/pull/311?src=pr


Auto-update rate of symbols

Hi everyone!
I'm reading out 10 symbols in a loop with 10Hz using symbol.read() but I'm getting the same error as in #35.
I just read that it would be enough to use symbol.value() instead of read() if I set auto_update=True. Now I am wondering at what rate the symbol is updated automatically if I set that property and if it is possible to change the rate.

The default settings for auto update=True will update the value if it changes on any plc cycle, therefore there is no need to update the rate, it will be as fast as your plc cycle.
If you wish to receive notifications cyclically at a set rate you have to attach the notification manually and can set the notification period in ms and the notification attribute to server cycle.
https://pyads.readthedocs.io/en/latest/documentation/symbols.html#device-notifications
https://pyads.readthedocs.io/en/latest/documentation/connection.html#device-notifications
Can I please ask in the future that all questions are directed to Stack overflow using the tags PLC, Twincat and Twincat-ads. There is a small community there that will answer your questions. This is to just keep the Issues log as pyads issues. Thank you.
If you could kindly close this issue that would be great, thanks.

Thanks a lot for the fast reply, I was not aware of the community but will post there in the future.

Thanks for that idea, I will keep that in mind. For now reading them in roughly at PLC cycle is enough for my means but I will come back to it if the amount of read requests increase in the future.


"Child process exited with code 126" error

When I ran:
const w2v = require( 'word2vec' );
const corpusFilePath = 'cleared_words.txt';
w2v.word2vec(corpusFilePath, "vectors.txt", { size: 300 }, () => {
console.log("DONE");
});
It returns:
Child process exited with code 126
DONE
leaving vectors.txt unchanged. Is this because I'm running this on MacOS?

Hmm, not sure. Does the cleared_words.txt file exist in the directory from which you run the script?
You might try supplying either an absolute or relative file path as in in the following example. Alternatively, I should be able to test it on MacOS shortly.

So it turned out that the executables in the /src directory didn't have execution permission but chmod +x-ing them didn't actually work either. Then, following https://stackoverflow.com/questions/64706647/why-am-i-getting-a-zsh-exec-format-error, I did make clean and make  and it worked! Wonderful how the solution came from an answer not directly addressing "Child process exited with code 126" at all. Adding the commands to recompile source code on user's computer at installation would be really helpful. Thank you!


Get matching encoding names

@BCSharp See any issues with this change?

Looks good to me. I think you've fixed a copy-paste bug in PythonEncoding.


Indentation is missing in "Lambda handler code" of "Hello Lambda"

:bug: Bug Report
What is the problem?

Indentation is missing in "Lambda handler code" of "Hello Lambda"

Link: https://cdkworkshop.com/20-typescript/30-hello-cdk/200-lambda.html

Indentation is present in "Cleaup sample" though

Link: https://cdkworkshop.com/20-typescript/30-hello-cdk/100-cleanup.html

Reproduction Steps
Visit https://cdkworkshop.com/20-typescript/30-hello-cdk/200-lambda.html
Verbose Log
N/A
Environment
N/A
Other information

Looks like an issue in Hugo to me. The markdown is correct but when the code is after a list it is rendered incorrectly. I'll add a horizontal rule to circumvent this.


[4.2-rc5] Regression -theme_type_variation no longer works

Godot version
4.2-rc5
System information
MacOS 12.3
Issue description
Since upgrading to 4.2-rc5 from 4.1.1, none of my theme type variations work.
4.1.1:

4.2-rc5:

Steps to reproduce

Open the repro in 4.1.1
Observe the cool/tasteful colours
Open the repro in 4.2-rc5
Observe the sad default greys

Minimal reproduction project
wjagodfrey/godot-4.2-rc5-theme-type-variation-regression

Appears fixed in 4.2-dev6


syntax highlighting

@philipmjohnson first thanks for the nice framework!
I am recently struggling with the syntax highlighting while editing in framework markdown files .
that means if I take your example:

```java
public static void main(String args[]) {
  System.out.println("Hello world");
}
```

or as well
{% highlight java %}
public static void main(String args[]) {
  System.out.println("Hello world");
}
{% endhighlight %}

ends up in :
public static void main(String args[]) {
  System.out.println("Hello world");
}

so  actually the result is kind of pre-formated but not highlighted at all. This occurs both with my own sites build on your template (and slightly modified)  as well as with your fresh template site.
Any suggestions?
thanks and cheers
Chris

@gisma I've been able to reproduce your problem. I will fiddle around with this in the next few days and post an update. Thanks for reporting this.

@gisma For reasons that are lost to history, I commented out the line of code that loaded the CSS definitions for highlighting at some point during the development of Morea 2.0:
https://github.com/morea-framework/morea/blob/05e1cef031292f562be03e9ce53974562df9d121/_layouts/core.html#L11-L13
I think that all you need to do is to uncomment that line (i.e. remove lines 11 and 13) from your copy of _layouts/core.html and highlighting should work correctly.
I've updated the template repo so future users shouldn't have this problem, though existing users will need to update their copy manually.

Thanks!


CloudPath type hints (#298)

Improve cloudpath type hints

mainly provides improved type hints for derived classes of CloudPath thru the DerivedCloudPath TypeVar, e.g. now S3Path('s3://bucket/key') / '.txt' is also hinted as an S3Path; general improvements to static type hinting, e.g. mypy --strict now yields 124 errors down from 209; made attributes of CloudImplementation into class attributes also for improved hinting, necessitating a few couple line changes in the client and local path implementations

Add name to local cloud path implementations

Add mypy ignore directive related to CloudImplementation change

Add overloads for copy and copytree

also add more specific self type to cloud_path init parameter
Co-authored-by: Peter Bull<EMAIL_ADDRESS>

Codecov Report

Merging #303 (4eb37b8) into master (19f314b) will decrease coverage by 0.9%.
The diff coverage is 94.1%.

Additional details and impacted files
@@           Coverage Diff            @@
##           master    #303     +/-   ##
========================================
- Coverage    94.9%   93.9%   -1.0%
========================================
  Files          21      21
  Lines        1363    1381     +18
========================================
+ Hits         1294    1298      +4
- Misses         69      83     +14

Impacted Files
Coverage Δ

cloudpathlib/cloudpath.py
92.8% <93.8%> (-1.0%)
:arrow_down:

cloudpathlib/client.py
87.9% <100.0%> (ø)

cloudpathlib/local/implementations/azure.py
97.5% <100.0%> (ø)

cloudpathlib/local/implementations/gs.py
100.0% <100.0%> (ø)

cloudpathlib/local/implementations/s3.py
100.0% <100.0%> (ø)

cloudpathlib/__init__.py
92.8% <0.0%> (-7.2%)
:arrow_down:

cloudpathlib/s3/s3client.py
91.3% <0.0%> (-4.0%)
:arrow_down:

cloudpathlib/gs/gsclient.py
93.2% <0.0%> (-1.7%)
:arrow_down:

... and 1 more


Nuitka generates incompatible code: "foo() is foo()"

Both nuitka and Python were installed from the Archlinux repos
python -m nuitka --version
0.6.2
Python: 3.7.2 (default, Jan 10 2019, 23:51:51)
Executable: /usr/bin/python
OS: Linux
Arch: x86_64

I was reading this blog post and I thought to test foo() is foo() with nuitka and it seems that nuitka is (over?)optimising the f2() function in the following snippet:
def f1():
    return (1, 2, 3)

def f2():
    x = 1
    return (x, 2, 3)

assert f1() is f1(), 'WTF'
assert f2() is f2(), 'WTF'   # This one raises in Python 3.7
print("finished")            # Nuitka prints this

Realistically speaking this is a contrived edge case but nevertheless, Nuitka does have incompatible behavior.

If this is a regression (used to work in an earlier version of Nuitka),
please note what you know about that.

Not sure, probably not.

This exhibits a missing optimization. I also had it with Python2.7 which I happend to try first. But f1 and f2 look perfect and identical on the C level, returning a reference to a pre-made tuple. Which ought to mean, there is no way the is operation can fail, yet it does.
Seems pretty serious.

No wait, actually Python2 behavior is un-optimized, and Nuitka's is, and that is correct of course. There is nothing in the language that promises much about is identity, so Nuitka is of course absolutely correct in optimizing this.
Also I can confirm that no version of Python fared any better. Obviously nobody will want separate tuples for what is a constant value really, so we are not considering compatibility here as trump.
I would say that a == b always has to allow for a is b to be true.


Add [prop='foo'] CSS syntax

Just an update: it looks like https://github.com/chrisdickinson/cssauron could potentially be of use here...

Could this extend to event handler keys? Like if I want to find the element that has my click handler. ie,
instance.find('[onClick]');

@blainekasten I'm hoping we can extend it beyond CSS in a way that makes sense and is useful without bastardizing the CSS spec. '[onClick]' and support for any custom prop names definitely makes sense to me as a suggestion!

Awesome. Is anyone internally working on this one yet? If not, I may take a stab at it.

@blainekasten not yet. Stab away!

It might also be nice to have a different syntax, or a different method, for event handlers, so an actual HTML attribute onClick won't collide with a react onClick handler?

Do you have a use case where someone uses the browsers onclick handler? I don't think React is meant to be used in that way, because then you lose the benefits of event delegation and pooling.

No, of course I don't have a use case :-) but the fact that it may conflict is a good reason not to create a future footgun, when there's lots of syntax options available that aren't otherwise valid querySelector syntax.

Thinking about it though, since they are just keys of an object (props). They wouldn't clash. You could do either '[onClick'] for the react binding, or '[onclick'] for the native binding.

I agree. I don't think there's any concern of conflict here, unless I'm missing something...

[] is HTML attribute selector syntax. if it's not selecting HTML attributes, it's not the right syntax for it. Why not {onClick} or something?

I see what you are saying. It's your API so I think that is decision you guys should probably make. I could see arguments for both.
On one side, since react is modeling the DOM for us, you could think of props being attributes. Especially from a user perspective who is used to html, it looks like they are writing attributes, so they might guess that the [] is the right API for finding the elements for any react prop.
On the other side, {} separates it so you can be more specific and intentional with what a user is trying to do. It could also future proof (as @ljharb mentioned) to new APIs specific to React and make sure we don't clash with a normal html attribute. Although I think they are good at doing that themselves. I would be very surprised if they had a react prop be the same key as an html attribute.

What would [htmlFor] select? Should it select the "for" attribute, or the htmlFor prop? I feel like it's a dangerous precedent to make selector strings not be either copy-pasteable to qSA so they work the same, or, copy-pasteable so they don't silently fail when used outside of enzyme. Using alternative syntax would cause an error to be thrown if enzyme-specific syntax is used outside of enzyme.
I totally agree it's very unlikely this would become a problem - but it's a trivial thing to prevent before the feature exists, and a much harder thing to clean up if it does become a problem later.

So, i've been working on this for a day now. I have the property look up of the react node working in shallow rendering. So I either need some guidance on this to find out how to do this, or we're not going to get the API @ljharb is hoping for.
Basically, it seems that in shallow rendering we aren't getting access to a rendered version of the component. If that is the case, we can't do [] for attributes and {} for props because we can't get the html attributes.
I guess I could mock it out somehow with a map. But that might get huge and unwieldly. I guess all this to say, I can make it work if that is the API desired. I personally don't think I would ever need a time where I have to query on the html attribute over the react prop. But I understand your argument also.

I guess I'm still not sure I see @ljharb's point...  which is not to say that it's not a valid one... I'm just not convinced I see a conflict at this point.
From the way I see it, we aren't querying HTML nodes... we are querying react nodes.  the css [foo] selector is more or less taken from XPATH which is intended to work on all XML-like things... in our case this is JSX...
In the question that @ljharb posed:

What would [htmlFor] select? Should it select the "for" attribute, or the htmlFor prop?

To me it seems the answer is easy: it would find react nodes where the htmlFor prop was defined. There are no nodes with the for attribute defined... as react does not allow it, and I can't think of a scenario where there would ever be a collision or conflict?
Just like the #foo selector matches all nodes where the id prop is equal to "foo" and the .foo selector matches all nodes where the className prop contains "foo" (whitespace delimited).
@blainekasten if you think you have a working PR ready to handle one of these two situations, maybe put it up and we can continue the discussion there with a bit more context regarding the solution?

#70 is up for discussion.

+1 for attributes selectors, for what it's worth. I'm not migrating to enzyme for now because of this missing feature.

Closing as this got merged and is now available in 1.3.x


A proxy setting in getToken

I faced a trouble of setting proxy during getting token. When this library tries to get token, it looks it doesn't consider proxy setting. My code works if I set a proxy as a request property directly.
https://github.com/google/google-auth-library-nodejs/blob/master/lib/auth/oauth2client.js#L143
Or are there any ways to setting proxy even if trying to getting tokens?

Stuck at the same issue.
You can set HTTP_PROXY and HTTPS_PROXY environment vars to corresponding value. Those vars are recognized by request module which google-auth-library-nodejs uses internally

Turns out this works out of the box via the HTTP_PROXY and HTTPS_PROXY env vars :)  Adding  docs around that in #221.


Client-level error handling

One thing that I've noticed in my use for SecureXPC was that all my clients' callbacks followed the same pattern: they all switch on the result, and called a shared error handling function (in addition to some route-specific error handling).
I think this might be a common use case, especially because changes to the connection state might want to be monitored, and that can happen on every call.
Adding a "global" error handler that applies across all routes of a client would be easy, but then you'd get duplicate reports of errors (once per callback, and then once again). Ideally, having a way to express "if the route callback doesn't handle the error, then give the client error handle a chance to handle it", but I don't know how we could detect if the callback handled the error or not.
Do you have any ideas for how we could improve this?

Hmm, I haven't experienced the same thing. This may be because I don't have very many routes and for some of my routes I want considerably different error handling behavior.
When I've written networking code using NSURL I found the centralization of reported errors via delegates to be quite convoluted. It's true there are some benefits to it, but overall I found myself needed to work around it to "re-associate" the errors with the actual request I made in order to determine what action - if any - to take.
I'm not sure trying to address this at the framework level would be a good idea. I mean that literally, and not as indirect way of saying "I think this is a bad idea". My gut reaction is attempting to do so would introduce a new set of issues.

Adding a "global" error handler that applies across all routes of a client would be easy, but then you'd get duplicate reports of errors (once per callback, and then once again).

Indeed. And it'd be very problematic to only send errors to the "global" handler if it is set. Because then awaited functions which experienced an error just wouldn't return and that'd terribly mess up control flow. To work around that we could instead throw an error like XPCError.alreadyProvidedToGlobalHandler(XPCError), but that seems deeply non-standard. (This is equally applicable to the closure-based variants, just seemed easier to describe for the async case.)

Ideally, having a way to express "if the route callback doesn't handle the error, then give the client error handle a chance to handle it", but I don't know how we could detect if the callback handled the error or not.

I can't imagine there's any way to do that as what does it even mean to "handle the error" in any sort of deterministic sense? For example:
do {
    let reply = try await client.sendMessage("Get Schwifty", route: route)
    <# do something with reply #>
} catch {
    if case let .other(message) = error {
        print("Unable to get Schwifty because: \(message)")
    }
}

In this example the error is being caught (not that I think we can detect that?), but only one XPCError case is any way being handled - all of the rest are being ignored. I can't see how we'd able to know that.

You're right on the money, this is what I found challenging about this problem.
The best solution I could think of, and it ain't pretty, is a whole set of new send overloads whose closure only expects a Success value (and internally the Failure error gets forward to the client-level error handler). But this is restrictive, because you can't express "handle some specific error about this route, then do the global error handling relating to updating my connection status indicator (or whatever)"

For one, if we want to support the "send, oh no the Mach service isn't installed, install it, then retry" pattern, then that would required Blessed, so perhaps retries should be implemented at the "umbrella framework" (name TBD) level?

Is this a pattern you're looking to do unconditionally? Because it requires user action, that's not how my code handles things. While in theory a Mach service could become uninstalled at any time, in practice it probably will never be — the far more likely scenario is it's never been installed. So checking that on first run (or the beginning of each run) is what makes sense to me.

@amomchilov Six months later, what are your thoughts on whether client level error handling should exist?

I'll have to think more on this.
Marking unread for now, I'll come back to this when I make up my mind xD

Closing due to inactivity. If desired, please open a new issue in the future with specific examples/use cases.


[PKG] libopus

Package name
libopus
Package URL
http://www.opus-codec.org/
Package source location
https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz

@Zingam @artob @dani-garcia In the meantime there is feature that was created microsoft/vcpkg#10271. You can build the archive yourself. Its easy
export ANDROID_NDK_HOME="/Library/Android/sdk/ndk/<version>"
./vcpkg install opus  --triplet x86-android
./vcpkg install opus  --triplet x64-android
./vcpkg install opus  --triplet arm-android
./vcpkg install opus  --triplet arm64-android
./vcpkg export opus  --triplet x86-android --prefab

The resulting pom
   <groupId>com.vcpkg.ndk.support</groupId>
    <artifactId>opus</artifactId>
    <version>1.3.1</version>

or Gradle
  implementation "com.vcpkg.ndk.support:opus:1.3.1"

@atkawa7 sadly, for me, this doesn't for, due libopus exports nothing :-(

This package had been publish to my maven repository hosted on github https://github.com/leleliu008/ndk-pkg-prefab-aar-maven-repo
You’re welcome to give it a try.


Architectural updates for future support of Banana Pi

@uweseimet - I'd really like to get some preliminary feedback from you on the architectural changes that I've made to support multiple types of "GPIOBUS" and "SYSTIMER" classes.
I'm not happy that I had to change the global 'bus' from a C++ reference to a pointer. But, I didn't see an easy way to create a reference to GPIOBUS, since we don't know at initialization whether its a RaspberryPi GPIO or Allwinner GPIO. Do you have any suggestions on how to handle this differently?
Note: This hasn't been tested. I'm really just interested in your feedback on the higher level architectural changes.
I'll probably abandon this PR after I get things working.

@uweseimet  - Also note: These changes break the unit tests. I'll need to update those as well. I just really wanted some preliminary feedback before I dig into it more.

@akuker All in all there are not that much changes, at least not compared to what I am used to ;-). As expected the impact of the changes is essentially limited to the files in the hal folder, so that  the overall architecture does not really change.
Using a smart pointer for the bus looks fine for me, and there is probably no alternative when there is more than one bus implementation. References have advantages, but they cannot be used everywhere.
I suggest to replace DWORD with uint32_t. I have already done this everywhere else.
Is the custom systimer class really needed? The C API offers quite a lot of portable timing functions, and I wonder whether systimer offers something that the C API does not provide.
Regarding the unit tests I don't expect many changes. Almost all of them use a mock for the bus (the abstract BUS, not the gpiobus), so they should hardly be affected.

@uweseimet  - I'm struggling to get the unit tests to run. Would you have a few minutes to take a look to see if there is something simple I'm missing? I'm guessing it has to do with the change from references to shared_ptr<>'s.
As an example, the app is crashing in this test while trying to initialize the MockScsiController.
TEST(ScsiControllerTest, GetMaxLuns)
{
	MockScsiController controller(0);

	EXPECT_EQ(32, controller.GetMaxLuns());
}

Its crashing in the shared_ptr code

I definitely need to do some more training on the GMock functionality in the near future :-(

Is the custom systimer class really needed? The C API offers quite a lot of portable timing functions up to the nanoseconed level.,I wonder whether systimer offers something that the C API does not provide. Anything we do not implement ourselves does not need unit tests and does not cause bugs.

Agreed that anything we can use from the OS is better for us. The OS calls give control back to the scheduler, so we are at the mercy of the scheduler when the task get resumes. The Systimer works as a busy loop so that the task can resume more quickly without handing control back over the OS.
I did a very very quick and dirty experiment where I switched out the systimer class for the nanosleep calls. RaSCSI wasn't recognized by the host computer when I did that change. Its something that we could explore in the future if we need. But for now, I'd like to just keep the SysTimer.

I suggest to replace DWORD with uint32_t. I have already done this everywhere else. The explicit std:: namespace should be dropped, like everywhere else. This does not cause any ambiguities.

Agreed - will work on this, along with the sonarcloud warnings next. (Once the unit tests run again)

The API timer methods might have a special behavior wrt signals, blocking, or when waiting for 0 seconds, which might make them imcompatible with what's needed for RaSCSI. But I also think that it might make sense to re-visit this question in the future. It might turn out that the API calls also have benefits for RaSCSI, besides getting rid of custom code.

@akuker I am going to have a look at the tests soon.
By the way, clang++ reports several issues like these, and it is justified that the compiler complains:
./hal/gpiobus.h:362:18: warning: 'GetSignal' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]

Note that clang++ compiles much faster than gcc and usually has better error-reporting. This is why on my PC I switched to clang++. This gives much better turnaround times.

@akuker Regarding the unit test: The problem is that MockScsiController owns the same bus object twice: Once in the AbstractController base class, and once in the MockScsiController. Despite the fact that the bus is a shared_ptr this appears to result in double deletion of the bus object. I am not familiar with all the technical details, but this kind of object ownership does not really appear to be a good idea, does it?
The resolution is to remove the MockBus field from MockScsiController and to apply this simple formal modification to the tests using MockScsiController:
TEST(ScsiControllerTest, GetMaxLuns)
{
	MockScsiController controller(make_shared<MockBus>(), 0);

	EXPECT_EQ(32, controller.GetMaxLuns());
}

With this minor change the test is passing:
[ RUN      ] ScsiControllerTest.GetMaxLuns
[       OK ] ScsiControllerTest.GetMaxLuns (0 ms)

@akuker Regarding the unit test: The problem is that MockScsiController owns the same bus object twice: Once in the AbstractController base class, and once in the MockScsiController. Despite the fact that the bus is a shared_ptr this appears to result in double deletion of the bus object in the destructor of ScsiController. I am not familiar with all the technical details, but this wierd kind of object ownership in the mock controller does not really appear to be a good idea, does it?
The resolution is to remove the MockBus field from MockScsiController and to apply this simple formal modification to the tests using MockScsiController:
TEST(ScsiControllerTest, GetMaxLuns)
{
	MockScsiController controller(make_shared<MockBus>(), 0);

	EXPECT_EQ(32, controller.GetMaxLuns());
}

Now there is definitely no potential competition on who (the base class or the derived class) destroys the bus, and with this minor change the test is passing:
[ RUN      ] ScsiControllerTest.GetMaxLuns
[       OK ] ScsiControllerTest.GetMaxLuns (0 ms)

If you agree I can just update all affected tests as part of the upcoming PR for issue 911, so that we get rid of this issue right away. Sooner or later somebody would have stumbled upon this anyway.

Thank you for finding that! I'll try to make the change in my branch. Sonarcloud doesn't report any results if the tests don't run, so I want to get this addressed in my branch ASAP.
Thanks @uweseimet

@uweseimet - FYI: I also had to make the same change to MockAbstractController (at least with the changes in this branch)

@akuker That's not unexpected (I just had a look at the GetMaxLun test), because both mocks set up the bus in the same way.

@uweseimet - this one is ready to look at. Could you review it when you have a chance? there are a few sonarcloud CodeSmells that I'll update later. But, I'd like to get this merged into develop ASAP. I feel like I've spent a non-trivial part of my day trying to keep this branch up with develop.

@akuker I trust that you are going to fix the remaining issues soon.
Looks as if there are quite a lot of Banana Pi flavors?

@akuker I trust that you are going to fix the remaining issues soon.

Definitely!

Looks as if there are quite a lot of Banana Pi flavors?

Ya, for now I'm targeting the AllWinner H3-based version of Banana Pi M2 Plus

I am going to approve even though your branch does not compile on clang++, because clang++ is not the reference compiler:

I didn't see that exact message, but I did have others when I built with clang++. With the most recent changes, the tests built and ran on Ubuntu 22 with the following command:
make test CXX=clang++ -j8
Can you check if you're seeing the same compiler error with clang after these changes?
Note: I don't think Make is properly handing the header dependencies when using clang. So, you may need to manually clean after you change a header file.
Note that I did add a clang formatter configuration file. If you want to run clang-formatter on your changes, feel free to run:
clang-format -style=file whatever.cpp
style=file tells clang format to look for a .clang-format file in the current or one of the parent directories. Let me know if you want to make updates to this .clang-format configuration file. Its just a starting point, but it seems close-ish

@akuker I just noticed that on trace level when stopping rascsi numerous messages "I'm a Pi 4" are logged. Looks as if some debug code has not yet been removed?


add/edit countries

As a content editor, I want to add and edit countries so I can manage the list of countries available for documenting people’s nationalities.

Successfully added country (Mexico), which then turned up in the list of available nationalities.
Two questions:

If the ISO code is necessary, should we think about automatically generating it?  The application demanded that I input a two-letter code, but I entered "it" for Mexico and was able to save the entry.
What is the logic behind the order of the dropdown nationalities?  Should it be alphabetical?

@elspethgreen good questions.
I think I didn't specify any order on nationalities; alphabetical sounds sensible.
Regarding country code: I thought about loading all the countries, but didn't want to clutter the database and interface with countries that aren't relevant.  What if we made this an autocomplete so you type the beginning of the name, select from a list, and country name and code are automatically populated?
We could also make country code not required; but having some kind of code or identifier makes it much easier to do things with the data and helps ensure we keep things standard (i.e. might be harder to standardize later).

The autocomplete idea sounds good to me!

@elspethgreen I revised the country edit form after your feedback, the new version is on the test site - please check it out and see if it works better for what you need.  It still doesn't validate the country name and code, so you could put something in wrong if you wanted, but I thought we might want some flexibility to handle things we're not thinking of right now, or to adjust a display label.

@elspethgreen drat, I think maybe the new version is not yet on the site because I had to rework some things and forgot.  I'll let you know when it is!

Tried adding Mongolia--auto-populating country ID worked great!
One question, though: I had to type in the whole name ("Mongolia") before it would recognize it as a valid country.  "Mong" turned up no results.  This doesn't seem super intuitive, but we could easily get used to it.

I noticed that too...  When I make the small fix for the viaf lookup, I'll see if there's a slightly different geonames query that would get better results on partial matches.  (I have the query set so it will only return countries, but I don't know why that would affect partial name searching!).  Otherwise, I'll add help text to indicate you need to type the full name.

The test site is updated, now the geonames lookup is doing a name starts-with search and it seems to be getting much better results.

Looks great!  Tried "tuv" and got Tuvalu, "mont" and got "Montenegro," etc.


Update esu-network-requirements.md

Address customer request for clarification from ICM https://portal.microsofticm.com/imp/v5/incidents/details/506000307/summary
@aurnovcy

@johnmarco
Can you review the proposed changes?
Important: When the changes are ready for publication, adding a #sign-off comment is the best way to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off


Resolved Issue with 403 Response by Adding User Agent

Thank you for the great program you wrote. It really helped me a lot. ❤
However, after a while, I noticed that although the request is being sent, I'm getting a 403 response from the medium website. I tried adding a user agent, and with that modification, the issue was resolved.
    headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36'}
    response = requests.get(url, headers = headers)

Thank you very much, I will definitely use your code


Removed @Nullable and @NotNull in favour of jsr305

com.google.code.findbugs.jsr305's @ Nullable and @Nonnull

Hooray Jenkins reported success with all tests good!

@rzats @Cervator Your thoughts on this?