Login page usability - HTML5 validation prevents clicking on "Use Backup Token"

There are few problems with default login page usability.
Expected Behavior
Only the "Next" button triggers form validation.
Current Behavior
Both "Use Backup Token" or "Back" buttons can't be clicked when user enters invalid code, because of HTML5 field validation:

Possible Solution
I have solved this in my project by creating second form containing only the "Use Backup Token" and placing it on bottom of the page (which I consider better, because it doesn't disrupt the Enter 2FA form):
    {% if backup_tokens %}

       <form method="post" action="" class="bkit-registration__form">
           {% csrf_token %}

{% trans "As a last resort, you can use a backup token:" %}

                <button name="wizard_goto_step" type="submit" value="backup"
                    class="btn btn-sm btn-secondary btn-block">{% trans "Use Backup Token" %}</button>

       </form>

    {% endif %}

But this doesn't solve the problem with the "Back" button.
Steps to Reproduce (for bugs)

Configure 2FA with security codes.
Log in
Enter code "xyzabc"
Pres "Use Backup Token" or "Back"

Context
This might be problem especially if user did enter the backup code into the 2FA code field - if he expects that the code could be entered in this field, he will get very confused possibly unable to change his mind model to be able to delete the code and click on the button again.
Your Environment

Browser and version: Chrome Verze 102.0.5005.115
Python version: 3.10.4
Django version: 4.0.7
django-otp version: 1.1.3
django-two-factor-auth version: 1.14.0
Link to your project: www.blenderkit.com

One problem at a time :-)


First Website Live Trial (Beta)

Website Version 0
Basic Beta Website to check through direct URL.
Note: Will merge this beta version to test Github Pages Live through direct URL

Stats linking works great and so is the navbar ui responsiveness. Sticking the stats to the extreme right also makes it more aesthetic.
Approved

Stats linking works great and so is the navbar ui responsiveness. Sticking the stats to the extreme right also makes it more aesthetic.
Approved

@pmitter , merge the branch with main and tag it as beta. Let's make our beta live. Will publish the v1.0 soon

@pmitter , merge the branch with main and tag it as beta. Let's make our beta live. Will publish the v1.0 soon


Adding DisableApiTermination to Instance properties.

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html for a list of instance properties.

Hmm, I don't know why my PR has these other commits. Should I send the PR against master instead?

Hey! Thank you for this again. Sooo, we've decided to simplify and just go back to (how you were originally doing it) and deleting develop and just working against master, see:
https://github.com/MonsantoCo/cloudformation-template-generator/issues/16
So, if you wouldn't mind, back against master should resolve your issue and be great?


Check with DeviceControl Software Update

Hey,
did anybody check compatibility with new Devices Control Software from minidsp?
Would love to clarify before updating and breaking the connection for minidsp-rs
thy

I think you are refering to device console?  I did upgrade my SHD to that latest firmware.  While minidsp-rs works in every way I've tried with it, the ability for device console to "tunnel" through minidsp-rs directly to the SHD does not work.  Device Console throws some error when I attempt to connect.  The MiniDSP android app does continue to work.

ok, cool. Thank you for your reply.
I would not like to loose the ability to control via. api my minidsp. :)


In TFjob, when the workers Completed, i want the ps Completed too, how can i do?

{
    "apiVersion": "kubeflow.org/v1alpha2",
    "kind": "TFJob",
    "metadata": {
        "name": "fengzhu-tf-v2-2"
    },
    "spec": {
        "tfReplicaSpecs": {
            "Master": {
                "replicas": 1,
                "restartPolicy": "OnFailure",
                "template": {
                    "spec": {
                        "containers": [
                            {
                                "command": [
                                    "python",
                                    "/distribute.py"
                                ],
                                "image": "registry.v2.wx.service.mogujie.org/public/tinytf_baseline:201806131831",
                                "name": "tensorflow",
                                "ports": [
                                    {
                                        "containerPort": 2222,
                                        "name": "tfjob-port"
                                    }
                                ],
                                "resources": {}
                            }
                        ]
                    }
                }
            },
            "PS": {
                "replicas": 1,
                "restartPolicy": "OnFailure",
                "template": {
                    "spec": {
                        "containers": [
                            {
                                "command": [
                                    "python",
                                    "/distribute.py"
                                ],
                                "image": "registry.v2.wx.service.mogujie.org/public/tinytf_baseline:201806131831",
                                "name": "tensorflow",
                                "ports": [
                                    {
                                        "containerPort": 2222,
                                        "name": "tfjob-port"
                                    }
                                ],
                                "resources": {}
                            }
                        ]
                    }
                }
            },
            "Worker": {
                "replicas": 1,
                "restartPolicy": "OnFailure",
                "template": {
                    "spec": {
                        "containers": [
                            {
                                "command": [
                                    "python",
                                    "/distribute.py"
                                ],
                                "image": "registry.v2.wx.service.mogujie.org/public/tinytf_baseline:201806131831",
                                "name": "tensorflow",
                                "ports": [
                                    {
                                        "containerPort": 2222,
                                        "name": "tfjob-port"
                                    }
                                ],
                                "resources": {}
                            }
                        ]
                    }
                }
            }
        }
    }
}

and for ps:
server = server = tf.train.Server(cluster, job_name=local_type, task_index=local_index)
...
if local_type == "ps":
print "local server is ps"
server.join()

@gaocegege

I do not think you could do it, because PS is designed to be long running in TF

but the ps belongs to one tfjob, and when i create a new tfjob we will create new ps, according my understand when a tfjob compled we will delete all resources the tfjob used, right?

We do not implement the logic to delete all pods and services after the TFJob is completed in v1alpha2. And even if we implement it, we do not set the ps to be completed, we just delete it.

which one will delete the ps server when TFjob completed? mster?

Thank you for your reply.

controller for v1alpha1 will do it.

what about v1alpha2？

We will investigate if there is another way to do the same thing without deletions. Ref #661

You could use features in #691 , to control the behaviour.


Circleci action

Codecov Report
Patch coverage has no change and project coverage change: -0.38 :warning:

Comparison is base (6d2c686) 97.50% compared to head (0374f14) 97.13%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #235      +/-   ##
==========================================
- Coverage   97.50%   97.13%   -0.38%
==========================================
  Files          69       52      -17
  Lines       29122    25362    -3760
==========================================
- Hits        28396    24635    -3761
- Misses        609      610       +1
  Partials      117      117

see 18 files with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Compile time is painfully slow

Command
build, serve
Description
The ng build/serve compilation times of angular dwarf any other bundler/framework I know of and this is a real drag on my team's development time.
I am wondering if there is perhaps a way to just disable type checking or other things that may be large contributing factors to build time, or some sort of alternative being explored?
Can you also explain a little bit about what % the bottlenecks are right now? It would be good to understand things a little better.
Describe the solution you'd like
A way faster compilation time
Describe alternatives you've considered
There aren't any, because since the linker change in Angular 13, I can't use a 3rd party bundler anymore.

There aren't any, because since the linker change in Angular 13, I can't use a 3rd party bundler anymore.

You certainly could! The linker is just a Babel plugin that can be incorporated into any build pipeline.

The ng build/serve compilation times of angular dwarf any other bundler/framework I know of and this is a real drag on my team's development time.

What are your build times? Did you try using the experimental esbuild based builder?

I am wondering if there is perhaps a way to just disable type checking or other things that may be large contributing factors to build time, or some sort of alternative being explored?

Have you profiled the build to verify the type-checking is the culprit here?

Build times are about 30 seconds on first build. Esbuild doesn't seem to make much of a difference.
I've profiled my build running node --cpu-prof node_modules/.bin/ng build, here it is:
profile.zip
It's hard to interpret exactly why it's slow, all I know is that it's slow. And It's not a simple stack to interpret, I have no idea how to answer your question even with the profiles.

Those are profiles from a production build, right?

nope, development. our default build is our development build

or do you mean a production build of angular-cli? If so then yes, v15.1.5

whoops! our ng build and ng serve are configured a little differently for their defaults, I forgot. Here is it properly optimizaed for development, which is closer to the actual speed of build on an M1 Mac (~18 seconds):
Config:
{
							"assets": [
								{
									"glob": "**/*",
									"input": "src/assets/",
									"output": "/"
								},
								{
									"glob": "**/*",
									"input": "node_modules/ngx-extended-pdf-viewer/assets/",
									"output": "/assets/"
								}
							],
							"optimization": false,
							"outputHashing": "none",
							"sourceMap": {
								"scripts": true,
								"styles": true,
								"vendor": false,
								"hidden": false
							},
							"namedChunks": false,
							"aot": true,
							"extractLicenses": false,
							"statsJson": false,
							"progress": true,
							"vendorChunk": true,
							"buildOptimizer": false
						}

attached result
CPU.20230330.183927.62264.0.001.cpuprofile.zip
So not 30 seconds, about 18.
This to me is still uncomfortably slow, both on boot up and waiting from 4 up to another 15 seconds each update is punishing. where is the bottleneck to you in the latest cpuprofile I have?

Do you have profiles of incremental compilations, not the initial one after startup?
The first and second build are known to be more expensive; only after the second rebuild can incremental type-checking be used due to some technicalities with how template type-checking works. So I'm interested in profiles of rebuilds after the second one, ideally with a no-op change (e.g. introducing a console.log)

Is there any intent or initiative to improve the speed of the first two builds? I do them often enough that it’s far from ideal. Esbuild had a small but insubstantial effect, is there room to optimise further?

Not that I'm aware of at the moment. There's ideas like angular/angular#43131 and angular/angular#43165 that are relevant here.

It would be good for this to be higher on the list of priorities. So much value is lost in waiting during those precious seconds, it breaks flow.

CPU.20230331.113255.80503.0.001.cpuprofile.zip
A first time run with angular 16 takes over a minute. On an M1 Mac chip.
Skimming it, the phases look like (please correct me):

Phase
Timing

Angular Tools/Webpack/Iny initialisation/setup
1.2 seconds

Typescript compilation
6 seconds

???
40 seconds

terminal output because I had verbose = true
5 seconds

