chore: consolidate config and args

There's a bit of tension in the way we read "configuration" right now.

We read config from a wrangler.toml file via the readConfig() function, which returns a Config object.
Ae also read configuration from cli args, which have similar (but not the same) names for fields. Notably, we don't apply validation to those cli args (except for some that we ask yargs to do, but not as extensively as readConfig does)
This isn't even totally true, since we do apply readConfig's validations to some fields. (Just legacy_env, and we do read the env name from --env)
Because of this tension, we end up having to pass data downstream in a spread out manner, instead of a single object.
This can be seen in publish' args, which is config + stuff to override config https://github.com/cloudflare/wrangler2/blob/5cc0772bb8c358c0f39085077ff676dc6738efd3/packages/wrangler/src/publish.ts#L29-L48
This is even worse with dev, which is not only a long list of props, but also has to be drilled through every component, whcih would otherwise have been a single config object in context  https://github.com/cloudflare/wrangler2/blob/5cc0772bb8c358c0f39085077ff676dc6738efd3/packages/wrangler/src/dev/dev.tsx#L25-L53
I think the thing to do here, is field by field, make sure args values are being read and applied into the Config object
Then start removing those fields from being passed separately into dev and publish
So ideally (but probably not 100%), both dev and publish will take one config object, plus just a few more additional fields (if at all)

💯

I think the thing to do here, is field by field, make sure args values are being read and applied into the Config object

I started doing something like this with envName which I think could be a reference for how we could
https://github.com/cloudflare/wrangler2/blob/main/packages/wrangler/src/config/validation.ts#L116-L117

I'm going to close this issue for now, since we've made progress towards fixing this in the dev flow, and can continue to do so as part of general technical cleanup & stabilisation of DevEnv. The path we've ended up going down is consolidating config & args in ConfigController, which turns config + args into a consolidated StartDevWorkerOptions object. This is merged and default-on in Wrangler, and going forward we can expand this to e.g. the deploy flow


Modified expermients.json

Modulus Pull Request
Description

Modified expermients.json to include reservoir and geometry examples. Removed galerkin examples that needed license.
Checklist

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

Dependencies

/blossom-ci


[docs] Replace react-virtualized with react-virtuoso

Duplicates

[X] I have searched the existing issues
https://github.com/mui/material-ui/issues/31947

Related page
https://mui.com/material-ui/react-table/#virtualized-table
Kind of issue
Unclear explanations
Issue description
There are issue in installation of  React Virtualized with latest versions of react. The existing issues resolution recommends to get the react-virtualized updated, but it depends on the maintainer.
Context 🔦
As the React Virtualized seems un maintained, ~ 3 years since last release, the the example for virtualized table needs to be refactored to use some other virtualization library i-e react-virtuoso or react-window  which are actively maintained.

Similar issue: #31941
As of today, react-virtualized doesn't depend solely on React 16, but it doesn't seem well maintained. IMO we should update the docs to use react-window instead.
I'll gladly accept community contributions for this.
cc @mui/core

A PR was created recently to replace react-virtualized with react-virtuoso by the maintainer himself. See #35700

Hey guys, is someone working on it? I'll be happy to contribute

@thenamannanda Thanks for showing interest. It's already done in #35700.


Using with library that accepts input stream

Version 4.5.1
Node 8.16.0
I am using https://www.archiverjs.com/archiver#append to add this csv to a zip archive that is transferred back through expressjs response stream.
I append the asyncParser.input stream to the archive, add some data and then push null to signal the end of the stream.  However the stream does not seem to close.
var archive = archiver('zip');
const asyncParser = new json2csv.AsyncParser();
archive.append(asyncParser.input, {name: 'foo.csv'});
asyncParser.input.push(data);
asyncParser.input.push(null);

Without this library I would stream data back with a PassThrough stream:
var passthroughStream = new stream.PassThrough();
archive.append(passthroughStream, { name:'foo.csv' });
stream.write(data);
stream.end();

Hi @newmanw ,
Sending a push is the correct way to terminate the stream (see https://nodejs.org/api/stream.html#stream_readable_push_chunk_encoding).
First of all, you don't want to pass asyncParser.input to the archiver since it's just the raw JSON. You probably want to pass asyncParser.processor
Maybe the issue is something else. What is data?
If you are passing the array objects one by one (myArray.forEach(item => asyncParser.input.push(item))) you should create a new input in objectMode (see https://github.com/zemirco/json2csv/blob/master/test/JSON2CSVAsyncParser.js#L56)
Otherwise, the stream only takes a string, Buffer or Uint8Array. So if data is the full array you might want to do asyncParser.input.push(JSON.stringify(data));.
The first option will have a lower memory footprint.
In any case, if that was the problem, you'd be seeing an error. So I'm not sure where the problem is.
Can you create a small code example reproducing the issue so I can troubleshoot it?

@juanjoDiaz thanks so much.
This does indeed work,
var archive = archiver('zip');
const asyncParser = new json2csv.AsyncParser();
archive.append(asyncParser.processor, {name: 'foo.csv'});
let data = JSON.stringify({foo: 'bar'});
asyncParser.input.push(data);
asyncParser.input.push(null);


github site error

It can't express right at github site page service，especially for about file and post files  ，seems hugo service can't generate that.

I find the posts is draft


esockd_connection_sup should be redesinged

esockd_connectoin_sup should not use supervisor with 'simple_one_for_one' mode..
esockd_connection_sup should be responsible for:

link or monitor all children
max connections controll
deny/allow access control

the most important issue is how to store pids of children?
dict? set? map? proccess dictionary?

fixed in 2.2.x. use process_dictionary to store children pids


Replace fomantic divider module with our own

Should look exactly like before for normal dividers. "Horizontal" ones look better because they no longer use image backgrounds.

Adding backport because of the activity fixes and as it's a low-risk one.

Actually I don't think we need the backport, and it likely won't land cleanly.

Might want to also remove the ui class from them now.

Ready again.

Might want to also remove the ui class from them now.

Forgot about this, will do this as well, I suppose.

ui class is now removed. additional fixes:

Renamed horizontal to divider-text. A much better fitting name imho
Improved activity history headers, reduced markup, moved on text block to tooltip

I decided to keep the opinonated text-transform: uppercase on .divider-text for now. Reason being is that with all-lowercase text, the text would appear slightly off-center and afaik, this is not solveable via CSS only.


api_key generation salt disclosed

I think your api_key generation salt should be within a config file. If ids get public, I think a bruteforce attack might be possible.
I didn't have time to study more the code, so I'm sorry if I got something wrong here.

Thanks for catching that. Api keys include a random part, but you're right that the salt should not be public.

1.000.000 seems a bit small to me. Do you have some kind of throttling on authentication failure?

You're right, I'm changing that too. Thanks!

Awesome thanks for the fast commit!


Add method to filter cut volumes below polygons.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

3 of 13 (23.08%)  changed or added relevant lines in 2 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-1.0%) to 89.922%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/plxcontroller/plaxis_3d_output_controller.py
0
10
0.0%

Files with Coverage Reduction
New Missed Lines
%

src/plxcontroller/plaxis_3d_output_controller.py
1
40.0%

Totals

Change from base Build<PHONE_NUMBER>:
-1.0%

Covered Lines:
232

Relevant Lines:
258

💛  - Coveralls


<EMAIL_ADDRESS>hash check failed

Installed scoop today, and ran into this problem after successfully installing a number of other packages:

scoop install vim
Installing 'vim' (8.1.0466) [64bit]
gvim_8.1.0466_x64.zip (17.5 MB) [=======================] 100%
Checking hash of gvim_8.1.0466_x64.zip ... ERROR Hash check failed!
App:         vim
URL:         https://github.com/vim/vim-win32-installer/releases/download/v8.1.0466/gvim_8.1.0466_x64.zip
First bytes: 50 4B 03 04 14 00 00 00
Expected:    8a87038ca34be9fa1463e6ef0f65bc7a0e85823ee75eb6fcd13ace447e53c226

The problem recurred after I uninstalled and attempted to reinstall.

Thanks for the quick turnaround!


WFCORE-1130 Add support for an ObjectMapAttributeDefinition

@darranl here you go.

Core - Full Integration Build 2874 outcome was FAILURE using a merge of 9b3e80aaa092db637e1310560248deb8585c3c0b
Summary: Exit code 1 (new) Build time: 00:01:09

Linux Build 3854 outcome was FAILURE using a merge of 9b3e80aaa092db637e1310560248deb8585c3c0b
Summary: Tests passed: 1186, ignored: 5; exit code 1 (new) Build time: 00:01:44

Full integration - Windows Build 1315 outcome was FAILURE using a merge of 9b3e80aaa092db637e1310560248deb8585c3c0b
Summary: Exit code 1 (new) Build time: 00:01:51

Windows Build 3245 outcome was FAILURE using a merge of 9b3e80aaa092db637e1310560248deb8585c3c0b
Summary: Tests passed: 1186, ignored: 5; exit code 1 (new) Build time: 00:02:55

@darranl IIRC you were the driver for this enhancement. Does this look like what you wanted?
Some test links that give you a sense:
https://github.com/wildfly/wildfly-core/pull/1575/files#diff-dadbae2ed567e9d636a3418915dc447dR243
https://github.com/wildfly/wildfly-core/pull/1575/files#diff-bd0359fe391dd52f43fa6e39fc89727dR4
The minor thing I noted above, this seems ok to me.

+1 that does look like what we were looking for.

@bstansberry @darranl do you guys maybe want this also for 2.x branch. If so i can prepare PR.

All my work is on 3 only so not for me thank you.

Full integration - Windows Build 1419 outcome was FAILURE using a merge of 9ff465ffe1ddb3d89ea42fff1983b5e82b60833d
Summary: Tests failed: 2 (2 new), passed: 3380, ignored: 194 Build time: 01:19:21
Failed tests
org.jboss.as.test.integration.management.cli.DeployWithRuntimeNameTestCase.testDeployWithSameRuntimeName: java.lang.AssertionError:
Expected: is <true>
     but: was <false>
	at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
	at org.jboss.as.test.integration.management.cli.DeployWithRuntimeNameTestCase.undeployAll(DeployWithRuntimeNameTestCase.java:114)
------- Stdout: -------
10:16:23,298 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-2) WFLYSRV0028: Stopped deployment dummy.jar (runtime-name: dummy.jar) in 3ms
10:16:23,309 WARN  [org.jboss.as.controller] (management-handler-thread - 3) WFLYCTL0357: Notification of type deployment-undeployed is not described for the resource at the address []
10:16:23,310 INFO  [org.jboss.as.repository] (management-handler-thread - 3) WFLYDR0002: Content removed from location C:\BuildAgent\work\38e1ea00f932992d\full\testsuite\integration\basic\target\jbossas\standalone\data\content\c7\f7e1bd18ad48ef275ab6630aa7c7ddb9012fd7\content
10:16:23,310 INFO  [org.jboss.as.server] (management-handler-thread - 3) WFLYSRV0009: Undeployed "dummy.jar" (runtime-name: "dummy.jar")
10:16:23,332 INFO  [org.jboss.as.repository] (management-handler-thread - 4) WFLYDR0001: Content added at location C:\BuildAgent\work\38e1ea00f932992d\full\testsuite\integration\basic\target\jbossas\standalone\data\content\cc\c2e5920cced11b843964887d325ebf407afaf6\content
10:16:23,334 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-6) WFLYSRV0027: Starting deployment of "dummy.jar" (runtime-name: "dummy.jar")
10:16:23,341 WARN  [org.jboss.as.dependency.private] (MSC service thread 1-1) WFLYSRV0018: Deployment "deployment.dummy.jar" is using a private module ("org.wildfly.security.manager:main") which may be changed or removed in future versions without notice.
10:16:23,343 INFO  [org.jboss.as.arquillian] (MSC service thread 1-7) Arquillian deployment detected: ArquillianConfig[service=jboss.arquillian.config."dummy.jar",unit=dummy.jar,tests=[org.jboss.as.test.integration.management.cli.DeployWithRuntimeNameTestCase]]
10:16:23,355 INFO  [org.jboss.as.server] (management-handler-thread - 4) WFLYSRV0010: Deployed "dummy.jar" (runtime-name : "dummy.jar")
10:16:23,416 INFO  [org.jboss.as.cli.CommandContext] (main) Warning! The CLI is running in a non-modular environment and cannot load commands from management extensions.
10:16:23,465 INFO  [org.jboss.as.cli.CommandContext] (main) Warning! The CLI is running in a non-modular environment and cannot load commands from management extensions.
Warning! The CLI is running in a non-modular environment and cannot load commands from management extensions.
10:16:23,478 INFO  [org.jboss.as.repository] (management-handler-thread - 4) WFLYDR0001: Content added at location C:\BuildAgent\work\38e1ea00f932992d\full\testsuite\integration\basic\target\jbossas\standalone\data\content\9b\1a1838f9387019285a6fb70fad3fa0b048a412\content
10:16:23,480 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-8) WFLYSRV0027: Starting deployment of "simple1" (runtime-name: "SimpleServlet.war")
10:16:23,523 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 89) WFLYUT0021: Registered web context: /SimpleServlet
10:16:23,549 INFO  [org.jboss.as.server] (management-handler-thread - 4) WFLYSRV0010: Deployed "simple1" (runtime-name : "SimpleServlet.war")
10:16:23,565 INFO  [org.jboss.as.repository] (management-handler-thread - 2) WFLYDR0001: Content added at location C:\BuildAgent\work\38e1ea00f932992d\full\testsuite\integration\basic\target\jbossas\standalone\data\content\98\6a3ef49d500e9d0a5c92d3cdb9c6792a179677\content

