Settings parsing breaks with complex type

Minimal example
main.py:
from typing import Annotated, Literal

from pydantic import BaseModel, Field, Json
from pydantic_settings import BaseSettings, SettingsConfigDict

class AWSS3(BaseModel):
    type: Literal["aws"]

class AzureBlobStorage(BaseModel):
    type: Literal["azure"]

Storage = Annotated[
    AWSS3 | AzureBlobStorage,
    Field(discriminator="type"),
]

class Settings(BaseSettings):
    storage: Json[Storage] | None = None

    model_config = SettingsConfigDict(
        env_file=".env",
    )

settings = Settings()
print(settings)

.env:
STORAGE='{
    "type": "aws"
}'

With<EMAIL_ADDRESS><EMAIL_ADDRESS>the script main.py produces output
storage=AWSS3(type='aws')

With<EMAIL_ADDRESS><EMAIL_ADDRESS>the script main.py produces the following error
Traceback (most recent call last):
  File "/.../venv/lib/python3.10/site-packages/pydantic_settings/sources.py", line 368, in __call__
    field_value, field_key, value_is_complex = self.get_field_value(field, field_name)
  File "/.../venv/lib/python3.10/site-packages/pydantic_settings/sources.py", line 534, in get_field_value
    for field_key, env_name, value_is_complex in self._extract_field_info(field, field_name):
  File "/.../venv/lib/python3.10/site-packages/pydantic_settings/sources.py", line 273, in _extract_field_info
    elif origin_is_union(get_origin(field.annotation)) and _union_is_complex(field.annotation, field.metadata):
  File "/.../venv/lib/python3.10/site-packages/pydantic_settings/sources.py", line 1621, in _union_is_complex
    return any(_annotation_is_complex(arg, metadata) for arg in get_args(annotation))
  File "/.../venv/lib/python3.10/site-packages/pydantic_settings/sources.py", line 1621, in <genexpr>
    return any(_annotation_is_complex(arg, metadata) for arg in get_args(annotation))
  File "/.../venv/lib/python3.10/site-packages/pydantic_settings/sources.py", line 1600, in _annotation_is_complex
    inner, meta = get_args(annotation)
