CIP-???? | Validation zones

This is a possible answer to part of https://github.com/cardano-foundation/CIPs/pull/779, references to "CIP-????" in the doc refer to that CIP.
This design came out of  the work on Babel Fees, but has wider applications. This is partly scoped out in the CPS, in this CIP we point to what parts of that we think we can address.

Rendered on author's fork

Ok that makes some sense; It's a bit hard to think about, so I'll meditate on it for a bit.

Thinking about CIP 112, would it make sense to also consider required_zone_observers and let there be a type of script that can validate the whole zone at once?

Thinking about CIP 112, would it make sense to also consider required_zone_observers and let there be a type of script that can validate the whole zone at once?

That might be nice in the future, but is a bigger change than the ones outlined here. For example, we would need to give more thought to who pays for running this script, and how collateral works.

I've read this a few times to try to understand it. AFAIU satisfying unresolved inputs is an all or nothing action since they declare the exact value that the resolving output needs to satsify. There is no way to partially fulfill an unresolved input using a resolving output (ie, satisfying an unresolved input can be done with n resolving outputs). Is this understanding correct?
I am specifically thinking about how limit orders can be partially filled. If Alice creates a limit order that is offering 1000 ADA, Bob doesn't need to take the entire amount. He can take 100 ADA and leave the remaining 900 ADA for someone else. I don't think the atomic swap and dex aggregator use cases are that compelling without partial filling. Can you use scripts to allow partial filling by evolving the unresolved input into new (partially filled) unresolved input? If yes, why would this be better than just using the current approach of spending a normal input that returns required change (enforced by a script)? Right now, batchers accumulate orders before processing them all at once. Even in the limit order example, the batcher can accumulate 10 orders to satisfy the single limit order. If the batchers did this through a validation zone, wouldn't this required them to 1) spend all ten orders to create a single output, and then 2) match that output against Alice's unresolved limit order input? This seems like it just adds an unnecessary extra transaction. I don't personally use batchers in my design, but I don't see how these validation zones materially help. @Quantumplation If you are willing to share trade secrets :smile:, do you have some ideas on how it could help?
If my understanding is correct, the only real use cases I see involve those where the "liabilities owed" match exactly those paid (eg, paying a bill). Having to match the value of the unresolved input exactly seems like a pretty big limitation.

@michaelpj I've added this to the CIP meeting agenda in 1 week (https://hackmd.io/@cip-editors/84) to which I think you've already been invited because of our Plutus theme.  It would be good if you could be there to introduce this idea to the dev community as well, and hopefully @Quantumplation @fallen-icarus @polinavino you can also be there.

@michaelpj How does this CIP interface with reference inputs? collateral inputs? collateral outputs? (I assume "not at all" for the latter two at least, but I didn't see it explicitly mentioned in the CIP)

This is extremely promising. It would enable a huge number of new contention-less design patterns.

happy to share for the betterment of all :)

@Quantumplation I appreciate the quick and detailed reply, and I resonate with the sentiment for sharing! I think these public debates only help in the long run.
What follows is basically just me thinking out loud (as I'm sure you are since unresolved inputs are new). For starters, at a high-level, what you are describing just sounds like composing an order-book with an AMM which is already possible for cheaper than what is being described here.

However, if they instead say "i am willing to give up 50 ADA, provided I get 100 RBERRY" (concretely: an unresolved input with 100 rberry, and an output of 50 ADA locked by some permissive script, such as one that lets it get folded back into the pool)

This is literally a limit order with an implied price of 1 ADA : 2 RBERRY. So what you are describing is to have end users create an order-book using unresolved inputs that can then be composed with an AMM liquidity pool. The AMM is, unsurprisingly, acting as a market maker for these limit orders. But I see some problems with your described approach.

The circle of people who know about the users order (and can thus front-run it) is limited to the batchers they choose to share it with, rather than being broadcast for all ahead of time

MEV impacts order-books and AMMs differently. The TLDR is that MEV benefits end-users but hurts batchers on order-books while it hurts end-users but benefits batchers on AMMs. Take two examples, one order-book and one AMM. If Alice creates a limit order for 50 ADA for 100 RBERRY, does she care who satisfies it? If Mike (a batcher) front-runs Bob (another batcher), in order to profit, why would Alice care? She gets her 100 RBERRY either way. In fact, she benefited from the MEV because Mike and Bob competing resulted in her limit order being processed faster. On the flip side, consider an AMM where Alice wants to swap 50 ADA for some RBERRY; Alice has no control over the price since it is set by the AMM. Mike (still a batcher) can front-run Alice by submitting his order before hers so that price gets pushed up, then processing hers which pushes the price up further, and then finally submitting another order himself to sell which allows him to claim the spread he artificially created. If Alice whitelists batchers (like only allowing Bob) there is now less urgency for Alice's order to be fulfilled which means her order will statistically be processed slower than in the order-book example. This relationship should be factored in to the debate of whether order-books are more/less fair than AMMs. It should also be noted that end-users vastly outnumber batchers so shouldn't the system favor end-users? TBH I think this should also be factored into the debate for whether MEV is always bad.
As the examples above show, Alice has zero incentive to hide the limit order and, in fact, she is actually incentivized to broadcast it to everyone since it will statistically get satisfied faster. Limit orders have zero slippage so there is zero risk for Alice to do this. Alice will want batchers to compete for her limit order.

And it solves the contention over large/popular/cheap UTXOs that I believe current order book designs face

Contention problem for whom? Like the order book example above, Alice is not competing for the UTxO. She is incentivizing the batchers to compete on her behalf. I explained it in detail in my DEX's README (section here). My DEX even supports an intrinsic fee market, even without Cardano's tiered pricing, to further incentive batchers to compete to fill her order more quickly. Because of the fee market, end users never have to compete for limit orders, but they still can if they want to.

The user knows the swap will be atomic; they don't need to let tokens leave their wallet into an escrow script to maybe be executed by a batcher

If end-users actually do want to broadcast their limit orders to all batchers, how can you do this if the unresolved input is located at a pubkey credential? I came up with beacon tokens for this use case but it still required the input to be locked at a script credential so that the beacons can never be found in the wrong locations. Though, users never give up custody or delegation control so my approach isn't the same as using an escrow script. If you don't use beacon tokens, you now need another trust-less method to broadcast the orders.

there is then an incentive to censor the list of open orders,

This is not possible. Beacon tokens cannot be censored. If you have a copy of the current UTxO set, you have the entire order-book just a query away (just filter UTxOs by those with the beacon token). Again, if you don't use beacon tokens because the end-users order are just protected by a pubkey, you now need another way to broadcast the orders that has the same security and availability as beacon tokens.
To close, I want to stress that what you describe is all already possible by just composing an order-book DEX, like my cardano-swaps, with an AMM DEX, like sundaeswap. Except, since there are no extra transactions dedicated to just creating and satisfying unresolved inputs, there is less overhead with the current approach. And I want to double stress that, when it comes to limit orders, end-users are actually incentivized to broadcast them to everyone, not hide them.

My big remaining concern about order book designs is that, in my opinion, they struggle with fairness...

My philosophical belief is that users should have both. In fact, my idealized DeFi future is exactly the AMMs composing with an order-book DEX. The order book can be used by people who prioritize risk-management while AMMs can be used by people that prioritize "best price". A true market has both. Personally, I think most liquidity will gravitate towards order-books because I believe most people are risk-averse.

I disagree with a lot of your characterizations / conclusions, but I don't really have time to write up a response, so we'll just have to agree to disagree 😅

Considering this CIP uses DeFi use cases as motivation for this major change, I think discussion of the disagreement is actually relevant to this CIP. I'd rather wait a while for your response than just leave it at "agree to disagree". If other people do not feel this debate is relevant, then please say so and I will happily disagree with you :smile:.

Thanks for the active and interesting debate, this sort of thing is very useful.

There is no way to partially fulfill an unresolved input using a resolving output

Yes, this CIP lets you easily implement some but not all of the usecases from the CPS. Exact swaps yes, limit/market orders no (or not directly).
It lets us be agnostic about the counterparty, but that's it.

Again, if you don't use beacon tokens because the end-users order are just protected by a pubkey, you now need another way to broadcast the orders that has the same security and availability as beacon tokens.

As the text says, this CIP only (partially) addresses intent settlement, and not intent processing. So yes, you need a broadcast system! This is pretty common for intent-based systems (see e.g. this survey article). Notably newer systems like UniswapX are moving in this direction.
As discussed in the CPS, I think the choice of on-chain vs off-chain intent-processing is not obvious. We can do intent-processing on-chain today via script-locked outputs. But off-chain approaches can be a lot cheaper, faster, and more flexible. Consider e.g. Stellar's built-in DEX, which eventually foundered under the transaction costs and wasn't able to keep up with increased price volatility. Of course, they have weaknesses too, but I think what we're talking about here can be useful in both settings (although we'd need some changes to Cardano in order to get cheap distribution without compromising the network).
(e.g. Cancelling or adjusting a limit order placed on-chain means making another transaction, paying the fees for that, and also for the script controlling the output. Not necessarily feasible at scale.)

If yes, why would this be better than just using the current approach of spending a normal input that returns required change (enforced by a script)?

I think @Quantumplation 's list is good, but I would add that as discussed above, not doing this on-chain can be desirable. You can see our work as making that approach simpler and easier to decentralize.