org.jboss.as.test.integration.management.cli.DeployWithRuntimeNameTestCase.testDeployWithDifferentRuntimeName: org.jboss.as.cli.CommandFormatException: 'simple1' already exists in the deployment repository (use --force to replace the existing content in the repository).
	at org.jboss.as.cli.handlers.DeployHandler.doHandle(DeployHandler.java:432)
	at org.jboss.as.cli.handlers.CommandHandlerWithHelp.handle(CommandHandlerWithHelp.java:88)
	at org.jboss.as.cli.impl.CommandContextImpl.handle(CommandContextImpl.java:780)
	at org.jboss.as.test.integration.management.cli.DeployWithRuntimeNameTestCase.testDeployWithDifferentRuntimeName(DeployWithRuntimeNameTestCase.java:141)
------- Stdout: -------
10:16:23,654 INFO  [org.jboss.as.cli.CommandContext] (main) Warning! The CLI is running in a non-modular environment and cannot load commands from management extensions.
Warning! The CLI is running in a non-modular environment and cannot load commands from management extensions.
10:16:23,672 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 89) WFLYUT0022: Unregistered web context: /SimpleServlet
10:16:23,678 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-4) WFLYSRV0028: Stopped deployment simple1 (runtime-name: SimpleServlet.war) in 6ms
10:16:23,688 WARN  [org.jboss.as.controller] (management-handler-thread - 2) WFLYCTL0357: Notification of type deployment-undeployed is not described for the resource at the address []
10:16:23,690 INFO  [org.jboss.as.repository] (management-handler-thread - 2) WFLYDR0002: Content removed from location C:\BuildAgent\work\38e1ea00f932992d\full\testsuite\integration\basic\target\jbossas\standalone\data\content\9b\1a1838f9387019285a6fb70fad3fa0b048a412\content
10:16:23,690 INFO  [org.jboss.as.server] (management-handler-thread - 2) WFLYSRV0009: Undeployed "simple1" (runtime-name: "SimpleServlet.war")
10:16:23,694 ERROR [org.jboss.as.cli.CommandContext] (main) Undeploy failed: {"WFLYCTL0062: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-1" => "WFLYCTL0216: Management resource '[(\"deployment\" => \"simple2\")]' not found"}}
Undeploy failed: {"WFLYCTL0062: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-1" => "WFLYCTL0216: Management resource '[(\"deployment\" => \"simple2\")]' not found"}}

@ctomc Let's stick to 3.x.


Fancy Zones layouts improperly scaling in 0.57

Microsoft PowerToys version
0.57.0
Running as admin

[X] Yes

Area(s) with issue?
FancyZones, FancyZones Editor
Steps to reproduce
updated from 0.56.2... had zones set on my screen to cover the entire screen... in the zone editor it still shows correctly, covering the entire screen except the taskbar (which is NOT auto-hide)... but when I try to move a window into a zone, the zones are shrunk to leave a taskbar-sized space at the bottom between the bottom of the grid & the taskbar
In the screenshot below, the 3 windows are in the 3 defined zones... but in the editor (2nd screenshot) the zones extend all the way to the to the taskbar, as they've been for many versions

✔ Expected Behavior
zones stay as they were in earlier versions & as they are in the editor
❌ Actual Behavior
zones shrink to make room for the taskbar, even though the zones didn't cover the taskbar (see screenshot)
Other Software
No response

By the look of the size of the gap, this looks like #17489.
Did you change anything in the mean time - in FancyZones or Windows Settings? When I turn the setting "hide task bar in desktop mode" on and off, Fancyzones works (=resizes) as expected. Maybe you could try deleting the layout and re-creating it?

yup, seems to be a dupe, sorry about that... I need to remember that just because I got prompted to update today doesn't mean noone else got prompted earlier

canvas

Okay. Can I ask why? I mean, this looks like a good choice for Grid 🙂

@Jay-o-Way canvas scaling was introduced in the latest release. So it turned out that canvas layouts created with previous versions may have incorrect zone positioning which can cause gaps or hiding part of the zone below the taskbar.
Recreating the layout helps in this case.

@af4jm can you please verify if recreating the layout helps?
/needinfo

sorry, just saw this... I'll make a note to try it Monday morning... I don't really remember how I created it, I just assumed it wasn't grid because it's not a grid... it's halves (60/40 but whatever) with one half cut in half

I just tried to create a new grid layout, but it starts with 3 columns & there's no way to reduce that... the screen says to his delete, but whether I do it on a separator or on a zone, nothing happens... Crtl-Tab does make Tab switch between scrolling through the zones or scrolling between the Save & Cancel buttons... but nada on deleting... also dragging a separator stops when the zone is like an inch from the edge, so I can't drag it off to merge zones

To merge zones, select and hold the left mouse button and drag the mouse until multiple zones are selected, then release the button and a popup menu will show up. Click "Merge" and they will become one big zone. This is how a zone would be deleted, by merging it into another zone.

ah... now that I see how it's supposed to work, I now have a new layout that behaves correctly... and rereading the instructions on the screen they seem clearer than they did this morning, not sure why I got confused


fix(align-deps): ensure react-native-screens works with New Arch

Description
react-native-screens 3.28.0 broke compatibility with 0.72 + New Arch. See also discussion  for more evidence.
Test plan
n/a

@microsoft-github-policy-service agree

Sure, I've committed the changeset - hope I did it right as this is my first contribution to this repo! So exciting. 🤩

Thanks again! Have a nice weekend 😊

Have a nice weekend too!


QLeverfile for OSM Country is in old config format

The QLeverfile for OSM Country is still in the old format. Two options come to my mind:

Convert the old QLeverfile to the new format. Problem: the cli arguments for osm2rdf are no longer supported and the replacement is not obvious.
Switch to using pre-built turtle files from https://osm2rdf.cs.uni-freiburg.de/ like the osm-planet.

Preliminary config for option 1
# Qleverfile for OSM of some country, use with https://github.com/ad-freiburg/qlever-control
#
# qlever get-data  # downloads .pbf file from Geofabrik und builds .ttl.bz2 using osm2rdf
# qlever index     # for example Germany takes ~30 minutes and ~10 GB RAM (on an AMD Ryzen 9 5900X)
# qlever start     # starts the server
#
# Make sure that osm2rdf is in your path. Set CONTINENT and COUNTRY such that
# the link under GET_DATA_CMD exists (the names are usually the canonical
# names). The time for osm2rdf is around the same as that for "qlever index".

[data]
CONTINENT     = europe
COUNTRY       = switzerland
NAME          = osm-${COUNTRY}
PBF           = ${NAME}.pbf
WITH_TEXT     = false
SETTINGS_JSON = '{ "prefixes-external": [ "\"LINESTRING(", "\"MULTIPOLYGON(", "\"POLYGON(" ], "ascii-prefixes-only": false, "num-triples-per-batch": 1000000 }'
GET_DATA_CMD  = "wget -nc -O ${PBF} https://download.geofabrik.de/${CONTINENT}/${COUNTRY}-latest.osm.pbf; rm -f ${NAME}.*.bz2; ( time /home/julian/code/uni/osm2rdf/build/apps/osm2rdf ${PBF} -o ${NAME}.ttl --cache . --write-geometric-relation-statistics ) 2>&1 | tee ${NAME}.osm2rdf-log.txt; rm -f spatial-*"
VERSION       = $$(ls -l --time-style=+%d.%m.%Y ${PBF} 2> /dev/null | cut -d' ' -f6)
DESCRIPTION   = "OSM ${COUNTRY}, dump from ${VERSION} with ogc:contains"

[index]
INPUT_FILES    = "${data:NAME}.ttl.bz2"
CAT_INPUT_FILES = lbzcat -f -n 2 ${INPUT_FILES}
STXXL_MEMORY   = 10
SETTINGS_JSON  = { "prefixes-external": [ "\"LINESTRING(", "\"MULTIPOLYGON(", "\"POLYGON(" ], "ascii-prefixes-only": false, "num-triples-per-batch": 1000000 }

[server]
PORT                        = 7025
MEMORY_FOR_QUERIES          = 20G
ACCESS_TOKEN                = ${data:NAME}_1234567890
CACHE_MAX_SIZE              = 10G
CACHE_MAX_SIZE_SINGLE_ENTRY = 5G
CACHE_MAX_NUM_ENTRIES       = 100

# QLever binaries
[runtime]
SYSTEM = native
IMAGE  = adfreiburg/qlever

# QLever UI
[ui]
UI_CONFIG = osm

Preliminary config for option 2
# Qleverfile for OSM of some country, use with https://github.com/ad-freiburg/qlever-control
#
# qlever get-data  # downloads .pbf file from Geofabrik und builds .ttl.bz2 using osm2rdf
# qlever index     # for example Germany takes ~30 minutes and ~10 GB RAM (on an AMD Ryzen 9 5900X)
# qlever start     # starts the server
#
# Make sure that osm2rdf is in your path. Set CONTINENT and COUNTRY such that
# the link under GET_DATA_CMD exists (the names are usually the canonical
# names). The time for osm2rdf is around the same as that for "qlever index".