ValueError: too many values to unpack (expected 2)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/.../main.py", line 29, in <module>
    settings = Settings()
  File "/.../venv/lib/python3.10/site-packages/pydantic_settings/main.py", line 141, in __init__
    **__pydantic_self__._settings_build_values(
  File "/.../venv/lib/python3.10/site-packages/pydantic_settings/main.py", line 311, in _settings_build_values
    return deep_update(*reversed([source() for source in sources]))
  File "/.../venv/lib/python3.10/site-packages/pydantic_settings/main.py", line 311, in <listcomp>
    return deep_update(*reversed([source() for source in sources]))
  File "/.../venv/lib/python3.10/site-packages/pydantic_settings/sources.py", line 370, in __call__
    raise SettingsError(
pydantic_settings.sources.SettingsError: error getting value for field "storage" from source "EnvSettingsSource"

Thanks @ducminh-phan for reporting this.
I created https://github.com/pydantic/pydantic-settings/pull/312 to fix the problem.
Could you please confirm?

@hramezani Thanks for the quick fix. The code on the branch issue-311 works for me.

The fix has been released in pydantic-settings 2.3.3

@hramezani Unless I am doing something wrong (maybe I am), this is broken for more than just annotated complex types like discriminitated unions. I am trying to parse a "json" environment variable (using v2.2.1) as JSON or dict, and it was failing. I upgraded to 2.3.3 right now to test this fix and it still does not work
Sample definition provided below:
.env file
GOOGLE_SERVICE_ACCOUNT_KEY='{
    "type": "service_account",
    "project_id": "project-id",
    "private_key_id": "fc5ba0",
    "private_key": "-----BEGIN PRIVATE KEY-----\n-<snip>=\n-----END PRIVATE KEY-----\n",
    "client_email"<EMAIL_ADDRESS>    "client_id": "123456789987654321",
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://oauth2.googleapis.com/token",
    "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
    "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/12345679-compute%40developer.gserviceaccount.com",
    "universe_domain": "googleapis.com"
}'

config.py
import pydantic
from pydantic_settings import BaseSettings, SettingsConfigDict

class Settings(BaseSettings):
    GOOGLE_APPLICATION_CREDENTIALS: pydantic.Json | None = None

    model_config = SettingsConfigDict(
        env_file=".env", extra="ignore", env_ignore_empty=True
    )

Error message:
  File "/Users/king/Library/Caches/pypoetry/virtualenvs/edok-backend-xjdhYfao-py3.12/lib/python3.12/site-packages/pydantic/main.py", line 176, in __init__
    self.__pydantic_validator__.validate_python(data, self_instance=self)
pydantic_core._pydantic_core.ValidationError: 1 validation error for Settings
GOOGLE_APPLICATION_CREDENTIALS
  Invalid JSON: expected value at line 1 column 1 [type=json_invalid, input_value="'{", input_type=str]
    For further information visit https://errors.pydantic.dev/2.7/v/json_invalid

@king-phyte The env var name in .env file is GOOGLE_SERVICE_ACCOUNT_KEY while the field name in Settings is GOOGLE_APPLICATION_CREDENTIALS. Maybe GOOGLE_APPLICATION_CREDENTIALS is set by an existing environment variable? Changing the field name in Settings to GOOGLE_SERVICE_ACCOUNT_KEY works for me.

@ducminh-phan That was a mistake when copying the modified env vars. Thanks for drawing my attention to it. But in the actual code, the name is set correctly. You can see Pydantic tries to parse it, but it can't parse the multi-line string. It only parses the '{

GOOGLE_APPLICATION_CREDENTIALS   Invalid JSON: expected value at line 1 column 1 [type=json_invalid, input_value="'{", input_type=str]

@king-phyte The code still works for me. Have you checked that you don't have GOOGLE_APPLICATION_CREDENTIALS environment variable already set? Could you check os.environ?

@ducminh-phan It is not set. In fact, the variable is parsed correctly if it is all on one line.
So this works
GOOGLE_APPLICATION_CREDENTIALS='{"type": "service_account","project_id": "project-id","private_key_id": "fc5ba0","private_key": "-----BEGIN PRIVATE KEY-----\n-<snip>=\n-----END PRIVATE KEY-----\n","client_email":"123456789-compute@developer.gserviceaccount.com","client_id": "123456789987654321","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri": "https://oauth2.googleapis.com/token","auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs","client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/12345679-compute%40developer.gserviceaccount.com","universe_domain": "googleapis.com"}'

But when it is multi-line as shown above, it does not. Maybe I am doing something wrong indeed.


Screenshot resolution

Suggestion: if you are going to go with screenshots for the font samples, double the resolution (or come up with some other trick), so they can stay sharp on high-dpi displays.

In my case I see them sharp on my Macbook Pro retina display, but not on my DELL external monitor.

I think this is related: https://github.com/chriscoyier/coding-fonts/issues/59
I'm gonna close this to consolidate image quality to that thread. If you make that suggested change in DevTools, does it look good on your DELL monitor @andion?

The image width maxes out approximately at the width of the original image.
On my retina MacBook Pro it always looks sharp. I've noticed that when moving an existing tab from the retina to a standard display it gets a bit blurry, but then if I reload that tab it looks fine. @andion have you tried reloading once the tab is moved? I think Safari does a better job of switching densities than Chrome and Firefox. I haven't tested on Windows, though.

FWIW, the original issue was opened because of how the screenshots looked on an iPhone. 🙂

@rubjo Ah, that explains it — since the images are requested at different sizes based on the viewport, the image will look pixelated on the iPhone if you pinch zoom. Hmm, I don't think there's a trivial solution to this.

Well:
Load in landscape orientation -> flip to portrait => relatively sharp image
Load in portrait => relatively fuzzy


loadshedding_local_status sensor failing to update

Version of the custom_component
1.1.2
Describe the bug
Starting at 02:12:21 SAST on the morning of 2 October, the loadshedding_local_status sensor is failing to update. The error below is being logged.
All other sensors are working correctly including the loadshedding_api_quota sensor which indicates that I have not reached my call quota.
I did not apply any updates to my HA setup so the issue is not caused by an HA update.
I tried restarting HA but the problem persists.
Debug log
Logger: homeassistant
Source: custom_components/eskom_loadshedding/sensor.py:186
Integration: Eskom Loadshedding Interface ([documentation](https://github.com/swartjean/ha-eskom-loadshedding), [issues](https://github.com/swartjean/ha-eskom-loadshedding/issues))
First occurred: 03:40:59 (15 occurrences)
Last logged: 17:41:26

Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 233, in _handle_refresh_interval
    await self._async_refresh(log_failures=True, scheduled=True)
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 389, in _async_refresh
    self.async_update_listeners()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 172, in async_update_listeners
    update_callback()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 469, in _handle_coordinator_update
    self.async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 730, in async_write_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 830, in _async_write_ha_state
    state, attr = self._async_generate_attributes()
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 774, in _async_generate_attributes
    attr.update(self.extra_state_attributes or {})
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/eskom_loadshedding/sensor.py", line 186, in extra_state_attributes
    "Area": info["name"],
            ~~~~^^^^^^^^
KeyError: 'name'

I have the same problem and noticed if I do a query with curl command that my area-id changed. It use to be: westerncape-9-paarl, but it has now changed to: eskme-9-paarldrakensteinwesterncape.
I however cannot find where I can update this detail as the UI don't give me an option to update it and I cannot find in which file this information is stored

I have the same problem and noticed if I do a query with curl command that my area-id changed. It use to be: westerncape-9-paarl, but it has now changed to: eskme-9-paarldrakensteinwesterncape.
I however cannot find where I can update this detail as the UI don't give me an option to update it and I cannot find in which file this information is stored

I had the same problem.  Deleting and reinstalling the integration was easy and quick, and solved the problem.
It looks like Eskom changes the area names from time to time.

I have the same problem and noticed if I do a query with curl command that my area-id changed. It use to be: westerncape-9-paarl, but it has now changed to: eskme-9-paarldrakensteinwesterncape.
I however cannot find where I can update this detail as the UI don't give me an option to update it and I cannot find in which file this information is stored

I had the same problem. Deleting and reinstalling the integration was easy and quick, and solved the problem. The sensor names stays the same after a reinstall.
It looks like Eskom changes the area names from time to time.

Thank you, I did the same and its working again

I also did the same thing and it is working agian. Thank you @wimdebruyn

Going to close this out as the post from @wimdebruyn provides a solution.


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-target_7b8a830e-f605-4aee-91a0-ca3915a3669f/pull/1 is merged into live branch.
Auto archive content to https://github.com/OPS-E2E-PPE/docs-archive-test-target_7b8a830e-f605-4aee-91a0-ca3915a3669f.git

Docs Build status updates of commit 79d7f02:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error]

Cannot sync git repo to specified commit because branch Release_Archive_master_2020-04-26-07-25-24 has been deleted or has been force pushed: fatal: couldn't find remote ref refs/heads/Release_Archive_master_2020-04-26-07-25-24

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Roll Plugins from 6398441f5873 to eca7d6e73aa4 (3 revisions)

https://github.com/flutter/plugins/compare/6398441f5873...eca7d6e73aa4
2021-04-20<EMAIL_ADDRESS>fix MD (flutter/plugins#3815)
2021-04-20<EMAIL_ADDRESS>Path provider windows crash fix (flutter/plugins#3814)
2021-04-20<EMAIL_ADDRESS>[local_auth] docs update (flutter/plugins#3103)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-plugins-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Commit queue failed; closing this roll.


How to get Selected Date ? Any Listener ?

after using selectionmanager on calenderview date selected animation is not displaying.

For me, I used it as a layout not as dialog. So, I created a new MyCalendarView which extends this CosmoCalendar and then did override  @Override
public void onDaySelected() {} and inside this method I used my own listener. Now it works. (btw, in my layout I used MyCalendarView)

You can use this, so that it works for you, your class puts this implements OnDaySelectedListener, it is going to put the @Override method
     public void on DaySelected () {}, that's where you're going to implement what you want, and finally in the onCreate of the view you add this calendarView.setSelectionManager (new SingleSelectionManager (this));

Hi,
What about range selection when clicking on start & end date any listeners for that?
Thanks

And also you can use for range selection like this :
calendarView.setSelectionManager(new RangeSelectionManager(new OnDaySelectedListener() {

            @Override
            public void onDaySelected() {
                Log.e(" CALENDAR ", "========== setSelectionManager ==========");

                Log.e(" CALENDAR ", "Selected Dates : " + calendarView.getSelectedDates().size());
                if (calendarView.getSelectedDates().size() <= 0)
                    return;

                Log.e(" CALENDAR ", "Selected Days : " + calendarView.getSelectedDays());
                Log.e(" CALENDAR ", "Departure : DD MMM YYYY : " + formatDateToString(calendarView.getSelectedDays().get(0).getCalendar().getTime(), "dd MMM yyyy", ""));
                Log.e(" CALENDAR ", "   Return : DD MMM YYYY : " + formatDateToString(calendarView.getSelectedDays().get(calendarView.getSelectedDates().size() - 1).getCalendar().getTime(), "dd MMM yyyy", ""));

                txt_departure_date.setText(formatDateToString(calendarView.getSelectedDays().get(0).getCalendar().getTime(), "dd MMM yyyy", ""));
                txt_return_date.setText(formatDateToString(calendarView.getSelectedDays().get(calendarView.getSelectedDates().size() - 1).getCalendar().getTime(), "dd MMM yyyy", ""));

            }
        }));

How to get selectedDay in textView?

@JaydipRadadiya
How can I change this into Kotlin?
I tried many different codes but it doesn't work.
        calendar_view.selectionManager = object : RangeSelectionManager(OnDaySelectedListener {             //...         })


Fix unity versions scrapping not getting all the versions

Changes
This pull request is fixing the unity versions scrapping.
The previous implementation was not returning all the versions anymore. The loop was stopping on the first non empty script tag containing at least one version. But currently it does not work.
The proposed fix is to loop on all the scripts tag, store all the versions in a map and returns them at the end.
It will probably fix the following issues: https://github.com/game-ci/docker/issues/251, https://github.com/game-ci/docker/issues/250
Checklist

[x] Read the contribution guide and accept the code of conduct
[x] Readme (updated or not needed)
[x] Tests (added, updated or not needed)

🚀 / Test Deploy (pull_request) Failing, this seems to be due to unavailalbe env var for this pr run:

Either FIREBASE_TOKEN or GCP_SA_KEY is required to run commands with the firebase cli

Not sure if we should do something about it. But the tests are passing. I haven't seen any tests covering scrapeVersions method, might be worth testing it. I am personally ok with this as chances are this fix will unblock quite a few users tying to use recent unity versions with GameCI docker images.

I could add a test, but I'm unsure of the best way to implement it. Do you have any examples to share? We could check the number of versions returned by the scraping and determine that if it falls below a certain threshold, there's an issue. Currently, the scraping finds 576 versions.
As for the failing test, I'm not entirely familiar with the workflow, but it's possible that the failure is due to the pull request coming from a fork, which might be missing some GitHub secrets

** Thank You @brako !! **


[mealie] Fix postgresql subchart name

Description of the change
The subchart postgresql had a typo  in values file,  this was creating postgresql even though its off by default.
Benefits
The values file is fixed. The postgresql will created only when enabled=true in values file
Possible drawbacks
None
Applicable issues

fixes #

Additional information
Checklist

[X] Chart version bumped in Chart.yaml according to semver.
[X] Title of the PR starts with chart name (e.g. [home-assistant])
[X] Variables are documented in the README.md (this can be done with using our helm-docs wrapper ./hack/gen-helm-docs.sh stable <chart>)

Wait, this is good. Thanks!


Cannot install boruta_py

Hello,
I am using python homebrew on my mac, and have some trouble installing boruta_py.
Could you help ?
Thanks !

Hi,
Sure, but you'll need to be more specific. What's the problem? What error message you get?

I download your github repo and dropped it in /usr/local/lib/python2.7/site-packages
I tried import boruta_py but I got the following error : ImportError: No module named boruta_py

I'm not sure that's supposed to work.. Just clone the repo and put a copy
of boruta_py into the directory you're working in.. Then import boruta_py
should work..
On 17 February 2016 at 14:05, naileakim<EMAIL_ADDRESS>wrote:

I download your github repo and dropped it in
/usr/local/lib/python2.7/site-packages
I tried import boruta_py but I got the following error : ImportError: No
module named boruta_py
—
Reply to this email directly or view it on GitHub
https://github.com/danielhomola/boruta_py/issues/1#issuecomment-185220270
.

--
Daniel Homola

i cloned repositery.. pasted in my anaconda/Lib/site-packages
still its not working. Its showing "No module named boruta_py"


Updated the type checking in order to fix #28 and #29.

However, this doesn't actually handle the case where a dictionary is returned (e.g. when DALL-E images are involved), it just ignores them and preserves the old interface.

it works


Type Error when configuring Redis session store in AdonisJS

Package version
7.5.0
Describe the bug
I'm encountering a TypeScript error while configuring the Redis session store in AdonisJS. The error occurs when I try to pass the Redis connection configuration to the session store.

Reproduction repo
No response

I added this and it removed the error:
declare module '@adonisjs/redis/types' {
export interface RedisConnections extends InferConnections {}
}


Tidy up Travis config

composer self-update is already in the Travis image

Thanks!

You're welcome.


Demo site don`t create

Hi. Demo site don`t create
https://demo.respondcms.com/create
1 second in header a visible red line

Thanks for the update!  Did you see a reCAPTCHA?  I think there might be a bug where the reCAPTCHA does not show up for some users.  I am digging into that.

No. Can't see reCAPTCHA

@ravilrrr Clear your cache !


Improve RV error handling for batched commands

This is a follow up for #735
This allows code using the batched commands API to get the results of successful commands even in error case. It also gives a hint for which command failed so the code using the API can retry the failed commands.
Question: Does this need a changelog entry?

Thanks for working on this!
No this does not need a changelog entry as it will be included with the entry of your previous PR :)
I will leave the actual review to @Tiwalun :)

Anything I need to do here?

No, once CI is fixed it should work again.

Great hint about error::Source - thanks
bors r+


Try fix android T permission check

Connection with issue(s)

Close #???

Connected to #???
Solution description
Screenshots or Videos

To Do

[x] Read contributing guide
[x] Check the original issue to confirm it is fully satisfied
[x] Add solution description to help guide reviewers
[x] Add unit test to verify new or fixed behaviour
[x] If apply, add documentation to code properties and package readme

Please format code to able merge

We will remove the dependency permissions_handler


String.intern() issue for specific string: "Object"

I have code that compares strings (using ==) that were scraped from larger strings via substring().intern() against string literals. This works for all cases except the specific String literal "Object". I can reproduce with following code:
String s1 = "Object";
String s2 = "xObject".substring(1).intern();
System.out.println("Equals()? " + s1.equals(s2) + ", ==? " + (s1==s2));

I don't have a project for this (and I use a weird IDE anyway), but drop those 3 lines of code into any project to verify. I experience this on a clone from Jun 6, 2019. I have a workaround.

I'm still seeing this issue with the .6 release. Very easy to work around, though.


Settings links to other settings

Not rendered links to other settings (missed markdownDescription?):

editor.codeLensFontSize
editor.inlayHints.fontSize

Probably intended to use link to other setting:

editor.cursorSurroundingLinesStyle

Thanks!


Update some additional dataset links

update snapshots

Note - aware of undefined in snapshots, ticket here
https://github.com/usds/justice40-tool/issues/513

LGTM.
Something to think about for the future: could these urls need localization at some point? (e.g. https://www.epa.gov/ejscreen/technical-documentation-ejscreen -> https://www.epa.gov/ejscreen/es/technical-documentation-ejscreen or something)

Good point. I imagine that the translation service would look for a es version of the link (in this case EPA). We are actually working on that now


[11.x] Add abstract option to make:class command

I added a new option to the make:class command called abstract or a.
This option generates an abstract class. Sometimes we need to create an abstract instead of a normal class and I think it's a good option to add to this class instead of creating a new command for this!
php artisan make:class Controller --abstract // -i

Result:
<?php

namespace App;

abstract class Controller
{
   //
}

Thanks for your pull request to Laravel!
Unfortunately, I'm going to delay merging this code for now. To preserve our ability to adequately maintain the framework, we need to be very careful regarding the amount of code we include.
If possible, please consider releasing your code as a package so that the community can still take advantage of your contributions!
If you feel absolutely certain that this code corrects a bug in the framework, please "@" mention me in a follow-up comment with further explanation so that GitHub will send me a notification of your response.


respect 500~1000 linger.ms for high throughput but medium latency use cases - fire-and-forget

 ProducerLinger sets how long individual topic partitions will linger waiting
 for more records before triggering a request to be built.

 Note that this option should only be used in low volume producers. The only
 benefit of lingering is to potentially build a larger batch to reduce cpu
 usage on the brokers if you have many producers all producing small amounts.

 If a produce request is triggered by any topic partition, all partitions
 with a possible batch to be sent are used and all lingers are reset.

 As mentioned, the linger is specific to topic partition. A high volume
 producer will likely be producing to many partitions; it is both unnecessary
 to linger in this case and inefficient because the client will have many
 timers running (and stopping and restarting) unnecessarily.

Let's say we have a high-volume topic with 60 partitions and 700MiB/sec peak ingress throughput.
We want to optimize the broker efficiency with bigger bath size. In theory, we expect 11MiB/sec per partition with 1MiB per chunk or batch. But Franz-Go typically sends each chunk with only 1KB~2KB size only, even if we set linger.ms to 1000.
Is there any way we can tweak Franz-Go to better batch up events into 4~6MB chunk before compression (and 1MB after compression)?

Trying to estimate batch size after compression can only be done via a heuristic and can be fraught with problems. Worst case, the client estimates poorly and creates a compressed batch that is larger than the max batch bytes. Instead, the client buffers by uncompressed size and once linger or max batch size is hit, creates a batch -- compressing in the process.
If you want to try working around this from a user perspective, you could try increasing the max batch bytes -- e.g. if you know you have a pretty consistent 50% compression ratio, you could double the max batch bytes.

Hi @twmb,
@ericsun2 and I have been using rand.Read(data) to generate random binary payloads for our tests, resulting in a limited compression ratio. With a publishing throughput of 600K messages per second, each 1KiB in size, the Kafka broker reports an ingestion rate of approximately 600 MiB per second for a 64-partition topic. On each partition, the ingestion speed is around 9 MiB or 9K messages per second.
To optimize batching, we expanded the following producer configurations:
ProducerLinger: Increased to 1s, 2s, 5s, and 10s.
ProducerBatchMaxBytes: Set to 1 MiB.
MaxBufferedRecords: Set to 1 million.
Our goal was to achieve a batched message size of approximately 1 MiB or 1K messages per batch. However, we observed that the NumRecords in a batch is capped at 76, significantly below the expected size.
While reviewing the Franz-go source code, I noticed that whenever [sink.maybeDrain()](https://github.com/twmb/franz-go/blob/master/pkg/kgo/sink.go#L183) triggers a call to [createReq()](https://github.com/twmb/franz-go/blob/master/pkg/kgo/sink.go#L77), all recBufs are drained simultaneously. Even if only one recBuf reaches the maxRecordBatchBytes, the remaining recBufs are prematurely added to the request, leading to an early drain.
Is this behavior intentional, perhaps to improve throughput or reduce latency? I’m curious if my interpretation is correct.
Thanks!


[Doc] Add remove_by_pattern ingest processor

Description
This PR documents the usage of the new added remove_by_pattern ingest processor.
Issues Resolved
https://github.com/opensearch-project/documentation-website/issues/6207
Checklist

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

Hi @vagimeli , please also help to review this PR, even though the code PR in OpenSearch-core project has not been merged yet, we can review this document PR in advance and merge this PR after the code PR is merged.


refactor: move get k8s client methods to k8sutil

Signed-off-by: vgjm<EMAIL_ADDRESS>

Please rebase


Remove any indication of possible use of Oracle RAC in Azure Bare-Metal Infrastructure

Oracle RAC is not supported in any public cloud other than Oracle's own cloud.  Given the existing implication that Oracle RAC is supported, this documentation must be changed to state explicitly that Oracle RAC and Oracle RAC OneNode are absolutely NOT supported in Azure Bare-Metal Infrastructure, in order to explicitly clear up confusion caused by the previously misleading information.

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

ID: d77a96f6-b228-2049-8192-84945c3661b5
Version Independent ID: 8b47bc8f-21c8-7bdd-c84b-cfb24addd33c
Content: Provision BareMetal for Oracle - Azure Baremetal Infrastructure
Content Source: articles/baremetal-infrastructure/workloads/oracle/oracle-baremetal-provision.md
Service: baremetal-infrastructure
Sub-service: baremetal-oracle
GitHub Login: @dineshga
Microsoft Alias: dineshga

@tigormanmsft Thanks for the feedback !  I have assigned this issue to content author to investigate and update the document as appropriate.

@jjaygbay1 given that this PR is over a year old, would you please verify this is still the case, thank you.

@SaurabhSharma-MSFT pls review fix at https://github.com/MicrosoftDocs/azure-docs/pull/112604

@SaurabhSharma-MSFT if that fix is acceptable for this PR request, please close this PR, thanks.

@jjaygbay1 please check fix for this issue in PR 112604. If it works, please add #please-close to this PR. Thanks.

#please-close

This issue has been fixed. See PR https://github.com/MicrosoftDocs/azure-docs/pull/112604


Upgrade blinkstick to 1.1.8

v1.1.8

Get and set number of LEDs for BlinkStick Flex
Mode description update
Display LED count with --info parameter
Option to set LED count with --set-led-count for BlinkStick Flex

For all these upgrade PRs, please make sure you test them and note that in your description. Also, are we aware that they are fixing any known issues?

Missing details will be added to all PRs. The changelog, if available, is the primary source of information.

You can merge this if you have verified locally that it works 💵 🐬 .

Can't find the Blinkstick either...seems to be in the same box as the TEMPusb device.


New version: Amazon.Corretto.11 version <IP_ADDRESS>.1

Pull request has been created with Komac v1.11.0 :rocket:
Microsoft Reviewers: Open in CodeFlow

Automatic Validation ended with:

Installation failed with exit code -1978334957 2024-01-08 09:42:58.699 [CLI ] ShellExecute installer failed: 1633 MSI (s) (EC:14) [09:42:58:585]: Product: Amazon Corretto (x64) -- Installation failed. MSI (s) (EC:14) [09:42:58:585]: Windows Installer installed the product. Product Name: Amazon Corretto (x64). Product Version: <IP_ADDRESS>. Product Language: 1033. Manufacturer: Amazon. Installation success or error status: 1633.

(Automated response - build 530.)

Hi @ccorrion,

This PR's version number <IP_ADDRESS>.1 has 5 parameters (sets of numbers between dots - major, minor, etc), which is greater than the current manifest's version <IP_ADDRESS>, which has 4 parameters.

Is this intentional?
(Automated response - build 532)

Hi @ccorrion,
This manifest adds Apps and Features entries that aren't present in previous PR versions. Should these entries also be added to the previous versions?
(Automated response - build 532.)

Hi @ccorrion,
This manifest adds Apps and Features entries that aren't present in previous PR versions. Should these entries also be added to the previous versions?
(Automated response - build 532.)

@stephengillie Yes, that makes sense - I think it's Komac generating more comprehensive manifests.  What's the process for getting that done?

Hi @ccorrion,
The version number was updated inside the files, but the path needs to match also. The Manifest-Validation-Error label was applied because the .1 wasn't removed from the path. They have to match.

This manifest adds Apps and Features entries that aren't present in previous PR versions. Should these entries also be added to the previous versions?
(Automated response - build 532.)
@ stephengillie Yes, that makes sense - I think it's Komac generating more comprehensive manifests. What's the process for getting that done?

Ah, that's probably the case.
We have a limit of one manifest change per PR, so a PR would have to be opened foreach of the existing manifests, adding this. This PR can become approved and merged while work continues on the others.


Enable half and double for resampler GPU ops

Actually, I don't know how we passed tests previously...
We don't register half and double backward kernel, and even don't specialize half forward kernel. But we indeed test them.
https://github.com/tensorflow/addons/blob/master/tensorflow_addons/image/tests/resampler_ops_test.py#L95-L124
https://github.com/tensorflow/addons/blob/master/tensorflow_addons/image/tests/resampler_ops_test.py#L185-L213
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/util/gpu_device_functions.h#L670-L691

@alextp No urgency, but whenever time allows could you or someone you could direct us to take a look at why this was working before. Would like to improve our understanding of the registering mechanism.


create docker image for IndexWorker

Create a Dockerfile that will create a deployable docker image that runs IndexWorker and can connect back to rabbitmq to process tasks.

[x] Create basic Dockerfile based on an alpine linux java base image
[x] Ensure the image can be deployed with a configurable property file that is relocatable and mountable within the container
[ ] Add  a GHA workflow for building a release image for tagged versions of the repository

Basic Dockerfile created with relocatable properties file.
Still need to create release workflow with tags.

@taojing2002 I created a new branch and moved the base image to an Eclipse-based JRE. See https://github.com/DataONEorg/dataone-indexer/blob/feature-10-eclipse-jre/docker/Dockerfile. THis was based off of the current rabbitmq branch, but the SOLR startup is not working. So I wanted to debug that before merging it into the rabbitmq branch. Here's the SOLR bean error I am getting below, which seems like just a problem connecting to SOLR (HTTPService.loadSolrSchemaDocument - can't get the schema doc). Does that make sense to you? If so, then its probably just because we haven't added SOLR to the helm chart yet, and it would be fine to merge this branch. I can do so tomorrow if this makes sense to you.
dataone-indexer 20220805-05:16:59: [INFO]: IndexWorker.main - Starting index worker... [org.dataone.cn.index.IndexWorker:main:121]
dataone-indexer 20220805-05:16:59: [INFO]: IndexWorker.loadExternalPropertiesFile - the configuration path can be read from the env variable DATAONE_INDEXER_CONFIG and its value is /etc/dataone/dataone-indexer.properties. The file exists and it will be used. [org.dataone.cn.index.IndexWorker:loadExternalPropertiesFile:139]
dataone-indexer 20220805-05:16:59: [INFO]: IndexWorker.loadExternalPropertiesFile - loaded the properties from the file /etc/dataone/dataone-indexer.properties [org.dataone.cn.index.IndexWorker:loadExternalPropertiesFile:161]
dataone-indexer 20220805-05:16:59: [INFO]: IndexWorker.initExecutorService - the size of index thread pool specified in the propery file is 5. The size computed from the available processors is 0. Final computed thread pool size for index executor: 1. Since its value is 1, we do NOT need the executor service and use a single thread way. [org.dataone.cn.index.IndexWorker:initExecutorService:269]
dataone-indexer 20220805-05:17:00: [INFO]: IndexWorker.IndexQueue - Connected to RabbitMQ queue index [org.dataone.cn.index.IndexWorker:initIndexQueue:226]
dataone-indexer 20220805-05:17:00: [INFO]: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@265adfad: startup date [Fri Aug 05 05:17:00 GMT 2022]; root of context hierarchy [org.springframework.context.support.AbstractApplicationContext:prepareRefresh:503]
dataone-indexer 20220805-05:17:02: [WARN]: Setting up PerformanceLogger: set to enabled? false [org.dataone.cn.index.util.PerformanceLogger:<init>:40]
dataone-indexer 20220805-05:17:03: [INFO]: HTTPService.loadSolrSchemaDocument - will load the schema file from http://localhost:8983/solr/metacat-index/admin/file?file=schema.xml&contentType=text/xml by http client [org.dataone.cn.indexer.solrhttp.HTTPService:loadSolrSchemaDocument:501]
dataone-indexer 20220805-05:17:03: [ERROR]: HTTPService.loadSolrSchemaDocument - can't get the schema doc from http://localhost:8983/solr/metacat-index/admin/file?file=schema.xml&contentType=text/xml since Connection refused (Connection refused) [org.dataone.cn.indexer.solrhttp.HTTPService:loadSolrSchemaDocument:509]
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'resourceMapSubprocessor' defined in class path resource [application-context-resourcemap.xml]: Cannot resolve reference to bean 'httpService' while setting bean property 'httpService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'httpService' defined in class path resource [index-parser-context.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.dataone.cn.indexer.solrhttp.HTTPService]: Constructor threw exception; nested exception is java.lang.NullPointerException
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:329)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1360)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1118)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:607)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:925)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:472)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
	at org.dataone.cn.index.IndexWorker.initIndexParsers(IndexWorker.java:236)
	at org.dataone.cn.index.IndexWorker.<init>(IndexWorker.java:181)
	at org.dataone.cn.index.IndexWorker.main(IndexWorker.java:123)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'httpService' defined in class path resource [index-parser-context.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.dataone.cn.indexer.solrhttp.HTTPService]: Constructor threw exception; nested exception is java.lang.NullPointerException
	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:288)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1035)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:939)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
	... 17 more
Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.dataone.cn.indexer.solrhttp.HTTPService]: Constructor threw exception; nested exception is java.lang.NullPointerException
	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:162)
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:121)
	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:280)
	... 26 more