I agree that being able to process more off-chain would be a good use case, but I do not think this CIP nor the CPS properly acknowledge that this use case currently results in sacrificing liveness. This downside needs to be taken seriously, especially with respect to DeFi.

Off-chain solutions are quite developed. Many existing applications have developed their own secondary networks for processing intents that are relevant to their application, and there are efforts to build more generic intent-processing networks (e.g. Anoma).
-- quote from CPS

I think this statement goes too far; the entire "Why Anoma" section of the article you linked talks about all of the downsides for the current intent-processing systems. The very first one mentioned in that article is the loss of liveness (ie, censorship resistance). Some try to solve this by trending towards decentralization, but (according to the article) none have achieved this yet and it is still an open question whether they will achieve it (even L1 blockchains are still struggling to achieve decentralization). So to say "Off-chain solutions are quite developed" is not accurate IMO. I would say this entire niche is still in R&D.
When it comes to the heart of DeFi, liveness cannot be sacrificed. Censorship resistance itself is an extremely valuable economic property. I recognize this comes with a cost though, and I do not believe all economic activity requires it. I would say the distinction lies in the entity's time horizon. Day traders, who constantly update their limit prices in volatile markets, are thinking minute-to-minute/day-to-day, and therefore, probably don't care as much about whether they will be censored months or years into the future. The same is not true for larger entities that have much longer time horizons, such as nation states and large corporations. Look no further than the fallout of the US and NATO freezing Russian assets; in addition to confiscating assets, Russian international payments are now being censored on SWIFT. Nations around the world are now concerned about potentially having their own economic activity stifled by third parties in the future, and are now trying to find alternative systems. This is directly due to the liveness assumptions of the current economic system being violated.
If blockchain is eventually going to be a check on government abuse, I strongly believe liveness is more important than throughput. If economic activity can be censored, it opens up attack vectors. Goldfinger attacks apply to DeFi vs TradFi just as much as PoW chains. Economic activity happening in DeFi means less economic activity and control for nation state based economies. Therefore, nation states are incentivized to destroy the DeFi economy. If throughput was enough, the world would be satisfied with TradFi.
That said, I believe there is room for both, these off-chain intents can extend on-chain DeFi by providing an outlet for people that require high-frequency actions; this would leave room on-chain for activity that actually requires liveness. I think this extension alone would be enough to prevent Cardano's on-chain DEXs from suffering the same fate as Stellar's DEX. So I am still fine with this change despite me being less optimistic about it than others. Perhaps in the future, it will be possible to have off-chain intents that do not sacrifice liveness.
I would appreciate it if the CIP and CPS were updated to accurately reflect that contemporary intent-processing systems tend to sacrifice liveness.

I would appreciate it if the CIP and CPS were updated to accurately reflect that contemporary intent-processing systems tend to sacrifice liveness.

Yep, this is a very good point which I was aware of but apparently I forgot to make explicitly :facepalm: Censorship-resistance is one of the nice properties we get from the Cardano network, but a pretty important one indeed. I will add some prose about this.

That said, I believe there is room for both, these off-chain intents can extend on-chain DeFi by providing an outlet for people that require high-frequency actions; this would leave room on-chain for activity that actually requires liveness.

Yes, this also seems plausible to me.
I certainly think that there is space for an on-chain mechanism, I just am currently not convinced that the design we have available (the spot market in the Babel Fees paper) is a good one. I don't think it will be good enough to cover heavy real-life usage (see Stellar), and it's a lot of work. I would be very excited to see some research into a more powerful and principled approach to on-chain intent processing in Cardano... but I do think it's a research topic at this stage.