[data]
# 3 letter ISO3166 country code, available country are listed at https://osm2rdf.cs.uni-freiburg.de/
COUNTRY_CODE      = che
DATA_URL          = https://osm2rdf.cs.uni-freiburg.de/ttl/${COUNTRY_CODE}.osm.ttl.bz2
GET_DATA_CMD      = curl --location --fail --continue-at - --remote-time --output ${NAME}.ttl.bz2 ${DATA_URL}
NAME              = osm-${COUNTRY_CODE}
VERSION           = $$(ls -l --time-style=+%d.%m.%Y ${COUNTRY_CODE} 2> /dev/null | cut -d' ' -f6)
#VERSION           = $$(date -r ${NAME}.ttl.bz2 +"%d.%m.%Y")
DESCRIPTION       = OSM ${COUNTRY_CODE}, dump from ${VERSION} with ogc:contains

[index]
INPUT_FILES                 = ${data:NAME}.ttl.bz2
CAT_INPUT_FILES             = lbzcat -f -n 2 ${INPUT_FILES}
STXXL_MEMORY                = 10G
SETTINGS_JSON               = { "languages-internal": [], "prefixes-external": [""], "ascii-prefixes-only": false, "num-triples-per-batch": 5000000 }

[server]
PORT                        = 7025
MEMORY_FOR_QUERIES          = 20G
CACHE_MAX_SIZE              = 10G
CACHE_MAX_SIZE_SINGLE_ENTRY = 5G
TIMEOUT                     = 100s

[runtime]
SYSTEM                      = native
IMAGE                       = adfreiburg/qlever

[ui]
UI_CONFIG                   = osm

@hannahbast which option do you think we should go?

@Qup42 I already have a new file, which I have been using for some time, I just have to commit it. Do you need it today?

No. I am now working with a pre-built ttl file (option 2) for my attempts to replicate the osm sparql updates.

@Qup42 Which code are you using to generate the SPARQL updates?

@Qup42 I already have a new file, which I have been using for some time, I just have to commit it. Do you need it today?

@hannahbast Can I have the working config file?


Rate limiting is not working in uaa

I am trying to use rate limiting feature of cf uaa and it is not working.
What version of UAA are you running?
76.22.0
How are you deploying the UAA?
I am deploying the UAA

locally only using docker container

What did you do?
I am trying to use the rate limit feature of uaa published in 76.3.0.
I am following this document https://github.com/cloudfoundry/uaa/blob/develop/docs/UAA-Rate-Limiting.md.
And as per the document, I have provided the below config in uaa.yml. But still this is not working and no rate limit is applying on any request.
ratelimit:
loggingOption: AllCallsWithDetails
limiterMappings:
- name: AuthToken
pathSelectors:
- "contains:/oauth/token"
withCallerRemoteAddressID: 1r/3s
global: 1r/3s
- name: SCIM
withCallerRemoteAddressID: 1r/3s
global: 1r/3s
pathSelectors:
- "contains:/Users"
- "contains:/Groups"
- name: EverythingElse
withCallerRemoteAddressID: 1r/3s
global: 1r/3s
pathSelectors:
- "other"
I have also tried to check the status of rate limiting by calling /RateLimitingStatus endpoint which shows the status as ACTIVE. That means there is no error. Below is the response of  /RateLimitingStatus.
{
"current": {
"status": "ACTIVE",
"asOf": "1970-01-01T00:28:18Z",
"credentialIdExtractor": "None",
"loggingLevel": "AllCallsWithDetails",
"limiterMappings": 3
},
"fromSource": "resource file(/uaa.yml)"
}
What did you expect to see? What goal are you trying to achieve with the UAA?
Rate limiting should work as the config provided.
What did you see instead?
No rate limiting is applying on any request.
Please include UAA logs if available.
uaaLogs.txt

Hi @Shivani180796,
I tested the configuration that you provided locally (with the latest develop branch, copied the config, added the correct indentation (as it seems it was lost, when you copied it here)) - and it worked for me locally. We also have productive UAA instances where we use this feature (and it works).
So how did you test your local UAA? And what was the exact formatting of the config when you tested it?

Hi,
I close this, because the limiter is active in our landscapes and works as designed. If you see an issue, please re-open it


Purchasing

This adds the initial code for the purchase screen, and the moderation section.
The moderation section has it's own view and collection, separate from the code used in the settings/store tab. The plan is to use this new code in a future refactor of the store tab.
The moderation section has the following functionality:

loads the listing's moderators asynchronously
if a moderator is invalid or an error is returned for that id, the moderator is loaded in an "error" state
the first valid moderator to load is selected
the moderator cards have been changed to have separate view and select buttons. The buttons can have a selected, unselected (faded select) or deselected (red X) state.
when one moderator is selected, the other moderators are deselected.
when the moderated transaction checkbox is unchecked, the moderators are deselected and the moderator is unset from the order model.
when the moderated transaction checkbox is checked again, any selected moderator from before it was checked is rechecked

This PR also includes css to set emojis to the same size as any parent text size class.
This PR adds in the code to make the message button in the moderator details modal work, which closes #408

@morebrownies you'll want to take a look at this, both when purchasing something and in the settings/store tab, for the tweaks to how selecting a moderator work.

The modal needs to handle the case of a listing having no moderators, whether that's not making the Moderated Payment checkbox and Moderator box visible or offering some type of messaging (or something else).

@rmisio this is ready for re-review, all the requested changes have been made, plus I've broken out the models with sub-collections and models, and added some CSS so emojis are sized according to the text class that affects them automatically.

@morebrownies we still need you to take a look at this, specifically the changes to how the moderator cards work.

@jjeffryes I'm attempting to add a moderator to my store and I'm running into this issue when I hit save:

Do you have a store setup with moderators already added that I can test?

@morebrownies your screenshot doesn't look like it loaded. What issue are you hitting with save?

@morebrownies well, that's not a very informative error. Have you cleared your data recently? A number of things have changed.
You can try clicking purchase on ob://QmYcZjTpcpqnMpdPSyz27zVNkfWNsGaFWByAAu1pUBBQaN/store/test

I cleared my db this morning. I'll clear it again and see if I get the same error.

Ok, issue fixed after reseting my DB.
Anyways, I think it's mostly working pretty well now. I do find it a bit strange that there's a big checkbox button next to each moderator in the moderator list. That checkbox button is really functioning like a radio button and would probably be less confusing if we used a radio button instead.
@jjeffryes I know you mentioned you coded it this way so that you could reuse logic between views. That's probably fine in the short term, but we should circle back at some point to clean this
Current

Design

@morebrownies If we switched it to a radio button, it would be a radio button in the settings/store tab too.  Is that ok?

@morebrownies If we switched it to a radio button, it would be a radio button in the settings/store tab too. Is that ok?

@jjeffryes I think Mike was fine with circling back to it. When we do, there's no reason we can't re-use the same view, but have slight differences in look / feel and behavior. Assuming there's enough commonality in the behavior that we would want to re-use (which I guess there would be based on how the content is loaded... is that correct?), we could just pass in some flags to use a radio or a checkbox. A radio selected would send a different event than the checkbox being selected, so the consumer could customize the behavior based off of that.

@morebrownies If we switched it to a radio button, it would be a radio button in the settings/store tab too. Is that ok?

no that wouldn't work. Settings should support selecting many (checkboxes) while checkout should only allow you to select one (radio buttons)


Support to stack multiple Syft SBOM files into a single one

What would you like to be added:
CycloneDX supports merging multiple SBOM files into a single one. However Syft SBOM does not support merging multiple Syft SBOM files. One way could be done by manual merging the artifacts however that is limited to SBOM files whose distro is the same for all the different files.
We would like that Syft SBOM can be merged into a single one without lacking of accuracy to identify vulnerabilities.
Why is this needed:
We generate a bundle and store it in a registry, but the artifacts linked to that bundle are composed of multiple SBOMS from each component that forms that bundle. When using CycloneDX, those SBOM files can be merged into one without losing accuracy to identify vulnerabilities. This can be achieved because the purl contains the arch (or distro) injected into the value. We would like to find a solution to satisfy the same scenario with Syft SBOM format.
Additional context:

Would JSON Lines work for this situation? The idea would be to keep the change pretty simple, and support processing concatenated instances of the existing Syft JSON output.

One way could be done by manual merging the artifacts however that is limited to SBOM files whose distro is the same for all the different files.

❤  I like the idea of applying this constraint, especially to the first iteration.
Would we have to support differing schema versions among the received JSON objects? Perhaps a constraint similar to the above could be applied here (i.e. require homogeneous JSON objects).
Would Syft's existing explicit sbom: be how users also specify this new merged SBOM file format? Or should a new scheme be introduced? In a somewhat analogous situation, the jq tool does require the user's command to be adapted to handle JSON Lines, by adding the --slurp flag. I'm not proposing that Syft add a CLI flag for this, but we should think about how broadly sbom: can be used to set Syft's expectations on input format.