Caused by: java.lang.NullPointerException
	at org.dataone.cn.indexer.solrhttp.HTTPService.loadSolrSchemaFields(HTTPService.java:477)
	at org.dataone.cn.indexer.solrhttp.HTTPService.<init>(HTTPService.java:106)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147)
	... 28 more

@mbjones Yeah, this message looks like that the solr service is not working. Dataone indexer needs to connect http://localhost:8983 to get the schema. So I think it is fine to merge the branch.

ok, sounds good. I merged these changes into the feature-9-rabbitmq-worker branch, so you'll need to rebuild the docker image locally to pick up my image changes.

In sha a5f4b9396a I added a new github actions workflow that is composed of two jobs:

maven build, test and package jar
docker image build, package and publish

The first job is run on multiple branches and tags matching develop, feature-*, and v*.*.*. The second job to build and publish the package is only run on pushes to develop branch or a release tag v*.*.*.
At this point, I think the image build infrastructure is complete.

Looks like the docker image build is failing for develop branch, so reopening to debug that issue. See https://github.com/DataONEorg/dataone-indexer/actions/runs/3654197016/jobs/6174468686

Hem. I just successfully built and published an image by following our instructions.


Updates for Python3 compatibility

Your other changes appear to be fine though!

Honestly, I closed my PR only after I realized there were already 3 other PRs regarding adding python 3 support =P


