Multiple subscription webhook event calls recieved at once

We are seeing subscription create webhook calls followed very closely - according to Stripe's dev dashboard 1 millisecond later - by an update call for the same subscription. As django is still processing the first webhook call this causes a race condition and we are sometimes left with out-of-date data.
Is there a simple but robust fix for this?
My thoughts so far... none I like:

ignore subscription update events where we haven't already processed a create event - this is brittle as should we miss the initial create we'll never tidy up even though there is enough info sent in every update to create the record
database lock - would have to be a table-level lock during the create or update_or_create process
we send Stripe a request for updated data after every webhook request we receive - this would add potentially unnecessary network traffic, should be delayed by a few seconds to ensure we get the freshest data, and would need de-duplicating when we receive multiple events for the same subscription. In our case that would need to be de-duplicated across multiple django processes.
switch from listening for customer.subscription.created/customer.subscription.updated events to listening for invoice.paid events and expanding the subscription referenced in the invoice object.

Also with only 1ms between them there's a chance we could receive them out-of-order, and Stripe's documentation says to expect that. I'm somewhat OK with leaving that as a secondary issue for now in the hope that this is rare, unless there's a simple way of handling this cross-process?

I was not aware that Stripe is calling the web hooks at such speed (1ms frequency). I haven't given this too much thought, but I think you need a buffering layer in front of our webhooks to put Stripe's API calls into a queue, and then let Django process these requests in sequence.
AWS's SQS is something that comes to mind that might help with this. We would want the requests from Stripe to be stored in the Queue, and then let Django fetch messages from the queue.
Alternatively, you might also consider implementing a simple queue in Django's data model. The webhook now instead of trying to update our customer and subscriptions data, would instead simply add an entry into the in-database queue, and then from there trigger that process normally ran by our current webhook, but at our own pace. You may need to use a task executer such as Celery as part of this solution. The overall sequence looks like this:
(1) Stripe calls webhook
(2) webhook adds Stripe's request to data table (queue table)
(3) Celery asynchronously runs a function (as a single scheduled task, every 2 minutes?)

the function is globally unique(ie: only 1 instance of it can run at any given time, this can be controlled via Django cache variable)
(4) The function retrieves the oldest item from queue table, and process the data
(5) customer/subscription data is updated
(4) the function deletes the request from queue table, repeats step (4)
(5) if no more item in the queue table, the function exits.

This poses significant changes to this library. Some of these could also be done in the cloud on infrastructure side, maybe with the combination of a bit of AWS SQS and Lambda functions to act as a buffering layer. Thoughts?

Also, is there reason why Subscription.update is fired immediately after Subscription.create? Is this something particular about how you have stripe configured to create subscriptions?

Agreed. I wish to avoid significant changes.
I'm looking at invoice.paid right now, perhaps that will be enough.
I'm not aware of making any configuration changes in Stripe. Just filtering events to customer.subscription.x ones. The create event creates the subscription record with a status of incomplete and the update changes it to active. Mostly it works fine but occasionally we have a subscription that is still at incomplete status which we are currently manually patching up but it creates a sub-par paying customer experience.
Here's a log of events when a new customer pays for a subscription, the subscription create and update events are highlighted in green:

and here are the created then updated events, 1ms apart:


Matter sample app stopped working

Hi,
I was using this app to commission matter device. It was working fine.
Suddenly from last few days it stopped working. I've also tried adding the device through the Google Home app and it works.
But not able to commission device using this sample app.
Here are the device logs :
Device_logs.txt

Looking at the device logs, it is not clear what the sequence of events was, but looks like the device was commissioned first, and then multi-admin attempted?
...
I (87257) chip[SVR]: Commissioning completed successfully
...
I (88647) chip[ZCL]: Commissioning window is now open
...
I (93137) chip[ZCL]: OpCreds: AttestationRequest successful.
...
I (94197) chip[ZCL]: OpCreds: AllocatePendingOperationalKey succeeded
I (94457) chip[ZCL]: OpCreds: CSRRequest successful.
I (94457) chip[EM]: <<< [E:4725r S:1639 M:47687077 (Ack:60898645)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse)
I (94477) chip[IN]: (S) Sending msg 47687077 on secure session with LSID: 1639
E (94477) chip[DL]: Long dispatch time: 830 ms, for event type 3
I (94817) chip[IN]: (S) Sending msg 47687077 on secure session with LSID: 1639
I (95147) chip[IN]: (S) Sending msg 47687077 on secure session with LSID: 1639
I (95747) chip[IN]: (S) Sending msg 47687077 on secure session with LSID: 1639
I (96697) chip[IN]: (S) Sending msg 47687077 on secure session with LSID: 1639
E (98137) chip[EM]: Failed to Send CHIP MessageCounter:47687077 on exchange 4725r sendCount: 4 max retries: 4
I (153357) chip[FS]: Fail-safe timer expired
E (153357) chip[SVR]: Failsafe timer expired
I (153367) chip[SC]: SecureSession[0x3ffc8970]: Moving from state 'kActive' --> 'kPendingEviction'
E (153377) chip[SVR]: Commissioning failed (attempt 1): 32

Please follow the instructions at https://github.com/google-home/sample-app-for-matter-android/wiki/How-to-investigate-issues-with-the-sample-app-(GHSAFM) to provide complete information and help investigate possible issues.

Working fine now. Closing this issue.

Working fine now. Closing this issue.


Fix 'Maximum call stack size exceeded' error with custom formatter

Fix for issue #862
As  @thinkkevin explains: "Need to have options.meta decycled before clone".

@indexzero Could you merge and publish the fix pls?

Yes. That's a serious bug and breaks the node process.
Please merge.

I agree, we need this fix shortly. Please, consider to review and merge this PR as quickly as possible. @indexzero

Please have this merged asap!

Please merge - fixes my bug with circular objects

Merge please, or add some users to the project who are active with the pull requests.  28 PR's?  C'mon now... There are a number of these call stack exceeded/infinite loop issues with unsafe cloners and lack of cycle checking in these recursive fn's.

Yes. Been waiting a long time for this. Please merge this.


FactoryGirl don't work with required keyword arguments

In a pure Ruby environtment, if I have a initializer with required keyword arguments I will get this error:
ArgumentError:
       missing keywords: ......

This has also been described in this SO post: http://stackoverflow.com/q/30679053/1006863
Ruby version: ruby 2.3.0p0
FactoryGirl version: 4.7.0

I used initialize_with
initialize_with { new(name: name, password: password) }
but it would be awesome if FactoryGirl can do it by default or at least mention it in the documentation.