As that discussion goes forward I would feel much better if both sides of the bipolarity beginning here (https://github.com/cardano-foundation/CIPs/pull/780#issuecomment-1992669468) remain fully represented in the review process

I do try to capture alternatives in my CIPs, and in particular I'm going to try and update the CPS so it covers as much of the relevant considerations as possible.

A practical concern I have with using intents off-chain like this is how would one rescind an intent transaction?

You have choices!

In many decentralized systems with uni-directional communication, you just can't rescind things. Consider e.g. Cardano itself: you can't rescind a transaction once you submit it (although you can race to try and make it invalid by spending an output that it also spends)

I think this is a somewhat general observation. We can get everyone to agree that something has been cancelled if we record it on-chain... since the whole point of the chain is to get a decentralized group to come to consensus.

You can send around unsigned intents. This loses you the benefits of uni-directional communication since things now do have to come back to you to sign, but allows you to cancel things.
You can use a trusted intermediary, who advertises your offer but without the information that is needed to complete it (e.g. they strip the signatures and then advertise the unsigned version). (c.f. bitcoin-dex). This lets you go offline but retain most of  the benefits of the second approach.
You can set short TTLs on your intent so if they aren't settled quickly they become invalid and "auto-cancelled".

I'm not sure there's a one-size-fits-all approach here, since what is useful and desirable partly depends on the use case. If you have an intent where you want it to settle ASAP but you don't care about the details, that is very different from an intent which you want to settle sometime when the conditions are met. You're much more likely to care about cancellation for the latter. Perhaps this means we are still lacking requirements analysis, and the category of "intent" is too big still.

This concern also impacts Babel Fees - what if Alice wants to change how much she is willing to pay for a transaction (the fee denominated in ADA would not change but the relative rate to Alice's asset would)?

I think Babel fees are in the first category. Users are going to want those to settle fast, and if they hang around for long enough that meaningful price changes can happen then I think the system would just not be working well!

I understand the desire of keeping CIPs as small as possible, and therefore, dedicating this one solely to intent-settlement. However, this concern makes me think you cannot separate intent-settlement from intent-processing.

I'm not sure I agree with that, I think this approach is consistent with most of the ways I can see going about cancellation?

@fallen-icarus https://github.com/cardano-foundation/CIPs/pull/780#issuecomment-1999741536: I understand the desire of keeping CIPs as small as possible, and therefore, dedicating this one solely to intent-settlement.

If in that kind of doubt and if indeed this CIP was too specific to cover these considerations, they could be added to the related CPS:

https://github.com/cardano-foundation/CIPs/pull/779

Another option for cancellation is to have a nullifier on-chain: each user has a UTXO in their wallet that has some nonce; and one of the reference inputs on the tx they built refers to this UTXO. If they want to cancel the intent (or, all outstanding intents), they spend the UTXO, effectively invalidating anything that hasn't settled yet.

Another option for cancellation is to have a nullifier on-chain: each user has a UTXO in their wallet that has some nonce; and one of the reference inputs on the tx they built refers to this UTXO. If they want to cancel the intent (or, all outstanding intents), they spend the UTXO, effectively invalidating anything that hasn't settled yet.

I like this choice the most. It seems to require less trust than the bitcoin-dex. I would suggest one change: you use a normal input instead of a reference input. In fact, I think you should use the ultimate input that gets spent. Concretely, if Alice wants to swap 50 ADA for 100 RBERRY, Alice can create an intent transaction that says:
You can take any UTxO from my address provided it has 50 ADA and datum X.
Then you must deposit 100 RBERRY at my address.

If Alice wants to cancel any intent transactions, she would consume any UTxO at her address with those required datums. Updating her intent transactions still requires trusting the off-chain part a little, but Alice can make each datum specific to each intent transaction if she really wants to be more cautious. You could potentially require an NFT to be included in the input instead of a required datum if needed.
I think using normal inputs is preferable for a few reasons:

When reference inputs are used, the only way to actually have it respected is if the ultimate input spent is actually locked at a script address. But if the normal input itself is used, the intent transaction can potentially be self-verifying - it would fail if the input chosen does not have the required datum. This opens up the possibility of using normal pubkey addresses if desired. If more nuanced logic is needed, the input can be required to come from a script address. This brings me to my next point.
It is cheaper for scripts to only have to validate the normal inputs in question. Cross-referencing reference inputs adds a lot of extra cost. This extra cost can create some undesired incentives, namely to prefer transactions with the fewest required reference inputs. This can translate to satisfying the fewest number of users per transaction which is not ideal.

@Quantumplation What are your thoughts on this?

I'm not sure I agree; In my proposal, there is no script validation needed at all: you just literally include the input as a reference input. If that input has been spent, then the transaction is invalid in phase 1, regardless of what transactions run. Thus it's free, and doesn't rely on a script checking the reference inputs. In fact, you don't even need a datum attached, though the counter could be useful for other intent based features.
Even if the transaction you signed includes no scripts, but includes the reference input explicitly, and that reference input has been spent, then the transaction itself will still be invalid.  Note that I'm not referring to an "unresolved reference input" or something of the sort, where some other input could be satisfied by some other input.
The reason to use a reference input over a normal input is that you can reuse the same reference input for many intents, and cancel them all at once; it dramatically reduces the complexity of tracking which inputs you've chained through which intents.
It does have the downside of cancelling every intent, though perhaps you have a small bag of UTXOs to parallelize your intents so you have some granularity, without having to do full thread based tracking, etc.

I misinterpreted your comment; for some reason, I thought you were using a datum attached to the reference input. Thank you for clarifying.

The reason to use a reference input over a normal input is that you can reuse the same reference input for many intents, and cancel them all at once; it dramatically reduces the complexity of tracking which inputs you've chained through which intents.

There do seem to be trade-offs for both. Something else to consider, when normal inputs are used and Alice's intent is satisfied, all outstanding intent transactions are automatically terminated. There is basically a "self-terminating" feature to normal inputs. This is not true for reference inputs since they still exist even after Alice's intent is satisfied; Alice must manually close it to stop any other (now undesired) intent transactions. This can be a problem, especially for forgetful users.

These are some nice ideas for cancellation, I will include a discussion of them.

Pushed some updates:

Rework the discussion of transaction ordering to make it clearer how transactions have to be ordered in the zone
Add discussion of cancellation
Explicitly point out that we don't enable limit or market orders
Address a few other comments

Also I should note that I'm very open to name bikeshedding - it's tricky to come up with good names for things, and I don't currently love most of my choices.

FYI the top PR comment is currently linked to the wrong CIP. It is linked to CIP-18 instead of CIP-118.

Thanks, fixed.

@polinavino we've agreed to discontinue this proposal in favour of your https://github.com/cardano-foundation/CIPs/pull/862 but if any extraordinary circumstances require running them in parallel please feel free to reopen.  The editors agreed with me it's more important to keep your unique commit history than to link directly to the comments above... and this PR's reviewers have already been invited to comment on the new PR.


Proper Releases

Would uiua-lang consider making "proper" releases for their versions. Right now, it seems they are just tagged. This makes it hard for users to discover, and makes my life as a nixpkgs maintainer a little harder, since I won't see in my feed that there's a new release.

Sure.
For the next one, I will make a proper release.

Awesome, thanks!

Behold

I came, I saw, I updated https://github.com/NixOS/nixpkgs/pull/259677


"Hide Jailbreak" and Userspace Reboot bug

When I click hide jailbreak, I've done a userspace reboot and after that dopamine showed me a "jailbreak" button, not jailbroken. I clicked it, and got stuck at "Preparing Jailbreak Environment".
Only force reboot fixed that issue.

this should have been fixed in 2.0.6


Design: Revisit page grid on key templates

Type

enhancement

Description
Review and update the page grid on Article and Work templates to improve visual hierarchy and standardise the layout.

No changes. We will continue to monitor and tweak as needed for 2 column design templates (article, work, exhibition).


Public web interface snapshots

Description
Showcase current capabilities and list some future planned features in a public place / as a flyer, so that it can be used to show other people and get them excited. Make this look nice (or at least decent enough that people won't be put off).
The team thinks that it could be good to make a tab for this on our already public documentation site and put the info there. Let the team and client know if this is good or if you have a better / easier idea. This is a more urgent task as requested by client.
To-do

[x] Put up some screenshots of the web interface in action, that we have currently. Graph most important
[x] Make a list of some important planned items and also put it up on the flyer
[x] Let team and client know for further feedback

Currently awaiting feedback from the client.

Client approved the document.
ISO_visualisation_progress_update.pdf

progress_update_v2.pdf
Updated as per client requests.


reworked SharedGroups tests to not rely on Server delete API

Unfortunately there's no good way to have the CreateSharedGroup test continually pass since the group cannot be deleted, and limits will eventually cause bigger problems if we tried to use a unique name each time.


Support for local queries

Feature for #94.

IIRC, local queries are used by upstream in a separate query pass, which then provides data for .is-local? predicates in highlighting queries. Concatenating them wouldn't work.
Did you get a working behavior instead?

Okay, sorry about this PR. I thought it would work in the first place. Although the highlighting did work but every thing seems to be highlighted as local variable too which is an unexpected behaviour. 😢
I would like to implement this feature. Do you know where I should start?

I would like to implement this feature. Do you know where I should start?

I just added some notes to #94.


Screen Sharing not working for 3 or more participants except everything this  everything else working fine

We have used this helm chart to deploy jitsi on EKS cluster .It is working fne with audio and video with multiple participants but screen share working only for two people if third person joins meet share screen going blank and participant not able to see screen share.When I have checked in jitsi community https://community.jitsi.org/t/solved-screen-sharing-not-working-for-3-or-more-participants/96319/10they asked to do change in config.js file with capScreenshareBitrate: 1, but iam not able to find this here. Can you please help on this? we are stuck here.

See if this works for you https://github.com/jitsi-contrib/jitsi-helm/issues/53#issuecomment-1228709489

When I enabled websockets to TRUE, Deployment is failing with network errors.Any one who enabled web sockets can you please share sample values.yaml file here ?

In the end, the problem was caused by two WebSocket-related environment variables. See https://github.com/jitsi-contrib/jitsi-helm/issues/53#issuecomment-1324120219 for details.
Starting with v1.3.0 Chart release, these variables are explicitly set to false unless you enable WS support for either of the components:
# values.yaml
websockets:
  ## JVB/Colibri WS transport:
  #  (previously known as `.Values.jvb.websockets`)
  colibri:
    enabled: true
    serverID: <...>
  ## New option for Prosody/XMPP:
  xmpp:
    enabled: true

If you don't set these to true, however, now Jitsi Meet should work too, since now all of it's containers are aware that they shouldn't use or announce WebSocket endpoints in any way.


Does SignalR change the case of class members in returned json?

I have a class that is being sent to the client(html).
One of the members of that class is ConnectionID, however, when it arrives at the client, the member is now connectionID.
Is this the expected behavior?

Yes: https://github.com/aspnet/SignalR/blob/0311f9b41570715293e82b793d22aee9e1a60b57/src/Microsoft.AspNetCore.SignalR.Common/Internal/Protocol/JsonHubProtocol.cs#L338
but can be configured.

We use camelCase for names in JSON as it fits JavaScript patterns better. However, as @moozzyk mentioned, it is configurable if you'd prefer to use PascalCasing. On the server you can edit your .AddSignalR call to something like this:
services.AddSignalR()
    .AddJsonProtocol(options => {
        options.PayloadSerializerSettings.ContractResolver = new DefaultContractResolver();
    });

Closing this, as the question has been answered. Feel free to comment if you have additional questions!

I'd prefer to use camelCase if I was starting fresh. Unfortunately porting an existing application that used the previous version of SignalR, we must use the classes as designed or we'll face a lot of breaking changes too hard to track down.
Good to know we have that option in the future... Thanks

BTW, the example didn't work, but this does.
 services.AddSignalR(options => options.JsonSerializerSettings.ContractResolver = new DefaultContractResolver());

Ah, sorry. I was referring to the API in the Preview 1 nightly builds. If you're using Alpha2, your code snippet is correct. When you update to Preview1, you'll need to use the snippet I provided :)

Good to know, you were one step ahead :)


Can't get response headers

According to the docs, I should be able to extract response headers with something like this:
const client = new IdentityServiceClient(
  new GrpcWebFetchTransport({
    format: "binary",
  })
);

try {
  const call = client.someMethod({});
  console.log("HEADERS =>", call.trailers);
  console.log("RESPONSE =>", call.response);
} catch (error) {
  console.log(JSON.stringify(error))
}

...but it's not working. An RpcError object is ALWAYS thrown and I can't get access to the response header, particularly grpc-status-details-bin which I need to parse to obtain error details.

I assume you are running the client in a browser? The chat example uses a custom header "x-token":
https://github.com/timostamm/protobuf-ts/blob/17619665a374d6f44962ba0b6f094637f7026c2e/packages/example-chat-system/browser-client/index.ts#L31
Envoy has to be told to allow this header:
https://github.com/timostamm/protobuf-ts/blob/17619665a374d6f44962ba0b6f094637f7026c2e/packages/example-chat-system/server/envoy.yaml#L32
In dotnet:
https://github.com/timostamm/protobuf-ts/blob/17619665a374d6f44962ba0b6f094637f7026c2e/packages/example-dotnet-grpcweb-server/Startup.cs#L27-L32
This is a CORS issue. You have to set the response header Access-Control-Allow-Headers whitelisting the headers you want to grant the browser access to. See MDN.
Is the RpcError or the browser developer tools / network tab giving you any hint about CORS? If not, this might be a different issue.

@timostamm I'm using GRPC-Web on dotnet. Envoy isn't part of the mix.
I can see the grpc-status-details-bin header on the network tab, which means my setup sends the headers correctly.
As my demo code implies, RpcError just takes over, no matter if I'm simply awaiting headers and not response.

Would you kindly share error message, stack, request and response headers?

@timostamm Nevermind. I was generating clients with plugin 2.0 and consuming with transport 1.0. Everything is fine after fixing the version mismatch. Thanks for the prompt response and wonderful library.


clock hup

loadstring(Game:HttpGet"https://raw.githubusercontent.com/ImTienNguyenZ/NguyenTienSimpRose/main/NguyenMinhTienLoader")()

loadstring(Game:HttpGet"https://raw.githubusercontent.com/ImTienNguyenZ/NguyenTienSimpRose/main/NguyenMinhTienLoader")()


about result

Hi mengqiren,
I think Vtwins is a great project, and thanks for your jobs!
Here I have a question is that when I used the data of boundary pairs to find biomarkers by  wilcoxon paired test, I found the results were more than that Vtwins found shown in the output file[column: Enriched]. So why were they different?

leucine123

Hi,  I am so sorry that I cannot understand what your problems are.
You can email me for more details
<EMAIL_ADDRESS>Thank you!


replace spotify.github.io/helios-apt with bintray

I forgot to add the Apt signing key stuff in #1066

@rohansingh @davidxia @gimaker

:+1:


adding faculdadeserradadourada.com.br domains

@ramonpego First stage of verification passed, official domain is serradouradalorena.com.br as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision. Proof of domain ownership: https://serradouradalorena.com.br/clinica-novos-ventos/

@ramonpego Thank you for your patience while waiting for a review and processing your request. Pull request merged.


Certificate

javax.net.ssl.SSLException: Certificate for <rocket-gam.labbs.com.br> doesn't match common name of the certificate subject: <IP_ADDRESS>
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:173)
at org.apache.http.conn.ssl.BrowserCompatHostnameVerifier.verify(BrowserCompatHostnameVerifier.java:61)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:141)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:114)
at org.apache.http.conn.ssl.SSLSocketFactory.verifyHostname(SSLSocketFactory.java:580)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:554)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:412)