Error: Can not loadUE3 packages

I created a basic blueprint in the latest Unreal version, version 5.4.1, but when I try to open it I get an error:
An error occurred: Can not load UE3 packages.
uasset_path is the path to a .uasset file.
def get_asset_type(uasset_path):
    try:
        print(f"Reading uasset file: {uasset_path}")
        provider = DefaultFileProvider(os.path.dirname(uasset_path), VersionContainer(EUEVersion.LATEST))
        provider.initialize()

        uasset_stream = BinaryStream(uasset_path)

        package_reader = LegacyPackageReader(uasset_stream, None, provider=provider)
        package = package_reader.read_package()
        primary_export = package.exports[0]
        return primary_export.export_type
    except Exception as e:
        print(f"An error occurred: {e}")
        return None

UE5.4 is probably too new for pyue4parse and this package is not updated anymore.
use this https://github.com/FabianFG/CUE4Parse

UE5.4 is probably too new for pyue4parse and this package is not updated anymore. use this https://github.com/FabianFG/CUE4Parse

Thanks for the quick response, the problem with CUE4Parse is that it's for C#. I'm working in Python. The only thing I need to know is what type of asset it is, is there a workaround for this?

Is the asset you are trying to read cooked?

Is the asset you are trying to read cooked?

Sorry for the late reply but, No, they are not cooked.
Does this make it easier?

Library is only tested with cooked assets


Lite-client

As a user
I don't want to have long synchronization times when I open the app
So I that I can check balances or interact with the blockchain when I want to immediately.
AC:

[ ] The wallet doesn't use a full node

Note

The wallet should probably just use the baseserver client

dupe


chore(components): rename --experimental mix-ins

When we release next version of Carbon, code in componentname-experimental will be the latest, stable code. Which means componentname-experimental no longer makes sense given it's no longer "experimental". This change is for renaming those to componentname-x so we don't have to go through big rename effort right before releasing next version of Carbon.
Changelog
Changed

componentname-experimental mix-ins to componentname-x.

Testing / Reviewing
Testing should make sure no component is broken.

Hi @joshblack thank you for giving this a thought. This change is for avoiding the effort of renaming (that you mentioned) right before we release next Carbon. The goal is making next release of Carbon as simple as flipping the default feature flag values.

Closing for now as the team wants to defer this discussion for some weeks. Will reopen this after then.


Update nix to 0.24.1, limit features

This reduces test build times slightly.

Thanks! It seems that the new version needs Rust 1.46 or higher. Since bat uses 1.51 anyways, I am fine with bumping MSRV here too. There are two places that need to be changed: The CI workflow, line 17 and the badge in the README


Bridge:  Improved observability for our bridges

see https://github.com/threefoldtech/home/issues/1476

Update:
I have explored the code base of the bridge and the tft-bridge pallet to understand the implementation details of the cross-chain transfer flow.
I have also compiled what I learned so far into new bridge documentation and opened a PR.
The bridge outputs human-readable logs and tracks only a few events that happen and acts upon them.
My current focus is to come up with an efficient schema for the logs and categorize them as well.
I also want to make the bridge more aware of the transaction phases by possibly scanning other transfer-related events, so that tools parsing the logs can have a full image of the transfers.

Update:
We’re almost there! A draft pull request has been opened and should be ready for review soon after some polishing and cleaning. also log schema need to be documented.
Please note that the merge will be blocked due to a small change required in Tfchain minting events. An issue will be opened for it.
Here’s a preview of the audit logs associated with a deposit that had an invalid memo before and after I’ve instrumented the app with structured logs.
before:
6:27PM INF received transaction on bridge stellar account hash=078fa58d2b585aa40b92dae1c77fde1a2fa2fe28f61c0670beb1c4d6dfc8959c
6:27PM INF fetching stellar transactions account=GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ cursor=9195456261275648 horizon=https://horizon-testnet.stellar.org/
6:27PM INF error while decoding tx memo: twin not found: object not found
6:27PM INF saving cursor now<PHONE_NUMBER>275648
6:27PM INF mint processed hash=078fa58d2b585aa40b92dae1c77fde1a2fa2fe28f61c0670beb1c4d6dfc8959c
6:27PM INF fetching events for blockheight ID=2039
6:28PM INF fetching stellar transactions account=GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ cursor=9195456261275648 horizon=https://horizon-testnet.stellar.org/
6:28PM INF fetching events for blockheight ID=2040
6:28PM INF fetching events for blockheight ID=2041
6:28PM INF found refund transaction ready event hash=078fa58d2b585aa40b92dae1c77fde1a2fa2fe28f61c0670beb1c4d6dfc8959c
6:28PM INF transaction submitted to the stellar network hash=c8860fc13d395437c5b98c3c7c45f2645fc2ccd1c4da486bfe2a905b6cf45fe1
6:28PM INF fetching stellar transactions account=GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ cursor=9195456261275648 horizon=https://horizon-testnet.stellar.org/
6:28PM INF received transaction on bridge stellar account hash=c8860fc13d395437c5b98c3c7c45f2645fc2ccd1c4da486bfe2a905b6cf45fe1
6:28PM INF refund processed hash=078fa58d2b585aa40b92dae1c77fde1a2fa2fe28f61c0670beb1c4d6dfc8959c