@hectorj2f I 100% agree with the observations on the distro section and how we could leverage reading of pURLs here  to help (there could be a lot of overlap with https://github.com/anchore/grype/issues/481#issuecomment-952390187 here). This helps grype be able to match with pURLs generically on each package and further support input from other SBOM tools in the future.
I think source is the last field that is a problem (both on input SBOMs and output grype JSON documents).

Do we require a single input document to be a "merge" of multiple documents? Or can it be a concatenation of multiple documents? (this is essentially the same question @luhring  has here on JSONL being a possible direction)
Do we want to preserve multiple source input fields? Or is it OK for this to be lossy?
Do we want the output to be able to reflect the matches that belong to specific sources? Or more generically, if we have an input that represents multiple inputs, do we want a "merged" output? Or multiple separated outputs?

My take on possible answers here:

Could we support both? I have an observation for the case of merging documents into one.: the input the caller crafts already takes on the burden of making an input SBOM that is lossy (where there may be no source section, or one of these values is selected).
I would prefer that grype not be the decision maker for what input fields are lossy when it comes to the source section. This implies for possibly changing the grype output JSON shape to account for preserving fields (or to group together multiple grype output JSON documents).
I don't have enough information to answer here other than "what might be easier for a consumer" perspective. It is always easier to deal with a single document over multiple output documents. However, in the case of JSONL as input I can also see it being reasonable to output as many documents as you accepted as input and that be "expected".

If we're getting into the business of merging .syft.json SBOM I have a question regarding our new ID generation process.
Example:
Here is the stereoscope artifact as seen generated under the grype SBOM.
  {
   "id": "17857980119146230574",
   "name": "github.com/anchore/stereoscope",
   "version": "v0.0.0-20211024152658-003132a67c10",
   "type": "go-module",
   "foundBy": "",
   "locations": [
    {
     "path": "/grype"
    }
   ],
   "licenses": [],
   "language": "go",
   "cpes": [
    "cpe:2.3:a:anchore:stereoscope:v0.0.0-20211024152658-003132a67c10:*:*:*:*:*:*:*"
   ],
   "purl"<EMAIL_ADDRESS>   "metadataType": "GolangBinMetadata",
   "metadata": {
    "GoCompiledVersion": "go1.16.9",
    "H1Digest": "h1:BmK/CgNlu+X9foWK2ZAIehxzYws760AZSGVNamQZpiw="
   }
  },

Here is the same artifact as seen generated under the syft SBOM
  {
   "id": "9509475418339205315",
   "name": "github.com/anchore/stereoscope",
   "version": "v0.0.0-20211024152658-003132a67c10",
   "type": "go-module",
   "foundBy": "",
   "locations": [
    {
     "path": "/syft"
    }
   ],
   "licenses": [],
   "language": "go",
   "cpes": [
    "cpe:2.3:a:anchore:stereoscope:v0.0.0-20211024152658-003132a67c10:*:*:*:*:*:*:*"
   ],
   "purl"<EMAIL_ADDRESS>   "metadataType": "GolangBinMetadata",
   "metadata": {
    "GoCompiledVersion": "go1.16.9",
    "H1Digest": "h1:BmK/CgNlu+X9foWK2ZAIehxzYws760AZSGVNamQZpiw="
   }
  },

The ID are different in this case because the locations field contains different paths for where the artifact was discovered.
In the merged SBOM do we want to try and account for these being basically identical and merging the locations field under a single artifact, or do we want to keep things totally separate?
This also adds more weight to the mergeByLocations functionality we considered adding in this previous PR where an Artifact can be discovered at multiple locations making the merged document much more efficient to consume.
https://github.com/anchore/syft/pull/595

Also just validated - Removing the meta top-level fields from *.syft.json still produces a usable json structure.
grype only needs:
{
  artifacts: []
}

In the merged SBOM do we want to try and account for these being basically identical and merging the locations field under a single artifact, or do we want to keep things totally separate?

Are we asking this from the perspective of Grype? Does Grype have a need to see a given package only a single time? My two cents would be not to introduce any merging — particularly in a first iteration — unless we need to.

Open question: Should this issue move to anchore/grype?
I know the implementation might involve Syft's decoders, but it seems like a Grype feature that we're talking about from the user's perspective. Is that a correct read on this?

Another question I found - Is schema a required field, or can/should we update the validator code so that if schema is not detected then we select off artifacts existing?
https://github.com/anchore/syft/blob/main/internal/formats/syftjson/validator.go
This would make the JSON api a little simpler since then both syft and grype would need just artifacts: []

We (@developer-guy) have been trying to figure it out how we can merge multiple sbom results into single one and finally ended up here.
We're generating 2 SBOMs by issuing following commands:
$ syft packages dir:"$SCAN_DIRECTORY" -o cyclonedx-json > sbom-results-build-time.json
$ syft packages docker:"$DOCKER_IMAGE" -o cyclonedx-json > sbom-results-container-image.json

We found the following workaround:
      jq -s 'def deepmerge(a;b):
      reduce b[] as $item (a;
        reduce ($item | keys_unsorted[]) as $key (.;
          $item[$key] as $val | ($val | type) as $type | .[$key] = if ($type == "object") then
            deepmerge({}; [if .[$key] == null then {} else .[$key] end, $val])
          elif ($type == "array") then
            (.[$key] + $val | unique)
          else
            $val
          end)
        );
      deepmerge({}; .)' sbom-results-build-time.json sbom-results-container-image.json > sbom-results-merged.json

Ref: https://e.printstacktrace.blog/merging-json-files-recursively-in-the-command-line
It just works!
It would be nice to have a subcommand, merge, for example:
$ syft merge sbom-results-build-time.json sbom-results-container-image.json -o sbom-results-merged.json

We assumed here both SBOMs are same type. In case one of is different, then we should probably convert it: https://github.com/anchore/syft/issues/563
cc @luhring

@Dentrax thanks so much for the follow-up here with the CLI version of merging SBOM.
I like the suggestion of syft taking in two files and doing the merge itself.
Is there another interaction we want to explore here where syft generates the SBOM from the artifacts and merges in the same command?
syft --merge -o json build-time container-image > sbom-results-merged.json

How should we proceed here? There is another way to handle this by accepting multiple args in packages subcommand instead of introduce new merge command:
$ syft packages dir:"$SCAN_DIRECTORY" docker:"$DOCKER_IMAGE" ... -o cyclonedx-json

Also merge sub command is nice to have:
$ syft merge foo.json bar.json baz.json ... -o json > merged.json

Kind ping 🤞 @luhring @spiffcs

[is] there another way to handle this by accepting multiple args in packages subcommand instead of introduce new merge command?

This is something we're interested in doing (see https://github.com/anchore/syft/issues/562).
The issue isn't really how to scan multiple targets at a time, and how to specify it on the CLI --this is the easy part. The real problem is how should an SBOM describe multiple sources? Today we have a singular source block that describes what was cataloged such that it can be assumed that all other parts of the SBOM were found within what's described in the source block.
If we scan multiple targets then the SBOM will need to additionally convey:
a. all sources scanned (maybe change source to a list?)
b. which packages/files belong to which sources
Item b can be done in a few ways:

keep all artifacts (packages, files, etc) from all sources in a single container, add individual package-to-source relationships to figure which artifact came from which source

Pros:

artifacts and sources are highly decoupled

Cons:

this will add a considerable number of relations to even "simple" SBOMs
consumers wanting to ask questions about packages from source X would need to sift through all of the relationship data to answer even simple questions, which seems really complicated (and worse, that complication is being pushed onto the consumer... ideally syft would handle this if it were possible)

partition artifacts based on which source it is from.

Pros:

scales better than relationships

Cons:

cannot easily ask questions about artifacts across source barriers . I feel that this is a common use case for merged SBOMs... or to put it another way, if we are separating SBOMs out logically by which document they reside in then whats the difference between this option and taring up multiple documents?

Open questions:

how do we support SPDX/CycloneDX in these cases? Potentially output multiple files (which would defeat the point I feel)?

I think that we need to answer how will the format address these problems / use cases before diving into how the command will look / feel.

FYI -- we are actively discussing this and for anyone interested it would be a great topic for the next community meeting, which will be Sep. 1 at 12 noon ET: https://calendar.google.com/calendar/u/0/r?cid=Y182OTM4dGt0MjRtajI0NnNzOThiaGtnM29qNEBncm91cC5jYWxlbmRhci5nb29nbGUuY29t

Kind ping 🤞

@Dentrax we are actively working on this, it's a complicated change and will need to get support implemented in Grype, too before we get everything merged 👍

An update here: we are currently putting this on hold, as there have been a number of discussions which highlight making this a particularly challenging thing to implement properly. We do plan on revisiting this in the future when some of the roadblocks are lifted.

Just a small update on this issue - We've marked this as blocked since there is not a clear way forward on the representation of multiple SBOM across all the formats syft supports.
There is currently some work being done on representing SBOM connections via relationships that are surfaced when running the SBOM cataloger. There is a clear way forward to represent this internally with the syft SBOM format, but larger questions exist on how to do this via the different standard formats of SPDX and CycloneDX.
If the SBOMS all have the same source node there is a straightforward path for all 3 formats given that we can associate all packages to the same source node with the correct relationships.
The path forward via the SBOM cataloger currently combines all packages with NO source relationships which we believe is not the desired end state of how the data should be represented or what is being asked for on this thread.
I'm dropping this into the backlog of our team's board while we work through the details surrounding the graph representation of what multiple sources for multiple sbom look like.


create new issue to test Slack webhook

Environment details:

local deployment, vagrant, native ubuntu, Mac OS, Bluemix, ...
version of docker, vagrant, ubuntu, ...

Steps to reproduce the issue:

Provide the expected results and outputs:
output comes here

Provide the actual results and outputs:
output comes here

Additional information you deem important:

issue happens only occasionally or under certain circumstances
changes you did or observed in the environment

close issue to test Slack webhook


bloxstrap not letting me do anything AT ALL

Send the log file.

Bloxstrap_20230821T184436Z.log

Why'd you install Bloxstrap to your Downloads folder?

cuz

was that a bad idea?

Uninstall it and reinstall it without changing your install location. You'll have to clear out your logs folder first.

Look in task manager and kill any instances of Bloxstrap running

Click "More details" and look through the process list

alright, perfect. thanks!

At least you didn't install it on a FTP server


Add DoChannel method

Fix #12.
I simply made a copy/paste of DoBatch. Now my DoBatch looks like this:
func (c *Client) DoBatch(workers int, reqs ...*Request) <-chan *Response {
	// TODO: enable cancelling of batch jobs

	// start work queue
	producer := make(chan *Request, 0)
	go func() {
		// feed queue
		for i := 0; i < len(reqs); i++ {
			producer <- reqs[i]
		}
		close(producer)
	}()

	// default one worker per request
	if workers == 0 {
		workers = len(reqs)
	}

	return c.DoChannel(workers, producer)
}

It is the callers responsibility to close the reqs channel.

Since DoChannel is called by DoBatch, testing DoBatch automatically tests DoChannel ;-)

One issue is that the workers will block if the responses channel is full (this occurs for batch requests as well).
A possibility would be to pass the receiving channel as argument (as recommended by https://inconshreveable.com/07-08-2014/principles-of-designing-go-apis-with-channels/) or at least document this behavior.

Specifically, breaking principle 4?


Added CRUD api for enrollment accounts

MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Contribution checklist:

[x] I commit to follow the Breaking Change Policy of “no breaking changes
[x] I have reviewed the documentation for the workflow.
[x] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

[x] Ensure to check this box if one of the following scenarios meet updates in the PR, so that label “WaitForARMFeedback” will be added automatically to involve ARM API Review. Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs, all “removals” and “adding a new property” no more require ARM API review.

Adding new API(s)
Adding a new API version
Adding a new service

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If there are following updates in the PR, ensure to request an approval from API Review Board as defined in the Breaking Change Policy.

[ ] Removing API(s) in stable version
[ ] Removing properties in stable version
[ ] Removing API version(s) in stable version
[ ] Updating API in stable version with Breaking Change Validation errors
[ ] Updating API(s) in preview over 1 year

Please follow the link to find more details on PR review process.

/azp run automation - sdk

/azp run automation - sdk

/azp run automation - sdk

/azp run automation - sdk

@vavenbak  Please fix Linter errors, as specified.  Added the flag for ARM review.

/azp run automation - sdk

/azp run automation - sdk

/azp run automation - sdk

@vavenbak For expedited ARM review, please contact the on-call in the checklist above.

/azp run

Closing pull request as this feature will be part of private preview


Content View over ViewPager header when using ViewPager inside a Fragment and ChildFragmentManager to hold child views

I´m trying to use it with android SDK 23 and the content fragment appear over the header. I started using the demo provided by you and the result is the same.
After some debug i realize that  MaterialViewPagerHelper.registerRecyclerView(getActivity(), mRecyclerView, null); does nothing since the Context reference used to register the animator is not the same. I don´t know why but when starting the activity the animator is registered for a context object and when, in the fragment, finding for it the context object is a different object. So, the animator recycle view is never registered inside the ViewPager.
I´m using ChildFragmentManager to manage ViewPager fragments since my ViewPager is contained in a Fragment.
please help me:)

This issue is because i´m using the MaterialViewPager inside a Fragment, so the view pager views are managed with the ChildFragmentManager. For best navigation i need to have a root activity that hold navigation drawer (Menu). A click in the navigation drawer item will show a fragment and, in this case, the fragment hold the MaterialViewPager, so the MaterialViewPager child fragments must be managed by ChildFragmentManager.
Any help or feedback will be appreciated.
Thanks in advanced

Hi @manusant Have you found a way to solve putting MaterialViewPager inside a fragment where different fragments are switched via Navigation Drawer? TIA

Hi, any progress on this bug?


youtube: Unable to extract player URL

Checklist

[x] I'm reporting a broken site support
[x] I've verified that I'm running youtube-dl version 2021.12.17
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar issues including closed ones