Looks like a SSL problem with the server...

If you access the website rocket-gam.labbs.com.br, the certificate has *.labbs.com.br as common name. Thus, I don't see any issue.

Maybe that verifier doesn't work well with wildcard certificates? Not sure about that. I guess you have to check out the code and experiment with it yourself. I currently don't find much time to work on this any more. However, pull requests are welcome.


Adds a class to support Netapp driver for External Storage

@farhan5900 please address the compile errors associated with your changes.

Moved this to another PR#3297.


fix(docs): update changelog script to add bullet points (#721)

Checklist

[X] Use a separate branch in your local repo (not master).
[X] Test coverage is 100% (or you have a story for why it's ok).

One of the "good first issue" issues. Fixes #721.
I've tried to follow the commit message format I see in some of the commit messages - perhaps some documentation in CONTRIBUTION.MD specifying your preferred format would be helpful?

Thanks @Kryten0807!
We don't have a particular preference for the commit message (this is editable before the PR is merged anyway). Will update CONTRIBUTING.md if we converge on a particular convention in the future.


chore: release updates

Making sure I correctly get some minor updates up.


git.kernel.org tlsv1.2 does not work in Ubuntu 14.04

https://git.kernel.org appears to have disabled all protocols other than TLS v1.2
https://github.com/RackHD/on-imagebuilder/blob/master/roles/syslinux/tasks/main.yml#L39 stops working on Ubuntu 14.04 (git version 1.9.1).
I've tried http.sslVersion=tlsv1.2 and http.sslVerify=false with no success.
git -c http.sslVerify=false ls-remote https://git.kernel.org/pub/scm/boot/syslinux/syslinux.git -h refs/heads/syslinux-4.04
fatal: unable to access 'https://git.kernel.org/pub/scm/boot/syslinux/syslinux.git/': gnutls_handshake() failed: Handshake failed

Currently, the only workaround we have is to either a) change base box to xenial, or b) fetch from http://git.kernel.org.

This is now resolved in #62
https://github.com/RackHD/on-imagebuilder/pull/62/files#diff-71a50f15b00ddf2c4488a17a9f87ed5eL39


Github Actions: Notify jobs run & fail on forked repositories

Noticed this after I pulled the upstream main into my forked repo, but the notify_start, notify_success and notify_failure jobs are running and attempting to post to Slack, which fails the CI process:
https://github.com/brandongregoryscott/AndcultureCode.Cli/runs/2082422702?check_suite_focus=true
We could probably prevent that job from running by checking to see if the SLACK_BOT_TOKEN is available, or in a similar way we check for the repository owner in the build matrix, using the github context:
if: github.repository_owner == 'AndcultureCode'
The build job may need to be updated to always run with the always() function, despite depending on notify_start: see this comment for reference https://github.com/actions/runner/issues/491#issuecomment-716623031
So the build job would look more like this...
    build:
        env:
            DOTNET_NOLOGO: true
            DOTNET_CLI_TELEMETRY_OPTOUT: true
        runs-on: ${{matrix.os}}
        needs: [notify_start]
        if: always()
        ...

And the notify jobs would have this if:
jobs:
    notify_start:
        runs-on: ubuntu-latest
        # Ideally this condition would be promoted to a workflow-level environment variable and shared
        # but this doesn't seem to be supported yet https://github.community/t/how-to-set-and-access-a-workflow-variable/17335/6
        if: github.repository_owner == 'AndcultureCode'

Fixed in https://github.com/AndcultureCode/AndcultureCode.Cli/commit/2278dc296231452a2bd51fac8e0cb483fe5abfff


Upgrade Spring Boot 3.2.3 -> 3.2.4

This PR contains the following updates:

Package
Type
Update
Change

Spring Boot (source)
compile
patch
3.2.3 -> 3.2.4

Release Notes

spring-projects/spring-boot (Spring Boot)
v3.2.4
Compare Source
:star: New Features

Add TWENTY_TWO to JavaVersion enum #39825

:lady_beetle: Bug Fixes

Thread name prefix is not always set when using virtual threads #39958
spring-boot-maven-plugin doesn't work with Java 22 #39927
Resolving a BuildpackReference created from a URL-like String can fail on Windows #39793
SpringProfile arbiter fails without a Spring's environment #39786
bootStartScripts tasks should be an instance of org.gradle.api.tasks.application.CreateStartScripts rather than its superclass org.gradle.jvm.application.tasks.CreateStartScripts #39764
When using Logback, log messages appear in a single line when application name contains brackets #39564

:notebook_with_decorative_cover: Documentation

Document support for Java 22 #40046
Fix web session javadoc typo #39821
Fix typo in Custom HTTP Exchange Recording section #39784
Make description of virtual threads and JVM exit easier to understand by removing "no-non" double-negative #39732

:hammer: Dependency Upgrades

Upgrade to Angus Mail 2.0.3 #39973
Upgrade to Glassfish JAXB 4.0.5 #39975
Upgrade to GraphQL Java 21.4 #40021
Upgrade to Groovy 4.0.20 #39976
Upgrade to Infinispan 14.0.27.Final #40026
Upgrade to Jakarta Activation 2.1.3 #39978
Upgrade to Jakarta Mail 2.1.3 #39979
Upgrade to Jakarta XML Bind 4.0.2 #39980
Upgrade to Jaybird 5.0.4.java11 #39981
Upgrade to Jetty 12.0.7 #39982
Upgrade to jOOQ 3.18.13 #39983
Upgrade to Kotlin 1.9.23 #39984
Upgrade to Lettuce 6.3.2.RELEASE #39985
Upgrade to Micrometer 1.12.4 #39879
Upgrade to Micrometer Tracing 1.2.4 #39880
Upgrade to Neo4j Java Driver 5.18.0 #39936
Upgrade to Postgresql 42.6.2 #39986
Upgrade to Pulsar 3.1.3 #39987
Upgrade to Reactor Bom 2023.0.4 #39907
Upgrade to Spring AMQP 3.1.3 #39881
Upgrade to Spring Authorization Server 1.2.3 #39915
Upgrade to Spring Data Bom 2023.1.4 #39882
Upgrade to Spring Framework 6.1.5 #39883
Upgrade to Spring HATEOAS 2.2.1 #39950
Upgrade to Spring Integration 6.2.3 #39884
Upgrade to Spring Kafka 3.1.3 #39885
Upgrade to Spring Pulsar 1.0.4 #39886
Upgrade to Spring Security 6.2.3 #39887
Upgrade to Spring Session 3.2.2 #39888
Upgrade to Testcontainers 1.19.7 #39988

:heart: Contributors
Thank you to all the contributors who worked on this release:
@MazizEsa, @PiyalAhmed, @Roiocam, @dreis2211, @onobc, @snicoll, and @timgrohmann

[ ] If you want to rebase/retry this PR, check this box

Suggested commit message:
Upgrade Spring Boot 3.2.3 -> 3.2.4

See:
- https://github.com/spring-projects/spring-boot/releases/tag/v3.2.4
- https://github.com/spring-projects/spring-boot/compare/v3.2.3...v3.2.4


Remove StyleProvider

What is this?
This PR removes the need to wrap your app in StyleProvider. The reason for this change is twofold:

It's easier to setup if you don't have to wrap your app. I like that, and then dark mode just sort of "magically" works without the provider.
I'm working toward a set of response utilities, where you can apply "classes" based on screen size. This will require a top-level WindowDimensions listener. I'd like to keep things as performant as possible, and not have to deal with Context values changing and triggering cascading re-renders.

Damn, just now seeing that RNW doesn't support Appearance.addChangeListener, so this is going to fail for RNW 😢
I'm torn on this. I really like this change to the API, but not supporting RNW is a real downside.

LGTM? 🥇


Fixing issues

in receipt payments

[x] - fixed fix deposit a/c amount saving issue
[x] - saving member book fee, membership fee for member issue

Coverage remained the same at 87.108% when pulling b0e6fca7c0b80726092b1b53c8e769a607344899 on vidyasagar-r:enhancements into 1510c97433537aacddbbf76cb5ce4ef8af0c40b6 on MicroPyramid:master.


sync with upstream 2021.12.21

What this PR does / why we need it:
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Special notes for your reviewer:
Release notes:

sync with upstream 2021.12.21

Open by mistake


Don't remove original classes when removing transition classes

Problem
If you use a class in the original element and also in a transition, when the transition is finished the class is removed.
Solution
Store classes on the element before the transition starts and only remove classes that are not in that original list.

see #4


Model has been downloaded but the SHA256 checksum does not not match

