[x] add a command to generate summaries for the LSR, LEC, default members and the full workspace

Also do a guppy upgrade.
This codifies the LSR and LEC TCBs, and allows generating summaries which can be diffed by cargo-dep-bot.

bleh, the introduction of the old itertools is annoying. I'll see if I can address this upstream.

:umbrella: The latest upstream changes (presumably fa2aee5eb3c228f9082b2f8645592995b0501293) made this pull request unmergeable. Please resolve the merge conflicts.

it'd be good to generate summaries in the build, maybe during the linting?  just to prove the commands/and the output is well formed?

it'd be good to generate summaries in the build, maybe during the linting? just to prove the commands/and the output is well formed?

Hmmm, I'd expect cargo-dep-bot to do that (and error out if it fails).

cargo-dep-bot is doing that work, then should the code to execute the command be in x?

Good question! Ideally I'd want it to live in cargo-guppy, but I don't want to do the work to spec this out (in terms of adding configuration etc) at the moment. In that sense x is a bit of a workaround.

@bors-libra r=rexhoffman

:pushpin: Commit 73c1ea3 has been approved by rexhoffman

:hourglass: Testing commit 73c1ea32c07d2d289660fcba4b33764898d9ee1e with merge efcc83b021f5a8c4d3b5f38e0a5f2caf26fd32ca...

:sunny: Test successful - checks-actions_land_blocking_test, checks-circle_commit_workflow
Approved by: rexhoffman
Pushing efcc83b021f5a8c4d3b5f38e0a5f2caf26fd32ca to master...


feat(deps): upgrade compiler dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-compiler-dependencies-2.x" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 1353

Questions ?
Please refer to the Backport tool documentation


Propagate parsed secret throughout token validation pipeline

This enables two things we've been asked for:

get access to the secret in an extensibility point - e.g. the client JWT assertion
allows adding the client authentication method as a claim to the access token

@leastprivilege,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by .NET Foundation. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot


Developers & Community Engagement

Based on the number of dApps we have in our ecosystem, I noticed there are less than 10-15% of developers engages with the community. For example, everyone in Telegram is familiar with developers like David (Mumble), Shankar (Habit app), Russ (PGeon), Jessica (DCasso), Abdou (Dmail), Walterion (Arcane App), Friedger (OI apps) and several more. Or in Slack, we have Dant (NoteRiot), Terje, Alex and several more too. No doubt these developers have added GREAT value to the Blockstack community and ecosystem.
However, I find it hard to believe that apps that DO NOT ENGAGE with real users can somehow be more successful than those who did. (I am talking about apps that have close to zero engagement in Slack, Telegram, Mumble, Discord, Twitter, LinkedIn, Facebook, etc, I go through all social media every 1-2 days.) Not only that, when an issue arises with their dApps, community members often time cannot reach out to the developers came asking us for a solution, while this is supposed to be the responsibility of the developer, not us.
I am actually questioning the legitimacy of TMUI on how they review our apps. I got feedback from a developer saying he/she got a complete ZERO from a TMUI user because of unable to log in ONCE while pDrive has several times more bug and issues (This is from Telegram user complaints, I even get frequent major bugs on pDrive.)
I am proposing that community managers and evangelists SHOULD be able to provide scores to developers who actively engage with users. Even Satoshi engages with his users in the early days!
open for ideas.

If developers are reachable and take due action on time by fixing bugs reported by the community, it communicates confidence among the community that the app used is here to stay and not abandoned. I'm not sure how we can measure this. Maybe add a point to the Awario binary as a social reach. Currently, it is 5 and we can take it to 6. This could be measured within our community groups like Slack, Telegram, Discord. Updates could be features, blogs/articles, outreach, and testimonials. Maybe just a weekly interaction or bi-weekly is good. This also opens up visibility to apps that are constantly working and delivering value month after month. This will help in showing the community that app teams are growing and serious about it.

This also opens up visibility to apps that are constantly working and delivering value month after month. This will help in showing the community that app teams are growing and serious about it.

This sounds exactly like the "release notes reviewer" the @jeffdomke is proposing. #174
Maybe we could kill two birds with one stone here, and have at least one evangelist be a release notes reviewer. I think that could be a good thing.

Hey @joshthegreatavenue. I agree, community engagement is valuable and should be rewarded. I'm not sure if that reward should map to the apps they build exactly, but maybe. I'm not understanding the proposal here? Is this a new reviewer? How does it work, what score does it generate, and who runs it? It is hard to review these proposals when that stuff isn't crystal clear. 🙏

The reviewer could be just Blockstack evangelists and community managers from Telegram.
Here are the things I checked often :

DAPP Twitter
dApp developers on Slack
Telegram engagement
Discord engagement
Email engagement

I have been receiving a lot of complaints from the community that these developers do not the support they needed when encountering issues.
We can come out with a rating system based on those metrics above.
More engagement = Higher score
Low engagement = Lower score
No engagement = No score
I do not believe founders that does not listen and talk to their users is more successful than those who does. Besides, developers engagement always provide assurance to the community that they are here to grow and stay.

@joshthegreatavenue some open questions that might solidify this a bit:

