Failed to set up

I'm able to connect without problem after logging in and out of the mobile app but as soon as the integration is created it crashes with the following logged errors:
Logger: aiohttp.server
Source: custom_components/dyson_cloud/config_flow.py:71
Integration: Dyson Cloud (documentation, issues)
First occurred: 12:39:41 AM (1 occurrences)
Last logged: 12:39:41 AM

Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/aiohttp/web_protocol.py", line 435, in _handle_request
    resp = await request_handler(request)
  File "/usr/local/lib/python3.9/site-packages/aiohttp/web_app.py", line 504, in _handle
    resp = await handler(request)
  File "/usr/local/lib/python3.9/site-packages/aiohttp/web_middlewares.py", line 117, in impl
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 60, in security_filter_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 98, in forwarded_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 78, in ban_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 181, in auth_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 137, in handle
    result = await result
  File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 157, in post
    return await super().post(request, flow_id)
  File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 62, in wrapper
    result = await method(view, request, *args, **kwargs)
  File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 110, in post
    result = await self._flow_mgr.async_configure(flow_id, data)
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 252, in async_configure
    result = await self._async_handle_step(flow, cur_step["step_id"], user_input)
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 325, in _async_handle_step
    result: FlowResult = await getattr(flow, method)(user_input)
  File "/config/custom_components/dyson_cloud/config_flow.py", line 71, in async_step_email
    self._verify = await self.hass.async_add_executor_job(
  File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 52, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.9/site-packages/libdyson/cloud/account.py", line 121, in login_email_otp
    raise DysonServerError
  File "/usr/local/lib/python3.9/site-packages/libdyson/cloud/account.py", line 113, in request
    auth=self._auth if auth else None,
libdyson.exceptions.DysonInvalidAuth

Logger: homeassistant.config_entries
Source: custom_components/dyson_cloud/__init__.py:43
Integration: Dyson Cloud (documentation, issues)
First occurred: 12:40:36 AM (2 occurrences)
Last logged: 1:30:15 AM

Error setting up entry<EMAIL_ADDRESS>(SE) for dyson_cloud
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 313, in async_setup
    result = await component.async_setup_entry(hass, self)  # type: ignore
  File "/config/custom_components/dyson_cloud/__init__.py", line 43, in async_setup_entry
    devices = await hass.async_add_executor_job(account.devices)
  File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 52, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.9/site-packages/libdyson/cloud/account.py", line 167, in devices
  File "/usr/local/lib/python3.9/site-packages/libdyson/cloud/account.py", line 113, in request
    auth=self._auth if auth else None,
libdyson.exceptions.DysonInvalidAuth

I am getting exactly the same issue too:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 313, in async_setup
result = await component.async_setup_entry(hass, self) # type: ignore
File "/config/custom_components/dyson_cloud/__init__.py", line 43, in async_setup_entry
devices = await hass.async_add_executor_job(account.devices)
File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 52, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/local/lib/python3.9/site-packages/libdyson/cloud/account.py", line 167, in devices
response = self.request("GET", API_PATH_DEVICES)
File "/usr/local/lib/python3.9/site-packages/libdyson/cloud/account.py", line 113, in request
raise DysonInvalidAuth
libdyson.exceptions.DysonInvalidAuth

2022-04-29 08:13:44 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/aiohttp/web_protocol.py", line 435, in _handle_request
resp = await request_handler(request)
File "/usr/local/lib/python3.9/site-packages/aiohttp/web_app.py", line 504, in _handle
resp = await handler(request)
File "/usr/local/lib/python3.9/site-packages/aiohttp/web_middlewares.py", line 117, in impl
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 60, in security_filter_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 100, in forwarded_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 79, in ban_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 219, in auth_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 137, in handle
result = await result
File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 206, in post
return await super().post(request, flow_id)
File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 62, in wrapper
result = await method(view, request, *args, **kwargs)
File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 110, in post
result = await self._flow_mgr.async_configure(flow_id, data)
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 260, in async_configure
result = await self._async_handle_step(
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 335, in _async_handle_step
result: FlowResult = await getattr(flow, method)(user_input)
File "/config/custom_components/dyson_cloud/config_flow.py", line 71, in async_step_email
self._verify = await self.hass.async_add_executor_job(
File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/local/lib/python3.9/site-packages/libdyson/cloud/account.py", line 122, in login_email_otp
response = self.request(
File "/usr/local/lib/python3.9/site-packages/libdyson/cloud/account.py", line 114, in request
raise DysonInvalidAuth
libdyson.exceptions.DysonInvalidAuth


Resize before/after printing on webkit browser

the contentWindow.js adds listeners for beforeprint and afterprint, however this is not supported by webkit browsers. It would be useful if this could be built in to the library, possibly with something like the snippet below.
if (window.matchMedia) {
  var mediaQueryList = window.matchMedia('print');
  mediaQueryList.addListener(function(mql) {
    if (mql.matches) {
       // before print
    } else {
      // after print
    }
  });
}

Unsupported listeners are just ignored, so no need to test for them.

@davidjbradshaw Not sure I quite understand why this was closed. I wasn't saying the unsupported listeners cause problems, I was asking why can't we have a different listener added to cater for webkit browsers?


Migrating to WDC 3.0

Hi,
It appears that WDC 2.0 is being deprecated. I was wondering if there is a way to migrate this project to version 3.0. Here is the official documentation on the matter:
Important: Tableau Web Data Connector 2.0 (this version) is being deprecated at Tableau 2023.1 and eventually retired.
We will still support WDC 2.0 until its last compatible version of Tableau (Tableau 2022.4) goes End of Life and is no longer supported.

For information about Tableau Web Data Connector 3.0,
see the [WDC 3.0 documentation](https://help.tableau.com/current/api/webdataconnector/en-us/index.html).

Hi @KryeKuzhinieri, Yes I believe it can be. I'll take a look and see what it would take to do so and let you know!

Thanks, much appreciated!

Hi @KryeKuzhinieri, so I spent some time trying to brush up on the new WDC 3.0 SDK and unfortunately it seems like it is waaaaaay more complicated than WDC 2.0. No longer will a simple web app do, the tooling is way more complex and you now need to package the connectors into a file and install them locally on your machine in order to use them. (How do they expect folks to get updates??) Additionally, to create them and have them be able to be used by others you need to get them signed by a trusted certificate authority. 🙄 On top of that, it is no longer possible to use Tableau Public to work on or use WDCs, which I have been using since leaving Tableau. All of these things combined unfortunately means I will not be able to migrate the code to WDC 3.0. The code is openly available and under MIT license so feel free to grab it and see if you can get it to work with 3.0. Hopefully, you can find an alternative solution. I'm sad that Tableau has chosen to go this direction, I think it will make it harder not easier for many folks who simply need to access data on the web. Sorry this is the response, I hope you can understand. 🙁


Insiders is no longer removing obsolete (superseded) extension folders

I think this got broken very recently by 12e03adf6e77eb3c9ae7299f35ae4707c1d39638 (PR #188917 by @sandy081)
The arguments passed to isEqualOrParent here are reversed.
https://github.com/microsoft/vscode/blob/e1b9eedbbb5d8247ce2caba92d0d9a2277ca5400/src/vs/platform/extensionManagement/node/extensionManagementService.ts#L573-L575

The PR LGTM but I'd like to confirm what the repro/verification steps are. Also, if the folder stays there, do you know whether it's just taking up space, or whether it immediately starts to interfere with other extension-related functions?

My extensions folder is packed full of stuff like this from the last week

I think that is the issue, and I agree re:candidate

A repro is to use the "Install Another Version...` option several times from the extension's gearwheel, restart VS Code a few times to give the normal cleanup a chance to do its stuff, then observe that your extensions folder still has obsolete entries. Here are some of mine from testing earlier today (UK timezone)

I guess the verification of the issue that the bad PR was intended to fix (Installing extension from VSIX after installing from location deletes original directory) confirmed that the unwanted deletion didn't happen but didn't verify the inverse (i.e. that wanted deletions continued to happen).

Please will someone label this Candidate so it doesn't get overlooked?

@roblourens @rzhao271 Could you please help verify this?

I have verified this in the new Insiders.


Version protocol_state

Versioning of Protocol_state.value, which feeds into External_transition, used in RPC types.
There's more to do here, namely the Body module.

[ ] Tests were added for the new behavior
[ ] All tests pass (CI will check this if you didn't)
[X] Serialized types are in stable-versioned modules
[ ] Does this close issues? List them:

Added a commit to version Body.value; still need to version the types that feed into that.


Plan Next day

After taking feedback of the day, app should ask about plan for next day.

[ ] what topics to study for which exams.
[ ] what kind of study: Conceptual, Practice, Rote Learning, Reading, Mock test.

this will be used to make plan with optimal breaks and length of each sitting.

[ ] Any important task that is other than daily routine
[ ] Backlogs of today.
[ ] Suggestion to remedy the blockers.
[ ] Progress in maintaining routine and meeting expectations daily/weekly/monthly.

Added object plan:
`public class Plan {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;

@Column(nullable = false)
private LocalDate from;

@Column(nullable = false)
private LocalDate to;

private StudyDuration dailyStudyDuration;
private Map<Topic, String> topicsMap;//details like when to study, how much, for what etc.
private Map<StudyType, Double> studyTypePercentage;
private Task otherTask;
private Map<Topic, String> backlogMap;
private String blockers;
private String remedy;

private Double percentageDone;// actual achievement of plan.

}`


Drop support for Python 2.6

Closes #910

@wesm i think this is up next. this PR drops 2.6 and adds circle ci testing for all of the python versions that we support.


3rd party libraries don't override built-ins

Built in libraries are used even when 3rd-party libraries should override them. For example, WebOb 1.4 vs. the built-in 1.2.
This problem was inadvertently introduced with https://github.com/GoogleCloudPlatform/appengine-python-flask-skeleton/pull/9

We use vendor now, so this shouldn't be a problem.

:+1:


Proposition : Open new feeds in a new tab

Usecase: When you want to generate multiple feeds from one bridge (different parameters), you have to go back...
It makes sense to open the generated URL in a new tab instead.

To bounce an additional idea here, it would also be nice to have a "copy link to clipboard" button under existing buttons

I like this change. Will probably merge this.

This is a UI change which might annoy some users. Still a good change.


Don't render top and bottom content if it is not passed.

If I don't pass topContent or bottomContent, can it be not renderet at all? It looks like empty spaces and can't be removed via style.

Just set height = 0 for Top and Bottom.
topViewStyle={{height: 0, flex: 0}}   bottomViewStyle={{height: 0, flex: 0}}

Just set height = 0 for Top and Bottom.
topViewStyle={{height: 0, flex: 0}} bottomViewStyle={{height: 0, flex: 0}}

It does not work for me!!
my QRCodeScanner is in a view with flex:5.


Cannot restart a simulation that failed for internal reasons

Sometimes when I run a simulation, it will fail for internal aerie reasons. I would like to be able to restart the simulation to try again by pressing the simulate button after this happens. The error is aerie internal and not directly related to the plan, so I don't want to have to change anything in the plan to try again. (Current workaround is to tweak something in the plan so it marked "out of date" and can be resimulated.)

@AaronPlave this is the ticket for restarting an unmodified sim that I mentioned in sprint planning today... Per discussion I think the desired approach is:

We should show a button in the Simulation panel (but NOT the Simulation Status popover) that allows the user to forcibly re-run the simulation even if nothing has changed
I think this can just be the existing Simulate button, instead of graying it out it could be changed to "Re-Run Simulation" if nothing has changed? Or I'm open to adding a separate button, we can ask @lklyne next week if there are more design questions.
Code-wise it sounds like the easiest way to accomplish this is just to bump the revision number of the plan & then send a normal sim request

@AaronPlave this is the ticket for restarting an unmodified sim that I mentioned in sprint planning today... Per discussion I think the desired approach is:

We should show a button in the Simulation panel (but NOT the Simulation Status popover) that allows the user to forcibly re-run the simulation even if nothing has changed
I think this can just be the existing Simulate button, instead of graying it out it could be changed to "Re-Run Simulation" if nothing has changed? Or I'm open to adding a separate button, we can ask @lklyne next week if there are more design questions.
Code-wise it sounds like the easiest way to accomplish this is just to bump the revision number of the plan & then send a normal sim request

Is there any reason not to have the behavior be the same in the popover vs the simulation panel?

Depends on https://github.com/NASA-AMMOS/aerie/issues/1317


Scheme Registry Server not working on standalone tomcat

Using Chelsea.RC1. I have in application.properties:
spring.cloud.stream.schemaRegistryClient.endpoint=http://localhost:8080/csl
spring.cloud.stream.schema.server.path=/csl
Getting error:
org.springframework.messaging.MessageDeliveryException: failed to send Message to channel 'df2'; nested exception is java.lang.RuntimeException: Failed to register schema: <302 Found,{Location=[/csl/], Transfer-Encoding=[chunked], Date=[Mon, 27 Mar 2017 12:13:58 GMT]}>, failedMessage=GenericMessage [payload
from access log on tomcat
"POST /csl HTTP/1.1" 302 -
Using postgres for DB. Everything works fine if I run spring boot main class manually with embedded tomcat.

Hi, we have tested this and answered the original question at stackoverflow. Here's a configuration that works:
server.port=8080
spring.cloud.stream.schemaRegistryClient.endpoint=http://localhost:8080/csl/
spring.cloud.stream.schema.avro.dynamic-schema-generation-enabled=true
spring.rabbitmq.addresses=<IP_ADDRESS>
spring.cloud.stream.schema.server.path=csl


MNT Convert to numpy to remove warnings when accessing bagged estimators

Some UserWarnings were not removed in #486. This fixes it.

I feel warnings.catch_warnings() complicates the code too much by adding another level of indentation, maybe something simpler would be to use data.to_numpy() with a potential comment saying that this is to avoid an obscure warning in scikit-learn (and maybe mention that this will be fixed at one point)

All comments addressed, thank you!

Uhm it seems that the example where not run. Could you merge master into your branch. There is maybe something wrong with the cache.

The rendering looks good.


TopKDecoder doesn't work on batch size > 1

The inflate on the the hidden state and the encoder outputs is incorrect.
If the original hidden state has length 3 and a batch size of 2, it will look like this:
[ABC
DEF]
And the current inflate does this (for a beam size of 2):
[ABC
DEF]
[ABC
DEF]
But it should actually be:
[ABC
ABC]
[DEF
DEF]

Actually expanding [A;B] to [A;B;A;B] is expected, because each beam is indexed by idx / batch_size + beam_idx.


Fix wrong method in zone.js test

This appears to be a simple copy/paste error. The enclosing context is getRecords, but this test calls getChanges.

doh! nice catch!


Issue 2353: Retain iptables config across reboots on Container Linux

This PR includes two changes:

A minor fix to the Terraform module for OpenStack to avoid a deprecation warning on the use of external_gateway
Ansible pre-install tasks to enable iptables save/restore handlers in CoreOS when using iptables for kube-proxy (see issue #2353)

I am not sure you should persist the iptables on CoreOS as kube-proxy should re-initialize the iptables when it gets back up on the host.
I've been running CoreOS and Kubernetes for a few years now and never encountered this problem, nor have I seen any documentation on to persist iptables when kube-proxy runs in iptables mode?

@woopstar Okay, I will look for that.  Any tips on where I start debugging that would be helpful--so far I have found nothing in the logs that suggests kube-proxy is failing on startup, except of course that it can't reach the API server to get information about itself.

See related issue for further investigation.
Closing this PR because:

As described above, saving/restoring the iptables configuration should happen anyway, as part of the kube-proxy syncing, and this fix only masks another problem).
The deprecation warning fix also included here should be separated out.

Thanks @woopstar and @Atoms for your help with this.


Seems to have a conflict when including the svelte preproccers (sass)

I can't reproduce locally. Technically this preprocessor shouldn't be affected by any css preprocessor since it only meddles with code in the markup and script tag. Do you have an example to reproduce this?


Emulated Hue + Alexa: Fix devices not discovered and error response (#30013 & #29899)

Proposed change

Reverts PR #31330 and fixes #30013 and fixes #29899
Alexa seems to react differently whether devices have been paired once already. The proposed fixes in PR #31330 didn't work, collective debugging efforts with @BearWithTie @borisfeldman and @josh929800 brought up a consistent fix for the discovery issue (#31330) as well as the the related issue #29899 about getting verbal error responses when interacting with those devices (even though the commands work)
Type of change

[ ] Dependency upgrade
[x] Bugfix (non-breaking change which fixes an issue)
[ ] New integration (thank you!)
[ ] New feature (which adds functionality to an existing integration)
[ ] Breaking change (fix/feature causing existing functionality to break)
[ ] Code quality improvements to existing code or addition of tests

Additional information

This PR fixes or closes issue: fixes #30013 ; fixes #29899
This PR is related to issue: PR #31330
Link to documentation pull request: not applicable

Checklist

[x] The code change is tested and works locally.
[x] Local tests pass. Your PR cannot be merged unless tests pass
[x] There is no commented out code in this PR.
[x] I have followed the development checklist
[x] The code has been formatted using Black (black --fast homeassistant tests)
[x] Tests have been added to verify that the new code works.

The integration reached or maintains the following Integration Quality Scale:

[x] No score or internal
[ ] 🥈 Silver
[ ] 🥇 Gold
[ ] 🏆 Platinum

Thanks! Let's hope that it's fixed now

@xtools-at I have updated to last beta, but the errore response still alive. Other think are fine.

Hmmm it works for 4 other people (including me) - which domains/entity types are you getting error responses for? Switches and Scripts should work fine

@xtools-at actually i have Switchs and lights, 3 lights adn 3 switchs, alexa turn it on and off but continusly repeat response error. My configuration is with echo dot 3 i get it just 3 hours ago from amazon. With the android app i get same problem. I think it is a problem on update response from devices.

@peppeve just a thought, did you try to forget and rediscover all HA devices?

@BearWithTie , yes i already try. Same issue.

No discussion on PRs please. You can open a new issue. Also make sure you are on the latest beta.


RFC: Net Layer

Previous iterations of this network design accounted for a "net" layer for installing networking hardware within a Titan network. Since, for example, AWS does not support edge-routing/transit-routing, they suggest running hardware which will enable this.
(re: edge-routing/transit-vpc: you cannot route packets from VPC A to VPC C via VPC B. If VPC A and VPC C are both peered to VPC B, you cannot route packets from VPC A to VPC C via VPC B.)
Is this a common use case, common enough that we would like to support this layer by default in Titan networks? I'm leaning toward no, but I encourage a discussion.
RFC @lordnynex @asciifaceman @catherinetcai @taup1n @smaslennikov

@lordnynex do you have any opinion on this?

As discussed with @lordnynex the net layer should be optional. If networking equipment is required, either declare the layer yourself or put them in the admin layer.


update-conf.md: Document MACHINE_ALIAS variable

The new optional variable MACHINE_ALIAS is documented, mainly to be
used in conjunction with a private update server.

:+1:


Improve search

Vuepress allows for external search engines/plugins etc

Applied to be part of https://docsearch.algolia.com/ 🤞

For further config, make a PR to: https://github.com/algolia/docsearch-configs/blob/master/configs/speckle.json


Fix invalid BindParam output in Dot visitor

Since BindParam has no value, treating it like a string causes it to fallback to Object#to_s, leading to output like #<Arel::Nodes::BindParam:0x007fa43c866108>.
Since angle brackets are significant in Dot labels, this causes Error: bad label format when passing the graph into dot.
I've changed visit_Arel_Nodes_BindParam to a noop, which solves the problem.

Backported in ec055cd


DIS-32 make total credits bar unclickable

Description
In the distributions branch on frontend, clicking on the total credits bar in the tracker caused the app to crash. So the solution is to make the total credits bar unclickable.
Implementation
In the CourseBar.tsx, openCartPopup function is called when the CourseBar is clicked. I made the total credits bar unclickable by changing how the correct distribution was filtered from the distributions.
Testing
Tested locally but only on a new plan with no courses added. I have two dev accounts, mkim224 and mkim25, but for some reason they don't have majors in the plans containing courses (and thus only the total credits bar showed up in the tracker). So I created a new plan which meant distribution bars were shown in the tracker, but I couldn't add new courses and check that course counting and distribution tracking are working after making the total credits bar unclickable.
I would like to conduct more testing locally once I figure out the issues with my dev accounts.

Not sure why I still have prettier issues with these two files again...on my VSCode, they have no issues
[warn] lib/components/dashboard/menus/PlanEditMenu.tsx
[warn] lib/resources/commonTypes.tsx


Ensure we only have a single isort process running on a single file

For #10579

[x] Pull request represents a single change (i.e. not fixing disparate/unrelated things in a single PR).
[x] Title summarizes what is changing.
[x] Has a news entry file (remember to thank yourself!).
[ ] Appropriate comments and documentation strings in the code.
[ ] Has sufficient logging.
[ ] Has telemetry for enhancements.
[x] Unit tests & system/integration tests are added/updated.
[ ] Test plan is updated as appropriate.
[ ] package-lock.json has been regenerated by running npm install (if dependencies have changed).
[ ] The wiki is updated with any design decisions/details.

Is the following scenario possible and/or something we should consider:

isort is triggered, so a promise is added to the map
more changes are made to the file, but the first promise hasn't completed yet
isort is triggered again, but we are discarding the incoming command since the first promise hasn't completed yet

Is the following scenario possible and/or something we should consider:

isort is triggered, so a promise is added to the map
more changes are made to the file, but the first promise hasn't completed yet
isort is triggered again, but we are discarding the incoming command since the first promise hasn't completed yet

This may be a scenario that causes microsoft/pylance-release#23 as well, but I don't know how VSC deals with multiple organizers.

@kimadeline @jakebailey As @DonJayamanne suggested, I have changed the code to kill the previous isort process and continue with the new one. This should take care of your scenario as well.


Change desktop window name

Just a small PR that change the game window's name to the real game's name.

Closed by #155


Doc changes

regarding:

https://github.com/open-cluster-management/backlog/issues/16188
https://github.com/open-cluster-management/backlog/issues/14581

A slew of doc-string updates

/cc @jeswanke @mark-nc
FYI @cadawson

/cc @KevinFCormier

@jeswanke @mark-nc @KevinFCormier
Still in need of a review 😰

@Randy424 I have one pending comment from my review that has not been responded/resolved yet.  Once that is addressed I have no additional review comments and can mark the review approved.

@mark-nc Thanks Mark! On my side I'm not seeing your review. Could you comment with a link to the thread/commentary?

What is the impetus for eliminating all uses of GiB? MiB/GiB are 1024-based values, whereas MB/GB are 1000-based.
In OCP documentation, I do see MiB used in some cases. For example, for RHV see the description of memoryMB in the table: "Optional. Memory of the VM in MiB."
https://docs.openshift.com/container-platform/4.8/installing/installing_rhv/installing-rhv-customizations.html
AWS documentation shows memory sizes in GiB:
https://aws.amazon.com/ec2/instance-types/m5/

@KevinFCormier
At first we believed this was just an alternate spelling of the traditional GB/MB nomenclature. Thanks for pointing that our, I will revert those.

What is the impetus for eliminating all uses of GiB? MiB/GiB are 1024-based values, whereas MB/GB are 1000-based.
In OCP documentation, I do see MiB used in some cases. For example, for RHV see the description of memoryMB in the table: "Optional. Memory of the VM in MiB."
https://docs.openshift.com/container-platform/4.8/installing/installing_rhv/installing-rhv-customizations.html
AWS documentation shows memory sizes in GiB:
https://aws.amazon.com/ec2/instance-types/m5/

FYI @cadawson GiB/MiB are apparently not just weird looking, but are also distinct units of measure!

@KevinFCormier I've reverted the changes, and we're ready for another review.

Regarding MiB/GiB: I see your point. It looked like it was inconsistent, as sometimes we use GB and sometimes GiB. If it is intended to be a different unit of measure, then it is ok to leave it. From an editing perspective, I have seen several times when someone used GiB and intended GB, so it raises a red flag. I have seen GB used much more than GiB. For my knowledge, is there some time or location where people are more likely to use GiB vs GB? Is there any reason to not be consistent on them?

@cadawson @Randy424 The problem with MiB/MB and GiB/GB is that when using MiB or GiB, you are generally sure that these are the 1024-based calculations. With MB/GB, it could mean either. See https://en.wikipedia.org/wiki/Byte#Multiple-byte_units
So, it definitely warrants further exploration of what is in common usage and whether we want to always use MB/GB even though they can be ambiguous. But given that AWS uses GiB in their docs, I don't see why we would change it to GB at least in that case.

/lgtm

Thanks for the link and explanation @KevinFCormier. It sounds like a bit of a mess. I certainly don't think we have the information necessary right now to support changing all of them now, so you are right. I see your point about GiB being more exact, but if someone used it thinking it was the same as GB, then it's mostly wrong. I think there is some comfort in knowing that there is not a huge difference between the two, in case either one might not be what was intended. Closed for now, I guess. We can take a look when we have some time. Thanks! Thanks for making the changes @Randy424!


Grammatical Fixes

when the user stops it

is ambiguous, better to specify that when user stops hovering.
worthwhile not "worth your while"
ln118 I am assuming that the phrase means "sometimes you neither want your link to go to a certain web page nor reload the page" wording was a bit confusing.

@SemicolonExpected thanks, I appreciate it.


Removes denyWith response message when body is not set

This PR removes the x-ext-auth-reason header from the request response when a denyWith custom message is not set in the AuthConfig
AuthConfig
...
spec:
  denyWith:
    unauthenticated:
      code: 302
      headers:
      - name: Location
        valueFrom:
          authJSON: http://matrix-quotes-authorino.<IP_ADDRESS>.nip.io:8000/login.html?redirect_to={context.request.http.path}
      message:
        value: bla

## response
HTTP/1.1 302 Found
location: http://matrix-quotes-authorino.<IP_ADDRESS>.nip.io:8000/login.html?redirect_to=/hello
x-ext-auth-reason: bla
date: Thu, 07 Apr 2022 09:01:19 GMT
server: envoy
content-length: 0

AuthConfig
...
spec:
  denyWith:
    unauthenticated:
      code: 302
      headers:
      - name: Location
        valueFrom:
          authJSON: http://matrix-quotes-authorino.<IP_ADDRESS>.nip.io:8000/login.html?redirect_to={context.request.http.path}

## response
HTTP/1.1 302 Found
location: http://matrix-quotes-authorino.<IP_ADDRESS>.nip.io:8000/login.html?redirect_to=/hello
date: Thu, 07 Apr 2022 09:01:19 GMT
server: envoy
content-length: 0

Verification steps
Follow the steps from this PR https://github.com/Kuadrant/authorino/pull/241 remove the message field from the AuthConfig and verify if the x-ext-auth-reason header has been removed from the response.

Closing this as the x-ext-auth-reason  header can never empty


Bug - : chaining selectors - images won't load in the given index.html file

Complete the following REQUIRED checkboxes:

[X] I have thoroughly read and understand The Odin Project Contributing Guide
[ X] The title of this issue follows the Bug - location of bug: brief description of bug format, e.g. Bug - Grid exercises: CSS not properly linked to HTML files

The following checkbox is OPTIONAL:

[ ] I would like to be assigned this issue to work on it

1. Description of the Bug:

Images won't load. I believe its because the pexels reference no longer works.
2. How To Reproduce:
 Try to load index.html in the chaining selectors exercise
3. Expected Behavior:
 Images won't load
4. Desktop/Device:

Device:  Laptop
OS:  Linux
Browser:  Chrome
Version:  103

5. Additional Information:

Hi @kkoullapis 👋
I am not having any issues loading the index.html of the 04-chaining-selectors exercise. Are you still experiencing this issue and can you give any more details on your process for trying to open it? Thanks!

Hey! @kkoullapis
Download the images from the repo.

hey! @kkoullapis
Download the images from the repo and try to change the image format to png. it will work.

@kkoullapis Are you still having issues with the images?

closing this issue.. cant' replicate, and haven't had a response for quite some time.


Implement a mitigation for panic: unexpected end of JSON input

How to categorize this issue?

/area ops-productivity
/kind enhancement
What would you like to be added:
Now and then we hit occurrences of https://github.com/distribution/distribution/issues/4478.
We could actually consider adding an init container that mitigates the issue. In the init container, when the issue occurs (the scheduler-state.json file exists but it is empty and the /var/lib/registry/docker dir is not empty), then we could delete the scheduler-state.json file and the /var/lib/registry/docker dir to mitigate the issue.
Why is this needed:
Reduce repetitive and recurring ops effort until the upstream issue is fixed.

/assign @dimitar-kostadinov


Named options are case sensitive

Not sure if it's intended, but it looks like Named options are case sensitive. If that's intentional, I think there should be a note in that section of the docs letting people know that it's case sensitive in advance.

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

ID: ed39cb0e-aa85-8bba-ffb4-859b56a60723
Version Independent ID: dc7e3449-650b-d117-5eac-69e5ccb250cb
Content: Options pattern in ASP.NET Core
Content Source: aspnetcore/fundamentals/configuration/options.md
Product: aspnet-core
Technology: aspnetcore-fundamentals
GitHub Login: @guardrex
Microsoft Alias: riande

@HaoK, I can't repro this behavior with the sample app. Changing the named options name on either end (Configure or Get) draws the same values.

Configuration isn't case sensitive, but named options themselves are, I added a test in this PR to demonstrate https://github.com/aspnet/Extensions/pull/2829/files

Thanks ... I found the error here. I can repro the behavior now. I'll get the PR in tomorrow.


a device for every camera rather than all cameras being listed as one device

Is your feature request related to a problem? Please describe.
All cameras show up as a single device.  This is extremely messy and difficult to mnage when you have 2 or 3 cameras each with 7 or 8 object detection.
Describe the solution you'd like
Every cameras should be its own device with its entities underneath them
Describe alternatives you've considered
none
Additional context
frigate with 5 cameras, 1 device with 131 entities

it shoudl look more like motioneye

There is actually a PR (opened yesterday) for this already: https://github.com/blakeblackshear/frigate-hass-integration/pull/57

awesome.  sorry i missed it

Here's hoping it gets merged 🤞

It was merged and should show up in the next release. You can probably close this bug.


Tridonic BM RS-232 with USB adapter

Hello,
First of all, thank you for maintaining this awesome library. It really is great. I've just got one small problem.
I'm using a Tridonic BM RS-232 (which is is usually through serial) plugged into a RS-232 to USB adapter in hopes of using this library. Unfortunately, the daliserver library can't seem to find it no matter what I try.
However, the official DALI Tool finds it and operates it perfectly fine. I'm just curious if you have any input or advice on this. Thanks!

The BM RS-232 is a completely different device to the DALI-USB.  daliserver doesn't have any code in it to drive it.
It's likely that the BM RS-232 is using the same serial protocol as the RS-232 PS/S.  This is documented in the data sheet - see the link here.  The protocol looks quite straightforward, so writing a driver ought to be fairly simple.  What kind of software do you want to use it with?

I'm writing a simple voice controlled system to control the lighting in a media studio. Unfortunately, I'm simply a first year student in a computer science major so I'm very inexperienced when it comes to these things.
I'll look into the link you gave me and if push comes to shove, we'll just buy the Tridonic USB Dali. Thanks!

I've written an outline of a driver for the RS-232 device for use with the python-dali library.  See the file dali/serial.py in the "serialdriver" branch here.  Note that I don't have one of these, the code is completely untested, and I haven't included any code to handle unexpected responses from the device - that's up to you to do!

Wow thanks a lot! I'll give this a shot as soon as I can!

@CGMLab I'm going to close this issue now, as it's out of focus of daliserver. Perhaps I'll look into supporting the RS-232 protocol in the future, but I currently don't have access to the corresponding hardware.


Replace the old critical issues layer with a new automtic layer

Instead of manually loading an xlsx file, automatically download when logged in. The contents of the file has also changed.
This is a simple first version to get internal feedback. Many styling improvements to follow.
To test locally, you need to generate the layer, symlink it up to public/private_layers/v1/problems.geojson.gz, then do VITE_RESOURCE_BASE="" VITE_MIMIC_GCP_LOCALLY="true" npm run dev

Thanks, done. Could you look at https://github.com/acteng/atip-data-prep/pull/62 and upload the file please?


Add example of creating and adding MarketBidCost data

This issue is a response to a request in the slack channel to have an example of the use of MarketBidCost.

Have the examples already been published?

For now, is in https://nrel-siip.github.io/PowerSystems.jl/latest/modeler_guide/market_bid_cost/ will appear when we do the new release.

@sourabhdalvi I noticed that the example code runs on an invalid data set. Could you make it not an @example block in the docs or make such that the data set is valid? It is not best to display the documentation with error returns.

closed via #676


Support dual stack services

This keeps ipFamily in the component chart and translates it to ipFamilyPolicy to allow dual stack deployments.
Closes #107

Thanks for the PR @withinboredom, mostly LGTM. It would probably make sense also to rename the field name in the values.yaml file to avoid confusion in the future.


Feature/docusaurus post launch 2nd time

Adding styling updates from Andrew Larbi. Changing the term 'Documentation' to 'User guide' in the upper left area next to the wordmark 'PLUTUS'.
This slightly renamed branch was created to correct an issue that unexpectedly came up that brought in code from another branch.

I think this branch still has code from Ana that I didn't intend to include. Earlier I encountered a conflict when pushing a commit and I thought at the time that it made sense to do a --rebase command. That may be what caused this issue. I just want to back up and start over, only bringing in the documentation design changes. Should be a simple thing, but I haven't sorted it out correctly yet. :/

I wonder, though, if this branch got merged as is, would that be ok? It just might be redundant if Ana's code had previously already been committed and merged. Sorry for the hassle!


Technical Steering Committee (TSC) Charter

As part of the Academy Software Foundation graduation process, OpenTimelineIO needs to adopt a charter for our technical steering committee, which includes a governance model.
Here is the ASWF TSC charter template as a starting point:
https://github.com/AcademySoftwareFoundation/tac/blob/master/process/charter_template.md

Here is a template of the charter with the relevant changes specific to this community included for the TSC to review...
https://github.com/AcademySoftwareFoundation/foundation/pull/5

Addressed by #1057


Let me help you to add more messages

Hi, I'm working in a project that needs sensor_msgs/NavSatFix message, and currently is not implemented, so I want to help you to add more message types. I don't know how, so I need you to teach me.
Thanks.

Just popping in here because I was browsing issues to possibly work on.
You might want to start by looking in rosrust_codegen/src/msg_examples/sensor_msgs/msg/. There are already examples there for Image.msg and Imu.msg. I think those should provide sufficient examples for all the types you would need to implement NavSatFix?
Hope this helps!

Thank you, man! I'm going to check that examples and see if I can add the NavSatFix.

Hi, I'm wondering whether it will be possible to support customised messages?


Document return types in blaze

Source of discussion: https://github.com/ContinuumIO/blaze/issues/1124
NumPy has really helpful documentation that thoroughly describes each function.  While NumPy is a mature package and blaze is still maturing, the level of detail in blaze's documentation is understandably less.  However, one thing that NumPy does really well is telling the user the exact inputs and outputs of a function and their types.
For example, in NumPy the documentation for numpy.cos
cos(x[, out])

Cosine element-wise.

Parameters
----------
x : array_like
    Input array in radians.
out : ndarray, optional
    Output array of same shape as `x`.

Returns
-------
y : ndarray
    The corresponding cosine values.

Raises
------
ValueError: invalid return array shape
    if `out` is provided and `out.shape` != `x.shape` (See Examples)
...

I can clearly see that this function expects an array as input and give me back an array.  If anything goes wrong, I should expect to see a ValueError.
It would amazing if blaze included docstrings like this for its functions.  I do note that many of blaze's functions already explain what they expect as input.  In the referenced issue above, I received what looked like an int from blaze, but it turned out to be a blaze expression instead.
The end goal of this issue is to add return types to the docstrings, documented in a similar fashion as they are in NumPy.  For example, to address the other issue, something similar to below would suffice (for blaze.interactive.InteractiveSymbol when they type testdata? in ipython):
The ``Data`` object presents a familiar view onto a variety of forms of
data.  This user-level object provides an interactive experience to using
Blaze's abstract expressions.

Parameters
----------
data : object
    Any type with ``discover`` and ``compute`` implementations
fields : list, optional
    Field or column names, will be inferred from datasource if possible
dshape : str or DataShape, optional
    DataShape describing input data
name : str, optional
    A name for the data.

Attributes
--------
...
nrows: blaze.expr.Reduction.nelements
  Blaze expression for computing the number of elements, including missing data.
...

And for testdata.nrows?
Compute the number of elements in a collection, including missing values.

Returns
--------
out: blaze.expr.reductions.nelements
  Expression to calculate number of elements.

See Also
---------
blaze.expr.reductions.count: compute the number of non-null elements

+1, I really like the numpy doc style.


Cannot distinguish between SELECT * FROM foo and SELECT * FROM foo()

sqlparser::ast::TableFactor::Table just represents the arguments as a Vec<FunctionArg> both
SELECT * FROM foo and SELECT * FROM foo() and are parsed as:
Table { name: ObjectName([Ident { value: "foo", quote_style: None }]), alias: None, args: [], with_hints: [] }

This is apparently a regression that was introduced in 5652b4676c65f0875fd8c4849dd7cb27c819bef6 (#73).

@not-my-profile  we would be happy to accept a proposed fix


player can play x265 video ?

this video player can play video that have x265?

What video format depends on the MediaPlayer engine.
This is android.media.MediaPlayer support formate https://developer.android.com/guide/appendix/media-formats.html


[SPARK-24309][CORE] AsyncEventQueue should stop on interrupt.

EventListeners can interrupt the event queue thread.  In particular,
when the EventLoggingListener writes to hdfs, hdfs can interrupt the
thread.  When there is an interrupt, the queue should be removed and stop
accepting any more events.  Before this change, the queue would continue
to take more events (till it was full), and then would not stop when the
application was complete because the PoisonPill couldn't be added.
Added a unit test which failed before this change.

Test build #90753 has started for PR 21356 at commit a689f52.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/3310/
Test PASSed.

Test build #90753 has finished for PR 21356 at commit a689f52.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/90753/
Test PASSed.

Merged build finished. Test PASSed.

Test build #90769 has started for PR 21356 at commit 0a44c06.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/3317/
Test PASSed.

does this mean a problematic listener can kill the queue and crash other listeners in the same queue? Shall we do some isolation?
Not introduced by this PR, but I'm wondering why we only catch InterruptedException? what about other exceptions?

does this mean a problematic listener can kill the queue and crash other listeners in the same queue? Shall we do some isolation?

yeah I think marcelo was asking about this above https://github.com/apache/spark/pull/21356#discussion_r189100750
of course, we can't stop a listener from causing an OOM or launching 20 threads and hogging the CPU, but we could try for a little more isolation ...

Not introduced by this PR, but I'm wondering why we only catch InterruptedException? what about other exceptions?

NonFatal is already handled inside ListenerBus.postToAll

Test build #90769 has finished for PR 21356 at commit 0a44c06.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/90769/
Test FAILed.

Since InterruptedException is fatal, maybe it's not safe to keep calling this listener, but stopping the entire queue seems an overkill. Shall we just remove this listener from the queue?

Also PoisonPill could be handled differently some msgs should have higher priority, consider them as part of your control plane.

Test build #90795 has started for PR 21356 at commit 4a1f657.

I pushed an update which only removes the listener which was active at the interrupt.  Note that is not the same thing as the listener which caused the interrupt, necessarily -- we have no idea who caused the interrupt really, but I guess it would be rather contrived for another Thread to interrupt the event queue threads.
I'm not sure if I should leave some more guards against interrupts as well -- eg. check the interrupted status before posting the event to a specific listener, and if its set throwing InterruptedException, and leaving the generic handling of InterruptedException in the AsyncEventQueue, to shut the queue down entirely if there is any interrupt outside of a posting to a listener.

As an alternative design option, PoisonPill could be handled differently, since some msgs should have higher priority and can be considered them as part of your "control plane".

I'm pretty sure the existing use of PoisonPill is intentionally put at the end of the queue, so that the everything is processed before the queue is shut down.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/3337/
Test PASSed.

I'm pretty sure the existing use of PoisonPill is intentionally put at the end of the queue, so that the > everything is processed before the queue is shut down.
Yes I guessed that, I was just thinking that knowing that its to time shut down is one thing and consuming all input is another. anyway.

hdfs can interrupt the thread.

@squito Could you clarify this? This sounds like a bug in HDFS. I'm curious when this will happen. Although we don't interrupt the AsyncEventQueue thread in Spark right now, I think it's still better to respect InterruptedException rather than ignoring it, e.g., we may decide to interrupt the thread in future.

So, to clarify a little more what the previous code did: ListenerBus.postToAll() catches non-fatal exceptions from each individual listener and ignores them; but InterruptedException is not one of those, so the old code would stop the context like Imran says.
If we just wanted to emulate the old behavior we could do that, although I agree it's better to try not to do that.
It's weird that HDFS would be throwing that exception in the caller thread, but at the same time, it's an issue that we have to work around, since even if they fix HDFS, there are just so many versions out there for that to not matter much.

@vanzin I just want to understand the real issue here to make sure the current solution is correct.

@zsxwing Imran knows more since he debugged it, but I see a lot of code like this in Hadoop libraries:
try { ... } catch (InterruptedException ie) {
  // log or something
  Thread.currentThread().interrupt();
}

Which could cause things like this. I don't know what would cause the exception in the first place, but the fact that the library is propagating the interrupt to the caller explains why Spark is seeing it in one of its own calls.

The code here is just propagating the interrupt state and is not doing anything wrong. @squito do you know what would cause this in the first place?

Test build #90795 has finished for PR 21356 at commit 4a1f657.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/90795/
Test PASSed.

the problem was not actually an interrupted exception from the listener, it was that the Thread's state was getting set to interrupted, and then there would be a failure later in queue.take():
18/05/16 17:46:36 INFO scheduler.AsyncEventQueue: Stopping listener queue eventLog.
java.lang.InterruptedException
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireInterruptibly(AbstractQueuedSynchronizer.java:1220)
        at java.util.concurrent.locks.ReentrantLock.lockInterruptibly(ReentrantLock.java:335)
        at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:439)
        at org.apache.spark.scheduler.AsyncEventQueue$$anonfun$org$apache$spark$scheduler$AsyncEventQueue$$dispatch$1.apply(AsyncEventQueue.scala:94)
...

so really the question is what to do if a listener sets the interrupt state or throws an InterruptedException.  But from all the discussion its not that clear to me what we should (other than of course preventing the queue from hanging and the applciation from stopping).

I think the behavior in your change (trying to keep things running) is fine. Since the queues are isolated now, there's no risk of bad listeners affecting important ones (like the ones used for dynamic allocation or building the UI) and causing cascading issues, which was a risk in the previous versions.

Test build #90873 has started for PR 21356 at commit 09d55af.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/3400/
Test PASSed.

Merged build finished. Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/90873/
Test PASSed.

Test build #90913 has started for PR 21356 at commit fc8a197.

Test build #90914 has started for PR 21356 at commit 008d14d.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/3425/
Test FAILed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/3426/
Test PASSed.

Test build #90913 has finished for PR 21356 at commit fc8a197.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/90913/
Test PASSed.

Test build #90914 has finished for PR 21356 at commit 008d14d.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/90914/
Test PASSed.

Merged build finished. Test PASSed.

Merging to master / 2.3.


Enable cloudflare proxying

Current behavior

Enable www.metaculus.com proxying mid next week to ensure a smooth transition from our old site to the new one
Enable caching rules for www.metaculus.com

Needs to happen on Sunday - @hlbmtc will do! Thanks Hlib


Run multiple Gitea pods in Kubernetes

Gitea version (or commit ref): 1972383
Git version: 2.15.2
Operating system: Linux
Database (use [x]):

[x] PostgreSQL
[ ] MySQL
[ ] MSSQL
[ ] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[ ] No
[x] Not relevant

Log gist:

Description
We would like to know if running multiple Gitea instances inside Kubernetes is supported. We managed to scale it up to run in multiple pods by pointing to the same database and using shared Kubernetes volume amongst pods via pointing paths in Gitea configuration to the shared volume. I do not see any problems so far, but would like to know what would be potential issues we could face with running multiple instances which share same database and storage.

Hi @abulfat-masimov . Here's one problem you should care about so far is that the SSH key storage problem under multi-instance. Generally SSH public keys is stored in .ssh directory when using system based SSH tool. That may rasie an unexpected authorzation error using SSH for operations. I suggest enabling Gitea build-in SSH server by specifing START_SSH_SERVER = true and also change the SSH_LISTEN_PORT in [server]  config part (still use default SSH_PORT = 22 for serving). You can take a look at Complete List  for more infomation . Hope this can help.

great, thanks @techknowlogick! I'll reach out to them to ask if they have Gitea running in scaled mode.

@techknowlogick: That article is about dropping the SFTP support and unfortunately it's about running a single instance of Gitea in a non-Kubernetes environment. We are currently working on running Gitea on Kubernetes, but we decided to have multiple Gitea instances, logically separated from each other. That's not really the scaling you are probably looking for.

I guess even if we manage to forward write traffic (POST,PUT) to a single Gitea instance to mitigate risks with corruption, yet it will not be scalable solution as such. I think If something like pessimistic  locking could be implemented in Gitea to support simultaneous writes, that would be a real game changer.

@feluxe I think 3) is unnecessary. 4) needs some codes change.

@feluxe This looks like somekind of a master-replica solution. As @abulfat-masimov saying, it still needs a R/W router to avoid risks of corruption and may not alleviate the writing pressure of main instance (potential SPOF problem).

I've been thinking about this, but lack understanding of where the resource conflicts might be.   I think the best way would be to use a stateful set that uses a common queue service for write requests.  A lot would depend on the type of file storage and persistence, but I believe postgres at least can be fed from a queue.  Other than that you could have a stateful set with db replication set up somehow and fancy file storage that handles concurrency for you.  I created a helm chart for gitea but it only uses a single replica, which is enough for our usage.

actually the biggest problem is that redis-ha is not supported.
I mean you can run a redis service of your cloud provider. but you can't use redis-ha helm chart since redis clients need to be sentinal aware.

What's the current state of this? I'm currently considering setting up Gitea for a production environment, and curious if fully HA mode is supported yet.

Hello, this issue seems to have auto closed. Has it been implemented ?
I'm considering Gitea for production use as well and would like to know if thats a good idea.

I think you can follow @feluxe 's comment.


Exception while sending notifications

Description
When sending notifications with the delivery api, it fails to convert the Json response due to a mistype and throws the following error:
Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'Adobe.Target.Delivery.Model.NotificationResponse' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly. To fix this error either change the JSON to a JSON object (e.g. {"name":"value"}) or change the deserialized type to an array or a type that implements a collection interface (e.g. ICollection, IList) like List<T> that can be deserialized from a JSON array. JsonArrayAttribute can also be added to the type to force it to deserialize from a JSON array. Path 'notifications', line 1, position 211.
To Reproduce
A link to some code to reproduce the bug can speed up a fix. Alternatively, show steps to reproduce the behaviour:

Place a breakpoint in the line 489 of the class Adobe.Target.Delivery\Client\ApiClient.cs.
Execute the sample project and wait until the "GetOffer" method is called and the breakpoint is reached.
Check the attribute ErrorException of the variable response
See error

Cause of issue
The API is returning an array of Notifications, and the DeliveryResponse class is expecting a single Object of type NotificationRequest. When it's trying to convert the array into a single object it fails throwing the exception.
Expected behaviour
The DeliveryResponse should accept multiple notifications.

Fixed in #31 and released in SDK v1.1.5


Mongodb operator nil pointer panic

https://kubernetes.slack.com/archives/C8149MREV/p1556061005082300
https://github.com/kubedb/mongodb/blob/0.4.0/pkg/admission/mutator.go#L148

Solved in master.


Move from __init__ to dvclive.api

We currently promote the usage of import dvclive and the namespace is a little polluted.
Moving the __init__ content to a separate dvclive.api module and then on __init__ importing only the public API functions init, log, next_step, get_step would make dvclive namespace from import dvclive cleaner

Closing in favor of #159


Movies passing the rules not being added to the Collection

Describe the bug
Been using Maintainerr for some time, with no changes to my rules.  Recently a number of movies have been removed from my Collection, but are still passing the rule when evaluated.
Other than TMDB items not being found, I only see this error in my logs:
[maintainerr]  |  02/05/2024 14:07:03  [INFO] [RuleComparatorService] Something went wrong while running rule Movies Leaving Plex Soon
[maintainerr]  |  02/05/2024 14:07:03  [ERROR] [ExceptionsHandler] Cannot read properties of undefined (reading 'stats')
I do not use the exclusions feature, so it's not that.
One potential culprit is that my Plex has been slow to respond to metadata queries at times.  I'm not sure how resilient maintainerr is to retry if a query fails?  I have a heafty Plex server but it has a large library.  I've been running some cleaning scripts to clean up the bundles, etc.
Screenshots

Device (please complete the following information):

OS: Docker on Ubuntu 22.04
Version 2.0.3

Hey! It seems that the rule encountered an undefined statistics object, which is unexpected considering the object is initialized at the start. While it's possible that this issue could stem from a sluggish Plex server response, the error isn't what i'd expect in such scenarios.
API calls to Plex are configured with a timeout value of 5 seconds. If this limit is exceeded, the returned item is likely to be null. Although some calls are retried, not all Plex calls benefit from this mechanism. Maintainerr relies on an external library for Plex API communication, which currently lacks a built-in retry feature.
Is this the first time you encountered this issue? Does the problem resolve itself upon next rule executions?

Hi--
I've had the issue since 5/1/24 when you see from the screenshot that items were mysteriously removed but are still resolving as true when evaluated individually.  The error I posted only occurs once.  I have not been able to reproduce that error since the one occurrence.
To test, I restarted the Maintainerr container and manually ran the Movies Rules.  I only see this in my logs, it's been 5 hours since I ran the rules manually:
[maintainerr] | 03/05/2024 16:34:54  [INFO] [NestApplication] Nest application successfully started [maintainerr] | 03/05/2024 16:35:11  [INFO] [RuleExecutorService] Starting Execution of all active rules [maintainerr] | 03/05/2024 16:35:11  [INFO] [RuleExecutorService] Executing rules for 'Movies Leaving Plex Soon' [maintainerr] | 03/05/2024 19:27:12  [WARN] [RadarrGetterService] [TMDb] Failed to fetch TMDb id for 'Bon Jovi Unplugged on VH1'
Is there any way I can increase the logging to see what's happening?

After another day, the movies returned to the Collection.  The countdown dates are reset, but they are back.  I'm fine with closing this, or I can provide some logs to help track down if there is a bug.  Thanks again.

The only method to enhance logging is by enabling the 'DEBUG' flag in your Docker Compose/run command. However, I'm uncertain if this will provide additional information in this scenario.
If you encounter this issue again, it would be great if you were able to obtain some debug logs from Maintainerr and Plex's side. But it may not be straightforward to gather them when the problem doesn't happen consistently.
I'll leave this issue open for a few weeks. Please keep me informed if it reoccurs. Otherwise, I'll close it later.
Thank you for reporting this!

Hi there--
Sadly, the issue has reoccurred twice.
As you can see from the screenshot, all of the movies in my collection were removed.  However, the movies that were removed were not processed (they had several days remaining), but are still passing the rule.
Another odd thing -- My rules are set to process at 6am.  Collections are set to 7am.  Unless the timezone is off, it shouldn't be running at 3pm like the Logs say.  I'm passing my timezone in through my docker-config like so:

   environment:
      - "PUID=${PUID}"
      - "PGID=${PGID}"
      - "TZ=${TZ}"

.env file:
TZ=America/New_York

Hey

Hi there--
Sadly, the issue has reoccurred twice.
As you can see from the screenshot, all of the movies in my collection were removed. However, the movies that were removed were not processed (they had several days remaining), but are still passing the rule.
Here is my rules, it's fairly straightforward:
mediaType: MOVIES
rules:
  - "0":
      - firstValue: Plex.viewCount
        action: EQUALS
        customValue:
          type: number
          value: 0
      - operator: OR
        firstValue: Plex.lastViewedAt
        action: BEFORE
        customValue:
          type: custom_days
          value: "180"
  - "1":
      - operator: AND
        firstValue: Radarr.tags
        action: NOT_CONTAINS_PARTIAL
        customValue:
          type: text
          value: never_expire
  - "2":
      - operator: AND
        firstValue: Plex.addDate
        action: BEFORE
        customValue:
          type: custom_days
          value: "335"

Another odd thing -- My rules are set to process at 6am. Collections are set to 7am. Unless the timezone is off, it shouldn't be running at 3pm like the Logs say. I'm passing my timezone in through my docker-config like so:

   environment:
      - "PUID=${PUID}"
      - "PGID=${PGID}"
      - "TZ=${TZ}"

.env file:
TZ=America/New_York

Did you manage to catch Plex logs when this failed? I'm still leaning towards network issues.
As for the timestamp, what time does it log the executions in the container log? Perhaps the UI is misinterpreting the timestamp fetched from the database.

Hi there-
I witnessed live when the error occurred, but I'm not having much luck diagnosing it.

Plex is actually crashing, but very momentarily.  I downloaded the logs, but do not see much happening at the time of the crash.  This is what I see, many times over:

May 27, 2024 14:41:33.505 [134737763642168] DEBUG - [Req#7c9f6a] Setting container serialization range to [0, 0] (total=-1) May 27, 2024 14:41:33.526 [134737763642168] DEBUG - [Req#7c9f6a] PlayQueue: Converted 'server://8fa4ff9f71a29e0802901c71a3207281050cdceb/com.plexapp.plugins.library/library/sections/1/all?type=1&sort=originallyAvailableAt%3Adesc&push=1&genre=78&pop=1' to 'library://x/directory/%2Flibrary%2Fsections%2F1%2Fall%3Ftype%3D1%26sort%3DoriginallyAvailableAt%253Adesc%26push%3D1%26genre%3D78%26pop%3D1'

All of a sudden, it ends without an error or critical item in the log.  Plex restarts rather quickly, but then this happens in the Maintainerr logs for all movies that had been previously added to the collection, even though those items are still passing the rules:

[maintainerr] | 27/05/2024 14:46:19  [INFO] [CollectionsService] Removing media with id 4027 from collection..

It appears that the container timezone is correct.  And I see the rules and collection jobs start in the docker log at the time I've set up in my config.  However, I'm unable to explain why I'm seeing Maintainerr run at 2pm when my rules and collections jobs are set to 6am and 7am respectively.  Unless they are still running after 6 hours?  Could that be?

Hi there-
I witnessed live when the error occurred, but I'm not having much luck diagnosing it.
* Plex is actually crashing, but very momentarily.  I downloaded the logs, but do not see much happening at the time of the crash.  This is what I see, many times over:

May 27, 2024 14:41:33.505 [134737763642168] DEBUG - [Req#7c9f6a] Setting container serialization range to [0, 0] (total=-1) May 27, 2024 14:41:33.526 [134737763642168] DEBUG - [Req#7c9f6a] PlayQueue: Converted 'server://8fa4ff9f71a29e0802901c71a3207281050cdceb/com.plexapp.plugins.library/library/sections/1/all?type=1&sort=originallyAvailableAt%3Adesc&push=1&genre=78&pop=1' to 'library://x/directory/%2Flibrary%2Fsections%2F1%2Fall%3Ftype%3D1%26sort%3DoriginallyAvailableAt%253Adesc%26push%3D1%26genre%3D78%26pop%3D1'
* All of a sudden, it ends without an error or critical item in the log.  Plex restarts rather quickly, I can see this in the log files.  At this point the Maintainerr logs show all movies being removed that had been previously added to the collection, even though those items are still passing the rules:

[maintainerr] | 27/05/2024 14:46:19 [INFO] [CollectionsService] Removing media with id 4027 from collection..
* It appears that the container timezone is correct.  And I see the rules and collection jobs start in the docker log at the time I've set up in my config.  However, I'm unable to explain why I'm seeing Maintainerr run at 2pm when my rules and collections jobs are set to 6am and 7am respectively.  Unless they are still running after 6 hours?  Could that be?

If Plex crashes, some API calls may return empty responses. This could explain why Maintainerr detects discrepancies in some rule data. Do you think Maintainerr is overwhelming Plex? Maintainerr has built-in rate limiting, so it shouldn't overload Plex. However, it might still be too aggressive.
 If your library is substantial, rule handling could take several hours due to the rate limiting.


Limit number of Identity Overrides per Environment

Overview
There are some areas of the application, API and architecture where allowing for unlimited Identity overrides causes issues. If we were to limit the number of times identities could be overridden (or put another way limit the total amount of data associated with all the overrides in an Environment) we would solve these problems.
Caveats that would be solved by Identity limiting
Allow for Identity overrides in Local Evaluation mode
When running the server side SDKs in Local Evaluation mode, we don't store any of the Identity overrides in the GET Environment Document endpoint as it could contain unlimited data. If we limited the number of Identity overrides, we could include that either in the main Environment document or as a supplementary endpoint. With these two pieces of data, local evaluation mode would include Identity Overrides.
Show identity overrides for an environment
When moving to Edge, we removed the option of seeing a list of Indentities that are overriding a particular Environment, as we have no index that can form this data. Limiting the number of overrides would allow us to store this data as a single large object of denormalised data. We could then reintroduce this view.
Technical Approach
If we limited the number of Identity overrides we could store the override data as a single piece, either in the main Environment document or as a supplementary endpoint. With these two pieces of data, local evaluation mode would include Identity Overrides.
Questions and Complications

Would the limit be based on the number of identity overrides or the total amount of data they consume?
What would the limit be?
DynamoDB has a max document size of 400kb.
What would we do with existing Edge overrides?
If we do this, the only easily accessible source of identity override data in Edge is the Dynamo Environment Document. Are we ok reading then writing to this?

From a frontend perspective, I think that the only requirement is to show an appropriate error when adding an override in the dashboard fails ?

Please assign back to me when we have a method to retrieving / detecting max identity overrides.

The only thing left here, is to support pagination, which only affects very large environments. I have created a separate issue to track the progress of this here.


add styles css and link to html

editing head html section

this should be pointing to develop branch before production merging


Globally installed near should call local version from node_modules

This is how most node build tools behave, cause otherwise it's very easy to have confusing version mismatches.

Is this complete?

@potatodepaulo no


Allow for shares with public access (no authentication)

Currently, I provide some traditional SMB shares from my old server solution that can be accessed from the local network without username and password. Use cases are:

a public file exchange (rw)
serve a music library (ro)

As far as I understand the documentation, one have to choose for some kind of user authentication. It would be nice to have an option, e.g. spec.mode=public in the SmbSecurityConfig to make that possible.

I took the ConfigMap, Secrets, Service and Deployment that was created by the operator and did the adjustments, necessary for my use case. I came up with the following additions to the config map necessary to make any computer and device working as expected:
globals.globals.options: two lines must be added:
"server role": "standalone server",
"map to guest": "bad user"

Actually, only SONOS S2 needed them, Windows and Linux hosts did work without.
The shares just need
"guest ok": "yes"

I hope this helps. Tutorials argue that one should add "guest only" to the shares in this case for security reasons. For my special use case, it doesn't seem to really make a difference.

Thank you for the feedback!


Implement whole document "chunker"

Description
As a user that may want to use various detectors, I may want to use detectors that do not require "chunking." Particularly, some detectors like regexes may just operate on entire documents.
Discussion
For consistency with detectors that will invoke chunkers, we will implement a "default" whole document chunker that just returns a span with the start and end corresponding to an entire input document. Any detectors that do not specify a chunker will use this default one.
For code organization purposes, we likely want to implement this not as branching logic in the orchestrator itself but as a separate chunker that can get called via some name (still implemented within the orchestrator repo, but from a deployment/user configuration POV, this name can be still be specified in the config).
Acceptance Criteria

[ ] Unit tests cover new/changed code
[ ] Examples build against new/changed code
[ ] READMEs are updated
[ ] Type of semantic version change is identified

For code organization purposes, we likely want to implement this not as branching logic in the orchestrator itself but as a separate chunker that can get called via some name (still implemented within the orchestrator repo, but from a deployment/user configuration POV, this name can be still be specified in the config).

Hmm, I don't think this approach will fit with the current design. We delegate to the ChunkerClient, which wraps the underlying ChunkersServiceClients. As this "default" implementation would not be an actual grpc ChunkersServiceClient (which is a struct, not a trait that we can implement a DefaultChunkerServiceClient for), this wouldn't work.
I can propose some alternative ways to implement this, if interested.

@declark1 definitely let us know some alternatives. The idea here was to not have yet another branching logic, like if chunker not configured or if chunker is default and instead have a stock implementation of a chunker that instead of making an external calls, returns the response based on the input text directly but in the format that the "chunker" itself would do.


[New App] Threadfin

App Information
Name: Threadfin
Short Description: M3U Proxy for Plex DVR and Emby/Jellyfin Live TV. Based on xTeVe
Official Website: https://github.com/Threadfin/Threadfin
Docker Image: https://hub.docker.com/r/fyb3roptik/threadfin
Closes #210

Sorry for the late validation of your pull request, thanks for your submitting it. I'll add two default env parameters for easier installation.
environment: THREADFIN_BRANCH=main
- THREADFIN_BRANCH=main
- THREADFIN_DEBUG=0


forwardport: Alerting v1 not triggering/sending notifications #31365

forwardport:  rancher/rancher#31365 for master-head
the tickets mentioned here were related to this failure

not working on master-head (caa261959550c2f104a450e54d00bf4d49e17c9c).
alertmanager-cluster-monitoring in crashloopbackoff with this error in logs
level=warn ts=2021-03-04T20:29:50.666Z caller=cluster.go:228 component=cluster msg="failed to join cluster" err="1 error occurred:\n\t* Failed to resolve alertmanager-cluster-alerting-0.alertmanager-operated:9094: lookup alertmanager-cluster-alerting-0.alertmanager-operated on <IP_ADDRESS>:53: no such host\n\n"
...
level=error ts=2021-03-04T20:24:45.688Z caller=coordinator.go:124 component=configuration msg="Loading configuration file failed" file=/etc/alertmanager/config/alertmanager.yaml err="not a valid duration string: \"6d2h\""

Is this still an issue? iirc the fix was not with the Monitoring chart, but rather with rancher/rancher changes.

Was able to reproduce the issue. Seeing the following on master-head:
/namespaces/cattle-prometheus/yaml is returning an invalid object
https://RANCHER_URL/v3/cluster/c-ck775/namespaces/cattle-prometheus/yaml
{
"baseType": "error",
"code": "ServerError",
"message": "invalid character '\\x1f' looking for beginning of value",
"status": 500,
"type": "error"
}

This only happens with the cattle-prometheus namespace after Catalog V1 deploys cluster-alerting for Alerting V1.
Alertmanager Config Secret has wrong input
Within the alertmanager-cluster-alerting secret (the Alertmanager Config for Monitoring V1), I also see:
global:
  resolve_timeout: 5m
  smtp_require_tls: false
  slack_api_url: https://api.slack.com
  pagerduty_url: https://events.pagerduty.com/v2/enqueue
route:
  receiver: rancherlabs
  routes:
  - receiver: c-ck775:cag-mj4gp
    group_by:
    - group_id
    match:
      group_id: c-ck775:cag-mj4gp
    continue: true
    routes:
    - group_by:
      - rule_id
      - resource_kind
      - target_namespace
      - target_name
      - event_message
      match:
        rule_id: c-ck775:cag-mj4gp_car-rzcbn
      continue: true
      group_wait: 1s
      group_interval: 1s
      repeat_interval: 6d2h
    group_wait: 30s
    group_interval: 3m
    repeat_interval: 1h
  group_wait: 1m
  group_interval: 10s
  repeat_interval: 1h
receivers:
- name: rancherlabs
  slack_configs:
  - send_resolved: false
    channel: '#alert'
    title_link: ""
- name: c-ck775:cag-mj4gp
  slack_configs:
  - send_resolved: false
    api_url: <REDACTED by @aiyengar2>
    color: '{{ if eq (index .Alerts 0).Labels.severity "critical" }}danger{{ else
      if eq (index .Alerts 0).Labels.severity "warning" }}warning{{ else }}good{{
      end }}'
    title: '{{ template "rancher.title" . }}'
    title_link: ""
    text: '{{ template "slack.text" . }}'
templates:
- /etc/alertmanager/config/notification.tmpl

In the above configuration, I'm not sure where repeat_interval: 6d2h is coming from.
Workload service generation controller is logging errors
Within the logs, I see the following, which means that this could be related to https://github.com/rancher/rancher/issues/32692:
2021/05/20 17:21:57 [ERROR] error syncing 'cattle-prometheus/prometheus-operator-monitoring-operator': handler workloadServiceGenerationController: cannot find app namespace in labels of cattle-prometheus, requeuing
2021/05/20 17:22:05 [ERROR] error syncing 'cattle-prometheus/alertmanager-cluster-alerting': handler workloadServiceGenerationController: cannot find app namespace in labels of cattle-prometheus, requeuing

For future reference, the reason why Alerting V1 broke was due to a subtle breaking change in an underlying repository: prometheus/common.
The underlying repository changed the definition that was outputted by the String() function on a model.Duration object in release v0.11.0+, and while<EMAIL_ADDRESS>and upstream Alertmanager was still using prometheus/common v0.10.0, rancher@master was bumped to v0.14.0, as noted in https://github.com/rancher/rancher/issues/31365#issuecomment-785847222.
rancher@master has since been upgraded further due to an upgrade required to support k8s 1.21 and upstream Alertmanager has released v0.22.0 (as seen in https://github.com/prometheus/alertmanager/commit/470634d49fc629727d91cbb271d7c6e9bc282b06), which contains the version of prometheus/common that is >v0.10.0.
Therefore, the fix for this issue is to simply bump the Alertmanager version, but we will need to ensure that this fix is backported to all current Rancher releases (2.4, 2.5, 2.6), resulting in a brand-new chart for all of them.

with alerting v1 enabled, I tested the following:

deploy alerting v1 on rancher v2.5.8 cluster -> setup alert + notifier -> upgrade to master-head (f90b36efb4cf50088e63e081e359ddd9b94c8ecf) -- pass
deploy alerting v1 on rancher master-head (f90b36efb4cf50088e63e081e359ddd9b94c8ecf) -> setup alert + notifier -> pass
verified version of alerting is 0.22.0


[Feature Request]: Ability to configure PSRepository on a system-wide level

It would be great if there was a way to register a PSRepository on the system-wide level, so that if configured once, it would work for all the users on a particular system.
Expected Behavior
Register-PSRepository should have a -Scope parameter added, to control whether a particular PSRepository needs to be registered for just the current user of for the whole system (similar to the behavior of Execution Policy). It would also be great to have an extra scope option, that would register PSRepository just for the current session (like mentioned in #102)
Apart from the Register-PSRepository, the remaining set of the *-PSRepository cmdlets should also have the -Scope parameter. Set-PSRepository and Unregister-PSRepository cmdlets should require admin privileges to work against system-wide PSRepository settings and 'Get-PSRepository' cmdlet should not require admin privileges at all.
Current Behavior
Currently Register-PSRepository only works for the user that is executing the cmdlet.
Context
Having an ability to register PSRepository on a system-wide level would allow us to pre-configure our internal Repositories in the Virtual Machine templates, thus making the provisioning process much simpler.
Additionally, that would simplify maintaining existing PSRepository configurations in a consistent fashion across all our systems.
Your Environment

PS C:\Users> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.15063.726
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.15063.726
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>

PS C:\Users>
PS C:\Users> Get-Module

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Manifest   <IP_ADDRESS>    Microsoft.PowerShell.Utility        {Add-Member, Add-Type, Clear-Variable, Compare-Object...}
Script     1.2        PSReadline                          {Get-PSReadlineKeyHandler, Get-PSReadlineOption, Remove-PS...

PS C:\Users>
PS C:\Users> Get-Module -ListAvailable PowerShellGet,PackageManagement

    Directory: C:\Program Files\WindowsPowerShell\Modules

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Script     <IP_ADDRESS>    PackageManagement                   {Find-Package, Get-Package, Get-PackageProvider, Get-Packa...
Script     <IP_ADDRESS>    PackageManagement                   {Find-Package, Get-Package, Get-PackageProvider, Get-Packa...
Binary     <IP_ADDRESS>    PackageManagement                   {Find-Package, Get-Package, Get-PackageProvider, Get-Packa...
Script     1.6.0      PowerShellGet                       {Install-Module, Find-Module, Save-Module, Update-Module...}
Script     <IP_ADDRESS>    PowerShellGet                       {Install-Module, Find-Module, Save-Module, Update-Module...}
Script     <IP_ADDRESS>    PowerShellGet                       {Install-Module, Find-Module, Save-Module, Update-Module...}

    Directory: C:\Program Files (x86)\WindowsPowerShell\Modules

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Binary     <IP_ADDRESS>    PackageManagement                   {Find-Package, Get-Package, Get-PackageProvider, Get-Packa...
Script     <IP_ADDRESS>    PowerShellGet                       {Install-Module, Find-Module, Save-Module, Update-Module...}

PS C:\Users>
PS C:\Users> Get-PackageProvider

Name                     Version          DynamicOptions
----                     -------          --------------
msi                      <IP_ADDRESS>          AdditionalArguments
msu                      <IP_ADDRESS>
NuGet                    <IP_ADDRESS>        Destination, ExcludeVersion, Scope, SkipDependencies, Headers, FilterOnTag...
PowerShellGet            <IP_ADDRESS>          PackageManagementProvider, Type, Scope, AllowClobber, SkipPublisherCheck, ...
Programs                 <IP_ADDRESS>          IncludeWindowsInstaller, IncludeSystemComponent

PS C:\Users> Get-PackageProvider -ListAvailable

Name                     Version          DynamicOptions
----                     -------          --------------
msi                      <IP_ADDRESS>          AdditionalArguments
msu                      <IP_ADDRESS>
nuget                    <IP_ADDRESS>
NuGet                    <IP_ADDRESS>        Destination, ExcludeVersion, Scope, SkipDependencies, Headers, FilterOnTag...
NuGetProvider            <IP_ADDRESS>
PowerShellGet            <IP_ADDRESS>          PackageManagementProvider, Type, Scope, AllowClobber, SkipPublisherCheck, ...
PowerShellGet            <IP_ADDRESS>
PowerShellGet            <IP_ADDRESS>
Programs                 <IP_ADDRESS>          IncludeWindowsInstaller, IncludeSystemComponent

I also support this request.
If an admin runs Install-Module -Scope AllUsers on a system, a different admin has to first register this repository in order to call Update-Module. Every time I touch a system and want to install or update a module, I first have to check to see if the repository is registered. Even if we fully automate the onboarding of that system, I still have to register a repository by hand.
What I do now is just include the repository registration logic in any and all scripts that install modules.

+1 for this enhancement.

Windows PowerShell team, any guidance on where the "AllUsers" repositories configuration file would live?
I see 2 options:

$script:ProgramFilesPSPath as this is where the AllUsers Modules are installed
$script:PSGetProgramDataPath seems like the place for this configuration but might not work for "AllUsers" on Linux/OSX

@bradleywehmeie, thanks for looking into the feature request.
Yes, $script:PSGetProgramDataPath is the right place for this configuration file.
For non-Windows platforms, please update the $script:PSGetProgramDataPath to '/usr/local/share/powershellget'.
Current:
    $script:PSGetProgramDataPath = Microsoft.PowerShell.Management\Join-Path -Path ([System.Management.Automation.Platform]::SelectProductNameForDirectory('CONFIG')) -ChildPath 'PowerShellGet'

Expected:
    $script:PSGetProgramDataPath = '/usr/local/share/powershellget'

Main Question
How do we expect Unregister-PSRepository to function when the Scope parameter is omitted? Should it be allowed to modify the AllUsers scope if the Scope is omitted OR should the Scope be required anytime the AllUsers scope is being modified?
Example:
Register-PSRepository -Name Test -Scope AllUsers ...

# Should this be allowed?
Unregister-PSRepository -Name Test

# Or should we require the Scope?
Unregister-PSRepository -Name Test -Scope AllUsers

Additional Context
With either implementation, the Set/Unregister-PSRepository cmdlets work as you would expect but I ran into a limitation with the Unregister-PackageSource cmdlet and pipelining. The value for Scope is not pipelined to the Unregister-PackageSource cmdlet so there are occasions where it will produce the incorrect result when attempting to work on the AllUsers scope.
For example:
Register-PSRepository -Name Test -Scope AllUsers ...

Get-PackageSource -Name Test -Scope AllUsers | Unregister-PackageSource

If we are strict about requiring the AllUsers to be specified, this will result in a Not Found error because no scope will end up being passed to Remove-PackageSource so it will assume "CurrentUser" scope.
If we aren't strict, then Remove-PackageSource won't assume a scope and will find the Test PackageSource and remove it.
In both implementations if the PackageSource exists in both the CurrentUser and AllUsers (a case which is possible), Get-PackageSource -Name Test -Scope AllUsers | Unregister-PackageSource will remove the wrong PackageSource. It will find Test in the CurrentUsers scope and remove it from there instead of the AllUsers scope which was pipelined. For this reason maybe this additional context is a moot point and we should simply state that using *-PackageSource for AllUsers scope is not recommended/supported.

@bradleywehmeier
If a user is trying to unregister an AllUsers scoped repository, it is required to ensure that user has the admin privileges similar to the Uninstall and Update cmdlets.
As part of this enhancement, are you allowing the duplicate PSRepository names? I think we should allow this as the users and admin may give the same name for the psrepositories. if not, can we follow the same design as the Uninstall and Update cmdlets where -Scope parameter is not required on Unregister-PSRepository.
If we are allowing the duplicate psrepository names

Add Scope optional parameter on Unregister-PSRepository cmdlet
Admin privileges check is also required for the AllUsers scoped psrepositories
Scope parameter is optional for the AllUsers scoped psrepositories
If Scope parameter is not specified, Unregister-PSRepository cmdlet first checks if the given name is registered for the currentuser scope and unregisters it.

Above is also applicable to the Set-PSRepository cmdlet.
We need to add -Scope optional parameter in PowerShellGet provider dynamic options for the sources at
https://github.com/PowerShell/PowerShellGet/blob/development/PowerShellGet/public/providerfunctions/Get-DynamicOptions.ps1#L31 similar to https://github.com/PowerShell/PowerShellGet/blob/development/PowerShellGet/public/providerfunctions/Get-DynamicOptions.ps1#L44
For more details, please take a look at the ScriptSourceLocation dynamic option implementation in PowerShellGet provider functions.
For the pipeline operations with scope, it is required to specify -Provider PowerShellGet like below
Get-PackageSource -Name Test -Provider PowerShellGet -Scope AllUsers | Unregister-PackageSource

Also please consider validating the install and update scenarios with the duplicate psrepository names as the source locations can be different.

The more I think about it, I'm not sure if my assumption was correct.

On one hand, downloading updates from the same location you downloaded makes perfect sense.
On the other hand, the primary mechanism that is used to reference a particular PSRepository is the Name and we allow situations where the source location is allowed to change and PowerShellGet continues to function with the new location.

When there are duplicate PSRepository names and one is chosen to be the "winner", I can also make an argument to treat that scenario in the same way we treat the PSRepository source location having been changed and using the source location from the "winner".
There are other rough edges with PowerShellGet like the current behavior of using a "CurrentUser" PSRepository to install "AllUsers" modules. If those are not causing issues, then maybe this confusion will also be negligible.
One alternative would be to Prefix the AllUsers scoped PSRepositories so that name collisions were not possible. I originally avoided that so that PackageManagement cmdlets (e.g. Register-PackageSource) and PowerShellGet cmdlets (e.g. Register-PSRepository) would have the same/similar parameters. If that's not something that matters since most people will be using the PowerShellGet cmdlets, I can spend some time implementing that approach to see if it has fewer issues.
Thanks all for your input on this. I appreciate the effort in helping me get this right.

@bradleywehmeier thanks for looking into this feature!
Some thoughts

By default, Get-PSRepository cmdlet should list all the registered repositories in both scopes (CurrentUser and AllUsers). We need to add the Scope property/column in the Get-PSRepository output format.
Duplicate repository names should not be allowed in a single scope.
In case of duplicate repository names, CurrentUser scope gets precedence over AllUsers scope.
During the Install operation, we also need to add a property called RepositoryScope in the PSRepositoryItemInfo in PSGetModuleInfo.xml/[ScriptName]_InstalledScriptInfo.xml file so that update operation picks the correct repository name and scope. This follows the current update functionality.

I also support this. I had a very confusing few hours the other day, trying to configure a proxy PowerShellGet package source through DSC. DSC was of running as the system user and I couldn't see the repositories it was registering. I am now trying to figure out how to configure the proxy repository for all users. (Does anyone have any good solutions to that?)

I just want to chime in that this causes problems using Jenkins automation as well. Jenkins agents sometimes run under system or certain service account logins and i have no good way to configure the psrepository for them.

+1 for this feature. We've want to move to using PowerShellGet exclusively for module distribution but we get constant requests for assistance with setting up the right repos which is slowing down adoption. This feature would solve that.

@SteveL-MSFT As a quick observation, this is actually a OneGet issue and not a PowerShellGet issue.
I created the following issue in OneGet to ALIGN the two projects. https://github.com/OneGet/oneget/issues/468
As Program Manager for PowerShell Core, you can facilitate, advocate for, and resource a solution to this problem!

I can not use Register-PackageSource (or psrepository) by my service build account that has no local logon permissions. So how do I need to use all this package management mess? Should I use another solutions?