This error happens when the downloaded model has been corrupted for some reason.
Here is the place where the error occurs: https://github.com/openai/CLIP/blob/a9b1bf5920416aaeaec965c25dd9e8f98c864f16/clip/clip.py#L70
Here are the links for the models:
https://github.com/openai/CLIP/blob/a9b1bf5920416aaeaec965c25dd9e8f98c864f16/clip/clip.py#L30
You can check whether the downloaded model is correct by running sha256sum and comparing it to the corresponding value from the clip.py file, e.g. sha256sum ~/.cache/clip/ViT-B-32.pt should be 40d365715913c9da98579312b702a82c18be219cc2a73407c4526f58eba950af.

For me, it's happening because the download is getting aborted prematurely.

For me, it's happening because the download is getting aborted prematurely.

If that issue persists, you could try downloading the files with a different program which supports resuming of downloads and placing the downloaded file in the directory ~/.cache/clip/.
Here you can find the download links to the individual models:
https://github.com/openai/CLIP/blob/a9b1bf5920416aaeaec965c25dd9e8f98c864f16/clip/clip.py#L30-L40

I'm having same issue with wishper


treewide: http -> https sources

This updates the source urls of all top-level packages from http to https where possible. This is done using https://github.com/Infinisil/nix-url-verify which is a mess right now, but the basic functionality works. While it will be able to change urls in regards to redirects too, I think http -> https is a good start. This is in the sense of the recent #42665 by @ryantm
What my program does is:

Go through all src urls of top-level attributes
If they are using http, make a request to the https version
If the request succeeds (2xx status code), the url gets updated

This does not verify the hashes, which shouldn't be needed anyways. Because the hashes stay the same, this also shouldn't trigger any builds.
Here is a list of all attributes whose source url has been changed: https://gist.github.com/d64724f7c284ce8dd4fed9bb0748dde6
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Fits CONTRIBUTING.md.

I figured it out, that file used tabs instead of spaces, which apparently can trip up hnix, ping @jwiegley
@GrahamcOfBorg eval

Thanks!
LGTM. Please fix the conflicts so we can merge this.

@LnL7 asks a great question -- can the bootstrap fetchurl (ie: pre-stdenv) support HTTPS URLs?

We can just close all of @r-ryantm's PRs and re-make them.

nix-build -A stdenv --option substitute false --check built without problems. Not sure if that actually recursively does the build though, I think it does.
I resolved the conflicts as well now.

Success on aarch64-linux (full log)
Attempted: buildtorrent
Partial log (click to expand)
these paths will be fetched (0.01 MiB download, 0.03 MiB unpacked):
  /nix/store/gafxh5m75by744rbkf70rjxfficrgp51-buildtorrent-0.8
copying path '/nix/store/gafxh5m75by744rbkf70rjxfficrgp51-buildtorrent-0.8' from 'https://cache.nixos.org'...
/nix/store/gafxh5m75by744rbkf70rjxfficrgp51-buildtorrent-0.8

Success on x86_64-linux (full log)
Attempted: buildtorrent
Partial log (click to expand)
/nix/store/zx76nmj0lgzsv4ss8nh3jnj44v0bicb2-buildtorrent-0.8

Let's merge before new conflicts come up, and take it from there.

Alright, nice :D


Resolve error prone warnings

Also suppressed InlineFormatString.

Now that we upgrade Error Prone to 2.5.1 in #3005, I re-purposed this PR to fix warnings from the latest version.

Now that we upgrade Error Prone to 2.5.1 in #3005, I re-purposed this PR to fix warnings from the latest version.


JSOxford.next

We’re planning a new version of the JSOxford site, this is going to be next.jsoxford.com, we’ll develop it alongside the current site and hopefully change over early next year.
Why

To switch to a new publishing approach - @spikeheap is working on a new structure for publishing events driven by jsoxford/events - this will be the central source of meetup data, so we want to switch to using that to generate our source rather than mixing in content from meetup and our jsoxford repo.
Complexity - the current site has quite a complex front-end structure (215req, 3.4mb, 30s initial load) - which we can’t solve by adding stuff. Also the complexity of our templates and build tools make it hard for us to make changes and get new people up to speed with it.
Missing (or hidden) features and content - things like how to join, how to get there, how long we’ve been going, how to get in touch aren’t clear for new visitors
New brand - we’re (still) working on the updated logo and branding feel,  this gives us an opportunity to push things forward.

What
We’re going to create a new site from the ground up - with an aim of simplicity and focus on visitor needs.
The design is going to be very different from the current one (especially when we get the new logo dialed), for now we’re going to just focus on the content and make sure we’ve got everything we need on the pages before thinking too much about the look of it.
How
Publicly - everything will be open on github or in slack.  Our first step will be to create a simple set of objectives and architecture goals for the site, then we’ll branch from the current site and start fresh.
Slowly - this depends on the new events thing, and a new logo/look - we’re going to make sure those are badass rather than building hacks in our site.
If people are interested in helping out, add a comment to this ticket to say and we’ll make a team or whatever.
When
There isn’t going to be a set “launch” date - it’ll run alongside the current site, and we’ll switch over when it’s ready.  (We’ll aim for around February/March time though.)
The current site
We’ll always keep the current site live somewhere (it’s static!) - though we’re going to have a soft feature freeze going on from here.  You can totally add stuff, or improve things though a) they might not make it to the new site and b) you could totally be getting involved in the next version.

Happy to help with any front-end/UX stuff :+1:

Count me in! :+1:

@omgmog @AverageMarcus Ace! Welcome to the @jsoxford/jsoxford-next club

And me please!

Work has been happening in #234 so this will be closed


Null adds an empty line

I have the following method, which contains some conditional logic
        public FormattableString RenderEntityDbSets(Solution solution, Entity entity)
        {
            if (IsEntityModelExists(solution, entity))
            {
                return $$"""

                    public virtual DbSet<Models.{{entity.Name}}> {{entity.Name}} { get; set; }
                    """;
            }
            else
            {
                return null;
            }

        }

When I return a null, I have noticed that the ICodegenTextWriter adds an empty line.
Is there a better way to get around this?