Verbose log
[debug] System config: ['--prefer-free-formats']
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v', 'https://www.youtube.com/watch?v=gav66byYJMw']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.12.17
[debug] Single file build
[debug] Python 3.11.4 (CPython x86_64 64bit) - Linux-6.4.12-200.fc38.x86_64-x86_64-with-glibc2.37 - OpenSSL 3.0.9 30 May 2023 - glibc 2.37
[debug] exe versions: ffmpeg 6.0, ffprobe 6.0
[debug] Proxy map: {}
[youtube] gav66byYJMw: Downloading webpage
[youtube] gav66byYJMw: Downloading API JSON
WARNING: unable to extract player URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
WARNING: unable to extract player URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
WARNING: unable to extract player URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
WARNING: unable to extract player URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
WARNING: unable to extract player URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
WARNING: unable to extract player URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
WARNING: unable to extract player URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
WARNING: unable to extract player URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
WARNING: unable to extract player URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
WARNING: unable to extract player URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
WARNING: unable to extract player URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
WARNING: unable to extract player URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
WARNING: unable to extract player URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
WARNING: unable to extract player URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
WARNING: unable to extract player URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
WARNING: unable to extract player URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
WARNING: unable to extract player URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
WARNING: unable to extract player URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
WARNING: unable to extract player URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
WARNING: unable to extract player URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
WARNING: unable to extract player URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
WARNING: unable to extract player URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
WARNING: unable to extract player URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
ERROR: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/home/$USER/git/youtube-dl/./youtube-dl/youtube_dl/YoutubeDL.py", line 859, in wrapper
    return func(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/$USER/git/youtube-dl/./youtube-dl/youtube_dl/YoutubeDL.py", line 955, in __extract_info
    ie_result = ie.extract(url)
                ^^^^^^^^^^^^^^^
  File "/home/$USER/git/youtube-dl/./youtube-dl/youtube_dl/extractor/common.py", line 565, in extract
    ie_result = self._real_extract(url)
                ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/$USER/git/youtube-dl/./youtube-dl/youtube_dl/extractor/youtube.py", line 2128, in _real_extract
    self._sort_formats(formats)
  File "/home/$USER/git/youtube-dl/./youtube-dl/youtube_dl/extractor/common.py", line 1444, in _sort_formats
    raise ExtractorError('No video formats found')
youtube_dl.utils.ExtractorError: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

Description
I cannot download any youtube videos at the moment; youtube-dl fails to extract the player URL.

Providing the following user agent:
--user-agent "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36"

fixes the issue, with following output:
[debug] System config: ['--prefer-free-formats']
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v', '--user-agent', 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36', '-v', 'https://www.youtube.com/watch?v=psyv8G0mk3U']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.12.17
[debug] Single file build
[debug] Python 3.11.4 (CPython x86_64 64bit) - Linux-6.4.12-200.fc38.x86_64-x86_64-with-glibc2.37 - OpenSSL 3.0.9 30 May 2023 - glibc 2.37
[debug] exe versions: ffmpeg 6.0, ffprobe 6.0
[debug] Proxy map: {}
[youtube] psyv8G0mk3U: Downloading webpage
[youtube] psyv8G0mk3U: Downloading API JSON
WARNING: unable to extract player URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
WARNING: [youtube] Unable to decode n-parameter: download likely to be throttled (expected string or bytes-like object, got 'NoneType' Traceback (most recent call last):
  File "/home/$USER/git/youtube-dl/./youtube-dl/youtube_dl/extractor/youtube.py", line 1679, in _n_descramble
    self._player_cache[player_id] = self._extract_n_function(video_id, player_url)
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/$USER/git/youtube-dl/./youtube-dl/youtube_dl/extractor/youtube.py", line 1644, in _extract_n_function
    player_id = self._extract_player_info(player_url)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/$USER/git/youtube-dl/./youtube-dl/youtube_dl/extractor/youtube.py", line 1476, in _extract_player_info
    id_m = re.search(player_re, player_url)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.11/re/__init__.py", line 176, in search
    return _compile(pattern, flags).search(string)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: expected string or bytes-like object, got 'NoneType'
)
[youtube] psyv8G0mk3U: Downloading API JSON
[debug] Default format spec: bestvideo+bestaudio/best
WARNING: Requested formats are incompatible for merge and will be merged into mkv.
[debug] Invoking downloader on 'https://rr4---sn-h0jeln7l.googlevideo.com/videoplayback?expire=1693695459&ei=gmnzZNfXOuGG6dsP6N20uAs&ip=<IP_ADDRESS>&id=o-AJOsd9Kb90JefTK0HiR6Qw3UVeGXhpcQo2JoaghYj5zl&itag=135&aitags=133%2C134%2C135%2C160%2C242%2C243%2C244%2C278&source=youtube&requiressl=yes&mh=0b&mm=31%2C26&mn=sn-h0jeln7l%2Csn-5hneknee&ms=au%2Conr&mv=m&mvi=4&pl=16&initcwndbps=2258750&spc=UWF9f0GzDLZc97hdRxm5bkyvZ9Cm7DkgVKxAjcMU_A&vprv=1&svpuc=1&mime=video%2Fmp4&ns=VDqAWUD07qUSzp3N9S4v4mkP&gir=yes&clen=6246756&dur=155.840&lmt=1559455023384768&mt=1693673400&fvip=3&keepalive=yes&fexp=24007246%2C24363393%2C51000011&beids=24350017&c=WEB&txp=5432432&n=ptkGTWZbvP0lTfijKe&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIhAIWZ3kHDyWjo9Uj5lq-Ob9j1vVHUCiwybJ2uYaLbq3slAiBsUMK8BipIiUytq8tsxa51xlN5x7i6dU2JskikKXCvKw%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIhANBx7Nh67ITTA-B6icuFqHYTemifew3c0K-bXVUD1pWlAiBI9jJGO_IMYf-1dGPIPaivV5w1e1xBckwNwDPhKYqXlw%3D%3D'
[dashsegments] Total fragments: 1
[download] Destination: Billy Joel on Song Melody (1993)-psyv8G0mk3U.f135.mp4

[download]   0.0% of ~5.96MiB at  2.88KiB/s ETA 35:21
[download]   0.0% of ~5.96MiB at  8.62KiB/s ETA 11:47
[download]   0.1% of ~5.96MiB at 20.10KiB/s ETA 05:03
[download]   0.2% of ~5.96MiB at 43.03KiB/s ETA 02:21
[download]   0.5% of ~5.96MiB at 58.81KiB/s ETA 01:43
[download]   1.0% of ~5.96MiB at 55.72KiB/s ETA 01:48
[download]   1.9% of ~5.96MiB at 53.68KiB/s ETA 01:51
[download]   2.7% of ~5.96MiB at 57.34KiB/s ETA 01:43
[download]   3.9% of ~5.96MiB at 59.56KiB/s ETA 01:38
[download]   4.9% of ~5.96MiB at 59.41KiB/s ETA 01:37
[download]   5.9% of ~5.96MiB at 59.05KiB/s ETA 01:37
[download]   6.8% of ~5.96MiB at 58.56KiB/s ETA 01:37
[download]   7.8% of ~5.96MiB at 59.46KiB/s ETA 01:34
[download]   8.9% of ~5.96MiB at 60.43KiB/s ETA 01:32
[download]  10.0% of ~5.96MiB at 58.91KiB/s ETA 01:33
[download]  10.8% of ~5.96MiB at 59.56KiB/s ETA 01:31
[download]  11.9% of ~5.96MiB at 59.75KiB/s ETA 01:29
[download]  12.9% of ~5.96MiB at 59.77KiB/s ETA 01:28
[download]  13.9% of ~5.96MiB at 59.66KiB/s ETA 01:28
[download]  14.9% of ~5.96MiB at 60.16KiB/s ETA 01:26
[download]  16.0% of ~5.96MiB at 60.74KiB/s ETA 01:24
[download]  17.1% of ~5.96MiB at 59.91KiB/s ETA 01:24
[download]  17.9% of ~5.96MiB at 60.16KiB/s ETA 01:23
[download]  19.0% of ~5.96MiB at 60.23KiB/s ETA 01:22
[download]  20.0% of ~5.96MiB at 60.20KiB/s ETA 01:21
[download]  21.0% of ~5.96MiB at 60.10KiB/s ETA 01:20
[download]  22.0% of ~5.96MiB at 60.53KiB/s ETA 01:18
[download]  23.1% of ~5.96MiB at 60.15KiB/s ETA 01:17
[download]  24.0% of ~5.96MiB at 60.59KiB/s ETA 01:16
[download]  25.3% of ~5.96MiB at 60.35KiB/s ETA 01:15
[download]  26.2% of ~5.96MiB at 60.63KiB/s ETA 01:14
[download]  27.3% of ~5.96MiB at 60.20KiB/s ETA 01:13
[download]  28.2% of ~5.96MiB at 60.51KiB/s ETA 01:12
[download]  29.3% of ~5.96MiB at 60.75KiB/s ETA 01:10
[download]  30.5% of ~5.96MiB at 60.29KiB/s ETA 01:10
[download]  31.3% of ~5.96MiB at 60.34KiB/s ETA 01:09
[download]  32.3% of ~5.96MiB at 60.35KiB/s ETA 01:08
[download]  33.3% of ~5.96MiB at 60.71KiB/s ETA 01:07
[download]  34.5% of ~5.96MiB at 60.58KiB/s ETA 01:05
[download]  35.5% of ~5.96MiB at 60.44KiB/s ETA 01:05
[download]  36.4% of ~5.96MiB at 60.64KiB/s ETA 01:04
[download]  37.5% of ~5.96MiB at 60.31KiB/s ETA 01:03
[download]  38.4% of ~5.96MiB at 60.53KiB/s ETA 01:02
[download]  39.5% of ~5.96MiB at 60.71KiB/s ETA 01:00
[download]  40.6% of ~5.96MiB at 60.82KiB/s ETA 00:59
[download]  41.7% of ~5.96MiB at 60.37KiB/s ETA 00:58
[download]  42.5% of ~5.96MiB at 60.84KiB/s ETA 00:57
[download]  44.0% of ~5.96MiB at 60.75KiB/s ETA 00:56
[download]  45.0% of ~5.96MiB at 60.60KiB/s ETA 00:55
[download]  45.9% of ~5.96MiB at 60.73KiB/s ETA 00:54
[download]  47.0% of ~5.96MiB at 60.55KiB/s ETA 00:53
[download]  47.9% of ~5.96MiB at 60.66KiB/s ETA 00:52
[download]  49.0% of ~5.96MiB at 60.76KiB/s ETA 00:51
[download]  50.0% of ~5.96MiB at 60.70KiB/s ETA 00:50
[download]  51.0% of ~5.96MiB at 60.62KiB/s ETA 00:49
[download]  51.9% of ~5.96MiB at 60.82KiB/s ETA 00:48
[download]  53.1% of ~5.96MiB at 60.69KiB/s ETA 00:47
[download]  54.1% of ~5.96MiB at 60.50KiB/s ETA 00:46
[download]  54.9% of ~5.96MiB at 60.65KiB/s ETA 00:45
[download]  56.1% of ~5.96MiB at 60.76KiB/s ETA 00:44
[download]  57.2% of ~5.96MiB at 60.83KiB/s ETA 00:42
[download]  58.2% of ~5.96MiB at 60.78KiB/s ETA 00:41
[download]  59.2% of ~5.96MiB at 60.70KiB/s ETA 00:41
[download]  60.1% of ~5.96MiB at 60.60KiB/s ETA 00:40
[download]  61.0% of ~5.96MiB at 60.74KiB/s ETA 00:39
[download]  62.2% of ~5.96MiB at 60.54KiB/s ETA 00:38
[download]  63.0% of ~5.96MiB at 60.63KiB/s ETA 00:37
[download]  64.1% of ~5.96MiB at 60.72KiB/s ETA 00:36
[download]  65.2% of ~5.96MiB at 60.70KiB/s ETA 00:34
[download]  66.2% of ~5.96MiB at 60.65KiB/s ETA 00:34
[download]  67.1% of ~5.96MiB at 60.78KiB/s ETA 00:32
[download]  68.3% of ~5.96MiB at 60.72KiB/s ETA 00:31
[download]  69.3% of ~5.96MiB at 60.57KiB/s ETA 00:30
[download]  70.1% of ~5.96MiB at 60.64KiB/s ETA 00:30
[download]  71.2% of ~5.96MiB at 60.71KiB/s ETA 00:28
[download]  72.3% of ~5.96MiB at 60.74KiB/s ETA 00:27
[download]  73.3% of ~5.96MiB at 60.69KiB/s ETA 00:26
[download]  74.2% of ~5.96MiB at 60.61KiB/s ETA 00:25
[download]  75.1% of ~5.96MiB at 60.69KiB/s ETA 00:24
[download]  76.3% of ~5.96MiB at 60.77KiB/s ETA 00:23
[download]  77.4% of ~5.96MiB at 60.79KiB/s ETA 00:22
[download]  78.4% of ~5.96MiB at 60.79KiB/s ETA 00:21
[download]  79.4% of ~5.96MiB at 60.76KiB/s ETA 00:20
[download]  80.3% of ~5.96MiB at 60.68KiB/s ETA 00:19
[download]  81.2% of ~5.96MiB at 60.78KiB/s ETA 00:18
[download]  82.4% of ~5.96MiB at 60.66KiB/s ETA 00:17
[download]  83.3% of ~5.96MiB at 60.72KiB/s ETA 00:16
[download]  84.4% of ~5.96MiB at 60.77KiB/s ETA 00:15
[download]  85.4% of ~5.96MiB at 60.76KiB/s ETA 00:14
[download]  86.4% of ~5.96MiB at 60.73KiB/s ETA 00:13
[download]  87.4% of ~5.96MiB at 60.66KiB/s ETA 00:12
[download]  88.3% of ~5.96MiB at 60.72KiB/s ETA 00:11
[download]  89.4% of ~5.96MiB at 60.81KiB/s ETA 00:10
[download]  90.5% of ~5.96MiB at 60.70KiB/s ETA 00:09
[download]  91.4% of ~5.96MiB at 60.71KiB/s ETA 00:08
[download]  92.4% of ~5.96MiB at 60.71KiB/s ETA 00:07
[download]  93.4% of ~5.96MiB at 60.69KiB/s ETA 00:06
[download]  94.3% of ~5.96MiB at 60.80KiB/s ETA 00:05
[download]  95.5% of ~5.96MiB at 60.71KiB/s ETA 00:04
[download]  96.4% of ~5.96MiB at 60.77KiB/s ETA 00:03
[download]  97.6% of ~5.96MiB at 60.82KiB/s ETA 00:02
[download]  98.6% of ~5.96MiB at 60.66KiB/s ETA 00:01
[download]  99.4% of ~5.96MiB at 60.69KiB/s ETA 00:00
[download] 100.0% of ~5.96MiB at 60.85KiB/s ETA 00:00
[download] 100.0% of ~5.96MiB at 60.85KiB/s ETA 00:00
[download] 100% of 5.96MiB in 01:40
[debug] Invoking downloader on 'https://rr4---sn-h0jeln7l.googlevideo.com/videoplayback?expire=1693695459&ei=gmnzZNfXOuGG6dsP6N20uAs&ip=<IP_ADDRESS>&id=o-AJOsd9Kb90JefTK0HiR6Qw3UVeGXhpcQo2JoaghYj5zl&itag=251&source=youtube&requiressl=yes&mh=0b&mm=31%2C26&mn=sn-h0jeln7l%2Csn-5hneknee&ms=au%2Conr&mv=m&mvi=4&pl=16&initcwndbps=2258750&spc=UWF9f0GzDLZc97hdRxm5bkyvZ9Cm7DkgVKxAjcMU_A&vprv=1&svpuc=1&mime=audio%2Fwebm&ns=VDqAWUD07qUSzp3N9S4v4mkP&gir=yes&clen=2621238&dur=156.041&lmt=1559454990453862&mt=1693673400&fvip=3&keepalive=yes&fexp=24007246%2C24363393%2C51000011&beids=24350017&c=WEB&txp=5432432&n=ptkGTWZbvP0lTfijKe&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIhALwhD60OM_UYYDpGFyHvaJIfYW2UlhKThATibGBzH8dWAiAtPr1jAbI3dqHrrdH8PdMzJenY7bxokB1g9XogHU-shQ%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIhANBx7Nh67ITTA-B6icuFqHYTemifew3c0K-bXVUD1pWlAiBI9jJGO_IMYf-1dGPIPaivV5w1e1xBckwNwDPhKYqXlw%3D%3D'
[dashsegments] Total fragments: 1
[download] Destination: Billy Joel on Song Melody (1993)-psyv8G0mk3U.f251.webm

