PopulateDebugInfo missing

Is it working copy of OpenEdge PROGRESS DB provider?
I have such error message: "TypeLoadException: Method 'PopulateDebugInfo' .. does not have an implementation." It looks like OpenEdgeOptionsExtension should be expanded about method like:
public virtual void PopulateDebugInfo(IDictionary<string, string> debugInfo)
{
debugInfo["OpenEdge"] = "1";
}
and probably also an interface is missing.  Am I right?

What version of Microsoft.EntityFrameworkCore and  Microsoft.EntityFrameworkCore.Relational are you referencing in your project? This provider is working for version 2.1.4. Sounds like you are trying to target a newer version.

Hi Alex,
        Thank you for your response. Yes you are right. I am using latest version of .NET core. Version netcoreapp3.0, more precisely version 3.0.0-preview3.19153.1. Earlier it was version 2.2.3. Hmmm .. you made your project as a netstandard2.0 as best practices for DLL says. Fine. But this project by design cannot be universal. The project has to be compatible with EFcore because we have to use Microsoft EF interfaces like IDatabaseModelFactory and other so I just wonder if switching project to latest netcore  can help keep it compatible up.

Microsoft intensively develops .net core so we ought to expect even revolutionary changes. Stopping on concrete core version for me sounds not reasonable. We do not have a choice and our apps has to follow the newest libraries. I am keenly interested to update your project because I have to modify it. For example, I have to map column names because the DB authors I'm currently working with have made the dash part an integral part of the naming convention.  ☹
Best Regards
Marek
From: Alex Wiese<EMAIL_ADDRESS>Sent: 03 April 2019 03:05
To: alexwiese/EntityFrameworkCore.OpenEdge<EMAIL_ADDRESS>Cc: Marek Kubis<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [alexwiese/EntityFrameworkCore.OpenEdge] PopulateDebugInfo missing (#7)
What version of Microsoft.EntityFrameworkCore and Microsoft.EntityFrameworkCore.Relational are you referencing in your project? This provider is working for version 2.1.4. Sounds like you are trying to target a newer version.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/alexwiese/EntityFrameworkCore.OpenEdge/issues/7#issuecomment-479298339, or mute the threadhttps://github.com/notifications/unsubscribe-auth/Au4cgAIo4aNu50Fw1SM1eYW-oS_eCZ1cks5vdAxYgaJpZM4cV35l.

Hi Marek,

Hmmm .. you made your project as a netstandard2.0 as best practices for DLL says. Fine. But this project by design cannot be universal. The project has to be compatible with EFcore because we have to use Microsoft EF interfaces like IDatabaseModelFactory and other so I just wonder if switching project to latest netcore  can help keep it compatible up.

You're confusing the target framework with the target version of EFCore. Switching the project from netstandard to netcore won't change anything. The library should still be netstandard2.0, while the consuming project can be netcore3.0. This is the case even if the EFCore version is 2.1.4, or 2.2.3, or 3.0.0-preview3.19153.1. You'll notice that EntityFrameworkCore 3.0.0-preview3.19153.1 is still targeting .NET Standard 2.0, as are the 3.0.0-preview3.19153.1 providers for SQL Server, SQLLite, etc. This isn't an issue related to netcore vs netstandard.
As this provider was built against EFCore 2.1.x it of course won't work on EFCore 3.0.x because Microsoft have made breaking changes (this is a major release, plus it's still in preview). You can confirm this by changing the EFCore reference in your project back down to 2.2.3 (leaving your target framework at netcore3.0). This will allow you to use this provider in the mean time, but you will be potentially missing out on any EFCore 3.0.x features that you might have wanted to use. If this is the only provider you're using for EFCore then there is no benefit to using EFCore 3.0.x at this stage, stick with 2.2.3. If you're using multiple providers from within the same project (ie. you're connecting to both SQL Server and OpenEdge) and you want to use some new feature for the SQL Server provider from EFCore 3.0.x then you have an incentive to upgrade this provider to 3.0.x.
In saying all that I'm not sure how much work it would be to upgrade this provider from 2.1.x to 3.0.x, I'll need time to investigate. Please note that this is also the case with other major EFCore providers, although the providers that are provided by Microsoft do have 3.0.0-preview versions.
If you'd like, feel free to submit a PR.

For example, I have to map column names because the DB authors I'm currently working with have made the dash part an integral part of the naming convention.

I am using this provider in production with column names that have a dash. I'm mapping the column names like so:
    [Column("transaction_id")]
    public int TransactionId { get; set; }

If you have a better way of handling this feel free to raise a separate issue or submit a PR.

Further to this you can view the provider-impacting changes from version 2.2 to 3.0 on the EFCore documentation website.
This link below will show you the list of breaking changes for that will need to be fixed if I update the provider to target EFCore 3.0. It is a good starting point for evaluation how much work is required to update the provider to use EFCore 3.0
https://docs.microsoft.com/en-us/ef/core/providers/provider-log

Hi Alex,
        OK, but except EFcore provider and consuming project we have also list of dependencies between which does matter EFcore. So currently we have:

 consuming project (for instance: netcore3.0) --> EFcore provider (netstandard2.0)  --> EFcore (for instance: netcore3.0)

        In fact, on the logic, the netstandard should not do anything wrong but less fears that we will be not surprised by unforeseen errors, I am more convinced by such organization of a solution:

 consuming project (netcore3.0) --> EFcore provider (netcore3.0)  --> EFcore (netcore3.0) or
 consuming project (netcore2.1.4) --> EFcore provider (netcore2.1.4)  --> EFcore (netcore2.1.4)
        etc. ..

        It looks very nice, as for me, when we have:

 consuming project (netcore3.0 or any) --> EFcore provider (netstandard2.0)  --> DLL’s (netstandard2.0, System.Object)

        That's all. My remark about netstandard2.0 was such a note in the margins of the main problem.

        Yes, you are right. I am using multiple providers, SQL Server and OpenEdge, I want to use some new features of c#8 and I do not want to close my way to using the new SQL Server features.

        And to make it clear, I do not blame you for your code. On the contrary, congratulations on writing a good looking provider. And that along with the new version of Microsoft software your code has failed, it's our grey reality of software developer life and we have to deal with it somehow. ☺

        Thank you for a link to ‘Provider-impacting changes’. As for mapping column names, I did exactly the same as you did.  I just wrote scaffolding function and now I have the model of my Progress database.  It’s not a provider ready and I still have some issues to solve. I got metadata from SYSTABLES, SYSCOLUMNS and SYSINDEXES tables.

My current dilemma concerns on indexes. Generally I am not intend take a full control under Progress data base which I work now so I can ignore many important details. My task is build the client which will be able to present selected data from ODBC data source, and eventually update or insert some of them. Let me believe that I can avoid updates and inserts. - I would like to leave responsibility for the quality of data to the authors of the database and they application. – But for a reviewing the data I want to know the existing in DB Primary Keys. The issue is that PK has been created sometimes even on 6 columns and still I have to identify indexes and they sequence.  I see that you simplify this subject to PK:  Name = table + "_PK". Did you worked more with this issue?
At this moment I uninstalled your provider so more info about rowid error I will send you later.
Regards
Marek
From: Alex Wiese<EMAIL_ADDRESS>Sent: 05 April 2019 06:50
To: alexwiese/EntityFrameworkCore.OpenEdge<EMAIL_ADDRESS>Cc: Marek Kubis<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [alexwiese/EntityFrameworkCore.OpenEdge] PopulateDebugInfo missing (#7)
Hi Marek,
Hmmm .. you made your project as a netstandard2.0 as best practices for DLL says. Fine. But this project by design cannot be universal. The project has to be compatible with EFcore because we have to use Microsoft EF interfaces like IDatabaseModelFactory and other so I just wonder if switching project to latest netcore can help keep it compatible up.
You're confusing the target framework with the target version of EFCore. Switching the project from netstandard to netcore won't change anything. The library should still be netstandard2.0, while the consuming project can be netcore3.0. This is the case even if the EFCore version is 2.1.4, or 2.2.3, or 3.0.0-preview3.19153.1. You'll notice that EntityFrameworkCore 3.0.0-preview3.19153.1 is still targeting .NET Standard 2.0, as are the 3.0.0-preview3.19153.1 providers for SQL Server, SQLLite, etc. This isn't an issue related to netcore vs netstandard.
As this provider was built against EFCore 2.1.x it of course won't work on EFCore 3.0.x because Microsoft have made breaking changes (this is a major release, plus it's still in preview). You can confirm this by changing the EFCore reference in your project back down to 2.2.3 (leaving your target framework at netcore3.0). This will allow you to use this provider in the mean time, but you will be potentially missing out on any EFCore 3.0.x features that you might have wanted to use. If this is the only provider you're using for EFCore then there is no benefit to using EFCore 3.0.x at this stage, stick with 2.2.3. If you're using multiple providers from within the same project (ie. you're connecting to both SQL Server and OpenEdge) and you want to use some new feature for the SQL Server provider from EFCore 3.0.x then you have an incentive to upgrade this provider to 3.0.x.
In saying all that I'm not sure how much work it would be to upgrade this provider from 2.1.x to 3.0.x, I'll need time to investigate. Please note that this is also the case with other major EFCore providers, although the providers that are provided by Microsoft do have 3.0.0-preview versions.
If you'd like, feel free to submit a PR.
For example, I have to map column names because the DB authors I'm currently working with have made the dash part an integral part of the naming convention.
I am using this provider in production with column names that have a dash. I'm mapping the column names like so:
[Column("transaction_id")]

public int TransactionId { get; set; }

If you have a better way of handling this feel free to raise a separate issue or submit a PR.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/alexwiese/EntityFrameworkCore.OpenEdge/issues/7#issuecomment-480156205, or mute the threadhttps://github.com/notifications/unsubscribe-auth/Au4cgO7O-s58JFa3Opr9ANfvR8TDPe7sks5vduQKgaJpZM4cV35l.

Thanks. Yes OpenEdge is pretty crazy when it comes to primary keys. Ie. there aren’t any “real” primary keys. There are primary indexes but they do not have to be unique which causes issues with EFCore (which the provider can’t circumvent). EFCore entity tracking requires all primary keys to be unique, otherwise the materialised entity objects will conflict. The only thing that is close to a primary key in OpenEdge is the “rowid”. For my uses in production when dealing with update/delete and the primary index is NOT unique I have been exposing the rowid and using that as the primary key.
Example:
    [Key]
    [Column("rowid")]
    public string Rowid { get; set; }

Note that rowid is a special OpenEdge value that uniquely represents the record, this means you can add this to any OpenEdge entity and use it as a proper primary key.
For a unique primary index that has multiple fields then you can do the following in OnModelCreating:
    modelBuilder.Entity<transaction>().HasKey("TransactionId", "ClientId", "SecondaryId");


CHIP-22 -- Enhanced Harvester Protocol

This CHIP provides a method for proprietary harvesters to communicate with the reference farmer. Its status is Review (Fast Track). Please leave your reviews here. We will set up a public meeting to discuss this CHIP soon.

Instead of enforcing dev fees via a threshold, has the use of a split payment address been considered?
Such as the royalty split puzzle used by splitxch.com.
It wouldn't be exactly the same puzzle as you'd want a way to curry in the farmer reward address in addition to the hard coded dev fee address. Also it would need a mechanism to poke (spend) the coin.

Instead of enforcing dev fees via a threshold, has the use of a split payment address been considered? Such as the royalty split puzzle used by splitxch.com.
It wouldn't be exactly the same puzzle as you'd want a way to curry in the farmer reward address in addition to the hard coded dev fee address. Also it would need a mechanism to poke (spend) the coin.

The idea so far is to keep the implementation as simple as possible, hence the threshold. However, the split payment puzzle is something that could be discussed when we set up a public call for this CHIP.

With respect to the CHIP itself, can the reference farmer support multiple harvesters at the same time? For example for farmers with a mix of uncompressed, BB, and GH plots, can the farmer use a different harvester to use depending on the plot type?
If so, maybe that could allow @madMAx43v3r to create separate flat fee harvesters (CPU harvester for lower compression levels, GPU harvester for higher compression levels), while uncompressed plots can continue using the reference harvester with no fees.

With respect to the CHIP itself, can the reference farmer support multiple harvesters at the same time? For example for farmers with a mix of uncompressed, BB, and GH plots, can the farmer use a different harvester to use depending on the plot type?

If I am understanding your question correctly, there shouldn't be any problem using multiple harvesters. With the current "fee convention", as it currently stands, there isn't any obstacle for harvesters using either a flat or dynamic fee, so everything should work out of the box as long as the harvester is using the protocol enhancements.
There might be some extra work to do for multiple harvesters on the UI side (as to reporting fees), but that's out of the scope of this particular CHIP.

Dear CNI, would it make sense to restructure block reward to pay the farmer, pool and dev with a hard fork?  Doing so would simplify the integration of dev fee from 3 parties (NoSSD and GH).  Like how you join a pool through nft, but you also join the dev pool (just a proxy to dev wallet)

We are going to have a public zoom call to Discuss this CHIP on Nov 29 at 3 PM PST (11 PM UTC, Nov 30 at 7 AM in China). See our Discord for more details.

Dear CNI, would it make sense to restructure block reward to pay the farmer, pool and dev with a hard fork?

It sounds technically feasible by adding a developer singleton ID to the plot files and restructuring the pool coin. However, there are some significant downsides to this approach:

It would require a hard fork, which would necessitate a long lead time. To use an existing example, the CHIP with the filter reduction hard fork took about 8 months to go from Draft to Final, and it will activate around 300 additional days after being added to a release. A similar approach would be required for this change.
It would require a replot for those farmers and pools that wanted to use this approach.
Restructuring the payout schedule could be controversial in the community, and the new schedule wouldn't be optional. Thus, this CHIP would require a very high level of approval.

CHIP-22 takes a simpler approach which does not require replotting or a hard/soft fork. It could be adopted much quicker, and those who only use open source farmers/harvesters would remain unaffected. Our goal here is to keep things as simple as possible.
All of this being said, if you want to restructure the rewards payout, you will need to open a new CHIP and try to build support for it. Meanwhile, we will continue to develop CHIP-22, and if your CHIP later gains broad adoption, the possibility would exist for us to sunset CHIP-22 in favor of your CHIP.

Dear CNI, would it make sense to restructure block reward to pay the farmer, pool and dev with a hard fork?

It sounds technically feasible by adding a developer singleton ID to the plot files and restructuring the pool coin. However, there are some significant downsides to this approach:
* It would require a hard fork, which would necessitate a long lead time. To use an existing example, the CHIP with the filter reduction hard fork took about 8 months to go from `Draft` to `Final`, and it will activate around 300 additional days after being added to a release. A similar approach would be required for this change.

* It would require a replot for those farmers and pools that wanted to use this approach.

* Restructuring the payout schedule could be controversial in the community, and the new schedule wouldn't be optional. Thus, this CHIP would require a very high level of approval.

CHIP-22 takes a simpler approach which does not require replotting or a hard/soft fork. It could be adopted much quicker, and those who only use open source farmers/harvesters would remain unaffected. Our goal here is to keep things as simple as possible.
All of this being said, if you want to restructure the rewards payout, you will need to open a new CHIP and try to build support for it. Meanwhile, we will continue to develop CHIP-22, and if your CHIP later gains broad adoption, the possibility would exist for us to sunset CHIP-22 in favor of your CHIP.

Thank you very much for the quick feedback Daniel-san.  It sounds like enhancing the existing plots with singleton ID is not a simple task that a replot is required.

I am opposed to this CHIP.
Reason: The only benefit is currently for non official pool protocol users so they can see if they are having their fee handled properly by the non-official pool operator.
If this means a farmer like nossd who only appears as one farmer but with 1660 harvesters on the network will now become 1660 farmers and is able to direct a farmer to do things, anything such as sending one mojo to thousands, or is somehow able to manipulate timing of events either with a really fast timelord or with lots of timelords - I don't see how this risk is outweighed by the benefits to the few who are pooling with a non-official pool protocol operator.

I am opposed to this CHIP. Reason: The only benefit is currently for non official pool protocol users so they can see if they are having their fee handled properly by the non-official pool operator.
If this means a farmer like nossd who only appears as one farmer but with 1660 harvesters on the network will now become 1660 farmers and is able to direct a farmer to do things, anything such as sending one mojo to thousands, or is somehow able to manipulate timing of events either with a really fast timelord or with lots of timelords - I don't see how this risk is outweighed by the benefits to the few who are pooling with a non-official pool protocol operator.

The benefit for this CHIP is to ensure individual farmers are the ones deciding what transactions get included in each block (using the open source Chia farmer client). The CHIP removes control from centralized pools/software like NoSSD by having them become only responsible for the harvesting functionality.

I am opposed to this CHIP. Reason: The only benefit is currently for non official pool protocol users so they can see if they are having their fee handled properly by the non-official pool operator.
If this means a farmer like nossd who only appears as one farmer but with 1660 harvesters on the network will now become 1660 farmers and is able to direct a farmer to do things, anything such as sending one mojo to thousands, or is somehow able to manipulate timing of events either with a really fast timelord or with lots of timelords - I don't see how this risk is outweighed by the benefits to the few who are pooling with a non-official pool protocol operator.

I think you are alluding to a pool building a botnet and using it to attack the network. Anyone running closed-source software from an anonymous source runs the risk of their machine(s) being compromised, regardless of whether this CHIP is in place. In addition, this CHIP doesn't enable any timelord-based attacks that weren't already present in the network.

The benefit for this CHIP is to ensure individual farmers are the ones deciding what transactions get included in each block (using the open source Chia farmer client). The CHIP removes control from centralized pools/software like NoSSD by having them become only responsible for the harvesting functionality.

Does this mean only the Chia software can manage farm operations or the proprietary software still can be used alongside or instead of? Will it be a choice for farmers?
Using nossd for example:
Chia farmer decides he wants to be part of nossd.
Replots to nossd plot format using nossd software.
Uses official Chia client to farm by using nossd pool nft, chia client sees the nossd plot format and includes in plot listing for farm and harvesting occurs as normal - pool manages rewards and fee deduction.
Existing nossd software no longer has same interaction anymore?

Here is the recording of the call where we discuss this CHIP:
https://www.youtube.com/watch?v=ul4Coa99aOE

Having listened to the call recording, I will express that I have no objections to the CHIP.
As I see it, the CHIP itself is an innocuous update to the harvester protocol to allow additional information to shared between the harvester and farmer, allowing for reward redirection and logging of that data and activity. Any monitoring of a third-party harvester's behavior based on that logged data remains a responsibility for the individual farmer or as a future GUI feature.
It is important to note that implementation of this CHIP does not:

set any expectations that third parties will integrate with the new protocol
impact the ability for existing farmers to continue farming with their existing setup

Will this CHIP mean users who didn't want to have to replot to join a pool that currently has non OP plots can now do so with their existing plots and also plot any new plots with the proprietary farmer to take advantage of the tech offered by the particular pool?

@dddroptables Major downside of using a smart coin to manage dev fee distribution is that it would require all who want to use this solution to replot. The solution as currently proposed in CHIP-22 won't force a replot on Gigahorse users.
Another downside of the particular approach you mention is precisely that the fees are baked into the singleton. That would make it impossible for harvester vendors to change dev fees later. With the solution as currently proposed by CHIP-22, a change in fee structure is simply a matter of releasing a new harvester. So if, for example, a harvester vendor wants to reduce their fees to counter competition, that's easily done.

@dddroptables Major downside of using a smart coin to manage dev fee distribution is that it would require all who want to use this solution to replot. The solution as currently proposed in CHIP-22 won't force a replot on Gigahorse users.
Another downside of the particular approach you mention is precisely that the fees are baked into the singleton. That would make it impossible for harvester vendors to change dev fees later. With the solution as currently proposed by CHIP-22, a change in fee structure is simply a matter of releasing a new harvester. So if, for example, a harvester vendor wants to reduce their fees to counter competition, that's easily done.

@xchdata1 thanks for the feedback.  While you are correct that farmers with proprietary/non conforming plots would need to replot, this would be the case for at least all of NoSSD pool users AFAIK since their plots are locked into the NoSSD pool permanently. At present they represent at least the second largest pool on the network so substantial replotting should be in consideration no matter the proposed change.
With regards to the proposal of using a smart coin to calculate the fees - I proposed this be a fixed fee when creating the singleton, but there is no reason why a smart coin couldn't allow fee changes. It would just be a more complex singleton puzzle which would require something like asymmetric multi signatures (one to change farmer puzzle hash by farmer, one to change vendor fee/vendor puzzle hash by vendor).
I like the idea of the smart coin structure much more than the client calculating the fees as well since they would be much more consistent for both the vendor and the farmer. Meaning, for example, 1% could be taken out of every block win to the vendor rather than having to randomly take 100% of block win X% of the time on the client side calculation.
I also happen to believe that any proposed change that does not resolve the problem of needing to run a closed source client to farm isn't solving the biggest risk with the current proprietary farmers/pools. Ideally there need not be any closed source clients required to run when farming if the protocol is well designed.

@dddroptables Major downside of using a smart coin to manage dev fee distribution is that it would require all who want to use this solution to replot. The solution as currently proposed in CHIP-22 won't force a replot on Gigahorse users.

Another downside of the particular approach you mention is precisely that the fees are baked into the singleton. That would make it impossible for harvester vendors to change dev fees later. With the solution as currently proposed by CHIP-22, a change in fee structure is simply a matter of releasing a new harvester. So if, for example, a harvester vendor wants to reduce their fees to counter competition, that's easily done.

@xchdata1 thanks for the feedback.  While you are correct that farmers with proprietary/non conforming plots would need to replot, this would be the case for at least all of NoSSD pool users AFAIK since their plots are locked into the NoSSD pool permanently. At present they represent at least the second largest pool on the network so substantial replotting should be in consideration no matter the proposed change.
With regards to the proposal of using a smart coin to calculate the fees - I proposed this be a fixed fee when creating the singleton, but there is no reason why a smart coin couldn't allow fee changes. It would just be a more complex singleton puzzle which would require something like asymmetric multi signatures (one to change farmer puzzle hash by farmer, one to change vendor fee/vendor puzzle hash by vendor).
I like the idea of the smart coin structure much more than the client calculating the fees as well since they would be much more consistent for both the vendor and the farmer. Meaning, for example, 1% could be taken out of every block win to the vendor rather than having to randomly take 100% of block win X% of the time on the client side calculation.
I also happen to believe that any proposed change that does not resolve the problem of needing to run a closed source client to farm isn't solving the biggest risk with the current proprietary farmers/pools. Ideally there need not be any closed source clients required to run when farming if the protocol is well designed.

If you have a proposed Chialisp smart contract that implements your vision you should request a CHIP for it and give an in depth outline - including a proposed initial implementation. However if you're merely speculating that such a thing could be developed, CHIPs are not where you ask someone else to do work for you.

Thanks for the feedback @hoffmang9. My rationale for providing feedback on this CHIP is to optimistically help to highlight some of the main deficiencies with this proposal. I also noticed that this CHIP was authored by CNI and therefore likely to be implemented by CNI. My hope was that shedding some light on a potentially more effective solution could lead to CNI revisiting this plan before implementing- maybe even redirecting the planned implementation effort on this one to something more effective.

@dddroptables Major downside of using a smart coin to manage dev fee distribution is that it would require all who want to use this solution to replot. The solution as currently proposed in CHIP-22 won't force a replot on Gigahorse users.

Another downside of the particular approach you mention is precisely that the fees are baked into the singleton. That would make it impossible for harvester vendors to change dev fees later. With the solution as currently proposed by CHIP-22, a change in fee structure is simply a matter of releasing a new harvester. So if, for example, a harvester vendor wants to reduce their fees to counter competition, that's easily done.

@xchdata1 thanks for the feedback.  While you are correct that farmers with proprietary/non conforming plots would need to replot, this would be the case for at least all of NoSSD pool users AFAIK since their plots are locked into the NoSSD pool permanently. At present they represent at least the second largest pool on the network so substantial replotting should be in consideration no matter the proposed change.
With regards to the proposal of using a smart coin to calculate the fees - I proposed this be a fixed fee when creating the singleton, but there is no reason why a smart coin couldn't allow fee changes. It would just be a more complex singleton puzzle which would require something like asymmetric multi signatures (one to change farmer puzzle hash by farmer, one to change vendor fee/vendor puzzle hash by vendor).
I like the idea of the smart coin structure much more than the client calculating the fees as well since they would be much more consistent for both the vendor and the farmer. Meaning, for example, 1% could be taken out of every block win to the vendor rather than having to randomly take 100% of block win X% of the time on the client side calculation.
I also happen to believe that any proposed change that does not resolve the problem of needing to run a closed source client to farm isn't solving the biggest risk with the current proprietary farmers/pools. Ideally there need not be any closed source clients required to run when farming if the protocol is well designed.

If you have a proposed Chialisp smart contract that implements your vision you should request a CHIP for it and give an in depth outline - including a proposed initial implementation. However if you're merely speculating that such a thing could be developed, CHIPs are not where you ask someone else to do work for you.

Thanks for the feedback @hoffmang9. My rationale for providing feedback on this CHIP is to optimistically help to highlight some of the main deficiencies with this proposal. I also noticed that this CHIP was authored by CNI and therefore likely to be implemented by CNI. My hope was that shedding some light on a potentially more effective solution could lead to CNI revisiting this plan before implementing- maybe even redirecting the planned implementation effort on this one to something more effective.

For now we want to implement the simplest solution that allows proprietary harvesters to work with the reference farmer. We could also revisit your solution in the future. If you (or anyone else in the community) want to work on this, we'll be happy to look at your CHIP.

We're approaching the final testing phase this CHIP. Get your final reviews in soon. Next step is Last Call.

We are adding some minor updates in PR #17435. This is the final update we are planning to make before moving the CHIP to Last Call. Please review at your convenience.

Should probably clarify that the challenge in (sha256(proof of space | challenge) mod 2^32) is the value from ProofOfSpace data structure, ie. the plot challenge, the same which is used to lookup proofs.
There are a few other challenges as well, which can be confusing.

Should probably clarify that the challenge in (sha256(proof of space | challenge) mod 2^32) is the value from ProofOfSpace data structure, ie. the plot challenge, the same which is used to lookup proofs.
There are a few other challenges as well, which can be confusing.

Added, thanks!

I added one more PR to this CHIP: 17481. Special thanks to @DaOneLuna for your contribution!

The code for this CHIP has been included in 2.2.0-rc3. All stakeholders: please test and include your final reviews here.
https://github.com/Chia-Network/chia-blockchain/releases/tag/2.2.0-rc3

I just farmed a block using CHIP-22 with 2.2.0-rc3: https://spacefarmers.io/farmers/4ecd5c26fb31adb4dd201530aa1de0f8f16dabb024d2d0b0ee1066008b4f88fd/blocks
Using GH fast farmer (not public yet), just to tell you it works with 2.2.0-rc3.

Very nice, Max!

I just farmed a block using CHIP-22 with 2.2.0-rc3: https://spacefarmers.io/farmers/4ecd5c26fb31adb4dd201530aa1de0f8f16dabb024d2d0b0ee1066008b4f88fd/blocks

As a working version of the code for this CHIP is complete in version 2.2.1, I'm moving it to Last Call. If no changes are required in the next two weeks, it will become Final.

This CHIP is now Final. No further changes are allowed, other than adding errata. Thanks to all who participated!


Options in initializer removed in 4.9.0

A handful of options were removed from Statsd#initialize in the 4.9.0 release, see the diff here.
Initializing the statsd client with one of these options supplied results in an ArgumentError.
I don't see any mention of it in the Changelog and it feels like this could be considered a breaking change?

Hey @merrington, you are right this should have been considered a breaking change and should have been released as 5.0.0. Sorry for this issue, I've removed the 4.9.0 version for now, please pin version 4.8.3 for now and I'll release a major version 5.0.0 with these changes if you want to benefit of the performances improvements.

Thanks @remeh , we'll make sure to update our usage to take into account the changes for v5.0. In the meantime thanks for removing 4.9.0  👍


docs: self-managed Kafka

⚠ IMPORTANT ⚠: This is a public repository. Make sure to not disclose:

[x] personal data beyond what is necessary for interacting with this Pull Request;

[x] business confidential information, such as customer names.

Closes elastisys/internal-issue-tracker#41

I have sent a kubeconfig with access to my cluster as an application dev to all reviewers. If any non-reviewer wants access to test this feature, contact me on Slack.
My cluster has been prepared with the main branch of apps with Kafka enabled. You should be able to follow the instructions like an application dev to set up self-managed Kafka. Clear everything after you're finished so others can follow instructions from scratch.
Note: change branch from main to alb/self-managed-kafka in the URLs when you curl since the files do not exist on main branch yet

Tested the guide and it worked well for me. Further reading seems good.
For the CRDs we could fetch them from the source instead.
curl -L https://github.com/strimzi/strimzi-kafka-operator/releases/download/0.38.0/strimzi-crds-0.38.0.yaml > crds/kafka-crds.yaml


chore: add renovate config

Hi.
This solves #4 and you can see the result here.
For this to work, you need to add the Renovate app.  The regex is a bit complex at times, so it might be best to keep the formatting for it not to break.  However, I'm just a tag away from helping out if need be.

This is amazing - highly appreciate the efforts

Just close the other pull request.  This puts the config inside the .github folder instead.  Not so keen when stuff lives in root.


YouTube Music Stops After Errors Thrown

What version of Music Assistant has the issue?
2.0.0b74
The problem
I play a YouTube Music playlist and eventually some errors are thrown. If I try to restart the stream it has problems and throws more errors. Please see my attached logs.
How to reproduce
Play youtube music playlist and wait for stream to stop.
Relevant log output
initial_errors.txt
restart_stream_error.txt
Additional information
No response
What version of Home Assistant Core are your running
2023.11.2
What type of installation are you running?
Home Assistant OS
On what type of hardware are you running?
Raspberry Pi

It would be great if you didn’t set the logs to debug unless asked to. Can you redo the log post without all the debug lines.

I'll update this, this weekend.

We just need an update on this or we will close it as stale.

I just commented on another thread, but since this is YTM specific I'll throw my logs here as well. Stopping after one song. Debugging is disabled for me.
2023-11-28 07:33:22.446 INFO (MainThread) [music_assistant.metadata] Unable to get musicbrainz ID for artist Okieriete Onaodowan
 - using lookup-album(s): none
 - using lookup-track(s): none

2023-11-28 07:34:06.610 INFO (MainThread) [music_assistant.metadata] Unable to get musicbrainz ID for artist Various Artists - Topic
 - using lookup-album(s): none
 - using lookup-track(s): none

2023-11-28 08:01:54.405 INFO (MainThread) [music_assistant.providers.slimproto] Player Ben’s MacBook Pro disconnected
2023-11-28 08:21:44.829 WARNING (MainThread) [music_assistant.providers.slimproto] Player squeezeplay: aa:aa:ba:52:e0:f2 connected while previous session still existing!
2023-11-28 08:28:09.537 INFO (MainThread) [music_assistant.providers.slimproto] Player Bedroom disconnected
2023-11-28 08:34:02.411 INFO (MainThread) [music_assistant.providers.slimproto] Player Bedroom disconnected
2023-11-28 08:45:15.558 INFO (MainThread) [music_assistant.providers.slimproto] Player Bedroom disconnected
2023-11-28 09:08:14.606 INFO (MainThread) [music_assistant.providers.slimproto] Player Bedroom disconnected
2023-11-28 09:15:09.374 INFO (MainThread) [music_assistant.providers.slimproto] Player Bedroom disconnected
2023-11-28 09:20:03.362 INFO (MainThread) [music_assistant.providers.slimproto] Player Bedroom disconnected
2023-11-28 09:45:31.305 INFO (MainThread) [music_assistant.providers.slimproto] Player Bedroom disconnected
2023-11-28 10:12:09.434 INFO (MainThread) [music_assistant.providers.slimproto] Player Bedroom disconnected
2023-11-28 10:17:55.067 INFO (MainThread) [music_assistant.providers.slimproto] Player Bedroom disconnected
2023-11-28 10:22:49.186 INFO (MainThread) [music_assistant.providers.slimproto] Player Bedroom disconnected
2023-11-28 10:29:57.143 INFO (MainThread) [music_assistant.providers.slimproto] Player Bedroom disconnected
2023-11-28 10:30:54.236 INFO (MainThread) [music_assistant.music] Sync task for URL completed
2023-11-28 10:30:59.194 ERROR (ThreadPoolExecutor-0_5) [asyncio] Task exception was never retrieved
future: <Task finished name='Task-207302' coro=<SlimClient._socket_reader() done, defined at /usr/local/lib/python3.11/site-packages/aioslimproto/client.py:576> exception=ConnectionResetError(104, 'Connection reset by peer')>
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/aioslimproto/client.py", line 583, in _socket_reader
    data = await self._reader.read(64)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/asyncio/streams.py", line 693, in read
    await self._wait_for_data('read')
  File "/usr/local/lib/python3.11/asyncio/streams.py", line 525, in _wait_for_data
    await self._waiter
  File "/usr/local/lib/python3.11/asyncio/selector_events.py", line 995, in _read_ready__data_received
    data = self._sock.recv(self.max_size)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ConnectionResetError: [Errno 104] Connection reset by peer
2023-11-28 10:31:54.958 WARNING (MainThread) [music_assistant.music] Sync task for YouTube Music completed with errors
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/controllers/music.py", line 570, in run_sync
    await provider.sync_library(media_types)
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/models/music_provider.py", line 366, in sync_library
    async for prov_item in self._get_library_gen(media_type):
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/providers/ytmusic/__init__.py", line 259, in get_library_playlists
    playlists_obj = await get_library_playlists(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/providers/ytmusic/helpers.py", line 137, in get_library_playlists
    return await asyncio.to_thread(_get_library_playlists)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/asyncio/threads.py", line 25, in to_thread
    return await loop.run_in_executor(None, func_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/providers/ytmusic/helpers.py", line 129, in _get_library_playlists
    playlists = ytm.get_library_playlists(limit=9999)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/ytmusicapi/mixins/library.py", line 41, in get_library_playlists
    get_continuations(results, 'gridContinuation', remaining_limit, request_func,
  File "/usr/local/lib/python3.11/site-packages/ytmusicapi/continuations.py", line 20, in get_continuations
    contents = get_continuation_contents(results, parse_func)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/ytmusicapi/continuations.py", line 74, in get_continuation_contents
    return parse_func(continuation[term])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/ytmusicapi/mixins/library.py", line 38, in <lambda>
    parse_func = lambda contents: parse_content_list(contents, parse_playlist)
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/ytmusicapi/parsers/browsing.py", line 47, in parse_content_list
    contents.append(parse_func(result[key]))
                    ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/ytmusicapi/parsers/browsing.py", line 121, in parse_playlist
    'title': nav(data, TITLE_TEXT),
             ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/ytmusicapi/navigation.py", line 83, in nav
    raise err
  File "/usr/local/lib/python3.11/site-packages/ytmusicapi/navigation.py", line 77, in nav
    root = root[k]
           ~~~~^^^
KeyError: 'runs'
2023-11-28 10:32:04.643 INFO (MainThread) [music_assistant.metadata] Unable to get musicbrainz ID for artist Kristolyn Lloyd
 - using lookup-album(s): none
 - using lookup-track(s): none

2023-11-28 10:32:44.562 INFO (MainThread) [music_assistant.metadata] Unable to get musicbrainz ID for artist Mike Faist
 - using lookup-album(s): none
 - using lookup-track(s): none

2023-11-28 10:33:24.437 INFO (MainThread) [music_assistant.metadata] Unable to get musicbrainz ID for artist Okieriete Onaodowan
 - using lookup-album(s): none
 - using lookup-track(s): none

2023-11-28 10:34:07.087 INFO (MainThread) [music_assistant.metadata] Unable to get musicbrainz ID for artist Various Artists - Topic
 - using lookup-album(s): none
 - using lookup-track(s): none

2023-11-28 10:36:50.057 INFO (MainThread) [music_assistant.providers.slimproto] Player Ben’s MacBook Pro disconnected
2023-11-28 11:53:15.891 INFO (MainThread) [music_assistant.providers.slimproto] Player Bedroom disconnected
2023-11-28 12:11:10.399 INFO (ThreadPoolExecutor-0_1) [pychromecast.controllers] Receiver:Launching app CC1AD845
2023-11-28 12:11:13.815 INFO (MainThread) [music_assistant.providers.slimproto] Player Ben’s MacBook Pro disconnected

@MarvinSchenkel can you have a look at the YT error above.
@rjgrandy i can’t follow the “initial_errors.txt” log with all the debug lines in it. If this is still an issue then please post another log file without debug enabled. The ideal way is to restart MA and then just do the minimal steps to get the error to occur so we can the log from startup to error without any additional logging.

Looks like there's a funky playlist that is causing trouble during sync. Do you have any 'weird' playlist in your library? Like playlist with custom uploaded songs etc? Would be good if we can isolate this playlist and pinpoint the error.

Looks like there's a funky playlist that is causing trouble during sync. Do you have any 'weird' playlist in your library? Like playlist with custom uploaded songs etc? Would be good if we can isolate this playlist and pinpoint the error.

I started using Google Play Music (YouTube Music) when it launched and uploaded my previous iTunes library (way back in the day) so my uploaded songs have persisted and are scattered across many playlists, but there shouldn't be any on the playlist I use with Music Assistant. I have an automation to shuffle a specific playlist when I get home.
The playlist.
I went through the list (which is mostly taken from another user's shared list) and found several entires with !. See image. I removed all of these tracks.

Just tried playing the list again and skipping a song, but got errors.
2023-12-14 08:15:25.014 WARNING (MainThread) [music_assistant.music] Sync task for YouTube Music completed with errors
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/controllers/music.py", line 571, in run_sync
    await provider.sync_library(media_types)
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/models/music_provider.py", line 366, in sync_library
    async for prov_item in self._get_library_gen(media_type):
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/providers/ytmusic/__init__.py", line 259, in get_library_playlists
    playlists_obj = await get_library_playlists(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/providers/ytmusic/helpers.py", line 137, in get_library_playlists
    return await asyncio.to_thread(_get_library_playlists)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/asyncio/threads.py", line 25, in to_thread
    return await loop.run_in_executor(None, func_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/providers/ytmusic/helpers.py", line 129, in _get_library_playlists
    playlists = ytm.get_library_playlists(limit=9999)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/ytmusicapi/mixins/library.py", line 41, in get_library_playlists
    get_continuations(results, 'gridContinuation', remaining_limit, request_func,
  File "/usr/local/lib/python3.11/site-packages/ytmusicapi/continuations.py", line 20, in get_continuations
    contents = get_continuation_contents(results, parse_func)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/ytmusicapi/continuations.py", line 74, in get_continuation_contents
    return parse_func(continuation[term])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/ytmusicapi/mixins/library.py", line 38, in <lambda>
    parse_func = lambda contents: parse_content_list(contents, parse_playlist)
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/ytmusicapi/parsers/browsing.py", line 47, in parse_content_list
    contents.append(parse_func(result[key]))
                    ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/ytmusicapi/parsers/browsing.py", line 122, in parse_playlist
    'title': nav(data, TITLE_TEXT),
             ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/ytmusicapi/navigation.py", line 82, in nav
    raise err
  File "/usr/local/lib/python3.11/site-packages/ytmusicapi/navigation.py", line 76, in nav
    root = root[k]
           ~~~~^^^
KeyError: 'runs'

I went through the list (which is mostly taken from another user's shared list) and found several entires with !. See image. I removed all of these tracks.

I still see three with the exclamation mark. Additionally are any of those tracks uploaded by you or are they all publicly accessable?

@OzGav those tracks should all be public, I don't think I uploaded any. I checked again and see no ! tracks remaining, maybe some are YTM premium only (assuming you may not have a subscription)?
@MarvinSchenkel so weird! Is there a next troubleshooting step you'd like me to try?
Thank you both very much for looking into this.

Yes I don’t have a subscription. FYI these are the tracks I see with an exclamation mark

The subscription must be why. I didn't upload these.

I thought it odd that I can see all the other tracks on the album though….

Any updates on this? Is it still a problem?

Hi @OzGav, if the update question was for me, yes the problem persists.

I also continue to have the issue. I changed to running MA in docker on Unraid instead of as an add on in HA. It is a lot better but will still stop if played long enough.

Hi @OzGav, if the update question was for me, yes the problem persists.

Have you done any more testing as @MarvinSchenkel was able to sync the playlist without issue…?

Just to add my 2 cents, the player seems only to play the current track and would not proceed to the next track in the playlist (youtube music). If I manually press next trac, it would work.

Just to add my 2 cents, the player seems only to play the current track and would not proceed to the next track in the playlist (youtube music). If I manually press next trac, it would work.

This is a different problem that will hopefully be solved in the next beta


test: Demonstrate e2e tests for private IP databases and GKE clusters.

Demonstrate that the Private IP operator flag correctly allows the proxy to connect to a private IP database.

/gcbrun

/gcbrun

/gcbrun

/gcbrun

/gcbrun

/gcbrun

/gcbrun

/gcbrun

/gcbrun

/gcbrun

I want to keep all the provider declarations together in main.tf so that they are easier to manage.


[Feature request] Enable AUTO_CONSUME

It doesn't seem like the python client supports auto consume. This does however seem to be the case for the java client as documented here. It would be useful to have for the python client as well. It seems like there is already some C++ code in the repo related to AUTO_CONSUME, here.

cc @shibd do we support it now or have any plan?

No plan yet.


docs: added ragas cookbook

This shows how to use Ragas library for model-based evaluation with the langfuse python SDK

Great, excited for this cookbook, moved it to the docs repo: https://github.com/langfuse/langfuse-docs/pull/151


feat(platform-serverless): detect lambda event type to map http respo…

…nse when it's only necessary
Information

Type
Breaking change

Feature
No

Improve support on platform-serverless package. Now Ts.ED detect if the lambda is an APIGatewayEvent (or http event like) and map ServerlessResponse to a valid AWS response. Otherwise, Ts.ED return the raw response from the endpoint.
Solve issue with Lambda Authorizer and other kind of AWS event.
Todos

[x] Tests
[x] Coverage
[x] Example
[x] Documentation

:tada: This PR is included in version 7.76.0 :tada:
The release is available on:

v7.76.0
GitHub release

Your semantic-release bot :package::rocket:


Harden isKindOfClass: check

We've seen some Obj-C NSProxy subclass implementations that are broken and will
crash if you send them a standard isKindOfClass: message.  This came out because
the casting machinery is now more aggressive about trying different casting options which
means some of these broken objects are being queried in new ways.
This adds an additional check before calling isKindOfClass: to verify that
this object is not using the default NSProxy selector routing.  If it is,
we just assume it's not whatever class is being tested for since we cannot
do anything better.
Resolves rdar://73799124

@swift-ci Please test

Build failed
Swift Test OS X Platform
Git Sha - fa9ebe8f0af81392b831b91cc61072beb4519067

@swift-ci Please test

For the record:  This is really all @mikeash work; he told me what to write, fixed it when I screwed it up anyway, and tested it for me.

I did the fun bits, you did the annoying part of actually turning the thoughts into stuff that will compile.

Build failed
Swift Test Linux Platform
Git Sha - 1830acf508c3c9c0fb1fd8e3e86053f5e6c64cd8

Build failed
Swift Test OS X Platform
Git Sha - 1830acf508c3c9c0fb1fd8e3e86053f5e6c64cd8

@swift-ci Please test macOS Platform

@swift-ci Please test Linux Platform

@swift-ci Please test Windows Platform

Build failed
Swift Test OS X Platform
Git Sha - 1830acf508c3c9c0fb1fd8e3e86053f5e6c64cd8

@swift-ci Please test


OAuth not working during ingestion

About You:
Name: Rostislav
Company: Coursemojo
We have a bunch of data that's in dynamo db that we need to get into tableau.
It seemed that it would be quite simple to build a web connector to ingest that data. But it's been a painful process.
We have our own internal oauth server - when connecting, the application gets the access token and the refresh token. And is able to make requests to the api which returns the data.
But some of our tables are quite large and the access token expires before the data can be fetched fully. At that point, I would expect the sdk to use the refresh token to get a new access token and retry the request to continue ingesting the data.
Instead, the whole thing breaks due to an unexpected 401 error and none of the data that it had already ingested sticks around.
Am i misunderstanding how the whole oauth flow is supposed to work?
I can't find any mention in the documentation either about what I need to do to get it to refresh either. Is there something special I need to put into my fetcher class?
Also, not seeing these console logs anywhere either ... where do they appear?
import { Fetcher, FetchUtils, FetchOptions, DataRow, getOAuthHeader } from '@tableau/taco-toolkit/handlers'

export default class DataFetcher extends Fetcher {
  async *fetch({ secrets }: FetchOptions) {
    const baseUrl = 'https://website.com/data/events'
    const headers = getOAuthHeader(secrets)

    let count = 0
    let hasMoreData = true
    let startAfterKey = null

    while (hasMoreData && count <= 1000) {
      let fetchUrl = baseUrl
      if (startAfterKey) {
        const encodedStartAfterKey = encodeURIComponent(JSON.stringify(startAfterKey));
        fetchUrl = `${baseUrl}?start_after_key=${encodedStartAfterKey}`;
      }

      try {
        console.log("GETTING RESPONSE")
        const response = await FetchUtils.fetchJson(fetchUrl, { headers })
        const rows: DataRow[] = response.items;
        count += rows.length
        yield await FetchUtils.ingestDataRows(rows)

        startAfterKey = response.pagination.start_after_key
        hasMoreData = !!startAfterKey
      } catch (error) {
        console.error('Error in fetch:', error)
        throw error
      }
    }
  }
}

function fetchJson(networkAdapter, url, options) {
    return __awaiter(this, void 0, void 0, function () {
        var fetchParams, headers, response;
        return __generator(this, function (_a) {
            switch (_a.label) {
                case 0:
                    fetchParams = getFetchParams(url, options);
                    headers = fetchParams.options.headers;
                    if (headers === undefined) {
                        fetchParams.options.headers = headers = {};
                    }
                    headers['Accept'] = 'application/json';
                    return [4 /*yield*/, networkAdapter.fetch(fetchParams.urlWithQuery, fetchParams.options)];
                case 1:
                    response = _a.sent();
                    if (!response.ok || response.body === null) {
                        throw new Error("fetchJson: unexpected response. [status]: ".concat(response.status, ", [statusText]: ").concat(response.statusText));
                    }
                    return [4 /*yield*/, response.json()];
                case 2: return [2 /*return*/, _a.sent()];
            }
        });
    });
}
exports.fetchJson = fetchJson;

here is where the error is being thrown ... and nothing is catching it to refresh.
Is there a method to call or something I can do to get tableau to trigger the refresh?

{"ts":"2024-08-05T15:11:25.528Z","pid":"32509","sev":"info","sourceName":"Extractor.c4ca6874-bed5-4bad-a0c8-7f694f220779","v":"Count of rows ingested: 2"}
{"ts":"2024-08-05T15:11:26.991Z","pid":"32509","sev":"info","sourceName":"Extractor.c4ca6874-bed5-4bad-a0c8-7f694f220779","v":"Count of rows ingested: 2"}
{"ts":"2024-08-05T15:11:27.950Z","pid":"32509","sev":"error","sourceName":"Extractor.c4ca6874-bed5-4bad-a0c8-7f694f220779","v":"Error: fetchJson: unexpected response. [status]: 401, [statusText]: Unauthorized     at /snapshot/extensible-protocol-server/dist/eps/sandbox/sdk/fetcher-utils/fetch-utils.js     at step (/snapshot/extensible-protocol-server/dist/eps/sandbox/sdk/fetcher-utils/fetch-utils.js)     at Object.next (/snapshot/extensible-protocol-server/dist/eps/sandbox/sdk/fetcher-utils/fetch-utils.js)     at fulfilled (/snapshot/extensible-protocol-server/dist/eps/sandbox/sdk/fetcher-utils/fetch-utils.js)     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"}
{"ts":"2024-08-05T15:11:27.950Z","pid":"32509","sev":"error","sourceName":"Extractor.c4ca6874-bed5-4bad-a0c8-7f694f220779","v":"{ 'Status Code': 'UNHEALTHY', 'Error Source': 'client', 'EPS Error Code': 'P6WNIRTU', 'Error Message': 'Failure in sandbox pipeline. DataFetcher.fetch failed. fetchJson: unexpected response. [status]: 401, [statusText]: Unauthorized' }"}
{"ts":"2024-08-05T15:11:28.171Z","pid":"32509","sev":"info","sourceName":"Extractor.c4ca6874-bed5-4bad-a0c8-7f694f220779","v":"{ listeningServer: 'ExtractorApi', method: 'GET', type: 'received request', url: '/tables', headers: { host: 'localhost:9092', 'accept-encoding': 'gzip, deflate', 'user-agent': 'Tableau Desktop 20242.24.0711.1636; pro; libcurl-client; 64-bit; en_US; Mac OS X 14.5;', 'eps-instance-id': '8e418e5f-3f74-43ab-8973-9f38b86482aa', 'connection-id': 'coursemojo_data_router_v4.0i0h72407nsk5e188z69t1j5esua', 'extractor-id': 'c4ca6874-bed5-4bad-a0c8-7f694f220779', 'caller-id': 'J7yq/iY7EdLKbMidvZ98qD', accept: 'application/json', 'content-type': 'application/json', connection: '********' } }"}
{"ts":"2024-08-05T15:11:28.172Z","pid":"32509","sev":"debug","sourceName":"Extractor.c4ca6874-bed5-4bad-a0c8-7f694f220779","v":"Failure in sandbox pipeline. DataFetcher.fetch failed. fetchJson: unexpected response. [status]: 401, [statusText]: Unauthorized"}


Update Starscream

This PR fixes errors that were introduced with the release of Starscream v1.1.3. In particular, several function signatures were modified, causing the inheritance of SpeechToTextWebSocket from WebSocket to break. These signatures have been updated so that the SDK successfully builds.
Related Issues: #222

All Speech to Text tests successfully pass when tested locally.


lint generated code

http://ci.ros2.org/job/ci_linux/1303/
http://ci.ros2.org/job/ci_osx/1034/
http://ci.ros2.org/job/ci_windows/1337/

except minor comment for inclusions lgtm

Latest CI builds with the option added by @dhood:

Linux
OS X
Windows

Other than a comment, lgtm.


Update .travis.yml

fix osx on ci, could we tag after this?

cc @ahojukka5

Hmm any idea why the coverage decreased.

probably just a fluke?

I enabled osx, to show that with these changes osx builds pass on travis

@ahojukka5 this seems pretty uncontroversial. I propose we merge this. Coveralls is always a bit flaky and unreliable at times.

Yes. Let's just merge.


chore(main): release 0.2.2

:robot: I have created a release beep boop
0.2.2 (2023-05-02)
Bug Fixes

undo bump of virtualenv, back to 20.21.0 (#223) (01bfe6f)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/Autodesk/pgbelt/releases/tag/v0.2.2 :sunflower:


Day245

Resolves #506.

Pull Request Test Coverage Report for Build 958

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 956:
0.0%

Covered Lines:
5

Relevant Lines:
5

💛  - Coveralls

Pull Request Test Coverage Report for Build 949

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 956:
0.0%

Covered Lines:
5

Relevant Lines:
5

💛  - Coveralls


Telerik Push plugin support

Hey, what about giving some support for the Telerik PushPlugin?
https://github.com/Telerik-Verified-Plugins/PushNotification
I could send a PR if you agree, the Telerik plugin have extended functionality and is actively supported.
I would add sopport for iOS interactive notifications and to check if push notifications are enabled.
https://github.com/Telerik-Verified-Plugins/PushNotification

+1
Em 06/06/2015 16:29, "Oliver Perez"<EMAIL_ADDRESS>escreveu:

Hey, what about giving some support for the Telerik PushPlugin?
https://github.com/Telerik-Verified-Plugins/PushNotification
I could send a PR if you agree, the Telerik plugin have extended
functionality and is actively supported.
I would add sopport for iOS interactive notifications and to check if push
notifications are enabled.
https://github.com/Telerik-Verified-Plugins/PushNotification
—
Reply to this email directly or view it on GitHub
https://github.com/driftyco/ng-cordova/issues/839.

So the telerik plugins are actually just the standard cordova plugins that have been forked and tested by the people at telerik. There really is no difference between the two.


Improve rule config resolution

Ruff allows rules to be enabled with select and disabled with
ignore, where the more specific rule selector takes precedence,
for example:
`--select ALL --ignore E501` selects all rules except E501
`--ignore ALL --select E501` selects only E501

(If both selectors have the same specificity ignore selectors
take precedence.)
Ruff always had two quirks:

If pyproject.toml specified ignore = ["E501"] then you could
previously not override that with --select E501 on the command-line
(since the resolution didn't take into account that the select was
specified after the ignore).

If pyproject.toml specified select = ["E501"] then you could
previously not override that with --ignore E on the command-line
(since the resolution didn't take into account that the ignore was
specified after the select).

Since d067efe2656dfa86c8ac2baa87f43f408e862a3a (#1245)
extend-select and extend-ignore always override
select and ignore and are applied iteratively in pairs,
which introduced another quirk:

If some pyproject.toml file specified extend-select
or extend-ignore, select and ignore became pretty much
unreliable after that with no way of resetting that.

This commit fixes all of these quirks by making later configuration
sources take precedence over earlier configuration sources.
While this is a breaking change, it fixes the broken status quo.
Fixes #2300.

I think this makes much more sense and is much more user-friendly / understandable.
This obviously breaks existing configurations that relied on the previous weird behavior ... however I'd expect most ruff config files to not rely on this weird behavior ... but that's just a hunch.
How you want to go about this is very much your call. It would be possible to support both the old and the new config resolution at the same time and only use the new resolution based on some tool.ruff.edition setting but I am not really interested in implementing that.

I just have to take a look at some of the more complex setups in the wild and see how they'd be affected.

How you want to go about this is very much your call. It would be possible to support both the old and the new config resolution at the same time and only use the new resolution based on some tool.ruff.edition setting but I am not really interested in implementing that.

Don't worry, I definitely don't want to support both.

(force pushed a small refactor that removed extend_ignore from the new RuleSelection struct and removed some needless Option wrapping around the fields that don't require it)

I think we should also mention in the new Rule resolution section in the README and the BREAKING_CHANGES.md entry that extend-ignore is now deprecated since it behaves exactly like ignore.


Issue-change define plugin syntax

Automated Review Comments
Issues in examples/streamGraphExample/webpack.prod.config.js:

(5, 'Hardcoded string found')
(8, 'Hardcoded string found')
(11, 'Line exceeds 80 characters')

I got it.


Update channel-change.md

Closing as this work is being implemented via https://github.com/MicrosoftDocs/powerapps-docs-pr/pull/8873


ci(changelog): add automation for changelog generation

Codecov Report

Merging #234 (9ed1a3a) into master (fa44c3f) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #234   +/-   ##
=======================================
  Coverage   62.40%   62.40%
=======================================
  Files          58       58
  Lines        2865     2865
  Branches      583      583
=======================================
  Hits         1788     1788
  Misses        942      942
  Partials      135      135

Continue to review full report at Codecov.

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


Update add-or-remove-machine-tags.md

Updated the HTTP request to patch
Fixes#https://github.com/MicrosoftDocs/microsoft-365-docs/issues/11095

@JohanFreelancer9 Please copy review

@mjcaparas Please merge this PR. Thanks


'Show DataView' has everything, options.dataViews[0] is missing most stuff

When I use the 'Show DataView' preview. Everything in Categorical or Matrix is there (I've tried setting the DataViewMappings both ways many times).
This is what I can see in 'Show DataView':

I can't see any of this in what is passed to the update function, everything I would want is hidden behind ' __ proto __ :

Is this a bug or am I doing something fundamentally wrong? I feel like I've tried everything and been through all the existing visualisations to see the different options I can try.
Here are my DataViewMappings:

Correct. The reason for that is DataView employs prototypical inheritance. The viewer in the 'developer visual' flattens this so you can easily view it. Even though the browser debugger 'hides' it behind '__ proto __', it shouldn't affect the way you access the properties, and should work as a regular object.

Thanks for the quick reply! Having developed mobile apps in JS for the last few years and never used the Chrome Debugger I hadn't seen that before! It greys proto it out so it looked private or not really there to my eyes.
Loving the new tool set btw!


Drive Properties in Dark Mode Unreadable

Description
In Dark Mode with Default Theme, right click C: drive and select Properties.  The dialog background is white making the white text unreadable.
Steps To Reproduce
right click C: drive and select Properties
Expected behavior
Expect to be able to read the dialog.
Files Version
<IP_ADDRESS>
Windows Version
Windows 11 Version 21H2 (OS Build 22000.438)
Relevant Assets/Logs

Merging with #6066


Update projects.json Added my Project in it.

Related Issue
data: project addition by Hareesh108 #933
Description
I have added my project in it.

@priyankarpal Thanks.  i have updated changes.


Need to link dependencies.md

ptal @brunobowden
there's no failure in the CI - i just cancelled it

I didn't understand the purpose of doing this. Do you intend to show parts of this as error output as explanation on what a developer should do? Why not just link to the GitHub repo instead? This commit definitely could do with more description to explain it's purpose.

All of our documentation is linked into our plugin.  README, FAQ, LICENSE, etc.
We chose to move text from FAQ to dependencies.md, and FAQ references by name dependencies.md.
We'd be losing documentation if we didn't also link dependencies.md like all the other

LGTM
So how do people access this? Presumably they'd only see it if they were routing around inside the jar?

Yes.  For IntelliJ at least, all of the things on your classpath are browseable in the external libraries tree and so easy to read.


Provide capability to specify which properties to use for assigning AI context

As of today, the sink provides some default properties that it will forward to the Application Insights context such as operationId.
It would be good if we could change the default names so that it uses other ones, allowing it to align with our existing naming (standards).
Proposal
 var log = new LoggerConfiguration()
                .WriteTo
                .ApplicationInsights(TelemetryConfiguration.Active, TelemetryConverter.Traces, enrichmentOptions =>
                {
                    enrichmentOptions.PropertyNames.OperationId = "operation-id";
                })
                .CreateLogger();

Happy to contribute this if you want

Hi! 👋 Thanks for getting in touch, and sorry we were unable to respond to your request. We're in the process of bringing new maintainers onto this project, and need to close stale tickets so that we can identify which items are still important to users of the sink.
If this issue still affects you:

Please consider whether it's a question that can be asked on Stack Overflow; if so, the serilog tag will get your question in front of many more people who can help you
Please consider whether you can research or investigate the issue and propose a solution for other users to benefit from
Feel free to comment here, letting us know it's still a problem

Thanks again!


Credentials for Docker Hub may be stored in different registry entry.

Some people are experiencing an authorization error when pushing to Docker Hub even if pushing with docker works. This may be because Docker Hub credentials could be stored under a different registry entry instead of registry.hub.docker.com. For example, a Docker config (located usually at $HOME/.docker/config.json) could have:
{
	"auths": {
		"https://index.docker.io/v1/": {},
...

We should support this alias as well when using Docker config to fetch credentials.

May be what's happening for #564

We should also support any auths with suffixes after the registry domain (ie. index.docker.io/v1/ vs. index.docker.io) in this method.

How should it work exactly? For example, my intuition is that, if the given registry is index.docker.io, it doesn't match the entry index.docker.io/v1/ in the Docker config because it is more specific. Conversely, if the given repository is index.docker.io/v1/, it can match entries of both index.docker.io and index.docker.io/v1. Is that right? And is the suffix only possible in the Docker config or it is generally applicable in other stores like settings.xml and the build configurations (pom.xml and build.gradle)?

So v1 or v2 refers to the Docker Registry API version that route implements. For example, GCR uses Docker Registry API V2, so all requests are to gcr.io/v2/.... In the image reference, this v1 or v2 is omitted. I think the way it should work is that the domain name should match any entry with the suffix.
ie. index.docker.io should match index.docker.io and index.docker.io/v1
I think in settings.xml, we should do the opposite: index.docker.io/v1 should match index.docker.io/v1/ and not index.docker.io. This is so that specifying credentials for gcr.io/my-gcp-project should not have those credentials be used for gcr.io/my-other-gcp-project, for example.

I think we should do the same to https://github.com/GoogleContainerTools/jib/blob/master/jib-core/src/main/java/com/google/cloud/tools/jib/registry/credentials/json/DockerConfigTemplate.java#L105, right?

Yep!

Hmm... I actually find a pitfall with #642 and #650, with the startsWith registry name match. For example, "this.regsitry" should not match "this.registry.com". I think it shouuld be startsWith(registry + "/").

@chanseokoh hmm, good catch - we should probably match equals(registry) || startsWith(registry + "/") so that if it's just this.registry.com it will still match

What I think are the remaining tasks: also look for aliases in settings.xml and the auth section in build.gradle, and that's all?

I think we can leave that off to a later version, since the users explicitly type the names in settings.xml. (For auth, it is directly tied to the image so there is no alias necessary).


Pancakes

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version:
OS Version:

Steps to Reproduce:
1.ip
2.

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version:
OS Version:

Steps to Reproduce:
1.ip
2.

[ ] # - @meandi1395


Add in an awards, ranking, and contests feature

We can also use the statistics collected from the users of the website to gamify the website. We can include rankings and awards. For example a reward for most models make, highest accuracy model made on this website etc. We can also include contests and a ranking board.

Closed as duplicate to #26


How Can i Get File Content as Byte array or as stream from Entries

Hello,
How can i get filecontent of extract file in entry
var archive = ArchiveFactory.Open("abc.zip");
            foreach (var entry in archive.Entries)
                {
                // how can get byte array or stream of file form entry
                }

thanks in advance

Look at the tests


Bug report:To Hex and From Hex does not give expected output.

Bug report:To Hex and From Hex does not give expected output.
Giving input to either To Hex or From Hex does not result in expected output.
Using Cyberchef and giving the following input "12947848928752043" to the function To Hex produces the following output "3132393437383438393238373532303433". However, providing the same input on the site https://www.binaryhexconverter.com/decimal-to-hex-converter give the following output "2E00000000F1AB".
The same goes with the opposite. Providing the following output "2E00000000F1AB" to the function From Hex produces ".....ñ«" while at the binaryhex-website produces "12947848928752043".
Desktop (if relevant, please complete the following information):

OS: Windows 10 Enterprise, 1703
Browser Firefox Quantum
Version 68.0.1 (64-bit

Disclaimer: I'm a bit new to this but I figured it was something strange but maybe I'm just missing some kind of critical information. Sorry if I wasted your time!

When using To / From Hex, CyberChef treats the input as a UTF-8 string, not a numerical value, whereas a decimal to hex converter will treat it as a decimal number.
To get the same result using CyberChef, you can use the To Base operation to convert to a hexadecimal number, and the From Base operation to convert it back to a decimal number.


Allow user email updates (adding additional contact email in the Profile)

[ ] add a contact email in the user profile
[ ] if set, use the contact email wherever possible for display purposes
[ ]  gracefully fallback to the account email if the contact email is not set
[ ] add a process for verifying the user contact email and only display verified contact emails

It would be a security hazard to allow the user to change its email since we use it as an account username. We need instead a contact email to be displayed in lieu of the username.

The email needs to be verified to prevent potential spamming.

I basically added an email field in the verification token so that we can tell if the token applies to the contact email or not. Also, we remove token from the database once they are used to prevent their reuse.

We need a test to ensure that emptying the contact email results in a null value and thus the account email to be used.


Cleanup NetBeans license header for module options.editor

Review and cleanup the license header in options.editor
Oracle donated NetBeans to the Apache Software Foundation.
Your task now is to replace the old license header that has Oracle (and/or Sun Microsystems
and/or NetBeans) in it with the standard Apache Software Foundation license header.
For an empty file that supports headers you must add the Apache license header.
Note that you have to use the proper license header for Java, .properties or HTML files.
Look at the nearby files for templates and copy-paste the license header.
When done commit the changes with a commit message that starts with first line
"[NETBEANS-54] Module Review " and a message body describing your review.
See a longer explanation about what we are doing here: https://cwiki.apache.org/confluence/display/NETBEANS/List+of+Modules+to+Review
Please announce in a comment when you have started work.
Files that need to be looked at in options.editor:
options.editor/src/org/netbeans/modules/options/colors/AllLanguagesExample
options.editor/src/org/netbeans/modules/options/colors/HighlightingExample
options.editor/src/org/netbeans/modules/options/indentation/indentationExample

Working on

Somebody did a push on this upstream https://github.com/apache/incubator-netbeans/pull/159


In the config file the join message edit doesn't work

I edited the config "glucose.cfg", but the join and the leave message doesn't chainged.

This is not a bug. It is just not implemented yet. Its a placeholder for when I do get around to implementing it.


Remove "fast failure" authentication check in new AccumuloClientImpl

The old ConnectorImpl would reach out to a random tserver when the Connector was constructed in order to verify the credentials it was constructed with. This was a poor attempt to validate arguments and caused problems with performance with the system user. An exception was hard-coded in to avoid this fast-failure with the system user, but in general, it was bad behavior. However, since users may have been relying on this early check, it could have caused problems to change the behavior in the old API.
That code was moved into AccumuloClientImpl for the new AccumuloClient API, along with that bad behavior. However, this fast failure check should be removed. It is an unnecessary client performance hit when constructing a client, and could cause failures in legitimate circumstances, and doesn't exempt a user from catching authentication related exceptions later. However, this is shared code... so it might be nice to continue the existing behavior if a user uses the old API.

Fixed in #792


Expected version of pydicom?

Which version of pydicom are you relying on? It looks like the one from PyPI, but it would be nice to know for sure – to be able to use the version that is used for development as well ;)

if this was for me, I added it from git-
$ python -m pip install git+git://github.com/pydicom/pynetdicom3.git

Generally, the current master of pydicom is used, as can be seen in the travis script. As there have been very few changes since the last pydicom release, this is currently almost the same as the PyPi version.
Though it would be nice to have a requirements.txt where this is explicitely stated...


Krushkal's algorithm in C,C++,Python

The problem is to implement Kruskal's algorithm to find the minimum spanning tree of a connected, weighted graph.
I would like to implement a function kruskal_mst that takes a connected, weighted graph as input and returns the minimum spanning tree as a collection of edges. The function should use Kruskal's algorithm, which works by sorting the edges of the graph in non-decreasing order of their weights and gradually adding the edges to the minimum spanning tree while ensuring that no cycles are formed.

One of the solution is to use Prim's algorithm to find the minimum spanning tree. Prim's algorithm starts from an arbitrary vertex and repeatedly adds the closest vertex to the current tree, greedily expanding the tree until it spans all vertices.
Another alternative solution is to use Boruvka's algorithm, which works in a similar manner to Kruskal's algorithm but divides the graph into smaller components and merges them iteratively.

Additional context
Consider handling edge cases such as an empty graph or a graph with no edges. Discuss the time and space complexity of the chosen approach and any trade-offs associated with the implementation.
@Kumar-laxmi
Please review the proposed implementation and provide feedback or suggestions for improvement.

refer #683


Bug: can't copy file from custom location

Description
if my dotfiles repo looks like

./
  manifests/
    linux/
      starship.yml
      asdf.yml
      zsh.yml
    windows/
      starship.yml
    macosx/
      starship.yml
      asdf.yml
  profiles/
    asdf/
      setup.bash
    xresources/
      Xresources.tpl
      Xresources.theme
      Xresources.xterm
      Xresources.xvrt
    zsh/
      zshrc
      zshenv
      zprofile
      parts/
      lib/
    ps/
      profile.ps1
      parts/
      lib/

and my manifests/linux/zsh.yml wants to copy a file from the profiles/zsh directory... it can't because:
---
where: os.name == "linux"

actions:
 - action: file.link
   source: profile/zsh/.zshrc
   target: ~/.zshrc

means: symlink manifests/linux/files/profile/zsh/.zshrc to ~/.zshrc
and
---
where: os.name == "linux"

actions:
 - action: file.link
   source: ../../profile/zsh/.zshrc
   target: ~/.zshrc

results in an error
 INFO execute:{manifest="manifest.git"}:{action=file.copy}: Action failed to get plan: Failed to get contents for FileCopy action: Failed because ~/Projects/Dotfiles/manifest/files/../../../profile/gitconfig was not found

I guess im'm only allowe to have a folder structure of :

./
  manifests/
    starship.yml
    asdf.yml
    zsh.yml
    files/
      tools/
        asdf/
          setup.bash
      profiles/
        xresources/
          Xresources.tpl
          Xresources.theme
          Xresources.xterm
          Xresources.xvrt
        zsh/
          zshrc
          zshenv
          zprofile
          parts/
          lib/
        ps/
          profile.ps1
          parts/
          lib/

Additional information
Add more context which didn't fit in the fields above.

I'm torn between declaring it a bug or missing functionality, as it is clearly a convention to be in files relative to the root dir of the manifest.

This is a limitation at the moment because we need to improve Comtrya manifest detection from random YAML in the repo. It’s a huge pain point for me too.
Let me come up with a solution this week and I’ll share on the community call Thursday for quick feedback


Cluster wide proxy

Closes #440

Can add tests later

Testing "subscription-wide" should be possible without potentially harming other ci components.
https://docs.openshift.com/container-platform/4.9/operators/admin/olm-configuring-proxy-support.html#olm-overriding-proxy-settings_olm-configuring-proxy-support


fix malformed citation.bib file

Please consider publishing a new version, for example an incremented patch version, to the julia package registry. This way, the citation information can be used to cite your work correctly going forward.

Thank you for the contribution @mainrs , publishing a new version is something I hope to be able to do sometime soon, there is alot of adaptations to fit this to the current Julia version.


Add RTPS & RTPP (resolve #140)

Brief description
Add Relaxation to Prior Perturbation (RTPP) & Relaxation to Prior Spread (RTPS) to avoid over-shrinked analysis uncertainty due to small ensemble size. (resolve #140 )
Features added
See above
Bugs fixed
N/A
Test changes
N/A
Documentation changes
N/A
Does this create a breaking change?
N/A

@sanAkel your question about how to test them:

Checked their ensemble spread. Subroutines from my QG/SPEEDY/MPAS-LETKF.

I don't see you changed https://github.com/UMD-AOSC/Ocean-LETKF/pull/164#issue-1619482182

There is no need to change these codes. Those components are routinely used in my other atmosphere LETKF systems. when building those subs, they are extensively tested to check their impacts on the analysis spread.

1 . There is no need to change these codes. Those components are routinely used in my other atmosphere LETKF systems. when building those subs, they were extensively tested to check their impacts on the analysis spread. 2. I add the full name of RTPS and RTPP in the Brief description in this PR.

@gmao-cda I'm not looking for

change these codes.

I understand that

Those components are routinely used in my other atmosphere LETKF systems. when building those subs, they were extensively tested to check their impacts on the analysis spread.

Thanks for adding

I add the full name of RTPS and RTPP in the Brief description in this PR.

Can you follow through and Describe their functionality? See this for example of how its done.

@sanAkel Description updated.


add svo export example following zed-examples

While exploring and learning the pyzed package, I went ahead and converted the C++ example to Python for pulling video and images from an SVO file.  Here it is for others if you want.

Thanks for your contribution!


Remove redundant initialization functions with meta programming

Codecov Report

Merging #2 (5a562a5) into fm/start (ff85d65) will decrease coverage by 91.67%.
The diff coverage is 0.00%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@             Coverage Diff              @@
##           fm/start      #2       +/-   ##
============================================
- Coverage     93.93%   2.27%   -91.67%
============================================
  Files             2       3        +1
  Lines            66      44       -22
============================================
- Hits             62       1       -61
- Misses            4      43       +39

Impacted Files
Coverage Δ

src/WeightInitializers.jl
100.00% <ø> (ø)

src/initializers.jl
0.00% <0.00%> (ø)

src/utils.jl
0.00% <0.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Much more streamlined, I love it. I think we are good to go for v0.1!


implement connection block

@pelikhan - question on the semantics here.  This should obviously fire whenever the role transitions from "disconnected" to "connected. But on program start, it should also fire if the button is already connected. Do you agree?

Correct, it should fire once if the role is already connected.

This should be done in the servicesdsl

done


initial changes for python3 support

A new Pull Request was created by  @smuzaffar (Malik Shahzad Muzaffar) for branch cms/master/6ea764102a.
@cmsbuild, @smuzaffar, @mrodozov, @iarspider can you please review it and eventually sign? Thanks.
cms-bot commands are listed here

Pull request #1 was updated.

Pull request #1 was updated.

Pull request #1 was updated.

Pull request #1 was updated.

Pull request #1 was updated.

Pull request #1 was updated.

Pull request #1 was updated.


Consider the package naming rule for autoware.core and autoware_common

As previously discussed in https://gitlab.com/autowarefoundation/autoware.auto/AutowareAuto/-/issues/108, the packages that might be released should have a prefix to be named globally unique.
Since the packages that will be put in this repository might be released, we should decide how to name them.
Also considering the Core/Universe architecture, there would be for example trajectory_follower of Universe and trajectory_follower of Core, therefore it's reasonable to add a prefix to Core packages.
IMO. the candidates of the prefix are autoware_ or aw_.
For the following reasons, I would prefer aw_.

To keep the package names short.

autoware_auto_ is too long.

To avoid conflicts between the existing packages.

Some packages are already named autoware_.

AW is a well-known abbreviation of Autoware.

The Autoware Foundation is called AWF.

FYI, I think what packages are included in autoware_common would be like the following:

autoware_lint_common (a common lint settings)
autoware_utils (like https://github.com/ros2/rcutils)
autoware_auto_cmake
autoware_auto_testing
etc.

The result of Tier IV's internal discussion.
As our proposal, we'll:

Name Core/Common packages as autoware_*

autoware_auto_* will be autoware_* except for msgs

Rename existing autoware_* packages in Universe as different names to avoid confusion

autoware_state_monitor -> driving_state_monitor,
operation_state_monitor, ad_service_state_monitor or so
autoware_error_monitor -> system_error_monitor
autoware_utils -> tier4_autoware_utils or move to autoware_common?
etc.


Could not make Example\Template\FrontendTwigRenderer: Class Example\Template\FrontendTwigRenderer does not exist

Hi. I went through one by one of your tutorial on Windows and it works well. But when I tried to hosted it on Linux (Ubuntu) It shows this error.

Hi there. Anyone there.. Please help me... @PatrickLouys

Come to http://chat.stackoverflow.com/rooms/11/php and ping me (Patrick) so we can work this out. An issue is not really the place for this.


added Quick Sort

What type of PR is this? (check all applicable)

[ QuickSort] 🚀 Added Name
[Quick Sort program in C ] ✨ Feature
[ No] 🌟 stared the repo
[ No] 🐛 Grammatical Error
[Yes ] 📝 Documentation Update
[ ] 🚩 Other

Description
Added Quick sort program in C language
Add Link of GitHub Profile
https://github.com/shubhangi-dwivedi

It is my first time contributing, let me know if there is any issue with my merge reuest.


🐛 Fallback page

In the google index and old links (for example https://democracy-app.de/whats-hot/ ) result on an internal server error.
Provide a fallback page should improve the User Experience.
First step could be redirect to start page.

@ManAnRuck Startpage and not Top100? Are you sure?


[Issue] cp.matmul slower than np.matmul ??

I've faced with the issue that by some reason cp.matmul is slower than np.matmul

Conditions (you can just paste the output of python -c 'import cupy; cupy.show_config()')

OS                           : Linux-5.8.0-44-generic-x86_64-with-glibc2.31
CuPy Version                 : 8.5.0
NumPy Version                : 1.20.1
SciPy Version                : None
Cython Build Version         : 0.29.22
CUDA Root                    : /usr/local/cuda-10.2
CUDA Build Version           : 10020
CUDA Driver Version          : 11020
CUDA Runtime Version         : 10020
cuBLAS Version               : 10203
cuFFT Version                : 10102
cuRAND Version               : 10102
cuSOLVER Version             : (10, 3, 0)
cuSPARSE Version             : 10301
NVRTC Version                : (10, 2)
Thrust Version               : 100907
CUB Build Version            : 100800
cuDNN Build Version          : 8100
cuDNN Version                : 8101
NCCL Build Version           : 2804
NCCL Runtime Version         : 2804
cuTENSOR Version             : None
Device 0 Name                : GeForce GTX 760
Device 0 Compute Capability  : 30

Code to reproduce:

import numpy as np
import cupy as cp
import time

if __name__ == '__main__':
    shape_a = (1000, 20000)
    shape_b = (20000, 2000)
    shape_c = (10000, 2000)

    a_cpu = np.ones(shape_a)
    b_cpu = np.ones(shape_b)

    # Numpy and CPU
    s = time.time()
    z_cpu = np.matmul(a_cpu, b_cpu)
    z_cpu *= 5
    z_cpu *= z_cpu * 8
    e = time.time()
    print(f"NumPy time: {e - s}")

    a_gpu = cp.ones(shape_a)
    b_gpu = cp.ones(shape_b)

    # CuPy and GPU
    s = time.time()
    z_gpu = cp.matmul(a_gpu, b_gpu)
    z_gpu *= 5
    z_gpu *= z_gpu * 8
    cp.cuda.Stream.null.synchronize()
    e = time.time()
    print(f"CuPy time: {e - s}")

Output measurements:
NumPy time: 0.7268421649932861
CuPy time: 1.0381686687469482

Thanks for reporting the issue.
That is probably due to the low double precision performance of the GPU used. Could you try changing the sample code as shown below to measure the performance in single precision?
    ....
    a_cpu = np.ones(shape_a, dtype='float32')
    b_cpu = np.ones(shape_b, dtype='float32')
    ...
    a_gpu = cp.ones(shape_a, dtype='float32')
    b_gpu = cp.ones(shape_b, dtype='float32')
    ...

@anaruse

Thanks for reporting the issue.
That is probably due to the low double precision performance of the GPU used. Could you try changing the sample code as shown below to measure the performance in single precision?
    ....
    a_cpu = np.ones(shape_a, dtype='float32')
    b_cpu = np.ones(shape_b, dtype='float32')
    ...
    a_gpu = cp.ones(shape_a, dtype='float32')
    b_gpu = cp.ones(shape_b, dtype='float32')
    ...

Oh ... you are right, I've tested and now performance on GPU much better:
NumPy time: 0.2548065185546875
CuPy time: 0.1556096076965332

Is there a way to suggest user to use some type for performance ?
For example if I run some test function that will suggest to use some types:
suggest = cp.performance_test()
suggest["best_float"] # returns 'float32'
suggest["best_int"] # returns 'int??'

Thank you for the feedback! I understand that think is one of the common pitfalls when moving from NumPy to CuPy. Let us cover this topic in #1566.


Update types for classes

Array and object types work also for classes

@shavidzet Should we update the type of props in the component as well?

@shavidzet Should we update the type of props in the component as well?

Yeah, I've updated component's source props too, please take a look my latest commit

I got this error when trying to pass an array

Anyway, I changed to [String, Array, Object] instead of String || Array || Object. It should be in v2.2.6


Unable to Get a Certificate

Not sure why but I am unable to get cert, I clearly misconfigured something but I am not sure what.  Any help would be appreciated.  If it matters, I own the domain and currently have it routing to a GCP Load balancer (without a backend)
Error from cert-manager logs:
E0622 05:13:10.463096       1 controller.go:185] orders controller: Re-queuing item "default/ambassador-certs-3303005432" due to error processing: Error constructing Challenge resource for Authorization: ACME server does not allow selected challenge type or no provider is configured for domain "reddiyo.net"
apiVersion: certmanager.k8s.io/v1alpha1
kind: Issuer
metadata:
  name: letsencrypt-prod
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: <MYEMAIL>
    privateKeySecretRef:
      name: ambassador-certs
    dns01:
      providers:
      - name: letsencrypt-prod
        clouddns:
          # The ID of the GCP project
          project: <MYPROJECTID>
          # This is the secret used to access the service account
          serviceAccountSecretRef:
            name: cert-manager-credentials
            key: gcp-dns-admin.json

Certificate:
apiVersion: certmanager.k8s.io/v1alpha1
kind: Certificate
metadata:
  name: ambassador-certs
spec:
  secretName: ambassador-certs
  issuerRef:
    name: letsencrypt-prod
    kind: ClusterIssuer
  commonName: "reddiyo.net"
  dnsNames:
  # you can add multiple domains here
  - "reddiyo.net"
  acme:
    config:
    - dns01:
        provider: cloud-dns
      domains:
      # you can add multiple domains here
      - "reddiyo.net"

@mornindew I believe you also asked in Slack where it was suggested to change acme.config[].dns01.provider to letsencrypt-prod, to match what it's named in your Issuer.
Did this work for you or are you still having trouble?

Based on looking at your configuration, and @Evesy suggestion above, it seems like this issue may be resolved?
If not, feel free to re-open the issue if it still persists 😄

Yes, i did.   I am sorry.   This did fix my issue.   Thanks for the reminder about my post here.


fixed link for development

hey i like your new cell colors goes good with your profile pic 👍

glad you like the colors ;)


Add support for Gitaly metrics

What does this PR do?

Motivation

Additional Notes

Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] PR title must be written as a CHANGELOG entry (see why)
[ ] Files changes must correspond to the primary purpose of the PR as described in the title (small unrelated changes should have their own PR)
[ ] PR must have changelog/ and integration/ labels attached
[ ] If the PR doesn't need to be tested during QA, please add a qa/skip-qa label.

Current dependencies on/for this PR:

master

PR #14290

PR #14273

PR #14311

PR #14316   👈

PR #14274

PR #14275

PR #14277

PR #14303

This comment was auto-generated by Graphite.


Type is not cast

Same without <dynamic,dynamic>

But in that case it starts working

Dart SDK version: 2.17.6 (stable)
Mac OS arm64

You're not showing us the original declaration of origin.
If the third example allows promotion to work, most likely the origin variable is a local variable declared as something like Provider<T, dynamic>, some type where FactoryProvider<T, dynamic> is a subtype, but FactoryProvider<dynamic, dynamic> (or the equivalent FactoryProvider) is not, because the dynamic type argument is not a subtype of T.
Dart promotion requires the new type to be a subtype of the current type, otherwise it wouldn't be promotion.
Now, it would be nice if we could infer type arguments for is FactoryProvider which allows promotion, but we currently don't.

Great explanation. Thanks


⚠ Bofrost.at has degraded performance

In cdf9609, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1615 ms

Resolved: Bofrost.at performance has improved in 98a7506.