Webpack building stuff
6 seconds

Webpack updating stats or something
1 seconds

Writing of JS files?
3 seconds

Writing of assets?
0.5 seconds

Support for ng serve is being implemented in #24923; esbuild support is not yet feature complete.
The esbuild profile is as expected to me. The main difference in why the CLI with esbuild isn't nearly as fast as bare esbuild is that the TypeScript compiler is still used to parse + type-check + emit modules, given that the AOT compiler is built on top of TypeScript. esbuild is only used for bundling/optimization purposes.

Oh that’s great timing, didn’t see it. I’m glad that it looks like it’s getting attention anyway.
its the only thing about Angular Im not a fan of, I’ve been using it since the v1 days and love where it’s heading… thanks for your time


getEventListeners

I use PhantomJS for testing, and for one project we are testing bindings on native DOM objects.
Some of the developer tools include a way to get the event listeners:
https://developer.chrome.com/devtools/docs/commandline-api#geteventlistenersobject
https://getfirebug.com/wiki/index.php/GetEventListeners
It would be neat to have this available in PhantomJS for testing as well.
Love yall!

+1

+1

+1
We really need this feature to evaluating web pages for accessibility features

What we really want to test for accessibility is the presence or absence of particular event handlers.  For example if their are mouse event handlers on a DOM node or one of its ancestors are their corresponding keyboard event handlers on the DOM node or one of its ancestors.
So initially we would just need a Boolean test to identify any event handlers of a specific type (e.g. mousedown, keypress) on an DOM node.

+1 as this is also related to an IndieUI feature that could/would/will be relevant to other web technologies as well!!

+1

+1

+1

+1

+1

Any progress on adding this feature?

+1

+1

+1

I am finding this, can it work now?


feat: cli - version cmd

I was going through the repo and found this issue  #327.
I have created one PR for this.

I have made the changes in Makefile also.
I was not sure about how to add the same on .goreleaser.yml

Can you guys please check and review it? Please let me know what changes I need to make.

Hi @thecaffeinedev, everything is good to go - no changes are necessary
Thanks a lot for your contribution


task 615-619 labels have "locator" in format that raises error

task 615-619 labels: all of them have
"locator": "[...document.querySelector('.submission__inner').querySelectorAll('[href],[src]')].map(elem => elem.getAttribute('href') || elem.getAttribute('src')).join(' ')",
however, in webarena/evaluation_harness/evaluators.py class HTMLContentExactEvaluator(Evaluator) line 236 on, locators are expected to be empty or startswith "document." or "func.". Hence, ValueError is raised for 615-619

Good catch! #54 has fixed it!


[mscgen mode] adds language constants

... and adds the xù specific keyword 'xu'

Thanks. Merged as c4d9363


[Feature] Compatibility with the Heartache Mod?