[download]   0.0% of ~2.50MiB at  3.41KiB/s ETA 12:29
[download]   0.1% of ~2.50MiB at 10.23KiB/s ETA 04:09
[download]   0.3% of ~2.50MiB at 23.84KiB/s ETA 01:47
[download]   0.6% of ~2.50MiB at 51.04KiB/s ETA 00:49
[download]   1.2% of ~2.50MiB at 65.59KiB/s ETA 00:38
[download]   2.5% of ~2.50MiB at 58.60KiB/s ETA 00:42
[download]   4.5% of ~2.50MiB at 55.18KiB/s ETA 00:44
[download]   6.6% of ~2.50MiB at 58.54KiB/s ETA 00:40
[download]   9.2% of ~2.50MiB at 60.50KiB/s ETA 00:38
[download]  11.8% of ~2.50MiB at 60.16KiB/s ETA 00:37
[download]  14.1% of ~2.50MiB at 59.68KiB/s ETA 00:36
[download]  16.3% of ~2.50MiB at 59.09KiB/s ETA 00:36
[download]  18.5% of ~2.50MiB at 59.95KiB/s ETA 00:34
[download]  21.1% of ~2.50MiB at 60.59KiB/s ETA 00:33
[download]  23.7% of ~2.50MiB at 60.90KiB/s ETA 00:32
[download]  26.2% of ~2.50MiB at 60.99KiB/s ETA 00:30
[download]  28.6% of ~2.50MiB at 60.46KiB/s ETA 00:30
[download]  30.7% of ~2.50MiB at 59.94KiB/s ETA 00:29
[download]  32.8% of ~2.50MiB at 60.33KiB/s ETA 00:28
[download]  35.5% of ~2.50MiB at 60.47KiB/s ETA 00:27
[download]  37.9% of ~2.50MiB at 60.47KiB/s ETA 00:26
[download]  40.2% of ~2.50MiB at 60.20KiB/s ETA 00:25
[download]  42.4% of ~2.50MiB at 60.79KiB/s ETA 00:24
[download]  45.3% of ~2.50MiB at 60.54KiB/s ETA 00:23
[download]  47.6% of ~2.50MiB at 60.15KiB/s ETA 00:22
[download]  49.6% of ~2.50MiB at 60.50KiB/s ETA 00:21
[download]  52.4% of ~2.50MiB at 60.85KiB/s ETA 00:20
[download]  55.0% of ~2.50MiB at 60.27KiB/s ETA 00:19
[download]  57.0% of ~2.50MiB at 60.35KiB/s ETA 00:18
[download]  59.5% of ~2.50MiB at 60.39KiB/s ETA 00:17
[download]  61.9% of ~2.50MiB at 60.87KiB/s ETA 00:16
[download]  64.8% of ~2.50MiB at 60.65KiB/s ETA 00:14
[download]  67.0% of ~2.50MiB at 60.45KiB/s ETA 00:13
[download]  69.2% of ~2.50MiB at 60.76KiB/s ETA 00:12
[download]  72.0% of ~2.50MiB at 60.54KiB/s ETA 00:11
[download]  74.2% of ~2.50MiB at 60.77KiB/s ETA 00:10
[download]  76.9% of ~2.50MiB at 60.97KiB/s ETA 00:09
[download]  79.5% of ~2.50MiB at 60.46KiB/s ETA 00:08
[download]  81.4% of ~2.50MiB at 60.61KiB/s ETA 00:07
[download]  84.0% of ~2.50MiB at 60.61KiB/s ETA 00:06
[download]  86.4% of ~2.50MiB at 60.56KiB/s ETA 00:05
[download]  88.7% of ~2.50MiB at 60.83KiB/s ETA 00:04
[download]  91.6% of ~2.50MiB at 60.76KiB/s ETA 00:03
[download]  93.9% of ~2.50MiB at 60.52KiB/s ETA 00:02
[download]  95.9% of ~2.50MiB at 60.67KiB/s ETA 00:01
[download]  98.6% of ~2.50MiB at 60.76KiB/s ETA 00:00
[download] 100.0% of ~2.50MiB at 60.84KiB/s ETA 00:00
[download] 100.0% of ~2.50MiB at 60.84KiB/s ETA 00:00
[download] 100% of 2.50MiB in 00:42
[ffmpeg] Merging formats into "Billy Joel on Song Melody (1993)-psyv8G0mk3U.mkv"
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i 'file:Billy Joel on Song Melody (1993)-psyv8G0mk3U.f135.mp4' -i 'file:Billy Joel on Song Melody (1993)-psyv8G0mk3U.f251.webm' -c copy -map 0:v:0 -map 1:a:0 'file:Billy Joel on Song Melody (1993)-psyv8G0mk3U.temp.mkv'
Deleting original file Billy Joel on Song Melody (1993)-psyv8G0mk3U.f135.mp4 (pass -k to keep)
Deleting original file Billy Joel on Song Melody (1993)-psyv8G0mk3U.f251.webm (pass -k to keep)

works fine with current master.

I'd not have created this bug report if the current master (2021.12.17-284-g31f50c819) did work for me :)

seems like a you problem:
> pip install https://github.com/ytdl-org/youtube-dl/archive/refs/heads/master.zip
Created wheel for youtube-dl:
filename=youtube_dl-2021.12.17-py2.py3-none-any.whl size=1940290
sha256=0e6a70123b29ef3295acc817d501556cba7cb0a96d0260972501e6e8b4c909ed

> youtube-dl --prefer-free-formats gav66byYJMw
[youtube] gav66byYJMw: Downloading webpage
[dashsegments] Total fragments: 2
[download] Destination: Billy Joel - Lullabye (Goodnight, My Angel) (Audio)-gav66byYJMw.f248.webm
[download] 100% of 17.95MiB in 00:00

#32499
The consent page (or some other interstitial page bypassed by consent cookies) may appear for some users and not others, depending on ?factors?.

@andreas-gruenbacher
I had this too. I worked out that it was being redirected to a consent page by using --print-traffic argument.
In a browser I pasted the consent URL and accepted the consent. Then I grabbed the cookies from the browser as netscape cookie format and created a cookies.txt file to use with --cookies argument to youtube-dl.
It then worked.

As in the master issue linked above.