I suppose you're interpolating an IEnumerable like  {{ entities.Select(e => RenderEntityDbSets(solution, e)  }}, right?
Currently IEnumerable doesn't have any special behavior if some item renders a null (and I don't think it should have any special behavior anyway) so probably it's same behavior as an empty item (by default each item has its own line).
If that's the case then I suggest that you filter the IEnumerable, like this:
 {{ entities.Where(e => IsEntityModelExists(solution, e).Select(e => RenderEntityDbSets(solution, e)  }}
Or if that doesn't work you can try something like return $$"{{TLW}}". TLW` means "trim leading whitespace", which basically means it will "do backspace until it finds a non-whitespace character" (even if that is in a previous line) - so basically it's like discarding the empty line.
Another possible workaround would be use .Render() extension with an empty separator between items (I think it's like list.Render(new RenderEnumerableOptions() {  BetweenItemsBehavior = ItemsSeparatorBehavior.WriteCustomSeparator, CustomSeparator = "" })- and then you add the extra line on your own after the DbSet - but in this case you would get an extra line after the last item - so I think the first solution is best.
Let me now how it goes.

Thank you for the feedback. I will try it out ! and revert back

Please reopen if not fixed

I am still having issues with EmptyLines

I am calling the Render Method using the following code

        public string GenerateOqtaneEntityEdit(CodeGenSchema codeGenSchema)
        {

            ICodegenTextWriter writer = new CodegenTextWriter();
            writer.RemoveWhitespaceFromEmptyLines = false;
            writer.LoadTemplate<OqtaneEntityEditTemplate>().Render(codeGenSchema);
            var contents = writer.GetContents();

            var isClientModuleFolderExists = Directory.Exists(Utilities.PathCombine(codeGenSchema.Solution.Location, $"Client/Modules/{codeGenSchema.Solution.Namespace}.{codeGenSchema.Entity.Name}"));

            if (!isClientModuleFolderExists)
            {
                Directory.CreateDirectory(Utilities.PathCombine(codeGenSchema.Solution.Location, $"Client/Modules/{codeGenSchema.Solution.Namespace}.{codeGenSchema.Entity.Name}"));
            }

            var path = Utilities.PathCombine(codeGenSchema.Solution.Location, $"Client/Modules/{codeGenSchema.Solution.Namespace}.{codeGenSchema.Entity.Name}", $"Edit.razor");
            System.IO.File.WriteAllText(path, contents);

            return writer.GetContents();
        }

I have the following Render Method

        public FormattableString Render(CodeGenSchema codeGenSchema)
        {

            var solution = codeGenSchema.Solution;
            var entity = codeGenSchema.Entity;
            var camelEntityName = entity.Name.Camelize();
            var camelPluralEntityName = entity.PluralName.Camelize();

            return $$"""
                    @using Oqtane.Modules.Controls
                    @using {{solution.Namespace}}.Services
                    @using {{solution.Namespace}}.Models
                    @using Oqtane

                    @namespace {{solution.Namespace}}.{{entity.Name}}
                    @inherits ModuleBase
                    @inject I{{entity.Name}}Service {{entity.Name}}Service
                    @inject NavigationManager NavigationManager
                    @inject IStringLocalizer<Index> Localizer
                    @inject IStringLocalizer<SharedResources> SharedLocalizer

                    <form @ref="form" class="@(validated ? " was-validated" : "needs-validation" )" novalidate>

                            {{entity.Properties.Select(p => RenderFormControls(entity, p))}}

                        <button type="button" class="btn btn-success" @onclick="Save">@Localizer["Save"]</button>
                        <NavLink class="btn btn-secondary" href="@NavigateUrl()">@Localizer["Cancel"]</NavLink>

                        @if (PageState.Action == "Edit")
                        {
                            <AuditInfo CreatedBy="@_createdby" CreatedOn="@_createdon" ModifiedBy="@_modifiedby" ModifiedOn="@_modifiedon"></AuditInfo>
                        }
                    </form>

                    @code {
                        // uncomment the following line to use Static render mode for this component
                        // public override string RenderMode => RenderModes.Static;
                        // uncomment the following line to Prerender on Server NOTE: This may effect SOE so should only be used in backend pages
                        // public override bool? Prerender => true

                        public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Edit;

                        public override string Actions => "Add,Edit";

                        public override string Title => "Manage {{entity.Name}}";

                        public override List<Resource> Resources => new List<Resource>()
                        {
                            new Resource { ResourceType = ResourceType.Stylesheet, Url = ModulePath() + "Module.css" }
                        };

                        private ElementReference form;
                        private bool validated = false;

                        private int _id;
                        {{entity.Properties.Select(p => RenderProperties(entity, p))}}
                        private string _createdby;
                        private DateTime _createdon;
                        private string _modifiedby;
                        private DateTime _modifiedon;

                        {{RenderOnInitializeAsyncMethod(entity)}}

                        {{RenderSaveMethod(entity)}}

                    }
                    """;

        }

The {{entity.Properties.Select(p => RenderProperties(entity, p))}} calls the below method

        public FormattableString RenderProperties(Entity entity, Property property)
        {

            if (property.ShowOnEditAction || property.ShowOnCreateAction)
            {

                if (property.Type == "DateTime")
                {
                    return $$"""
                        private {{property.Type}}? _{{property.Name.Camelize()}};
                        private {{property.Type}}? _{{property.Name.Camelize()}}Time;
                        """;
                }
                if (property.Type == "bool")
                {
                    return $$"""
                        private string _{{property.Name.Camelize()}} = "True";
                        """;
                }
                else
                {
                    return $$"""
                        private {{property.Type}} _{{property.Name.Camelize()}};
                        """;
                }

            }
            else
            {
                return $$"""{{Symbols.TLW}}""";
            }

        }

The result is as follows
    private int _id;
    private string _firstName;

    private string _lastName;

    private string _sex = "True";

    private DateTime? _dOB;
    private DateTime? _dOBTime;

    private int _mRN;


Provide a documented way to specify an endpoint's device version. (TZ-672)

Is your feature request related to a problem?
Trying to implement a colour-control light which can be added to a Philips Hue network. The Hue Hub does not consider a device with Profile ID 0x0104 (Home Automation), Device ID 0x0102 (Color Dimmable Light), Device Version 0x0000 (the value set by esp-zigbee-sdk) to be a valid light.
The ZigBee Lighting & Occupancy Device Specification Version 1.0, Section 6 specifies that for each described device type,

The application device version field of the corresponding simple descriptor SHALL be set to 0x1.

As far as I can tell, there is currently no documented way to set the device version of an endpoint descriptor (it is not an argument to esp_zb_ep_list_add_ep)
Describe the solution you'd like.
add an argument device_version to esp_zb_ep_list_add_ep (breaking API change)
or create a function esp_zb_ep_list_add_ep_with_version (or similar) which allows setting the endpoint's device version field.
Describe alternatives you've considered.
Functions to modify an endpoint in an esp_zb_ep_list_t * after it has been registered with esp_zb_ep_list_add_ep would be an alternative, but this is not in line with the more declarative approach you've chosen for setting up a device.
e.g. my current workaround
esp_zb_af_simple_desc_1_1_t * find_ep_descriptor(esp_zb_ep_list_t *ep_list, uint8_t ep_id)
{
    if (ep_list == NULL) {
        return NULL;
    }

    if (ep_list->endpoint.ep_id == ep_id) {
        return ep_list->endpoint.simple_desc;
    }

    return find_ep_descriptor(ep_list->next, ep_id);
}

    esp_zb_ep_list_t *esp_zb_ep_list = esp_zb_ep_list_create();
    esp_zb_ep_list_add_ep(esp_zb_ep_list, cluster_list, ZLO_COLOR_LIGHT_ENDPOINT, ESP_ZB_AF_HA_PROFILE_ID, ESP_ZB_HA_COLOR_DIMMABLE_LIGHT_DEVICE_ID);

    esp_zb_af_simple_desc_1_1_t *light_ep_desc = find_ep_descriptor(esp_zb_ep_list, ZLO_COLOR_LIGHT_ENDPOINT);
    if (light_ep_desc != NULL) {
        light_ep_desc->app_device_version = 1;
    } else {
        ESP_LOGW(TAG, "Could not find descriptor for EP %d", ZLO_COLOR_LIGHT_ENDPOINT);
    }

Additional context.
No response

@nrw505 ，
Thank you for your suggestion. It's true that the esp-zigbee-sdk currently lacks an API for setting the endpoint device version. We will take this into consideration in next released version.

@nrw505 ,
The esp-zigbee-sdk v1.2.0 has already added support for setting the device version of the endpoint. You can refer to https://github.com/espressif/esp-zigbee-sdk/blob/main/components/esp-zigbee-lib/include/esp_zigbee_endpoint.h#L35


[FLINK-16949] Enhance AbstractStreamOperatorTestHarness to use customized TtlTimeProvider

What is the purpose of the change
Enhance specific UTs to use customized TtlTimeProvider to simulate changed current time. This would introduce some changes to AbstractStreamOperatorTestHarness and add new StreamTaskStateInitializerTestImpl for different state backends.
Brief change log
Introduce some changes to AbstractStreamOperatorTestHarness and add new StreamTaskStateInitializerTestImpl for different state backends.
Verifying this change
This change added tests and can be verified as follows:
AbstractStreamOperatorTestHarnessTest#testSetTtlTimeProvider
Does this pull request potentially affect one of the following parts:

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

Documentation

Does this pull request introduce a new feature? no
If yes, how is the feature documented? not applicable

Merging...


[SPARK-36899] [R] Support ILIKE API on R

What changes were proposed in this pull request?

Support ILIKE (case insensitive LIKE) API on R.
Why are the changes needed?

ILIKE statement on SQL interface is supported by SPARK-36674.
This PR will support R API for it.
Does this PR introduce any user-facing change?

Yes. Users can call ilike from R.
How was this patch tested?

Unit tests.

Test build #143744 has started for PR 34152 at commit e69f9f9.

Test build #143744 has finished for PR 34152 at commit e69f9f9.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/143744/

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/48255/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/48255/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/48255/

Merged to master.


add wildcard query

Coverage decreased (-5.4%) to 87.831% when pulling c5bf16df5c2cb264830967be09962ef466c6ede6 on add-wildcard-query into 4c4a9822edf9a5d4cd3156dd60f4f9f712857575 on master.

Coverage increased (+0.4%) to 93.651% when pulling 3790a23e10bb20e7b16739e6f41391a8ef6a8472 on add-wildcard-query into 4c4a9822edf9a5d4cd3156dd60f4f9f712857575 on master.


Updates to locality-aware description and relocation

Fixes DOC-6975, DOC-7101

Improves the locality-aware technical description
Adds a diagram (from Liv) on the locality-aware process
Relocated the technical details of locality-aware & locality-restricted backups to the Backup Architecture page (What do we think? The main aim here is to keep technical, conceptual content together and let the feature pages contain examples and usage details.)
Ensure there are notes on the locality-aware page that describe each node needs access to storage locations (which was one of the problems that TSE ran into here.

Preview
https://deploy-preview-17097--cockroachdb-docs.netlify.app/docs/v23.1/backup-architecture.html#backups-with-locality

I like it that the technical details are under Backup architecture.
One suggestion: Add this line to a new sub-section called 'technical overview' or soemthing - For a technical overview of how a locality-aware backup works, see
Also, in the LHS nav tree of Backup Architecture, can we include "Backsup with locality" as a sub-item?

@livlobo I like the suggestion re the heading to direct users through to the technical content — as it does seems like these individual standalone sentences get lost.
Regarding the nav, if you mean the docs nav on the left — I can't add this as a sub-heading under Backup Architecture without making it its own page. The dropdowns on that nav represent pages. This brings up a question of, is this good all as one page? Or, do we want separate pages:
Backup Architecture:
|> Backup jobs
|> Backup jobs with locality requirements
Perhaps, we can try as one page, and if we find discoverability an issue, we can look at adjusting.

@dt friendly reminder on this one! Thanks!

Thanks Ashley! TFTRs!


[SR-3689] Persist editable package state when the package is not in Manifest

Solves https://bugs.swift.org/browse/SR-3689
This PR persists the editable package state in the managedDependecies even when the package no longer exist in manifest.

@swift-ci please smoke test


add out of sequence argument to bigquery sat

got the following error:
dbt.exceptions.CompilationException: Compilation Error in model sat_client_item_details (models\vault\sats\sat_client_item_details.sql)
  macro 'dbt_macro__bigquery__sat' takes no keyword argument 'out_of_sequence'

This is an as of yet unreleased macro which we are planning to make significant changes to before release, and we are planning a very slightly implementation of out of sequence to how it is now


sf autocomplete instructions failing for fish shell

Summary
sf autocomplete instructions failing for fish shell
Steps To Reproduce
using fish shell on a macos 14.2.1 (silicon), successfully installed latest sf platform binary (2.24.4). sf autocomplete output states:

Add the autocomplete env var to your fish profile and source it...
$ printf "eval $(sf autocomplete script fish)" >> ~/.fishrc; source ~/.fishrc

Expected result
not sure, first time updating to sf v2 so not sure what success for this command looks like
Actual result
The sf autocomplete fails producing this output:

› Error: Expected fish to be one of: zsh, bash, powershell
› See more help with --help

Sidenote: why instruct the use of a fish config file (.fishrc) that isn't even in the fish configuration documentation? It should be config.fish instead.
System Information
fish shell version 3.7.0
{
  "architecture": "darwin-arm64",
  "cliVersion"<EMAIL_ADDRESS>  "nodeVersion": "node-v20.10.0",
  "osVersion": "Darwin 23.2.0",
  "rootPath": "/usr/local/lib/sf",
  "shell": "fish",
  "pluginVersions": [
    "@oclif/plugin-autocomplete 3.0.5 (core)",
    "@oclif/plugin-commands 3.1.0 (core)",
    "@oclif/plugin-help 6.0.10 (core)",
    "@oclif/plugin-not-found 3.0.8 (core)",
    "@oclif/plugin-plugins 4.1.15 (core)",
    "@oclif/plugin-search 1.0.11 (core)",
    "@oclif/plugin-update 4.1.7 (core)",
    "@oclif/plugin-version 2.0.11 (core)",
    "@oclif/plugin-warn-if-update-available 3.0.9 (core)",
    "@oclif/plugin-which 3.0.14 (core)",
    "@salesforce/cli 2.24.4 (core)",
    "apex 3.0.17 (core)",
    "auth 3.2.0 (core)",
    "data 3.0.14 (core)",
    "deploy-retrieve 3.1.0 (core)",
    "info 3.0.15 (core)",
    "limits 3.1.2 (core)",
    "marketplace 1.0.16 (core)",
    "org 3.2.2 (core)",
    "packaging 2.1.0 (core)",
    "schema 3.1.0 (core)",
    "settings 2.0.15 (core)",
    "sobject 1.1.0 (core)",
    "source 3.1.3 (core)",
    "telemetry 3.1.9 (core)",
    "templates 56.0.9 (core)",
    "trust 3.3.1 (core)",
    "user 3.2.1 (core)"
  ]
}

This is a duplicate of https://github.com/oclif/plugin-autocomplete/issues/3
Also see: https://github.com/oclif/plugin-autocomplete/pull/175
There's no support yet.  Feel free to contribute to the conversation there and/or the PR.


Noir Contract Syntax

Smart contract syntaxes in Noir.
For unconstrained funcitons:
- [ ] https://github.com/noir-lang/noir/issues/374

Superseded by https://github.com/noir-lang/noir/issues/943 and other issues.


IPDK: Optimize docker image

Docker image is taking ~13GB as of today.
Below changes are made in this review which would reduce ~6.5GB.
a) Install only necessary packages when building a docker image.
b) Run start_p4ovs.sh script as part of docker build.
c) Remove source code of dependent packages which are installed as
part of install_dep_packages.sh
d) Make clean once P4-OVS and P4C are build and installed. For now,
source code is left intentionally as it would help in further
code reference and developments for user.
(subsequent commits will have this for p4-driver as well)
e) Changes are made in set_hugepages.sh, when we have more than one node
and once hugepages value is set for both nodes, this value is being
re-set once /sys/kernel/mm/hugepages/hugepages-2048kB is set to 1024.
This will not have an effect when we have single node, but for dual
node, this value is resetting previously set 1024 value for both nodes.
This is a very first level commit to reduce memory taken by docker image
after docker commit. These changes are targeted for Fedora as of now.
Change-type: ImplementationChange
Title: IPDK: Optimize docker image
Signed-off-by: n-sandeep<EMAIL_ADDRESS>