after:
[
  {
    "level": "info",
    "source": {
      "Instance_public_key": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Bridge_wallet_address": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Stellar_network": "testnet",
      "Tfchain_url": "ws://localhost:9944"
    },
    "event_type": "block_events_fetched",
    "event": {
      "height": 16468
    },
    "message": "tfchain events fetched"
  },
  {
    "level": "info",
    "source": {
      "Instance_public_key": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Bridge_wallet_address": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Stellar_network": "testnet",
      "Tfchain_url": "ws://localhost:9944"
    },
    "event": {
      "bridge_account": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "horizon_url": "https://horizon-testnet.stellar.org/",
      "cursor": "9720086516482048"
    },
    "event_type": "transactions_fetched",
    "count": 1,
    "message": "stellar transactions fetched"
  },
  {
    "level": "info",
    "source": {
      "Instance_public_key": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Bridge_wallet_address": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Stellar_network": "testnet",
      "Tfchain_url": "ws://localhost:9944"
    },
    "span_id": "6c966dda29f01189d6589b98c624198d8791faf65206e297e2da7d9d935db729",
    "event_type": "payment_received",
    "event": {
      "_links": {
        "self": {
          "href": "https://horizon-testnet.stellar.org/operations/9720756531367937"
        },
        "transaction": {
          "href": "https://horizon-testnet.stellar.org/transactions/6c966dda29f01189d6589b98c624198d8791faf65206e297e2da7d9d935db729"
        },
        "effects": {
          "href": "https://horizon-testnet.stellar.org/operations/9720756531367937/effects"
        },
        "succeeds": {
          "href": "https://horizon-testnet.stellar.org/effects?order=desc&cursor=9720756531367937"
        },
        "precedes": {
          "href": "https://horizon-testnet.stellar.org/effects?order=asc&cursor=9720756531367937"
        }
      },
      "id": "9720756531367937",
      "paging_token": "9720756531367937",
      "transaction_successful": true,
      "source_account": "GD4MUF7FTWOGNREGKMQWC3NOJGBNASEFNEOUJTLNW4FDONV5CEUTGKS4",
      "type": "payment",
      "type_i": 1,
      "created_at": "2023-10-30T02:04:40Z",
      "transaction_hash": "6c966dda29f01189d6589b98c624198d8791faf65206e297e2da7d9d935db729",
      "asset_type": "credit_alphanum4",
      "asset_code": "TFT",
      "asset_issuer": "GA47YZA3PKFUZMPLQ3B5F2E3CJIB57TGGU7SPCQT2WAEYKN766PWIMB3",
      "from": "GD4MUF7FTWOGNREGKMQWC3NOJGBNASEFNEOUJTLNW4FDONV5CEUTGKS4",
      "to": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "amount": "50.0000000"
    },
    "message": "a payment received on bridge stellar account"
  },
  {
    "level": "info",
    "source": {
      "Instance_public_key": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Bridge_wallet_address": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Stellar_network": "testnet",
      "Tfchain_url": "ws://localhost:9944"
    },
    "span_id": "6c966dda29f01189d6589b98c624198d8791faf65206e297e2da7d9d935db729",
    "event_type": "transfer_initiated",
    "event": {
      "type": "deposit"
    },
    "message": "transfer with id 6c966dda29f01189d6589b98c624198d8791faf65206e297e2da7d9d935db729 initiated"
  },
  {
    "level": "info",
    "source": {
      "Instance_public_key": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Bridge_wallet_address": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Stellar_network": "testnet",
      "Tfchain_url": "ws://localhost:9944"
    },
    "event": {
      "bridge_account": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "horizon_url": "https://horizon-testnet.stellar.org/",
      "cursor": "9720756531367936"
    },
    "event_type": "transactions_fetched",
    "count": 0,
    "message": "stellar transactions fetched"
  },
  {
    "level": "info",
    "source": {
      "Instance_public_key": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Bridge_wallet_address": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Stellar_network": "testnet",
      "Tfchain_url": "ws://localhost:9944"
    },
    "span_id": "6c966dda29f01189d6589b98c624198d8791faf65206e297e2da7d9d935db729",
    "event_type": "refund_proposed",
    "event": {
      "reason": "memo is not formatted correctly"
    },
    "message": "refund initiated due to memo is not formatted correctly"
  },
  {
    "level": "info",
    "source": {
      "Instance_public_key": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Bridge_wallet_address": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Stellar_network": "testnet",
      "Tfchain_url": "ws://localhost:9944"
    },
    "event_type": "block_events_fetched",
    "event": {
      "height": 16469
    },
    "message": "tfchain events fetched"
  },
  {
    "level": "info",
    "source": {
      "Instance_public_key": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Bridge_wallet_address": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Stellar_network": "testnet",
      "Tfchain_url": "ws://localhost:9944"
    },
    "event_type": "block_events_fetched",
    "event": {
      "height": 16470
    },
    "message": "tfchain events fetched"
  },
  {
    "level": "info",
    "source": {
      "Instance_public_key": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Bridge_wallet_address": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Stellar_network": "testnet",
      "Tfchain_url": "ws://localhost:9944"
    },
    "event": {
      "bridge_account": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "horizon_url": "https://horizon-testnet.stellar.org/",
      "cursor": "9720756531367936"
    },
    "event_type": "transactions_fetched",
    "count": 0,
    "message": "stellar transactions fetched"
  },
  {
    "level": "info",
    "source": {
      "Instance_public_key": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Bridge_wallet_address": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Stellar_network": "testnet",
      "Tfchain_url": "ws://localhost:9944"
    },
    "event_type": "block_events_fetched",
    "event": {
      "height": 16471
    },
    "message": "tfchain events fetched"
  },
  {
    "level": "info",
    "source": {
      "Instance_public_key": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Bridge_wallet_address": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Stellar_network": "testnet",
      "Tfchain_url": "ws://localhost:9944"
    },
    "event_type": "event_refund_tx_ready_received",
    "span_id": "6c966dda29f01189d6589b98c624198d8791faf65206e297e2da7d9d935db729",
    "message": "found refund transaction ready event"
  },
  {
    "level": "info",
    "source": {
      "Instance_public_key": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Bridge_wallet_address": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Stellar_network": "testnet",
      "Tfchain_url": "ws://localhost:9944"
    },
    "event": {
      "bridge_account": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "horizon_url": "https://horizon-testnet.stellar.org/",
      "cursor": "9720756531367936"
    },
    "event_type": "transactions_fetched",
    "count": 0,
    "message": "stellar transactions fetched"
  },
  {
    "level": "info",
    "source": {
      "Instance_public_key": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Bridge_wallet_address": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Stellar_network": "testnet",
      "Tfchain_url": "ws://localhost:9944"
    },
    "hash": "0befc0c727833e4b3e569c641556bc88e597f9c91b9be0d496eee0343e60293f",
    "message": "transaction submitted to the stellar network"
  },
  {
    "level": "info",
    "source": {
      "Instance_public_key": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Bridge_wallet_address": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Stellar_network": "testnet",
      "Tfchain_url": "ws://localhost:9944"
    },
    "event_type": "block_events_fetched",
    "event": {
      "height": 16472
    },
    "message": "tfchain events fetched"
  },
  {
    "level": "info",
    "source": {
      "Instance_public_key": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Bridge_wallet_address": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Stellar_network": "testnet",
      "Tfchain_url": "ws://localhost:9944"
    },
    "span_id": "6c966dda29f01189d6589b98c624198d8791faf65206e297e2da7d9d935db729",
    "event_type": "refund_completed",
    "message": "refund processed"
  },
  {
    "level": "info",
    "source": {
      "Instance_public_key": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Bridge_wallet_address": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Stellar_network": "testnet",
      "Tfchain_url": "ws://localhost:9944"
    },
    "span_id": "6c966dda29f01189d6589b98c624198d8791faf65206e297e2da7d9d935db729",
    "event_type": "transfer_completed",
    "event": {
      "outcome": "refunded"
    },
    "message": "transfer with id 6c966dda29f01189d6589b98c624198d8791faf65206e297e2da7d9d935db729 completed"
  },
  {
    "level": "info",
    "source": {
      "Instance_public_key": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Bridge_wallet_address": "GBD3PXJEQOCQ5VR2JSMFNXYBBQF5RDEZP5GMTXDYZWMNZQJHR6HFX3AJ",
      "Stellar_network": "testnet",
      "Tfchain_url": "ws://localhost:9944"
    },
    "hash": "6c966dda29f01189d6589b98c624198d8791faf65206e297e2da7d9d935db729",
    "message": "refund processed"
  }
]

Update:
I spent good time to tackle this issue, grappling with the concept of Observability and  get my head around the bridge  design and related logic on the tfchain runtime. I even wrote a detailed documentation about the bridging implementation and got it merged.
I documented the event schema here:
https://github.com/threefoldtech/tfchain/blob/b08dcc90b3e24d220e27b479396f27e97d45aaf2/bridge/docs/observability.md
The PR is reday for review but blocked on  https://github.com/threefoldtech/tfchain/issues/882

Update:
#882 was solved in other PR (pending review) so this should be ready after updating tfchain


Infer type of transport from service port name

The Istio project does this and I think it's a nice feature. Basically if you define a port with a prefix of http, it sets the codec to http1.1 for the envoy cluster / endpoints.
If you specify grpc for the port name, it infers http2 and sets it accordingly. I think this is much nice than the annotation that you must add to the services as you may have ports that are http and grpc accordingly.
Basically:
apiVersion: v1
kind: Service
metadata:
  name: sessions-grpc-gateway
  namespace: applications
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    load-balancer-sessions: 'true'
  sessionAffinity: None
  type: ClusterIP

The port http would automatically be assigned http1.1, whereas if it were set to grpc or http2 then we could automatically set that codec to http2 too.

Thank you for this suggestion. I can't promise I can get too it soon, but I think this is possible to add in a backward compatible way with the current annotation.


Example two has an typo

When executing "Set-CsAuthConfig -Scenario BlockWindowsAuthExternallyAndModernAuthInternally" I receive this:
Set-CsAuthConfig : Cannot bind parameter 'Scenario'. Cannot convert value "BlockWindowsAuthExternallyAndModernAuthInternally" to type
This works fine:
Set-CsAuthConfig -Scenario BlockWindowsAuthExternalyAndModernAuthInternally
Seems that Externaly is implemented with one l in that case

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

ID: 26656471-f4e4-3dbe-b915-5230400d7b7f
Version Independent ID: 4dc006ee-6bf8-a929-94f7-499a5af1f7a1
Content: Set-CsAuthConfig (skype)
Content Source: skype/skype-ps/skype/Set-CsAuthConfig.md
Service: skypeforbusiness-powershell
GitHub Login: @hirenshah1
Microsoft Alias: hirshah

@officedocsbot assign @yogkumgit

Hello @sischanz thanks for noticing.
We managed to report this to the product team and they are now aware of this, and we can expect some news from them too.
We do not tend (and like) to document a bug, but in this case, I was told to add a note until the cmdlet is fixed.
Also found this support article that documents the parameter with one L.
Thank you


First attempt at infra requirements

I've included a Dockerfile based on Centos. It install java and run the app on 8080.
dockerbuild.sh will make the image, dockerstart.sh will run it with 8080 mapped
docs/requirements.md has a list of requirements

@mattburgess @dan-hill2802  please have a look. It shows the results of my experiments of running on centos

@dan-hill2802  @mattburgess typo fixed, duplicate files removed. Please review.


Added earliest / latest search time, other improvements

You can add earliest/latest to search list this
# Create the Search
search = splunk.search("test_search earliest=-2h latest=-1h")


image text Retriver

Great work. Could you please supply an example about how to use the class Retriver? Thanks.

Hi @Guardian-in-the-WF, thank you for the interest in our work! The retriever is exactly the same as our zero-shot learning modules:
https://github.com/marshuang80/gloria/blob/416466af1036294301a872e4da169fefc137a192/gloria/gloria.py#L240
But instead of passing in cls_txt_mapping, you'l pass in the retrieving target.
Hope this helps!


[doc] update paper link in README.md

flake8 error B905: zip() without an explicit strict= parameter set. strict=True causes the resulting iterator
to raise a ValueError if the arguments are exhausted at differing lengths. The strict= argument
was added in Python 3.10, so don't enable this flag for code that should work on <3.10.
For more information: https://peps.python.org/pep-0618/

how to fix it? ignore it in .flake8?

Yes, it is caused by using python version (>=3.10) in flake8 testing (3.11.1).
However, explicitly adding strict= parameter in zip() will cause errors for python version less than 3.10.
Therefore, ignore it in .flake8 could be a good solution for different python versions.


Adding priorityClassName to the OSM deployments

This PR adds priorityClassName: system-node-critical to the Open Service Mesh pods (controller and injector).
The purpose of this change is to ensure that the OSM pods are put in the highest priority class and evictions are prevented.  In recent testing with large clusters we are noticing OSM Controller and Injector pods being evicted. If the OSM Controller or Injector pods are evicted from a cluster, the service mesh will no longer operate correctly.
Tests performed:

Added PriorityClass and priorityClassName to the OSM Controller pod spec within the OSS software.
Ran the project on a busy cluster using ./demo/run-osm-demo.sh

Script to install OSM: https://gist.github.com/draychev/a6cf66becd1c05d0314f94b73e67180c
Script to install Demo: https://gist.github.com/draychev/2856ff210a7a41a255ff5169d150f77b

Codecov Report

Merging #4201 (8f347c5) into main (644fbef) will increase coverage by 0.04%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #4201      +/-   ##
==========================================
+ Coverage   69.86%   69.91%   +0.04%
==========================================
  Files         212      212
  Lines       11583    11623      +40