additional info in docs

Hi,
great quick solution for v2!
I guess there should be added in docs to add provider in list of providers in app.php configuration as well as alias for facade,
'providers' => [ ...
Lightit\LinkedinShare\LinkedinShareServiceProvider::class,
],
'aliases'=> [
'LinkedinShare'  => Lightit\LinkedinShare\Facades\LinkedinShare::class,
]

And to create linkedinshare configuration file with data for redirect_uri, client_id and client_secret:
return [
	'redirect_uri' => '',
	'client_id' => '',
	'client_secret' =>'',
];

Hey niklaz,
Thanks for your suggestion. It is true that this package should be added to providers and aliases in versions of Laravel lower than 5.5.
Also I forgot to mention in the README that with vendor:publish the configuration file will be automatically created.
I will add it to the README.
Cheers,
Alan

Hi Alan,
Thank you!


Fix: cursor centered

Cursor is now correctly centered.
Avoid animating left, right, bottom, top, height, width when possible, especialy on mousemove even which trigger very often, those CSS property trigger reflow. Prefere instead transform properties.
https://developer.mozilla.org/en-US/docs/Glossary/Reflow

No it's juste I wanted to show you the code but I feel it's better you actually fix it your way. mixBlendMode works well


Ingress missing necessary Nginx annotation

Following the latest commit to ingress.yaml, this chart no longer plays nicely with the Kubernetes flavor of the Nginx ingress controller.
The ingress controller will produce logs like:
"Ignoring ingress because of error while validating ingress class" ingress="default/docker-registry" error="no object matching key "nginx"
This is caused by the missing kubernetes.io/ingress.class: "nginx" annotation on the ingress created from the ingress.yaml template.
We can no longer add that annotation due to the fact that you'll get the following error during helm install docker-registry twuni/docker-registry -f docker-registry-config.yaml  (Note: see docker-registry-config.yaml down below):
Error: INSTALLATION FAILED: Ingress.extensions "docker-registry" is invalid: annotations.kubernetes.io/ingress.class: Invalid value: "nginx": can not be set when the class field is also set
This is due to the recent addition of ingressClassName: {{ .Values.ingress.className }} in ingress.yaml.
Steps to reproduce:
Setup the Nginx controller
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
helm upgrade --install ingress-nginx ingress-nginx --repo https://kubernetes.github.io/ingress-nginx --namespace ingress-nginx --create-namespace
Setting up cert manager
helm repo add jetstack https://charts.jetstack.io
helm repo update
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.9.1/cert-manager.crds.yaml
helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --version v1.9.1
kubectl apply -f cert-issuer.yaml
kubectl apply -f certificate.yaml
where cert-issuer.yaml is
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod-clusterissuer
spec:
  acme:
    # The ACME server URL
    server: https://acme-v02.api.letsencrypt.org/directory
    # Email address used for ACME registration
    email<EMAIL_ADDRESS>    # Name of a secret used to store the ACME account private key
    privateKeySecretRef:
      name: letsencrypt-secret-prod
    # Enable the HTTP-01 challenge provider
    solvers:
    - http01:
        ingress:
          class: nginx

and certificate.yaml is
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: docker-registry-certificate
spec:
  secretName: letsencrypt-secret-prod
  duration: 2160h
  renewBefore: 360h
  issuerRef:
    name: letsencrypt-prod-clusterissuer
    kind: ClusterIssuer
  dnsNames:
  - some.hostname.com

Set up the docker registry
helm repo add twuni https://helm.twun.io
helm repo update
helm install docker-registry twuni/docker-registry -f docker-registry-config.yaml
where docker-registry-config.yaml is
ingress:
  enabled: true
  hosts:
    - some.hostname.com
  annotations:
    # THIS ANNOTATION IS NECESSARY, BUT NOT ALLOWED: kubernetes.io/ingress.class: "nginx"
    cert-manager.io/cluster-issuer: letsencrypt-prod-clusterissuer
  tls:
    - secretName: letsencrypt-secret-prod
      hosts:
      - some.hostname.com
storage: s3
secrets:
  htpasswd: |-
    <USERNAME>:<ENCRYPTED PASSWORD>
  s3:
    accessKey: "<ACCESS KEY>"
    secretKey: "<SECRET>"
s3:
  region: eu-central-1
  regionEndpoint: eu-central-1.<SOME OBJECT STORAGE HOST>.com
  secure: true
  bucket: <SOME BUCKET>

This is easy enough to work-around (see below). However, this used to work fine out of the box. Here is an example video of what the setup used to be like using older versions of everything.

Click drop-down for workaround

You can workaround this by setting enabled: false in docker-registry-config.yaml, then creating a separate ingress yourself like so:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: docker-registry
  namespace: default
  labels:
    app: docker-registry
    chart: docker-registry-2.2.2
    release: docker-registry
    heritage: Helm
  annotations:
      cert-manager.io/cluster-issuer: "letsencrypt-prod-clusterissuer"
      kubernetes.io/ingress.class: "nginx"
spec:
  rules:
    - host: host.name.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: docker-registry
                port:
                  number: 5000
  tls:
    - hosts:
      - host.name.com
      secretName: letsencrypt-secret-prod

Thank you for the detailed report!
It sounds like there are conflicting implementations of an annotation-driven ingress controller, with different and mutually exclusive requirements. This chart currently works with one, but not the other.
If that interpretation is correct, then the simplest option seems to be to add a configuration value for which kind of ingress controller (vendor/version/whatever the distinguishing factor is between the two) is in use -- that would drive which of the two annotations is present.
If that interpretation is not correct, then could you distill the issue down to the (metaphorical) line where it works on one side and doesn't on the other? I don't use ingresses, myself, so it's nice to learn these details from someone who does.

Thank you for the detailed report!
It sounds like there are conflicting implementations of an annotation-driven ingress controller, with different and mutually exclusive requirements. This chart currently works with one, but not the other.
If that interpretation is correct, then the simplest option seems to be to add a configuration value for which kind of ingress controller (vendor/version/whatever the distinguishing factor is between the two) is in use -- that would drive which of the two annotations is present.
If that interpretation is not correct, then could you distill the issue down to the (metaphorical) line where it works on one side and doesn't on the other? I don't use ingresses, myself, so it's nice to learn these details from someone who does.
Follow-up: In the repo you linked for the Kubernetes ingress controller, their own example for deploying a docker registry shows use of the ingressClassName field: https://github.com/kubernetes/ingress-nginx/blob/main/docs/examples/docker-registry/ingress-without-tls.yaml . I'm wondering if maybe there is potentially something custom about your ingress controller installation that would cause the first error you shared (i.e: it can't find an nginx implementation for the ingressClassName).

Your interpretation is correct
🤔 There shouldn't be anything special with the ingress controller install. It's running on a fresh cluster, and I'm using the helm commands from the Setup the Nginx controller section above.
Here is the result:

The chart version and app version are quite recent.


overshootClamping not working as expected

Hi :)
Thanks for this awesome lib!
I believe I have found an issue with the overshootClamping option.
I have isolated the problem in this codesandbox https://codesandbox.io/s/91k1vxp7r4 (take a look at the console output).
What's the issue?
I want to animate a value imperatively going from 0 to 1000. I want it to animate smoothly, but never bounce. I thought this was achievable by using overshootClamping.

overshootClamping, controls if the spring should be clamped and not bounce

See https://github.com/drcmda/react-spring/blob/master/API.md#spring-configs
However, as you can see in the codesandbox console output the value does exceed it's animation goal of 1000. I was not expecting this to happen.

Is this a bug? If not, what exactly is the purpose of overshootClamping and how would I achieve my goal?
Btw: When overshootClamping is set to false (default) the value exceeds/overshoots the limit multiple times - so I guess it's working almost correctly except for the last animation frame?
I am using react-spring 5.7.1
Cheers,
Stefan

I belive the fix is to change < and > here to <= and >=:
https://github.com/drcmda/react-spring/blob/8ad944296967a8c5b27a889d036adcc0625af04d/src/addons/OscillatorAnimation.js#L143
What do you think?

@stnwk do you use oscillatoranimation or the default spring impl? In the default it updates the value before checking for overshoot, i've moved it a little bit down and now it works, will have to release, though.

Oh shoot, good point - no I'm using the default spring implementation. What does it mean for me now?

Should be fixed in 5.7.2


SK translation of Basics/Composition + translated description.

Hi @michalvalasek, could you please rebase against upstream/master to remove that merge commit? :grinning:
This should do the trick:
$ git fetch --all
$ git rebase upstream/master`
$ git push -f

Feel free to ping me if you need a hand :+1:

Thank you @michalvalasek :grinning:


Carbon model

Add bulk carbon model.

closing to preserve tutorials on branch, making PR38 to merge in model and test only.


add Germany, state Baden-Wuerttemberg entries for meetups and mailing lists

I wasn't able to check completely local with npm run test, sorry

thanks @okilimu , it looks pretty good 👍
I see a few warnings that some of the geojsons cover a very small area - in these situations the geojson is kind of wasteful, so we usually just specify a point.

Points as [longitude, latitude] coordinate pairs. A 25km radius circle will be computed around the point.
Example: [8.67039, 49.41882]

I'll convert them and merge, if that's ok?

you can use a point instead, thats ok.
Should i define the point and sent a new pull request or do you make the changes for yourself?

Should i define the point and sent a new pull request or do you make the changes for yourself?

I'll just make the change - just wanted to ask first!


Hardware Names

In the schematic, it shows that you need two diodes and one 100nF capacitor. What are the part numbers for these? Without knowing the part numbers, I don't know the type of each to order. Thanks

Err, they are just generic parts.  Two 3v3 zeners and a 100nF  cap.


estimategas throws uncatchable exception

happens on ganache 6.7.0
downgrading to 6.6.0 solves the issue
found that the issue happens if in web3js constructor i pass defaults with
defaultGas: 140000,
removing it also solves the issue on 6.7.0

@sirpy we've changed some things with mining, can you confirm that this is still an issue on ganache-core@latest?

@nicholasjpaterno
Hey, i'm not sure what was the exact issue,
I tried upgrading to latest ganache-cli but local unit test for estimate gas fails with:
Error: Node error: {"message":"VM Exception while processing transaction: out of gas","code":-32000,"data":{"stack":"c: VM Exception while processing transaction: out of gas
on ganache 6.6.0 it works fine

Closing for issue maintenance. If this is still an issue after trying it with latest or the latest beta releases, please comment and I'll reopen it. Thanks!


GUI crashes if vector end is defined without start being defined

Martin has reported that when he wants to define a vector but starting with the end first, the GUI crashes.
Traceback (most recent call last):
File "/GPFS/CENTRAL/xf17id1/skinnerProjectsBackup/lsdc/lsdcGui.py", line 4739, in setVectorEndCB
self.vecLine = self.scene.addLine(self.centerMarker.x()+self.vectorStart["graphicsitem"].x()+self.centerMarkerCharOffsetX,self.centerMarker.y()+self.vectorStart["graphicsitem"].y()+self.centerMarkerCharOffsetY,self.centerMarker.x()+vecEndMarker.x()+self.centerMarkerCharOffsetX,self.centerMarker.y()+vecEndMarker.y()+self.centerMarkerCharOffsetY, pen)
TypeError: 'NoneType' object is not subscriptable
The following code fragment is responsible - it should probably be run every time either end is changed if both ends are defined:
https://github.com/NSLS-II/lsdc/blob/23ac30e04c882f3fc5749de2cba2341364caf608/lsdcGui.py#L4721-L4740

left in branch fix_vector_definition - refactoring of vector definition and setting up the line at the correct time is done. still need to draw the line correctly and ideally refactor the speed calculation as it is done at least 3 times

left in branch fix_vector_definition - refactoring of vector definition and setting up the line at the correct time is done. still need to draw the line correctly and ideally refactor the speed calculation as it is done at least 3 times

Last fixes work, runs stably now!


setRating not work in kotlin

I'm trying to setRating(SmileyRating.Type.GREAT.rating, true) in kotlin similar to your description but it not work for me, and always TERRIBLE is selected what is my mistake?
`    smileyRating.setFaceBackgroundColor(SmileyRating.Type.TERRIBLE, Color.RED)
    smileyRating.setFaceBackgroundColor(SmileyRating.Type.BAD, 0xFFFF8606.toInt())
    smileyRating.setFaceBackgroundColor(SmileyRating.Type.GREAT, 0xFF50DA30.toInt())
    smileyRating.setFaceBackgroundColor(SmileyRating.Type.OKAY, 0xFFF3C641.toInt())

    smileyRating.setRating(SmileyRating.Type.GREAT.rating, true)

    smileyRating.setTitle(SmileyRating.Type.TERRIBLE, "Worst pain")
    smileyRating.setTitle(SmileyRating.Type.BAD, "Very Severe")
    smileyRating.setTitle(SmileyRating.Type.OKAY, "Moderate")
    smileyRating.setTitle(SmileyRating.Type.GOOD, "Mild")
    smileyRating.setTitle(SmileyRating.Type.GREAT, "No Pain")

