[BUG]: AddEntityAsync on TableClient doesn't work with ITableEntity

Describe the bug
AddEntityAsync doesn't work unless a concrete implementation T is specified when passed as argument to another function

Expected behavior
We should be able to pass the object to another function to do the add/insert operations.
Actual behavior (include Exception or Stack Trace)
It results in Compiler Error CS0310
To Reproduce
Steps to reproduce the behavior (include a code snippet, screenshot, or any additional information that might help us reproduce the issue)

Define an entity, implementing ITableEntity

       public class OfficeSupplyEntity : ITableEntity
        {
            public string Product { get; set; }
            public double Price { get; set; }
            public int Quantity { get; set; }
            public string PartitionKey { get; set; }
            public string RowKey { get; set; }
            public DateTimeOffset? Timestamp { get; set; }
            public ETag ETag { get; set; }
        }

// Create an instance of the strongly-typed entity and set its properties.
            var strongEntity = new OfficeSupplyEntity
            {
                PartitionKey = partitionKey,
                RowKey = rowKeyStrong,
                Product = "Notebook",
                Price = 3.00,
                Quantity = 50
            };

// Add the newly created entity by passing to another function
       await AddEntitiesAsync(tableName, strongEntity);

    public static async Task AddEntitiesAsync(string tableName, ITableEntity tableEntity)
        {
            try
            {
                var TableClient = GetAuthenticatedTableClient(tableName);

                await TableClient.AddEntityAsync(tableEntity);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }

Environment:

Name and version of the Library package used: Azure.Data.Tables 3.0.0-beta.2
Hosting platform or OS and .NET runtime version (dotnet --info output for .NET Core projects):.NET SDK (reflecting any global.json):
Version:   5.0.100-rc.1.20452.10
Commit:    473d1b592e

Runtime Environment:
OS Name:     Windows
OS Version:  10.0.20226
OS Platform: Windows
RID:         win10-x64
Base Path:   C:\Program Files\dotnet\sdk\5.0.100-rc.1.20452.10\
Host (useful for support):
Version: 5.0.0-rc.1.20451.14
Commit:  38017c3935
.NET SDKs installed:
5.0.100-rc.1.20452.10 [C:\Program Files\dotnet\sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 3.1.7 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.0-rc.1.20451.17 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 3.1.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.0-rc.1.20451.14 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.1.7 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 5.0.0-rc.1.20452.2 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

Hi @KalyanChanumolu-MSFT  - Thanks for the feedback.
This is expected behavior when specifying the TableEntity by its interface only. The ITableEntity interface is not enough information to satisfy the generic type constraint for the AddEntityAsync method on the TableClient.
Changing your example method as follows will allow it to compile as expected:
public static async Task AddEntitiesAsync<T>(string tableName, T tableEntity) where T : class, ITableEntity, new()
{
	try
	{
		var TableClient = new TableClient("DefaultEndpointsProtocol=https;AccountName=chrissprim;AccountKey=w2GsjnU25EwBrWG2mpF8n9BRuhJP3EzbaoLoM/JBlxP246q1jDKWGVvF041/Czrf7C2iIGmhDd5EeMtlvTh9dA==;EndpointSuffix=core.windows.net", "githubbug");

		await TableClient.AddEntityAsync(tableEntity);
	}
	catch (Exception ex)
	{
		Console.WriteLine(ex.Message);
	}
}

Does that approach work for your scenario?

@christothes Thank you.
Although we would need to change our existing methods a bit, this seems cleaner and will work.
Closing the bug.

Thanks @KalyanChanumolu-MSFT. Just for some more context, we could have also addressed this by enforcing an abstract base class for the TableEntity type, however our thought was that this places more restrictions on existing code that would need to not only be decorated with the ITableInterface but also derive from our base class. This approach allows existing classes not to change any possible base classes they may already be using.

Thanks @christothes
This works.
I just started porting to the new SDK's from the Fluent libraries and will post more bugs/feedback.


[core] Polish the nav logic

There are two commits in this PR. The first one is cleanup that we should go in.
A second is experimentation. I'm trying point 2. of https://github.com/mui/material-ui/pull/32707#issuecomment-1134844197 out. At least so we have a reference point that can be checked:
https://user-images.githubusercontent.com/3165635/173244770-9fe8cb8f-d424-472a-a846-eb2e5a5857f6.mov
It feels strange, do we want to move forward with it? Maybe not
https://deploy-preview-33125--material-ui.netlify.app/

I'm okay with not moving forward with it 😬 I get that we could use this moment to have a brief explanation of the product but I just feel like it gets too clumsy. Would keep it simple!

@danilo-leal The main issue I have with the PR's version is that it optimizes for new users. As an existing user, I find it frustrating to have a layout shift/distraction each time I want to quickly go to the docs I care about. It's not clear to me if this is a step forward or backward, I don't know. Did you try this exact pattern in the past or another variation of it? To decide, I would propose that we have more people on the team to try the UX and see how they feel about it.

Off topic
I can never go to the MUI Base and MUI System docs, sometimes can't go to the Joy UI docs. See the video for why:
https://user-images.githubusercontent.com/3165635/173550936-4dd83683-982b-48d8-84ae-08542ecf755c.mp4

Off topic
I can never go to the MUI Base and MUI System docs, sometimes can't go to the Joy UI docs. See the video for why

I was going to add the same comment, maybe we should increase the delay for closing the popup?

Alright, I have reverted the second commit, so this PR is now a "core" polish change. Maybe the actual solution would be more about this pattern 🤷♂:

I was going to add the same comment, maybe we should increase the delay for closing the popup?

Or implement the magic triangle 🪄 https://bjk5.com/post/44698559168/breaking-down-amazons-mega-dropdown 😁


Update geeksay.js

Added quote and translation 🤓

Thanks @lanzosuarez! 👍
Welcome to the world of open-source. ❤


updateProductImage function not showing in source

The javascript function titled "updateProductImage" is referenced in the documentation however I am not finding it anywhere in the source code

@iyerushalmi Can you point me to which documentation you're talking about?


The color of the last draw is darker

Description

open the rdc file, The color of the last draw is darker. What is the reason?

Steps to reproduce

Open the rdc file and click the last draw

Environment

RenderDoc version: RenderDoc_1.11_64.msi
Operating System: win10
Graphics API: OpenGL ES 3.2

001.zip

Running GL replay on: Qualcomm / Adreno (TM) 509 / OpenGL ES 3.2<EMAIL_ADDRESS>

The final draw samples from a texture that's R8G8B8A8_SRGB but then writes out to the backbuffer as R8G8B8A8_UNORM without any sRGB correction. The backbuffer is always implicitly interpreted as sRGB, thus there's a missing correction. If it were to write out R8G8B8A8_SRGB to the backbuffer it would look correct.


[Issue]: Error while installing rocm-bandwidth-test package on ubuntu 22.04 with rocm 6.0.2

Problem Description
rocm-bandwidth-test package is having issues while installing
ERROR Details
testsystem:/opt/rocm/bin$ sudo apt install rocm-bandwidth-test
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
libevent-2.1-7 libevent-dev libevent-extra-2.1-7 libevent-openssl-2.1-7 libevent-pthreads-2.1-7 libpmix-dev libpmix2
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
hsa-rocr rocm-core
The following NEW packages will be installed:
hsa-rocr rocm-bandwidth-test rocm-core
0 upgraded, 3 newly installed, 0 to remove and 120 not upgraded.
Need to get 893 kB of archives.
After this operation, 8,965 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 https://repo.radeon.com/rocm/apt/6.0.2 jammy/main amd64 rocm-core amd64 <IP_ADDRESS>002-115~22.04 [9,034 B]
Get:2 https://repo.radeon.com/rocm/apt/6.0.2 jammy/main amd64 hsa-rocr amd64 <IP_ADDRESS>002-115~22.04 [823 kB]
Get:3 https://repo.radeon.com/rocm/apt/6.0.2 jammy/main amd64 rocm-bandwidth-test amd64 <IP_ADDRESS>002-115~22.04 [60.2 kB]
Fetched 893 kB in 1s (795 kB/s)
Selecting previously unselected package rocm-core.
(Reading database ... 310309 files and directories currently installed.)
Preparing to unpack .../rocm-core_<IP_ADDRESS>002-115~22.04_amd64.deb ...
Unpacking rocm-core (<IP_ADDRESS>002-115~22.04) ...
dpkg: error processing archive /var/cache/apt/archives/rocm-core_<IP_ADDRESS>002-115~22.04_amd64.deb (--unpack):
trying to overwrite '/opt/rocm-6.0.2/.info/version', which is also in package rocm-core6.0.2 <IP_ADDRESS>002-115~22.04
Selecting previously unselected package hsa-rocr.
Preparing to unpack .../hsa-rocr_<IP_ADDRESS>002-115~22.04_amd64.deb ...
Unpacking hsa-rocr (<IP_ADDRESS>002-115~22.04) ...
dpkg: error processing archive /var/cache/apt/archives/hsa-rocr_<IP_ADDRESS>002-115~22.04_amd64.deb (--unpack):
trying to overwrite '/opt/rocm-6.0.2/lib/libhsa-runtime64.so.1.12.60002', which is also in package hsa-rocr6.0.2 <IP_ADDRESS>002-115~22.04
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Selecting previously unselected package rocm-bandwidth-test.
Preparing to unpack .../rocm-bandwidth-test_<IP_ADDRESS>002-115~22.04_amd64.deb ...
Unpacking rocm-bandwidth-test (<IP_ADDRESS>002-115~22.04) ...
Errors were encountered while processing:
/var/cache/apt/archives/rocm-core_<IP_ADDRESS>002-115~22.04_amd64.deb
/var/cache/apt/archives/hsa-rocr_<IP_ADDRESS>002-115~22.04_amd64.deb
needrestart is being skipped since dpkg has failed
E: Sub-process /usr/bin/dpkg returned an error code (1)
Operating System
ubuntu 22.04
CPU
AMD EYPC
GPU
AMD Instinct MI210
ROCm Version
ROCm 6.0.0
ROCm Component
No response
Steps to Reproduce
sudo apt install rocm-bandwidth-test
(Optional for Linux users) Output of /opt/rocm/bin/rocminfo --support
No response
Additional Information
No response

Hi @GowriShankarEAAS, could you please try uninstalling ROCm with sudo amdgpu-install --uninstall --rocmrelease=all .
Then reinstall ROCm sudo amdgpu-install --usecase=rocm and run sudo apt install rocm-bandwidth-test.

@GowriShankarEAAS Please let us know if @harkgill-amd suggestions above resolved your issue. Thanks!

Closing this ticket out for now. @GowriShankarEAAS, if you still encounter the issue after a fresh install of ROCm, please @ me and I will re-open the ticket. Thanks!


Export friends list

To make creating clan lists on websites such as CML or Temple a lot easier,
an export friends list into notepad which is then c+p into the XP tracking websites. I believe currently for clans they'd have to manually type out X amount of members from in game friends list to 3rd party XP tracker.
hope this is detailed enough,
ty

This is already available in an external plugin, made by PyriteTurtle.
https://github.com/MarbleTurtle/FriendsExporter

Works very well.


[Feature request] dash in jsx

Although i'm not sure if it's possible but It would be nice to have dash support in jsx elements and jsx props:
Use cases:
elements:
<amp-img></amp-img> // amp web components

props:
<div data-testid="foo" /> // data-* props

I guess that doable for elements, but the current way attributes are defined in ReasonReact would prevent custom props from being used as-is

I'm not 100% sure if this is a good idea. It would definitely add yet another concept to jsx and is pretty inconsistent with punning:
// You can't do this
let data-testid = "foo"
<div data-testid />

data-* attributes aren't that common, would it be worth introducing extra rules?

I think they should be supported at some point.

@amiralies In the meantime for data attributes, you can do the following:
React.cloneElement(<div />, {"data-testid": "foo"})

This would be possible with escaped prop names, right? <div \"data-testid"="foo" />
Although this still wouldn't compile because the React div element doesn't have data-testid in its signature. That may be a separate issue.

This will most likely be solved in a future react-ppx update. Goal is to allow easy definition of data and aria attributes, and generally change the way how dom elements are being type checked.

This will most likely be solved in a future react-ppx update. Goal is to allow easy definition of data and aria attributes, and generally change the way how dom elements are being type checked.

any update this?


Clarify "what is the badge" when displaying a project's read-only form

When people add a badge, they normally add a link back to the specific badge entry.  However, people who follow the badge won't necessarily know what the badge is all about.
Modify the read-only version of the form to make clearer what the badge is all about (presumably a brief summary, with a hyperlink to more info).
This should probably be done along with #456.

I would also like the read-only mode to not even look like a form anymore but clearly show the project's MET criteria and the UNMET ones. There's no need to show "met/unmet/?" for all criterias etc.

I don't understand this comment.  If it shows MET and UNMET, then it shows the met/unmet for all criteria.  Besides, it's important to know which ones are unknown (?).
Are you just recommending a different grouping approach when it's read-only?  If so, that might make sense, but having a logical grouping is also useful, so I think it'd be better to make that an option.

Sorry, I expressed myself poorly. I meant to say that I don't think it needs to show all the alternatives MET/UNMET/?/NA etc for each criteria in read-only mode when we have marked one of them.
But yes, I also wouldn't mind a different grouping in read-only.

Oh, now I understand.  We could certainly do that. Do you think you would actually be any clearer?  My hope is that by seeing the options, it would be easy to understand the answers.

I think it's useful to show the alternatives, even in read-only mode, so I plan to leave that as-is.
We've made several tweaks to the intro, and at this point I think it's been made clearer.


Are models downloadable as zip archives from zenodo?

Hello @oeway,
quick question: I wanted to try one of the modelzoo compliant networks @constantinpape has trained, brought up to spec and uploaded it (via the bioimageio uploader as it says on zenodo): model.
I'm not sure I've overlooked it, but it seems that all files have to be downloaded separately? Or is the a secret download all button somewhere?
Cheers

You are right on spot, Tom also raised the same question: https://github.com/bioimage-io/bioimage.io/pull/104#issuecomment-859363275
The idea is to use the bioimage.io as the user interface and the user will click the packager icon to download. As a fallback, we will add a link to the zenodo page to bring the user back to the packager for downloading.

The idea is to use the bioimage.io as the user interface and the user will click the packager icon to download.

How close are we to having this (as well as the update button) on the main website? I think it would be important to have this for the course that @akreshuk @esgomezm @k-dominik are running end of June.

The idea is to use the bioimage.io as the user interface and the user will click the packager icon to download.

How close are we to having this (as well as the update button) on the main website? I think it would be important to have this for the course that @akreshuk @esgomezm @k-dominik are running end of June.

If it's only the packager, 30min to 1h of work needed. Do you see other major problem with the preview version of the upload feature?
Another questions, would it work if we stick with the sandbox.zenodo.org for the course? Since we cannot easily take down deposition on zenodo, we should not switch to the production server until we are fully ready.

If it's only the packager, 30min to 1h of work needed.

Awesome!

Do you see other major problem with the preview version of the upload feature?

No, I think we should go ahead and merge it.
There are still the two issues I have with firefox on my laptop and chromium, but I can just make separate issues for this once the PR is merged.

Another questions, would it work if we stick with the sandbox.zenodo.org for the course? Since we cannot easily take down deposition on zenodo, we should not switch to the production server until we are fully ready.

I think it's fine to stay on zenodo.sandbox for the course.

thx for the replies @oeway and @constantinpape. And of course for the solution, too :). sandbox.zenodo.org is fine!

FYI: I just fixed the model packager, and new uploaded models will contain a download package link in the description on zenodo. The download link is not implemented yet, but it's good to already insert links.
BTW, I will move this issue to bioimage.io repo since it's not related to the spec.
We have also this issue to keep track of the download all feature: https://github.com/bioimage-io/bioimage.io/issues/108


Question: How can I build use a gradle

Hi. I'm moltak. When I try to build a source use gradle, it was occurred 'No such property: nexusUsername for class: org.gradle.api.publication.maven.internal.ant.DefaultGroovyMavenDeployer' errors.
How can I fix it?

perfect

I'd put this in the top-level README


[STRMHELP-197] Update Global Watermark When Idle

overview
Update the global watermark for idle subtasks. This will avoid a deadlock state by enabling the RecordEmitter to emit records that were previously stuck in the emitQueue due to the lookahead. Emitting a record from the source will enable us to no longer be marked idle in the PeriodicWatermarkEmitter.
additional info
To get the global watermark, we need to communicate with the JM. The JobManagerWatermarkTracker is a WatermarkTracker that uses a GlobalAggregateManager to do so. This interface has 1 method updateGlobalAggregate. In order to get the global watermark without updating with the local watermark, and thus holding other subtasks back, we've modified the WatermarkAggregateFunction used by the GlobalAggregateManager to avoid updating the watermark value and lastUpdated value for the subtask by indicating a noOp field. Thus, when calculating the global watermark, the accumulator has not been modified.
Thank you very much for contributing to Apache Flink - we are happy that you want to help us improve Flink. To help the community review your contribution in the best possible way, please go through the checklist below, which will get the contribution into a shape in which it can be best reviewed.
Please understand that we do not do this to make contributions to Flink a hassle. In order to uphold a high standard of quality for code contributions, while at the same time managing a large number of contributions, we need contributors to prepare the contributions well, and give reviewers enough contextual information for the review. Please also understand that contributions that do not follow this guide will take longer to review and thus typically be picked up with lower priority by the community.
Contribution Checklist

Make sure that the pull request corresponds to a JIRA issue. Exceptions are made for typos in JavaDoc or documentation files, which need no JIRA issue.

Name the pull request in the form "[FLINK-XXXX] [component] Title of the pull request", where FLINK-XXXX should be replaced by the actual issue number. Skip component if you are unsure about which is the best component.
Typo fixes that have no associated JIRA issue should be named following this pattern: [hotfix] [docs] Fix typo in event time introduction or [hotfix] [javadocs] Expand JavaDoc for PuncuatedWatermarkGenerator.

Fill out the template below to describe the changes contributed by the pull request. That will give reviewers the context they need to do the review.

Make sure that the change passes the automated tests, i.e., mvn clean verify passes. You can set up Travis CI to do that following this guide.

Each pull request should address only one issue, not mix up code from multiple issues.

Each commit in the pull request has a meaningful commit message (including the JIRA id)

Once all items of the checklist are addressed, remove the above text and this checklist, leaving only the filled out template below.

(The sections below can be removed for hotfixes of typos)
What is the purpose of the change
(For example: This pull request makes task deployment go through the blob server, rather than through RPC. That way we avoid re-transferring them on each deployment (during recovery).)
Brief change log
(for example:)

The TaskInfo is stored in the blob store on job creation time as a persistent artifact
Deployments RPC transmits only the blob storage reference
TaskManagers retrieve the TaskInfo from the blob cache

Verifying this change
(Please pick either of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end deployment with large payloads (100MB)
Extended integration test for recovery after master (JobManager) failure
Added test that validates that TaskInfo is transferred only once across recoveries
Manually verified the change by running a 4 node cluser with 2 JobManagers and 4 TaskManagers, a stateful streaming program, and killing one JobManager and two TaskManagers during the execution, verifying that recovery happens correctly.

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no)
The serializers: (yes / no / don't know)
The runtime per-record code paths (performance sensitive): (yes / no / don't know)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (yes / no / don't know)
The S3 file system connector: (yes / no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

@sethsaperstein-lyft thanks for this amazing contribution. Can you just setup sometime with the reviews to go over the PR (since this seems very involved)? And make sure to ask everyone to review the PR before the meeting.

The changes LGTM! Left few comments on adding more logs and syncing the global watermark based on user provided config.

@sethsaperstein-lyft thanks for this amazing contribution. Can you just setup sometime with the reviews to go over the PR (since this seems very involved)? And make sure to ask everyone to review the PR before the meeting.

Absolutely! I'll try to set it up for early next week, post brownbag, since the brownbag will discuss the inner workings of the FlinkKinesisConsumer. We'll record so you don't miss it

/PTAL @maghamravi

LGTM!


Bind PackageServer to ephemeral port to avoid port conflicts

Here is my take on how to best solve the "flaky PackageServer tests" problem.
It is ready to be merged after #217 .
See commit message for details.
If you prefer a different solution, perhaps this can serve as inspiration.

@bioball Rebased and ready for review.

@bioball Ready from my side. See latest commit message for details. Quite happy with the cleanup.

We have an existing pattern of having unconfigured() and preconfigured() builders; see EvaluatorBuilder, ConfigEvaluatorBuilder, ValueMapperBuilder, etc. I think let's follow that.

According to the Javadoc, Executor "evaluates Pkl modules in a sandbox".
Does preconfiguring with System.getenv() and System.getProperties() make sense here?
And shouldn't granting file system and network access be an explicit decision?
Apart from adding unconfigured()/preconfigured(),
we could add builder().grantFileSystemAccess(rootDir).grantNetworkAccess().
Or we could stick to a basic builder for now.
Let me know how to proceed.

Let's still remove this, though; it adds some unnecessary brittleness to our tests.

Removed.
Just to clarify, this validation can't possibly cause brittleness. It prevents brittleness by catching the mistake of picking a well-known port as test port. Operating systems would never pick a well-known port as ephemeral port.

both are public APIs but expose flags that are only meant for test purposes (e.g. testMode, testPort added by this PR) and we call them "internal" in the doc comments.

There is a big difference: testMode is only useful for testing Pkl itself, whereas testPort is equally useful for testing third-party code that uses CliBaseOptions or HttpClient. But I won't fight over this one.

According to the Javadoc, Executor "evaluates Pkl modules in a sandbox".
Does preconfiguring with System.getenv() and System.getProperties() make sense here?
And shouldn't granting file system and network access be an explicit decision?

I don't see any issues with the set of options provided by preconfigured(). This is an opt-in behavior, and users are expected to know what preconfigured() means. It's actually not that different from using our evaluator in pkl-core (which is also a sandbox).

I've made 2 out of 3 requested changes and have squashed my commits. I'll leave any builder changes to you.

The executor API is typically meant for services that use Pkl as a "platform" that needs to evaluate 3rd party Pkl code. For instance, if you are a service that accepts Pkl files as configuration. And, like you said, in those cases, you wouldn't want to pass your own env vars or system properties to Pkl.
The core thing that the executor provides that ConfigEvaluator (or just Evaluator) don't is the ability to use multiple different Pkl versions for evaluation. The rest of the sandboxing is already part of Evaluator/ConfigEvaluator (e.g. allowed modules, allowed resources).
Thought about this a little more--yeah, there's probably not much of a use-case for ExecutorOptions#preconfigured(). I'm okay merging this as-is.


Black screen on ABR changes

Version
Media3 main branch
More version details
Issue appear with version 1.1.0 (OK with version 1.0.2)
Same on ExoPlayer, present on v2.19.0 and not with v.2.17.0
Devices that reproduce the issue
Problem is on our Box Vantiva/Technicolor (broadcom) but also reproduced on 2 differents Sony TVs.
Devices that do not reproduce the issue
Problem is not reproduced on Google TV, not on Nvidia Shield and not on Android Studio Emulator.
And also not reproduced on Samsung mobiles.
Reproducible in the demo app?
Yes
Reproduction steps

In the demo app, we need to set the initial bitrate estimate to 1 MBPs (to ensure the player will change profile after a while). I use the default band width meter that we can pass to the exoplayer builder.
Play the stream that I sent you by mail

Expected result
The media start with a low profile. After a while it play with the highest profile and the transition should be fluent.
Actual result
The media start with a low profile. After a while it play with the highest profile but during the transition we have a black screen.
Media
I'll send you the media to test.
Bug Report

[ ] You will email the zip file produced by adb bugreport to<EMAIL_ADDRESS>after filing this issue.

Hello,
I've found the problematic commit: https://github.com/androidx/media/commit/8a73d8d3fe2290a11c86a414dd000632589b6215.
If I compile a version and I revert all lines of this commit, the problem is solve.
Would you like me to do some special tests to help your analysis?

The problem is in NalUnitUtil class, in parseSpsNalUnitPayload function.
When I comment these lines :
`      if (data.readBit()) { // overscan_info_present_flag
data.skipBit(); // overscan_appropriate_flag
}
if (data.readBit()) { // video_signal_type_present_flag
data.skipBits(3); // video_format
colorRange =
data.readBit() ? C.COLOR_RANGE_FULL : C.COLOR_RANGE_LIMITED; // video_full_range_flag
if (data.readBit()) { // colour_description_present_flag
int colorPrimaries = data.readBits(8); // colour_primaries
int transferCharacteristics = data.readBits(8); // transfer_characteristics
data.skipBits(8); // matrix_coeffs
      colorSpace = ColorInfo.isoColorPrimariesToColorSpace(colorPrimaries);
      colorTransfer =
          ColorInfo.isoTransferCharacteristicsToColorTransfer(transferCharacteristics);
    }
  }

`
the problem no longer appears.

Mail sent with requested informations.
Thanks a lot.

Thanks. Assuming you still have the local checkout, could you try to comment out all four maybeSet... calls in this method: https://github.com/androidx/media/blob/d13a0f4ec62ca092b79746a5725b62a3244cc5b4/libraries/common/src/main/java/androidx/media3/common/util/MediaFormatUtil.java#L256 to see if that fixes your problem?

No, the problem stills occur with these commented lines.

Thanks for the confirmation and sharing the bugreports! I think I see the problem now and will share another fix proposal soon (sorry for constantly asking to test things out, but I don't have a reproduction setup myself).

The commit linked above should fix the problem. Could you verify this again with your setup? Thanks!

Yes, if I compile on the main branch I don't see the problem. Thanks a lot !


can't open './scripts/setup.sh': No such file or directory

I still get the same problem as mentioned in the issue: #74

The variables seems to be fine, the mounting directory is shared in windows.
The mount directory is also fine in the docker setup container.

And even in the environments the value gets used.

Any idea?
Thanks,
Bálint

Wow solved it.
So the script was right in my case there wasn't setup.sh what the compose image required. Problem is that I had a cute firewall which blocked port 445 - thus make any shares inaccessable on the docker vm.
Yey!


Increasing production amount of subfloor to create item as byproduct crashes game for host.

Problem Description
The mod Factory Planner (1.1.78) caused a non-recoverable error.
Please report this error to the mod author.

Error while running event factoryplanner::Custom event (ID 263)
factoryplanner/ui/main/production_handler.lua:220: attempt to perform arithmetic on field 'percentage' (a nil value)
stack traceback:
  factoryplanner/ui/main/production_handler.lua:220: in function '?'
  factoryplanner/ui/dialogs/generic_dialogs.lua:211: in function 'dialog_close'
  factoryplanner/ui/base/modal_dialog.lua:187: in function 'exit'
  factoryplanner/ui/event_handler.lua:216: in function <factoryplanner/ui/event_handler.lua:189>
  [C]: in function 'raise_event'
  factoryplanner/util/raise.lua:27: in function 'close_dialog'
  factoryplanner/ui/event_handler.lua:54: in function 'special_handler'
  factoryplanner/ui/event_handler.lua:133: in function <factoryplanner/ui/event_handler.lua:114>
stack traceback:
  [C]: in function 'raise_event'
  factoryplanner/util/raise.lua:27: in function 'close_dialog'
  factoryplanner/ui/event_handler.lua:54: in function 'special_handler'
  factoryplanner/ui/event_handler.lua:133: in function <factoryplanner/ui/event_handler.lua:114>

Logfile: factorio-current.log
Mods: mod-list.json
Rename to mod-settings.dat: mod-settings.dat.txt
Save File: Vales SaLANi Extended.zip
Screenshot of action before crash: Value was changed to 200, error occured on pressing Confirm

Reproduction

Plan a factory for tech cards that require rocket fuel
Plan rocket fuel in subfloor
Increase automatically calculated amount of fule to create it as byproduct
Game Crashes for Host, Kicking all players

Hello, appreciate the very nice bug report, and sorry for the late reply. This feature was actually (temporarily probably) removed for 2.0, so I'll consider this resolved, as a future implementation will be all-new.


Cannot access CLI from Fish shell

I'm having an issue with running turso from fish shell. When I type turso in fish, I get turso: command not found. However, when I switch to bash shell, turso works fine and shows the expected output. Here is the transcript of my terminal session:
# Fish

me at Work in ~/projects
↪ turso
 turso: command not found
me at Work in ~/projects
↪ bash

# Bash

me@Work:~/projects> turso
Turso CLI

Usage:
  turso [command]

Available Commands:
  auth        Authenticate with Turso
  config      Manage your CLI configuration
  contact     Reach out to the makers of Turso for help or feedback
  db          Manage databases
  dev         starts a local development server for Turso
  group       Manage your database groups
  help        Help about any command
  org         Manage your organizations
  plan        Manage your organization plan
  quickstart  Turso quick quickstart.
  relax       Sometimes you feel like you're working too hard... relax!
  update      Update the CLI to the latest version

Flags:
  -c, --config-path string                  Path to the directory with config file
  -h, --help                                help for turso
      --no-multiple-token-sources-warning   Don't warn about multiple access token sources
  -v, --version                             version for turso

Use "turso [command] --help" for more information about a command.

It doesn't look like a turso problem because fish doesn't even find the binary.
I'm not aware of fish internals, but I'd start debugging this by taking a look at your $PATH variable in both shells.
What probably is happening is that you've added the folder in which turso is installed to your PATH on some scrip that only bash runs (e.g. .bashrc).
You can find turso path by running which turso on bash.
You should also add it to some script fish runs on startup.
Let me know if that helps!
I'll close the issue, but feel free to reopen if you can't move forward or find more info.


[Bug]   web socket error

Describe the bug
Error will be reported when adding proxy rules using Clash for Windows
Vrcat ban is my VPN, so I added a rule to clash to prevent it from proxy for vrcx
To Reproduce

Expected behavior
Just this error occurred, but there are currently no usage issues
Version 2023.11.06

you will also have to whitelist the websocket URL
wss://pipeline.vrchat.cloud/

您还必须将 Websocket URL 列入白名单
wss://pipeline.vrchat.cloud/

非常感谢


Update Route Examples to apiv2

Some api calls, such as /teams/count dont work in /api/ but work in /apiv2/
Could /api/teams/count be updated to /apiv2/teams/count in the route examples, along with its counterparts?

API Docs have now been updated, will add examples in the future.


API key needed for this system

Now you need to get an API key to make this system work. Can anyone take look on any workarounds or make a fix to get it working with the API key? Otherwise I'll do it in a few days when I get time.

If you want you can create a Pull Request about it, if you know the solution.
I'm really happy if you would like to improve this project.
Let me know if you need some help about it

If you could do it to get it working, would be better hehe

Ok, could you please explain well what is your problem and I'll try to fix it.
Thanks

The API which I've installed 8months ago on the last push has changed and now needs to have an API key to be able to use for free.
You have 2 options: make the new API compatible adding the API key on the post, or find a new API and make it compatible.
Since it is still free, i'd go for the first option.
Thanks

De: Alessandro Minoccheri<EMAIL_ADDRESS>Enviado: terça-feira, 19 de fevereiro de 2019 13:07
Para: AlessandroMinoccheri/codeigniter-currency-converter
Cc: dudztroyer; Author
Assunto: Re: [AlessandroMinoccheri/codeigniter-currency-converter] API key needed for this system (#10)
Ok, could you please explain well what is your problem and I'll try to fix it.
Thanks
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/AlessandroMinoccheri/codeigniter-currency-converter/issues/10#issuecomment-465195094, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AZd8OwM2Np3TNk49ldFnyvWp73yvfc0Tks5vPCE-gaJpZM4bDPu4.

I have released version 1.4.0, try please an let me know if there is some problem @dudztroyer

Did you try it?


Fix #25

Is this a good fix for #25 @mlubin @joehuchette ?

How do we feel about this?

I guess we didn't feel too good about this.


Drop tokio requirement for object_store crate

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
I'm a library developer. I would like my library to have async code, but not force developers into a specific async runtime (smol, tokio, etc). My library depends on object_store, which uses reqwest, which requires tokio to run:

https://github.com/seanmonstar/reqwest/issues/1108
https://github.com/seanmonstar/reqwest/discussions/1961

My library can't use object_store without forcing all my users to adopt tokio as their async runtime.
Describe the solution you'd like
I think object_store should drop reqwest as a requirement for its cloud integrations. Perhaps adopt a different HTTP client that works with other async reactors as well?
Describe alternatives you've considered
We looked at dropping our dependency on object_store, but it's such a good library.
We are currently using futures-rs's block_on, but we get:
there is no reactor running, must be called from the context of a Tokio 1.x runtime

It would be a fairly major undertaking to decouple the various implementations from reqwest, as whilst efforts have been made to avoid it leaking overly out into the public APIs, the exposed feature set is pretty broad and there is a significant amount of client code. At the very least I would expect subtle behaviour changes between different client implementations.
I have filed https://github.com/apache/arrow-rs/issues/6055 to track making the dependency on tokio optional, and this would then allow interested parties to build third-party implementations that expose the same ObjectStore trait for their runtime of choice.

I think starting with https://github.com/apache/arrow-rs/issues/6055  is a great first step -- that way the crate could be used without tokio.
We could then have a subsequent discussion on how best to provideObjectStore trait impls for various backing stores without tokio (e.g. https://github.com/apache/arrow-rs/issues/6056 or improving reqwest upstream, etc)

In case anyone cares, here is a related twitter https://twitter.com/andrewlamb1111/status/1812442468853444855


change "Resource not found" msg for easier copy-pasting

Here's a very small change to nltk/data.py that allows easier copy-pasting of nltk.download() to the Python prompt; something I do on a regular basis.
(Also, novice users might think the full stop is part of the Python expression being displayed.)

Good idea, thanks.


Moving MD5 hashing into it's own file

Applied in p4 (CL 181567) & published to repo here.
Thanks @bnbowman.

@bnbowman: please note I did implement this in a .cpp file, so our edits are not 1-for-1. But the API is exactly compatible


[MXNet-1375][Fit API]Added RNN integration test for fit() API

Description
This PR adds nightly RNN Integration test using Gluon fit() API.
JIRA epic can be found here: https://issues.apache.org/jira/browse/MXNET-1375
Checklist
Essentials
Please feel free to remove inapplicable items for your PR.

[x] The PR title starts with MXNET-1375,
[x] Changes are complete (i.e. I finished coding on this PR)
[ ] All changes have test coverage:
Unit tests are added for small changes to verify correctness (e.g. adding a new operator)
Nightly tests are added for complicated/long-running ones (e.g. changing distributed kvstore)
Build tests will be added for build configuration changes (e.g. adding a new build option with NCCL)
[x] Code is well-documented:
For user-facing API changes, API doc string has been updated.
For new C++ functions in header files, their functionalities and arguments are documented.
For new examples, README.md is added to explain the what the example does, the source of the dataset, expected performance on test set and reference to the original paper if applicable
Check the API doc at http://mxnet-ci-doc.s3-accelerate.dualstack.amazonaws.com/PR-$PR_ID/$BUILD_ID/index.html
[x] To the my best knowledge, examples are either not affected by this change, or have been fixed to be compatible with this change

Changes

[x] test_sentiment_rnn: Test the RNN model on CPU using Synthetic data and on GPU using IMDB dataset.

Comments

If this change is a backward incompatible change, why must this change be made.
Interesting edge cases to note here

@roywei @nswamy @abhinavs95

@mxnet-label-bot add [Gluon, Test]


Add systemd packaging for Felix for Ubuntu/Debian

Just discovered that I haven't presented this for merging yet...

LGTM but I think it's the sort of change that needs testing (on Trusty and Xenial) more than review.

This has passed testing on Trusty now, and I've been testing it for a while for Xenial, so I think it's good for merging now.


Support video thumbnail

Hi,
Currently, the thumbnail is just a picture.
I want it to be a video.
It means that the videos are played before opening.
Like TikTok and Google Photos:
https://user-images.githubusercontent.com/23485114/231945262-8354aef4-ff95-469d-9df7-b5a81a655fd4.mp4
Yes, it uses a lot of battery, but I don't care.
Thanks.

Duplicate:

#20


limit community building concurrency

[!IMPORTANT]
Limits concurrency in build_communities() to 10 using asyncio.Semaphore in community_operations.py.

Concurrency Limiting:

Introduces MAX_COMMMUNITY_BUILD_CONCURRENCY constant set to 10 in community_operations.py.
Adds asyncio.Semaphore to build_communities() to limit concurrency to 10.
Wraps build_community() calls in limited_build_community() to enforce concurrency limit.

This description was created by  for 4b3a0d93adc069a4e3b32bfd82777e98a737d154. It will automatically update as commits are pushed.

CLA Assistant needs a kick. Will investigate further when I get a moment.


feat: migrate to sveltekit

Look like the build command still uses rollup over vite?
Can you try:
https://github.com/whizzes/svelte-notifications/blob/main/package.json#L4-L14


[2.x] Generate authors found in blog posts

Okay this kinda adds a bunch of complexity, but realized the only place I currently care about this is so unconfigured authors can show up in author listing https://github.com/hydephp/develop/pull/1843, so we can just handle it there.


Fixes  #4242

Reference Issue
Fixes #4242
What does this implement/fix? Explain your changes.
Detect the cases when enlargedEnv is empty and manually create a one-atom molecule instead of calling PathToSubmol() (see https://github.com/rdkit/rdkit/issues/4242#issuecomment-1080544357)
Any other comments?
Tested on a variety of cases. Fingerprints with no bonds are now displayed correctly. E.g.:

@eguidotti thanks for the contribution!

Happy to help! Thank you for this great framework!


extra space added.

Repro:
Have a class function like:
  static makeV1TableHeadings(headings) {

  }

Run "Add doc comments."
View the result:
  /**
   * @param  {} headings
   */

Note there's an extra space before the curly brackets.

@paulirish I suggest to use built-in JSDoc generation support

not bad!! alright then, works for me. :)

The JSDoc snippet does generate some trailing whitespace, however. :)


Fix broken multiple mounts.

- What is it good for
There is a nasty bug on the Grape::API::Instance#add_head_not_allowed_methods_and_options_methods method which causes a FrozenError when an API class is mounted multiple times. I'm not quite sure why the mounts happens multiple times at my setup. My application includes:
1.3.2  grape
0.8.0  grape-entity
1.3.0  grape-jwt-authentication
2.1.0  grape-route-helpers
1.1.0  grape-swagger
0.3.4  grape-swagger-entity
0.3.1  grape-swagger-rails

This is the actual stack trace of the issue:
FrozenError (can't modify frozen Array):

grape (1.3.2) lib/grape/api/instance.rb:208:in `block (2 levels) in add_head_not_allowed_methods_and_options_methods'
grape (1.3.2) lib/grape/api/instance.rb:199:in `each'
grape (1.3.2) lib/grape/api/instance.rb:199:in `block in add_head_not_allowed_methods_and_options_methods'
grape (1.3.2) lib/grape/api/instance.rb:197:in `each'
grape (1.3.2) lib/grape/api/instance.rb:197:in `add_head_not_allowed_methods_and_options_methods'
grape (1.3.2) lib/grape/api/instance.rb:156:in `initialize'
grape (1.3.2) lib/grape/api/instance.rb:52:in `new'
grape (1.3.2) lib/grape/api/instance.rb:52:in `compile'
grape (1.3.2) lib/grape/api/instance.rb:85:in `block in compile!'
grape (1.3.2) lib/grape/api/instance.rb:85:in `synchronize'
grape (1.3.2) lib/grape/api/instance.rb:85:in `compile!'
grape (1.3.2) lib/grape/api/instance.rb:65:in `call'
grape (1.3.2) lib/grape/api.rb:68:in `call'

- What I did
The offending line at the Grape::API::Instance just assigns a frozen array constant to the routing settings. When using CONST.dup we can simply unfreeze it for later changes.
# Causes FrozenError's when later touched by +#<<+ for example
route_settings[:methods] = Grape::Http::Headers::SUPPORTED_METHODS

- A picture of a cute animal (not mandatory but encouraged)

You still have to remove the manually added # rubocop:enable... in the code, I am afraid -a doesn't get rid of them.

I merged this, thank you.

Thank you!


blacklisted throwing knifes from pneumatic cannon

About the PR

Disallowed throwing knifes from cannon
Why / Balance

[#26610]
Technical details

No code, only YML
Media

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

I'm not fully sure the reach of the tag "CannonRestrict". Should not be an issue.
Changelog

:cl: tweak: Throwing knives can no longer be placed in pneumatic cannon.

Can we nerf it rather than blacklist it?

nerf it all around? or nerf just the cannon?

nerf it all around? or nerf just the cannon?

It just seems like a knife would be a reasonable thing to shove into a cannon if you intend to harm someone.

I agree with this one, throwing knifes are the first real high skill syndie item imo and the cannon trick feels cheap.

I'll let the powers that be decide to merge or close this. It was super easy toblacklist.
to nerf it for just the cannon would take, me personally, a lot. If it closes without being merged i'll look into a nerf.


Docs: fix README.md ad-hoc

Description of your changes

I have:

[x] Read and followed KubeVela's contribution process.
[ ] Related Docs updated properly. In a new feature or configuration option, an update to the documentation is necessary.
[ ] Run make reviewable to ensure this PR is ready for review.
[ ] Added backport release-x.y labels to auto-backport this PR if necessary.

How has this code been tested

Special notes for your reviewer

Could you help fix the DCO? To sign your identity in the commit? Once the CI passes we can merge this PR into master then branch.

Okay, the DCO has passed.


Asynchronous interruptions can cause incorrect block caching.

Hello Markus. I think I've found a libipt bug here.
Here's a ptxed snippet using --block-decoder --block:end-on-call --block:end-on-jump --block:show-blocks
...
[block]
00007ffd317b1a20  jle 0x7ffd317b1b1d
[block]
00007ffd317b1b1d  test edi, edi
00007ffd317b1b1f  lea r13, ptr [rbp-0x1c]
00007ffd317b1b23  jnz 0x7ffd317b1b08
[block]
00007ffd317b1b25  mov r12d, dword ptr [rbx]
[block]
00007ffd317b1b28  test r12b, 0x1
00007ffd317b1b2c  jnz 0x7ffd317b1c2c
[block]
00007ffd317b1b32  mov eax, dword ptr [rip-0x2ab4]
00007ffd317b1b38  mov dword ptr [rbp-0x1c], eax
00007ffd317b1b3b  mov rax, qword ptr [rip-0x2a9a]
...

Notice how the block starting at 00007ffd317b1b25 has been split in two after a (seemingly innocuous) mov instruction.
It just so happens that this is the second time we've been at address 00007ffd317b1b25. Let's look at the first time:
[block]
00007ffd317b1b25  mov r12d, dword ptr [rbx]
[disabled]
[resumed]
[block]
00007ffd317b1b28  test r12b, 0x1
00007ffd317b1b2c  jnz 0x7ffd317b1c2c
[block]
00007ffd317b1b32  mov eax, dword ptr [rip-0x2ab4]
00007ffd317b1b38  mov dword ptr [rbp-0x1c], eax
...

So the first time we were here, there was an asynchronous interrupt after the mov causing an otherwise contiguous block to be split. It appears that this split gets cached and every time we see this code, it will appear split regardless of whether an interrupt actually occurred.
We can prove this theory by diffing the ptxed output before and after adding --iscache-limit 0 to the ptxed invocation:
--- before      2018-04-24 15:24:41.774672502 +0100
+++ after       2018-04-24 15:24:42.106672747 +0100
@@ -775,7 +775,6 @@
 00007ffd317b1b23  jnz 0x7ffd317b1b08
 [block]
 00007ffd317b1b25  mov r12d, dword ptr [rbx]
-[block]
 00007ffd317b1b28  test r12b, 0x1
 00007ffd317b1b2c  jnz 0x7ffd317b1c2c
 [block]

I found this because it was causing issues in my hwtracer test suite. hwtracer doesn't yet use a cache, so it disagreed with ptxed (it's taken me all day to figure out what's going on!).
I think it's fine to split a block if it was interrupted, but not if it wasn't. My use case entails enumerating all of the start addresses of the blocks a trace passes through. I can easily ignore a spurious block if I see the async_disable event in the packet stream. However I cannot know if a block is spurious if there is no event, as with the case above.
I think the fix is to only cache a block if it wasn't interrupted. If a block was interrupted, then you can't look in the cache either.
Thanks

Hello Edd,
This is an interesting observation.  Thanks for reporting it.
I agree that we do not want to split blocks without a need and we should certainly not cache block splits.  Note, however, that we do not give a guarantee that a block only ends at an event or at a branch.  It may be split for other reasons.  Users should not make assumptions on how instructions are split into blocks other than that a block will end at an event and, if requested, at a call or jump.
I still think this is a bug (even though the output is correct) and I'd like to understand what's going on.  Would you share the trace and the traced binaries with me?

I think the fix is to only cache a block if it wasn't interrupted.

We should already be doing that.  The event flow should neither use nor add to the cache.
thanks,
markus.

Hi Markus,
Here's a tarball containing everything you need:
http://theunixzoo.co.uk/random/libipt_issue43.tar.bz2

Note, however, that we do not give a guarantee that a block only ends at an event or at a branch. It may be split for other reasons.

What kinds of reasons are we talking here?
Perhaps we should guarantee that ptxed outputs the same with and without a cache at the very least?

Hi Markus,
Just wondering if you managed to figure out what was going on? Any joy?

Hello Edd,
Here's what happens:  the first time we encounter this, there's an event ahead of us.  We ignore the cache on our way to the event location.  And we start filling the cache after the event at 00007ffd317b1b28.
[block 6a]
00000000000000a1  00007ffd317b1b25  mov r12d, dword ptr [rbx]
[00000000000000a1  disabled]
[00000000000000a4  resumed]
[block 6b]
00000000000000a4  00007ffd317b1b28  test r12b, 0x1
00000000000000a4  00007ffd317b1b2c  jnz 0x7ffd317b1c2c

The next time we encounter this, we start filling the cache at 00007ffd317b1b25.  On the recursive call, we find a valid cache entry for 00007ffd317b1b28 and return.  On the return flow, we extend the cache entry we found to get a cache entry for 00007ffd317b1b25.  To keep the algorithm simple, we do not try to proceed further (although we could).  This results in the split block you pointed out.
[block 82]
00000000000000e1  00007ffd317b1b25  mov r12d, dword ptr [rbx]
[block 83]
00000000000000e1  00007ffd317b1b28  test r12b, 0x1
00000000000000e1  00007ffd317b1b2c  jnz 0x7ffd317b1c2c

The next time we encounter this, we find a valid cache entry for 00007ffd317b1b25 that brings us directly to the conditional branch at the end of the block.
[block ec]
0000000000000139  00007ffd317b1b25  mov r12d, dword ptr [rbx]
0000000000000139  00007ffd317b1b28  test r12b, 0x1
0000000000000139  00007ffd317b1b2c  jnz 0x7ffd317b1c2c

Had we seen the complete block without an event the first time, we would have populated the cache for the entire block and it would not have been split.
When setting the cache limit to zero, we made the decoder forget the cache after the event so when it encountered 00007ffd317b1b25 it started filling the cache for the entire block and we didn't see a split block.  We might as well have seen the split if we had not switched sections in-between.
It is not a bug.
This shows nicely why I do not want to give guarantees on the size of blocks.  We accepted splitting a block in order to simplify the algorithm.  This typically affects only one pt_blk_next() call.  The next time we encounter this IP, the cache has been filled and we do not split the block again.
regards,
markus.

Hi Markus,
Thanks for looking into this, and for the explanation.
I'm now questioning what libipt defines as a block, as It's not quite what I expected. If the block decoder is not guaranteed to return complete blocks, then what is the benefit of using the block decoder over using the instruction decoder and manually reconstituting blocks?
Since I really need complete blocks that end with only control flow deviations, unless I can convince you otherwise, I'm going to have to write my own logic to reconstitute blocks from instructions (or partial blocks).
I suppose I could achieve what I need by disabling the libipt cache at the cost of performance. Sadly in a JIT this is pretty undesirable. We need it to be as fast as possible.
Are you aware of any other PT instruction stream decoders that might do what I need?
(P.S. I dropped you an (unrelated) email a few days ago on your Intel email address. I was wondering if it arrived?)
Thanks again.

Hello Edd,
The benefit of using the block decoder is performance as long as you don't need to examine every instruction in detail.  It is guaranteed that instructions in a block can be decoded without trace information and, if the respective option is set, that certain types of instructions end a block.
Setting the iscache limit to zero won't help.  If we had not switched image sections after the event, we would have seen the same behaviour - the current section is always cached.  The cache would be discarded when switching sections and we'd start anew when switching back to this sections.
Long sequences of sequential code or switching image sections may also result in the block being split.
The iclass field in struct pt_block gives the instruction class of the last instruction in the block.  You could check that to determine whether the block is 'complete'.  You could try to merge blocks until you get one that ends with a branch (or event).
regards,
markus.
PS: I replied about an hour ago.

Hi,

The benefit of using the block decoder is performance

I see. Sounds like I should stick with it then.

The iclass field in struct pt_block gives the instruction class of the last instruction in the block. You could check that to determine whether the block is 'complete'. You could try to merge blocks until you get one that ends with a branch (or event).

This sounds pretty palatable, so I think I'm going to have a go at doing that. I wonder if there is a reliable way to cause a block to be split so that I can generate a test case for my new functionality...
I'll close this now. Thanks again for your help.

PS: I replied about an hour ago.

Thanks!


pull request for e2e test at 12/25/2016 16:56:09

:white_check_mark: Validation status: passed
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.


[Typing] Functions (and Protocols) as dependencies - and dependees?

The type annotation for Binder.bind is as follows:
def bind(
    self,
    interface: Type[T],
    to: Union[None, T, Callable[..., T], Provider[T]] = None,
    scope: Union[None, Type['Scope'], 'ScopeDecorator'] = None,
) -> None:
    ...

The following test case however proves, that Callables are also a valid dependency:
def test_injector_can_inject_a_protocol():
    class Func(Protocol):
        def __call__(self, a: int) -> int:
            ...

    def func_matching_protocol(a: int) -> int:
        return a + 1

    def configure(binder: Binder):
        binder.bind(Func, to=InstanceProvider(func_matching_protocol))

    inj = Injector([configure])
    func = inj.get(Func)
    assert func(1) == 2

[ The Protocol doesn't really have a purpose here other than to show that it's also allowed ]
➡  Two situations:

This is a bug. You should not be able to declare callables or coroutines as dependencies (I have no idea why that should be true, it's very useful).
It's an intended feature. Then the type annotation should not say interface: Type[T], but rather something else that also includes Callables and Coroutines, and probably also a few other cases.

Continuing 2., Pylance (the new VSCode type checker based on pyright) reports the Func protocol being unassignable to a generic Type:

Consequently, inj.get(Func) and func(1) are also being inferred as T, which is a "class instance-like type", not sure what the right term is.
A similar issue arises with @inject, thought there it's more subtle - As far as I understand, the InitializerOrClass helper should be a ClassVar instead of a TypeVar..? I'd have to dig deeper.

Aaand last but not least another related, but different question:
It is abundantly clear that support for @inject on callables has been removed, and i guess you must have had good reasons for that. Assuming I want to shoot myself in the foot, is there a simple workaround to get this feature back with the existing code base? Is it as simple as injector.call_with_injection(...) or is there more to it, and things that might get removed aswell?
I'm thinking that for more performance-critical things that get called a ton, I'd rather not succumb to the DI framework's iron chains and create per-request scoped classes where a bunch of functions would totally suffice.
For context, here is what I'm trying to do:
class Middleware(Protocol[TContext]):
    """
    A protocol type is easier to document and has slightly better tooling support than declaring `Callable`s inline.
    It can also host an `@abstractmethod` decorator.
    """
    @abstractmethod
    def __call__(
        self, context: TContext, call_next: NextDelegate[TContext]
    ) -> Union[Any, Coroutine[Any, Any, Any]]:
        ...

Library users should be able to bind their own Middleware functions using injector, but also be able to receive additional request-scoped instances. These get then chained together like this:

This is going to be a realtime chatbot, so performance matters - and I've seen how nicely FastAPI integrated dependencies nested arbitrarily deep into functions, which is what I'm aiming for. But without the clutter that this arg: Type = Depends(XYZ) syntx brings with it, simply every parameter should be coming from DI or be annotated as NoInject, that pattern is nicer.

The following test case however proves, that Callables are also a valid dependency
No, it doesn't, but it may give you this impression and it starts you on the wrong track.

The static type hints tell you what works and is supported (Types). The runtime doesn't prevent you from shooting yourself in the foot if you want to violate the type hints, binder.bind(str, to=3.14159) will give you a float when you request a str – this doesn't have much to do with functions or protocols, just with there not being runtime type verification.
The support for injecting partially applied function has been removed. You can still declare dependencies in a free function (as in not a class constructor) and call it with Injector.call_with_injection() to provide those.

Sounds like I should make a PR for the specific issues I found with the typings

That depends on what you mean by specific issues in this context as there are no issues demonstrated in this thread in my opinion.

I understand there may be some issues with allowing injection of function protocols functionally, they would seem to be a reasonable use-case, when backed by a Protocol (I understand a generic, callable definition would lose it's typing at runtime, this would appear not to be the case for a Protocol with call as it would keep it's runtime typing.
On top of this, talking more generally about the Protocol type, the other use case for Protocol is about as close as I've found in python to a java interface, thus also feels like it would be a pretty desirable use case to support in an injection framework. In fact, if you ignore the MyPy warnings, this use case seems to work with the injector code on master.
From my perspective I'm aware the use-cases seem sensible, but there's probably a good chunk of knowledge around the issues around injecting partially applied functions I'm not aware of, and that feels like the pain point here.
With usage of @runtime_checkable on the Protocol class, you can use isinstance() on it, which might ease some of the implementation pain?
I think with some sensible use of @overload on the binder.bind method, it might be possible to isolate these use cases and allow some type checking that things aren't entirely wrong, if your concerns are around pushing a load of checking to run-time?
At the very least, it would seem simple enough to support the second Protocol use case for now, and fail at runtime for any Protocol passed to bind with a call method defined to avoid the injection of partially applied functions. It feels like that route would warrant a separate issue to this one - which I'll happily raise and think about the PR for if it seems reasonable?

What you're saying is not unreasonable. Feel free to raise an issue and flesh out the details there, I'm interested.

@JosXa just having another read of your requirements, I have an idea you might want to try.
Given that the thing you want to inject is a function, which stores no state and is presumably defined once for the binding, I'm not sure the scoping issues you mention exist if you were to wrap this in a class and you could potentially just wrap a class and bind at singleton scope.
As a quick example using your middleware protocol as an example:
class MiddlewareWrapper:
    def __init__(self, function: Middleware) -> None:
        self.function = function

def concrete_function(
def bindings(binder: Binder) -> None:


move nokogiri config to omnibus

this hand-builds it with the software dep, and its not a direct dep of
chef itself and shouldn't be in the Gemfile.lock anyway, plus we need
to pin via omnibus_overrides.rb and double-pinning in the Gemfile.lock
is just added fussiness

there's nothing that is going to blow up travis or appveyor in here and we need to get omnibus builds back to green...


aemm run ios --device runs on simulator

Every time we run aemm run ios --device, it runs on the simulator.

The run command is provided for serving live articles to the simulator. There are currently no near-term plans to support this workflow on device.


skill is currently experiencing a problem at the moment

Hello,
Service is down :
"Node-RED Google Assistant Smart Home Skill Bridge
It looks like the skill is currently experiencing a problem at the moment. Give it a couple of minutes and if it's still a problem please check if there is an existing open issue on GitHub here, if not then raise one."

Should be fixed now


[feature request] select files to publish

I don't know how obsidian publish works but I do know they have an option to select which file to publish.
I think we split this feature to some steps.

not export files starting with _ (or regex /$_/)
use any regex
use a file possibly named __export_rule__.json or .obsidian/__export_rule__.json
offer a GUI to select files. Show the file tree in the output web, use some color to highlight 'exporting files'(saved in __export_rule__) and new files, no highlight for 'private files'(will not export, also saved in __export_rule__).
maybe link this __export_rule__ file with git to track files. (no idea how to do this)

If you are not working on this, maybe I can try to PR.

__export_rule__ in step 3,4,5 can also named as pubsidian_rule or anything you want.

this file can be like .gitignore

Noted. Will work on that after getting some spare time 😅.

I used zoni/obsidian-export. I stopped my own repo too.


Added tests for the methods in the sections: "Langauge", "Currency", and "Rule of Threes"

Added tests to verify the output of the functions, and varied the parameters passed if they had any.

Looks good. Thanks for adding these test cases!

Hey could you label this PR as ‘hacktoberfest-accepted’. Due to policy changes only PRs marked that or repositories that have the hakctoberfest topic are the only eligible contributions now.


DataSources and their modules

Introduces DataSource and {light,heavy}weight versions along with their respective modules.
This is intended to be the new connector API, replacing BackendModule and associated types. The idea being one can implement either of the modules and we'll load both kinds at startup.
Not included in this PR, but planned before release

Logging
Replace Stream[F, Data] with Stream[F, ByteVector] once EPrec is finished
Possibly a new QScript variant that uses ResourcePath as the Read type.

@edmundnoble Yes to both :+1:

The problem is really with the signature F[Stream[F, A]], and even more so F[ReadError \/ Stream[F, A]]. After I've executed the outer F[_], there is almost always a finalizer associated with the Stream that has to run after. For example, implementing read for the S3 connector using http4s, I only make a single HTTP request that attempts to read the file, but still returns F[Option[Stream[F, A]]] (analogous to F[ReadError \/ Stream[F, A]]). But the lifetime of the inner stream is tied to the outer Task. If you store Stream[F, A] expecting it to be possible to use later, or just throw it away, the connection is likely to both a) stay open longer than you want and b) time out before you do eventually use it.
The type we really want is Stream[F, A], even after inlining things. The error must be provided in the stream; once you start streaming, you can listen for errors, because a) it ties the lifetime of the stream to the lifetime of the request, and b) we don't want the weird case where the outer F fails and the finalizer isn't run.

@edmundnoble I see what you're saying. The problem we've had in the past with Stream[F, A] is when using it with something like http4s, you have to "uncons" the stream anyway to evaluate the "acquire" effect to see what the response type should be, as once you've written out the body, it's too late to respond differently if there was an error, say, planning the query that resulted in the stream.
The idea with F[Stream[F, A]] is to allow users to be explicit with this distinction, though they must be careful to avoid the scenario you describe.
Would F[Stream[G, A]] be an improvement here, to enforce the distinction?

In that case, perhaps F[DisposableResponse[G]]?

I don't follow what the F/G distinction gives us here though, I thought that was for having Task in a Free coproduct.

@edmundnoble In this case, the distinction would only be nominal, more for documentation purposes. As for F[DisposableResponse[G]], I don't follow how that would solve the problem?

@edmundnoble Speaking of http4s, they appear to make a similar distinction https://github.com/http4s/http4s/blob/0bd20db589c7c129dea7745af69ccf9029809da6/core/src/main/scala/org/http4s/package.scala#L29

I believe the reason they do that is less for documentation, and more to allow polymorphic middlewares (this also may, for example, allow us to do QHttpService in a nicer way eventually).
The reason I suggest DisposableResponse is because if the API actually can't prevent users from doing the wrong thing with the response, it might be nice if the API made it explicit what they should do by providing that in the signature rather than just a Stream.

@edmundnoble I was more referring to the distinction between the effects required to obtain a result vs the effects of the result itself.
Something analogous to DisposableResponse sounds good :+1:, I'll add it.

@edmundnoble I've added Disposable and used it in the result types of the datasources, let me know what you think.


documentation_stub

@diekhans Does this seem like a start, or what would be your expectation?

Part of this seems like more of an introduction to the goals.  Also needs to be more specific.

Sure & definitely. More of a test if this is where things should go ...


route() is returning a function

Description
Since upgrading to v1, I am getting a really weird result on one of my routes. From my Vue component, it is returning my route parameter as a function definition, eg:
http://codinglabs.test:3000/hq/shifts/function%20shift()%20%7B%20%5Bnative%20code%5D%20%7D?id=6&employee_id=3&cycle_id=1&project_id=2&date=2020-11-04&created_at=2020-11-16T03%3A59%3A38.000000Z&updated_at=2020-11-16T03%3A59%3A38.000000Z&project=2
shift() is a computed property on this component, but it returns an object or undefined.
Below are some various results I got from the console:

Expected behavior
Like the working route('hq.projects.show') above, I expect ziggy to determine the correct route with the object from the ID.
Environment

Laravel version:  8.14
Ziggy version:  1.0.2

Related routes:

Route::middleware('auth')->prefix('hq')->name('hq.')->group(function () {
  // these are all fine
  Route::resource('projects', Controllers\Hq\ProjectController::class);

  // only the store method is working with route()
  Route::resource('shifts', Controllers\Hq\ShiftController::class)->only(['store', 'update', 'destroy']);
});

Ziggy.routes:
hq.shifts.update:
bindings: {shift: "id"}
methods: (2) ["PUT", "PATCH"]
uri: "hq/shifts/{shift}"
__proto__: Object

Ziggy call and context:

// Shift.vue methods
      update(project) {
        this.$inertia.put(route('hq.shifts.update', this.shift), {
          project_id: project.id,
        }, {
          preserveScroll: true
        })
      },

Theory
I figured it had to be some kind of naming conflict, so I:

commented out my shift() method ❌
renamed shift to shifty in the component ❌
renamed the route parameter {{shift}} to {{shifty}} in the routes ✅

So I guess shift is getting evaluating in JavaScript somehow? I'd like to do a PR but unfortunately it is a bit beyond my js abilities.

Whoa, very weird. I'll take a look this week, thanks for the detailed explanation.

Yeah this is happening because all javascript objects have a shift property and I'm checking for property existence with a shorthand instead of with hasOwnProperty.... will fix this today, thanks for your patience!


Not an issue just need some advice!

Sorry i am new to github i hope this doesnt affect your profile in any way! I am a student and my project team is using your code for our project. We needed to tokenise financial assets, but were allowed to get a token instead of building our own from scratch. It has been absolutely excellent using your token code! Everything is perfect but now for the last iteration of our project we said we would be able to delete tokens. I noticed you have an internal burn function and the comment says it needs to be implemented from an external burn function that is user created. I tried to implement one with the external mint function as a reference and came up with this:
function burn (uint256 _tokenId) external onlyOwner {
super._burn(_tokenId);
}
Is this incorrect? It is not allowing me to delete a token once it is minted. Could you help us with what we are doing wrong?
Thanks so much in advanced!

Your code looks ok but the onlyOwner  part means only the contract creator has the ability to burn. So only the contract creator can send this transaction.

Hi thank you! I am the contract owner, but also i did try it without the onlyOnwer and it still did not work!

 When clicking on the transaction error this is the etherscan page it takes me to:
https://ropsten.etherscan.io/tx/0xc167b931eb62dda3cdb1ce1f7d2fcd4d9f562af399d03098802dfbd57901ba94
Its on a test network so im unsure of whether you can see it. Please let me know if i need to send screenshots!

This is the smart contract address:
0x0A5A3BFa844afa7bD4baC5B5EBf8C96c7719d48e

Hum. Can you post your full code?

No problem! I added some stuff as the token needs to represent a personal loan. Please let me know if that is the problem
// SPDX-License-Identifier: MIT
pragma solidity 0.8.6;
import "https://github.com/0xcert/ethereum-erc721/src/contracts/tokens/nf-token-metadata.sol";
import "https://github.com/0xcert/ethereum-erc721/src/contracts/ownership/ownable.sol";
contract newNFT is NFTokenMetadata, Ownable {
uint256 loanamount;
uint256 interestrate;
uint256 termmonths;
constructor() {
nftName = "Deloitte NFT";
nftSymbol = "DTN";

}
function mint(address _to, uint256 _tokenId, string calldata _uri, uint256 amount, uint256 rate,uint256 term) external onlyOwner {
super._mint(_to, _tokenId);
super._setTokenUri(_tokenId, _uri);
tokenidToloanamount[_tokenId] = amount;
tokenidTointerestrate[_tokenId] = rate;
tokenidTotermmonths[_tokenId] = term;
}
function burn (uint256 _tokenId) external onlyOwner {
super._burn(_tokenId);
}
function getLoanAmount (uint256 _tokenId) public view returns (uint256 amount) {
amount = tokenidToloanamount[_tokenId];
return amount;
}
function getRate (uint256 _tokenId) public view returns (uint256 rate) {
rate = tokenidTointerestrate[_tokenId];
return rate;
}
function getTerm (uint256 _tokenId) public view returns (uint256 term) {
term = tokenidTotermmonths[_tokenId];
return term;
}
mapping (uint256 => uint256) public tokenidToloanamount;
mapping (uint256 => uint256) public tokenidTointerestrate;
mapping (uint256 => uint256) public tokenidTotermmonths;
}

Your code works ok for me. Did you deploy the contract again after adding the burn functionality? Once the code is deployed it cannot be changed. So if you add functionality you need to redeploy it.
Also I would suggest adding:
delete tokenidToloanamount[_tokenId];
delete tokenidTointerestrate[_tokenId];
delete tokenidTotermmonths[_tokenId];

To the burn function.


Add linting and formatting check

Resolves #43
Add prettier and ESLint.
Add format and lint scripts in package.json.
Run scripts on pre-commit (local) and commit (github).
Run prettier and fix ESLint warnings.

Also, have we verified that this works when installing the plugin?

Yup, pretty much all linter changes.
It works for me, yes.

Given that all works I think we're good to merge, but another review would be great.

Just swapped this PRs base branch over to develop after I mistakenly had it set to main so it should be all good to merge now


dirty workaround for the download issue

the download URL in Paper 1.12.2 build script became defective, causing build issues
this commit "fix" that (tho kinda bulky) by directly download from mojang's server
hunk copied over from Paper 1.16.5's remap.sh

Thank you!


Automated cherry pick of #10616: fix(region): new aws region

Cherry pick of #10616 on release/3.6.
#10616: fix(region): new aws region

Codecov Report

Merging #10618 (d6a0764) into release/3.6 (b9d30c0) will increase coverage by 2.13%.
The diff coverage is 0.00%.

@@               Coverage Diff                @@
##           release/3.6   #10618       +/-   ##
================================================
+ Coverage         5.86%    8.00%    +2.13%
================================================
  Files              828      107      -721
  Lines           129133    13123   -116010
================================================
- Hits              7577     1050     -6527
+ Misses          120876    11953   -108923
+ Partials           680      120      -560

Flag
Coverage Δ

aFlag
8.00% <0.00%> (+2.13%)
:arrow_up:

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

Impacted Files
Coverage Δ

pkg/apigateway/handler/auth.go
0.00% <0.00%> (ø)

pkg/apigateway/handler/auth_totp.go
0.00% <0.00%> (ø)

pkg/apigateway/handler/idp.go
1.84% <0.00%> (ø)

pkg/apigateway/handler/misc.go
0.00% <0.00%> (ø)

pkg/apigateway/handler/resource.go
0.00% <0.00%> (ø)

pkg/monitor/alerting/eval_context.go
34.25% <0.00%> (-3.89%)
:arrow_down:

pkg/monitor/alerting/rule.go
1.86% <0.00%> (-1.03%)
:arrow_down:

pkg/multicloud/esxi/manager.go
0.61% <0.00%> (-0.09%)
:arrow_down:

pkg/util/sysutils/kvm.go
2.91% <0.00%> (-0.06%)
:arrow_down:

pkg/multicloud/esxi/host.go
0.74% <0.00%> (-0.03%)
:arrow_down:

... and 624 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 c55d5d0...d6a0764. Read the comment docs.

/lgtm

/approve


[$250] Migrate WorkspacesListPage.js to function component

Class Component Migration
Filenames

[ ] src/pages/workspace/WorkspacesListPage.js

type: React.Component
has state values: false
has refs: false
has context: false
lifecycle methods: none

Task

We currently have some class components in our codebase that we would like to refactor to a function component.
Here's a link with some general advice on how to refactor a class component to a function component: https://react.dev/reference/react/Component#alternatives
If you need additional guidance, please ask in #expensify-open-source
Test for any regressions and verify that there are no breaking changes

Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~019e70e56c4c509da1
Upwork Job ID:<PHONE_NUMBER>762240000
Last Price Increase: 2023-06-26

⚠ Could not update price automatically because there is no linked Upwork Job ID. The BZ team member will need to update the price manually in Upwork.

Heads up! The pricing for this issue has been adjusted based on the scope of the work and the fact that no complex bug investigations or proposal are required.

I can work on this issue when it goes to external

Dibs?

hey @muxriddinmuqimov77 can you send a link to your Upwork profile?
@rayane-djouah I think we've hired for this job but you're more than welcome to look for any jobs here with a Help Wanted label - https://github.com/Expensify/App/issues?q=is%3Aopen+is%3Aissue+label%3A"Help+Wanted"

I am eager to take on this task.

@muxriddinmuqimov77 Is PR coming up?

@hayata-suenaga Hi. Really sorry for the late response. I think you could assign another contributor for all GIs that I am hired now. Because when I got my first Migration issue I migrated the code to a functional component but couldn't test it as I don't have Mac now. Thanks.

hi @hayata-suenaga per @muxriddinmuqimov77 response - how do you feel about hiring @rayane-djouah for this? @rayane-djouah are you working on any others?

i'm okay with @rayane-djouah
@0xmiroslav can you check if @rayane-djouah is working on any other migration issue? if not, we can assign them

okay assigning @code0406

Thank you for assigning this job to me.
I've sent my Upwork proposal.
I will submit the PR in 24 hrs.
Regards.

I've submitted the PR.

Job in Upwork:
Internal job: https://www.upwork.com/ab/applicants/1673399922762240000/job-details
External job: https://www.upwork.com/jobs/~019e70e56c4c509da1
Offers sent to
@code0406 $250 as contributor
@0xmiroslav $250 as C+

I'm going to be ooo until August 31st so going to unassign and assign a new teammate.
At this time, we're reviewing PR and waiting for payment here https://github.com/Expensify/App/issues/16310#issuecomment-1622635728

I submitted the PR 10 days ago. https://github.com/Expensify/App/issues/16310#issuecomment-1621240692
Please check it kindly. Thank you.

@0xmiroslav can you check the PR? 🙇

Is the checlist needed here? cc @0xmiroslav @hayata-suenaga

The PR has been deployed to production

Paid and job removed!


added missing test

add a test that was missed in a previous PR

I’m closing for now. Can revisit later when I have more bandwidth


Map '.' to show hidden files

"h" for hidden is fine. If you want this, change it in your git repo
src/listview.rs:87:36:            Key::Char('h') => self.toggle_hidden(),
Commit (git commit -a) and when you do "git pull" it will merge that with your changes.


Add an open license

Hi,
This looks like really good work.  I'm interested in reusing the code for an open science in simulation project I am working on.
Please could you add an open license to the repo so the simulation model code can be run and reused/adapted by someone other than you.  For Salabim you can use the MIT license.   But you can choose any. Some resources to help are here:  https://choosealicense.com/
An example a licensed simulation model is here: https://github.com/pythonhealthdatascience/stars-treat-sim
This also used the MIT license.  Its a file you include in the repo i.e. https://github.com/pythonhealthdatascience/stars-treat-sim/blob/main/LICENSE
Just to confirm  we would cite the work!
Thanks!
Tom.

Thanks for adding a license!


ConvertTo-Json still outputs a warning when WarningAction is set to 'Stop'

When I try to suppress warning output from ConvertTo-Json, and use -WarningAction Stop, I still get the Warning message sent to the Warning stream.
I would expect the Warning message to be suppressed and contained in the generated exception instead.
-WarningAction SilentlyContinue works as expected.
Steps to reproduce
$x = (Get-ChildItem | ConvertTo-Json -Depth 2 -WarningAction Stop)

Expected behavior
Throws an exception and outputs the text
"ConvertTo-Json: The running command stopped because the preference variable "WarningPreference" or common parameter is set to Stop: Resulting JSON is truncated as serialization has exceeded the set depth of 2."

Actual behavior
Throws an exception and outputs the text
WARNING: Resulting JSON is truncated as serialization has exceeded the set depth of 2.
ConvertTo-Json: The running command stopped because the preference variable "WarningPreference" or common parameter is set to Stop: Resulting JSON is truncated as serialization has exceeded the set depth of 2.

Environment data

Name                           Value
----                           -----
PSVersion                      7.1.3
PSEdition                      Core
GitCommitId                    7.1.3
OS                             Microsoft Windows 10.0.19041
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

You can try the following
function test {
[cmdletbinding()]
Param()

Write-Warning "warning"
Write-error   "error"
Write-host    "Host"

}

test  -ErrorAction stop
Prints the error message and stops
 test  -WarningAction Stop
Prints the warning message and stops.
https://docs.microsoft.com/en-us/dotnet/api/system.management.automation.actionpreference?view=powershellsdk-7.0.0
should say explicitly that the messages are printed.
This is by design, stopping because of an error / warning condition - but doing so silently, meaning the user doesn't know what has happened would generally be considered to be a bad thing.

"This is by design, stopping because of an error / warning condition - but doing so silently, meaning the user doesn't know what has happened would generally be considered to be a bad thing."
Isn't that what the ErrorVariable and WarningVariable parameters are for? I don't think you'd want to use "-warningaction stop" if you're in an interactive prompt, hence there's no need to display that to the user.
If the user is smart enough to ask for a full stop, the user should also be smart enough to use these options.
I resolved my issue by redirecting the warning stream to $null

@donlassini
Well there are a couple of assumptions, one is that you would specify and check warning variable every time you used -warningAction stop in the script and report the issue as needed.  The second is not using -stop interactively - it's not common but it is used.
Redirecting the message is the right way to go.
However I did find one thing checking on this
with that test function
try {test } catch {"boo"}
Outputs everything
try {test -ErrorAction Stop} catch {"boo"}
Outputs "boo" instead of the error message,
try {test -WarningAction Stop} catch {"boo"}
Outputs "boo" in addition to the warning message - and the error in the catch block is not the warning message but the " The running command stopped because the preference variable "WarningPreference" or common parameter is set to Stop: warning"


Revamp 'Merchants' page (and remove list of merchants)

Closes #1736
The list of merchants have been removed and replaced with links to external merchants directories. We also provide a list of p2p, non-custodial exchanges.
I did an extensive research to find all non custodial and P2P exchanges, but sadly i ended up with a list of only two elements: Bisq and HodlHodl. Please let me know if there are other exchanges with those characteristics, so we can add them.
Feel free to suggest better wording or changes. Opening as draft for now.
Preview:

I would advise to specify a link to the cryptocurrency Monero in the cotalog.
https://cryptwerk.com/pay-with/xmr/

I would advise to specify a link to the cryptocurrency Monero in the cotalog.
https://cryptwerk.com/pay-with/xmr/

https://cryptwerk.com/pay-with/xmr/

we already point to that url.

LocalMonero isn't included?

I think that removing all the other exchanges substantially reduces the utility of the page. Even if they're in a separate section, links to inform people that Monero trades on exchanges like Kraken, Binance, ChangeNOW, etc., and that people can purchase gift cards using something like CoinCards is useful information.

Thinking about this again, yea agree with @SamsungGalaxyPlayer, it's surprising to see HodlHodl linked that does not seem to have any Monero offers?
We should support Monero focused platforms like LocalMonero.

I understand that LocalMonero's online trade option can be considered custodial in some senses, but they also facilitate in-person P2P buys/sells for example.

I think that removing all the other exchanges substantially reduces the utility of the page

The point of these proposed changes is to not have to deal with exchanges anymore. Arbitrarely readding some exchanges that support Monero doesn't make sense IMO and would make this change pointless.

I understand that LocalMonero's online trade option can be considered custodial in some senses

Localmonero, to my surprise, is fully custodial, i don't know what you mean with "in some senses", but you are not in control of your coins and you have to 100% trust the operators, also in case of cash <-> xmr exchanges. If we want to list only non custodial and P2P exchanges (and i think we should), that's the list.

We should support Monero focused platforms like LocalMonero.

I agree. The problem is that there are none. We should push localmonero to provide keys of user's wallets instead.

We are not going to break the chicken egg problem by sending new users to a website where they can't even buy any Monero. It's just a bad user experience.
There are no rules that forces us to list 2 "exchanges" only (there is enough space for a third one) and there is also no rule that custodial exchanges aren't allowed to be listed.
So IMO if you want to list HodlHodl then that's fine but LocalMonero should also be listed. That's all I will say to this issue.

We are not going to break the chicken egg problem by sending new users to a website where they can't even buy any Monero

My point is not to make people buy Monero as fast as possible to fill their bags. IMO on Getmonero we should suggest people non-custodial exchanges, because those are safer and really make people in control of their coins. We provide two links of merchant directories where they can find all the centralized exchanges they want.

there is also no rule that custodial exchanges aren't allowed to be listed.

Of course not, how could that be possible? That's what i'm proposing right now and that was discussed in the issue and on #monero-site. The idea was to add only non custodial and P2P exchanges, after looking deeply i found only two exchanges with those characteristics. Listing only two wasn't planned, it was a sad surprise.

So IMO if you want to list HodlHodl then that's fine but LocalMonero should also be listed. That's all I will say to this issue.

I don't see the benefit of adding P2P non-custodial exchanges + LocalMonero. Sound like a recipe for troubles, since if we make an exception, everybody will want us to make more.
A compromise i see is could be to list P2P exchanges, so also custodial ones. That's a step back from my proposal, but would include LocalMonero in the list.

I don't see the benefit of adding P2P non-custodial exchanges + LocalMonero. Sound like a recipe for troubles, since if we make an exception, everybody will want us to make more.

I think that would be fine because the chart could make it clear if the exchange is custodial or not.

I believe this is unnecessarily restrictive based on morals that gets in the way of most user's interests on the page. Just pick the major non-scam custodial ones by volume. Also as mentioned, LocalMonero allows in-person p2p trades in addition to online trades.
The proposed page isn't actionable to the point that it makes a messy page into a mostly useless page.

I think that would be fine because the chart could make it clear if the exchange is custodial or not.

@selsta yes, i will add all respectable P2P exchanges i'm aware of and will specify in the description if they are custodial or not.

I believe this is unnecessarily restrictive based on morals

@SamsungGalaxyPlayer It's important to educate Getmonero's users to using P2P (preferably non-custodial) exchanges. Centralized exchanges do not give control of the coins to their users and they are a major point of centralization, which is dangerous for the whole Monero network since they can be shut down, hacked, confiscated or made illegal from one day to another. Decentralized/P2P exchanges are always to be preferred because they are much more resistant to censorship and empower the individual. Of course, all this doesn't matter if the goal is only to onboard as many people as possible without caring of their safety and the long term stability of the network; but that's not my goal.
People can find lists of centralized exchanges supporting Monero literally everywhere (since most people suggest those) and we link to 2 merchants directories where more can be found. Your only point seems to be that you want centralized exchanges to have the most visibility on this page and that's not going to happen in my proposal for the reasons i already explained.
Doesn't make much sense to use slogans like "your keys, your coin", but then when it comes to take actual steps to empower people by educating them about the existence of exchanges that give them their keys, you prefer to suggest centralized exchanges, with no motivation other than "that's what people use". I think we can and must do better than that.

Just pick the major non-scam custodial ones by volume

I already explained why giving the most visibility to centralized exchanges is bad, but this specific suggestion is naive, arbitrary and would bring us back to the original problem. Beside, I cannot think of a worse metric than "by volume" when presenting an exchange. We are better than that.

Changed description from "non-custodial P2P exchanges" to only "P2P exchanges" and added "non-custodial" entry in the cards
Added LocalMonero and SimpleSwap
Added buttons at the bottom instead of links (it's nicer IMO)
Updated screenshots

Now, as mentioned in my last comment, the only thing left is to add a link to a directory of centralized exchanges and if that's not available, a list of some centralized exchanges, listed by reputation. This should be the case only if nothing else is possible.

I am confused about the custodial definition then. I think what you're trying to get at is whether there is counterparty risk.
SinpleSwap is an example of an instant exchanger that doesn't hold an account for you. This is similar to many others, like ChangeNOW, Sideshift AI, etc. So it's somewhat correct to say it's noncustodial, but I think a user may imply this also means there is no counterparty risk. They can still steal your funds since you send funds to a wallet they have the keys to. This is the main differentiator between traditional instant exchangers and atomic swap exchangers.
SimpleSwap doesn't support BTC/USD.

SinpleSwap is an example of an instant exchanger that doesn't hold an account for you.

I got mislead by the wording on their website. They do seems to be a normal instant exchange. Will remove.

SimpleSwap doesn't support BTC/USD.

They claim to allow people to by cryptocurrencies with fiat (https://simpleswap.io/faq#fiat-to-crypto-exchanges)

LocalMonero has an onion address: nehdddktmhvqklsnkjqcbpmb63htee2iznpcbs5tgzctipxykpj6yrid.onion

I was under the impression they had one but then ended up removing it. I could be confusing them with something else. Will change.

Added changes and updated screenshot.

I haven't found a directory of exchanges supporting Monero. Is anybody aware of any? Otherwise we have to figure out a way to add centralized exchanges to this page without going back to the original problem (#1736).

https://kycnot.me/ is offline,
but there is a mirror at https://patchysicp.xyz/~wheezy/kycnotme/

mirror at https://patchysicp.xyz/~wheezy/kycnotme/

Some info here appear wrong. Like HodlHodl shown as not supporting Monero, but they do support it.

I'm thinking of adding a "centralized exchanges" box at the bottom that would be divided in 2 sections: Exchanges and Swappers.
To not go back to the original issue i think we have two solutions:

We add a short list of exchanges we know are reputable and we don't give the possibility to add new ones like we do now. The Getmonero team will take care of adding new items to the list if they that makes sense.
We find an external list of exchanges supporting Monero and we link to that. If something like that doesn't exist, might even make sense to ask around if anybody is willing to create and maintain such list.

Please let me know what are your thoughts about that. If we don't find a solution soon we could go ahead and merge the merchants list as suggested in this PR and take care of centralized exchanges later on.

Added list of CEXes and swappers
Added mention of Atomic Swaps
Screenshot updated

Ready for reviews.

I would advise to add this rating https://bitpro.cash/en/
https://bitpro.cash/en/XMR-to-BTC
https://bitpro.cash/en/XMR-to-ETH
I sometimes select exchangers here when I can not find a suitable one on your site
This rating works for more than a year and it always includes only verified exchangers and very convenient to see who has the minimum amount and exchange rate

Thanks @Riolinov, but i never heard of this service and unless somebody can vouch for it i'm inclined to not add it to the page.

The anchor on this home page link is not working:

The anchor on this home page link is not working:

Seems to be working fine for me.

Seems to be working fine for me.

I mean the home page link points to /community/merchants/#exchanges, but there is no #exchanges anchor on the Merchants & Exchanges page. It opens the Merchants & Exchanges scrolled to the top (displaying merchants section first).

@rating89us got it now. Fixed.

Thinking about this again, yea agree with @SamsungGalaxyPlayer, it's surprising to see HodlHodl linked that does not seem to have any Monero offers?
We should support Monero focused platforms like LocalMonero.

you should not include LocalMonero, Localmonero is scam check this [LocalMonero Scam Admin issue]https://github.com/monero-project/monero-site/issues/1889(url) for evidence


Custom Adapter with OnClickListener no longer swipeable?

I created a Custom Adapter for the swipe cards and it has multiple fields. In the adapter, I have a onClickListener which opens a fragment. Essentially, I have a description textview that is 5 lines on the card, when the user taps the textview I want to open a fragment and display all of the description lines.
What I have noticed, is that since I made the description field clickable, as in I added the onClickListener, I can no longer swipe the card by dragging from that description field. If i swipe by dragging from any other area on the card it works fine...what could cause this? Can I not have a clickable field on a swipe card?
Here is my onClickListener method:
holder.description.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // Open up a fragment to display the entire description
                    Toast.makeText(context, "Open Description", Toast.LENGTH_SHORT).show();

                    DescFragment frag = new DescFragment();
                    frag.setArguments(fragmentParams);

                    ((MainActivity) context).getSupportFragmentManager().beginTransaction()
                            .add(R.id.fragment_container, frag).commit();
            }
        });

Thanks in advance for the help!

@tudorific Since this was closed, what was your solution to make it clickable?