Thanks @n-sandeep and @vsureshkumarp ! Will current repo status today.


Fails to build with ghc 9.2 because of RULES recursion

Or at least that's why I assume happens. Here's the error message:
Simplifier ticks exhausted
  When trying RuleFired Extension.pow

And similar for Binary.pow
Upping the simplifier tick factor doesn't fix this, but removing the RULES entirely does.

Interestingly, on GHC 9.10.1, it doesn't exhaust the ticks, but it hangs when compiling instead:
[44 of 86] Compiling Curve.Weierstrass.BLS48_581T ( src/Curve/Weierstrass/BLS48_581T.hs, x86_64-linux/ghc-9.10.1/elliptic-curve-0.1.0/build/Curve/Weierstrass/BLS48_581T.o, x86_64-linux/ghc-9.10.1/elliptic-curve-0.1.0/build/Curve/Weierstrass/BLS48_581T.dyn_o )


Added monitor as attribute of Footprint when computing footprint

Very minimal change to add monitor as an attribute of the Footprint class, when computing the footprint. This is needed to compute/compare the footprints with alternative libraries such as pyNAFF or NAFFlib.

Updated the code following discussion with @giadarol , adding keep_tracking_data as an argument of the Footprint class to avoid always saving the (heavy) monitor object.

Updated code as I realized I didn't update unit test to accommodate for the footprint flag. Fixed the implementation accordingly. Test is passing.


Update ImapClient.cs

I'm French (so, sorry for my english). I have mailboxes using accents (eg: "Santé").
MailHeaders can be retrieved from this MailBox but moving emails to it fail.
I suggest to encode the name the same way it's done in fetching headers.
It's my first proposal in GitHub so I don't know if you see it, I suggest to modify in:
public void CopyMessages(IEnumerable uids, string destination, string mailbox = null) {
The retrieval:
string response = SendCommandGetResponse(tag + "UID COPY " + set + " " +
Util.UTF7Encode(destination).QuoteString());
Looks like it works for me.

This looks like a duplicate of PR #113 and issue #112


Support for Extended Features (CAN FD)

Description:
Enable support for CAN FD (Flexible Data Rate), which allows for faster data transmission and larger message sizes. This feature will make the gem compatible with modern CAN interfaces.
Acceptance Criteria:

[ ] Detect whether the CAN interface supports CAN FD.
[ ] Extend the send_can_message method to support CAN FD frames.
[ ] Extend the start_listening method to handle CAN FD frames.
[ ] Update the documentation with examples of using CAN FD.
[ ] Write unit tests to validate CAN FD functionality.

socket library does not support fd can atm afaik. research is ongoing.


update counter shows tests

this branch's purpose is to fulfill:
-Add all items counter on the Homepage. Even if the API gives you the number of items, you will create a specific function to calculate it. Make sure that the correct number is displayed on the Homepage.
-Make sure that function for the items counter is covered with unit tests using Jest. Make sure that you have tests for all edge cases.

Fix #6
Fix #3

Hi @evillaz  ,
Tests look good! All the requirements are carried out...
Your project is complete!  There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉
Highlights
📌 No Linters error ✅
📌 Descriptive pull request✅
📌 Good commit messages ✅
📌 Professional README file ✅
📌 Correct Setup with webpack ✅
Optional suggestions
Every comment with the [OPTIONAL] prefix won't stop the approval of this PR. However, I strongly recommend you to take them into account as they can make your code better. Some of them were simply missed by the previous reviewer and addressing them will really improve your application.
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


feat: add test users login

We are setting up automated end to end testing for our platform.
The tests will create new users and new org for every test run.
but due to frontier login strategies it is very difficult to login from test user accounts.
We looked for multiple solution for this.

Use gmail apis to read inbox and get otp. eg gmail-tester
But this will expose real user gmail creds on CI.
Use throw away email to send otp in that and read email via api. eg mailosour
Have support for test users and use hardcoded otp.

This PR will add support for test users. The test user is similar to stripe payment test where hardcoded payment methods can be used for testing.
The test users will be enabled from config.

app.authentication.test_users.enabled will enable test users. it is disabled by default. and it is recommended to enable only on dev server.
app.authentication.test_users.domain will set test users email domain. it is recommended to use some custom domain instead of real users like<EMAIL_ADDRESS>app.authentication.test_users.otp will set the otp for test users.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

8 of 26 (30.77%)  changed or added relevant lines in 5 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.004%) to 9.778%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

core/authenticate/service.go
0
2
0.0%

core/domain/service.go
0
2
0.0%

pkg/utils/domain.go
0
6
0.0%

core/authenticate/strategy/mail_link.go
0
8
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.004%

Covered Lines:
9465

Relevant Lines:
96799

💛  - Coveralls


[Bug] Image load issue using Volume viewport with WADO-URI

Describe the Bug
First and last image of a series are partially loaded or rendered to VolumeViewport using WADO-URI and streaming-image-volume-loader.
The issue doesn't occur on every series, however can be always reproduced on the specific ones.
With StackViewport it works properly, but if I know right it uses a different image loader.
It seems like two new partially loaded images are added to the start and the end of the series, and there is a small offset as images are slightly different to the ones in StackViewport.