`
also, I try and it not work
               smileyRating.setRating(3, true)

Faced the same problem and solved by adding a little delay in the setRating method

Faced the same problem and solved by adding a little delay in the setRating method

@mauricioguell-sagaci Can you please tell me what function you used for delaying? I've tried using Coroutines, Handler, runblocking, Timer, After the delay it sets the rating correct but the color on the faces are gone :(


[Disk Manager]: Add helm chart

Closing this PR. The code will be moved to the internal repository. The rationale is the following:

Chart should be linted with all the code available (incl. values.yaml, which contain internal information)
All other charts are in the internal repo.
It is not yet needed to anyone.


Consider placing links to Ultraviolet.Game.* packages in other NuGet packages' descriptions

Something like "This package is a part of the Ultraviolet game engine framework and shouldn't be referenced directly unless you know what you are doing. To quickly create a new game project, reference one of the following packages instead: ..., ..., ..." would nudge people in the right direction.

This is addressed by 517dc20d1aa847e76236b6659b654ad60c2cd635 and will be reflected in the 2018.04 release. Thanks for the suggestion.


ImportError after pip installing dwave-system

Description
Installing dwave-system in a fresh environment throws an import error when attempting to import the dwave.system module.
See full trace:
>>> from dwave.system import LeapHybridCQMSampler
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\mchristensen\envs\test_dws_1.18\lib\site-packages\dwave\system\__init__.py", line 15, in <module>
    import dwave.system.flux_bias_offsets
  File "C:\Users\mchristensen\envs\test_dws_1.18\lib\site-packages\dwave\system\flux_bias_offsets.py", line 22, in <module>
    from dwave.system.samplers.dwave_sampler import DWaveSampler
  File "C:\Users\mchristensen\envs\test_dws_1.18\lib\site-packages\dwave\system\samplers\__init__.py", line 15, in <module>
    from dwave.system.samplers.clique import *
  File "C:\Users\mchristensen\envs\test_dws_1.18\lib\site-packages\dwave\system\samplers\clique.py", line 25, in <module>
    from dwave.preprocessing import ScaleComposite
  File "C:\Users\mchristensen\envs\test_dws_1.18\lib\site-packages\dwave\preprocessing\__init__.py", line 18, in <module>
    import dwave.preprocessing.composites
  File "C:\Users\mchristensen\envs\test_dws_1.18\lib\site-packages\dwave\preprocessing\composites\__init__.py", line 17, in <module>
    from dwave.preprocessing.composites.fix_variables import *
  File "C:\Users\mchristensen\envs\test_dws_1.18\lib\site-packages\dwave\preprocessing\composites\fix_variables.py", line 22, in <module>
    from dwave.preprocessing.lower_bounds import roof_duality
  File "C:\Users\mchristensen\envs\test_dws_1.18\lib\site-packages\dwave\preprocessing\lower_bounds.py", line 17, in <module>
    from dwave.preprocessing.cyfix_variables import fix_variables_wrapper
ImportError: DLL load failed while importing cyfix_variables: The specified module could not be found.

This traces back to dwave.preprocessing, particularly version 0.6.2 which gets pulled in due to this line in setup.py:
'dwave-preprocessing>=0.5.0'
To Reproduce
In a fresh virtual environment with no packages installed:
pip install dwave-system==1.18.0 (tested with 1.18.0, 1.19.0, 1.20.0)
Then open a terminal and try:
import dwave.system
Expected behavior
Perhaps installing the maximum compatible version of preprocessing which seems to be 0.6.1
Environment:

OS: Windows 10 Pro 64-bit (10.0, build 19043)
Python version: Python 3.8.3

Ok, I see the issue. It's an interaction between namespace packages and develwheel. Their docs state
- `delvewheel` creates or patches `__init__.py` in each top-level package so that the DLLs are loaded properly during import. This will cause issues if you have a top-level namespace package that requires `__init__.py` to be absent to function properly.

Inspecting the wheel's __init__.py confirms. It looks like
""""""# start delvewheel patch
def _delvewheel_init_patch_1_3_8():
    import ctypes
    import os
    import platform
    import sys
    libs_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, 'dwave_preprocessing.libs'))
    is_conda_cpython = platform.python_implementation() == 'CPython' and (hasattr(ctypes.pythonapi, 'Anaconda_GetVersion') or 'packaged by conda-forge' in sys.version)
    if sys.version_info[:2] >= (3, 8) and not is_conda_cpython or sys.version_info[:2] >= (3, 10):
        if os.path.isdir(libs_dir):
            os.add_dll_directory(libs_dir)
    else:
        load_order_filepath = os.path.join(libs_dir, '.load-order-dwave_preprocessing-0.6.2')
        if os.path.isfile(load_order_filepath):
            with open(os.path.join(libs_dir, '.load-order-dwave_preprocessing-0.6.2')) as file:
                load_order = file.read().split()
            for lib in load_order:
                lib_path = os.path.join(os.path.join(libs_dir, lib))
                if os.path.isfile(lib_path) and not ctypes.windll.kernel32.LoadLibraryExW(ctypes.c_wchar_p(lib_path), None, 0x00000008):
                    raise OSError('Error loading {}; {}'.format(lib, ctypes.FormatError()))

_delvewheel_init_patch_1_3_8()
del _delvewheel_init_patch_1_3_8
# end delvewheel patch

# Copyright 2021 D-Wave Systems Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import pkgutil
__path__ = pkgutil.extend_path(__path__, __name__)

so, if you install dwave-system after dwave-preprocessing the top-level __init__.py is inherited from dwave-system and doesn't include that code.
Luckily, this should be pretty easy to fix.


400 Client Error: Bad Request for url: https://api.cloudflare.com/client/v4/zones/...

Hi,
Not sure what am I doing wrong here, everything worked fine before I did a git pull to refresh the hook to the latest one.
* CloudFlare hook executing: deploy_challenge
Traceback (most recent call last):
  File "hooks/cloudflare/hook.py", line 176, in <module>
    main(sys.argv[1:])
  File "hooks/cloudflare/hook.py", line 172, in main
    ops[argv[0]](argv[1:])
  File "hooks/cloudflare/hook.py", line 148, in create_all_txt_records
    create_txt_record(args[i:i+X])
  File "hooks/cloudflare/hook.py", line 112, in create_txt_record
    r.raise_for_status()
  File "/usr/lib/python3.5/site-packages/requests/models.py", line 840, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: https://api.cloudflare.com/client/v4/zones/e8ef854e*snip*3867137/dns_records

Running this on Oracle Linux Server 6.8 and tried with both python2.7 and python3.5.
CF_* env is setup correctly as those settings have not changed since last I run them.
Thanks.

Hi! I'm seeing this as well.
It seems to happen when we try to create a new TXT record, but an identical one already exists in CloudFlare. This happens when the verification process for some reason does not complete, the TXT record is not cleaned up and subsequent challenge responses reuse the same token.
Can you verify that if no _acme-challenge records exist before running the hook, the error is not thrown?

I've pushed a fix, let me know if it works for you.

Thanks for looking into it.
After pulling the fix, this is what I got:

CloudFlare hook executing: deploy_challenge
Traceback (most recent call last):
File "hooks/cloudflare/hook.py", line 183, in
main(sys.argv[1:])
File "hooks/cloudflare/hook.py", line 179, in main
opsargv[0]
File "hooks/cloudflare/hook.py", line 155, in create_all_txt_records
create_txt_record(args[i:i+X])
File "hooks/cloudflare/hook.py", line 102, in create_txt_record
logger.debug(' + Creating TXT record: {} => {}'.format(domain, token))

I guess that line 102 should've perhaps been:
logger.debug(' + Creating TXT record: {0} => {1}'.format(domain, token))
After doing this, dehydrated worked all the way and updated my certs.
Cheers!

No problem.
Line 102 should be equally valid no matter how you write the placeholders, so I'm wondering if there is another issue. Does the stack trace stop there? If you pull a fresh copy does it still barf?

Sorry for a delayed reply, I missed the notification on this post.
Is there a way I can dry-test as my certs are now updated so the hook does not execute?

Sure, you can use the staging server for Let's Encrypt, by placing this line in your config file:
CA="https://acme-staging.api.letsencrypt.org/directory"

Then proceed as usual, dehydrated will generate a new account key and dummy certificates for all your domains, with no rate limits. Do this from a fresh dehydrated installation, to keep dummy certs away from production.

I cloned dehydrated and the hook into a test folder then ran against the staging server.
Still getting that error ValueError: zero length field name in format from above about logger.debug line 102.
I now realize this is related to me using the default Python 2.6.6.
If I add an alias to python3.5 and change line 1 in hook.py to python3.5, then I do not get that error.

Thank you! I should've tested with Python 2 as well. Will push a fix shortly.

Should be OK now.


feat(textfield): add inputmode

Fixes #834

@e111077 one potential problem: inputMode is already defined on HTMLElement with a type of string, but lit-analyzer is complaining because it wants it to be more specific. If I change the type to be more specific, then TS fails to build because it is not assignable to string on the base class.
Any suggestions? Could try to bypass lit-analyzer and keep it open as string, suppress the TS problem with @ts-ignore, or switch to a different property like inputmode. Thoughts?

I think it's simple enough to make a type for it and export it just like input[type]


If the only member of a household/primary contact is marked as deceased, Exclude from Household Name should be unchecked

This is to avoid an "Anonymous Household." Exclude from Greetings should still be checked, opt outs should still be checked.
POU thread: https://powerofus.force.com/0D580000020pFeI

**lurch: attach W-007459

Tracking W-007459

another hub thread: https://powerofus.force.com/0D58000002Mw1Ul
note that ideally we might do lastname household (deceased) rather than just lastname household.

one user requests that the deceased format by customizable, not hard coded to lastname household (deceased).

Included in beta release version 3.61 (Beta 3) and higher

Included in production release version 3.61