==========================================
+ Hits         8093     8126      +33
- Misses       3437     3445       +8
+ Partials       53       52       -1

Flag
Coverage Δ

unittests
69.91% <ø> (+0.04%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

pkg/validator/patch.go
87.50% <0.00%> (-7.91%)
:arrow_down:

pkg/injector/webhook.go
90.28% <0.00%> (-2.72%)
:arrow_down:

pkg/k8s/event_handlers.go
91.83% <0.00%> (-2.61%)
:arrow_down:

pkg/reconciler/mutating_webhook_handler.go
86.11% <0.00%> (-2.47%)
:arrow_down:

pkg/reconciler/validating_webhook_handler.go
86.11% <0.00%> (-2.47%)
:arrow_down:

pkg/reconciler/crd_handler.go
82.92% <0.00%> (-2.08%)
:arrow_down:

pkg/validator/validators.go
91.80% <0.00%> (-0.65%)
:arrow_down:

pkg/envoy/cds/cluster.go
93.20% <0.00%> (-0.20%)
:arrow_down:

pkg/errcode/errcode.go
100.00% <0.00%> (ø)

pkg/envoy/cds/tracing.go
100.00% <0.00%> (ø)

... and 11 more

Continue to review full report at Codecov.

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

Did we see OSM pods evicted after low priority pods?

Did we see OSM pods evicted after low priority pods?

@allenlsy After I added priorityClass: system-node-critical I stopped seeing evictions.


Tests + more

Bump Kafka version <IP_ADDRESS> -> <IP_ADDRESS>
Added project/plugins file with sbt-idea plugin
Changed default value for autoOffsetResetToStart in ScalaKafkaConsumer to be 'true'
Added KafkaOnActorsTestBase to be used as a base class for all Kafka tests
Added KafkaOnActorsOrderTest that validates order of message arrivals
Some other minor changes
TBD - more tests

@liorgonnen please review & merge

Testing the Slack integration.


Catch errors from the application

Prevent Bailador from dieing if the application dies, and convert these
responses to an Internal Server Error response, while printing the
backtrace to the P6SGI error handle (normally $*ERR).
After committing this, it occurred to me that this might make more sense in HTTP::Easy::PSGI. If you think that makes more sense, please let me know and I'll port this over.
What would make sense for Bailador, in my opinion, is to have a nice debug mode where we get the backtrace to the screen, similar to things like Django.

Yes, yes, yes! :+1: Bailador/whatever behind it not dying when something goes wrong is mandatory.

Sounds like a good idea. Could you also add some tests please?

Sure. See PR #40.


Feature request: add an option to disable closing down stale issues/PRs

In our project we would like to leave stale PRs open even if they do not receive any activity. As there is no documentation regarding how to achieve this, we naively tried to comment out
# daysUntilClose: 7

Apparently, this does not help as the default value of 7 is picked up.
Would be helpful if it was possible to write something like daysUntilClose: false or perhaps a separate option closeStale: false.

Good suggestion. PRs are welcome. In the mean time, you can just set it to an insanely high number (e.g. 9125 days is 25 years from now, and I sure hope I'm retired by then and it's someone else's problem).


Need to reauthorize every hour

MacLexa uses the implicit authorization method.
This requires the user to reauthorize every hour.
Need to switch over to using the companion app method of Authorization, without creating a companion app

This is a cool app - but yea, a bit annoying to have to constantly re-auth. Hope this gets implemented!


Fix false positive in soap.wsdl_cache_dir test

We're now testing if the string is exactly '/tmp' instead of checking
if there's any '/tmp' in it;

This fixes https://github.com/psecio/iniscan/issues/103


Use for generation?

I am exploring the idea of programmatically generating a datapackage.json. Can this be used to generate JSON that represents a table schema that would be added to a datapackage definition?

@pmackay
Hi, do you mean inferring some data files?

I mean calling API methods to build up a logical schema model and then outputting a JSON representation of that model that matches the datapackage.json format.

@pmackay
Yes, sure https://github.com/frictionlessdata/tableschema-js#schema
Other question that for outside of basic cases it will require a descriptor editing anyway schema.descriptor[...] = ....


PartitionKeyPath Incorrectly Matched

Describe the bug
CreateContainerIfNotExistsAsync complains that the requested PartitionKeyPath does not match the existing PartitionKeyPath on an existing container.
To Reproduce
The requested partition key path '/PartitionKey' does not match existing Container 'ExecutionResult' with partition key path '/PartitionKey'

Expected behavior
No expected errors. The two string values literally match character for character.
Actual behavior
Reports the two strings do not match.
Environment summary
SDK Version: 3.1.0
OS Version Windows 10

Hi @adstep ,
This issue was fixed in PR #649. We are in the process of unlisting 3.1.0. We are just waiting on a few other fixes before doing another release.
Thanks for reporting the issue.


tracker is not updating and is returning 0.0 as duration initially

Question / Problem
the tracker for youtube is returning 0.0 as video duration when song is being played
Summary
In my code i initialized youtube player widgit where i used onready() and onStateChanged()
in onready() i am adding tracker to the youtubeplayer
but in onstatechanged if i get duration of the video playing at first it return zero but if we change the state i.e. if we pause then it gets updated
also when i change the song i.e. play other then it stores the duration of previous video untill pause is clicked
same happens with current second duration (i.e. played duration)
What I've tried
i tried to remove the previous listener if any and add the listener every time after the song has been played then also it didn't work
Flow of code
platform : Android
on create --> Initialize youtube player (but will not play anything)  --> on button click load the video into youtube player view
during initialization i have added the  tracker

Hey, could you provide the code? if this is a bug, i'd suggest finding a way to replicate it in the sample app.

Hey, could you provide the code? if this is a bug, i'd suggest finding a way to replicate it in the sample app.

@PierfrancescoSoffritti  Thanks for your reply, I have recreated that with a example here is the code
code
class default_activity : AppCompatActivity() {
lateinit var youTubePlayerView: YouTubePlayerView
lateinit var tracker: YouTubePlayerTracker
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_default)
    youTubePlayerView = findViewById<YouTubePlayerView>(R.id.youtube_player_view)
    youTubePlayerView.enableAutomaticInitialization = false
    youTubePlayerView.enableBackgroundPlayback(true)
    lifecycle.addObserver(youTubePlayerView)

    initializeYTPlayer()
}

private fun initializeYTPlayer() {
    val customPlayerUi =
        youTubePlayerView.inflateCustomPlayerUi(R.layout.custom_player_ui_default)

    val listener: YouTubePlayerListener = object : AbstractYouTubePlayerListener() {
        override fun onReady(youTubePlayer: YouTubePlayer) {

            val customPlayerUiController = CustomPlayerUiController2(customPlayerUi, youTubePlayer, youTubePlayerView)
            youTubePlayer.addListener(customPlayerUiController)

            tracker=YouTubePlayerTracker()
            youTubePlayer.addListener(tracker)

            youTubePlayer.loadOrCueVideo(lifecycle, "M_x7zq92lc8", 0f)
        }

        override fun onStateChange(youTubePlayer: YouTubePlayer, state: PlayerConstants.PlayerState) {
            var array=arrayOf("unknown","unstarted","ended","playing","paused","buffering","video cued")
            printCurrent(array[state.ordinal])
            super.onStateChange(youTubePlayer, state)

            if(state==PlayerConstants.PlayerState.PAUSED){

            }
            if(state==PlayerConstants.PlayerState.PLAYING){

            }
        }

        override fun onVideoDuration(youTubePlayer: YouTubePlayer, duration: Float) {
            super.onVideoDuration(youTubePlayer, duration)
            printCurrent("On video duration")

        }
    }

    val options: IFramePlayerOptions = IFramePlayerOptions.Builder().controls(0).build()
    youTubePlayerView.initialize(listener, options)
}

fun printCurrent(s: String) {
    Log.d("current","Now $s The current duration is ${tracker.currentSecond.toString()} and total duration is ${tracker.videoDuration.toString()}")
}

}
output I got
10:18:53.337  D  Now unstarted The current duration is 0.0 and total duration is 0.0
10:18:53.339  D  Now buffering The current duration is 0.0 and total duration is 0.0
10:18:54.210  D  Now playing The current duration is 0.0 and total duration is 0.0
10:18:54.211  D  Now On video duration The current duration is 0.0 and total duration is 0.0
10:19:36.170  D  Now ended The current duration is 41.5487 and total duration is 41.441
here on videoDuration method is called after the video is being played but yet i got total duration as 0.0
requirement
Supose i want to show notification for playback then while creating the notification i need to send the total duration for setting seekbar.
Hope you respond soon @PierfrancescoSoffritti

Hey, could you provide the code? if this is a bug, i'd suggest finding a way to replicate it in the sample app.

@PierfrancescoSoffritti  Thanks for your reply, I have recreated that with a example here is the code
code
class default_activity : AppCompatActivity() {
    lateinit var youTubePlayerView: YouTubePlayerView
    lateinit var tracker: YouTubePlayerTracker
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_default)

        youTubePlayerView = findViewById<YouTubePlayerView>(R.id.youtube_player_view)
        youTubePlayerView.enableAutomaticInitialization = false
        youTubePlayerView.enableBackgroundPlayback(true)
        lifecycle.addObserver(youTubePlayerView)

        initializeYTPlayer()
    }

    private fun initializeYTPlayer() {
        val customPlayerUi =
            youTubePlayerView.inflateCustomPlayerUi(R.layout.custom_player_ui_default)

        val listener: YouTubePlayerListener = object : AbstractYouTubePlayerListener() {
            override fun onReady(youTubePlayer: YouTubePlayer) {

                val customPlayerUiController = CustomPlayerUiController2(customPlayerUi, youTubePlayer, youTubePlayerView)
                youTubePlayer.addListener(customPlayerUiController)

                tracker=YouTubePlayerTracker()
                youTubePlayer.addListener(tracker)

                youTubePlayer.loadOrCueVideo(lifecycle, "M_x7zq92lc8", 0f)
            }

            override fun onStateChange(youTubePlayer: YouTubePlayer, state: PlayerConstants.PlayerState) {
                var array=arrayOf("unknown","unstarted","ended","playing","paused","buffering","video cued")
                printCurrent(array[state.ordinal])
                super.onStateChange(youTubePlayer, state)

                if(state==PlayerConstants.PlayerState.PAUSED){

                }
                if(state==PlayerConstants.PlayerState.PLAYING){

                }
            }

            override fun onVideoDuration(youTubePlayer: YouTubePlayer, duration: Float) {
                super.onVideoDuration(youTubePlayer, duration)
                printCurrent("On video duration")

            }
        }

        val options: IFramePlayerOptions = IFramePlayerOptions.Builder().controls(0).build()
        youTubePlayerView.initialize(listener, options)
    }

    fun printCurrent(s: String) {
        Log.d("current","Now $s The current duration is ${tracker.currentSecond.toString()} and total duration is ${tracker.videoDuration.toString()}")
    }

}