Different example in OHIF Viewer: link

Steps to Reproduce

Open this OHIF Viewer sample
Change to MPR (VolumeViewport)
Scroll to the first or the last image in the first view

Note: In the top right corner image number is 42 instead of 40
The current behavior
First and last image of a series are partially loaded or rendered to VolumeViewport using WADO-URI and streaming-image-volume-loader.
The expected behavior
Images are loaded properly to VolumeViewport using WADO-URI
OS
Windows11
Node version
16.20.1
Browser
Chrome 115.0.5790.171, Firefox 115.0.3

so seems like that study and that series T2 HAST AX is not completely orthogonal in acquisition

then since MPR pick axial view it causes those artifacts in the ends. So I don't think anything is wrong.
it is same for other oblique acuqisitions too like this study and this series https://viewer-dev.ohif.org/viewer?StudyInstanceUIDs=<IP_ADDRESS>.4.1.145<IP_ADDRESS>.3671.4754.298665348758363466150039312520&hangingprotocolid=mpr
as you see it has cut of in the ends because of oblique acquisition.
If you wish to render it like stack viewport, you should choose the correct normal for the camera (not axial) which you can get/calculate from row and column cosines

Are you going to support such cases? And recalculate orientation based on those values for each series? So it is shown straight.

This is related to the new orientations that we need to make regarding axial, sag and coronal for oblique


Quick fix for xml deserialization

Description
It looks like that we missed the judgement of ResourceIdentifier and ResourceType in xml value deserialization, which causes the generated code likes this:
internal static ApiVersionSetContractData DeserializeApiVersionSetContractData(XElement element)
{
        ResourceIdentifier id = default;
        ResourceType type = default;
         if (element.Element("id") is XElement idElement)
        {
                id = idElement.(null);
        }
        if (element.Element("type") is XElement typeElement)
        {
                type = typeElement.(null);
        }
        return new ApiVersionSetContractData(id, type);
}

Checklist
To ensure a quick review and merge, please ensure:

[ ] The PR has a understandable title and description explaining the why and what.
[ ] The PR is opened in draft if not ready for review yet.

If opened in draft, please allocate sufficient time (24 hours) after moving out of draft for review

[ ] The branch is recent enough to not have merge conflicts upon creation.

Ready to Land?

[ ] Build is completely green

Submissions with test failures require tracking issue and approval of a CODEOWNER

[ ] At least one +1 review by a CODEOWNER
[ ] All -1 reviews are confirmed resolved by the reviewer

Override/Marking reviews stale must be discussed with CODEOWNERS first

LGTM, but we do not have a test project impacted by this change?

Good point, let me try to add a test project.

Yes, please add at test. Otherwise LGTM.


DAOs: A new form of socio-economic institution -- Academic research & educational video

Grant category

[x] Educational material

Description
Economic research on DAOs at the University of Cambridge summarised into an educational video on social media.
The public hype about DAOs has largely overlooked a further possibility: that blockchain is an institutional technology enabling the coordination of new types of economic activity that were previously not able to be governed by firms, markets, or governments because the transaction costs were too high to justify the expected benefits (Davidson et al. 2018). Davidson et al. (2018:654) define decentralised collaborative organisations (DCOs), as “self-governing organisations with the coordination properties of a market, the governance properties of a commons and the constitutional, legal and monetary properties of a nation-state.”
Firstly, I will follow academic suggestions and take a transaction cost economic approach to produce an academic framework that promotes a fundamental understanding of how blockchain-based organisations extend the boundaries of the market and state.
Secondly, I plan to turn the 15,000 words research findings into a short and digestible video that will be promoted on social media in order to drive education creation and adoption of DAOs on the Flow blockchain.
Problem statement
Target audience:

Academic Paper: Academic researchers, economists, policy-makers
Educational video: Entrepreneurs, creators, investors, users

Evidence for the need:

Wright and De Filippi (2015) argue that these DAOs are collective and social institutions that promote greater participation, potentially transforming corporate governance and democratic institutions.

However, a lack of transparency, knowledge and a clear definition of decentralised autonomous organisations (DAOs) leads to a large amount of noise around what a DAO is, what it is useful for and how it challenges existing socio-economic institutions like states, and corporations and banks.

Most people have not fully understood blockchain technology’s potential to be used as a digital property system and a mechanism for economic coordination through token incentives, automation and democracy.

Proposed solution

Under the supervision of Professor Shailaja Fennell at the University of Cambridge, I will create an institutional economic framework to understand the impact of (i) token incentives, (ii) smart contracts, and (iii) the degree of decentralisation at DAOs on the economic transaction cost of an organisation.
Methodology:

Empirical data collection on the largest DAOs and a review of existing literature will provide a foundation for further research and decision-making for policy-makers, investors and economists.

The paper will include new qualitative and quantitative insights from leading industry experts, including founders, investors, lawyers and decision-makers at traditional institutions such as Nomura and the German Central Bank, as well as emerging DAO founders and crypto natives.

The proposal for the academic research paper has been approved by Professor Fennell and the Department of Land Economy at the University of Cambridge. You can read it here: https://garrulous-foxtail-d3f.notion.site/Research-Proposal-6732c65bde564ab2ad4073530482906b

Video

Partner with a leading communications agency and publish findings in an entertaining and educational video on major social media channels with the goal to reach and inspire thousands or millions of people to join the DAO movement.

The difference: An informative video about DAOs backed up by credible data from researchers at the University of Cambridge.

Impact

By creating a non-technical paper and publishing the summarised findings in an educational and exciting video on social media, I aim to reach more creators and other users who have previously shied away from the technical nature of blockchain. Given Flow's focus on creators, gamers and the mainstream user, I believe this paper will help to attract more users, developers and creators to the Flow ecosystem.

Academic research about blockchain technology is growing rapidly, however, most are focused on Ethereum.  I hope this research will contribute to the development of DAOs on the Flow blockchain and create a better understanding of the socio-economic impact DAOs will have on the established institutions of market capitalism.

Milestones and funding

Milestone
Deliverables
Timeline
Risks
FLOW requested

1 - Collect data
Institutional analysis of DAOs on Flow and other blockchains
4 weeks
Time constraints
3000

2 - Publish Paper
Academic Research on DAOs at University of Cambridge, submit for review in July
10 weeks
Time, skills
4000

3 - Educational Video
Show findings digestible video format on promote on social media
4 weeks
Need help on video editing and promotion to reach the right people
12000

Team

Name
Bio
Email

Ludolf von Schoening
Master student at the University of Cambridge, Founder of Paloneo.org (Cultural Impact DAO in stealth). Member of Digital Asset team at Nomura. Been through several crypto market cycles -- always focused on building
<EMAIL_ADDRESS>&<EMAIL_ADDRESS>

Thanks very much for the educational material grant submission @luischoening! We reviewed this proposal in detail and decided to pass for the following reasons:

developers in the ecosystem wouldn't directly benefitting from the research in practical ways
DAOs are an emerging category on Flow, thus it is unclear what the research impact would be

Let me know if you have further questions; you can reach me on Discord (alx-flw.find#6198).


View Cast

Really enjoying butterknife but I'm working with buterknife 8.4.0 and  I noticed that it doesn't indicate or show an error if the wrong view type is being cast into the id of another view type. for example
<EditText                 android:layout_width="match_parent"                 android:layout_height="40dp"                 android:inputType="text"                 android:ems="10"                 android:layout_gravity="center"                 android:background="@drawable/edit_text"                 android:hint=""                 android:layout_marginTop="1dp"                 android:id="@+id/editText" />  <TextView                 android:layout_width="match_parent"                 android:layout_height="wrap_content"                 android:text="Username"                 android:textColor="@color/white"                 android:textStyle="normal"                 android:textSize="15dp"                 android:layout_gravity="end"                 android:layout_marginTop="25dp"                 android:id="@+id/text_view"/>
Now these are two different views but i can cast the id of the text view into the Edit text and there will be no errors until you run the code and get  an error.
Check this out
@BindView(R.id.text_view)  EditText textview;  @BindView(R.id.editText)    Textview editiew;
Please i would like to know if there is something I'm missing  thanks

As ButterKnife only has access to Java files and not layout XML files it has no way of validating the declared type. You can use Android's databinding to generate bindings based on the layout XML if something like that is a requirement.

This could be solved with a Gradle plugin, but at this time I don't want to require the use of a Gradle plugin.

Ok nice got it


[BUG] The bot can't see when it's tagged in answers to other users

Expected Behavior
If I tag the bot in answer to an other user, it should answer.
Current Behavior
When tagging the bot in answer to an other user, the bot doesn't see it as a mentioning.
Steps to Reproduce

Go to a tweet from someone
Tag the bot and ask it an article
Wait a little
No answer

Fixed.


[BEAM-11787] Removes VR test

This cherry-picks https://github.com/apache/beam/pull/13957

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

R: @yifanmai


Typst Render Issue

Hi I'm using the typst format. When I do the render totally fails saying I need typst version 0.11. So I've installed it and it appears it's not recognizing I have it installed. Idk if that's an extension issue though or a RStudio issue. My command line says my typst version is the correct one

My apologies. I thought that upgrading Typst would fix this problem. Unfortunately, Quarto uses its own version of Typst. To use apaquarto-typst, you would need to upgrade to the prerelease version of Quarto 1.5.

Thank you!