Heartache Mod - (https://modrinth.com/mod/heartache)
The Heartache mod basically adds more heart types to your HUD, such as being set on fire or with the glowing effect.
I think having both of these mods work together would be nice. In case compatibility can't be done from your side feel free to let me know and I'll try to ask the creator of the Heartache mod.

I want to add extra heart types to this mod itself, so having compatibility with another mod that does it would be kinda pointless as I would have to remove it later


Add 10 new icons

Description

Add 10 new icons.

Type of change

:x: Bug fix (non-breaking change which fixes an issue)
:white_check_mark: Icon addition (non-breaking change that adds/modifies Lawnicons's icons)
:x: General change (non-breaking change that doesn't fit the above categories like copyediting)

Icons addition information

Icons added

Cx File Explorer (com.cxinventor.file.explorer) - added from icon request form
Lithium EPUB Reader Free/Paid (com.faultexception.reader) - added from icon request form
Edison Mail (com.easilydo.mail) - added from icon request form
InShot (com.camerasideas.instashot) - added from icon request form
Kahoot! (no.mobitroll.kahoot.android) - added from icon request form
Kimcy Screen Recorder (com.kimcy929.screenrecorder) - added from icon request form
Nothing X (com.nothing.smartcenter) - added from icon request form
ONLYOFFICE (com.onlyoffice.documents) - added from icon request form
rif is fun Free/Paid (com.andrewshu.android.reddit) - added from icon request form
Wallfever (com.amaan.wallfever) - added from icon request form

Have fixed it. I was a bit confused.  @Chefski

Mind just resolving the conflicts? Thanks

Done!


Parameters --port and --bridge-port not validated correctly by CLI

Release
Operating System
Cause

next
Linux
Code  v Configuration v Environment v Human v Unknown

Context
Currently both serve and launch commands of cardano-wallet come with:

--port
--bridge-port
e.g.:

  cardano-wallet launch [--network=STRING] [(--port=INT | --random-port)] [--bridge-port=INT] [--state-dir=DIR] [--min-log-severity=SEVERITY]
  cardano-wallet serve [--network=STRING] [(--port=INT | --random-port)] [--bridge-port=INT] [--database=FILE] [--min-log-severity=SEVERITY]

There are few issues:

Provided port for both commands (either for --port or --bridge-port) is validated as Int and following error message is displayed when providing faulty port, e.g.

$ cardano-wallet launch --port r
Int is an integer number between -9223372036854775808 and<PHONE_NUMBER>854775807.

as a consequence one might also provide a negative number which makes serve or launch fail with unpleasent error:

$ cardano-wallet serve --port -1000
[iohk.#messagecounters.switchboard:Warning:ThreadId 10] [2019-06-17 10:37:38.63 UTC] time_interval_(s) = 0
cardano-wallet: Network.Socket.getAddrInfo (called with preferred socket type/protocol: AddrInfo {addrFlags = [AI_PASSIVE,AI_ADDRCONFIG], addrFamily = AF_UNSPEC, addrSocketType = Stream, addrProtocol = 0, addrAddress = <assumed to be undefined>, addrCanonName = <assumed to be undefined>}, host name: Just "<IP_ADDRESS>", service name: Just "-1000"): does not exist (Servname not supported for ai_socktype)

Additionally there is small issue with cardano-wallet serve --port x, the error message (from errOut interwines with stdOut), which looks a bit unpleasent e.g.:

$ cardano-wallet serve --port x
Int is an integer number bet[iohk.#messagecounters.switchboard:Warning:ThreadId 10] [2019-06-17 10:40:07.80 UTC] time_interval_(s) = 0
ween -9223372036854775808 and<PHONE_NUMBER>854775807.

Steps to Reproduce

Examples are for --port but it is the same issue with --bridge-port
Ex 1.
cardano-wallet launch --port x
Ex 2.
cardano-http-bridge start --port 8080 --template testnet
cardano-wallet serve --port -1000
or
cardano-wallet launch --port -1000
Ex 3.
cardano-wallet serve --port x
Expected behavior

-> --- port | --bridge-port - provided port should be in range (xxx, xxx)
-> --- port | --bridge-port - provided port should be in range (xxx, xxx)
-> --- port | --bridge-port - provided port should be in range (xxx, xxx)
^ errMsg does not interwine with stdOut

Actual behavior

-> Int is an integer number between -9223372036854775808 and<PHONE_NUMBER>854775807.
->

cardano-wallet: Network.Socket.getAddrInfo (called with preferred socket type/protocol: AddrInfo {addrFlags = [AI_PASSIVE,AI_ADDRCONFIG], addrFamily = AF_UNSPEC, addrSocketType = Stream, addrProtocol = 0, addrAddress = <assumed to be undefined>, addrCanonName = <assumed to be undefined>}, host name: Just "<IP_ADDRESS>", service name: Just "-1000"): does not exist (Servname not supported for ai_socktype)

->

Int is an integer number bet[iohk.#messagecounters.switchboard:Warning:ThreadId 10] [2019-06-17 10:40:07.80 UTC] time_interval_(s) = 0
ween -9223372036854775808 and<PHONE_NUMBER>854775807.

Resolution Plan

PR

Number
Base

#?
develop

QA

I'll tackle that as part of #368


Contract deployment accepted if invalid number of constructor arguments

Originally reported by Software Mansion. I checked by running the test case deploy_transaction_receipt defined in crates/starknet-server/tests/get_transaction_receipt_by_hash.rs. I replaced the empty vec![] passed to contract_factory.deploy(...) with vec![FieldElement::ZERO], printed the received receipt and it said the status is succeeded.
I tried investigating a bit to see where and how deployment is done, but none of those places seem to handle constructor arguments, and even starknet_in_rust's state.deploy_contract only accepts address and class_hash.

fixed via #193, but add tests to ensure correct behaviour


proposal: text/template: ability to resolve values from a dataset using templates

Proposal Details
Background
Given a template string and a dataset, the text/template package allows a user to write data from the dataset as a formatted string to an io.Writer. However, currently, it is not possible to use a template to resolve and return a value and preserve its type from a dataset.
For example, suppose we set up a template and dataset as follows:
import "text/template"

...

// Define a template
tplStr := `{{index .MySlice 3}}`

// Define a dataset
data := map[string]interface{}{
    "MySlice": []int{1, 2, 3, 4, 5},
}

// Create the template
tpl, _ := template.New("").Parse(tplStr)

We are now able to execute the template with our dataset by calling the Execute method. This will write the formatted string to the given io.Writer.
buf := &bytes.Buffer{}
tpl.Execute(buf, data)
fmt.Println(buf.String()) // Prints "4"

However, the output of the template is always a string and not the actual value from the dataset. There are a variety of use cases where it would be useful to fetch and mutate data while preserving types from a dataset using templating syntax - particularly when a template is given at runtime in software that surfaces Go's templating syntax.
Proposal
Add a new method to the Template type in the text/template package that allows the user to return a variable with its underlying type given a template and dataset. More precisely, a method with the following (or similar) signature:
func (t *Template) Resolve(data any) (val any, err error)

Using the same template and dataset example as before, we can now resolve the value from the dataset and preserve its type:
v, _ := tpl.Resolve(data) // v is of type any (int)
fmt.Println(v) // Prints 4

More interestingly, this allows us to do things like this:
import (
    "text/template"
    "github.com/Masterminds/sprig/v3"
)

...

// Use sprig's len function to get the length of a slice and return that instead
tpl, _ := template.New("").Funcs(sprig.FuncMap()).Parse(`{{len .MySlice}}`)
v, _ := tpl.Resolve(data)
fmt.Println(v) // Prints 5

It may be tempting to ask why we need templates to do this instead of doing something simple like this:
fmt.Println(len(data["MySlice"])) // Prints 5

However, as I mentioned in the background, in cases where a template is being supplied at runtime by a user of the software, we need to use the templating engine to resolve the value. The case study below describes a real-world example of this.
Since this only really makes sense with a single ActionNode, calling Resolve on a template with multiple nodes or a non-ActionNode should return an error.
Case Study
I am one of the maintainers of Task, which is a popular task runner and build tool written in Go. One of the useful features of Task is the ability to use Go's templating engine to template tasks. Until recently, all variables in Task were strings, so using one variable inside another variable was as simple as referencing it in a Go template:
tasks:
  default:
    vars:
      FOO: "foo"
      BAR: "{{.FOO}} bar"
    cmds:
      - echo "{{.BAR}}" # prints "foo bar"

However, we recently added made our "Any Variables" experiment generally available. This allows users to define variables of "any" type (i.e. string, int slice etc.). This is great because users now have much more flexibility in how they define/process their task data. However, passing these variables from one task to another was only possible using templating and this caused variables to be stringified.
To resolve this, we added a new ref keyword which will allow users to directly reference a variable and maintain its type:
tasks:
  task-1:
    vars:
      FOO: [1, 2, 3, 4, 5]
    cmds:
      - task: task-2
        vars:
          FOO:
            ref: .FOO # <-- Sends a reference to the variable FOO

  task-2:
    cmds:
      - echo "{{index .FOO 3}}" # prints "4" because we can still use FOO as a slice

We decided that we wanted to keep using Go's templating engine to do the reference resolving. This has a couple of advantages:

It keeps the syntax familiar.
It allows users to use Go's templating syntax/functions/pipes to manipulate the data as it is passed.

Since this wasn't possible to do using the public API of the standard library's text/template package, we have forked the package and implemented the proposed API. The two additional methods can be viewed below. This is a provisional implementation specifically for Task. However, it is in our latest release and working well for us so far.

Template.Resolve - https://github.com/go-task/template/blob/960e6f576656d7e42a83a98307241c86a660f357/exec.go#L234-L253
state.actionValue - https://github.com/go-task/template/blob/960e6f576656d7e42a83a98307241c86a660f357/exec.go#L286-L301

Since there aren't often significant changes to this package, we are happy to maintain this fork. However, we feel like this change would be a useful addition to the standard library and could benefit other users too.

CC @robpike

Templates are for formatting data into text. They are basically printf on steroids. I do not think that should change.
In any case I think this would be both rarely used and would require a lot of preconditions because a typical template processes many values. Yes, you have presented a case where it makes sense, but I still feel it is an unusual situation not worth changing the basics of the template package.

it is an unusual situation not worth changing the basics of the template package

While I generally agree that the specific use-case above is unusual and beyond the scope of the regular usage of the template package, there is simply no way to do what we are trying to do with the current public API because template.state is not exposed.
Go's templating syntax is extremely powerful, and it seems to be a shame to restrict it to outputting strings when it could also be used for parsing/manipulating data at runtime with a relatively small, non-breaking change. This would open up a lot of possibilities for software that wants to expose the templating syntax to its users.

Templates are for formatting data into text. They are basically printf on steroids. I do not think that should change.

If we want to make the distinction between a template and a "resolver", we could make a separate Resolver struct which would be constructed with a single ActionNode and return a value when a Resolve() method is called. This would also solve the concern you raised around templates having many values.
This would still need to be contained within the text/template package though as it needs access to the state to do the value resolution.

I have wanted this before, but the reason I wanted it was that I wanted to use Go templates as the engine for my own new templating language. I think maybe exposing the ability to do t.Eval("add (len s) 1") (no {{ }}!) and get an int would be useful for people who want to use Go templates as basically a PHP-like dynamic scripting language engine within Go, but it's also a big API commitment from the Go team for unclear benefits.
Could you just fork the template library and expose the internals in your fork?

This proposal has been declined as infeasible.
— rsc for the proposal review group


DUOS-552 Homepage Redesign

Work to redesign the old homepage. https://broadinstitute.atlassian.net/browse/DUOS-552
Still WIP to clean up CSS styling + classes but have most of the general look finished:

Can we format the 'About DUOS' paragraphs as 'justified'?

Can we also remove the 'by leveraging' from the end of the 'What is DUOS and How does it work subtitle description'?

For the 'Are you a researcher?' subtitle description: "Click here to register and start your data access request!"
For the 'Are you a DAC Member?' subtitle description: "Click here to learn how DUOS is helping DACs efficiently manage data access and use compliance"
Can we also invert the positioning so that the 'researcher' text is under the 'data requestor' side of the diagram?

One bit of visual feedback. Can we remove the white strip between the large header image and the top nav?

@rushtong About the white space, I think we could get rid of it if we could get a version of the image with the transparent pixels cropped out. That white space comes from the photo and the header.


Cannot connect to CodeCommit in Build step

Before opening, please confirm:

[X] I have installed the latest version of the Amplify CLI (see above), and confirmed that the issue still persists.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.

How did you install the Amplify CLI?
npm
If applicable, what version of Node.js are you using?
12
Amplify CLI Version
5
What operating system are you using?
MAc
Amplify Categories
Not applicable
Amplify Commands
publish
Describe the bug
After pushing to the main branch, the deployment fails in Build step.

2021-06-17T13:29:36.763Z [INFO]: # Cloning repository: https://git-codecommit.us-east-1.amazonaws.com/v1/repos/XYZ
2021-06-17T13:29:37.200Z [INFO]: Cloning into 'XYZ'...
2021-06-17T13:29:42.617Z [INFO]: fatal: unable to access 'https://git-codecommit.us-east-1.amazonaws.com/v1/repos/XYZ/': The requested URL returned error: 403

Expected behavior
I even used Reconnect to branch, however I don't know what is missing that it cannot access to CodeComit.
Reproduction steps
Not applicable
GraphQL schema(s)
No response
Log output
No response
Additional information
No response

The appId d33iqssbpej0f4
Region: N.Virginia (us-east-1)
I don't think it is related to custom domain.

Needed to set up Service Role.


Output parameters of failed parallel tasks aren't included in aggregated outputs

Pre-requisites

[X] I have double-checked my configuration
[X] I can confirm the issues exists when I tested with :latest
[ ] I'd like to contribute the fix myself (see contributing guide)

What happened/what you expected to happen?
I have a use case in which I need to collect all output parameters (or artifacts) of all parallel tasks but it seems that we can't collect outputs of failed tasks:
https://github.com/argoproj/argo-workflows/blob/6e97c7d6babd9115f9872b06cdfa02bc5950fb74/workflow/controller/operator.go#LL2924C8-L2924C8
So why don't we include the output parameters of failed nodes in aggregated outputs?

Version
v3.4.8
Paste a small workflow that reproduces the issue. We must be able to run the workflow; don't enter a workflows that uses private images.
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: test-
spec:
  entrypoint: main

  templates:
    - name: main
      dag:
        tasks:
          - name: build
            template: build
            arguments:
              parameters:
                - name: num
                  value: "{{item}}"
            withItems:
              - 1
              - 2
          - name: collect
            template: collect
            depends: "build.AnySucceeded || build.AllFailed"
            arguments:
              parameters:
                - name: aggregated-outputs
                  value: "{{tasks.build.outputs.parameters.pod-name}}"
    - name: build
      inputs:
        parameters:
          - name: num
      outputs:
        parameters:
          - name: pod-name
            value: "{{pod.name}}"
      container:
        image: debian:11.7
        command:
          - sh
          - -c
        args:
          - |
            n={{inputs.parameters.num}}
            exit $(($n % 2))

    - name: collect
      inputs:
        parameters:
          - name: aggregated-outputs
      container:
        image: debian:11.7
        command:
          - sh
          - -c
        args:
          - |
            echo "{{inputs.parameters.aggregated-outputs}}"

Logs from the workflow controller
time="2023-06-15T15:57:30.735Z" level=info msg="Processing workflow" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:30.738Z" level=info msg="Updated phase  -> Running" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:30.738Z" level=info msg="DAG node test-nwgqv initialized Running" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:30.738Z" level=info msg="TaskGroup node test-nwgqv-3361402689 initialized Running (message: )" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:30.738Z" level=info msg="All of node test-nwgqv.build(0:1) dependencies [] completed" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:30.738Z" level=info msg="Pod node test-nwgqv-1803670843 initialized Pending" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:30.747Z" level=info msg="Created pod: test-nwgqv.build(0:1) (test-nwgqv-build-1803670843)" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:30.747Z" level=info msg="All of node test-nwgqv.build(1:2) dependencies [] completed" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:30.747Z" level=info msg="Pod node test-nwgqv-1286867769 initialized Pending" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:30.756Z" level=info msg="Created pod: test-nwgqv.build(1:2) (test-nwgqv-build-1286867769)" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:30.756Z" level=info msg="TaskSet Reconciliation" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:30.756Z" level=info msg=reconcileAgentPod namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:30.762Z" level=info msg="Workflow update successful" namespace=argo phase=Running resourceVersion=6898 workflow=test-nwgqv
time="2023-06-15T15:57:40.737Z" level=info msg="Processing workflow" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:40.737Z" level=info msg="Task-result reconciliation" namespace=argo numObjs=2 workflow=test-nwgqv
time="2023-06-15T15:57:40.737Z" level=info msg="task-result changed" namespace=argo nodeID=test-nwgqv-1286867769 workflow=test-nwgqv
time="2023-06-15T15:57:40.737Z" level=info msg="task-result changed" namespace=argo nodeID=test-nwgqv-1803670843 workflow=test-nwgqv
time="2023-06-15T15:57:40.737Z" level=info msg="Pod failed: Error (exit code 1)" displayName="build(0:1)" namespace=argo pod=test-nwgqv-build-1803670843 templateName=build workflow=test-nwgqv
time="2023-06-15T15:57:40.738Z" level=info msg="node changed" namespace=argo new.message="Error (exit code 1)" new.phase=Failed new.progress=0/1 nodeID=test-nwgqv-1803670843 old.message= old.phase=Pending old.progress=0/1 workflow=test-nwgqv
time="2023-06-15T15:57:40.738Z" level=info msg="node changed" namespace=argo new.message= new.phase=Succeeded new.progress=0/1 nodeID=test-nwgqv-1286867769 old.message= old.phase=Pending old.progress=0/1 workflow=test-nwgqv
time="2023-06-15T15:57:40.740Z" level=info msg="node test-nwgqv-3361402689 phase Running -> Failed" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:40.740Z" level=info msg="node test-nwgqv-3361402689 finished: 2023-06-15 15:57:40.740299031 +0000 UTC" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:40.740Z" level=info msg="All of node test-nwgqv.collect dependencies [build] completed" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:40.741Z" level=info msg="Pod node test-nwgqv-3553655367 initialized Pending" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:40.763Z" level=info msg="Created pod: test-nwgqv.collect (test-nwgqv-collect-3553655367)" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:40.763Z" level=info msg="TaskSet Reconciliation" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:40.763Z" level=info msg=reconcileAgentPod namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:40.773Z" level=info msg="Workflow update successful" namespace=argo phase=Running resourceVersion=6955 workflow=test-nwgqv
time="2023-06-15T15:57:40.779Z" level=info msg="cleaning up pod" action=labelPodCompleted key=argo/test-nwgqv-build-1803670843/labelPodCompleted
time="2023-06-15T15:57:40.779Z" level=info msg="cleaning up pod" action=labelPodCompleted key=argo/test-nwgqv-build-1286867769/labelPodCompleted
time="2023-06-15T15:57:50.766Z" level=info msg="Processing workflow" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:50.767Z" level=info msg="Task-result reconciliation" namespace=argo numObjs=3 workflow=test-nwgqv
time="2023-06-15T15:57:50.767Z" level=info msg="task-result changed" namespace=argo nodeID=test-nwgqv-3553655367 workflow=test-nwgqv
time="2023-06-15T15:57:50.767Z" level=info msg="node changed" namespace=argo new.message= new.phase=Succeeded new.progress=0/1 nodeID=test-nwgqv-3553655367 old.message= old.phase=Pending old.progress=0/1 workflow=test-nwgqv
time="2023-06-15T15:57:50.769Z" level=info msg="Outbound nodes of test-nwgqv set to [test-nwgqv-3553655367]" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:50.770Z" level=info msg="node test-nwgqv phase Running -> Succeeded" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:50.770Z" level=info msg="node test-nwgqv finished: 2023-06-15 15:57:50.770067911 +0000 UTC" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:50.770Z" level=info msg="Checking daemoned children of test-nwgqv" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:50.770Z" level=info msg="TaskSet Reconciliation" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:50.770Z" level=info msg=reconcileAgentPod namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:50.770Z" level=info msg="Updated phase Running -> Succeeded" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:50.770Z" level=info msg="Marking workflow completed" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:50.771Z" level=info msg="Marking workflow as pending archiving" namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:50.771Z" level=info msg="Checking daemoned children of " namespace=argo workflow=test-nwgqv
time="2023-06-15T15:57:50.779Z" level=info msg="cleaning up pod" action=deletePod key=argo/test-nwgqv-1340600742-agent/deletePod
time="2023-06-15T15:57:50.806Z" level=info msg="Workflow update successful" namespace=argo phase=Succeeded resourceVersion=6997 workflow=test-nwgqv
time="2023-06-15T15:57:50.838Z" level=info msg="archiving workflow" namespace=argo uid=62a16f23-d2d6-469d-b6c5-f9ee2b1d7fb1 workflow=test-nwgqv
time="2023-06-15T15:57:50.842Z" level=info msg="cleaning up pod" action=labelPodCompleted key=argo/test-nwgqv-collect-3553655367/labelPodCompleted

Logs from in your workflow's wait container
time="2023-06-15T15:57:35.422Z" level=info msg="Saving path output parameter: pod-name"
time="2023-06-15T15:57:35.422Z" level=info msg="No output artifacts"
time="2023-06-15T15:57:35.423Z" level=info msg="S3 Save path: /tmp/argo/outputs/logs/main.log, key: test-nwgqv/test-nwgqv-build-1286867769/main.log"
time="2023-06-15T15:57:35.423Z" level=info msg="Creating minio client using static credentials" endpoint="minio:9000"
time="2023-06-15T15:57:35.423Z" level=info msg="Saving file to s3" bucket=my-bucket endpoint="minio:9000" key=test-nwgqv/test-nwgqv-build-1286867769/main.log path=/tmp/argo/outputs/logs/main.log
time="2023-06-15T15:57:35.444Z" level=info msg="Save artifact" artifactName=main-logs duration=21.388172ms error="<nil>" key=test-nwgqv/test-nwgqv-build-1286867769/main.log
time="2023-06-15T15:57:35.445Z" level=info msg="not deleting local artifact" localArtPath=/tmp/argo/outputs/logs/main.log
time="2023-06-15T15:57:35.445Z" level=info msg="Successfully saved file: /tmp/argo/outputs/logs/main.log"
time="2023-06-15T15:57:35.484Z" level=info msg="Create workflowtaskresults 201"
time="2023-06-15T15:57:35.485Z" level=info msg="Alloc=8377 TotalAlloc=16620 Sys=28285 NumGC=5 Goroutines=10"
time="2023-06-15T15:57:35.426Z" level=info msg="Saving path output parameter: pod-name"
time="2023-06-15T15:57:35.426Z" level=info msg="No output artifacts"
time="2023-06-15T15:57:35.427Z" level=info msg="S3 Save path: /tmp/argo/outputs/logs/main.log, key: test-nwgqv/test-nwgqv-build-1803670843/main.log"
time="2023-06-15T15:57:35.427Z" level=info msg="Creating minio client using static credentials" endpoint="minio:9000"
time="2023-06-15T15:57:35.427Z" level=info msg="Saving file to s3" bucket=my-bucket endpoint="minio:9000" key=test-nwgqv/test-nwgqv-build-1803670843/main.log path=/tmp/argo/outputs/logs/main.log
time="2023-06-15T15:57:35.445Z" level=info msg="Save artifact" artifactName=main-logs duration=17.493222ms error="<nil>" key=test-nwgqv/test-nwgqv-build-1803670843/main.log
time="2023-06-15T15:57:35.445Z" level=info msg="not deleting local artifact" localArtPath=/tmp/argo/outputs/logs/main.log
time="2023-06-15T15:57:35.445Z" level=info msg="Successfully saved file: /tmp/argo/outputs/logs/main.log"
time="2023-06-15T15:57:35.486Z" level=info msg="Create workflowtaskresults 201"
time="2023-06-15T15:57:35.487Z" level=info msg="Alloc=8723 TotalAlloc=16655 Sys=28797 NumGC=5 Goroutines=10"
time="2023-06-15T15:57:44.570Z" level=info msg="No output parameters"
time="2023-06-15T15:57:44.570Z" level=info msg="No output artifacts"
time="2023-06-15T15:57:44.571Z" level=info msg="S3 Save path: /tmp/argo/outputs/logs/main.log, key: test-nwgqv/test-nwgqv-collect-3553655367/main.log"
time="2023-06-15T15:57:44.571Z" level=info msg="Creating minio client using static credentials" endpoint="minio:9000"
time="2023-06-15T15:57:44.571Z" level=info msg="Saving file to s3" bucket=my-bucket endpoint="minio:9000" key=test-nwgqv/test-nwgqv-collect-3553655367/main.log path=/tmp/argo/outputs/logs/main.log
time="2023-06-15T15:57:44.584Z" level=info msg="Save artifact" artifactName=main-logs duration=12.868292ms error="<nil>" key=test-nwgqv/test-nwgqv-collect-3553655367/main.log
time="2023-06-15T15:57:44.584Z" level=info msg="not deleting local artifact" localArtPath=/tmp/argo/outputs/logs/main.log
time="2023-06-15T15:57:44.584Z" level=info msg="Successfully saved file: /tmp/argo/outputs/logs/main.log"
time="2023-06-15T15:57:44.607Z" level=info msg="Create workflowtaskresults 201"
time="2023-06-15T15:57:44.610Z" level=info msg="Alloc=9197 TotalAlloc=16603 Sys=28285 NumGC=5 Goroutines=10"

votes +1

I'm seeing this exact issue.
I'm not sure why @juliev0 removed the bug tag.  Seems more like the definition of a bug.

It seems the issue affects not only the parallel tasks but a single one as well. So if we have an entrypoint template calling some task (via steps or DAG) and it fails, no output parameters will be recorded to the top level template.
Looks like a dealbreaker if you need to call some template from another via templateRef and retrieve it outputs after that.

any update on this? has anyone able to work around this?
You could technically trap the error and show the task as success to get the output (bad design) but our use-case is to visibly see that the task failed and also collect the output

This seems like a small enough fix, can this be prioritized? Users should have the option to decide how they want to deal with outputs from failed tasks.

+1


Has Sonos Update 8 broken this?

When ever I try to follow the instructions page or use the curl command I get a 400 bad request error. Has the recent update to Sonos broken command?

Yes, seeing the same error.
PLAY:5: Living Room
Version: 8.0 (build 371245270)
Hardware Version: <IP_ADDRESS>-1

Okay, I think I've got it working. Short answer: try changing the SID to 253 (instead of 255) in the CURL string. Not sure why, but perhaps 255 is already registered on our systems?
I did a little digging and the CURL request is posting the "right answers" to this form:
http://[SONOS IP ADDRESS]:1400/customsd.htm
(Here's a filled out version of it.)
Hopefully this helps anyone who encounters this issue...

So I tried both 255 and 253, both gave me a internal server error (500) when the form was submitted. Filled out with same info as in your picture above @tonyrobots

Both 255 and 253 give me a 400 Bad Request error, not 500 🤔

Hmm, wish I could be of more help. Try SIDs ranging from 240-253, maybe one will work. Hopefully the project owner can provide more info/an update.

I tried SIDs from 240-253 so if the project owner would be able to provide an update it would be much appreciated. I am a first time Sonos owner and would love to get this working.

@drewdayton The official tool should be updated, but this is how I got it to work in the meantime:

Follow the official instructions to get your Sonos IP address
Go to http://[Sonos IP]:1400/customsd.htm in your web browser
Fill out the form using @tonyrobots's example, but make the SID something other than 255 (I used 253) https://imgur.com/5WDvmFh
When you're done, click "Submit" and you should see the success response!

From there, you can follow the official instructions on adding the Overcast service to your Sonos.

I just ran into this myself. It looks like 8.0 has added some additional security measures around that /customsd.htm setup page which breaks the automatic configuration. @alexiscordova's instructions should work as a fallback. But I'm trying to see if there's another way around it. Otherwise we'll just have to update the instructions to tell people what fields to copy.

Just adding on here that I setup this solution tonight using the steps from @tonyrobots and @alexiscordova - 255 and 253 failed, but 250 was success response (for me/my system).

@josh: I loaded the page and grabbed the csrfToken out of the source then added that to the args in the curl command and it worked. Should be pretty easy to automate.

They've added a cross site request forgery token. Attached script solves the problem - my sonos units are registered in local dns but if you just change the list of den library, etc, for the IPs of your units it should work.
`#!/bin/ksh
for sonos in kitchen livingroom den library sewingroom office ; do
uri="http://${sonos}:1400/customsd"
echo
echo Working $sonos unit
echo ....getting CSRF token...
curl --connect-timeout 5 --max-time 10 -o /tmp/fo.$$.out  "$uri.htm"
if [ $? -gt 0 ] ; then
	echo FAIL for $sonos
	continue
fi

sed -e 's/^.*csrfToken" value="//' -e 's/".*$//' /tmp/fo.$$.out |&
read -p CSRF
rm /tmp/fo.$$.out

echo ... token $CSRF

curl \
--connect-timeout 5 \
--max-time 10 \
--data-urlencode 'sid=255' \
--data-urlencode 'csrfToken='"$CSRF" \
--data-urlencode 'name=Overcast' \
--data-urlencode 'uri=http://overcast-sonos.herokuapp.com/smapi.php' \
--data-urlencode 'secureUri=https://overcast-sonos.herokuapp.com/smapi.php' \
--data-urlencode 'pollInterval=30' \
--data-urlencode 'authType=UserId' \
--data-urlencode 'stringsVersion=1' \
--data-urlencode 'stringsUri=http://overcast-sonos.herokuapp.com/strings.xml' \
--data-urlencode 'presentationMapVersion=1' \
--data-urlencode 'presentationMapUri=http://overcast-sonos.herokuapp.com/pmap.xml' \
--data-urlencode 'containerType=MService' \
--data-urlencode 'caps=trFavorites' \
--data-urlencode 'caps=alFavorites' \
--data-urlencode 'caps=logging' \
--data-urlencode 'caps=playbackLogging' \
--data-urlencode 'caps=extendedMD' \
"$uri"

echo
echo next?
read

done
`

Got this to work an hour ago without the script. Used SID 243 and the values in drewdayton's image.
OSX 10.13.3
Sonos Controller for Mac 8.4
Google Chrome 65.0.3325.162
I only have a single room Sonos system (Sonos 1)

While it's no longer a magical setup experience, the setup instructions have now been updated for manually filling out the custom service web form.
https://github.com/josh/overcast-sonos#setup

Works great. Thank you!
On Sat, May 5, 2018 at 12:31 AM Joshua Peek<EMAIL_ADDRESS>wrote:

Closed #11 https://github.com/josh/overcast-sonos/issues/11.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/josh/overcast-sonos/issues/11#event-1611119341, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AALqnAJpAnHIyvss3USb13evtfFudCGKks5tvSsLgaJpZM4P1SVl
.


Remote Desktop Session Hosts

Would users on a Remote Desktop Session Host see these update notifications if the Group Policy settings are not configured?

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

ID: 67822bd8-e17c-5e0b-2ad8-f51325dcb30d
Version Independent ID: 2a10d821-4fa6-9e06-232c-7d6cba683615
Content: End-user update notifications for Office 365 ProPlus
Content Source: DeployOffice/end-user-update-notifications-for-office-365-proplus.md
Service: o365-proplus-itpro
GitHub Login: @DHB-MSFT
Microsoft Alias: danbrown

I believe users on RDSH will see update notifications, but I'm trying to get confirmation that's actually the case.

Yes, users on RDSH should see those notifications. Office wouldn't update if any user had any Office apps running, since all users are running on the same computer and Click-to-Run (the installation/update technology) is installed/runs per computer, not per user.  Hope that helps.


Fix config auto unmarshalling

See https://mattermost.atlassian.net/browse/MM-13581

Codecov Report

Merging #13 into master will decrease coverage by 7.91%.
The diff coverage is 44.44%.

@@            Coverage Diff             @@
##           master      #13      +/-   ##
==========================================
- Coverage   86.29%   78.37%   -7.92%
==========================================
  Files           3        4       +1
  Lines         124      148      +24
==========================================
+ Hits          107      116       +9
- Misses          9       22      +13
- Partials        8       10       +2

Impacted Files
Coverage Δ

server/plugin.go
92.1% <100%> (+0.21%)
:arrow_up:

server/configuration.go
34.78% <34.78%> (ø)

Continue to review full report at Codecov.

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


NERT-653 UI for PI report

Links to Jira Tickets

NERT-653

Description of Changes

UI for PI report implemented (currently showing mocked data)
API for PI report not yet in place
Minor change to the test app pipeline script to display env
Updated app Header component to properly display version

Note: A ticket should be written to finish this work

There are, they will move to next sprint


arm64

Hi, is it possible for you to build this for arm64 also?

arm64 is available with the latest build.


MIT license, other metadata fixes

Checklist

[x] Used a fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Was just having a look around on this, and noted that the license was incorrect. Also cleaned up some other meta. Hooray compliance!

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


⚠ PrivateHD has degraded performance

In 320a1b0, PrivateHD ($PHD) experienced degraded performance:

HTTP code: 200
Response time: 1485 ms

Resolved: PrivateHD performance has improved in ba3e2ad.


Why is the value of a checkbox using useCheckbox '' instead of 'on'?

Discussed in https://github.com/adobe/react-spectrum/discussions/3516

Originally posted by brandonpittman September 14, 2022
Ran into this today and was wondering why is the value of a checkbox using useCheckbox '' instead of 'on'?
I'm not passing it a value, but it's getting assigned to an empty string.

A checkbox's default behavior when it doesn't have an explicit value is to send 'on' when submitted in a form.
From MDN:

If the value attribute was omitted, the default value for the checkbox is on, so the submitted data in that case would be subscribe=on

Also, this example you shared creates a checkbox with a value attribute that has no value.

https://codesandbox.io/s/vigilant-keldysh-0cp8ry?file=/src/App.js

The useCheckbox examples in the docs also present with this problem.

https://react-spectrum.adobe.com/react-aria/useCheckbox.html#example

So the server pulls '' out of the FormData. The expected behavior is <input type="checkbox" > shouldn't have a value attribute in the DOM.
In the following example, you'll see that useCheckbox applies an empty value attribute. The default checkbox doesn't have that. When this usually occurs is when you apply value={null || undefined}—which I now believe useToggle is doing here.

https://codesandbox.io/s/affectionate-sea-je2biu?file=/src/App.js

We don't come up with a value for you because that usually needs to be a string that matches something on your server should you want to submit a form. So it's empty until you supply one. The value doesn't matter if you are submitting the data via js because you'd store the data in some js object.

If you expect the browser's default behavior and submit a form normally, this is a problem.

Hi, I would like to contribute here. Can I start working on this?

Thanks for volunteering, go for it!

@snowystinger I did confirm the issue is caused by the value=undefined returned by the useToggle
The idea is to return the value attribute from the useToggle if it's only passed via props to it, else do not return it.
So, instead of value, return the expression ...(Object.prototype.hasOwnProperty.call(props, 'value') && {value})  in useToggle which checks the if the value is passed in props and then returns it. This makes sure the checkbox value is on if the value is not passed.
Let me know if this is the right way to go.

...(Object.prototype.hasOwnProperty.call(props, 'value') && {value})

I was kinda thinking it would have to be something like this.

yeah, I wasn't sure if there is any better way of doing it.

Hey! Thanks for starting to look into it, this is such a strange bug. Undefined should be omitted from the dom. With your observations, I found both that the React Team doesn't intend to fix this, and that MUI also works around this.
https://github.com/facebook/react/issues/17590
https://github.com/mui/material-ui/pull/28423
I think we can do it for all of useToggle, we don't need to special case it to checkboxes. I see this affects our React Spectrum Switch component as well https://react-spectrum.adobe.com/react-spectrum/Switch.html

@snowystinger Hi, thanks for the references.
Passing null in the value attribute logs a warning in the console by default. So, we omit only the undefined value in useToggle in the same way as MUI even if it's passed intentionally?
Something like this
...(value !== undefined && {value})
Let me know if this is the right way, so that I can raise a PR for the changes in useToggle.

Since I originally reported this, I went ahead and created a PR that fixes it over here.


include performance tuning documentation for opensearch indexing scenarios

Description
This document describes the configurations that were used to tune indexing workload to optimize performance by 60%. They are best as recommendations in documentation so a customer can choose to apply them.
Issues Resolved
List any issues this PR will resolve, e.g. Closes [...].
Closes [4602]
Checklist

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

Maybe this doesn't live in _im_plugin folder?

There's this article: https://repost.aws/knowledge-center/opensearch-indexing-performance
I think we could merge the content of the two.

There's this article: https://repost.aws/knowledge-center/opensearch-indexing-performance
I think we could merge the content of the two.

I agree the contents can be merged. This doc, and the one shared in repost are configurations which should be considered by every customer interested to improve indexing.
The link you shared doesn't seem to be not part of the documentation repo? I am not sure how aws repost is intended to be used (as a Q&A for issues, or every customer configuring opensearch should go over it for best practices/recommendations etc.)? If it is the latter, then please share how I can contribute there.
If not, it might be better this change is closer to the docs, so that customers could reference it when configuring OpenSearch without needing to search for further indexing optimizations.

I agree the contents can be merged. This doc, and the one shared in repost are configurations which should be considered by every customer interested to improve indexing.

The link you shared doesn't seem to be not part of the documentation repo? I am not sure how aws repost is intended to be used (as a Q&A for issues, or every customer configuring opensearch should go over it for best practices/recommendations etc.)? If it is the latter, then please share how I can contribute there.

I was thinking we grab stuff out of that "repost" article and add it to the one you drafted to make it more complete, like a one-stop shop for indexing or search throughput improvements.
I'm hoping for feedback from @Naarcha-AWS or someone on the docs team in terms of where this lives in the information hierarchy of the docs repo.

If not, it might be better this change is closer to the docs (in a different path than _im_plugin?), so that customers could reference it when configuring OpenSearch without needing to search for further indexing optimizations.

I agree

Thanks @wbeckler . I've merged the contents in this PR.
Awaiting feedback from the docs team on the correct place to add such content. @Naarcha-AWS , @kolchfa-aws please provide your inputs.

Thanks, @akashsha1! I would put this topic under Creating and tuning your cluster (https://opensearch.org/docs/latest/tuning-your-cluster/index/) even though it's indexing-related. It might be more visible there.

Thanks for the detailed review @kolchfa-aws. I've updated the doc per your feedback. Please take a look, and help sign-off if all looks good.

A couple of minor comments, after which this should be ready for the second review. Also, could you merge main into your branch and fix DCO when you get a chance? Thanks!

Done. DCO check passes. Awaiting second reviewer sign-off

Hi @kolchfa-aws

hi @kolchfa-aws - all changes addressed, DCO passing. please help merge with main.

Thanks so much, @akashsha1! I'll arrange for the second review.

@natebower - I resolved all your comments.
@natebower  @kolchfa-aws  - I was resolving merge conflicts to meet the DCO requirements, and am not sure how I was able to force push the branch to merge. Can you help confirm if it successfully merged? This was not my intention to merge before final sign-off, and I hope I did not break anything.

Closes [4602]

@natebower - I resolved all your comments. @natebower @kolchfa-aws - I was resolving merge conflicts to meet the DCO requirements, and am not sure how I was able to force push the branch to merge. Can you help confirm if it successfully merged? If not, how can I fix it? This was not my intention to merge before final sign-off, and I hope I did not break anything.

Looks like the PR did not add any changes. I am not sure how to re-open the same PR, but I created another PR which has all your comments resolved. Please help with signing-off on that:
https://github.com/opensearch-project/documentation-website/pull/4712/files


Code still running without correct closing tags

Describe your problem and how to reproduce it:
I noticed that the code in this section runs without the proper closing tags - example
some text
 still runs fine.
Add a Link to the page with the problem:
https://learn.freecodecamp.org/responsive-web-design/applied-accessibility/use-headings-to-show-hierarchical-relationships-of-content
Tell us about your browser and operating system:

Browser Name: Google Chrome
Browser Version: version 70.0.3538.110
Operating System: Windows 64bit

If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box):

Hi @saslamp,
Thank you for opening this issue. This has been fixed in the PR https://github.com/freeCodeCamp/freeCodeCamp/pull/19590 and will be shipped soon!
Closing this.
Happy coding!


docs: fix instructions to differentiate between Blazor Server and Blazor WASM in the setup instructions.

🙋 Documentation Request
On this page https://github.com/microsoft/fast-blazor in the Getting started section it provides the following instructions:

Next, add a script tag to your index or main layout to reference the web components:

This is only correct for Blazor WASM projects.  Blazor Server projects use a Blazor Component for the Index and MainLayout portions.  Script tags aren't allowed there.
💁 Possible Solution
Differentiate between the two types of Blazor projects and provide an additional instruction to place the script tag in the _Host.cshtml file.

@coleman-rik Would you be interested in putting together a PR to the readme file to make this correction? That would be a nice contribution.


fix trueaccord/ScalaPB#94

Camel casing issue: Keep underscore when it is separating two digits.
So x1_1x is no more conflicting with x11x when camelcased.
Add openrtb.proto from https://github.com/google/openrtb

Underlying issue solved - please let me know if additional changes are necessary.


New Project Wizard is flawed in multiple ways

I hope this is the right place to report this, since the project wizard is technically part of the IntelliJ Kotlin Plugin, but the Compose for Desktop template is only related to this project and not to the kotlin plugin. If I'm wrong here, please redirect me.
The issue is that the "Jetpack Compose for Desktop - Multiplatform" project template produces a new project that already contains multiple errors. Here's a list of steps to reproduce and the errors that appear at the different stages:

File -> New Project -> Kotlin -> Jetpack Compose for Desktop (Experimental) -> Multiplatform
Choose name and location (I'll use test and D:\dev\test for now)
Build System: Gradle Kotlin (only available option)
Project JDK: 15 (I use OpenJDK 15 but I suppose the JDK vendor does not matter)
Artifact Coordinates: Group ID "com.example", Artifact ID "test", Version "1.0"
Click 'Next' and select Android SDK if not detected automatically
Click 'Finish'

-> Error 1: During the Gradle Import, the following warning appears:
Duplicate content roots detected
		Path [D:/dev/test/common/src/androidTest/kotlin] of module [test.common.androidAndroidTest] was removed from modules [test.common.androidTest]
		Also 1 more path was deduplicated. See idea log for details

Wait for the Gradle Import to finish
Go to: Gradle Tool Window -> test/Tasks/build and run "build"

-> Error 2: During the Gradle Build, the following warning appears:
Warning: The 'kotlin-android-extensions' Gradle plugin is deprecated. Please use this migration guide (https://goo.gle/kotlin-android-extensions-deprecation) to start working with View Binding (https://developer.android.com/topic/libraries/view-binding) and the 'kotlin-parcelize' plugin.

-> Error 3: During the following gradle tasks:

:common:compileDebugJavaWithJavac
:android:compileDebugJavaWithJavac
:common:compileReleaseJavaWithJavac
:android:compileReleaseJavaWithJavac

the following warning appears:
warning: [options] source value 7 is obsolete and will be removed in a future release
warning: [options] target value 7 is obsolete and will be removed in a future release

Go to: Gradle Tool Window and run "Reload All Gradle Projects" (Errors 1 and 2 will appear again)
Go to: test/android/src/main/java/com/example/android/MainActivity

-> Error 4: test/android/src/main/java is not marked as Sources Root, therefore Inspections are greatly reduced for this file

Mark test/android/src/main/java as "Sources Root"

-> Error 5: IntelliJ cannot find any of the imports, this causes 10 code errors in total. The imports affected are:

com.example.common.App
android.os.Bundle
androidx.appcompat.app.AppCompatActivity
androidx.compose.ui.platform.setContent

Go to: test/common/src/androidMain/kotlin/com.example.common.platform.kt`

-> Error 6: IntelliJ marks getPlatformName() as error because "Actual function 'getPlatformName' has no corresponding expected declaration". Apparently, the expect declaration at test/common/src/commonMain/kotlin/com.example.common/platform.kt is not found.

Go to: test/common/src/androidTest

-> Error 7: The directory is not marked as a module root, but instead the two subdirectories "kotlin" and "resources" are marked as module roots and test sources root. The displayed module name for "kotlin" is "androidAndroidTest" and for "resources" it's "androidTest".
As far as I know, those are all errors or weird behaviours that appear in a fresh project from the "Jetpack Compose for Desktop - Multiplatform" template that has not been edited in any way.
I'm quite confused about why I am getting all these problems in a fresh project, moreover I'd like to know how I can fix them. The gradle build seems to work (ignoring the warnings) and the sample desktop application works as expected. However, the unavailable and/or erroneous inspections for android-related modules make it really hard to properly work with Jetpack Compose for Desktop. If the error is somehow related to my configuration (although I mainly sticked to the standard), please tell me how to change it in order to fix the problems.
Environment:

Windows 10 Pro
IntelliJ IDEA Ultimate:

IntelliJ IDEA 2020.3 (Ultimate Edition)
Build #IU-203.5981.155, built on November 30, 2020
Runtime version: 11.0.9+11-b1145.21 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Windows 10 10.0
GC: ParNew, ConcurrentMarkSweep
Memory: 8158M
Cores: 4

Jetpack Compose for Desktop version 0.2.0-build132
Kotlin 1.4.20
JDK 15 (OpenJDK15)
Gradle 6.7.1 (wrapper)

Thanks for report, please make sure that you have Android SDK available.

Thanks for the detailed report!
I checked on this configuration:

Windows 10 Pro
IntelliJ IDEA 2020.3 (Community Edition)

IntelliJ IDEA 2020.3 (Community Edition)
Build #IC-203.5981.155, built on December 1, 2020
Runtime version: 11.0.9+11-b1145.21 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Windows 10 10.0
GC: ParNew, ConcurrentMarkSweep
Memory: 1979M
Cores: 16

Kotlin 1.4.10/1.4.20 in IDEA plugins
JDK 15 (OpenJDK15)

And created the project from the multiplatform template:

Compose for Desktop version 0.2.0-build132
Kotlin 1.4.20
Gradle 6.7.1 (wrapper)

Can't reproduce errors 1/4/5/6.
If setting Android SDK will not help, can you try on a clean configuration of IDEA, without importing the old settings?
Or redownload Android SDK, it can be broken.
Error 2
Errors 3/7 need further investigation, not sure what is the cause.

I tried to "fix" my android SDK but it seems that there was nothing wrong with it. Here are the steps I took:

Control Test (still the same errors as yesterday)
Checking whether Android Studio or the integrated SDK Manager detects the SDK properly (it does)
I installed my android-sdk via scoop, so I used scoop uninstall android-sdk --purge to get rid of everything for a new clean installation
I checked Android Studio again to see whether it detects another "hidden" SDK somewhere I might have forgotten about (was not the case)
Reinstallation of the Android SDK (scoop install android-sdk)
Again, I checked Android Studio, but it told me that my installation is "incomplete", so I downloaded the rest via Android Studio.
New test of the original issue in IntelliJ IDEA (still the same errors)
I thought that maybe the "incomplete" scoop installation might be a problem so I ran another uninstall --purge and reinstalled to a different location using only Android Studio
Another test of the original issue in IntelliJ. This time I had to manually re-select the sdk location in the project wizard because it had changed. (still the same errors, but this time I got license agreement warnings for android-sdk. I accepted all licenses using sdkmanager.bat)

It really seems that this problem is not related to an android sdk problem after all, or I am missing something obvious.
I tried to further investigate the problem and found a little bit of new context:

Error 1 seems to be linked to Error 7 (see the module names). Also it seems really weird that this error appears every time I run "Reload all Gradle Projects". The message tells me that the path duplicate has been taken care of, yet it re-appears on reload.

Error 3 only appears during a fresh gradle build, and never during a gradle project import or a reload. "Fresh" in this case means that the project has not yet been built or that "clean" was run right before.

Error 4 and 5: At first, the file has no error highlighting at all, but after you mark java directory as sources root, error 5 appears. Additionally, the IDE informs me that Kotlin is not configured for this file. When I then run "Reload all Gradle Projects", that message goes away, BUT the java directory again gets unmarked as sources root. For some reason, the error highlighting still works.

Error 6: This one really confuses me. I don't understand how the configuration of the androidMain module differs from the one of desktopMain so that the actual declaration of desktopMain does map to the expect declaration, but the declaration in androidMain does not.

Error 7: As previously mentioned, it seems to be linked to Error 1 in some way..

I also noticed two additional "errors" in File -> Project Structure that might provide some more insight:

In the "Modules" menu, the element "test/android/Kotlin" shows the warning "'kotlin' library not found in the module dependencies list". I double-checked that this issue only appears for this module and not for any other module in the list.

In the "Problems" menu, it shows two problems:

1. Library Gradle: org.jetbrains.kotlinx:kotlinx-coroutines-core-metadata:commonMain:1.4.1 has broken classes paths:
D:\dev\test\desktop\build\tmp\kotlinMetadata\jvmMain\implementation\org.jetbrains.kotlinx-kotlinx-coroutines-core-metadata\org.jetbrains.kotlinx-kotlinx-coroutines-core-metadata-commonMain.klib [Fix]

2. Library Gradle: org.jetbrains.kotlinx:kotlinx-coroutines-core-metadata:concurrentMain:1.4.1 has broken classes paths:
D:\dev\test\desktop\build\tmp\kotlinMetadata\jvmMain\implementation\org.jetbrains.kotlinx-kotlinx-coroutines-core-metadata\org.jetbrains.kotlinx-kotlinx-coroutines-core-metadata-concurrentMain.klib [Fix]

I hope all of this can shed more light on the problem! I'm not quite certain what you mean with "try on a clean configuration of IDEA, without importing the old settings". Should I re-install the IDE without referring to my config folder?

Just wanted to add that I just tried this again with a fresh IDE installation. My scoop installation of IntelliJ IDEA Ultimate wasn't properly updating to minor releases, so I re-installed it. But most of the config options and plugins were restored because I have "Settings Sync" activated (tbh that was very convenient).
All the errors persisted just as I have described them at first. For that reason, I can rule out that my IDE installation was broken in some way. What I can not rule out is that the problem is somehow linked to my IDE config and/or plugins. Does anyone know a safe way to revert all config options of IntelliJ to the default options, but being able to switch back to my old config later?

Just wanted to add that I just tried this again with a fresh IDE installation. My scoop installation of IntelliJ IDEA Ultimate wasn't properly updating to minor releases, so I re-installed it. But most of the config options and plugins were restored because I have "Settings Sync" activated (tbh that was very convenient).
All the errors persisted just as I have described them at first. For that reason, I can rule out that my IDE installation was broken in some way. What I can not rule out is that the problem is somehow linked to my IDE config and/or plugins. Does anyone know a safe way to revert all config options of IntelliJ to the default options, but being able to switch back to my old config later?

way to revert all config options of IntelliJ to the default options, but being able to switch back to my old config later
To revert IDEA to default state you can just rename %APPDATA%\JetBrains\Idea* folder.

To restore - rename the folder back.
Don't know how it will work with "Settings Sync" though. Probably it should be disabled first.

way to revert all config options of IntelliJ to the default options, but being able to switch back to my old config later
To revert IDEA to default state you can just rename %APPDATA%\JetBrains\Idea* folder.

To restore - rename the folder back.
Don't know how it will work with "Settings Sync" though. Probably it should be disabled first.

Okay, so I tried this again. I turned off the settings sync in the IDE, deleted config and system folder, did another clean re-installation, disabled all downloaded plugins and tried to set up the same basic project again. I ran into the same errors again. I don't know what's going on here.

Okay, so I tried this again. I turned off the settings sync in the IDE, deleted config and system folder, did another clean re-installation, disabled all downloaded plugins and tried to set up the same basic project again. I ran into the same errors again. I don't know what's going on here.

I fixed it.
I did two things and apparently both played a role in resolving the problems.
Firstly, I was still not sure about my Android SDK. I mean I specify its location in the project wizard, but I was still suspicious. Checking my environment variables, it turned out that I only had ANDROID_HOME (which is deprecated anyway) and ANDROID_SDK_HOME (which was probably pointing to a wrong location) set. So I deleted those and followed this StackOverflow answer to set all possibly needed envs (except for ABDROID_NDK_ROOT).
Secondly, I noticed that even though I specified the location of the SDK in the project wizard, it did not show up in Project Structure > SDKs. So I added it manually there.
This, and some re-building and re-importing actually solved the problems.
There are two reasons why I don't think the issue should be closed already:

I'm not yet entirely sure what caused the problems and how my actions fixed them
I think it would be expected behaviour to register the Android SDK under 'Project Structure > SDKs' when you already specify it in the project wizard. As of now, the SDK location specified in the wizard seems to be barely relevant.

I fixed it.
I did two things and apparently both played a role in resolving the problems.
Firstly, I was still not sure about my Android SDK. I mean I specify its location in the project wizard, but I was still suspicious. Checking my environment variables, it turned out that I only had ANDROID_HOME (which is deprecated anyway) and ANDROID_SDK_HOME (which was probably pointing to a wrong location) set. So I deleted those and followed this StackOverflow answer to set all possibly needed envs (except for ABDROID_NDK_ROOT).
Secondly, I noticed that even though I specified the location of the SDK in the project wizard, it did not show up in Project Structure > SDKs. So I added it manually there.
This, and some re-building and re-importing actually solved the problems.
There are two reasons why I don't think the issue should be closed already:

I'm not yet entirely sure what caused the problems and how my actions fixed them
I think it would be expected behaviour to register the Android SDK under 'Project Structure > SDKs' when you already specify it in the project wizard. As of now, the SDK location specified in the wizard seems to be barely relevant.

To retest on plugin 1.5.30

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


Duplicate Personalized Action Plans

There are still a lot of problems uploading curated experiences.  We are still getting double PAPs.  (2 “safety planning” or “prepare for hearing”).    (Update – I included you on an email describing my experience today suggesting the extra PAP issue is related to A2J.)
Issue submitted by Jeannie Sato (AK)

Is this a valid defect?

@KellyeDC - I would put this in high priority.  We need to fix before pilot.

We went through whole flow in code and UI and could not reproduce this bug.


ListView crashes when ISelectionInfo is used with Extended selection

Describe the bug
An ArgumentOutOfRangeException is thrown when using ListView extended selection with ISelectionInfo.
I originally listed this under #8684 but it would seem to be a separate bug (or reportably separately) since it does not involve a collection changed notification. I guess the root cause could be the same.
Steps to reproduce the bug

Download the WinUI 3 Gallery and compile the WinUiGallery solution.

In ControlPages / ListViewPage.xaml.cs, add "using Microsoft.UI.Xaml.Data;" at the top of the file and add the following collection class at the bottom of the namespace. This is an ObservableCollection implementing ISelectionInfo (not completely, but sufficiently for the demonstration).

    public class ObservableCollectionSelector<T> : ObservableCollection<T>, ISelectionInfo
    {
        public ObservableCollectionSelector(IEnumerable<T> source) : base(source) { }
        private IList<ItemIndexRange> Selection = new List<ItemIndexRange>();

        public void SelectRange(ItemIndexRange itemIndexRange)
        {
            //Debug.WriteLine($"Select {itemIndexRange.FirstIndex}:{itemIndexRange.LastIndex}");
            if (this.Selection.Any(iir => iir.FirstIndex <= itemIndexRange.LastIndex + 1 && iir.LastIndex >= itemIndexRange.FirstIndex - 1)) { throw new NotSupportedException("failed select"); }
            this.Selection.Add(itemIndexRange);
        }
        public void DeselectRange(ItemIndexRange itemIndexRange)
        {
            //Debug.WriteLine($"Deselect {itemIndexRange.FirstIndex}:{itemIndexRange.LastIndex}");
            if (!this.Selection.Any(iir => iir.FirstIndex == itemIndexRange.FirstIndex && iir.LastIndex == itemIndexRange.LastIndex)) { throw new NotSupportedException("failed deselect"); }
            this.Selection.Remove(itemIndexRange);
        }
        public bool IsSelected(int index)
        {
            return this.Selection.Any(iir => iir.FirstIndex <= index && iir.LastIndex >= index);
        }
        public IReadOnlyList<ItemIndexRange> GetSelectedRanges()
        {
            //Debug.Assert(!this.Selection.Any((iir, i) => i > 0 && iir.FirstIndex <= this.Selection[i - 1].FirstIndex + 1));
            return this.Selection.AsReadOnly();
        }
    }

Around line 59, change Control2.ItemsSource = await Contact.GetContactsAsync(); so that it says Control2.ItemsSource = new ObservableCollectionSelector<Contact>( await Contact.GetContactsAsync());

Run the app, select Collections on the left and then ListView. Scroll down to the second ListView ("ListView with Selection Support") and select Extended as the selection type. Click on the first entry ("Kendal Collins") and then CTRL-Click on the third entry ("Vance DeLeon"). Then release the control key and click on the 5th entry ("Amber Rodriguez").

Expected behavior
Expected: the two previously selected items should be deselected and the new one should be selected. Actual: no change in visual state, and a crash with an ArgumentOutOfRange exception in WinRT.Runtime.dll. If you uncomment the WriteLine statements, it shows that index 0 is deselected then the crash occurs.
The details of the exception are:
Exception thrown: 'System.ArgumentOutOfRangeException' in WinRT.Runtime.dll
Exception thrown at 0x00007FFFC0F6B699 (KernelBase.dll) in WinUIGallery.exe: WinRT originate error - 0x8000000B : 'This collection cannot work with indices larger than Int32.MaxValue - 1 (0x7FFFFFFF - 1). (Parameter 'index')'.
Microsoft.ui.xaml.dll!00007FFF23716C7D: 8000000B - E_BOUNDS
Screenshots
No response
NuGet package version
None
Windows version
No response
Additional context
WindowsAppSDK 1.6.240829007 and I happen to be using Windows 10, 22H2 build 19045.4894

This bug makes it impossible to use virtualizing ListView with multiple selection. A blocker for my project! Any thoughts on fixing this?

it looks like something is wrong with the List<ItemIndexRange> data structure, I tried HashSet<ItemIndexRange> and it worked.

@w-ahmad are you saying that the List<T> implementation has a bug in it? That would be quite significant considering how fundamental that class is in .NET —-

After some experimenting I concluded that most likely the ListView is invalidating the selection iterator by deselecting while iterating.
First step was that I changed IList to List in the declaration of Selection. This way it is not necessary to call AsReadOnly() in GetSelectedRanges.
Second step I compared returning Selection to returning Selection.ToList() from GetSelectedRanges and tracing the sequence of calls. If Selection is returned then it first gets the list of selected ranges and then crashes after deselecting index 0. But if Selection.ToList() is returned then after deselecting index 0, it continues and deselects index 2, then selects index 4.
While the exception thrown is not the usual one saying that the iterator has been invalidated, the other symptoms tell the story. The deselection of index 0 changes the Selection list and thereby certainly invalidates any iterator that was obtained earlier. However if a copy of Selection is made then changes to Selection do not invalidate the iterator of that copy.
The selection code in ListView should be reviewed and likely fixed so that during deselection it always pulls the first element from the list, or uses a buffer, or otherwise avoids invalidating its iterator.
Here is the updated collection code. Switch the commented FAILS/SUCCEEDS lines in GetSelectedRanges and compare the outputs.
public class ObservableCollectionSelector<T> : ObservableCollection<T>, ISelectionInfo
{
    public ObservableCollectionSelector(IEnumerable<T> source) : base(source) { }
    private List<ItemIndexRange> Selection = new List<ItemIndexRange>();
    // Alternative: private IList<ItemIndexRange> Selection = new List<ItemIndexRange>();
    // Alternative: private HashSet<ItemIndexRange> Selection = new HashSet<ItemIndexRange>();

    public void SelectRange(ItemIndexRange itemIndexRange)
    {
        Debug.WriteLine($"Selecting {itemIndexRange.FirstIndex}:{itemIndexRange.LastIndex}");
        if (this.Selection.Any(iir => iir.FirstIndex <= itemIndexRange.LastIndex + 1 && iir.LastIndex >= itemIndexRange.FirstIndex - 1)) { throw new NotSupportedException("failed select"); }
        this.Selection.Add(itemIndexRange);
        Debug.WriteLine($"Selected {itemIndexRange.FirstIndex}:{itemIndexRange.LastIndex}");
    }
    public void DeselectRange(ItemIndexRange itemIndexRange)
    {
        Debug.WriteLine($"Deselecting {itemIndexRange.FirstIndex}:{itemIndexRange.LastIndex}");
        if (!this.Selection.Any(iir => iir.FirstIndex == itemIndexRange.FirstIndex && iir.LastIndex == itemIndexRange.LastIndex)) { throw new NotSupportedException("failed deselect"); }
        this.Selection.Remove(itemIndexRange);
        Debug.WriteLine($"Deselected {itemIndexRange.FirstIndex}:{itemIndexRange.LastIndex}");
    }
    public bool IsSelected(int index)
    {
        return this.Selection.Any(iir => iir.FirstIndex <= index && iir.LastIndex >= index);
    }
    public IReadOnlyList<ItemIndexRange> GetSelectedRanges()
    {
        //Debug.Assert(this.Selection.None((iir, i) => i > 0 && iir.FirstIndex <= this.Selection[i - 1].FirstIndex + 1));

        Debug.WriteLine($"Getting selected ranges");
        IReadOnlyList<ItemIndexRange> selectedRanges = this.Selection; // FAILS
        //IReadOnlyList<ItemIndexRange> selectedRanges = this.Selection.ToList(); // SUCCEEDS
        Debug.WriteLine($"Got {selectedRanges.Count} selected ranges");
        return selectedRanges;
    }
}


use pip install TGI3.0

Feature request
I want to use
pip install tgi
but there are only 2.4.0
And I see the release already has 3.0.1.
Do I just have to wait to use it via pip install tgi 3.0+?
Motivation
Easier to use tgi 3.0+
Your contribution
https://pypi.org/project/tgi/

Hi @xiezhipeng-git ,
I’m new to open-source contributions, and I’m really excited about the opportunity to contribute to this project! I’ve looked into the issue and would like to help in resolving it by ensuring that version 3.0.1 of the tgi package is available via pip install.
I’d appreciate any guidance or pointers on how to proceed, especially regarding testing and uploading the package to PyPI if needed. Looking forward to collaborating and learning through this contribution!
Thank you! 😊

Hi @xiezhipeng-git , 你好， I’m new to open-source contributions, and I’m really excited about the opportunity to contribute to this project!我是开源贡献的新手，我真的很高兴有机会为这个项目做出贡献！
I noticed that the latest version (3.0.1) isn’t available via pip install. Rather than just uploading it manually to PyPI, I’d like to propose implementing a CI/CD workflow to automatically upload the latest GitHub release to PyPI. This way, every time a new release is tagged on GitHub, it will be automatically pushed to PyPI, ensuring that users always have access to the latest version.我注意到最新版本（3.0.1）不能通过pip安装。我建议实现一个CI/CD工作流来自动将最新的GitHub版本上传到PyPI，而不是手动将其上传到PyPI。这样，每次在GitHub上标记新版本时，它都会自动推送到PyPI，确保用户始终可以访问最新版本。
I’d be happy to work on setting this up and would appreciate any guidance or feedback on how the maintainers would prefer to approach this.我很乐意进行设置，并希望得到任何关于维护人员如何处理这一问题的指导或反馈。
Looking forward to contributing and learning through this project! 😊期待通过这个项目做出贡献和学习！😊

Maybe you can try twine
https://blog.csdn.net/mouday/article/details/80736312

It's a good suggestion, build from source is so complicated that it introduces a multitude of issues, hindering us from becoming users. looking forward to pip way!


Add logging

I'm currently troubleshooting login failures on prod (but annoyingly not dev) and AccessPass doesn't have any logging.  I'm doing what I can in my custom plug, but it would be great to have built-in logging.

I completely agree. It is something I will be mindful of when working towards next big release.


feat(hooks): add option to use setInterval to useProgress in order to fix tests

add option to use setInterval instead of setTimeout in useProgress
This proof of concept addresses issues with detox tests if you pass true for optional useSetInterval arg
#1823

How about we add an option to use the progress update event instead?

How about we add an option to use the progress update event instead?

Thanks for the input! This is my first time making any changes to this repo, so I'm not that familiar with it. Could you elaborate a bit on what you were thinking it would look like to use the PlaybackProgressUpdate event? Would it still call setTimeout rather than setInterval under the hood?
The reason I changed it back to setInterval is due to the nature of how detox waits on js timers, where it will wait on a setTimeout but not a setInterval, and so with endless setTimeout calls it will never proceed to run tests.

Why not just use setInterval for the whole hook instead? Get rid of setTimeout.. should work right?

Why not just use setInterval for the whole hook instead? Get rid of setTimeout.. should work right?

Yeah I think so, but that's how it used to be and it was changed to be setTimeout here and I was hesitant to revert that, since it seems like an intentional bugfix. Doing it this way also enables people to use setTimeout in detox builds and keep the existing functionality in prod builds (by passing in useSetInterval = true in detox builds but false in prod builds)

Closing this since the same result can be achieved by just increasing the interval to >1500ms. Per the Detox docs, it only waits 1500ms for setTimeout. So no change to this library is needed. You just need to pass different progressUpdateInterval values in detox tests than in your app, so that it's >1500 in detox tests


Animation Process

Hi, thanks for your excellent work!
It seems that you don't use learning-based methods for animation because there is no GT smpl available.
So I am wondering how you make such a good animation results.
In the code,  it takes the target smpl to reconstruct the mesh and uses the texture codebook learned from the training process for reconstruction.  The 'repose' function just use the target smpl and then add texture to it. Hence, you treat the animation like the reconstruction process. Am I right or there are some misundrstandings?

Yes, you are correct.
The method does not learn deformation or skinning weights, so it does not tackle pose-dependent deformation.
This strategy is closer to using nearest neighbors on a SMPL-X body model. It's easy to generalize but also has shortcomings near the underarm areas or close contact.

Thanks a lot for your reply!


custom oscillators in rebuild()

In case the oscillator type is set to custom, recreate it in rebuild() function inside the exported javascript.

Thank you!
'ExportAsJavascript' function has some bugs possibly.