@fidalgo initialize_with is definitely what you want to be using in this case; the most common use is with ActiveRecord, so it'll call Model.new, then run through all attribute assignment. There's no way for FG to know how you'd want attributes to line up for the constructor, which is why initialize_with is provided.
Could the docs for Custom Construction (https://github.com/thoughtbot/factory_girl/blob/master/GETTING_STARTED.md#custom-construction) be improved?


Record speech to text voice

Hi, did you find a solution to record the speech to text voice with MediaRecorder ?. Seems it is proritiezed when enabled and take over the speech voice so speech to text function no longer work.

Haven't made such experiments yet. It's entirely handled by the system, however it makes sense to disable the voice search feature if a recording is already happening.

yeah, I still trying to find a way to make speech to text and record work simultaneously but seems no hope; all suggest using api that supports voice stream like google speech api but that costs much

@neronguyenvn the suggestion you got is correct and unless you use some open source project you could find, that's the way and it costs

thankss


Added notify for admins when update is available

Do review it.


Trash (burnt flares, used mags, etc) Should Despawn After A Set Time

Description

Title. Since it'll start piling up and lagging some players who can't handle the clutter.

so if i remember correctly the consensus is used mags could potentially be reloaded via big boxes of loose ammo eventually
(although I highly doubt marines will actually do this, it will be like 1 or 2 cargo tech mains that do this)


Possible monte carlo optimization

It may be worthwhile to investigate using latin hypercube sampling instead of the standard purely random sampling method. It looks as though all of the tools are already in place to do this. The simulation compute logic would need a method to subdivide the CDFs of all uncertainpaireddata objects into n equal size/probability partitions and then to generate random paired partition arrays for each iteration. The UncertainPairedData class could have a seperate SamplePairedData function to accept a partition as a parameter and pull random values for that partition (or more likely an array of partitions for every x?). The difficult thing would probably be to work out the best way to marry up all the partitioning in an efficient way. This may significantly cut down on the number of iterations necessary to converge by ensuring the full range of all distributions are hit in the first chunk of iterations performed, though this would come at the fixed cost of setup time.

all that needs to happen to test that is to implement an IProvideRandomNumbers instance, https://github.com/HydrologicEngineeringCenter/HEC-FDA/blob/main/fda-model/interfaces/IProvideRandomNumbers.cs
if you can find a third party (or roll your own) the instance provided to the aggregated stage damage function method would just be replaced in a test.
Since you are putting in a low number of iterations, it is unlikely that you would see change in performance directly, this is something that would reduce overall iterations. So the comparison would be in how many iterations it takes to reach convergence, if we are hitting max with and without latin hypercube it is not a valid test.

i googled a .net latinhypercube rng, but couldnt find one easily, i wonder if haden or woody have developed one.

public LHC_PRN(int countofstrata, double seed){
//store those two doubles. instantiate a standard random number generator.
}
public NextRandom(){
double strata = math.floor(rand.nextdouble()*countofstrata)
double strataweight = 1/countofstrata //make sure this is a double
double startOfStrata = 1/strata //make sure this is double
double positionInStrata = rand.nextdouble()*strataweight
return startOfStrata + positionInStrata //make sure im not off by 1 in the start of strata
}


Virtual auto-getprops set in constructor on overriden type crash Bridge

A description of the issue.
Steps To Reproduce
Deck Link
Dot Net Fiddle
public class Program
{
    public static void Main()
    {
        new B();
    }
}

public class A
{
    public virtual string Name{get;}

    public A ()
    {
        Name = "Fail";
    }
}

public class B : A
{
    public override string Name => "Pass";
}

Expected Result
Pass
Actual Result
System.Exception: TypeError: Cannot set property Name of # which has only a getter
at Class.ctor (https://deck.net/RunHandler.ashx?h=41910029:14:27)
at new Class (https://deck.net/resources/js/bridge/bridge.js?16.0.0-beta2:2543:46)
at Function.Main (https://deck.net/RunHandler.ashx?h=41910029:21:13)
at https://deck.net/resources/js/bridge/bridge.js?16.0.0-beta2:3144:39
at HTMLDocument.delayfn (https://deck.net/resources/js/bridge/bridge.js?16.0.0-beta2:455:21)
at i (https://code.jquery.com/jquery-2.2.4.min.js:2:27151)
at Object.add [as done] (https://code.jquery.com/jquery-2.2.4.min.js:2:27450)
at n.fn.init.n.fn.ready (https://code.jquery.com/jquery-2.2.4.min.js:2:29515)
at n.fn.init (https://code.jquery.com/jquery-2.2.4.min.js:2:24945)
at n (https://code.jquery.com/jquery-2.2.4.min.js:2:405)

Thanks for the report and excellent sample. We will fix this right away.

Here's another similar test we were using:
https://deck.net/bce3746f396685b7378ea9b6c19fdd01
public class A
{
    public virtual string Name { get; }

    public A()
    {
        Name = "Fail";
        Console.WriteLine(this.Name);
    }
}

public class B : A
{
    public override string Name { get; }
}

public class App
{
    public static void Main()
    {
        var b = new B();
    }
}

This defect has been fixed and will be included in the upcoming 16.0.0-beta3.


go_1_18: 1.18.1 -> 1.18.2

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

go1.18.2 (released 2022-05-10) includes security fixes to the syscall package, as well as bug fixes to the compiler, runtime, the go command, and the crypto/x509, go/types, net/http/httptest, reflect, and sync/atomic packages. See the Go 1.18.2 milestone on our issue tracker for details.

https://go.dev/doc/devel/release#go1.18.minor


Program crash

I used "Craft item" to create a rare Cobalt Jewel. I gave it "Vivid" and "of Resistance" mods, then I wanted to give it Magic rarity via "Edit" and I got this error. I had to press F5 afterwards.

I can't seem to load that image, but it should be the same error reported in #374, which is fixed in the next update.

Re-uploaded this for you @Openarl


Clang 9.0.1 fails when building absl due to unsupported debug levels

absl appears to have issues building at head with clang 9.0.1.
This doesn't occur if the user has Clang6.0.1.

Hm, I am using clang 9.0.1 by default, not a problem here.

It is strange. When I first built with 9.0.1 the build was failing. Switching away from 9.0.1 actually fixed the build. It's possible its an interop issue between the link and specific version of clang. I am hesitant to just mark as fixed and re-encounter the issue when someone else sets up another dev machine.

Closing as this isn't reproducible. Please reopen if you have more issues.


Unable to download from france.tv

Checklist

[X] I'm reporting a broken site
[X] I've verified that I'm running yt-dlp version 2022.04.08 (update instructions) or later (specify commit)
[X] I've checked that all provided URLs are alive and playable in a browser
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[X] I've read about sharing account credentials and I'm willing to share it if required

Region
France
Description
greetings all
this is my first time typing these things, so sorry if i'm reporting in the wrong section. anyway, so earlier today I wanted to download an episode from a cartoon, but when I went to actually download it, I got all these errors. I haven't been on france.tv since mid last year, so I'm not too sure when this problem happened. I can also view the video just fine with Surfshark VPN on the site's player.
cheers!
Verbose log
[debug] Command-line config: ['-vU', '-f', 'bv+ba/b', '--all-subs', 'https://www.france.tv/france-5/ernest-et-celestine/saison-2/2979979-le-club-souris.html']
[debug] User config "/Users/[user]/.config/yt-dlp/config": ['-o', '~/Documents/yt-dlp/%(title)s.%(ext)s']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, err utf-8, pref UTF-8
[debug] yt-dlp version 2022.04.08 [7884ade65]
[debug] Python version 3.10.1 (CPython 64bit) - macOS-12.2.1-arm64-arm-64bit
[debug] Checking exe version: ffmpeg -bsfs
[debug] Checking exe version: ffprobe -bsfs
[debug] exe versions: ffmpeg 4.4.1 (setts), ffprobe 4.4.1, rtmpdump 2.4
[debug] Optional libraries: brotli, certifi, Cryptodome, mutagen, sqlite, websockets
[debug] Proxy map: {}
Latest version: 2022.04.08, Current version: 2022.04.08
yt-dlp is up to date (2022.04.08)
[debug] [FranceTVSite] Extracting URL: https://www.france.tv/france-5/ernest-et-celestine/saison-2/2979979-le-club-souris.html
[FranceTVSite] 2979979-le-club-souris: Downloading webpage
[debug] [FranceTV] Extracting URL: francetv:be838975-eaae-4fcc-9bf0-4ed7c0c595fd
[FranceTV] be838975-eaae-4fcc-9bf0-4ed7c0c595fd: Downloading desktop video JSON
[FranceTV] be838975-eaae-4fcc-9bf0-4ed7c0c595fd: Downloading mobile video JSON
[FranceTV] be838975-eaae-4fcc-9bf0-4ed7c0c595fd: Downloading signed dash manifest URL
[FranceTV] be838975-eaae-4fcc-9bf0-4ed7c0c595fd: Downloading MPD manifest
WARNING: [FranceTV] Failed to download MPD manifest: HTTP Error 403: Forbidden
[FranceTV] be838975-eaae-4fcc-9bf0-4ed7c0c595fd: Downloading signed hls manifest URL
[FranceTV] be838975-eaae-4fcc-9bf0-4ed7c0c595fd: Downloading m3u8 information
WARNING: [FranceTV] Failed to download m3u8 information: HTTP Error 403: Forbidden
ERROR: [FranceTV] be838975-eaae-4fcc-9bf0-4ed7c0c595fd: No video formats found!; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
Traceback (most recent call last):
  File "/Users/[user]/.pyenv/versions/3.10.1/lib/python3.10/site-packages/yt_dlp/YoutubeDL.py", line 1408, in wrapper
    return func(self, *args, **kwargs)
  File "/Users/[user]/.pyenv/versions/3.10.1/lib/python3.10/site-packages/yt_dlp/YoutubeDL.py", line 1492, in __extract_info
    return self.process_ie_result(ie_result, download, extra_info)
  File "/Users/[user]/.pyenv/versions/3.10.1/lib/python3.10/site-packages/yt_dlp/YoutubeDL.py", line 1548, in process_ie_result
    ie_result = self.process_video_result(ie_result, download=download)
  File "/Users/[user]/.pyenv/versions/3.10.1/lib/python3.10/site-packages/yt_dlp/YoutubeDL.py", line 2487, in process_video_result
    self.raise_no_formats(info_dict)
  File "/Users/[user]/.pyenv/versions/3.10.1/lib/python3.10/site-packages/yt_dlp/YoutubeDL.py", line 981, in raise_no_formats
    raise ExtractorError(msg, video_id=info['id'], ie=info['extractor'],
yt_dlp.utils.ExtractorError: [FranceTV] be838975-eaae-4fcc-9bf0-4ed7c0c595fd: No video formats found!; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U

Can't reproduce the issue to fix, working fine, try now once and report again.

I've tried multiple times today with different VPNs and still not allowing me to download episodes.

I did with NordVPN incase if you want to give it a try.

I did with NordVPN incase if you want to give it a try.

tried it just now with NordVPN and it worked! phew.


Add the ability for ConfigBuilders to consume Configs and ConfigBuilders

It would be handy if the config builder could consume already created configs and config builders.
It will allow frameworks to consume a user created configuration in their initialization and then append their needs to it before initializing log4rs.
What it would look like:
impl ConfigBuilder {
    ...

    // root from the passed config is used as the root for the new Config
    pub fn build_with(mut self, config: Config) -> Result<Config, Errors> {
        ...
    }

    pub fn combine(mut self, config: ConfigBuilder) -> ConfigBuilder {
        ...
    }
}

Hi @SarthakSingh31 ,
Thanks for the suggestion. I have a few questions about the proposal. How would you handle precedence of the config options? For instance would combine overwrite every option in self that is defined in config? I think the same question stands the build_with method. What would you think about dropping the build_with method and creating an impl Into<ConfigBuilder> for Config and then just using the combine method?
Currently I don't have the time to implement these, but I would be happy to provide guidance for a PR.
All the best!
Evan

I think Error::DuplicateAppenderName or Error::DuplicateLoggerName should be returned when there is a conflict. It could lead to confusing behavior for the users if the library decides which config to overwrite.
I don't think Into<ConfigBuilder> for Config will work. The conversion somehow needs to pass the root in the build function which cannot be stored inside ConfigBuilder struct. I can implement a trait that will encapsulate structs that can be passed into the build function. Idk if will be better.
I am relatively new to rust but I will like to work on the PR.

I would also like this feature. I like consuming the log4rs yaml file at runtime, because it allows changing the logging config without recompiling, but I often have some part of the logging configuration (Eg the path for a file log) that can only be determined at runtime (eg, its based on the current working directory). At the moment, there is no good way to do this. I can also help with the PR if needed.


Mesh reorganization

This PR substantially reorganizes the navigation and incorporates documentation from the /reference/ section to provide a better experience for new API Mesh users. Previously there were multiple pages for overviews on both handlers and transforms, these pages are being combined, and the sections within them that described specific handlers or transforms are being moved to the pages for the handler or transform.
Several other small changes will be part of this PR.
Staging environment

This PR is on hold awaiting redirect links.


[FEATURE] Adding Welcome E-Mail on Signup

Description
I would like that when we signup, a Welcome email is sent to the person who signed up for the same.
Use Case
Welcome email if the user is first time signing saying that you have successfully signed up for Wanderlust.
Proposed Solution
I would like to implement this feature for the website. I'll use the package "nodemailer" to implement the same.
Additional Information
I will require the admin's "App Password" to create this.
Attachments
No response

@aayushwrld kindly take up other tasks, this we don't presently require


Consider removing the "Cascading deletes"-guides

We have these guides in our docs:

https://www.prisma.io/docs/guides/database/advanced-database-tasks/cascading-deletes/postgresql
https://www.prisma.io/docs/guides/database/advanced-database-tasks/cascading-deletes/mysql
https://www.prisma.io/docs/guides/database/advanced-database-tasks/cascading-deletes/sqlite

I would consider removing them (or maybe moving them to the Data Guide) for these reasons:

These guides were written because Prisma didn't support cascading deletes natively so we needed a resource to point people to if they still wanted to use them that explained a workaround with plain SQL, now that we have proper docs, these workarounds don't seem needed any more.
Most users won't think of this feature as "referential actions" but as "cascading deletes/updates"; when searching for cascading in the docs, the first results that come up are the guides and not the new docs pages

Andrew:
I'm in favour of completely removing the pages, from the principal of lean docs. If Prisma now does this natively, then I don't think we need to document workarounds.
But we do have links to them that we'll need to remove. I need to check that it's OK to remove each of these. In particular, it might be that this workaround is still relevant to earlier versions of Prisma, so we might actually want to keep the pages for now. We could also move the pages to the data guide, as Nikolas suggests, and change the links to point there. I will need to think about/investigate this.
References to these pages in our docs:

concepts/components/prisma-schema/relations/referential-actions/_index (two mentions) - links from delete() and deleteAll() - can we remove?

Also links to: https://www.prisma.io/docs/concepts/components/prisma-schema/relations/referential-actions#how-to-use-cascading-deletes

https://www.prisma.io/docs/concepts/components/prisma-migrate/legacy-migrate#supported-operations
Link to workaround - can we remove it?

https://www.prisma.io/docs/guides/performance-and-optimization/prisma-client-transactions-guide#are-cascading-deletes-supported-by-the-prisma-client-nested-writes

https://www.prisma.io/docs/guides/upgrade-guides/upgrading-versions/upgrading-to-prisma-3/referential-actions#using-introspection - same links as in first item in this list

Unambiguously OK to remove:

_redirects (two mentions)

Current status: done and merged. I concluded that we couldn't remove these docs, but I've mitigated the issue by adding better signposting to the various pages involved.

I just searched for "unique" in the docs and the DB workflows about UNIQUE constraints came up first in the search:

That's not ideal because these guides show how to define UNIQUE constraints in SQL. These guides were written before Prisma Migrate was ready and it wasn't possible to define UNIQUE constraints via the Prisma data model. I think this is a similar case as the cascading delete guides and we should consider removing these guides.

The guides are still present.

The guides are still present.

Yes, we decided to keep them for now, because the docs are still relevant to users on older versions. The problem is not the existence of the cascading deletes guides per se, but that they are too prominent in the search results, and it is hard for users on newer versions to get to the referential actions page. We therefore put in more cross-linking and signposting to help users get to the right docs.
I made these changes in https://github.com/prisma/docs/pull/3445.

The guides have been removed from the docs. Feel free to reopen if they're still present


ZH-trans: add 2015-05-00-Weekly-Kubernetes-Community-Hangout.md

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Please delete this note before submitting the pull request.
For 1.14 Features: set Milestone to 1.14 and Base Branch to dev-1.14
For Chinese localization, base branch to release-1.12
For Korean Localization: set Base Branch to dev-1.13-ko.
Help editing and submitting pull requests:
https://kubernetes.io/docs/contribute/start/#improve-existing-content.
Help choosing which branch to use:
https://kubernetes.io/docs/contribute/start#choose-which-git-branch-to-use.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

I see you are digging into some historical stuff, that’s cool. However, some of them may be somewhat outdated, so watch out for them, or you might want to start from recent posts if you want to produce more useful things :)

I know what you mean. I'll start in 2018，thanks


Failed to set weights: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

Failed to set weights: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() -
38|sn-42-vali-2  |   File "/root/masa-bittensor-92ltt/masa/utils/weights.py", line 209, in process_weights_for_netuid
38|sn-42-vali-2  |     logging.debug("non_zero_weights", *non_zero_weights)
38|sn-42-vali-2  |   File "/root/masa-bittensor-92ltt/bittensor/lib/python3.12/site-packages/bittensor/utils/btlogging/loggingmachine.py", line 437, in debug
38|sn-42-vali-2  |     self._logger.debug(msg, *args, **kwargs)
38|sn-42-vali-2  | Message: '0.37024685740470886 - non_zero_weights - 0.5668483972549438'
38|sn-42-vali-2  | Arguments: (np.float32(0.06290477),)
Masa-Bittensor version:
main: commit id: 23a811ad8ead66582fcc01c934eecb8a1d6ab30e
Environment, CPU architecture, OS, and Version:
ubuntu 22.04, python 12.3
Describe the bug
Set weight error
input data debug:
uids: [0 1 2 3 4 5 6 7]
weights: [0.37024686 0.         0.         0.         0.         0.5668484 0.06290477 0.         ]
To Reproduce

Expected behavior
I am running as a VALIDATOR in Local
Logs
38|sn-42-vali-2  |   File "/root/masa-bittensor-92ltt/masa/utils/weights.py", line 209, in process_weights_for_netuid
38|sn-42-vali-2  |     logging.debug("non_zero_weights", *non_zero_weights)
38|sn-42-vali-2  |   File "/root/masa-bittensor-92ltt/bittensor/lib/python3.12/site-packages/bittensor/utils/btlogging/loggingmachine.py", line 437, in debug
38|sn-42-vali-2  |     self._logger.debug(msg, *args, **kwargs)
38|sn-42-vali-2  | Message: '0.37024685740470886 - non_zero_weights - 0.5668483972549438'
38|sn-42-vali-2  | Arguments: (np.float32(0.06290477),)
Additional context

More log:
****** ^_^ ******* self.subtensor.set_weights |uids: [0 1 2 3 4 5 6 7] |weights: [0.36349228 0.         0.00941691 0.00941691 0.00941691 0.5087384
38|sn-42-v |  0.0995186  0.        ] |self.config.netuid: 2  |self.subtensor: subtensor(local, ws://<IP_ADDRESS>:9946) |self.metagraph: metagraph(netuid:2, n:8, block:114939, network:local)
38|sn-42-v | 2024-10-16 06:45:11.214 |      DEBUG       | bittensor:loggingmachine.py:437 | quantile
38|sn-42-v | 2024-10-16 06:45:11.214 |      DEBUG       | bittensor:loggingmachine.py:437 | 1 - min_allowed_weights
38|sn-42-v | 2024-10-16 06:45:11.214 |      DEBUG       | bittensor:loggingmachine.py:437 | 1.0 - max_weight_limit
38|sn-42-v | 2024-10-16 06:45:11.216 |      DEBUG       | bittensor:loggingmachine.py:437 | 0.8333333333333334 - max_exclude
38|sn-42-v | 2024-10-16 06:45:11.216 |      DEBUG       | bittensor:loggingmachine.py:437 | exclude_quantile
38|sn-42-v | 2024-10-16 06:45:11.216 |      DEBUG       | bittensor:loggingmachine.py:437 | 0.009416909888386726 - lowest_quantile
38|sn-42-v | 2024-10-16 06:45:11.218 |      ERROR       | bittensor:loggingmachine.py:457 |  - Setting weights failed: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() -

appreciate the issue!  this has been solved in release 1.0.2.  It is a bug within the Bittensor library, in versions 8.1.0, 8.1.1, and 8.2.0.  We are submitting a PR to their repo today w/ the fix.


Binary Search

Submission Title
Binary Search
Submission Type
Algorithms
Submission Description
Search a sorted array by repeatedly dividing the search interval in half
Contributors

[x]  C++ -
[ ]  C -
[x]  Python -
[x] Java -
[ ] JavaScript -
[ ] Golang -

I want to contribute to this task through C++ @ahampriyanshu please assign this task to me .

Can I do that problem?? In  Java and python

i would like to work on the javaScript version

Assign me in Java if you could @ahampriyanshu

@Singh-Aishwarya go ahead with java
@Dheeraj-01 go ahead with python

Assign me in js @ahampriyanshu Thanks

Assign me in js @ahampriyanshu Thanks

I means javascript

@all-contributors please add @realvaibhav  for code

@all-contributors please add @killerpanda101   for code

@all-contributors please add @Dheeraj-01 for code

@all-contributors please add @harikesh409  for code

@all-contributors please add @GGolfz  for code

Hi @ahampriyanshu , could you please help removing or renaming one of the Javascript files for binary search.
There are two files with exactly same name (only difference is Case) and git not able to handle properly in Mac(and I think might be in Windows as well).
Thank you.

thanks @everyone :v:


FR: Matching maps with various type

Given an actual map like this:
        Map actual = Map.of(
                "k1", Map.of(
                        "k11", "v11",
                        "k12", "v12"),
                "k2", List.of("v21", "v22"),
                "k3", "V3"
        );

I wish/expect to make an assertion with matcher that looks like this:
        assertThat(actual, AllOf.allOf(
                IsMapContaining.hasEntry("k1", AllOf.allOf(
                        IsMapContaining.hasEntry("k11", "v11"),
                        IsMapContaining.hasEntry("k12", "v12"))
                ),
                IsMapContaining.hasEntry("k2", IsIterableContainingInOrder.contains("v21","v22")),
                IsMapContaining.hasEntry("k3", "v3")
                )
        );

But this fails with
    method org.hamcrest.core.AllOf.<T>allOf(java.lang.Iterable<org.hamcrest.Matcher<? super T>>) is not applicable
      (cannot infer type-variable(s) T
        (actual and formal argument lists differ in length))
    method org.hamcrest.core.AllOf.<T>allOf(org.hamcrest.Matcher<? super T>...) is not applicable
      (inferred type does not conform to upper bound(s)
        inferred: java.util.Map<? extends java.lang.String,? extends java.lang.String>
        upper bound(s): java.util.Map<? extends java.lang.String,? extends java.lang.String>,java.util.Map<? extends java.lang.String,? extends org.hamcrest.Matcher<java.lang.Iterable<? extends java.lang.String>>>,java.util.Map<? extends java.lang.String,? extends org.hamcrest.Matcher<java.util.Map<? extends java.lang.String,? extends java.lang.String>>>,java.lang.Object)
    method org.hamcrest.core.AllOf.<T>allOf(org.hamcrest.Matcher<? super T>,org.hamcrest.Matcher<? super T>) is not applicable
      (cannot infer type-variable(s) T
        (actual and formal argument lists differ in length))
    method org.hamcrest.core.AllOf.<T>allOf(org.hamcrest.Matcher<? super T>,org.hamcrest.Matcher<? super T>,org.hamcrest.Matcher<? super T>) is not applicable
      (inferred type does not conform to upper bound(s)
        inferred: java.util.Map<? extends java.lang.String,? extends java.lang.String>
        upper bound(s): java.util.Map<? extends java.lang.String,? extends java.lang.String>,java.util.Map<? extends java.lang.String,? extends org.hamcrest.Matcher<java.lang.Iterable<? extends java.lang.String>>>,java.util.Map<? extends java.lang.String,? extends org.hamcrest.Matcher<java.util.Map<? extends java.lang.String,? extends java.lang.String>>>,java.lang.Object)
    method org.hamcrest.core.AllOf.<T>allOf(org.hamcrest.Matcher<? super T>,org.hamcrest.Matcher<? super T>,org.hamcrest.Matcher<? super T>,org.hamcrest.Matcher<? super T>) is not applicable
      (cannot infer type-variable(s) T
        (actual and formal argument lists differ in length))
    method org.hamcrest.core.AllOf.<T>allOf(org.hamcrest.Matcher<? super T>,org.hamcrest.Matcher<? super T>,org.hamcrest.Matcher<? super T>,org.hamcrest.Matcher<? super T>,org.hamcrest.Matcher<? super T>) is not applicable
      (cannot infer type-variable(s) T
        (actual and formal argument lists differ in length))
    method org.hamcrest.core.AllOf.<T>allOf(org.hamcrest.Matcher<? super T>,org.hamcrest.Matcher<? super T>,org.hamcrest.Matcher<? super T>,org.hamcrest.Matcher<? super T>,org.hamcrest.Matcher<? super T>,org.hamcrest.Matcher<? super T>) is not applicable
      (cannot infer type-variable(s) T
        (actual and formal argument lists differ in length))

I thnk this is related to

https://github.com/hamcrest/JavaHamcrest/issues/284
https://github.com/hamcrest/JavaHamcrest/issues/252
https://github.com/hamcrest/JavaHamcrest/issues/107

I was looking at this issue, and I'm struggling to work out how to fix this. I tried to recreate the example as described above, but pulling out all the individual matchers so that I could inspect the exact types. Here's what I ended up with:
public void testNestedMatchers() {
    String k1 = "k1";
    Map<String, String> v1 = Map.of(
            "k11", "v11",
            "k12", "v12");
    String k2 = "k2";
    List<String> v2 = List.of("v21", "v22");
    String k3 = "k3";
    String v3 = "v3";
    Map<String, Object> actual = Map.of(
            k1, v1,
            k2, v2,
            k3, v3
    );

    Matcher<? super String> k1Matcher = equalTo("k1");
    assertThat(k1, k1Matcher);
    Matcher<Map<? extends String, ?>> kv11Matcher = hasEntry("k11", "v11");
    assertThat(v1, kv11Matcher);
    Matcher<Map<? extends String, ?>> kv12Matcher = hasEntry("k12", "v12");
    assertThat(v1, kv12Matcher);
    Matcher<Map<? extends String, ? extends String>> v1Matcher = allOf(kv11Matcher, kv12Matcher);
    assertThat(v1, v1Matcher);
    Matcher<? super Map<? extends String, ?>> kv1Matcher = hasEntry(k1Matcher, v1Matcher);
    // ^ error: incompatible types: inference variable V has incompatible bounds
    //        Matcher<? super Map<? extends String, ?>> kv1Matcher = hasEntry(k1Matcher, v1Matcher);
    //                                                                       ^
    //    upper bounds: Map<? extends String,? extends String>,Object
    //    lower bounds: Object
    //  where V,K are type-variables:
    //    V extends Object declared in method <K,V>hasEntry(Matcher<? super K>,Matcher<? super V>)
    //    K extends Object declared in method <K,V>hasEntry(Matcher<? super K>,Matcher<? super V>)
    Matcher<Iterable<? extends String>> v2Matcher = contains("v21", "v22");
    assertThat(v2, v2Matcher);
    Matcher<Map<? extends String, ?>> kv2Matcher = hasEntry(equalTo("k2"), v2Matcher);
    // ^ error: incompatible types: inference variable V has incompatible bounds
    //        Matcher<Map<? extends String, ?>> kv2Matcher = hasEntry(equalTo("k2"), v2Matcher);
    //                                                               ^
    //    equality constraints: Object
    //    upper bounds: Iterable<? extends String>,Object
    //  where V,K are type-variables:
    //    V extends Object declared in method <K,V>hasEntry(Matcher<? super K>,Matcher<? super V>)
    //    K extends Object declared in method <K,V>hasEntry(Matcher<? super K>,Matcher<? super V>)
    assertThat(actual, kv2Matcher);
    Matcher<Map<? extends String, ?>> kv3Matcher = hasEntry("k3", "v3");
    assertThat(actual, kv3Matcher);
    Matcher<Map<? extends String, ?>> fullMatcher = allOf(kv1Matcher, kv2Matcher, kv3Matcher);
    assertThat(actual, fullMatcher);
}

Expanding out the types like this, I get the compilation errors as noted in the comments above. This is the definition  of hasEntry:
public static <K, V> Matcher<Map<? extends K, ? extends V>> hasEntry(Matcher<? super K> keyMatcher, Matcher<? super V> valueMatcher) {
    return new IsMapContaining<>(keyMatcher, valueMatcher);
}

To me, it looks like this is following the PECS rule (see https://stackoverflow.com/questions/2723397/what-is-pecs-producer-extends-consumer-super). In this instance, the method arguments are acting as consumers of values (hence the super), while the matcher as a whole is acting against a collection from which values are produced (hence the extends).
I recently put in a fix for the IsIterableContaining matcher without a problem using this guide, but this doesn't seem to be the same issue. I'm thinking that the extra complexity of having the 2 type variables (K and V) doesn't give enough constraints to the compiler.
Does anyone have any suggestions?


Running Export-T2TAttributes from a non-Exchange is not dumping proxyAddresses

Running Export-T2TAttributes from a non-Exchange is not dumping proxyAddresses to the CSV.

The issue happens only in non-Exchange because the current if relies on the prefix property which is only returned from Exchange Server:
if (($email.Prefix -like 'SMTP' -or $email.Prefix -like 'X500') -and $email -notlike '.onmicrosoft.com')
if ($IncludeSIP.IsPresent -and $email.Prefix -like 'SIP')
if (($email.Prefix -like 'SMTP' -or $email.Prefix -like 'X500') -and $email -like '.onmicrosoft.com')
Further version (1.1.0) this issue will be fixed by changing the condition to rely on the like operator:
if (($email -like 'SMTP:' -or $email -like 'X500:') -and $email -notlike '.onmicrosoft.com')
elseif ($IncludeSIP.IsPresent -and $email -like 'SIP:')
elseif ($email -like 'SMTP:' -and $email -like '.onmicrosoft.com')


DocsArchive-<IP_ADDRESS>Auto archive content

Auto archive content from https://github.com/OPS-E2E-PPE/docs-archive-test-source

Docs Build status updates of commit e745bac:
:clock10: Pending: waiting for processors (6 builds ahead of you)
:warning: Docs Build is busy, currently there are 6 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

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

File
Status
Preview URL
Details

:x:Error

Details

[Error]

Cannot sync git repo to specified commit because branch Archive_master_2019-10-08-08-59-01 has been deleted or has been force pushed: fatal: Couldn't find remote ref Archive_master_2019-10-08-08-59-01

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


Thread X: exc_bad_access code=1 on line 73 in SwiftOperation.swift

I'm having an issue when calling the list function from a background thread. I'm using the _session.list function exactly as in the examples and I'm calling that function in a while loop to check for files on server every N seconds. I'm waiting for every list function to finish before calling it again in the loop.
The issue happens on line 73 in file SwiftOperation.swift.
self.currentStream?.close()
The program breaks after a short amount of time with error: Thread X: exc_bad_access code=1 (X = thread number, never equal to 1 obviously since I call it in a non main thread).
Has anyone had this issue, or by any chance already solved it? Thank you.

I'm linking the stackoverflow question to this issue, maybe the answer will pop up there.
https://stackoverflow.com/questions/50317138/rebekka-ftp-framework-exc-bad-access-code-1-address-0x0


.

Hi, @dougwilson, sry to bother you... you wrote:

Yes, this issue has plenty of feedback. There is no need for more, as stated above it was already decided upon. This is essentially now a tracking issue for landing the change. I'm going to lock it to prevent further comments that are no longer needed. https://github.com/expressjs/express/issues/2755#issuecomment-974867330

Could you summarize what you meant by it? (so others like me don't ask more dum question like this)
What node version did you decide to support/drop?
A one liner sentence would be sufficient of what your intentions are... both to your last comment and to the top post (as an edit/update),
no need to comment here... thanks

https://github.com/expressjs/body-parser/pull/448

https://github.com/expressjs/express/issues/2755#issuecomment-382499774

ty, it was a bit buried amongst all the comments

Yea, unfortunately people will comment without reading, burrying important comments. I hid every comment after it now so perhaps that will help.


flatMap does not work as expected with ListComprehender

Monad wrappers around lists with the new factory methods involving the native ListComprehender do not flatMap as expected. The follwoing test fails with
java.lang.ClassCastException: java.util.stream.ReferencePipeline$Head cannot be cast to java.util.List at com.aol.cyclops.comprehensions.comprehenders.ListComprehender.lambda$executeflatMap$29(ListComprehender.java:30)
@Test
public void flatMapWithListComprehender() {
    List<Integer> list = Arrays.asList(1,2,3);
    AnyM<Integer> any = AsAnyM.anyMList(list);
    AnyM<Integer> mapped = any.flatMap(e -> any.unit(e));
    List<Integer> unwrapped = mapped.unwrap();
    assertEquals(list, unwrapped);
}

Thanks for this - I've added this unit test and it passes locally for me (against the cyclops source that should have gone in to 6.1.0) - I'm going to check it directly against the current 6.1.0 to confirm the issue.
I've added your test here : https://github.com/aol/cyclops/blob/master/cyclops-monad-api/src/test/java/com/aol/cyclops/lambda/monads/AnyMTest.java

I can replicate this issue running from the jar file. Working on a fix.

fixed in cyclops 6.1.1
List Comprehension is more efficient in 6.1.1 also
@Test
public void flatMapWithListComprehender() {
List list = Arrays.asList(1,2,3);
AnyM any =  AnyM.fromList(list);
AnyM mapped = any.flatMap(e -> any.unit(e));
List unwrapped = mapped.unwrap();
assertEquals(list, unwrapped);
}


People API results incorrect for combined role and name request

http://localhost:3000/api/v1/people?roles=SourceEditor&last_name=murphy&token=hp7-CAdxGHZLtyiq4n8hmw
should return no names, but instead returns all last names of Murphy (same as if no roles specified).  All Murphys in this database are < SourceAuthor >s.

I'm sorry, this should have been people, not sources -- edited title !

Closing, currently returns nothing.


[bug]: RPC ERROR: Database Error error returned from database: could not open file "base/16385/2601": Read-only file system

Prerequisites

[X] I have searched for existing issues that already report this problem.

embassyOS Version
0.3.3
Device
Laptop/Desktop
Device OS
MacOS
Device OS Version
Ventura 13.1
Browser
Chrome
Browser Version
109.0.5414.119 (Build oficial) (arm64)
Current Behavior
Whenever I try to connect to my node the error appears, in Windows/MacOS in Chrome, Firefox and Tor. I tried rebutting the node by disconnecting it from the power source and when I plugged in the power connector I couldn't even access to the login page.
I tried reinstalling the OS and it worked. Later in the day my account logged off and I lost access again... back to the loop.
Expected Behavior
to gain access to the OS.
Steps to Reproduce

On this page http://embassy-amber-policy.local/#/login
introducing my password
Error appears.

Anything else?
No response

What hardware is this?

It's a raspberry pi 4

Same problem worked fine yesterday. Also on a Raspberry Pi 4.

What SSDs and enclosures are you using?

What SSDs and enclosures are you using?

I´m ussing this:

I´m ussing this:

Unfortunately the JMicron devices are known to cause problems.  We are able to audit our own enclosures, but we no longer recommend them since they are made by different manufacturers, which makes them unreliable.  This is why we moved to an all-in-one case with proper power management and larger power supply.
Your problems are almost certainly with this hardware.  @QooXyy - you can find out if you have a JMicron device by running lsusb after plugging the enclosure into a Linux machine.

I´m ussing this:

Unfortunately the JMicron devices are known to cause problems. We are able to audit our own enclosures, but we no longer recommend them since they are made by different manufacturers, which makes them unreliable. This is why we moved to an all-in-one case with proper power management and larger power supply.
Your problems are almost certainly with this hardware. @QooXyy - you can find out if you have a JMicron device by running lsusb after plugging the enclosure into a Linux machine.

Yeah I think it’s JMicron.

I´m ussing this:

Unfortunately the JMicron devices are known to cause problems. We are able to audit our own enclosures, but we no longer recommend them since they are made by different manufacturers, which makes them unreliable. This is why we moved to an all-in-one case with proper power management and larger power supply.
Your problems are almost certainly with this hardware. @QooXyy - you can find out if you have a JMicron device by running lsusb after plugging the enclosure into a Linux machine.

Yeah I think it’s JMicron. So just get a Geekworm NASPi V2.0 case and I’m good right?

Yes that should work.  If you want to follow our guide you will have the speaker helpful for diagnostics, better fan, etc:
https://docs.start9.com/latest/diy/diy-pi

Well after getting the Case setting everything up again same error and after restart not finding server anymore. What now?

Well after getting the Case setting everything up again same error kinda I think something with Database Error 2 it was. And after restart not finding server anymore. What now? Had umbrel installed before and everything worked fine there, but found embassy, and I like it much more.

We'll need more context to understand your problem.  How are you trying to access and what error are you getting?  Are you getting startup sounds from Embassy?  If so, which ones?

Well after getting the Case setting everything up again same error kinda I think something with Database Error 2 it was. And after restart not finding server anymore. What now? Had umbrel installed before and everything worked fine there, but found embassy, and I like it much more.

We'll need more context to understand your problem. How are you trying to access and what error are you getting? Are you getting startup sounds from Embassy? If so, which ones?

Got no speaker on it everything worked till I rebooted then database error again after that page just offline even after reboot, Would love to give more info, but that's it basically it. Installed everything worked reboot -> database error -> just error with no info -> page offline

There must be something wrong in your side, because its working in Umbrel...

There must be something wrong in your side, because Umbrel works well...

@MKant0 are you using the exact same hardware?  Like you formatted the disk and went back to umbrel?  Or what exactly?
Read-only file system can indicate errors detected on the filesystem, then it mounted it read only so that writes wouldn't further corrupt it.  Usually a few reboots will make the error go away but if it persists, a good way to proceed is probably to back up your data if possible and then start with a freshly wiped partitions and then fresh partitions with a freshly formatted filesystem.

@MKant0 are you using the exact same hardware?  Like you formatted the disk and went back to umbrel?  Or what exactly?
Read-only file system can indicate errors detected on the filesystem, then it mounted it read only so that writes wouldn't further corrupt it.  Usually a few reboots will make the error go away but if it persists, a good way to proceed is starting with wiping the partitions and then fresh partitions with a freshly formatted filesystem.

I'm ussing the same setup, no changes.
I rebooted embassy os 3 times, every time it worked great at the first login, after a couple of hours I couldn't access back by local and tor.

"couldn't access" - meaning that's when you saw the errors about the read only filesystem?

There must be something wrong in your side, because Umbrel works well...

If you search their support channels, you will find that "read-only" filesystem errors happen on umbrel, mynode, ronin dojo, and raspiblitz as well.  This is not a problem with embassyOS.  This problem is at the kernel level and from what we can gather it is due to the Raspberry Pi's inferior data connection combined with issues surrounding external enclosures/drives.  These machines were simply not built to deal with external storage and be used as servers, but the NASPi option we have built is generally reliable.  These issues are infrequent, and are almost always fixed by a reboot, which is suggested by all the projects I listed above.  There is another possible workaround, but due to risk of data corruption, we have decided not to implement it - if you search around you will find it, but we do not recommend it.  If you are not getting the same error, then there is a different problem and we are happy to help diagnose that.  If the error is the same, you may try re-seating the USB "loop" at the back of the device, or testing with a usb-to-usb cable as we have occasionally seen these arrive DOA.

I have also recently been getting this error. My hardware is:

Argon ONE M.2 case

SanDisk 32GB MAX Endurance Micro SD

WD Blue 2TB SSD

It seems that after rebooting everything works. Unfortuneately after some time passes I get logged out and upon trying to login again I get the same error.

I have also recently been getting this error. My hardware is:

Argon ONE M.2 case

SanDisk 32GB MAX Endurance Micro SD

WD Blue 2TB SSD

It seems that after rebooting everything works. Unfortuneately after some time passes I get logged out and upon trying to login again I get the same error.
Edit: It seems to happen daily BTW

You might like to try a USB cable instead of the USB adapter on back - sometimes these can be poor quality.  If the cable works, then replace the adapter.

Replacing the adapter with a USB cable seems to have done the trick. So far so good, thanks for the advice :)


Decision activity proposal

This implements point 3 from https://github.com/cds-hooks/docs/issues/18#issuecomment-282141134
This adds a new concept to the decision return from CDS service to hint at a subsequent action and related resources. This also generalizes the name of "hook catalog" to be called "activity catalog", as it serves as describing actions, of which could be used as web hooks.

Thanks @bkaney! I think the key contributions here are:

Generalizing the activities catalog to work in both directions: an EHR can tell a service "hey, the user is doing this activity", and an app can tell the EHR "hey, here's a good activity for the user to do next".

Updating the decision data model to support this communication back to the EHR

I'm definitely in favor.
I noticed, in the process, that our docs for decisions.create are missing something: they specify a list of ids, but what we actually need (and the way our test implementations work) is a list of resources. Does this match your expectations?

I noticed, in the process, that our docs for decisions.create are missing something: they specify a list of ids, but what we actually need (and the way our test implementations work) is a list of resources. Does this match your expectations?

Yea, they could be resources. However, as we aren't the FHIR server persisting the resource, we'd have to figure out a way to reference them (in the actions structure). Perhaps the CDS service would mint an ID for each resource and use #anchor-tag style contained reference?

Hey Guys,
This is a really neat idea. I think that a decision returning an EHR activity is great functionality and we should try to make it happen.

I'm not sure that a hook and an activity are actually the same thing. For example, take a look at the proposed hooks, these seem reasonable as hooks, but aren't specific enough to identify an activity.

How does the decision define the activity's "parameters". I think that your example specifies a CarePlan as input to a medication-prescribe activity. What does that mean? Is there a medication that should be pre-populated into the EHR's medication-prescribe activity?

Isaac

Hi @isaacvetter --

I'm not sure that a hook and an activity are actually the same thing. For example, take a look at the proposed hooks, these seem reasonable as hooks, but aren't specific enough to identify an activity.

I see what you mean. I was thinking we avoid having both a "hook catalog" and then another "post hook catalog". Especially after observing the contents both describe what I think of as activities. Instead, there would be a single catalog where the usage context would be as a "hook" or "next action".

How does the decision define the activity's "parameters". I think that your example specifies a CarePlan as input to a medication-prescribe activity. What does that mean? Is there a medication that should be pre-populated into the EHR's medication-prescribe activity?

I updated the example to be a bit more simplified, including expanding the resources inline. Have a look and see if this addresses your questions.


Crash on Load, Potentially with the Dolls

Had Cheeyev#2468 come in the atm discord channel with this crash. Looking through the logs, it almost looks like forge is seeing all 8 potential dolls, when only a few of them are loaded.
Minecraft: 1.12.2
Forge: <IP_ADDRESS>05
Ex Nihilo Creatio: 1.12-0.2.3
Crash Logs:
https://pastebin.com/AcGr2KJ0 --- Looks like this one is set to expire on 6/26
http://openeye.openmods.info/crashes/59490234b51180af22977b2ebe6e45be

Should be fixed now, for anyone wondering, was happening when tinkers is installed, but thermals is not ^^


Upgrade embedded Kotlin to 1.3.30

Signed-off-by: Rodrigo B. de Oliveira<EMAIL_ADDRESS>

AbstractSmokeTest should be updated too

@eskatos Done.


Add index-based filtering to table listing

For now, only support index based filtering, i.e: [INDEX]=[VALUE]. More complex filtering would require https://github.com/ovn-org/libovsdb/pull/209 to get merged
Fixes: #25

@lewisdenny can you please try this PR? You should be able to use the image as per the instructions in the Readme.md using this image: quay.io/amorenoz/ovsdb-mon:filters

Hey Adrián,
Could you please provide an example command to run? I can't seem to get it to work and don't see it in the help menu either.
>>> list Logical_Switch_Port help

List the content of Table Logical_Switch_Port

Logical_Switch_Port [Field1 Field2 ...]
        [Field1 Field2 ...]: List of fields to show (default: all fields will be shown)
                Possible Fields: UUID, Addresses, Dhcpv4Options, Dhcpv6Options, DynamicAddresses, Enabled, ExternalIDs, HaChassisGroup, Name, Options, ParentName, PortSecurity, Tag, TagRequest, Type, Up

[root@overcloud-controller-0 ~]# podman images | grep ovs
quay.io/amorenoz/ovsdb-mon                                                    filters      3e03a66b5759   12 hours ago   1.26 GB

You're right @lewisdenny , sorry. The container is not picking up the code it should. Let me fix that real quick

Rebased this branch on top of #31 which fixes the image generation.
@lewisdenny you can now try the latest "fixes" tag

@amorenoz ++ tested and working great, thank you!


Investigate populating the fs cache with fs watcher data

Re: #88 #122
When file watchers start, they crawl the targeted parts of the file system and generate a lot of data, some of which could be fed directly into the fs cache.
The primary benefit would be reducing the overheads on fs reads for stat, modifiedTime and isFile calls. Practically, this would help to reduce the time spent on dependency resolution during an initial build.

I started to implement some hooks for this, but removed them in https://github.com/markfinger/unfort/commit/1b24b8dc4450c72fdc1fc8a6cd004657a77d7808
My primary concern was the increasing complexity of various fs abstractions, and their interactions with one another.
I still think this is worth pursuing, but not until the project (and in particular the file_system module) has stabilised.


Unexpected change when undoing a paragraph copy with a preceding paragraph style

Expected Behavior
After copying a newline operator that directly follows a line of text that is completely styled, there should not be an exception when undoing that copy & paste.
Actual Behavior
The following exception appears:
Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: Unexpected change received.
Expected:
[RichTextChange{
	position: 59
	removed: Par[; StyledSegment(segment=left() style=true,12,Serif,0x000000ff)]
Par[; StyledSegment(segment=left(this is the copied line) style=12,Serif,0x000000ff)]
	inserted: Par[; StyledSegment(segment=left() style=12,Serif,0x000000ff)]
}]
Received:
[RichTextChange{
	position: 59
	removed: Par[; StyledSegment(segment=left() style=12,Serif,0x000000ff)]
Par[; StyledSegment(segment=left(this is the copied line) style=12,Serif,0x000000ff)]
	inserted: Par[; StyledSegment(segment=left() style=12,Serif,0x000000ff)]
}]
	at org.fxmisc.undo.impl.UndoManagerImpl.changeObserved(UndoManagerImpl.java:234)
	at org.reactfx.util.QueuingStreamNotifications.lambda$head$0(NotificationAccumulator.java:217)
	at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
	at org.reactfx.SuspendableBase.resume(SuspendableBase.java:64)
	at org.reactfx.CloseableOnceGuard.close(Guard.java:49)
	at org.reactfx.MultiGuard.close(Guard.java:83)
        ...

After this exception, all input to the text area is broken. It is not even possible anymore to move the caret.
Steps To Reproduce

Run the RichTextDemo example
Add two lines
The first line should be styled in its entirety
The second line's styling seems to be irrelevant (based on my testing)
Copy the second line along with the preceding newline (so that the selection looks like this:

Paste the clipboard contents after the second line
Hit CTRL + Z to undo

Let me know if I was unclear in some step. I was able to consistently reproduce this in both my own repository and the RichTextDemo. As far as I can see, #903 is unrelated to this issue, though I could be wrong about that.

It appears that this bug was introduced way back in v0.8.0 with PR #565 to resolve issue #554.
Reverting that change resolves the case outlined above, unfortunately there's no test case for 565 .... ?
Will continue to look into it and try to develop test cases ..... but the undo manager's merge changes timeout is a problem in accomplishing that.


tsrc sync failing after git push force on one of its repos

Is your feature request related to a problem? Please describe.
I know it's a bad practice, but when working alone and not using tools such as gerrit (by the way is tsrc can deal with code review such gerrit ?) you may tempt to do some git push force but if your coworker has an older snapshot of the project and wants to synchronize, the command tsrc sync will fail on his side.
 From my memory, when typing pull rebase the tsrc sync will work back

by the way is tsrc can deal with code review such gerrit ?

Nope, doing that would be out of the scope of  tsrc. But there are tools for that, like git review

the command tsrc sync will fail on his side - tsrc sync should do some git pull --rebase origin master

Sorry, no. tsrc is designed to not do anything surprising or potentially destructive, thus we can't  automatically running pull --rebase on behalf of the user.
You can use something like tsrc foreach -c 'git pull --rebase $TSRC_PROJECT_REMOTE_ORIGIN' - we designed tsrc foreach  for precisely this use case - making tsrc do something slighty different than the default.

That, being said, I realize we don't provide a way to get the name of the remote. Will open a separate bug for that.

@dmerejkowsky I'm not sure to understand you when you said anything surprising or potentially destructive concerning pull --rebase ? In my opinion, pull rebase is not destructive : it does not lose your local commits. By destructing, do you mean possible merge conflict ? I do not know the python API for git but when you detect a merge conflict, you can cancel the inprogress rebase.


Little  Updation in Home Page

Description
I have done the few changes in the home page. which are :

Fixed The Header.
Added Background Color in NavBar (Mobile Screen).
Added Contact Us with Social Media Icon

Fixes #72
Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Explain the Testing instructions
Test Configuration:

Operating system: Windows
Version: 10
IDE: VS Code

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

ATTACH SCREEN-SHOTS
Header :  Before Update

Header : After Update

Added Background Colour(Mobile Screen View)

Added  Contact Us With Social Icons
Mobile View

Desktop View

Desktop View With Hover Effect

HI @sudeepshukla930, i really appreciate your efforts, but you are making changes to old codebase, dont worry, we will give you another chance to get things done. Please have a look here #12


Cannot fetch products without login

Hi,
It's currently not possible to get available offerings without logging in. While I understand the design considerations (https://www.revenuecat.com/docs/web/revenuecat-billing), it makes user flow a little less clean--e.g. a user must login to view the pricing/offers/products etc.
I am migrating my existing Stripe integration for web (+ CapacitorJS for iOS and PWA/TWA for Android), so I've just built out the CapacitorJS integration and now I'm attempting to integrate the purchases-js sdk.

Thanks @nicfix - that sounds like that'll achieve what I'm aiming to do.
I really like how RC tracks the changing user ids and login events on mobile - doing this on web too would be great - appreciate the engineering overheads :)!
At the moment I'll likely work around the current 'login required to see pricing' with a placeholder, as we enforce login to purchase anyway and then migrate when the anon login is available.

Perfect @tristan-morris, I'll come back to you here whenever we'll publish the redemption links (very soon).
Thanks again for using purchases-js and RevenueCat!


Remove: SAPIEN.PowerShellStudio version <IP_ADDRESS>

Requires a specific user agent to download now

[X] Have you signed the Contributor License Agreement?
[X] Have you checked that there aren't other open pull requests for the same manifest update/change?

[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.6 schema?

Microsoft Reviewers: Open in CodeFlow

URL: https://sapien-sps.s3.amazonaws.com/SPS23Setup_5.8.231_092023_x64.exe
Response status code does not indicate success: 403 (Forbidden).
(Automated message - build 830)


Input group resizing broken on Firefox

Current Behavior
On Firefox, if you use the input group component as described in the documentation, the input section reaches a minimum width and causes the shims to be hidden. You can actually see this happen in the docs themselves. Only seems to be an issue for shims on the right. When I changed the styling to use grid-cols-[auto_minmax(0, 1fr)_auto] that seemed to fix it, but then if you type past the width of the input everything gets moved around.
Expected Behavior
The input should resize as the screen gets smaller the way it does in chrome.
Steps To Reproduce

Add the example code from the docs:

Amount

(icon)

  <input type="text" placeholder="Amount" />
  <select>
    <option>USD</option>
    <option>CAD</option>
    <option>EURO</option>
  </select>

Decrease the width of the screen until the shim starts clipping.

Link to Reproduction / Stackblitz
https://stackblitz.com/edit/sveltejs-kit-template-default-pb9d92?description=The default SvelteKit template, generated with create-svelte&file=src%2Froutes%2F%2Bpage.svelte,src%2Froutes%2F%2Blayout.svelte&title=SvelteKit Default Template
More Information
No response

This also happens on Safari on iOS, using an iPhone.

I tried removing the input-group-divider class and seems to fix it.

I tried removing the input-group-divider class and seems to fix it.

Not sure what you mean. I tried removing that class and all it did was remove the dividers as well as break the resizing on Chrome and Firefox.

FYI I have a PR incoming here:
https://github.com/skeletonlabs/skeleton/pull/2343
This does NOT yet address the core issue described. But rather just updates our doc to provide a better example of the intended use case. This is what I'm going to consider a "band-aid" fix or recommendation for now. To avoid using these complex inputs in places where there's limited horizontal space.
However, and this is the import part, please be aware we're about to kick off the Skeleton v3 updates. As part of this we'll be evaluating every feature of Skeleton top to bottom, especially as we port components to the new Svelte 5 syntax (runes, snippets, etc). As part of this we're going to also be evaluating all our Tailwind provided styling as well. So expect to see more updates per this issue as part of that update.
I understand if that's not what was wanted here, but given the sizable changes incoming I think this is better handle as part of those updates. Thanks for your understanding!

I had a similar issue before, but setting style="min-width: 0 !important;" on the input fixed the issue for me in Firefox.


Make ANET wait for the database

Currently, if the database service is not fully up, ANET will not start. When both servers (application and database) are rebooted, if the application server starts the ANET service too soon, ANET will not start
If ANET fails to establish a database connection - it should keep trying for a predetermined amount of time (10 mins?).
~Additionally, it may be good to have a gracious way of handling ANET losing the database connection (i.e. database is restarted)~

A shell snippet like this should help (Windows version left as an exercise):
#!/bin/bash

CONFIGURATION="${1:-anet.yml}"
ANET="bin/anet"

# Try 20 times to connect to the database
DB_CONNECTION_NB_ATTEMPTS=20
# Wait 500 ms between consecutive attempts
DB_CONNECTION_DELAY=500

"$ANET" waitForDB --nbAttempts "$DB_CONNECTION_NB_ATTEMPTS" --delay "$DB_CONNECTION_DELAY" "$CONFIGURATION"

if [ $? -ne 0 ]
then
  echo "Failed to connect to database, look for errors in the output; exiting…"
  exit 1
fi

"$ANET" server "$CONFIGURATION"

Fixed by #4881


Upgrade to liquibase 3.3.0

Addresses #228
This PR is blocked by the fact that we do customizations to liquibase in change the classloading so that we can package cattle in a single jar.


在mac上编译测试代码时候出错，提示找不到openssl，但是已经通过homebrew安装过了

Communicator.h:28:10: fatal error: 'openssl/ssl.h' file not found
#include <openssl/ssl.h>

#include <stdio.h>
#include "workflow/WFHttpServer.h"
int main()
{
WFHttpServer server([](WFHttpTask *task) {
task->get_resp()->append_output_body("Hello World!");
});
 if (server.start(8888) == 0) {  // start server on port 8888
     getchar(); // press "Enter" to end.
     server.stop();
 }

 return 0;

}
是想编译这个测试代码

请问这是在 #99 成功之后的后续问题，还是与 #99 无关的问题？能否提供一下本问题的编译命令？

你可以先尝试一个与Workflow无关的小例子，确定编译环境没有问题。比如：
#include <openssl/ssl.h>

int main()
{
    return 0;
}

可以先检查一下能不能将这个编过。

你试试tutorial能不能编译。
$ cd tutorial
$ make

项目根目录能make通过，其实就说明openssl安装没问题了。应该是你编译demo时clang的命令行参数没传对。

请问这是在 #99 成功之后的后续问题，还是与 #99 无关的问题？能否提供一下本问题的编译命令？

是成功之后的后续问题

在根目录下的build目录，执行cmake .. -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl && make && make install
是成功的，但是$ cd tutorial
$ make 时候报错
-- Configuring done
-- Generating done
-- Build files have been written to: ~/workflow/tutorial/build
make -C build -f Makefile
[  3%] Linking CXX executable ../tutorial-10-user_defined_protocol/client
ld: cannot link directly with dylib/framework, your binary is not an allowed client of /usr/lib/libcrypto.dylib for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [../tutorial-10-user_defined_protocol/client] Error 1
make[2]: *** [CMakeFiles/client.dir/all] Error 2
make[1]: *** [all] Error 2
make: *** [all] Error 2

你可以先尝试一个与Workflow无关的小例子，确定编译环境没有问题。比如：
#include <openssl/ssl.h>

int main()
{
    return 0;
}

可以先检查一下能不能将这个编过。
这个在我的机器上是可以编译过的

我是用的mac系统

想来想去还是OpenSSL的路径位置问题。
可以尝试一下这样解决：
在执行所有命令之前，在bash里运行export OPENSSL_ROOT_DIR=/usr/local/opt/openssl，然后再跑cmake和make。cmake的-DOPENSSL_ROOT_DIR=/usr/local/opt/openssl则可以省略了。这样在tutorial目录下应该也能通过。
同时，如果新开了窗口，也要运行一遍这个export。也可以把这句命令放在bash启动的脚本里。
可以试一下能否解决问题。

想来想去还是OpenSSL的路径位置问题。
可以尝试一下这样解决：
在执行所有命令之前，在bash里运行export OPENSSL_ROOT_DIR=/usr/local/opt/openssl，然后再跑cmake和make。cmake的-DOPENSSL_ROOT_DIR=/usr/local/opt/openssl则可以省略了。这样在tutorial目录下应该也能通过。
同时，如果新开了窗口，也要运行一遍这个export。也可以把这句命令放在bash启动的脚本里。
可以试一下能否解决问题。

感谢～～真是路径问题，现在tutorial目录下可以通过了，再问下，我在make install之后，可以直接
#include <stdio.h>
#include <workflow/WFHttpServer.h>
int main()
{
WFHttpServer server([](WFHttpTask *task) {
task->get_resp()->append_output_body("Hello World!");
});
 if (server.start(8888) == 0) {  // start server on port 8888
     getchar(); // press "Enter" to end.
     server.stop();
 }

 return 0;

}
g++ -o test test.cpp -std=c++11这种方式来编译么？
这样编译之后又会出现如下错误：
Undefined symbols for architecture x86_64:
"EncodeStream::clear_buffer()", referenced from:
EncodeStream::~EncodeStream() in test-a08d68.o
"WFServerBase::wait_finish()", referenced from:
WFServerBase::stop() in test-a08d68.o
"WFServerBase::handle_unbound()", referenced from:
vtable for WFServer<protocol::HttpRequest, protocol::HttpResponse> in test-a08d68.o
"WFServerBase::new_connection(int)", referenced from:
vtable for WFServer<protocol::HttpRequest, protocol::HttpResponse> in test-a08d68.o
"WFServerBase::create_listen_fd()", referenced from:
vtable for WFServer<protocol::HttpRequest, protocol::HttpResponse> in test-a08d68.o
"WFServerBase::start(int, char const*, unsigned short, char const*, char const*)", referenced from:
WFServerBase::start(unsigned short) in test-a08d68.o
"WFServerBase::shutdown()", referenced from:
WFServerBase::stop() in test-a08d68.o
"WFServerTaskFactory::create_http_task(std::__1::function<void (WFNetworkTask<protocol::HttpRequest, protocol::HttpResponse>)>&)", referenced from:
WFServer<protocol::HttpRequest, protocol::HttpResponse>::new_session(long long, CommConnection) in test-a08d68.o
"protocol::RedisValue::free_data()", referenced from:
protocol::RedisValue::~RedisValue() in test-a08d68.o
"protocol::HttpMessage::append_output_body(void const*, unsigned long)", referenced from:
protocol::HttpMessage::append_output_body(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in test-a08d68.o
"protocol::RedisMessage::append(void const*, unsigned long*)", referenced from:
vtable for protocol::RedisMessage in test-a08d68.o
"protocol::RedisMessage::encode(iovec*, int)", referenced from:
vtable for protocol::RedisMessage in test-a08d68.o
"typeinfo for WFServerBase", referenced from:
typeinfo for WFServer<protocol::HttpRequest, protocol::HttpResponse> in test-a08d68.o
"vtable for WFServerBase", referenced from:
WFServerBase::WFServerBase(WFServerParams const*) in test-a08d68.o
WFServerBase::~WFServerBase() in test-a08d68.o
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"non-virtual thunk to protocol::RedisMessage::append(void const*, unsigned long*)", referenced from:
vtable for protocol::RedisMessage in test-a08d68.o
"_redis_parser_deinit", referenced from:
protocol::RedisMessage::~RedisMessage() in test-a08d68.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

可以直接g++ -o test test.cpp -std=c++11这种方式来编译么？

可以是可以，但你得连接workflow的库（以及workflow依赖的库）才可以，例如试一下g++ -std=c++ 11 -o test test.cpp -lworkflow -lssl -lcrypto -lpthread是否可行。

可以直接g++ -o test test.cpp -std=c++11这种方式来编译么？

可以是可以，但你得连接workflow的库（以及workflow依赖的库）才可以，例如试一下g++ -std=c++ 11 -o test test.cpp -lworkflow -lssl -lcrypto -lpthread是否可行。

嗯嗯，多谢了哈～～

MAC OS compile libbers
[ 82%] Linking CXX shared library libsrt.dylib
ld: cannot link directly with dylib/framework, your binary is not an allowed client of /usr/lib/libssl.dylib for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [libsrt.1.4.2.dylib] Error 1
make[1]: *** [CMakeFiles/srt_shared.dir/all] Error 2
make: *** [all] Error 2
before ./configure use:
export<EMAIL_ADDRESS>Success

MAC OS compile libbers
[ 82%] Linking CXX shared library libsrt.dylib
ld: cannot link directly with dylib/framework, your binary is not an allowed client of /usr/lib/libssl.dylib for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [libsrt.1.4.2.dylib] Error 1
make[1]: *** [CMakeFiles/srt_shared.dir/all] Error 2
make: *** [all] Error 2
before ./configure use:
export<EMAIL_ADDRESS>Success

用nossl分支试试先

git clone -b nossl https://github.com/sogou/workflow.git
make
mkdir -p build.cmake
cd build.cmake && cmake -D CONSUL= -D KAFKA= -D MYSQL= -D REDIS= -D UPSTREAM= /Users/rufus/Documents/GitHub/workflow
-- The C compiler identification is AppleClang <IP_ADDRESS>00029
-- The CXX compiler identification is AppleClang <IP_ADDRESS>00029
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMAKE_C_FLAGS_DEBUG is -g
CMAKE_C_FLAGS_RELEASE is -O3 -DNDEBUG
CMAKE_C_FLAGS_RELWITHDEBINFO is -O2 -g -DNDEBUG
CMAKE_C_FLAGS_MINSIZEREL is -Os -DNDEBUG
CMAKE_CXX_FLAGS_DEBUG is -g
CMAKE_CXX_FLAGS_RELEASE is -O3 -DNDEBUG
CMAKE_CXX_FLAGS_RELWITHDEBINFO is -O2 -g -DNDEBUG
CMAKE_CXX_FLAGS_MINSIZEREL is -Os -DNDEBUG
-- Found OpenSSL: /usr/local/lib/libcrypto.dylib (found version "3.1.0")
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/rufus/Documents/GitHub/workflow/build.cmake
make -C build.cmake -f Makefile
[  0%] Built target LINK_HEADERS
[  1%] Building CXX object src/client/CMakeFiles/client.dir/WFDnsClient.cc.o
[  3%] Building CXX object src/client/CMakeFiles/client.dir/WFMySQLConnection.cc.o
[  5%] Building CXX object src/client/CMakeFiles/client.dir/WFConsulClient.cc.o
[  5%] Built target client
[  7%] Building CXX object src/kernel/CMakeFiles/kernel.dir/IOService_thread.cc.o
[  8%] Building C object src/kernel/CMakeFiles/kernel.dir/mpoller.c.o
[ 10%] Building C object src/kernel/CMakeFiles/kernel.dir/poller.c.o
[ 12%] Building C object src/kernel/CMakeFiles/kernel.dir/rbtree.c.o
[ 14%] Building C object src/kernel/CMakeFiles/kernel.dir/msgqueue.c.o
[ 16%] Building C object src/kernel/CMakeFiles/kernel.dir/thrdpool.c.o
[ 17%] Building CXX object src/kernel/CMakeFiles/kernel.dir/CommRequest.cc.o
[ 19%] Building CXX object src/kernel/CMakeFiles/kernel.dir/CommScheduler.cc.o
[ 21%] Building CXX object src/kernel/CMakeFiles/kernel.dir/Communicator.cc.o
[ 23%] Building CXX object src/kernel/CMakeFiles/kernel.dir/Executor.cc.o
[ 25%] Building CXX object src/kernel/CMakeFiles/kernel.dir/SubTask.cc.o
[ 25%] Built target kernel
[ 26%] Building C object src/util/CMakeFiles/util.dir/json_parser.c.o
[ 28%] Building CXX object src/util/CMakeFiles/util.dir/EncodeStream.cc.o
[ 30%] Building CXX object src/util/CMakeFiles/util.dir/StringUtil.cc.o
[ 32%] Building CXX object src/util/CMakeFiles/util.dir/URIParser.cc.o
[ 33%] Building CXX object src/util/CMakeFiles/util.dir/MD5Util.cc.o
/Users/rufus/Documents/GitHub/workflow/src/util/MD5Util.cc:27:2: warning: 'MD5_Init' is deprecated [-Wdeprecated-declarations]
MD5_Init(&ctx);
^
/usr/local/include/openssl/md5.h:49:1: note: 'MD5_Init' has been explicitly marked deprecated here
OSSL_DEPRECATEDIN_3_0 int MD5_Init(MD5_CTX *c);
^
/usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
                                            ^

/usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
define OSSL_DEPRECATED(since) attribute((deprecated))
                                               ^

/Users/rufus/Documents/GitHub/workflow/src/util/MD5Util.cc:28:2: warning: 'MD5_Update' is deprecated [-Wdeprecated-declarations]
MD5_Update(&ctx, str.c_str(), str.size());
^
/usr/local/include/openssl/md5.h:50:1: note: 'MD5_Update' has been explicitly marked deprecated here
OSSL_DEPRECATEDIN_3_0 int MD5_Update(MD5_CTX *c, const void *data, size_t len);
^
/usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
                                            ^

/usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
define OSSL_DEPRECATED(since) attribute((deprecated))
                                               ^

/Users/rufus/Documents/GitHub/workflow/src/util/MD5Util.cc:29:2: warning: 'MD5_Final' is deprecated [-Wdeprecated-declarations]
MD5_Final(md, &ctx);
^
/usr/local/include/openssl/md5.h:51:1: note: 'MD5_Final' has been explicitly marked deprecated here
OSSL_DEPRECATEDIN_3_0 int MD5_Final(unsigned char *md, MD5_CTX *c);
^
/usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
                                            ^

/usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
define OSSL_DEPRECATED(since) attribute((deprecated))
                                               ^

3 warnings generated.
[ 33%] Built target util
[ 35%] Building CXX object src/manager/CMakeFiles/manager.dir/DnsCache.cc.o
[ 37%] Building CXX object src/manager/CMakeFiles/manager.dir/RouteManager.cc.o
[ 39%] Building CXX object src/manager/CMakeFiles/manager.dir/WFGlobal.cc.o
[ 41%] Building CXX object src/manager/CMakeFiles/manager.dir/UpstreamManager.cc.o
[ 41%] Built target manager
[ 42%] Building CXX object src/algorithm/CMakeFiles/algorithm.dir/DnsRoutine.cc.o
[ 42%] Built target algorithm
[ 44%] Building CXX object src/protocol/CMakeFiles/protocol.dir/PackageWrapper.cc.o
[ 46%] Building C object src/protocol/CMakeFiles/protocol.dir/dns_parser.c.o
[ 48%] Building CXX object src/protocol/CMakeFiles/protocol.dir/DnsMessage.cc.o
[ 50%] Building CXX object src/protocol/CMakeFiles/protocol.dir/DnsUtil.cc.o
[ 51%] Building C object src/protocol/CMakeFiles/protocol.dir/http_parser.c.o
[ 53%] Building CXX object src/protocol/CMakeFiles/protocol.dir/HttpMessage.cc.o
[ 55%] Building CXX object src/protocol/CMakeFiles/protocol.dir/HttpUtil.cc.o
[ 57%] Building C object src/protocol/CMakeFiles/protocol.dir/mysql_stream.c.o
[ 58%] Building C object src/protocol/CMakeFiles/protocol.dir/mysql_parser.c.o
[ 60%] Building C object src/protocol/CMakeFiles/protocol.dir/mysql_byteorder.c.o
[ 62%] Building CXX object src/protocol/CMakeFiles/protocol.dir/MySQLMessage.cc.o
/Users/rufus/Documents/GitHub/workflow/src/protocol/MySQLMessage.cc:253:2: warning: 'SHA1_Init' is deprecated [-Wdeprecated-declarations]
SHA1_Init(&ctx);
^
/usr/local/include/openssl/sha.h:49:1: note: 'SHA1_Init' has been explicitly marked deprecated here
OSSL_DEPRECATEDIN_3_0 int SHA1_Init(SHA_CTX *c);
^
/usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
                                            ^

/usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
define OSSL_DEPRECATED(since) attribute((deprecated))
                                               ^

/Users/rufus/Documents/GitHub/workflow/src/protocol/MySQLMessage.cc:254:2: warning: 'SHA1_Update' is deprecated [-Wdeprecated-declarations]
SHA1_Update(&ctx, str.c_str(), str.size());
^
/usr/local/include/openssl/sha.h:50:1: note: 'SHA1_Update' has been explicitly marked deprecated here
OSSL_DEPRECATEDIN_3_0 int SHA1_Update(SHA_CTX *c, const void *data, size_t len);
^
/usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
                                            ^

/usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
define OSSL_DEPRECATED(since) attribute((deprecated))
                                               ^

/Users/rufus/Documents/GitHub/workflow/src/protocol/MySQLMessage.cc:255:2: warning: 'SHA1_Final' is deprecated [-Wdeprecated-declarations]
SHA1_Final(md, &ctx);
^
/usr/local/include/openssl/sha.h:51:1: note: 'SHA1_Final' has been explicitly marked deprecated here
OSSL_DEPRECATEDIN_3_0 int SHA1_Final(unsigned char *md, SHA_CTX *c);
^
/usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
                                            ^

/usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
define OSSL_DEPRECATED(since) attribute((deprecated))
                                               ^

3 warnings generated.
[ 64%] Building CXX object src/protocol/CMakeFiles/protocol.dir/MySQLResult.cc.o
[ 66%] Building CXX object src/protocol/CMakeFiles/protocol.dir/MySQLUtil.cc.o
[ 67%] Building C object src/protocol/CMakeFiles/protocol.dir/redis_parser.c.o
[ 69%] Building CXX object src/protocol/CMakeFiles/protocol.dir/RedisMessage.cc.o
[ 69%] Built target protocol
[ 71%] Building CXX object src/factory/CMakeFiles/factory.dir/WFGraphTask.cc.o
[ 73%] Building CXX object src/factory/CMakeFiles/factory.dir/DnsTaskImpl.cc.o
[ 75%] Building CXX object src/factory/CMakeFiles/factory.dir/WFTaskFactory.cc.o
[ 76%] Building CXX object src/factory/CMakeFiles/factory.dir/Workflow.cc.o
[ 78%] Building CXX object src/factory/CMakeFiles/factory.dir/HttpTaskImpl.cc.o
[ 80%] Building CXX object src/factory/CMakeFiles/factory.dir/WFResourcePool.cc.o
[ 82%] Building CXX object src/factory/CMakeFiles/factory.dir/FileTaskImpl.cc.o
[ 83%] Building CXX object src/factory/CMakeFiles/factory.dir/MySQLTaskImpl.cc.o
[ 85%] Building CXX object src/factory/CMakeFiles/factory.dir/RedisTaskImpl.cc.o
[ 85%] Built target factory
[ 87%] Building CXX object src/nameservice/CMakeFiles/nameservice.dir/WFNameService.cc.o
[ 89%] Building CXX object src/nameservice/CMakeFiles/nameservice.dir/WFDnsResolver.cc.o
[ 91%] Building CXX object src/nameservice/CMakeFiles/nameservice.dir/WFServiceGovernance.cc.o
[ 92%] Building CXX object src/nameservice/CMakeFiles/nameservice.dir/UpstreamPolicies.cc.o
[ 92%] Built target nameservice
[ 94%] Building CXX object src/server/CMakeFiles/server.dir/WFServer.cc.o
[ 96%] Building CXX object src/server/CMakeFiles/server.dir/WFMySQLServer.cc.o
[ 96%] Built target server
[ 98%] Linking CXX static library ../../_lib/libworkflow.a
[ 98%] Built target workflow-static
[100%] Linking CXX shared library ../../_lib/libworkflow.dylib
[100%] Built target workflow-shared
rufus@RufusdeMacBook-Pro workflow % cd tutorial
rufus@RufusdeMacBook-Pro tutorial % make
mkdir -p build.cmake
rm -rf build.cmake/CMakeCache.txt
cd build.cmake && cmake -D KAFKA= -D MYSQL= -D REDIS= /Users/rufus/Documents/GitHub/workflow/tutorial
-- The C compiler identification is AppleClang <IP_ADDRESS>00029
-- The CXX compiler identification is AppleClang <IP_ADDRESS>00029
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found OpenSSL: /usr/local/lib/libcrypto.dylib (found version "3.1.0")
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/rufus/Documents/GitHub/workflow/tutorial/build.cmake
make -C build.cmake -f Makefile
[  2%] Building CXX object CMakeFiles/helloworld.dir/tutorial-00-helloworld.cc.o
[  5%] Linking CXX executable ../helloworld
[  5%] Built target helloworld
[  8%] Building CXX object CMakeFiles/wget.dir/tutorial-01-wget.cc.o
[ 11%] Linking CXX executable ../wget
[ 11%] Built target wget
[ 14%] Building CXX object CMakeFiles/http_echo_server.dir/tutorial-04-http_echo_server.cc.o
[ 17%] Linking CXX executable ../http_echo_server
[ 17%] Built target http_echo_server
[ 20%] Building CXX object CMakeFiles/http_proxy.dir/tutorial-05-http_proxy.cc.o
[ 23%] Linking CXX executable ../http_proxy
[ 23%] Built target http_proxy
[ 26%] Building CXX object CMakeFiles/parallel_wget.dir/tutorial-06-parallel_wget.cc.o
[ 29%] Linking CXX executable ../parallel_wget
[ 29%] Built target parallel_wget
[ 32%] Building CXX object CMakeFiles/sort_task.dir/tutorial-07-sort_task.cc.o
[ 35%] Linking CXX executable ../sort_task
[ 35%] Built target sort_task
[ 38%] Building CXX object CMakeFiles/matrix_multiply.dir/tutorial-08-matrix_multiply.cc.o
[ 41%] Linking CXX executable ../matrix_multiply
[ 41%] Built target matrix_multiply
[ 44%] Building CXX object CMakeFiles/http_file_server.dir/tutorial-09-http_file_server.cc.o
[ 47%] Linking CXX executable ../http_file_server
[ 47%] Built target http_file_server
[ 50%] Building CXX object CMakeFiles/graph_task.dir/tutorial-11-graph_task.cc.o
[ 52%] Linking CXX executable ../graph_task
[ 52%] Built target graph_task
[ 55%] Building CXX object CMakeFiles/name_service.dir/tutorial-15-name_service.cc.o
[ 58%] Linking CXX executable ../name_service
[ 58%] Built target name_service
[ 61%] Building CXX object CMakeFiles/reducer.dir/tutorial-20-reducer.cc.o
[ 64%] Linking CXX executable ../reducer
[ 64%] Built target reducer
[ 67%] Building CXX object CMakeFiles/redis_cli.dir/tutorial-02-redis_cli.cc.o
[ 70%] Linking CXX executable ../redis_cli
[ 70%] Built target redis_cli
[ 73%] Building CXX object CMakeFiles/wget_to_redis.dir/tutorial-03-wget_to_redis.cc.o
[ 76%] Linking CXX executable ../wget_to_redis
[ 76%] Built target wget_to_redis
[ 79%] Building CXX object CMakeFiles/mysql_cli.dir/tutorial-12-mysql_cli.cc.o
[ 82%] Linking CXX executable ../mysql_cli
[ 82%] Built target mysql_cli
[ 85%] Building CXX object CMakeFiles/server.dir/tutorial-10-user_defined_protocol/server.cc.o
[ 88%] Building CXX object CMakeFiles/server.dir/tutorial-10-user_defined_protocol/message.cc.o
[ 91%] Linking CXX executable ../tutorial-10-user_defined_protocol/server
[ 91%] Built target server
[ 94%] Building CXX object CMakeFiles/client.dir/tutorial-10-user_defined_protocol/client.cc.o
[ 97%] Building CXX object CMakeFiles/client.dir/tutorial-10-user_defined_protocol/message.cc.o
[100%] Linking CXX executable ../tutorial-10-user_defined_protocol/client
[100%] Built target client
rufus@RufusdeMacBook-Pro tutorial % cd ..
rufus@RufusdeMacBook-Pro workflow % make install
mkdir -p build.cmake
cd build.cmake && cmake -D CONSUL= -D KAFKA= -D MYSQL= -D REDIS= -D UPSTREAM= /Users/rufus/Documents/GitHub/workflow
CMAKE_C_FLAGS_DEBUG is -g
CMAKE_C_FLAGS_RELEASE is -O3 -DNDEBUG
CMAKE_C_FLAGS_RELWITHDEBINFO is -O2 -g -DNDEBUG
CMAKE_C_FLAGS_MINSIZEREL is -Os -DNDEBUG
CMAKE_CXX_FLAGS_DEBUG is -g
CMAKE_CXX_FLAGS_RELEASE is -O3 -DNDEBUG
CMAKE_CXX_FLAGS_RELWITHDEBINFO is -O2 -g -DNDEBUG
CMAKE_CXX_FLAGS_MINSIZEREL is -Os -DNDEBUG
-- Configuring done
CMake Warning (dev):
Policy CMP0068 is not set: RPATH settings on macOS do not affect
install_name.  Run "cmake --help-policy CMP0068" for policy details.  Use
the cmake_policy command to set the policy and suppress this warning.
For compatibility with older versions of CMake, the install_name fields for
the following targets are still affected by RPATH settings:
workflow-shared
This warning is for project developers.  Use -Wno-dev to suppress it.
-- Generating done
-- Build files have been written to: /Users/rufus/Documents/GitHub/workflow/build.cmake
mkdir -p build.cmake
cd build.cmake && cmake /Users/rufus/Documents/GitHub/workflow
CMAKE_C_FLAGS_DEBUG is -g
CMAKE_C_FLAGS_RELEASE is -O3 -DNDEBUG
CMAKE_C_FLAGS_RELWITHDEBINFO is -O2 -g -DNDEBUG
CMAKE_C_FLAGS_MINSIZEREL is -Os -DNDEBUG
CMAKE_CXX_FLAGS_DEBUG is -g
CMAKE_CXX_FLAGS_RELEASE is -O3 -DNDEBUG
CMAKE_CXX_FLAGS_RELWITHDEBINFO is -O2 -g -DNDEBUG
CMAKE_CXX_FLAGS_MINSIZEREL is -Os -DNDEBUG
-- Configuring done
CMake Warning (dev):
Policy CMP0068 is not set: RPATH settings on macOS do not affect
install_name.  Run "cmake --help-policy CMP0068" for policy details.  Use
the cmake_policy command to set the policy and suppress this warning.
For compatibility with older versions of CMake, the install_name fields for
the following targets are still affected by RPATH settings:
workflow-shared
This warning is for project developers.  Use -Wno-dev to suppress it.
-- Generating done
-- Build files have been written to: /Users/rufus/Documents/GitHub/workflow/build.cmake
make -C build.cmake -f Makefile install
[  0%] Built target LINK_HEADERS
Consolidate compiler generated dependencies of target client
[  5%] Built target client
Consolidate compiler generated dependencies of target kernel
[ 25%] Built target kernel
Consolidate compiler generated dependencies of target util
[ 33%] Built target util
Consolidate compiler generated dependencies of target manager
[ 41%] Built target manager
Consolidate compiler generated dependencies of target algorithm
[ 42%] Built target algorithm
Consolidate compiler generated dependencies of target protocol
[ 69%] Built target protocol
Consolidate compiler generated dependencies of target factory
[ 85%] Built target factory
Consolidate compiler generated dependencies of target nameservice
[ 92%] Built target nameservice
Consolidate compiler generated dependencies of target server
[ 96%] Built target server
[ 98%] Built target workflow-static
[100%] Linking CXX shared library ../../_lib/libworkflow.dylib
[100%] Built target workflow-shared
Install the project...


Stomp progress

IMPORTANT: PRs without the template will be CLOSED
Description of your pull request and other information

ADD DESCRIPTION HERE
Fixes #
Template

Before submitting a pull request make sure you have:

[ ] At least skimmed through contributing guidelines including yt-dlp coding conventions
[ ] Searched the bugtracker for similar pull requests
[ ] Checked the code with flake8 and ran relevant tests

In order to be accepted and merged into yt-dlp each piece of code must be in public domain or released under Unlicense. Check all of the following options that apply:

[ ] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[ ] Fix or improvement to an extractor (Make sure to add/update tests)
[ ] New extractor (Piracy websites will not be accepted)
[ ] Core bug fix/improvement
[ ] New feature (It is strongly recommended to open an issue first)

Copilot Summary

🤖 Generated by Copilot at d1b23ef
Summary
🎞📝🐰

This pull request adds a feature to send download progress messages to a RabbitMQ server using the amqp_hook function. It also fixes some minor style issues in yt_dlp/downloader/common.py, yt_dlp/extractor/niconico.py, and yt_dlp/YoutubeDL.py.

Send progress updates
amqp_hook with video id
Winter of downloads

Walkthrough

Add amqp_hook function to send download progress messages to RabbitMQ (link, link, link)
Pass video id to url_result method in niconico extractor to enable amqp_hook (link)
Add blank lines to separate imports from code in common.py and YoutubeDL.py (link, link)

whoops lmao intended to make a PR against my fork