output I got
10:18:53.337  D  Now unstarted The current duration is 0.0 and total duration is 0.0
10:18:53.339  D  Now buffering The current duration is 0.0 and total duration is 0.0
10:18:54.210  D  Now playing The current duration is 0.0 and total duration is 0.0
10:18:54.211  D  Now On video duration The current duration is 0.0 and total duration is 0.0
10:19:36.170  D  Now ended The current duration is 41.5487 and total duration is 41.441
here on videoDuration method is called after the video is being played but yet i got total duration as 0.0
Hope you respond soon @PierfrancescoSoffritti

@PierfrancescoSoffritti have you got the issue?


Typo "Teams Room"→"Teams Rooms"

https://learn.microsoft.com/en-us/microsoftteams/devices/cloud-intelliframe
https://github.com/MicrosoftDocs/OfficeDocs-SkypeForBusiness/blob/public/Teams/devices/cloud-intelliframe.md
#PingMSFTDocs

@v-smandalika PR has been copyedited and is ready for final review, could you please check and merge? Thanks!

@v-smandalika PR has been copyedited and is ready for final review, could you please check and merge? Thanks!


Output buffer not flushed

When I'm using GetMetadataAsync, it turns out the output/error streams are not flushed before we mark the task as completed. In my case this means the library only receives the first FFmpeg result line, which just contains the header. The fix seems relatively easy - I added process.WaitForExit(); in the process.Exited += ... handler which forces the streams to be flushed. Putting the call there should be safe since we know the process itself is already finished. I'll open a pull request for this issue too.

should be resolved by the pull request.
i want to merge the audiochannel pr #30 and #31 before creating a new version though.


⬆ UPGRADE: Autoupdate pre-commit config template