How would you measure "more engagement" vs "low engagement" by dapp devs?  What are the concrete things that you would measure?
Who are "community managers and evangelists"? (I'm gonna use CME)  How do you identify them?
How many CMEs can "vote" or "score" each month? 1? 3? All?
How do new people become a CME and get representation in this group?  Is there some level of engagement required?  Running an ongoing meetup?
Conversely, how do you remove CMEs who become inactive?

Re: open TMUI videos, see #94 for discussion.
What prevents us to create a ranking base on this evaluation right now? Is it a question about money? There are app directory apps out already, adding a vote button shouldn't be difficult.

@joshthegreatavenue I think there should be a way to have a diversity of TMUI users, like people from different ages and from multiple professionals, since different apps serve completely different purposes. A young tester who never ran a website before wouldn't know what Runkod is used for. I think there should be a way to diversify testers. Additionally, it's completely unfair for dev when testers comment on a nonexisting feature of the app.
Dev engagement is good but that's pretty hard to measure at least for the moment.

Completely agree @babyrusa . As instance, since beginning Runkod hasn't gotten any negative feedback from professionals. But one of TMUI tester dropped a comment that contains "The site is unprofessional"

Just wanting to bring this up again.

I am actually questioning the legitimacy of TMUI on how they review our apps. I got feedback from a developer saying he/she got a complete ZERO from a TMUI user because of unable to log in ONCE while pDrive has several times more bug and issues (This is from Telegram user complaints, I even get frequent major bugs on pDrive.)

Hello Joshua,
I am the developer of pDrive and despite not talking a lot, I follow the channels and I talked with the guy that was reporting the bug.
It was related to the change on Gaia limit file and I have already fixed it. If you have any other bugs, please let me know. As you can see, there is work being done outside of public channels that you are not aware of.
Not sure it would be fair to give a low score just because the person didn't chat on Slack, despite fixing bugs.

A good portion of evangelists are also app builders. Is this essentially an app builder and community vote? Sorry for repeating myself but I'm still not understanding the proposal and who would execute such a vote? I think these are the same questions @dantrevino is asking.

App or Bug issues respond by community members and developers engaging actively in return in any channels is counted as a single engagement.
Developers helping other developers that are building on Blockstack
There is an evangelist head in Blockstack, he has the list for all evangelists, happy to get them to join this initiative.
The Evangelist that has zero engagement in any platform within 10 days will be deemed inactive.
Tweet and replies, I noticed high ranking apps of this months is winning despite very low engagement on Twitter. This is extremely odd. (https://docs.blockstack.org/develop/app-reviewers.html : Not sure why active social handles of certain dApps are losing.)
People knowing your apps in the channels, the more people mentioned about your apps in Slack, Telegram, the higher your score will be.
Developers that promote another Blockstack app will be given score too.
Any Evangelist or CMs that participated in the app mining CANNOT join the voting process. (Use Blocksurvey)

I am personally disappointed with how app mining is run and how the winners are picked.
I have spoken to some of the developers and they are very disappointed on how the efforts of being engaging are put to waste.  Being active in all channel matters. We go out and promote your apps and answers question. So, I think Blockstack community members or evangelists should have a say on app votes.
We MUST Reward developers that want our ecosystem to succeed. I am talking about developers that go OUT and promote Blockstack.
For @arinyguedes  , I think you are missing the point here. TBH, I find it difficult to buy what you said.
Here are the stats :

In the last 14 days, Slack has no mentioned of pDrive.
The majority do not even know who you are as a developer, resulted in people being frustrated - when bug arises.
Your website has no social handles, yet, you gained a very high Awario score, winning number one several times. How do people even find your Twitter?
In the last 41 days, pDrive only has 5 mentions by 3 different people in Telegram.
And, your Twitter, @pdrivestorage only has 2 followers. Only 2 Person ever tweeted about you. (https://twitter.com/search?q=%40pdrivestorage&src=typed_query&f=live) This DM is from this one guy here ( https://twitter.com/pDriveStorage/status/1194664336519815168 )
Reddit? You have Zero presence and mentioned.
No Instagram too.
People only know you because you ranked number one in app.co/mining.
Despite everything, there is no method in reaching out to you at your website. No email, no support.
You are not even searchable on Product Hunt.

I do not know where did you get the Awario score because your competitor, (No offense) XorDrive should be ranking higher. XorDrive has everything from Instagram, Telegram, Reddit, Twitter (Higher engagement), talks to people in Mumble and Slack, never had an issue with XorDrive too.  Even Satoshi Nakamoto talks to people in the early days in his community.

Here is how Evangelist & Community Managers process will looked like.
Step by step process :

Request questionnaires from TMUI.
The numbers of dApps are divided by the total numbers of evangelists and community managers. The divided number is the total numbers of app testing per member.
Let's say there is 300 apps and 15 total number of CMs and Evangelists, each participants will test 20 apps per month.
20 apps are chosen at random for each testers.
Our testers who are more familiar with Blockstack dApps can pinpoint flaws in the test as well. Plus, our testers understand the difference between single-use and multi-use apps, e.g XorDrive (Drag and drop file storage) vs Runkod (Developers tool for Blockstack).
The same tester will NOT BE ABLE to review the same apps within 4 months window.
The questionnaire from TMUI will be exported to Blocksurvey for internal testing among the CMs and Evangelists.
The concluded results can then be added as a new reviewer score, I called it 'Blockstack Score'. TryMyUI and Awario is not a decentralized entity, so, no argument here.

If evangelists wants to get paid for testing, will this be an option?
@dantrevino @jeffdomke

Thanks for raising this @joshthegreatavenue, really happy to see that someone is taking the initiative to strengthen our developer + community engagement. First, I'm still trying to grasp the whole proposal like @jeffdomke. Second, I believe we should check first with our Evangelists if they are willing to shoulder another workload w/in our community. I just want to let you know that evangelists that aren't app miners don't even have a stake w/in our ecosystem. Most of our active evangelists don't even own an STX and does it solely because of the mission.

Early in the program we had an investor community reviewer (similar population of people) and failed because it wasn't objective or unbiased. The App Miners voted to close this reviewer. I'm wondering if this idea reintroduces those problems. Also worried because many of the evangelists are also app builders. How would you address this?

I think I have already mentioned, any evangelists or CMs who participated in the App Mining cannot be part of the Evaluation process.
Can you pinpoint the issue of investor community reviewer so I can take a read?

@joshthegreatavenue I just stumbled upon this GitHub issue, we hear you. Now that our domain-name issues are sorted, we will definitely look into these and keep all updated soon...

Early in the program we had an investor community reviewer (similar population of people) and failed because it wasn't objective or unbiased. The App Miners voted to close this reviewer. I'm wondering if this idea reintroduces those problems. Also worried because many of the evangelists are also app builders. How would you address this?

Respectfully disagree here.  That community was early investors, and nothing like the evangelist community.  The reason it was shutdown was due to apathy.  Nobody was voting.  That early investor community had no interest in participating, while the community evangelist team, by its very definition has an interest in participating.

@dantrevino I'd assume you're right that the evangelists would be more active. I would agree with Jeff that the evangelists could have bias, and you can see from this thread alone that some folks are only interested in the apps where they interact with the founders. I'm not even saying that's right or wrong, but it is a bias.

@dantrevino apologies you're right. I was a bit reductionist and blunt, but I can expand a bit.
My opinion about the original investor voting:
Most unbiased investors didn't care. They often placed votes based on little information and then never revoted as new apps entered, or existing apps improved. A small minority voted based on self-serving incentives (that had nothing to do with app quality) to help an app they created or supported (knew the founders, etc).
Problems I predict with an evangelist based voting group:
– Voting behavior biased by people building apps/getting rewards. Evangelists who also build apps should be disqualified, correct?
– Voting behavior would be detached from app quality.
– Who is an evangelist in this future? Are there hard criteria? Are we going to block all the app builders who now urgently want to become evangelists? Why would every app builder not become evangelists as fast as possible?
I assume the best intentions. I also do trust our evangelists to kick the tires on apps. But the problems above seem clear to me. Happy to be wrong I just need more info please.


Renamed collision checker context managers

This addresses the naming issues introduced by #342. There is now a xRobotCollisionCheckerFactory that creates a xRobotCollisionChecker. We now use the names robot_checker_factory and robot_checker, respectively, to refer to instances of these classes.

:+1:

LGTM!


Unable to resolve service for type 'Bunit.Rendering.ITestRenderer'

I have updated my test project from 1.26.64 to 1.28.9 and now I get an exception when test run complaining "Unable to resolve service for type 'Bunit.Rendering.ITestRenderer'"
EDIT: by incrementally updating the package, it looks like the issue was introduced in 1.27.17

No changes were made to my project apart from updating the package version.
The code that triggers the exception is a TestNavigationManager stub that we use to mock nav manager stuff.
public class TestNavigationManager : NavigationManager
{
    private readonly ITestRenderer _renderer;

    public TestNavigationManager(ITestRenderer renderer)
    {
        Initialize("https://localhost/", "https://localhost/");
        _renderer = renderer;
    }

    protected override void NavigateToCore(string uri, bool forceLoad)
    {
        Uri = ToAbsoluteUri(uri).ToString();

        _renderer.Dispatcher.InvokeAsync(() => NotifyLocationChanged(isInterceptedLink: false));
    }
}

The test...
    [TestInitialize]
    public void TestInitialize()
    {
        _testContext.Services.AddScoped<ILoggingRepository>(_ => Mock.Of<ILoggingRepository>());
        _testContext.Services.AddScoped<UnexpectedErrorService>();
    }

    [TestMethod]
    public Task ErrorBody_UnexpectedExceptionWithCorrelationId_RendersCorrectlyWithDetails()
    {
        // Arrange
        UnexpectedException exception = new()
        {
            CorrelationId = Guid.Parse("9de73937-eb78-4d07-9c5a-1abb4d590f80")
        };

        // Act
        IRenderedComponent<ErrorBody> component = _testContext?.RenderComponent<ErrorBody>(
            p => p.Add(x => x.Exception, exception));

        // Assert
        return Verify(component);
    }

The test nav manager is wired into the TestContext like so:
_testContext.Services.AddSingleton<NavigationManager, TestNavigationManager>();

Results in this output:
 ErrorBody_UnexpectedExceptionWithCorrelationId_RendersCorrectlyWithDetails
   Source: ErrorBodyTests.cs line 20
   Duration: 855 ms

  Message:
Test method ORGNAME.Components.ErrorBodyTests.ErrorBody_UnexpectedExceptionWithCorrelationId_RendersCorrectlyWithDetails threw exception:
System.InvalidOperationException: Unable to resolve service for type 'Bunit.Rendering.ITestRenderer' while attempting to activate 'ORGNAME.TestNavigationManager'.

  Stack Trace:
CallSiteFactory.CreateArgumentCallSites(ServiceIdentifier serviceIdentifier, Type implementationType, CallSiteChain callSiteChain, ParameterInfo[] parameters, Boolean throwIfCallSiteNotFound)
CallSiteFactory.CreateConstructorCallSite(ResultCache lifetime, ServiceIdentifier serviceIdentifier, Type implementationType, CallSiteChain callSiteChain)
CallSiteFactory.TryCreateExact(ServiceDescriptor descriptor, ServiceIdentifier serviceIdentifier, CallSiteChain callSiteChain, Int32 slot)
CallSiteFactory.TryCreateExact(ServiceIdentifier serviceIdentifier, CallSiteChain callSiteChain)
CallSiteFactory.CreateCallSite(ServiceIdentifier serviceIdentifier, CallSiteChain callSiteChain)
CallSiteFactory.GetCallSite(ServiceIdentifier serviceIdentifier, CallSiteChain callSiteChain)
CallSiteFactory.CreateArgumentCallSites(ServiceIdentifier serviceIdentifier, Type implementationType, CallSiteChain callSiteChain, ParameterInfo[] parameters, Boolean throwIfCallSiteNotFound)
CallSiteFactory.CreateConstructorCallSite(ResultCache lifetime, ServiceIdentifier serviceIdentifier, Type implementationType, CallSiteChain callSiteChain)
CallSiteFactory.TryCreateExact(ServiceDescriptor descriptor, ServiceIdentifier serviceIdentifier, CallSiteChain callSiteChain, Int32 slot)
CallSiteFactory.TryCreateExact(ServiceIdentifier serviceIdentifier, CallSiteChain callSiteChain)
CallSiteFactory.CreateCallSite(ServiceIdentifier serviceIdentifier, CallSiteChain callSiteChain)
CallSiteFactory.GetCallSite(ServiceIdentifier serviceIdentifier, CallSiteChain callSiteChain)
ServiceProvider.CreateServiceAccessor(ServiceIdentifier serviceIdentifier)
ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
ServiceProvider.GetService(ServiceIdentifier serviceIdentifier, ServiceProviderEngineScope serviceProviderEngineScope)
ServiceProviderEngineScope.GetService(Type serviceType)
TestServiceProvider.GetServiceInternal(Type serviceType) line 159
TestServiceProvider.GetService(Type serviceType) line 151
ServiceProviderServiceExtensions.GetService[T](IServiceProvider provider)
Renderer.ctor(IServiceProvider serviceProvider, ILoggerFactory loggerFactory, IComponentActivator componentActivator)
TestRenderer.ctor(IRenderedComponentActivator renderedComponentActivator, TestServiceProvider services, ILoggerFactory loggerFactory) line 82
WebTestRenderer.ctor(IRenderedComponentActivator renderedComponentActivator, TestServiceProvider services, ILoggerFactory loggerFactory) line 22
TestContext.CreateTestRenderer() line 93
TestContextBase.get_Renderer() line 22
TestContextBaseRenderExtensions.RenderInsideRenderTree(TestContextBase testContext, RenderFragment renderFragment) line 43
TestContextBaseRenderExtensions.RenderInsideRenderTree[TComponent](TestContextBase testContext, RenderFragment renderFragment) line 23
TestContext.Render[TComponent](RenderFragment renderFragment) line 68
TestContext.RenderComponent[TComponent](Action`1 parameterBuilder) line 54
ErrorBodyTests.ErrorBody_UnexpectedExceptionWithCorrelationId_RendersCorrectlyWithDetails() line 29
RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)

Expected behavior:
The tests should all pass as they did with the previous version.
Version info:

bUnit version: 1.27.17 & 1.28.9
.NET Runtime and Blazor version: .Net 8
OS type and version: Windows 10

Link to reproduction repo. Change the package version in the TestProject1.csproj to see it break.
https://github.com/rob-king-volpara/bunit-issue-1472

Looking through the commits to 1.27, I think it stems from this commit:
https://github.com/bUnit-dev/bUnit/pull/1405/files#diff-2d39f5d38f8ec09b9d97543e177f6bc88b04440e13e090d0311b02a67101c970
If I change my code from
_testContext.Services.AddSingleton<NavigationManager, TestNavigationManager>();

to
_testContext.Services.AddKeyedSingleton<NavigationManager, TestNavigationManager>("TestNavigationManager");

It works again.

Hey @rob-king-volpara
That is unfortunate but there is a workaround for that.
The file you provided is somewhat unrelated - it just enables keyed services that were introduced with net8.0.
Your code might work because your TestNavigationManager isn't used in that case. Do you have anywhere a FromKeyedServices("TestNavigationManager")?
The reason is here: https://github.com/bUnit-dev/bUnit/commit/8f99afa6269b16439b33c400ef07d64d3f3a9b38
We moved the implementation of the ITestRenderer and ITestRenderer itself outside of the DI container.
Instead what you can do is to inject the TestContextBase in your TestNavigationManager (see https://github.com/bUnit-dev/bUnit/blob/main/src/bunit.web/TestDoubles/NavigationManager/FakeNavigationManager.cs#L30):
public class TestNavigationManager : NavigationManager
{
    private readonly TestContextBase _testContext;

    public TestNavigationManager(TestContextBase testContext)
    {
        Initialize("https://localhost/", "https://localhost/");
        _testContext = testContext;
    }

    protected override void NavigateToCore(string uri, bool forceLoad)
    {
        Uri = ToAbsoluteUri(uri).ToString();

        testContextBase.Renderer.Dispatcher.InvokeAsync(() => NotifyLocationChanged(isInterceptedLink: false));
    }
}

Ahhh nice one.... I'll give it a try

Cool..... I found I no longer need our TestNavigationManager since the FakedNavigationManager works ok for our cases.
Given this isn't really a bug per se, it can probably be closed.


python37Packages.proto-plus: 1.10.1 -> 1.11.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python37Packages.proto-plus is: "Beautiful, idiomatic protocol buffers in Python"
meta.homepage for python37Packages.proto-plus is: "https://github.com/googleapis/proto-plus-python"
meta.changelog for python37Packages.proto-plus is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS

Warning: a test defined in passthru.tests did not pass

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 1.11.0 with grep in /nix/store/n0lsp0vd1b9sdw5c8q9v8mlwildwk7ql-python3.7-proto-plus-1.11.0

directory tree listing: https://gist.github.com/1ffbae50125d41d657d8ca759d38704e

du listing: https://gist.github.com/7e3797e3e81c8b0cbc49fd0b36c0dea2

Rebuild report (if merged into master) (click to expand)

24 total rebuild path(s)

6 package rebuild(s)

6 x86_64-linux rebuild(s)
6 i686-linux rebuild(s)
6 x86_64-darwin rebuild(s)
6 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
python37Packages.google_cloud_asset
python37Packages.google_cloud_dataproc
python37Packages.proto-plus
python38Packages.google_cloud_asset
python38Packages.google_cloud_dataproc
python38Packages.proto-plus

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/n0lsp0vd1b9sdw5c8q9v8mlwildwk7ql-python3.7-proto-plus-1.11.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python37Packages.proto-plus https://github.com/r-ryantm/nixpkgs/archive/ba117ead92659c073cd83ff42fee07f5384cd16d.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/n0lsp0vd1b9sdw5c8q9v8mlwildwk7ql-python3.7-proto-plus-1.11.0
ls -la /nix/store/n0lsp0vd1b9sdw5c8q9v8mlwildwk7ql-python3.7-proto-plus-1.11.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review 1

6 packages built:

python37Packages.google_cloud_asset
python37Packages.google_cloud_dataproc
python37Packages.proto-plus
python38Packages.google_cloud_asset
python38Packages.google_cloud_dataproc
python38Packages.proto-plus

Maintainer pings
cc @ruuda for testing.

Result of nixpkgs-review pr 102877 run on x86_64-darwin 1

6 packages failed to build:

python37Packages.google_cloud_asset
python37Packages.google_cloud_dataproc
python37Packages.proto-plus
python38Packages.google_cloud_asset
python38Packages.google_cloud_dataproc
python38Packages.proto-plus


camera / microphone mute notification bar

Description of the new feature / enhancement
i dont like the permanent notification bar displayed topmost when camera or microphone mute is on
please add an option to disable the notification bar or not to display topmost
thanks
Scenario when this would be used?
see above
Supporting information
No response

VCM is in maintance mode, happy to accept a pull request.


chore(themes): fix themes dropdown for windows and sorts items alphabetically

What this PR does 📖

fixes the theme dropdown for windows and sorts items alphabetically

the path was pulling from .uplink, the default, instead of using the static arg
the name of the theme was being created by splitting the path on / which doesn't work right on windows

Which issue(s) this PR fixes 🔨

Resolve #261

Special notes for reviewers 🗒
Please make sure the path fix and theme dropdown works correctly on Mac!

Awesome fix!

Left a suggestion but besides that it looks fine to me

I'm on it! I will try both and see which I like better.

hey @tooshel i committed a function that might be better for calculating the theme name. try it out and if you don't like it, feel free to delete the function. right now the function is unused except for in a unit test.

hey @tooshel i committed a function that might be better for calculating the theme name. try it out and if you don't like it, feel free to delete the function. right now the function is unused except for in a unit test.

Nice! I'll check it out!

Perfect on my side awesome job @tooshel


ps-design-system-table: Better sorting handling

Enhancement Request
Desired behavior

Pass original event to onClick handler for <Table.ColumnHeader />
Add un sort state option

Today's behavior

onClick event only pass sortDir, one argument
It can only sort between asc and desc, can't unsort

The Value Add

This helps detect if a modifier key is pressed to handle sorting by multiple columns
Make it possible to unsort a column

The Tradeoffs
No obvious tradeoffs

Break change pass event as the first param and sort direction as the second parameter.
Will revisit on the un sort.
@matthewma7 please contact @sweeting to provide further information about un sort use case.

Idea: Just pass original event as 2nd param, don't need to make breaking change.  We have event passed last on lots of other components, nbd.

I think what @jaketrent describes would work for my use case.

Matthew, we think this is done.  We did the event add to the column sort handler.  We are still unsure about what unsort could/should do.  We'll close this for now.  If you still need support, please contact us with more unsort details directly.


Specify an optional process id and version in run_process

Allows specification of a process to validate against in the call to the run_process extrinsic.  Closely related to https://github.com/digicatapult/vitalam-node/pull/36
This PR includes:

addition of process object to the request object on run-process
validation for process identifier and version
pass through of process to transaction when provided
tests covering the above
some other minor fixes like ensuring the output validation section only sends headers once

Bump to 2.9.0 please

bumped


Syntax for enumerating param search space explicitly

Right now seems like params must take the form:
  private val fullRange = raw"(\d+)\s*\(\s*(\d+)\s*->\s*(\d+)\s*->\s*(\d)+\s*\)".r
  private val minMax = raw"(\d+)\s*\(\s*(\d+)\s*->\s*(\d+)\s*\)".r
  private val int = raw"(\d+)".r

Would be nice to be able to say something like val loadPar = 1 (1, 2, 4, 8, 16)  so that it doesn't have to search invalid parallelizations

Done.  See BasicParams app:
    val OP = op (1 -> 3)
    val IP = ip (2 -> 2 -> 8)
    val B  = bs (32 -> 32 -> 192)
    val LP = lp (1, 2, 4, 8, 16)


Deployment error

Describe the bug
I'm trying to deploy this on OMV6/Docker/Portainer.
I have used the docker-compose from home page and added auth and api [redacted], so that it now looks like this:
version: '3'
services:
  podfetch:
    image: samuel19982/podfetch:latest
    ports:
      - "6666:8000"
    volumes:
      - /srv/dev-disk-by-uuid-2628F1C228F19153/data/media/podcasts:/app/podcasts
      - /srv/dev-disk-by-uuid-5b67514d-485e-4306-873e-b1cbb54ccf99/Config/Podfecth:/app/db
    environment:
      - POLLING_INTERVAL=60
      - SERVER_URL=http://<IP_ADDRESS>:6666
      - BASIC_AUTH: true
      - USERNAME: XXXXX
      - PASSWORD: XXXXX
      - PODINDEX_API_KEY: XXXXX
      - PODINDEX_API_SECRET: XXXXX

As soon as I deploy I get this error:
failed to deploy a stack: time="2023-05-21T09:25:45Z"
level=warning msg="The \"CgSLq4cMC\" variable is not set. Defaulting to a blank string." time="2023-05-21T09:25:45Z"
level=warning msg="The \"knd\" variable is not set. Defaulting to a blank string." services.podfetch.environment.2 must be a string

Reproduction
Deploy the above compose
System Info
Open Media Vault 6
Docker

Used Package Manager
n/a
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A, please open a GitHub Discussion instead.
[X] The provided reproduction is a minimal reproducible of the bug.

The issue is your Podindex API key. It contains a $. $ is interpreted by Docker. To prevent that add another $ in front/behind the other dollar sign.

There are in fact 2, but changing them to $$ still leads me to
failed to deploy a stack: services.podfetch.environment.2 must be a string

Your YAML syntax is incorrect in the environment variables. It should be as follows:
version: '3'
services:
  podfetch:
    image: samuel19982/podfetch:latest
    ports:
      - "6666:8000"
    volumes:
      - /srv/dev-disk-by-uuid-2628F1C228F19153/data/media/podcasts:/app/podcasts
      - /srv/dev-disk-by-uuid-5b67514d-485e-4306-873e-b1cbb54ccf99/Config/Podfecth:/app/db
    environment:
      - POLLING_INTERVAL=60
      - SERVER_URL=http://<IP_ADDRESS>:6666
      - BASIC_AUTH=true
      - USERNAME=XXXXX
      - PASSWORD=XXXXX
      - PODINDEX_API_KEY=XXXXX
      - PODINDEX_API_SECRET=XXXXX

Arrays in YAML use = for value setting, and objects use :, and since you're using an array you need to replace the colons with equals signs

Ok, thanks again, but now with all variables replaces with = I get this new error:
failed to deploy a stack: podfetch Pulling a7ca0d9ba68f Pulling fs layer fe5ca62666f0 Pulling fs layer b02a7525f878 Pulling fs layer fcb6f6d2c998 Pulling fs layer e8c73c638ae9 Pulling fs layer 1e3d9b7d1452 Pulling fs layer 4aa0ea1413d3 Pulling fs layer 7c881f9ab25e Pulling fs layer 5627a970d25e Pulling fs layer<PHONE_NUMBER>8f Pulling fs layer 80ec95682aee Pulling fs layer f51c8fa85103 Pulling fs layer dfc02eb7708f Pulling fs layer 52907d314ddc Pulling fs layer 4eec690774a4 Pulling fs layer 55ffd214c0e6 Pulling fs layer 11620ec24fb0 Pulling fs layer 3b8c74c5dade Pulling fs layer 4f4fb700ef54 Pulling fs layer 3a3a0eea33cc Pulling fs layer fcb6f6d2c998 Waiting f51c8fa85103 Waiting dfc02eb7708f Waiting 52907d314ddc Waiting 11620ec24fb0 Waiting 4eec690774a4 Waiting 55ffd214c0e6 Waiting 4f4fb700ef54 Waiting 3a3a0eea33cc Waiting 4aa0ea1413d3 Waiting e8c73c638ae9 Waiting 5627a970d25e Waiting 7c881f9ab25e Waiting<PHONE_NUMBER>8f Waiting 80ec95682aee Waiting a7ca0d9ba68f Downloading [> ] 1.369kB/103.7kB fe5ca62666f0 Downloading [===> ] 1.369kB/21.2kB fe5ca62666f0 Download complete a7ca0d9ba68f

I don't see any errors in that apart from failed to deploy a stack. Is there nothing else? That just seems like Docker pulling the layers for the image

All the errors appear in a quickly disappearing on-screen frame in Portainer (that I copy with mouse), since the image is not deployed, I don't know where to look for an error log.

Maybe try again with docker-compose. I can't also see why it is failing. The container even didn't start.

Hmm, I'm not sure. I only use Portainer as a glorified container status and log viewer myself and do everything via the command line, so hopefully someone else has some insight. Maybe post your new compose file to double check everything, but I don't notice any issues in the original other than the colon stuff
In response to your edit, I believe there is a limit to 31 default networks since it seems the default networks are hard-coded. Maybe it's worth creating your own network(s) and assigning containers to them, since if you create your own it can assign a lot more IP addresses to them
As an example, here's the network I have all my media server containers assigned to:
networks:
  main:
    driver: bridge
    ipam:
      config:
        - subnet: <IP_ADDRESS>/24

and that will allow me to have 256 containers on that single network, and they can all communicate with each other

How did you choose <IP_ADDRESS>? I'm rather new to selfhosting.
Also, when I create that, how do I assign my other containers? I just add those lines to my composes?
My Podfetch compose is exactly as above, except for ": " replaced with "="

It was just in an example I found forever ago and had no issues with it, so I've used it since. I'm pretty sure it can be anything that isn't already a used subnet. And in your compose file you add a networks key and the network name in an array or as an object. for example;
services:
  podfetch:
    ...
    networks:
      - my_new_network
    ...

or
services:
  podfetch:
    ...
    networks:
      my_new_network:
    ...

I prefer the second option, so if I need to add specifics to the network configuration I can, which I had to do for some of my containers, but that's more advanced stuff you probably won't need to do
They will then be assigned to all the networks under the networks key and can talk to each other with their container names. For example, some other container that's also on the my_new_network network could then use http://podfetch:8000 to communicate with it, since as far as the containers are concerned, they're on the same LAN

Since I'm using Portainer to create it, for gateway and IP range, should I use my router IP?
Like
Subnet - <IP_ADDRESS>/24
IPV4 Gateway - <IP_ADDRESS>
IPV4 IP Range - <IP_ADDRESS>/24
?

They aren't required. It's just if you want to be more specific with your network configuration for the containers. Docker should automatically assign those values

Eh, I'm almost there, but not quite:
failed to deploy a stack: services.networks must be a mapping
My compose now looks like this and "omv1" is my network and shows as online
version: '3'
services:
  podfetch:
    image: samuel19982/podfetch:latest
    ports:
      - "6666:8000"
    volumes:
      - /srv/dev-disk-by-uuid-2628F1C228F19153/data/media/podcasts:/app/podcasts
      - /srv/dev-disk-by-uuid-5b67514d-485e-4306-873e-b1cbb54ccf99/Config/Podfecth:/app/db
    environment:
      - POLLING_INTERVAL=60
      - SERVER_URL=http://<IP_ADDRESS>:6666
      - BASIC_AUTH=true
      - USERNAME=XXXXXXX
      - PASSWORD=XXXXXXX
      - PODINDEX_API_KEY=XXXXXXX
      - PODINDEX_API_SECRET=XXXXXXX
  networks:
    omv1

You need another indentation level on networks and the colon or hyphen was missing
version: '3'
services:
  podfetch:
    image: samuel19982/podfetch:latest
    ports:
      - "6666:8000"
    volumes:
      - /srv/dev-disk-by-uuid-2628F1C228F19153/data/media/podcasts:/app/podcasts
      - /srv/dev-disk-by-uuid-5b67514d-485e-4306-873e-b1cbb54ccf99/Config/Podfecth:/app/db
    environment:
      - POLLING_INTERVAL=60
      - SERVER_URL=http://<IP_ADDRESS>:6666
      - BASIC_AUTH=true
      - USERNAME=XXXXXXX
      - PASSWORD=XXXXXXX
      - PODINDEX_API_KEY=XXXXXXX
      - PODINDEX_API_SECRET=XXXXXXX
    networks:
      omv1: # this line can either be "- omv1" or "omv1:"

Argh! Changed indentation and added semicolon, now:
failed to deploy a stack: service "podfetch" refers to undefined network omv1: invalid compose project
but omv1 is there in the list of other networks.
Maybe I should at least remove one?

I think I know the issue. The network was created outside the stack, but podfetch is inside the stack, and by default Docker prefixes anything inside the stack with the stack name. For example the network it will try and connect podfetch to if the stack was called mystack would be mystack_omv1 which doesn't exist since you made it manually. Try adding the network within the stack with the above example snippet I posted, eg:
services:
  podfetch:
    image: samuel19982/podfetch:latest
    ports:
      - "6666:8000"
    volumes:
      - /srv/dev-disk-by-uuid-2628F1C228F19153/data/media/podcasts:/app/podcasts
      - /srv/dev-disk-by-uuid-5b67514d-485e-4306-873e-b1cbb54ccf99/Config/Podfecth:/app/db
    environment:
      - POLLING_INTERVAL=60
      - SERVER_URL=http://<IP_ADDRESS>:6666
      - BASIC_AUTH=true
      - USERNAME=XXXXXXX
      - PASSWORD=XXXXXXX
      - PODINDEX_API_KEY=XXXXXXX
      - PODINDEX_API_SECRET=XXXXXXX
    networks:
      omv1: # this line can either be "- omv1" or "omv1:"

networks:
  omv1:
    driver: bridge
    ipam:
      config:
        - subnet: <IP_ADDRESS>/24

:(
failed to deploy a stack: services.podfetch.networks.omv1 Additional property ipam is not allowed

Yes! I can now deploy it, BUT still no-go:
This site can’t be reachedThe webpage at http://<IP_ADDRESS>:6666/ might be temporarily down or it may have moved permanently to a new web address.
ERR_UNSAFE_PORT

What do the logs show for podfetch? Seems like it might not be able to start properly

This is all I can see
Debug file located at /target/x86_64-unknown-linux-gnu/release/build/podfetch-63cd01e1b33fa505/out/built.rs
  ____           _ _____    _       _
 |  _ \ ___   __| |  ___|__| |_ ___| |__
 | |_) / _ \ / _` | |_ / _ \ __/ __| '_ \
 |  __/ (_) | (_| |  _|  __/ || (__| | | |
 |_|   \___/ \__,_|_|  \___|\__\___|_| |_|

2023-05-21T13:01:41 [INFO] - No settings found, inserting default settings
2023-05-21T13:01:41 [INFO] - Starting with the following environment variables:
Public server url: http://<IP_ADDRESS>:6666/
Polling interval for new episodes: 60 minutes
GPodder integration enabled: false
Database url is set to: sqlite://./db/podcast.db
Podindex API key&secret configured: true
2023-05-21T13:01:41 [INFO] - starting 2 workers
2023-05-21T13:01:41 [INFO] - Actix runtime found; starting in Actix runtime

See here for an explanation. 6666 was an apple service standard port. So please pick another one or choose Firefox.

Ah! How unlucky! Yes, now I have changed port and at last it works!
Thank you so much for the immense patience!

Yes just export the OPML from Podgrab and add it via the Plus Icon in the podcasts page of PodFetch.

Yes, found, it's adding now! :)

Nice. Hope it will work now.

Ok, I just add a little clarification for anyone who could read this in the future: it does not recycle Podgrab podcasts. I have set the same folder I use for it and Podfetch is creating all the same podcast-folders with trailing "-1" and a different file structure.
Not a problem, but better know to avoid duplication of content. :)

Yes. That is the first initialization. If there is already a folder with the name it adds a digit as long as it finds an existing folder. That other issue is fixed. Try to do a docker compose pull or the equivalent in Portainer.

Oh and refresh the podcast after that.

Sorry, I had to leave for a while.
Yes, it now works.
Only thing I noticed with OPML is that a couple of podcasts that are concluded were not imported, while others concluded as well were imported. I guess it has to do with various platforms policies.

Weird. It should normally download all listed podcasts. Did you get any logs?

One podcast is SARANADE, it shows in the log, but not in the UI, the other is The Numberphile Podcast and it doesn't show anywhere.
2023-05-21T14:15:16 [INFO] - Settings already present
Public server url: http://<IP_ADDRESS>:6656/
Polling interval for new episodes: 60 minutes
GPodder integration enabled: false
2023-05-21T14:15:16 [INFO] - Starting with the following environment variables:
Database url is set to: sqlite://./db/podcast.db
Podindex API key&secret configured: true
2023-05-21T14:15:16 [INFO] - starting 2 workers
2023-05-21T14:15:16 [INFO] - Actix runtime found; starting in Actix runtime
2023-05-21T14:21:03 [INFO] - Refreshing podcast: Letture Filosofiche - UniBo
2023-05-21T14:21:04 [INFO] - Refreshing podcast: DeepMind: The Podcast
2023-05-21T14:21:04 [INFO] - Refreshing podcast: Zoopodcast
2023-05-21T14:21:04 [INFO] - Refreshing podcast: La fine del mondo
2023-05-21T14:21:04 [INFO] - Refreshing podcast: Joypad
2023-05-21T14:21:04 [INFO] - Refreshing podcast: Alma Lectio - UniBo
2023-05-21T14:21:04 [INFO] - Refreshing podcast: The Art of Asking Everything
2023-05-21T14:21:05 [INFO] - Refreshing podcast: Interdependence
2023-05-21T14:21:05 [INFO] - Refreshing podcast: The Real Genius
2023-05-21T14:21:05 [INFO] - Refreshing podcast: Il podcast di Alessandro Barbero: Lezioni e Conferenze di Storia
2023-05-21T14:21:05 [INFO] - Refreshing podcast: Research Corner - Road to 2030 - UniBo
2023-05-21T14:21:05 [INFO] - Refreshing podcast: Dentro alla filosofia
2023-05-21T14:21:06 [INFO] - Refreshing podcast: 99% Invisible
2023-05-21T14:21:06 [INFO] - Refreshing podcast: Zeitgeist Banana
2023-05-21T14:21:06 [INFO] - Refreshing podcast: Dentro alla storia
2023-05-21T14:21:06 [INFO] - Refreshing podcast: OTTN Projects Podcast
2023-05-21T14:21:07 [INFO] - Refreshing podcast: The Three Questions with Andy Richter
2023-05-21T14:21:07 [INFO] - Refreshing podcast: Overheard at National Geographic
2023-05-21T14:21:08 [INFO] - Refreshing podcast: Periodic Talks
2023-05-21T14:21:08 [INFO] - Refreshing podcast: You Are Not So Smart
2023-05-21T14:21:08 [INFO] - Refreshing podcast: Lingthusiasm - A podcast that's enthusiastic about linguistics
2023-05-21T14:21:09 [INFO] - Refreshing podcast: The Curious Cases of Rutherford & Fry
2023-05-21T14:21:09 [INFO] - Refreshing podcast: HonesTEA with Z
2023-05-21T14:21:09 [INFO] - Refreshing podcast: All in the Mind
2023-05-21T14:21:10 [INFO] - Refreshing podcast: SARANADE
2023-05-21T14:21:10 [INFO] - Refreshing podcast: Planet Progress
2023-05-21T14:21:11 [INFO] - Refreshing podcast: The GeekBits Podcast
2023-05-21T14:21:12 [INFO] - Refreshing podcast: Cosa c'entra?
2023-05-21T14:21:12 [INFO] - Refreshing podcast: Whatever Next?
2023-05-21T14:31:07 [INFO] - Found podcast: https://api.podcastindex.org/api/1.0/search/byterm?q=rai
2023-05-21T14:31:14 [INFO] - Found podcast: https://api.podcastindex.org/api/1.0/search/byterm?q=rai%20radio
2023-05-21T14:31:43 [INFO] - Found podcast: https://api.podcastindex.org/api/1.0/search/byterm?q=morning
2023-05-21T14:32:04 [INFO] - Found podcast: https://api.podcastindex.org/api/1.0/search/byterm?q=il%20post
Result: Response { url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Som

I have tried to add SARANADE from Podindex and this is what happened:
2023-05-21T15:03:03 [INFO] - Found podcast: https://api.podcastindex.org/api/1.0/search/byterm?q=saranade
Result: Response { url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.podcastindex.org")), port: None, path: "/api/1.0/podcasts/byfeedid", query: Some("id=1319467"), fragment: None }, status: 200, headers: {"date": "Sun, 21 May 2023 15:03:05 GMT", "content-type": "application/json", "transfer-encoding": "chunked", "connection": "keep-alive", "cache-control": "no-cache, must-revalidate", "x-php-responsecode": "201", "access-control-allow-origin": "*", "access-control-allow-methods": "GET, POST, OPTIONS", "access-control-allow-headers": "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization,X-Auth-Date,X-Auth-Key", "access-control-expose-headers": "Content-Length,Content-Range", "cf-cache-status": "DYNAMIC", "report-to": "{\"endpoints\":[{\"url\":\"https:\/\/a.nel.cloudflare.com\/report\/v3?s=1LOKx19dB27oGpnADR%2BPVyUHRG%2FE%2FW8Aw4Vs89t10NaBaQcfhBJ1TJP%2BUaL2wiiLwSMkTJ5OO0mnU6ww0ZBl2K5ICPgJRlS3gh1U56POu73kd7jY%2FgL5i%2FwIoGcqkdXPXiKa0JsH\"}],\"group\":\"cf-nel\",\"max_age\":604800}", "nel": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}", "server": "cloudflare", "cf-ray": "7cadb441ae66baf3-MXP"} }
2023-05-21T15:03:05 [ERROR] - Error: The following error occurred: Podcast already exists

The Numberphile Podcast is confusing, it appears twice in Podindex. I've been able to add one and this is what log said:
2023-05-21T15:04:26 [INFO] - Found podcast: https://api.podcastindex.org/api/1.0/search/byterm?q=the%20numberphile
Result: Response { url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.podcastindex.org")), port: None, path: "/api/1.0/podcasts/byfeedid", query: Some("id=520179"), fragment: None }, status: 200, headers: {"date": "Sun, 21 May 2023 15:05:09 GMT", "content-type": "application/json", "transfer-encoding": "chunked", "connection": "keep-alive", "cache-control": "no-cache, must-revalidate", "x-php-responsecode": "201", "access-control-allow-origin": "*", "access-control-allow-methods": "GET, POST, OPTIONS", "access-control-allow-headers": "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization,X-Auth-Date,X-Auth-Key", "access-control-expose-headers": "Content-Length,Content-Range", "cf-cache-status": "DYNAMIC", "report-to": "{\"endpoints\":[{\"url\":\"https:\/\/a.nel.cloudflare.com\/report\/v3?s=H1FeQNH0DHBfxxqe08JslhbNZSlHxTfGQDw8mks%2FMVS9EFJSGui3Feoz5uXmZuK%2Fg260jUmFIFk3%2Fk%2Ba%2BafHXyvip4EXqV5H9RLyX6E0sBfNwm2YXVz5U9NjVtcVEbX1ULc6twL1\"}],\"group\":\"cf-nel\",\"max_age\":604800}", "nel": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}", "server": "cloudflare", "cf-ray": "7cadb7470c3f375f-MXP"} }
thread 'tokio-runtime-worker' panicked at 'called `Result::unwrap()` on an `Err` value: InvalidStartTag', src/service/podcast_episode_service.rs:136:51
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread 'tokio-runtime-worker' panicked at 'called `Result::unwrap()` on an `Err` value: JoinError::Panic(Id(485), ...)', src/service/rust_service.rs:179:18

Seems like SARANDE already is added to PodFetch. Concerning the other problem that comes from the library that parses the rss feed. The rss feed starts with xml instead of rss which is the specification. I'll try to strip the xml before and after the rss tag. Hopefully that will work.

Seems like SARANDE already is added to PodFetch.

Yes, it says so, but it's nowhere to be seen in the UI. I see all the other podcasts, but not that one.

I can't find the podcast via Podindex.

You wrote SARANDE, it's SARAN-A-DE with A

I have restarted from scratch using a new empty folder for podcasts. This time after adding from Podgrab OPML a coul see SARANADE podcast, but when I clicked it, it showed no episode and as soon as I got back to channel, it was disappeared. No trace of The Numberphile, which I suppose you're still working on.

Concerning SARANADE this is expected behaviour:
<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet href="https://feeds.buzzsprout.com/styles.xsl" type="text/xsl"?>
<rss version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:podcast="https://podcastindex.org/namespace/1.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <atom:link href="https://feeds.buzzsprout.com/1455049.rss" rel="self" type="application/rss+xml" />
        <atom:link href="https://pubsubhubbub.appspot.com/" rel="hub" xmlns="http://www.w3.org/2005/Atom" />
        <title>SARANADE</title>
        <lastBuildDate>Sun, 21 May 2023 05:08:31 -0400</lastBuildDate>
        <link>https://saranade.buzzsprout.com</link>
        <language>en-us</language>
        <copyright>© 2023 SARANADE</copyright>
        <podcast:locked>yes</podcast:locked>
        <podcast:guid>a2707ed9-d952-5009-a7ae-46332c2c35dc</podcast:guid>
        <itunes:author>Sara Niemietz</itunes:author>
        <itunes:type>episodic</itunes:type>
        <itunes:explicit>false</itunes:explicit>
        <description>
            <![CDATA[Sara Niemietz shares tour stories, songwriting, puns, and talks with friends! ]]>
        </description>
        <itunes:owner>
            <itunes:name>Sara Niemietz</itunes:name>
        </itunes:owner>
        <image>
            <url>https://storage.buzzsprout.com/variants/7rrsztbonxftjait7did1rvz5xl8/60854458c4d1acdf4e1c2f79c4137142d85d78e379bdafbd69bd34c85f5819ad.jpg</url>
            <title>SARANADE</title>
            <link></link>
        </image>
        <itunes:image href="https://storage.buzzsprout.com/variants/7rrsztbonxftjait7did1rvz5xl8/60854458c4d1acdf4e1c2f79c4137142d85d78e379bdafbd69bd34c85f5819ad.jpg" />
        <itunes:category text="Music" />
        <itunes:category text="Music">
            <itunes:category text="Music Interviews" /></itunes:category>
    </channel>
</rss>

As you can see the RSS feed is completely empty. It seems like that Sara Niemitz deleted every reference to her podcast episodes.

Ok, so this explains the ghost entry at first launch.

That is why:  https://blubrry.com/manual/syndicating-your-podcast-rss-feeds/lock-your-podcast-feed-stop-show-importing-migration/#:~:text=Podcast feeds can be locked,platforms that respect the tag She doesn't want anyone to listen to her podcasts on other platforms that is why the RSS feed is hidden and shows no entries.

Ah, weird. I added that in first place to MusicBee that AFAIK relies on iTunes. But there is no trace of it on iTunes now. Guess she just closed it for good.


console method signature duplicated

VSCode Version: 1.20.1
OS Version: osx and windows

Apply to all console methods: log, info, error, etc.

Probably due to using both lib: "dom" and @types/node

Nope, not true. Only using @types/node already have two identical overloads.


V04/puq

@mosesyhc Thanks for volunteering to review PUQ. If you can follow the steps here https://github.com/parallelUQ/PUQ, to install, test, and replicate one example from the paper, I think it should be good.
@wildsm You already run those examples. I included an sdk document for PUQ under band framework, updated README.md to include PUQ, and the sdkpolicies/README.md to include the link to the PUQ SDK.

About Failing Actions: The link to the SDK is unsuccessful since there is no SDK in the repo yet.

Click through on PUQ sdk link works; should be good post merge

FWIW, I noticed that the libensemble dependency in this version is pre v1.0.0 (and a significant API change). If libensemble is bumped up to the current v1.4.2, the above tests still succeed. See https://github.com/parallelUQ/PUQ/pull/9
I'm not necessarily suggesting that the REQUIREMENTS be updated given that there is currently a tagged version and a subsequent (post bandframework v0.4.0) PUQ release is planned. Instead, it would good for @ozgesurer to check whether bumping up the libensemble version in PUQ messes anything up in the various paper branches.

@wildsm @mosesyhc I will also check the docs later today so that Moses can try with the fixed version.

I have completed all the tests, and ran the examples as well. All have passed.
Two suggestions for changes:

At first I had ./run-tests.sh fail on all tests. After examining and rereading the instructions, I realize I never thought to install pytest, pytest-cov.  It might be an overkill, but it may help to include pip install pytest pytest-cov right before ./run-tests.sh.  (I admit I skim and mostly read only the code parts, though.. I may not be the only one.)
For docs, replacing cd docs; make html with sphinx-build -M html docs docs will work. You won't need to move into the docs directory to build the documentation.  The outputs will still be found under docs/html.

Also, I can verify that PUQ works with libensemble==0.9.1 on a Python 3.11 machine.

Thanks @mosesyhc for the suggestions.

I updated the instructions for compiling the documentation, so it should work now.  @wildsm Please feel free to check as well.
I also added Python 3.11 to our dependencies, since we are actually checking it in the actions.

@mosesyhc I did not need to install pytest even though I test it in a new environment. Interesting! But, additional info does not hurt. So, included pip install pytest pytest-cov under testing. Thanks.


Stacked & Percentage based area charts

Hi, Really enjoying using tremor, wondering if there's interest in having options for stacked or percent area charts? Can open a PR with an implementation if other folks would get value out of having those options.

Hey @bernsno,
First of all, thank you for using tremor and engaging here on GitHub! Having the option to make a chart stacked/percent makes sense and thank you for your PR #194.
We are currently working on our next minor release. After that, we wanted to give our charts some polishing, so this feedback comes at the right time. Thank you and happy coding ✨

Thanks for the response @severinlandolt. As I was digging into the code and using the library, another approach that I thought could be useful is to provide the primitives to allow people to more easily use recharts more complex features, but keep things looking like the rest of their dashboard. In order to do this I think you'd need to expose and API for the theme and wrapper components for charts.


Readme improvements from following these instructions

I worked through these instructions today to get a self-hosted bluesky working - I'm very grateful for this repo as I was trying to do this myself and you've saved me an incredible amount of work!
These are essentially changes to the README that correspond to things I had to do differently to get this working, and notes people should be aware of. (I did this running on an Ubuntu 24.04 machine.)
Some are just installing things in the right order with apt, and I've added basic instructions to get websocat working
Let me know if this is OK or if you would like changes, or contributions to be discussed in some other way (I have a few others coming)

@davidfraser thank you for using my tools and  sending PR.
I updated README.md according to this PR except your below NOTICE.

this will remove any existing docker containers on your system

I want to confirm about above because I didn't have such experience.
'make docker pull' will just pull images which described in docker-compose.yaml, for newer images if exist.
if you mention below case, it is the behavior of docker and it is not the issue of my tool:
public docker image such as postgres:16-bookworm will be downloaded when it has newer image with the same tag.
if your existing service  is version sensitive, your service should use postres:16.x-bookworm  instead of postres:16-bookworm to avoid unexpected version incompatibility.

Thanks so much for your feedback @itaru2622, and I'm very grateful for all the work you've put into this repository!
Yes it is true that make docker pull will only fetch new images. My misunderstanding came from the docker-stop-with-clean that doesn't specify which things it removes:
docker-stop-with-clean:
	docker volume   prune -f
	docker system  prune -f

But I checked and it will only remove unused volumes and systems.


Big table of outdated commands

Manual needs an article with big table of outdated/new commands for easier reference.

Hi,
I can work on this project. Can I get more details. I am a content writer and technical writer. I have worked as a business analyst and test analyst. I am looking to gain experience in technical writing.

Hi,
I can work on this project. Can I get more details. I am a content writer and technical writer. I have worked as a business analyst and test analyst. I am looking to gain experience in technical writing.

Hello. I do not think this particular task needs this kind of skill. The point is that there are deprecated script functions, and we need a reference table where old functions are in column 1 and newer replacements in column 2. But this task also requires a good knowledge of AGS scripting language of both old and newer versions.

No, I do not have expertise in AGS. I thought it was a documentation project.

This repository is for user manual, which in turn is a sub of a larger project of "Adventure Game Studio".

@ivan-mogilko For this particular task would someone find all of the previous commands in the existing manual pages or would they have to go back through the source code? I wasn't sure whether the table is only meant to be relevant to the current AGS version and any previous version would be considered outdated, or whether the table is meant to span multiple versions.

The purpose of this is to let users who upgraded to the latest version find out how to replace deprecated commands. But because they may have used very old functions all this time, it's best to have them all from all the versions below, as much as we can find info about.
The commands may be found in manuals, I believe that 3.4.* manual's index had most of them, with exception of few ancient undocumented functions, notes on which may still be found in pre-3.* manuals. The script header may also come useful as it contains everything that engine currently supports, and indicates which functions were obsoleted (using #ifdefs).
It's best to leave engine source code as a last resort.
The table may also contain a column for telling a version which deprecated particular command, or on contrary last version where it was active; but such data would be of less priority.

I noted the table here in my wiki fork: https://github.com/ericoporto/ags-manual/wiki/Deprecrated-Script-API
Here is the same data in a spreadsheet : obsolete_ags.ods.zip
This was done manually. I don't know yet how to present this information, should I group it in some way or just leave this big table? I couldn't find the information of the specific version the deprecation happens.

@ericoporto yes it looks good for starters.
the simplier the better, as this is for user to quickly search for a function.
I think it may need at least 2 columns, as in your page: old api vs new api, with links to new api articles.
That may be extended with a "version" column which tells when the function became outdated.

OK, I will work on that. I think I can give the version column a try and leave blank the ones I don't know, and they can be filled later.

I placed the table here: https://github.com/adventuregamestudio/ags-manual/wiki/ObsoleteScriptAPI
I added an entry in the main page itself, but it can be moved elsewhere too. I don't understand why the title look like that...

I think this may be considered done, any corrections may be dealt with later.


require voms-clients-cpp explicitly (SOFTWARE-3201)

The requirement for /usr/bin/voms-proxy-info can be satisfied by
either voms-clients-cpp or voms-clients-java, the latter of which
is now problematic for osg-3.3.  So, we'll just be explicit now
about which package to bring in.

Just a note - voms-clients-java is not currently causing any problems for us in osg-3.4, but @brianhlin suggested we go ahead and make the change in master also, to avoid potentially getting bitten there in the future.


Support for dynamic topics or multiple consumers each with one topic?

Our team has a need for dynamic topics or the ability to stand up a new consumer for each new topic.  For our project topics are created/removed on a very regular basis.
Is it possible in kafkajs to cleanly subscribe to new topics after consumer.run() has been called?  If not... does kafkajs support multiple consumers to a degree in which we can stand up a new consumer for each new topic as it gets created?  Then subsequently tear down said consumers?
Any help would be appreciated, Thanks!

You can certainly create multiple consumers with KafkaJS.
For changing subscriptions after a consumer is running: See https://github.com/tulios/kafkajs/issues/476

You can certainly create multiple consumers with KafkaJS.
For changing subscriptions after a consumer is running: See #476

We are transitioning off of kafka-node.  For their library they recommended having a new kafka client instance for each new consumer.  Is that true for KafkaJS as well?  When I tried standing up a new consumer for each new topic the first consumer I created was working, but subsequent consumers didn't start consuming messages from their dedicated topics.

With KafkaJS you typically have one client, and create your producers/consumers through it. See https://kafka.js.org/docs/consuming

When I tried standing up a new consumer for each new topic the first consumer I created was working, but subsequent consumers didn't start consuming messages from their dedicated topics.

Make sure that you use a different groupId for the different consumers, as they will form individual consumer groups.

@Arkh1 For me it is the same!
I am moving from kafka-node and there we were using a client for consumer. My understanding is that it should not be needed to create a client for consumer ...
The point is that instead it seems that only one consumer seems to be owrking for each client...


AUR and MPR PKGBUILDS

there's this in the AUR
https://aur.archlinux.org/packages/mov-cli-git
and these in the mpr
https://mpr.makedeb.org/packages/mov-cli
https://mpr.makedeb.org/packages/mov-cli-git
it would be nice to mention them in the README.

👍

They are now mentioned in the readme.


Otbn rnd

This is just a draft as it will break CI.
This introduces arbitrary stalls to OTBN which doesn't work with the ISS, it expects the RND read to complete in one cycle. Unlike a load we can't just specify a fixed number of cycles for the ISS to stall. It will either need to monitor the EDN interface/RND cache and use that to determine which cycle a RND read will complete or just observe the stall on an RND read and wait for the final unstalled cycle doing any checking then.
I've done some testing with the ISS disabled, the RND reads and prefetch all look to work, smoke test continues to pass.

I've added in a couple of signals to indicate where URND would slot in but haven't begun implementation work on that yet. I'll will probably hold off on URND work until this has seen some review in case the review results in design changes that would effect the URND implementation.

Ok this now contains the URND implementation too. Currently we'll need the ISS changes to allow RND to work so we can merge the URND stuff as well but I could rebase the commits such than the URND implementation comes first. We need ISS work for that to be testable but provided nothing does a URND access its presence shouldn't break anything.

Another option to allow this to merge would be to remove the RND read from the smoke test, if it's the only place that does an RND read currently, uncertain if the RIG is emitting RND accesses yet.

This still requires further work before merging but wanted some feedback on my ISS changes @rswarbrick could you take a look?
It proved to be tricky to implement as I wanted to snoop the actual RND data returning from the EDN (required if we want the model to match the RTL in situations where we're connected to a real EDN rather than a dummy returning a fixed value). The current stalling model of the ISS executes the instruction in the first cycle and then adds some number of stall cycles, fine for loads where the ISS can determine the result in that first cycle (or any multi-cycle ALU operations not that we have any) but for RND the ISS cannot determine the result until the RND data is available.
I didn't want to fiddle with the current instruction implementation by adding stalling behaviour into the existing instruction classes so instead had the ISS stall itself if it sees an instruction reading RND is about to execute and won't let it execute until RND data is available. This works but we now have two kinds of stalls in the ISS a pre instruction one (which happens when pre_insn returns False) and a post instruction one (the existing behaviour where post execution we count down some number of stall cycles) which seems awkward.
I we think the pre instruction stall is the way to go to implement the RND behaviour we could always alter the existing stall behaviour to be pre instruction as well.
The OTBN smoke passes with the RND changes but when you include URND things are still broken as we need a extended pre start stall to deal with the wait for the initial URND seed (pretty trivial but wanted to get the discuss on the RND stall concluded first).
Work still required to make RND work with the standalone sim and I haven't yet tried it out in a full earlgrey test nor in UVM DV (more work likely required, dummy EDN at least for the UVM testbench).

Ok RND data now provided via a separate edn_rnd_data function rather than piggy backing on stall.
Still working on the best way to deal with the stall on an RND read in the ISS. Just realised it may be simplified if I delay the edn_rnd_data call by one cycle in the testbench.

Ok think this is finally ready to go. I merged the URND and RND stuff into one set of commits as I ended up developing things side by side so keeping the changes across multiple commits felt like a pointless effort. Just noticed its reporting some conflicts, I'll rebase.

Oh, I didn't notice: could you fix the two flake8 errors that this introduces (reproduce with flake8 hw/ip/otbn/dv/otbnsim/sim/*.py)?

With the CSRNG issue fixed this should now pass CI (FPGA worked locally at least).
I've introduced a new otbn_start_stop_control which deals with reseeding the URND on start and holds off the controller start until the reseed is done. I did this in anticipation of other things we may we want to do on OTBN start and stop that are outside the main flow of execution, e.g. state clearing. I felt a separate FSM/module and module to deal with these was a clean way to avoid adding complexity to the main controller.

@GregAC: Can you go through Philipp's remaining comments? Just glancing through the first commit, it looks like several still apply.

@rswarbrick I believe I've addressed everything, just hadn't realised some of the changes should have gone into the first commit so they've ended up applied to the second commit. I'll rebase things.


Add pentesterlab to the list

Hey, thanks for the suggestion. I've rolled your suggestion into a JSON file and recompiled the readme. :+1:

Hi Scott,
Sorry I didn't realised it was built this way.
Cheers,
Louis
On Wed, May 27, 2015 at 9:13 AM, Scott<EMAIL_ADDRESS>wrote:

Hey, thanks for the suggestion. I've rolled your suggestion into a JSON
file and recompiled the readme. [image: :+1:]
—
Reply to this email directly or view it on GitHub
https://github.com/paragonie/awesome-appsec/pull/16#issuecomment-105694154
.

It's all good. I appreciate the suggestion and any others that you might have.
Once again, thank you.


Question about max frequency

Hi,
I'm interested in doing something similar, more exactly to create a frequency counter for an AM/FM radio display. What is the maximum frequency that can be measurable using the PIO implementation?
Thanks!

Hi @vladbalmos
The PIO state machines can execute one instruction every clock cycle.  The standard clock speed on an RP2040 is 125MHz - so one instruction every 8ns, although you can (and I did) increase the clock speed, so in my implementation it runs at 250MHz or one instruction every 4ns.
In my frequency counter PIO, it takes 6 instructions to fully run through, so the theoretical max would be those 6 instructions being executed in a constant cycle, which would be 250MHz/6 = 41.6MHz.
Noting I've not tested this, and I think other architectures like a reciprocal counter would suit your need better.


⚠ ClamAV has degraded performance

In 0900c55, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 66 ms

Resolved: ClamAV performance has improved in efd40e9.


[CSP] Content Security Policy violation when loading add-on details page

Relates to #995
Steps to reproduce:

Load AMO-stage page https://addons.allizom.org/en-US/
Load any add-on details page (i.e. https://addons.allizom.org/en-US/firefox/addon/easy-copy/?src=cb-dl-featured) with the console opened (and Security tab checked)
Observe the console

Expected results:
There are no issues CSP related.
Actual results:
There is a CSP violation.
Notes/Issues:
The issue can be seen on Android too, when accessing pages, like: home, write a review, theme info.
Please see the screenshot:

This looks to be only on the mobile site where we are inlining CSS.

Verified as fixed on AMO-dev using FF43 (Android 5.0.1).
Postfix screenshot:

Still reproducible on AMO-dev using FF43(Win 7) when loading add-on detail page.
Please see the screenshot:

@ValentinaPC could you file a new issue for this ^ - it's not the same warning. Assign it to me and I'll take a look.

Logged another issue. (see #1469 )
Closing this.


feat: Write lease validity

Enhancement: Implement WRITE_LEASE_VALIDITY for HA scenarios
Reason: This feature improves performance of HA configuration
Result: Users must add another meta attribute for ag_cluster resource clone with on_fail: demote

Do not merge yet, I need to test it first in multihost setup

Still not working. I'll keep this more updated version instead of #114

[citest]


librespot panicks on one song, but will eventually play it.

Listening to a playlist I noticed librespot crashing on a certain song.
I can reproduce it everytime, now the strange thing is,
sometimes it will play.
I'm running librespot on volumio2 with the plugin from balbuze.
So when it crashes it restarts when after a crash I select the device again, it wil play...
I got the following error when running librespot from the command line with verbose output.
hope it does make sense.
INFO:librespot::player: Loaded Track "Death Don't Have No Mercy" by Rev. Gary Da                                                                                vis from Harlem Street Singer (Remastered)
thread '' panicked at 'index out of bounds: the len is 2 but the index                                                                                is 2', /checkout/src/liballoc/vec.rs:1551:10
note: Some details are omitted, run with RUST_BACKTRACE=full for a verbose bac                                                                                ktrace.
stack backtrace:
0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
at /checkout/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
1: std::sys_common::backtrace::print
at /checkout/src/libstd/sys_common/backtrace.rs:68
at /checkout/src/libstd/sys_common/backtrace.rs:57
2: std::panicking::default_hook::{{closure}}
at /checkout/src/libstd/panicking.rs:381
3: std::panicking::default_hook
at /checkout/src/libstd/panicking.rs:397
4: std::panicking::rust_panic_with_hook
at /checkout/src/libstd/panicking.rs:577
5: std::panicking::begin_panic
at /checkout/src/libstd/panicking.rs:538
6: std::panicking::begin_panic_fmt
at /checkout/src/libstd/panicking.rs:522
7: rust_begin_unwind
at /checkout/src/libstd/panicking.rs:498
8: core::panicking::panic_fmt
at /checkout/src/libcore/panicking.rs:71
9: core::panicking::panic_bounds_check
at /checkout/src/libcore/panicking.rs:58
10: librespot::player::PlayerInternal::handle_command
11: librespot::player::PlayerInternal::run
thread 'main' panicked at 'called Result::unwrap() on an Err value: "SendError(..)"', /checkout/src/libcore/result.rs:916:5
stack backtrace:
0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
at /checkout/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
1: std::sys_common::backtrace::print
at /checkout/src/libstd/sys_common/backtrace.rs:68
at /checkout/src/libstd/sys_common/backtrace.rs:57
2: std::panicking::default_hook::{{closure}}
at /checkout/src/libstd/panicking.rs:381
3: std::panicking::default_hook
at /checkout/src/libstd/panicking.rs:397
4: std::panicking::rust_panic_with_hook
at /checkout/src/libstd/panicking.rs:577
5: std::panicking::begin_panic
at /checkout/src/libstd/panicking.rs:538
6: std::panicking::begin_panic_fmt
at /checkout/src/libstd/panicking.rs:522
7: rust_begin_unwind
at /checkout/src/libstd/panicking.rs:498
8: core::panicking::panic_fmt
at /checkout/src/libcore/panicking.rs:71
9: core::result::unwrap_failed
10: librespot::player::Player::load
11: librespot::spirc::SpircTask::load_track
12: <librespot::spirc::SpircTask as futures::future::Future>::poll
13: <librespot::Main as futures::future::Future>::poll
14: futures::task_impl::std::set
15: <scoped_tls::ScopedKey>::set
16: tokio_core::reactor::Core::run
17: librespot::main
18: std::rt::lang_start::{{closure}}
19: std::panicking::try::do_call
at /checkout/src/libstd/rt.rs:59
at /checkout/src/libstd/panicking.rs:480
20: __rust_maybe_catch_panic
at /checkout/src/libpanic_unwind/lib.rs:101
21: std::rt::lang_start_internal
at /checkout/src/libstd/panicking.rs:459
at /checkout/src/libstd/panic.rs:365
at /checkout/src/libstd/rt.rs:58
22: main
23: __libc_start_main
ERROR:librespot::player: Player thread panicked!
A quick search didn't gave me anyting.
So hope you could help.
many thanks!

This seems to be a release build, so functions have been inlined and are missing from the stacktraces.
Could you rebuild librespot in debug mode (just omit the --release argument when calling cargo).
Thanks

@cortegedusage @plietar
The error is from my additions to get get metadata out via udp for Volumio.
INFO:librespot::player: Loaded Track "Twelve Gates To The City" by Rev. Gary Davis from Harlem Street Singer (Remastered)
thread '<unnamed>' panicked at 'index out of bounds: the len is 2 but the index is 2', /checkout/src/liballoc/vec.rs:1551:10

The error is because this track (7DtrCdyysCDj5BlVKcassv) doesn't have a 600x600 image that I am trying to access (at index 2).
<Snip snip>
    "images" : [ {
      "height" : 300,
      "url" : "https://i.scdn.co/image/d163c004f88829741bd733b373c83f69663e849b",
      "width" : 300
    }, {
      "height" : 64,
      "url" : "https://i.scdn.co/image/cd86c236fdab45be2c40e3542abd5fc1966edd5f",
      "width" : 64
    } ],
    "name" : "Harlem Street Singer (Remastered)",
    "release_date" : "1992",
    "release_date_precision" : "year",
    "type" : "album",
    "uri" : "spotify:album:4IwcZDJileSoKXbfQjyRFB"
  },

Will make it more robust.

ah
@plietar I didn't realise the additions from @ashthespy  weren't implemented in this repo.
Should I remove this thread?
@ashthespy Thanks for your quick reply. Looking forward for a fix,
and both thanks for your hard work, I'm a heavy user both at home and at work.
cheers

@cortegedusage I'd say yes, close it here, can track the issue either at the volumio plugin repo, or the fork.

closing this,
wrong repo.
Will report in volspotconnect2 repo


Fix missing import and export

Resolves #93

The idea is that rx-recompose should work with any Observable library, not just RxJS. So rather than import a specific library, we rely on Observable being globally polyfilled. This is the same approach most libraries use with respect to Promises.

But none of these polyfills are current supporting Observable (http://kangax.github.io/compat-table/esnext/), so I need to hack it by adding rxjs's Observable as a global variable like what your test does?

Nevertheless, this line is missing https://github.com/acdlite/recompose/pull/94/files#diff-a2ca7abe8afbfbe3e2af96bcad3b42d0R1

But none of these polyfills are current supporting Observable (http://kangax.github.io/compat-table/esnext/), so I need to hack it by adding rxjs's Observable as a global variable like what your test does?

Yep! I'll add docs about this before it's released.

Nevertheless, this line is missing

Oops. Good catch.


wip

Will probably split this up into two PRs:

Docs changes which we can land immediately in main after next release is out
Code changes which can land in dev

superceded by #8488 and #8487


Update dependencies.

You can declare dependencies better, as Map in ext:
In root build.gradle
ext.libraries = [
  rxJava: 'io.reactivex:rxjava:1.0.11',
  mockito: 'org.mockito:mockito-core:1.10.19'
]

In submodule:
dependencies {
  compile libraries.rxJava
}

See http://stackoverflow.com/questions/9547170/in-gradle-how-do-i-declare-common-dependencies-in-a-single-place/9547593#9547593

This is the ext map.

Yep, but in submodules:
compile libraries.rxJava
looks better than:
compile rootProject.ext.rxJava :)

Yeah I've done that in some other projects but considering there's no behavior change I'm not going to spend time going around changing everything just to save a few characters on a reference that rarely changes.

No problem, just wanted to share nice solution.


Bad permissions in /run/k3s

Hi. Actually, the /run/k3s directory by default owner root and having 0711 permissions, allow unprivileged users list directories in /run/k3s/containerd/io.containerd.runtime.v2.task/ directory.
For example: /run/k3s/containerd/io.containerd.runtime.v2.task/k8s.io/adc5e646b2e916e7055d44feafa75551d7d31af47b88676273d806b792fe406a/rootfs.
In some case allowing write files in this location if some folder have 0777 permissions.
It's normal?
This issue is solved by simply doing chmod 0700 /run/k3s.
Thanks!

K3s itself does not create this directory or manage its permissions. The containerd state directory is created with 0711 permissions by containerd itself during startup. If you think these permissions are overly broad, I would recommend creating an issue upstream:
https://github.com/containerd/containerd/blob/release/1.4/runtime/v2/manager.go#L65

I believe this is resolved upstream by GHSA-c2h3-6mxw-7mvq.


Scrolling is feeling sluggish on ios/safari compared to native scrolling.

The scrolling does not feel like the native scrolling but rather sluggish if you open it in Safari on iOS. Reproduction: your demo page.

-webkit-overflow-scrolling: touch
helps with this.
https://developer.apple.com/library/content/documentation/AppleApplications/Reference/SafariCSSRef/Articles/StandardCSSProperties.html#//apple_ref/css/property/-webkit-overflow-scrolling


Cannot install add-in

Azure Data Studio Version: User version 1.7.0
Case : Trying to install the add-in
Steps to Reproduce:

Search add-in, and find the Sql Server Import (or Admin Pack for SQL Server)
Press Install
Errors with : Failed to install 'microsoft.import'.
Download manually errors with :

BlobNotFound
The specified blob does not exist. RequestId:35fe3ac5-b01e-007c-7223-0a7037000000 Time:2019-05-14T07:04:05.7583389Z

Hope someone can help getting this back online. Great tool.

@Daxing1980 I wasn't able to repro this issue when installing the Import extension this morning.  We host the extensions on Azure BLOB Storage, so it's possible there was a temporary outage access this resource.  Please retry the install and see if it's back online now.  Thanks!

@kburtram thanks for the answer. After uninstalling everything, I realized that the extension downloaded earlier caused a problem after updating the application to 1.7.0. Once deleted the extensions within the c drive itself, then re-installing the software, that made it work. Thanks for the reply!


[Help] [Examples] An example of Zod schema that validates a  tag

Is your feature request related to a problem? Please describe.
Looking for a example about zod schema that validates a select tag.
Describe the solution you'd like
A simple select tag with 2 options would work just fine.

Please post a question in GitHub discussion instead.


[Bug]: Payment Received screen is not showing the amount. (Regtest only)

Describe the bug
The Payment Received screen it is not showing the amount.
Reproduce

Click on Receive Button
Pay the invoice
Wait for the receive payment screen

Screenshots / Recording

Operating system
Android 12
Bitkit version
v1.0(20)
Log output
No response

Should be fixed by https://github.com/synonymdev/bitkit/pull/796


documentation for biomeHeightAdjustment ambiguous

# How much biomes influence the final height of the hex

I think it's worth mentioning whether higher numbers increase or decrease height variation, like on the biomeSize setting

Well it can do either. For example, forest hills might have a multiplier of 0.5 which will raise the base height by 0.5biomeHeightAdjustment. But other biomes have negative multipliers. Rivers have a multiplier of about -0.3 so the final height is going to be -0.3biomeHeightAdjustment, which will be lower than the baseline.
If you can think of a way to make that more clear, I'm willing to take suggestions.

i would suggest doing it like this instead, unless there's something I'm not considering:
I would suggest having it either be a percentage, where 0% leaves the value exactly where it is, and any other percentage brings it that percentage of it's value closer to 0. So 100 makes all biomes exactly the same height, 80% would make the variation 80% less drastic, no matter whether the biomes are negative or positive, and how big their actual value is, it's always proportional.
alternatively have it be an absolute number, and move it that amount closer to 0. If there's overshoot, set the value to 0

I feel like the suggestions might just be complicating things or restricting how much you can move the biomes compared to the current version. Tried rewording the config a bit so maybe its a bit more clear

yeah like I said in my edit, I agree, I think I just got too stuck on this idea that the way to differentiate them has to be negatives and positives. I would still suggest explicitly mentioning that you want values between 0 and 1 if you want to decrease the amount of variation, though.


Cleanup isRunRetriable in the release v0.47.0

In the release v0.47.0, we plan to fully remove the support for v1alpha1.Run as proposed in TEP-0114.
isRunRetriable exists only to support the retries function in v1alpha1.Run. Therefore we need to clean that function up  after fully deprecating v1alpha1.Run in the release v0.47.0.
Related issue: https://github.com/tektoncd/pipeline/issues/5837, https://github.com/tektoncd/pipeline/issues/5810

/kind cleanup

@XinruZhang are we good with the current milestone on this one? thanks!

Thank you @pritidesai, yes we need this one in the current milestone, will do


RFC 3550 RTCP: Modifying packet interval via context flags

There was a suggestion by @wowaser to modify the parameters of RTCP. This could be implemented if it is not too complicated.

This suggestion stems from a need to react to volatile network conditions faster than every N seconds the RTCP receiver report is received. There are some private functions that are storing the statistics with which the RTCP reports are configured. Is it possible to access that data to create the kind of system that @altonen was talking about in issue #59.

I think you could built a better, ad-hoc session statistics gathering and distribution mechanism on top of RTP because you wouldn't have to conform to all of these, somewhat peculiar and outdated, rules

I was thinking about using the APP packets to have both sides of the stream communicate about how many packets were sent/received/lost after each frame. So, basically manually "counting" packets with existing RTCP (currently private) functionality and reacting a certain way if there is packet loss.
Maybe you guys can give hints about which functions should be made public in order to access those statistics manually.

RTCP can do better than just count lost packets, it uses jitter to detect when the network condition is starting to deteriorate. From my point of view, if there was a serious issue with RTCP, there would be a new RFC to replace it. There may be some unneeded extra stuff in RTP, but it is also still very widely used which tells something.
This issue is probably easy to implement. Add new flags to those RTP_CTX_CONFIGURATION_FLAGS and then have the correct place check for the presence/value of the flag.

I'm not saying this has to be implement but I think what @wowaser  said still stands. I believe his criticism mainly concerns the report interval and whatever else RTCP contains that doesn't concern him. If there was a low-level interface that would allow users of uvgRTP to get the current RTCP state, they would be able to use uvgRTP to their liking even more freely, I think this would empower everyone. While I personally think this is something that uvgRTP could do, providing an alternative to the spec in order to better serve the users, such as is the case with RCE_FRAGMENT_GENERIC, I can understand your unwillingness to do so at least for the time being, given that there are many other issues to solve before that. I, however, agree with @polusto that this, providing low-level APIs, was not the original goal of uvgRTP.
To be honest, before my departure, I was actually thinking of implementing something similar to what @wowaser mentioned, something like RCE_FRAGMENT_GENERIC but for RTCP but removing all the "unnecessary" from the protocol. Just giving people access to the internal state of RTCP (# of lost packets, jitter, etc.) is easy. I think it's just a matter of gathering all of the internal RTCP state of uvgRTP under some nice struct and exposing that struct by providing a couple of functions.
I can also take a crack at this if this is just a matter of missing man hours because I also dislike RTCP  and would rather see something else, even if just an API that users could use to implement their own version of RTCP. Obviously, if whatever he's dealing with can be deal with decreasing the report interval while being compatible with other implementations, then that's obviously the best solution.

I think it's just a matter of gathering all of the internal RTCP state of uvgRTP under some nice struct and exposing that struct by providing a couple of functions.

This is exactly what I am looking for! I think this provides much more flexibility without going too far from the original intention behind uvgRTP.  These reports would be pretty small, so sending them with each frame would barely make a scratch on the overall bandwidth. They would still be sent via RTCP tho, right?
I don't see how timed reports can be useful in a real-time application. Every 5 seconds is simply too slow, and in the worst case, we would start reacting to the problems in the network a few seconds too late.
Thanks for the response!

If you use APP packets to implement the protocol then you can send them via RTCP.
I think it depends on the context. For a typical live video stream where people have stable connections over fiber, the 5 second interval could be fine because there probably wouldn't be much disturbances and thus parameters regarding the stream quality wouldn't need to be changed very often. Why the lower limit is recommended to be five seems kind of arbitrary and would probably be problematic if you were streaming in more diverse networks conditions.

I did some reading and did find that RFC 3550 does indeed allow for lower RTCP interval than 5 seconds (see https://datatracker.ietf.org/doc/html/rfc3550#section-6.2). I'm working on making improvements based on this information.

The default interval for audio will stay the same, but will be around 100 ms for video streams. uvgRTP is also completely missing the formula for calculating the interval (I will make a new issue at some point).

I added a function that enables changing the session bandwidth. I also set a default value, which means that the RTCP interval for video is much faster.

@jrsnen What function is that and what variable is responsible for the interval? Thanks

@wowaser this modifies the session bandwidth which is used to calculate the RTCP interval. However, looking at the code, it unfortenately works in such a way that any call to this function come too late to be taken into account.
I'll reopen this issue until this is fixed.
The modified defaults do work and they depend on the format. Audio is still 5 seconds and HEVC should be around 120 ms. Do you need smaller intervals?

Fixed by 9dff5f3c586fd932f48727ac16b0f71e46deffcc and 83a7b7d0ab51dfaa0bf578295d9b55f2af3df098


Added Tuple2ToEdgeMap and Tuple3ToEdgeMap to utils

this completes the set of utils to create edges from datasets.

Just found this discussion: https://github.com/project-flink/flink-graph/issues/41 maybe these classes are not needed at all?

The graph creation from Tuple2 and Tuple3 datasets will be part of #53, so I'll close this one. Thanks again ^^


Update README.md

Adding Manticore Games to "Sites Built with React-Static" section

Oooh, that an AMAZING website!
I think you can get away with maybe shaving off ~70% off blogheadere.59ab32c8.jpg and teampicture.jpg. 5.2 MB is quite heavy for mobile.


I :heart: this effort

Hey @3mcd!
First off, I recently read this blog post and super appreciate the shoutout and that you are also trying to bridge the synchronization gap between SoA and objects. I don't feel so lonely now :sweat_smile:. Also, great job implementing archetypes! I still haven't had time to implement those.
Second, I was hoping that you would be willing to weigh in on an alternative way forward for the synchronization of data between SoA and objects that I drafted a short proposal for. As always, my focus is performance :racing_car:. I believe this method of synchronization can bring the most performance benefits and provides an extreme level of interoperable flexibility, but I am keen to get a wide variety of opinions on this. Let me know what you think!
Cheers :beers:

For example, are you adding significant overhead by replacing a basic object property with an accessor if three uses x/y/z heavily for internal computations as I'm sure it does.

I knew it would, but was curious how much. Preliminary tests are promising:
Rendering 10k entities took ~30ms without proxied threejs properties.
Rendering with proxied properties took only 2-3ms more on average, 32-33ms total.
This is worth it for two reasons:

This eliminates a full loop over entities to synchronize the ECS data with the Three.js data
Iterating over the same data in SoA (10k vector3s) takes only 0.02 ms

This means that we can iterate over those 10k vector3's an incredible number of times before three.js needs to touch these properties (and it only touches them once as far as i can tell)

although I'm curious about interop with libraries that already use getters/setters, use frozen/sealed objects, etc

as you can see with the threejs POC, you can proxy getters/settesr by proxying the properties that the getters/setters themselves are accessing.
as for frozen/sealed objects yes, that might make things impossible but i have yet to attempt it


change accounts?

i accidentally logged into the wrong account on the website so now when ever i'm on it i cant do anything with my server when i log out and try to log back in it automatically puts me back on the wrong account how do i fix this?

Click log out on the yag controll panel and also log out from https://discord.com/login


auto_generate_synonyms_phrase_query to return multi-phrase synonyms when searching with query as phrase

I have set up the synonym_graph as ["error" => "system failure"]
And have been using the following query:
{
  "query": {
    "bool": {
      "must": [
        {
          "multi_match": {
            "query": "unexpected error occurred",
            "fields": ["text"],
            "type": "phrase",
            "auto_generate_synonyms_phrase_query":true
          }
        }
      ]
    }
  }
}

This returns the results that have either "unexpected error occurred" or "unexpected system failure occurred".
But I would also like to include results that have synonyms of these keywords such as "system failure" regardless of the other keywords present in the query.
I do not want to increase the result set by using the 'operator: OR' query here. Nor do I want to split all the keywords and send independent query for each.
How can this be achieved here?

Hi,
Sorry, can you please clarify with possibly more examples ? Can you explain what you mean by "regardless of the other keywords present in the query" , when you do a phrase query (all the terms in order, + possible synonyms replacement) ?


fix(button): button goes transparent on hover on desktop (non-touch d…

…evices)
This is what the hover state for a button looked like:

You can see the button under when you navigate to another view and hover over the button because of the transparency:

Plus it seemed weird having $button-md-clear-hover-background-color as the background-color for .button and not .button-clear

+1

@steve8708 @soyzamudio Where are you seeing this at? The button's should get the disable-hover class and not do this. I'm not seeing basic buttons without it.

@brandyscarney thanks for taking a look
we see this on non-touch devices (e.g. desktop) when using material design mode (we set it with @App({ config: { mode: 'md' }) and importing ionic.md.scss)
note that adding ?ionicPlatform=android to the URL will add the disable-hover class but we'd like to avoid depending on that param
we know it's not a top priority for this project to support non-touch devices but we've been using ionic for mobile first responsive sites (that scale all the way up for desktop) for quite a while now and have been very happy with it!
our ionic sites feel super smooth on mobile, can be wrapped natively with cordova (we just launched a new ionic app to the app store yesterday), and esp. now with the material design theme can look and feel great on desktop as well
but perhaps we're doing something wrong? please advise and thanks!

Thank you for that! I was able to reproduce it by setting the config. Thanks for the PR, I can see that this fixes the default buttons. :smile:

thanks @brandyscarney !

@steve8708 Added a small fix for the different colored buttons and for outline buttons. Thanks again!

Rad, thank you!
On Thu, Feb 11, 2016 at 9:39 AM Brandy Carney<EMAIL_ADDRESS>wrote:

@steve8708 https://github.com/steve8708 Added a small fix for the
different colored buttons and for outline buttons. Thanks again!
—
Reply to this email directly or view it on GitHub
https://github.com/driftyco/ionic/pull/5403#issuecomment-182969982.


Cannot import echarts5 in vue env created by vue-cli

Version
5.0.0
Reproduction link
https://codesandbox.io/s/awesome-mcnulty-cm0pl?file=/src/main.js
Steps to reproduce

Create a vue project using vue-cli
Add echarts5 as dependency
Add "import echarts from 'echarts'; console.log(echarts);" in main.js

What is expected?
"Object"
What is actually happening?
"undefined"

Use import * as echarts from 'echarts' instead

Use import * as echarts from 'echarts' instead

Thank you. Has this breaking change mentioned in your docs?

How to import charts and components on demand in vue project env