Base PullRequest
default branch (https://github.com/s-weigand/cookiecutter-pypackage/tree/main)
Command results

Details:

add path
/home/runner/work/_actions/technote-space/create-pr-action/v2/node_modules/npm-check-updates/build/src/bin

pip install pre-commit
Collecting pre-commit
  Downloading pre_commit-2.15.0-py2.py3-none-any.whl (191 kB)
Collecting toml
  Downloading toml-0.10.2-py2.py3-none-any.whl (16 kB)
Collecting nodeenv>=0.11.1
  Downloading nodeenv-1.6.0-py2.py3-none-any.whl (21 kB)
Collecting identify>=1.0.0
  Downloading identify-2.3.5-py2.py3-none-any.whl (98 kB)
Collecting pyyaml>=5.1
  Downloading PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (682 kB)
Collecting cfgv>=2.0.0
  Downloading cfgv-3.3.1-py2.py3-none-any.whl (7.3 kB)
Collecting virtualenv>=20.0.8
  Downloading virtualenv-20.10.0-py2.py3-none-any.whl (5.6 MB)
Collecting platformdirs<3,>=2
  Downloading platformdirs-2.4.0-py3-none-any.whl (14 kB)
Collecting filelock<4,>=3.2
  Downloading filelock-3.3.2-py3-none-any.whl (9.7 kB)
Collecting six<2,>=1.9.0
  Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting backports.entry-points-selectable>=1.0.4
  Downloading backports.entry_points_selectable-1.1.1-py2.py3-none-any.whl (6.2 kB)
Collecting distlib<1,>=0.3.1
  Downloading distlib-0.3.3-py2.py3-none-any.whl (496 kB)
Installing collected packages: six, platformdirs, filelock, distlib, backports.entry-points-selectable, virtualenv, toml, pyyaml, nodeenv, identify, cfgv, pre-commit
Successfully installed backports.entry-points-selectable-1.1.1 cfgv-3.3.1 distlib-0.3.3 filelock-3.3.2 identify-2.3.5 nodeenv-1.6.0 platformdirs-2.4.0 pre-commit-2.15.0 pyyaml-6.0 six-1.16.0 toml-0.10.2 virtualenv-20.10.0

pre-commit autoupdate -c \{\{cookiecutter.project_slug\}\}/.pre-commit-config.yaml || (exit 0);
Updating https://github.com/pre-commit/pre-commit-hooks ... [INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks.
already up to date.
Updating https://github.com/asottile/pyupgrade ... [INFO] Initializing environment for https://github.com/asottile/pyupgrade.
already up to date.
Updating https://github.com/python/black ... [INFO] Initializing environment for https://github.com/python/black.
already up to date.
Updating https://github.com/pre-commit/mirrors-prettier ... [INFO] Initializing environment for https://github.com/pre-commit/mirrors-prettier.
already up to date.
Updating https://github.com/asottile/setup-cfg-fmt ... [INFO] Initializing environment for https://github.com/asottile/setup-cfg-fmt.
already up to date.
Updating https://gitlab.com/pycqa/flake8 ... [INFO] Initializing environment for https://gitlab.com/pycqa/flake8.
already up to date.
Updating https://github.com/PyCQA/isort ... [INFO] Initializing environment for https://github.com/PyCQA/isort.
updating 5.10.0 -> 5.10.1.
Updating https://github.com/pre-commit/mirrors-mypy ... [INFO] Initializing environment for https://github.com/pre-commit/mirrors-mypy.
already up to date.
Updating https://github.com/PyCQA/pydocstyle ... [INFO] Initializing environment for https://github.com/PyCQA/pydocstyle.
already up to date.
Updating https://github.com/terrencepreilly/darglint ... [INFO] Initializing environment for https://github.com/terrencepreilly/darglint.
already up to date.
Updating https://github.com/econchick/interrogate ... [INFO] Initializing environment for https://github.com/econchick/interrogate.
already up to date.
Updating https://github.com/myint/rstcheck ...
=====> /home/runner/.cache/pre-commit/repovi8pv3ro/.pre-commit-hooks.yaml is not a file
Updating https://github.com/pre-commit/pygrep-hooks ... [INFO] Initializing environment for https://github.com/pre-commit/pygrep-hooks.
already up to date.
Updating https://github.com/codespell-project/codespell ... [INFO] Initializing environment for https://github.com/codespell-project/codespell.
already up to date.
Updating https://github.com/asottile/yesqa ... [INFO] Initializing environment for https://github.com/asottile/yesqa.
already up to date.
Updating https://github.com/econchick/interrogate ... already up to date.

Changed files

Changed file:

{{cookiecutter.project_slug}}/.pre-commit-config.yaml

:octocat: Repo | :memo: Issues | :department_store: Marketplace

Command results

Details:

add path
/home/runner/work/_actions/technote-space/create-pr-action/v2/node_modules/npm-check-updates/build/src/bin

pip install pre-commit
Collecting pre-commit
  Downloading pre_commit-2.15.0-py2.py3-none-any.whl (191 kB)
Collecting identify>=1.0.0
  Downloading identify-2.4.0-py2.py3-none-any.whl (98 kB)
Collecting virtualenv>=20.0.8
  Downloading virtualenv-20.10.0-py2.py3-none-any.whl (5.6 MB)
Collecting toml
  Downloading toml-0.10.2-py2.py3-none-any.whl (16 kB)
Collecting pyyaml>=5.1
  Downloading PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (682 kB)
Collecting nodeenv>=0.11.1
  Downloading nodeenv-1.6.0-py2.py3-none-any.whl (21 kB)
Collecting cfgv>=2.0.0
  Downloading cfgv-3.3.1-py2.py3-none-any.whl (7.3 kB)
Collecting distlib<1,>=0.3.1
  Downloading distlib-0.3.3-py2.py3-none-any.whl (496 kB)
Collecting platformdirs<3,>=2
  Downloading platformdirs-2.4.0-py3-none-any.whl (14 kB)
Collecting backports.entry-points-selectable>=1.0.4
  Downloading backports.entry_points_selectable-1.1.1-py2.py3-none-any.whl (6.2 kB)
Collecting six<2,>=1.9.0
  Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting filelock<4,>=3.2
  Downloading filelock-3.4.0-py3-none-any.whl (9.8 kB)
Installing collected packages: six, platformdirs, filelock, distlib, backports.entry-points-selectable, virtualenv, toml, pyyaml, nodeenv, identify, cfgv, pre-commit
Successfully installed backports.entry-points-selectable-1.1.1 cfgv-3.3.1 distlib-0.3.3 filelock-3.4.0 identify-2.4.0 nodeenv-1.6.0 platformdirs-2.4.0 pre-commit-2.15.0 pyyaml-6.0 six-1.16.0 toml-0.10.2 virtualenv-20.10.0

pre-commit autoupdate -c \{\{cookiecutter.project_slug\}\}/.pre-commit-config.yaml || (exit 0);
Updating https://github.com/pre-commit/pre-commit-hooks ... [INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks.
already up to date.
Updating https://github.com/asottile/pyupgrade ... [INFO] Initializing environment for https://github.com/asottile/pyupgrade.
updating v2.29.0 -> v2.29.1.
Updating https://github.com/python/black ... [INFO] Initializing environment for https://github.com/python/black.
updating 21.10b0 -> 21.11b1.
Updating https://github.com/pre-commit/mirrors-prettier ... [INFO] Initializing environment for https://github.com/pre-commit/mirrors-prettier.
already up to date.
Updating https://github.com/asottile/setup-cfg-fmt ... [INFO] Initializing environment for https://github.com/asottile/setup-cfg-fmt.
updating v1.19.0 -> v1.20.0.
Updating https://gitlab.com/pycqa/flake8 ... [INFO] Initializing environment for https://gitlab.com/pycqa/flake8.
already up to date.
Updating https://github.com/PyCQA/isort ... [INFO] Initializing environment for https://github.com/PyCQA/isort.
already up to date.
Updating https://github.com/pre-commit/mirrors-mypy ... [INFO] Initializing environment for https://github.com/pre-commit/mirrors-mypy.
already up to date.
Updating https://github.com/PyCQA/pydocstyle ... [INFO] Initializing environment for https://github.com/PyCQA/pydocstyle.
already up to date.
Updating https://github.com/terrencepreilly/darglint ... [INFO] Initializing environment for https://github.com/terrencepreilly/darglint.
already up to date.
Updating https://github.com/econchick/interrogate ... [INFO] Initializing environment for https://github.com/econchick/interrogate.
already up to date.
Updating https://github.com/myint/rstcheck ...
=====> /home/runner/.cache/pre-commit/repovi8pv3ro/.pre-commit-hooks.yaml is not a file
Updating https://github.com/pre-commit/pygrep-hooks ... [INFO] Initializing environment for https://github.com/pre-commit/pygrep-hooks.
already up to date.
Updating https://github.com/codespell-project/codespell ... [INFO] Initializing environment for https://github.com/codespell-project/codespell.
already up to date.
Updating https://github.com/asottile/yesqa ... [INFO] Initializing environment for https://github.com/asottile/yesqa.
already up to date.
Updating https://github.com/econchick/interrogate ... already up to date.

Changed files

Changed file:

{{cookiecutter.project_slug}}/.pre-commit-config.yaml

:octocat: Repo | :memo: Issues | :department_store: Marketplace

Command results

Details:

add path
/home/runner/work/_actions/technote-space/create-pr-action/v2/node_modules/npm-check-updates/build/src/bin

pip install pre-commit
Collecting pre-commit
  Downloading pre_commit-2.15.0-py2.py3-none-any.whl (191 kB)
Collecting nodeenv>=0.11.1
  Downloading nodeenv-1.6.0-py2.py3-none-any.whl (21 kB)
Collecting toml
  Downloading toml-0.10.2-py2.py3-none-any.whl (16 kB)
Collecting cfgv>=2.0.0
  Downloading cfgv-3.3.1-py2.py3-none-any.whl (7.3 kB)
Collecting identify>=1.0.0
  Downloading identify-2.4.0-py2.py3-none-any.whl (98 kB)
Collecting virtualenv>=20.0.8
  Downloading virtualenv-20.10.0-py2.py3-none-any.whl (5.6 MB)
Collecting pyyaml>=5.1
  Downloading PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (682 kB)
Collecting platformdirs<3,>=2
  Downloading platformdirs-2.4.0-py3-none-any.whl (14 kB)
Collecting six<2,>=1.9.0
  Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting distlib<1,>=0.3.1
  Downloading distlib-0.3.3-py2.py3-none-any.whl (496 kB)
Collecting filelock<4,>=3.2
  Downloading filelock-3.4.0-py3-none-any.whl (9.8 kB)
Collecting backports.entry-points-selectable>=1.0.4
  Downloading backports.entry_points_selectable-1.1.1-py2.py3-none-any.whl (6.2 kB)
Installing collected packages: six, platformdirs, filelock, distlib, backports.entry-points-selectable, virtualenv, toml, pyyaml, nodeenv, identify, cfgv, pre-commit
Successfully installed backports.entry-points-selectable-1.1.1 cfgv-3.3.1 distlib-0.3.3 filelock-3.4.0 identify-2.4.0 nodeenv-1.6.0 platformdirs-2.4.0 pre-commit-2.15.0 pyyaml-6.0 six-1.16.0 toml-0.10.2 virtualenv-20.10.0

pre-commit autoupdate -c \{\{cookiecutter.project_slug\}\}/.pre-commit-config.yaml || (exit 0);
Updating https://github.com/pre-commit/pre-commit-hooks ... [INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks.
already up to date.
Updating https://github.com/asottile/pyupgrade ... [INFO] Initializing environment for https://github.com/asottile/pyupgrade.
already up to date.
Updating https://github.com/python/black ... [INFO] Initializing environment for https://github.com/python/black.
already up to date.
Updating https://github.com/pre-commit/mirrors-prettier ... [INFO] Initializing environment for https://github.com/pre-commit/mirrors-prettier.
updating v2.4.1 -> v2.5.0.
Updating https://github.com/asottile/setup-cfg-fmt ... [INFO] Initializing environment for https://github.com/asottile/setup-cfg-fmt.
already up to date.
Updating https://gitlab.com/pycqa/flake8 ... [INFO] Initializing environment for https://gitlab.com/pycqa/flake8.
already up to date.
Updating https://github.com/PyCQA/isort ... [INFO] Initializing environment for https://github.com/PyCQA/isort.
already up to date.
Updating https://github.com/pre-commit/mirrors-mypy ... [INFO] Initializing environment for https://github.com/pre-commit/mirrors-mypy.
already up to date.
Updating https://github.com/PyCQA/pydocstyle ... [INFO] Initializing environment for https://github.com/PyCQA/pydocstyle.
already up to date.
Updating https://github.com/terrencepreilly/darglint ... [INFO] Initializing environment for https://github.com/terrencepreilly/darglint.
already up to date.
Updating https://github.com/econchick/interrogate ... [INFO] Initializing environment for https://github.com/econchick/interrogate.
already up to date.
Updating https://github.com/myint/rstcheck ...
=====> /home/runner/.cache/pre-commit/repovi8pv3ro/.pre-commit-hooks.yaml is not a file
Updating https://github.com/pre-commit/pygrep-hooks ... [INFO] Initializing environment for https://github.com/pre-commit/pygrep-hooks.
already up to date.
Updating https://github.com/codespell-project/codespell ... [INFO] Initializing environment for https://github.com/codespell-project/codespell.
already up to date.
Updating https://github.com/asottile/yesqa ... [INFO] Initializing environment for https://github.com/asottile/yesqa.
already up to date.
Updating https://github.com/econchick/interrogate ... already up to date.

Changed files

Changed file:

{{cookiecutter.project_slug}}/.pre-commit-config.yaml

:octocat: Repo | :memo: Issues | :department_store: Marketplace

Command results

Details:

add path
/home/runner/work/_actions/technote-space/create-pr-action/v2/node_modules/npm-check-updates/build/src/bin

pip install pre-commit
Collecting pre-commit
  Downloading pre_commit-2.16.0-py2.py3-none-any.whl (191 kB)
Collecting toml
  Downloading toml-0.10.2-py2.py3-none-any.whl (16 kB)
Collecting pyyaml>=5.1
  Downloading PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (682 kB)
Collecting nodeenv>=0.11.1
  Downloading nodeenv-1.6.0-py2.py3-none-any.whl (21 kB)
Collecting cfgv>=2.0.0
  Downloading cfgv-3.3.1-py2.py3-none-any.whl (7.3 kB)
Collecting virtualenv>=20.0.8
  Downloading virtualenv-20.10.0-py2.py3-none-any.whl (5.6 MB)
Collecting identify>=1.0.0
  Downloading identify-2.4.0-py2.py3-none-any.whl (98 kB)
Collecting distlib<1,>=0.3.1
  Downloading distlib-0.3.3-py2.py3-none-any.whl (496 kB)
Collecting platformdirs<3,>=2
  Downloading platformdirs-2.4.0-py3-none-any.whl (14 kB)
Collecting backports.entry-points-selectable>=1.0.4
  Downloading backports.entry_points_selectable-1.1.1-py2.py3-none-any.whl (6.2 kB)
Collecting six<2,>=1.9.0
  Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting filelock<4,>=3.2
  Downloading filelock-3.4.0-py3-none-any.whl (9.8 kB)
Installing collected packages: six, platformdirs, filelock, distlib, backports.entry-points-selectable, virtualenv, toml, pyyaml, nodeenv, identify, cfgv, pre-commit
Successfully installed backports.entry-points-selectable-1.1.1 cfgv-3.3.1 distlib-0.3.3 filelock-3.4.0 identify-2.4.0 nodeenv-1.6.0 platformdirs-2.4.0 pre-commit-2.16.0 pyyaml-6.0 six-1.16.0 toml-0.10.2 virtualenv-20.10.0

pre-commit autoupdate -c \{\{cookiecutter.project_slug\}\}/.pre-commit-config.yaml || (exit 0);
Updating https://github.com/pre-commit/pre-commit-hooks ... [INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks.
already up to date.
Updating https://github.com/asottile/pyupgrade ... [INFO] Initializing environment for https://github.com/asottile/pyupgrade.
already up to date.
Updating https://github.com/python/black ... [INFO] Initializing environment for https://github.com/python/black.
updating 21.11b1 -> 21.12b0.
Updating https://github.com/pre-commit/mirrors-prettier ... [INFO] Initializing environment for https://github.com/pre-commit/mirrors-prettier.
updating v2.5.0 -> v2.5.1.
Updating https://github.com/asottile/setup-cfg-fmt ... [INFO] Initializing environment for https://github.com/asottile/setup-cfg-fmt.
already up to date.
Updating https://gitlab.com/pycqa/flake8 ... [INFO] Initializing environment for https://gitlab.com/pycqa/flake8.
already up to date.
Updating https://github.com/PyCQA/isort ... [INFO] Initializing environment for https://github.com/PyCQA/isort.
already up to date.
Updating https://github.com/pre-commit/mirrors-mypy ... [INFO] Initializing environment for https://github.com/pre-commit/mirrors-mypy.
already up to date.
Updating https://github.com/PyCQA/pydocstyle ... [INFO] Initializing environment for https://github.com/PyCQA/pydocstyle.
already up to date.
Updating https://github.com/terrencepreilly/darglint ... [INFO] Initializing environment for https://github.com/terrencepreilly/darglint.
already up to date.
Updating https://github.com/econchick/interrogate ... [INFO] Initializing environment for https://github.com/econchick/interrogate.
already up to date.
Updating https://github.com/myint/rstcheck ...
=====> /home/runner/.cache/pre-commit/repovi8pv3ro/.pre-commit-hooks.yaml is not a file
Updating https://github.com/pre-commit/pygrep-hooks ... [INFO] Initializing environment for https://github.com/pre-commit/pygrep-hooks.
already up to date.
Updating https://github.com/codespell-project/codespell ... [INFO] Initializing environment for https://github.com/codespell-project/codespell.
already up to date.
Updating https://github.com/asottile/yesqa ... [INFO] Initializing environment for https://github.com/asottile/yesqa.
already up to date.
Updating https://github.com/econchick/interrogate ... already up to date.

Changed files

Changed file:

{{cookiecutter.project_slug}}/.pre-commit-config.yaml

:octocat: Repo | :memo: Issues | :department_store: Marketplace


Bug with accessing group changes

Certain groups display a 500 error when accessed via the portal or API. This error happens when the group contains a group change which has a user ID that is no longer in the users table. Trying to get the user which no longer exists causes a chain reaction making both the group and the particular group change inaccessible. While users should never be removed from the users table, this has happened a few times. We need to add a check in the relevant membership methods which prevents an error if a user id in the group change is not found.

To test out this issue, I created a group with two users. I deleted one of the users from user table. When I went to the group page, I don't see any errors. I see the deleted user as unknown user without facing any errors as seen below:

Is there a way to reproduce the error? Also, do you know how a user is deleted from user table? I don't see any method in our application to remove a user from the database.


Where did existing disaster mgmt systems fail?

What to do with this?

Relevant Section: 4

Maybe we should not touch this point at all :/ I have no idea as of now.

Ignore ...

allrighty 👍


GUIDS repairs

Existing Sample Changes
Description
Several samples (Fortran) had missing GUIDs and found 2 GUIDs that were duplicated
Duplicate GUIDS were with samples:

CRR and  Complex_Mult
openMP Reduce and DPC Reduce

LGTM