Support for payment provider apps

The scope of this RFC is to provide a better way of processing payments via Saleor apps. The base assumption is that we want to have a replacement for the payment plugin flow which is not enough flexible and hard to maintain.  The proposed flow will operate on TransactionItem and extend the TransactionAPI.

Note
If you are not familiar with the feature, see section 4. that described the workflow.

### Tasks
- [ ] Add paymentGatewayInitialize mutation
- [ ] Add transactionInitialize mutation
- [ ] Add transactionProcess mutation
- [ ] Add changes to channel type
- [ ] Add changes to checkout
- [ ] Add PaymentGatewayInitializeSession webhook
- [ ] Add TransactionInitializeSession webhook
- [ ] Add TransactionProcessSession webhook

1. General Assumptions

checkout flow can be finalized by using payment apps
checkout flow can use TransactionItem objects to process a payment
checkout flow can handle split payments

2. API Changes
2.1 PaymentGatewayInitialize
Required permission: -
scalar JSON

enum PaymentGatewayConfigErrorCode {
  GRAPHQL_ERROR
  INVALID
  NOT_FOUND
}

type PaymentGatewayConfigError {
  """
  Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field.
  """
  field: String

  """The error message."""
  message: String

  """The error code."""
  code: PaymentGatewayConfigErrorCode!
}

type PaymentGatewayConfig {
  id: String!,
  errors: [PaymentGatewayConfigError!]!
  data: JSON
}

type PaymentGatewayInitialize {
  gatewayConfigs: [PaymentGatewayConfig!]!
}

input PaymentGatewayToInitialize {
  id: String!
  data: JSON
}

type Mutation{
  paymentGatewayInitialize(
    """
    The ID of the related object. For now only checkout is supported.
    """
    id: ID!
    """
    When amount is not provided we use amount = checkout.total - transactions that are already processed
    """
    amount: Decimal

    """
    Optionally user can decide which payment gateway should be initialized.
    """
    paymentGateways: [PaymentGatewayToInitialize!]
  ): PaymentGatewayInitialize
}

2.2 TransactionInitialize
Required permission: - or HANDLE_PAYMENTS in case of providing transactionInitialize.action

enum TransactionInitializeErrorCode {
  GRAPHQL_ERROR
  INVALID
  NOT_FOUND
}

type TransactionInitializeError {
  """
  Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field.
  """
  field: String

  """The error message."""
  message: String

  """The error code."""
  code: TransactionInitializeErrorCode!
}

type TransactionInitialize {
  transaction: TransactionItem!
  event: TransactionEvent!
  errors: TransactionInitializeError
}

enum TransactionFlowStrategy{
  AUTHORIZATION
  CHARGE
}

type Mutation{
  transactionInitialize(
    """
    The ID of the related object. For now only checkout is supported.
    In the future we could also use order?
    """
    id: ID!

    """
    When amount is not provided we use amount = checkout.total - transactions that are already processed
    """
    amount: Decimal

    """
    By default we take the settings from channel. If there is an app token we can overwrite the channel setting
    """
    action: TransactionFlowStrategy
    paymentGateway: PaymentGatewayToInitialize!
  ): TransactionInitialize
}

2.3 TransactionProcess
Required permission: -
type TransactionProcessError {
  """
  Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field.
  """
  field: String

  """The error message."""
  message: String

  """The error code."""
  code: TransactionProcessErrorCode!
}

type TransactionProcess {
  transaction: TransactionItem
  event: TransactionEvent
  errors: TransactionProcessError
}

type Mutation {
  transactionProcess(
    """
    The ID of the transactionItem
    """
    id: ID!
    data: JSON
  ): TransactionProcess
}

2.4 Channel type

type Channel implements Node {
  ...
  defaultTransactionStrategy: TransactionFlowStrategy!

}

2.5 ChannelUpdate
Required permission: MANAGE_CHANNELS or HANDLE_PAYMENTS (in case of updating only strategy)
input ChannelUpdateInput {
  ...
  defaultTransactionStrategy: TransactionFlowStrategy
}

2.6 ChannelCreate
Required permission: MANAGE_CHANNELS
input ChannelCreateInput {
  ...
  defaultTransactionStrategy: TransactionFlowStrategy
}

2.7 Checkout
Required permission: -
type Checkout {
  """
  Deprecated, use updatedAt instead.
  """
  lastChange: DateTime!
  updatedAt: DateTime!
  """
  The difference between the paid and the checkout total amount.
  """
  totalBalance: Money
}

enum CheckoutPaymentStatus {
  PARTIALLY_CHARGED
  FULLY_CHARGED
}

input CheckoutFilterInput {
  ...
  updatedAt: DateRangeInput
  paymentStatus: CheckoutPaymentStatus

}

3. Webhooks
3.1 payment-gateway-initialize [SYNC]
Request body
type PaymentGatewayInitializeSession {
      """Time of the event."""
  issuedAt: DateTime

  """Saleor version that triggered the event."""
  version: String

  """The user or application that triggered the event."""
  issuingPrincipal: IssuingPrincipal

  """The application receiving the webhook."""
  recipient: App

  base: TransactionSourceObject!
}

Response body
{
  data: JSON
}

3.2 transaction-initialize-session [SYNC]
Request body

union TransactionSourceObject = Checkout | Order
type TransactionProcessAction {
  actionType: TransactionFlowStrategy!
  amount: PositiveDecimal!
  currency: String!
}
type TransactionProcessObject {
  sourceObject: TransactionSourceObject!
  transaction: TransactionItem!
  pspReference: String
  """
  The TransactionItem's ID
  """
  merchantReference: String!
  data: JSON
  action: TransactionProcessAction!
}

type TransactionInitializeSession {
    """Time of the event."""
  issuedAt: DateTime

  """Saleor version that triggered the event."""
  version: String

  """The user or application that triggered the event."""
  issuingPrincipal: IssuingPrincipal

  """The application receiving the webhook."""
  recipient: App
  base: TransactionProcessObject!
}

Response body
{
  pspReference: String!
  data: JSON,
  result: Union[ CHARGE_SUCCESS, CHARGE_FAILURE, CHARGE_REQUESTED, AUTHORIZATION_SUCCESS, AUTHORIZATION_FAILURE, AUTHORIZATION_REQUESTED]!
  amount: PositiveDecimal!
  time: DateTime
  externalUrl: String
  message: String
  setCustomerExternalReference: String
}

3.3 transaction-process [SYNC]
Request body
type TransactionProcessSession {
    """Time of the event."""
  issuedAt: DateTime

  """Saleor version that triggered the event."""
  version: String

  """The user or application that triggered the event."""
  issuingPrincipal: IssuingPrincipal

  """The application receiving the webhook."""
  recipient: App
  base: TransactionProcessObject!
}

Response body
{
  pspReference: String!
  data: JSON,
  result: Union[ CHARGE_SUCCESS, CHARGE_FAILURE, CHARGE_REQUESTED, AUTHORIZATION_SUCCESS, AUTHORIZATION_FAILURE, AUTHORIZATION_REQUESTED]!
  amount: PositiveDecimal!
  time: DateTime
  externalUrl: String
  message: String
  setCustomerExternalReference: String
}

4. Workflow
4.1 Diagram
sequenceDiagram
  Front->>+Saleor: Fetch
checkout.availablePaymentGateways
	Saleor -->>- Front: List of the paymentGatewyas
 with included payment app
	Front ->> Saleor: Mutation PaymentGatewayInitialize,
amount, list of
payment gateways IDs
to initialize and
data, if
old ID provided, return
error
	Saleor ->>+ PaymentApp: payment-gateway-initialize-session
webhook
	PaymentApp -->>- Saleor: PaymentGateway data with config
	Saleor -->> Front: List of PaymentGateways
	Front ->>+ Saleor: TransactionInitialize
(like checkoutPymentCreate)
 with amount and
payment gateway ID, data
	Saleor ->> Saleor: Create TransactionItem
	Saleor ->> Saleor: Request TransactionEvent created
  Saleor ->>+ PaymentApp: webhook transaction-initialize-session
	PaymentApp -->>- Saleor: mandatory data for init the frontend
	Saleor ->> Saleor: TransactionEvent
created/TransactionEvent
request updated
	Saleor -->>- Front: TransactionItem created
	Front ->>+ PaymentProvider: Process a payment
	PaymentProvider -->>- Front: additional action required
	Front ->> Saleor: TransactionProcess
	Saleor ->>+ PaymentApp: transaction-process-session webhook
	PaymentApp -->>- Saleor: success
	Saleor ->> Saleor: Create the TransactionEvent
	Saleor -->> Front: Return success
	Front ->>+ Saleor: call checkoutComplete
	Saleor -->>- Front: Order created

4.2 Step by step

User/Storefront calls checkout.availablePaymentGateways. Saleor discovers the apps that are marked as an app that can process the payment, then returns them as PaymentGateway type.
User/Storefront decides which payment gateways should be initialized. Then calls paymentGatewayInitialize with the list of paymentGateways IDs and optional data that will be passed to a specific payment app. Saleor passes the data to the App inside the sync webhook PaymentGatewayInitializeSession. PaymentApp can return additional data that Saleor will pass to the front end.
User/Storefront decides which payment gateway will be used, and call transactionInitialize mutation, with the amount that want to cover. If amount is not provided, Saleor will use checkout.balance to define the proper amount. The additional data for PaymentApp can be passed via the input: transactionInitialize.paymentGateway.data. Providing action requires an additional permission. The mutation will create TransactionItem and request TransactionEvent object. Saleor will send sync webhook TransactionInitializeSession.  The payment app need to return a pspReference and the result of the action. If any additional actions are still required returned result field should contain the value "charge-requested" or "authorization-requested". The data field returned by Payment app will be passed to the frontend.
To process additional actions requested by the payment provider, user/storefront should use transactionProcess mutation. Calling transactionProcess mutation will trigger a webhook TransactionProcessSession. The structure and response have the same format as for TransactionInitializeSession. If there are any additional actions that the user needs to proceed with, then transactionProcess should be called again.
After resolving the processing payment(s), user/storefront should call checkoutComplete mutation. If everything is correct, the order will be created.

5. Migration guide
To proceed with migration, the app that has support for specific payment providers needs to be installed.
The detailed workflow will depend on the implemntation of the payment app.
The usage of checkoutPaymentCreate should be replaced with calls paymentGatewayInitialize and transactionInitialize.
Instead of multiple calling checkoutComplete (in case of additional actions required from the user), the transactionProcess should be called.
checkoutComplete should be called only once when the checkout.balance == 0. The mutation will create the order.

action: TransactionFlowStrategy

I think we should rename the field and use consistent names everywhere. If it's a "transaction flow strategy", let's call the field transactionFlowStrategy: TransactionFlowStrategy.

TransactionProcessErrorCode

Is it defined anywhere?

transactionProcess

How do we know to which Payment App should the data be passed? Do we store Payment Gateway ID on PaymentItem?

defaultTransactionStrategy: TransactionFlowStrategy!

Ditto, I think we should change it to defaultTransactionFlowStrategy: TransactionFlowStrategy!

TransactionProcessAction

type TransactionProcessAction {
  actionType: TransactionFlowStrategy!
  amount: PositiveDecimal!
  currency: String!
}

Wondering if we should use the Money type here instead (and rename actionType):
type TransactionProcessAction {
  transactionFlowStrategy: TransactionFlowStrategy!
  value: Money!
}

Saleor discovers the apps that are marked as an app that can process the payment

…based on which apps subscribed to the PaymentGatewayInitializeSession subscription.

@mmiszy Thanks for the feedback!

action: TransactionFlowStrategy

I think we should rename the field and use consistent names everywhere. If it's a "transaction flow strategy", let's call the field transactionFlowStrategy: TransactionFlowStrategy.

Maybe you have better name than TransactionFlowStrategy. The TransactionAction is already used. Also personally I would keep the action field, as we use everywhere the action field (TransactionActionRequest mutation and inside the transaction webhooks).

TransactionProcessErrorCode

Is it defined anywhere?

Right, I missed that. Thanks

transactionProcess

How do we know to which Payment App should the data be passed? Do we store Payment Gateway ID on PaymentItem?

Inside TransactionInitialize user provides the paymentGateway. We will attach the app to the newly created transaction.
So each next call on transactionProcess will already have the all details related to the app.

defaultTransactionStrategy: TransactionFlowStrategy!

Ditto, I think we should change it to defaultTransactionFlowStrategy: TransactionFlowStrategy!

Sounds good

TransactionProcessAction

type TransactionProcessAction {
  actionType: TransactionFlowStrategy!
  amount: PositiveDecimal!
  currency: String!
}

Wondering if we should use the Money type here instead (and rename actionType):

type TransactionProcessAction {
  transactionFlowStrategy: TransactionFlowStrategy!
  value: Money!
}

The proposed structure is the same as we use for already existing webhook TransactionActionRequest(introduced in 3.4) (and the new ones that we're going to merge). If we want to change this, then I think that we should change them in all new incoming webhooks (so would be good to agree thiis with whole team).

type Mutation{
  transactionInitialize(
    # ...
    """
    When amount is not provided we use amount = checkout.total - transactions that are already processed
    """
    amount: Decimal
    # ...
  ): TransactionInitialize
}

What qualifies as "processed" transaction? Is it:
a. a transaction has transactionProcess mutation called with ID of that transaction?
b. a transaction that has authorizePending or chargePending amounts?
c. a transaction that has authorized or charged amounts?

type Mutation{
  transactionInitialize(
    # ...
    """
    By default we take the settings from channel. If there is an app token we can overwrite the channel setting
    """
    action: TransactionFlowStrategy
    # ...
  ): TransactionInitialize
}

What happens if a regular user / a guest uses action inside this mutation? Do we raise a permission exception, or is this value silently ignored?
Is the setCustomerExternalReference saved anywhere at this point, or did I miss something?
What is this webhook in the Adyen chart:

Saleor will send sync webhook TransactionInitializeSession. The payment app need to return a pspReference and the result of the action. If any additional actions are still required returned result field should contain the value "charge-requested" or "authorization-requested".

Is this right? From the RFC the result field should be a union, and there's no charge-requested or authorization-requested there. Maybe those additional actions should be handled by whatever is passed in the data field?

@witoszekdev

What qualifies as "processed" transaction? Is it:
a. a transaction has transactionProcess mutation called with ID of that transaction?
b. a transaction that has authorizePending or chargePending amounts?
c. a transaction that has authorized or charged amounts?

The proper status of the event. The transactionIntialize and transactionProcess, returns the event. If the event is authorize_success, or authorize_charge. It means that you have sucesfull processed transaction.

What happens if a regular user / a guest uses action inside this mutation? Do we raise a permission exception, or is this value silently ignored?

Good question. I would say, that we should raise an exception.

Is the setCustomerExternalReference saved anywhere at this point, or did I miss something?

I need to drop it from this RFC, as this is not a scope of storing the payment method.

What is this webhook in the Adyen chart:

It is only a sample, when you have an external service responsible for charging the funds.

Is this right? From the RFC the result field should be a union, and there's no charge-requested or authorization-requested there. Maybe those additional actions should be handled by whatever is passed in the data field?

It should be in upper cases. I will correct it.
result: Union[ CHARGE_SUCCESS, CHARGE_FAILURE, CHARGE_REQUESTED, AUTHORIZATION_SUCCESS, AUTHORIZATION_FAILURE, AUTHORIZATION_REQUESTED]!


Downgrade reporters to dotnet standard 2.0

The issue or feature being addressed

https://github.com/AppMetrics/AppMetrics/issues/558

Details on the issue fix or feature implementation

When running this library on a .net 4.8 framework the App.Metrics package requires dotnet standard 2.0, but the Datadog, GrafanaCloud, Graphite, InfluxDB, and Prometheus reporters require dotnet standard 2.1. This effectively make this library unusable on the dotnet 4.8 framework unless using the Console, Http, Socket, or TextFile reporters.

Confirm the following

[*] I have ensured that I have merged the latest changes from the dev branch
[*] I have successfully run a local build
[] I have included unit tests for the issue/feature
[*] I have included the github issue number in my commits

I think we're going to need to multi-target. Aspnet core 3.* will fail using these packages due to synchronise io


Fix bug due to "bot" being used instead of "assistant" in Chat.tsx

Purpose

After updating my code after recent change (PR to fix chat history context bug, #778), I found that I was getting TypeError: Cannot read properties of undefined (reading '0') after asking follow-up questions in the chat. This is the same error as #814 and #770, and I believe are likely related.
I enabled "Application Insights" and found this as the stack trace:
  File "/tmp/8dbcf8b8d2431d2/antenv/lib/python3.11/site-packages/opentelemetry/trace/__init__.py", line 573, in use_span
    yield span
  File "/tmp/8dbcf8b8d2431d2/antenv/lib/python3.11/site-packages/opentelemetry/instrumentation/asgi/__init__.py", line 596, in __call__
    await self.app(scope, otel_receive, otel_send)
  File "/tmp/8dbcf8b8d2431d2/antenv/lib/python3.11/site-packages/quart/app.py", line 1647, in asgi_app
    await asgi_handler(receive, send)
  File "/tmp/8dbcf8b8d2431d2/antenv/lib/python3.11/site-packages/quart/asgi.py", line 52, in __call__
    raise_task_exceptions(done)
  File "/tmp/8dbcf8b8d2431d2/antenv/lib/python3.11/site-packages/quart/utils.py", line 187, in raise_task_exceptions
    raise task.exception()
  File "/tmp/8dbcf8b8d2431d2/antenv/lib/python3.11/site-packages/quart/asgi.py", line 107, in handle_request
    await asyncio.wait_for(self._send_response(send, response), timeout=timeout)
  File "/opt/python/3.11.4/lib/python3.11/asyncio/tasks.py", line 442, in wait_for
    return await fut
           ^^^^^^^^^
  File "/tmp/8dbcf8b8d2431d2/antenv/lib/python3.11/site-packages/quart/asgi.py", line 134, in _send_response
    async for data in response_body:
  File "/tmp/8dbcf8b8d2431d2/app.py", line 109, in format_as_ndjson
    async for event in r:
  File "/tmp/8dbcf8b8d2431d2/approaches/chatreadretrieveread.py", line 256, in run_with_streaming
    extra_info, chat_coroutine = await self.run_until_final_call(
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8dbcf8b8d2431d2/approaches/chatreadretrieveread.py", line 126, in run_until_final_call
    chat_completion = await openai.ChatCompletion.acreate(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8dbcf8b8d2431d2/antenv/lib/python3.11/site-packages/openai/api_resources/chat_completion.py", line 45, in acreate
    return await super().acreate(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8dbcf8b8d2431d2/antenv/lib/python3.11/site-packages/openai/api_resources/abstract/engine_api_resource.py", line 219, in acreate
    response, _, api_key = await requestor.arequest(
                           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8dbcf8b8d2431d2/antenv/lib/python3.11/site-packages/openai/api_requestor.py", line 384, in arequest
    resp, got_stream = await self._interpret_async_response(result, stream)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8dbcf8b8d2431d2/antenv/lib/python3.11/site-packages/openai/api_requestor.py", line 738, in _interpret_async_response
    self._interpret_response_line(
  File "/tmp/8dbcf8b8d2431d2/antenv/lib/python3.11/site-packages/openai/api_requestor.py", line 775, in _interpret_response_line
    raise self.handle_error_response(
openai.error.InvalidRequestError: 'bot' is not one of ['system', 'assistant', 'user', 'function'] - 'messages.6.role'

A simple search in the repo found the only location of "bot" was in the app/frontend/src/pages/chat/Chat.tsx file, line 106.
I changed
            const messages: ResponseMessage[] = answers.flatMap(a => ([
                { content: a[0], role: "user" },
                { content: a[1].choices[0].message.content, role: "bot" }
            ]));

to
            const messages: ResponseMessage[] = answers.flatMap(a => ([
                { content: a[0], role: "user" },
                { content: a[1].choices[0].message.content, role: "assistant" }
            ]));

and re-deployed. Problem solved!
I think this PR may fix #814 and #770.
Does this introduce a breaking change?

[ ] Yes
[x] No

Pull Request Type
What kind of change does this Pull Request introduce?

[x] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)

How to Test

Replicate original bug by simply deploying current commit. Confirm that follow-up questions introduce bug.
Change "bot" to "assistant" and re-deploy. Confirm that follow-up questions work.

Other Information

Tested in dev-container. Running Ubuntu 22.04.

Hi @tvhahn, just tried this fix and am still getting an issue. Wondering if you tried anything else? Thanks!

Thank you! I tried this locally and it did work. @devanshithakar12 Did you re-compile the JS after applying the fix? What error do you see in the logs?

@pamelafox - worked for me now, thank you!

In my code i have already assistant but still getting this error. Here is my code-
const messages: ResponseMessage[] = answers.flatMap(a => [
{ content: a[0], role: "user" },
{ content: a[1].choices[0].message.content, role: "assistant" }
]);

I am still getting the error

@namratam30 Which error exactly? Please provide your full server traceback.


Some important service disabled for enterprise use + new bloatware list

Hi,
I want to suggest to not disable some service because its can make the system unstable and get random error for a network use and pc administration.
i suggest to let these service active , i think this not take ressources as much and some of them are running only if the system needed for a task and some are clearly essential like the print spooler or remote desktop services ! Its look like a blindly disable, pls take care about that :
#Usefull for pc administration
"RemoteRegistry"
#Usefull for RDP
"UmRdpService"
"TermService"
"SessionEnv"
"RasMan"
"RasAuto"
#Essential.....
"Spooler"
"PrintNotify"
#Maybe usefull for event viewer etc...
"WdiSystemHost"
"WdiServiceHost"
"DPS"
"diagsvc"
"WerSvc"
#Other, we don't know if can make system unstable for some use
"svsvc"
"fhsvc"
"Fax"
Second thing i noticed that the bloatware list is now pretty small, a reason for this?
I suggest this for an enterprise use, maybe some apps like xbox can be commented for a personnel and gamer use. Maybe its can be usefull to make a bloatware remove function for personnal and enterpise use ( for a very clean system), maybe ill take a time for help at this :
    "Microsoft.BioEnrollment"
    "Microsoft.LockApp"
    "Microsoft.MicrosoftEdgeDevToolsClient"
    #"Microsoft.MicrosoftEdge"
    "Microsoft.BingNews"
    "Microsoft.BingWeather"
    "Microsoft.GetHelp"
    "Microsoft.Getstarted"
    "Microsoft.MicrosoftOfficeHub"
    "Microsoft.MicrosoftSolitaireCollection"
    "Microsoft.MicrosoftStickyNotes" # its make sysprep fail
    "Microsoft.People"
    "Microsoft.PowerAutomateDesktop"
    "Microsoft.SecHealthUI"
    "Microsoft.Todos"
    #"Microsoft.Windows.Photos"
    "Microsoft.WindowsAlarms"
    #"Microsoft.WindowsCamera" # Maybe usefull for test a webcam
    "microsoft.windowscommunicationsapps"
    "Microsoft.WindowsFeedbackHub"
    "Microsoft.WindowsMaps"
    #"Microsoft.WindowsSoundRecorder" Maybe usefull for test a micro
    "Microsoft.YourPhone"
    "Microsoft.ZuneMusic"
    "Microsoft.ZuneVideo"
    "MicrosoftTeams"
    "Microsoft.549981C3F5F10" # cortana
    "Microsoft.GamingApp"
    "Microsoft.Xbox.TCUI"
    "Microsoft.XboxApp"
    "Microsoft.XboxGameOverlay"
    "Microsoft.XboxGamingOverlay"
    "Microsoft.XboxIdentityProvider"
    "Microsoft.XboxSpeechToTextOverlay"
    "MicrosoftWindows.Client.WebExperience"

Thanks

Hey,
Well, I can comment out most of those services!
Now, about bloatware packages. I can't remove most of them, some break Xbox/Windows Store, some break regular Windows usage. And bio enrollment is needed for pin code logins and such.
Diagnostic services won't really affect Event Viewer AFAIK (Correct me I'm wrong :joy: ).
I will leave Error Reporting disabled! (Won't change anything about it).
Everything you mentioned except Diagnostics and Error Reporting were commented out. And no, it isn't "blindly disabled".
Thank you anyways! Next time you can just create a pull request. :joy:
https://github.com/teeotsa/windows-11-debloat/commit/ad7d78731042aff6cfb135f6f94dca589f57aa32


 All the updates are SemVer compatible, and shouldn't cause any problems.

@kueda - another batch update to help quieten Dependabot down. This will get conflicts if you merge any Dependabot PRs before merging it, so please merge it first!


Add a manifest file for Sprockets 3

I have no idea if this is correct.

Potential fix for #213

@snecklifter Thanks for the effort here, but see #215 for the necessary fix. The manifest.js needed to be added to the dummy app under the tests.


Missing channel dimension for input?

In your example you have torch.randn(1, 224 * 224), and the code assumes this 2d input. Isn't this lacking the C of MxC : NxD cross attention?

@sooheon  Hmm, that wasn't too clear to me in the paper
I'm going to assume they just fourier encoded each channel separately and then concat them in the last dimension, for now https://github.com/lucidrains/perceiver-pytorch/commit/6ae733773d29cb29383f3ac7b45af8cb6bd2c0dc


Build error on latest flutter version

Error (Xcode): ../../../.pub-cache/hosted/pub.dev/dynamic_fonts-2.0.0/lib/src/google_fonts_base.dart:15:1: Error: 'AssetManifest' is imported from both 'package:dynamic_fonts/src/asset_manifest.dart' and 'package:flutter/src/services/asset_manifest.dart'.

Any ideas how to solve it?

AssetManifest exists after flutter 3.10, so could rename AssetManifest in this repo as a workaround
I made it in https://github.com/wukgdu/dynamic-fonts-flutter

This is addressed in v2.2.0


Avg Response Time for Successful Requests

Is your feature request related to a problem? Please describe.
I'm testing a service that has a large number of failed requests due to as-designed load shedding.  I'm wondering if there is a way to see the avg response time for just the successful requests.  Maybe this is already in the report and I'm just not reading it correctly.  Here is what one of my reports looks like:

Describe the solution you'd like
Something that shows the avg response time for successful requests

Hello, the actual stats for fastest, slowest, average, histogram, and latency distributions only take into account the responses with OK status. So the erroneous / failed responses are collected and counted towards the total, RPS, and calculating the percentages of various statuses, but the stats are only based on successful / OK responses.
I agree the histogram labels do not appear 100 % correct, as the labels should add up to the OK status count. I have confirmed this works with a simple hello world app by introducing randomized errors in response, and the HTML report was correct. What version are you using? Hmm can you somehow provide a reproducible example?


Not working with "browser" nor "browserify-shim" configs

I want to replace a default material-ui's react dependencty to a prebuild by facebook version of minified react.
I have following error:
Uncaught TypeError: Cannot read property 'component' of undefined in function in a Paper class:
getStyles: function getStyles() {
    var styles = {
      root: {
        backgroundColor: this.context.muiTheme.component.paper.backgroundColor,
        transition: this.props.transitionEnabled && Transitions.easeOut(),
        boxSizing: 'border-box',
        fontFamily: this.context.muiTheme.contentFontFamily,
        WebkitTapHighlightColor: 'rgba(0,0,0,0)',
        boxShadow: this._getZDepthShadows(this.props.zDepth),
        borderRadius: this.props.circle ? '50%' : this.props.rounded ? '2px' : '0px'
      }
    };
    return styles;
  },

this.context.muiTheme variable inside this function is undefined.
It breaks only when i'm trying to use different react build.
I use browserify as module bundler and at first i was try a following config in package.json:
  "browser": {
    "react": "./node_modules/react/dist/react.min.js"
  }

I'm also trying to use browserify-shim without success.

I've used this lib with browserify and browserify-shim. It sounds like you have two versions of react in the browser. Maybe check your bundle?
In my root's package.json, I had:
"browserify-shim": {
  "react": "global:React",
  "react/addons": "global:React",
}

Also, since material-ui will be in node_modules, you'll need to specify browserify-shim as a global transform:
b.transform(browserifyShim, {global: true});

I have edit my config as following:
"browserify-shim": {
    "react": "global:React",
    "react/addons": "global:React"
  },
  "browserify": {
    "transform": [
      ["babelify", {"stage": 0}],
      "reactify",
      ["browserify-shim", {"global": true}]
    ]
  }

And this is not working: i'm have entire react bundled with my app.

You should use ReactWithAddon.js in your browser.
{"global": true} for shim only works with programming API. (github.com/thlorenz/browserify-shim/issues/191)

@YChebotaev were you able to get this to work? Trying to see if I can close this issue.

react is now a peer dependency.


bug:  Communication Failed

Please check existing knowledge before opening an issue

[X] I have checked the FAQ and documentation
[X] I have searched through existing issues and discussions.

Describe the Bug
If there are problems connecting to jf and Maloja, the Communication Failed error appears.
Platform
Docker
Versions
MS 0.8.6
Logs
No response
Additional Context
Maloja had a restart button. JF does not have such a button. To make everything work, you need to restart the container. Is it possible to make sure that if the connection to MS applications fails, I periodically try to connect myself.

Errors occurred when restarting the PC when MS started earlier than Maloja and jf.

#221 implements/allows "full restart" of any client/source, regardless of what state it is currently in. There will always be a start/restart button next to a client/source now.
Try this out in docker image foxxmd/multi-scrobbler:pr-221.
Please let me know if you run across a scenario where the buttons are not available.


02-load-data-with-power-query-in-power-bi-desktop.md

English:
Space
Current Translation:
공간
Suggested Translation:
공백

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

fixed.


Question: does this rely on jquery?

Yes, please read the source code before asking this kind of questions.
https://github.com/itsjavi/fontawesome-iconpicker/blob/master/bower.json

How about you put it on your readme.


Idea; replace logging with an system event actor

We'ce had this discussion, which was quite interesting.
Logging is a bit ugly. But having debug messages, system events and failures accessible somewhere is important for production use.
So, we should think about ripping out the logging and replacing it with a system event actor. This could look roughly like this:
We define a type SystemEvent, similar to a DeadletterEvent{}. It shoud have the following fields

source (string?)
message (string)
severity (debug, info, warning, error)
key/value set for arbitrary fields (are there performance implications here? - perhaps it should be a slice, like slog uses that will avoid the overhead of creating a map

Now, when something happens, where we currently log something, a SystemEvent message is sent to the actor. Out of the box Hollywood can ship with a simple actor which just logs these messages to stdout.
System events we want to handle:

actor started or stopped
remote started or stopped
cluster activation event
cluster deactivation event
cluster member join
cluster member leave

Now, if a user wants to handle these messages in a custom way the user can just supply an actor and do whatever they please with it.

@perbu I'm going to cook up a complete refactor of the event stream. Will do that first in favor of the cluster package, cause its very depending on that.

@perbu New event stream is merged into master. The stage is yours.

@perbu I would also suggest to completely remove the log package and just (where we want) use slog.

@perbu we can close this right?


Azure AD Domain Services - does it include SSPR?

If I use "Azure AD Domain Services" (not an on-premise directory) what license do users need for "reset with on-prem writeback"?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 650b028a-16b9-f560-a2aa-8613d85ffce6
Version Independent ID: 0e2c2f6b-65bd-4dc8-1a45-956d20bf8a9b
Content: License self-service password reset - Azure Active Directory
Content Source: articles/active-directory/authentication/concept-sspr-licensing.md
Service: active-directory
Sub-service: authentication
GitHub Login: @MicrosoftGuyJFlo
Microsoft Alias: joflore

@rwkt
Thanks for your feedback! We will investigate and update as appropriate.

But there are no license requirements for the sync from Azure AD to AAD-DS. It works for all Azure AD editions (free, basic & premium).

There are no license requirements for the sync from Azure AD to AAD-DS. It works for all Azure AD editions (free, basic & premium).
But for on-premises writeback you need at least a Premium P1 license.
Hope this helps!


How to handle PDF Stream at fillForm method

In README we have an example of fillForm method:
pdfFiller.fillForm( sourcePDF, destinationPDF, data, function(err) {
    if (err) throw err;
    console.log("In callback (we're done).");
});

I have a question, can we have a way to handle the filled form PDF before saving it to destinationPDF path??
In my project, can I send a filled PDF to my client through REST API.
Here is my code..
pdfFiller.fillForm('http://res.cloudinary.com/xx/form1.pdf', destPDF, data, (err, result) => {
                        if (err) throw err;
                        console.log("In callback (we're done).");
                        //how to send a filled PDF to my client??
                    });

Any help would be appreciated, tks so much!

I needed this as well (for a microservice where I don't want to generate a lot of temporary files) but then realized it's just not the design of this library at the moment, since it invokes pdftk with execFile and then waits for its completion.
So I forked the project and set it up to return a stream within a promise: https://github.com/jasonphillips/pdffiller-stream
Streams can be served to the client in Express (though I forget the exact syntax) so from here it should be straightforward for you to implement your response if you search those docs.
I haven't PR-ed any of that fork's work here since it feels like a slightly different goal, but am certainly open to doing so.

Tks @jasonphillips

@jasonphilips if you added streaming as an option In sure we would be open to adding it to the project

Could you make an example how to do this with express ?
i'm a bit stuck here:
export function fillForm(req, res) {
...

return pdfFiller.fillFormWithFlatten(sourcePDF, data, shouldFlatten)
.then(outputStream => {
      res.header('Content-disposition', 'inline; filename=' + 'sdfsdf.pdf');
      res.header('Content-type', 'application/pdf');
      console.log('done');

      const streamRes = outputStream.pipe(res);
      return streamRes.end();
    });
}`


Fix Typo

The params are being changed in 1.0.1 with support to data in non-string support :)

The params are being changed in 1.0.1 with support to data in non-string support :)


Suggested additions to verbose logging

Issue description
It would be great if we could get folder paths being used when running the --verbose as this would help see if any config changes made to the settings.config are being read correctly.
It may be good to also add extra info see below. It would just make debugging so much easier.
Example
[INFO] A simple Windows ACMEv2 client (WACS)
[INFO] Software version 200.0.6965.40688 (RELEASE)
[INFO] IIS version 8.5
[INFO] Please report issues at https://github.com/PKISharp/win-acme
[VERB] Verbose mode logging enabled
[INFO] ConfigurationPath being used is C:\ProgramData\win-acme\acme-v02.api.letsencrypt.org
[INFO] CertificatePath being used is C:\ProgramData\win-acme\acme-v02.api.letsencrypt.org\Certificates
[INFO] RenewalDays being used are 55
[INFO] RSAKeyBits being used is 3072

There have been some changes already which haven't been released yet in the current build, so that the configuration path and custom settings are printed again verbose mode, as they used to be in 1.9.x. I've just made some more little changes so that the certificate path is also checked and printed at start up, mainly because it's also a failure risk when we only found out after authorization that the path is actually inaccessible or wrong.

So thanks for the feedback, and looking forwards to your findings on the final 2.0 release!


Make pandas optional

Resolves #306
Not sure if this is the best way to notify the user about not having pandas installed when using the df package, one suggestion was to use a system like:
https://github.com/habnabit/passacre/blob/master/passacre/features.py
https://github.com/habnabit/passacre/blob/master/passacre/config.py#L103
which is pretty cool but I didn't know about adding their license in with this project and making so many modifications.

Also gotta update the tests!

Actually, that's my fault.

yeah my bad I didn't realize 3.3 support was there

pretty close to EOL for 3.3 https://www.python.org/dev/peps/pep-0398/#x-end-of-life

ugh, i'll push a release now

v0.12.1 released!


Installing forwarders

Can you add a section to install forwarder WADs on a Wii, possibly using removed ? Please note that removed contains various untested WADs, and possibly dangerous, outdated WADs. https://www.gamebrew.org/wiki/Forwarder_Collection_Wii is another source for these.

I don't agree with this being on the guide.
Try the wiki, minus the piracy site: https://wiki.hacks.guide

I was thinking that as well, to not include that cube site because clicking
the up directory leads to lots of pirated stuff, along with free stuff.
On Fri, Mar 22, 2024 at 10:04 PM lifehackerhansol @.***>
wrote:

I don't agree with this being on the guide.
Try the wiki, minus the piracy site: https://wiki.hacks.guide
—
Reply to this email directly, view it on GitHub
https://github.com/hacks-guide/Guide_Wii/issues/78#issuecomment-2016351270,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKNKRXCWCQY557D4HGV3CKDYZUENPAVCNFSM6AAAAABFELEK2GVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJWGM2TCMRXGA
.
You are receiving this because you authored the thread.Message ID:
@.***>


added cache control to public css and js

I'm not scala programmer but looking at this
https://github.com/twitter/finagle/blob/bf4b0ea8b4bb34f4cb98fa6da06723bc58635487/finagle-http/src/test/scala/com/twitter/finagle/http/MessageTest.scala
I think it should work.
The UI is slow. Looking at the cause it is because we have lots of css and js and they are sent everytime.
@adriancole  please run tests xD

yep looks quite sensible.


My feature

From the provided GitHub PR diff, we can see that following files have been modified:

src/core/MusicPlayerCore/index.ts - Modified
src/core/VueMiniPlayerCore/index.ts - Modified
src/core/VueMiniPlayerCore/index_2.ts - Added
src/core/VueMiniPlayerCore/new-index.ts - Added

For the compliance with the coding standards, I will check whether the changes in the PR follow the provided coding standards including naming conventions, code formatting, and comments.

src/core/MusicPlayerCore/index.ts

Naming conventions have been violated. P has been used instead of p which follows camelCase.
Extra empty lines added which can be unnecessary or for formatting.
'===' has been used where '=' was used before which might cause changes in logic.
'Prev-Song' has been used instead of 'PrevSong' which violates naming conventions.

src/core/VueMiniPlayerCore/index.ts

Several variable names were changed in a manner that does not provide additional clarity, and thus would be against the coding standards. From WrapperID to a, and from app to b, and from 'i' to 'j'.
Some names violate the naming convention. For example 'Wrapper-ID' is not valid in JavaScript naming conventions.

src/core/VueMiniPlayerCore/index_2.ts

It's a newly added file. But there are several issues related to the naming convention like using variable name as 'a' and 'b'.
There are some strangely named objects like 'SONGinfoLIST'.

src/core/VueMiniPlayerCore/new-index.ts

This file is the same as src/core/VueMiniPlayerCore/index_2.ts. Same issues are there.

I would recommend addressing these issues and ensuring all parts of the standard are met, including commenting and documentation, consistent indentation, and suitable line lengths.


Allow underscores in DNS names from DHCP leases

Currently DHCP leases with DNS names including underscores cause a warning "dhcpd leases: XXX_XXX not a valid hostname, ignoring"
While these may not be true internet-valid hostnames according to IETF, many valid DNS names include underscores (e.g. _acme-challenge for ACME/letsencrypt validation, microsoft active directory names, SRV records, and manufacturer-default IP camera names, though I'm sure there are others).
Blindly denying underscores for DNS records is likely to cause unforeseen issues, and I don't believe it's in our best interest to police names to that degree.

The current constraints might be a bit stricter then needed (introduced in https://github.com/opnsense/core/commit/02aae56f05f313e7a5bc59d1e2551864dbea9a12 due to https://github.com/opnsense/core/issues/6614), but someone does need to validate if allowing those will not lead to similar issues as those we started with.
Strictly speaking rfc1123 does not allow underscores in hostnames if I'm not mistaken (https://datatracker.ietf.org/doc/html/rfc1123), so if the applications underneath (unbound/dnsmasq) are strict, they might lead to issues, in which case we should not try to feed those.

Per RFC 2181 section 11: https://www.rfc-editor.org/rfc/rfc2181#section-11

Occasionally it is assumed that the Domain Name System serves only
the purpose of mapping Internet host names to data, and mapping
Internet addresses to host names.  This is not correct, the DNS is a
general (if somewhat limited) hierarchical database, and can store
almost any kind of data, for almost any purpose.

The DNS itself places only one restriction on the particular labels
that can be used to identify resource records.  That one restriction
relates to the length of the label and the full name.

In other words, if built to the RFCs, DNS itself doesn't care if a DNS record has underscores or whether it's a valid "hostname" per se - just that it isn't too long. I have tested unbound and dnsmasq and they happily serve records with underscores but I'll update this PR to include the same change to dnsmasq's sync script.

@bugfixin thanks for testing and updating both. The restriction is there for good reasons, but that certainly doesn't mean we should not allow underscores if both applications do not mind. We'll take it under consideration.

Thank you - while per RFC 1123 extensibility section, DNS should allow any label containing up to 63 8-bit octets without care for validity, I agree that it makes sense to prevent certain characters that could cause problems.
I guess my host named 💩 will have to wait.

@bugfixin discussed internally, we'll merge this one. Thanks!


refactor(start_planner): separate debug and info marker for rviz visualization

Description
Originally, all the start_planner specific information is visualized with the same topic of /planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner/debug/start_planner.
It becomes cluttered because everything is visualized by just enabling one checkbox as shown in the folloing screenshot.

After categorizing in this PR,
info marker's are

back_end_pose
start_pose
end_pose
static_collision_check_end_pose
static_collision_check_end_polygon
planner_type
filtered_objects
predicted_path_for_safety_check
ego_and_target_polygon_relation
ego_and_target_polygon_relation_text
ego_and_target_polygon_relation_cube

debug marker's are

refined_start_pose
full_path
backward_driving_path
start_pose_candidates
start_pose_candidates_idx
shift_path_footprint
ego_predicted_path_start_planner
departure_check_lanes_for_shift_pull_out_path
pull_out_lanes_for_static_objects_collision_check
object_debug_info

The basic concepts are as follows:

Info: The purpose of info marker visualization is to visualize information that is helpful in understanding the state and behavior.
Debug: The purpose of debug visualization is to provide developers with information that is useful in analyzing problems.

Tests performed

Not applicable.
Effects on system behavior

Not applicable.
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

wooo!! thanks!!!!


Generate precompile statements

At the moment I have jl_parse_opts(&argc, &argv); in main.c, which lets you run ./main --trace-compile=stderr to get the list of precompile statements required, which I have then manually pasted into precompile.jl.
This is probably not ideal: it requires manual intervention, and it does require main to use julia's argument parsing.

Is it possible to use SnoopCompile?

Hmm, I'm still getting compilation on GitHub Actions:
precompile(Tuple{Type{REPL.Terminals.TTYTerminal}, String, Base.PipeEndpoint, Base.PipeEndpoint, Base.PipeEndpoint})
precompile(Tuple{getfield(Base, Symbol("##s91#155")), Any, Any, Any, Any, Any})
precompile(Tuple{typeof(Base.merge_names), Tuple{Symbol, Symbol, Symbol}, Tuple{}})
precompile(Tuple{typeof(Base.merge_types), Tuple{Symbol, Symbol, Symbol}, Type{NamedTuple{(:tol, :maxiter, :statevars), Tuple{Float64, Int64, IterativeSolvers.CGStateVariables{Float64, Array{Float64, 1}}}}}, Type{NamedTuple{(), Tuple{}}}})
precompile(Tuple{typeof(Main.julia_cg), Ptr{Nothing}, Ptr{Float64}, Ptr{Float64}, UInt64})

Some of these are only on Julia 1.5. I'm not sure what to do about the 2nd one as it has a gensymed name.

@kristofferC?

I think it has something to do with merge_names.

Why not create a script that "seeds" the compilation and let PackageCompiler run it and put it in the precompile statements itself (https://julialang.github.io/PackageCompiler.jl/dev/sysimages/#tracing-1).
What's wrong with the gensymmed name?

We weren't sure if it is ok to include it - as it felt like something internal.

It's in the docustring https://github.com/JuliaLang/PackageCompiler.jl/blob/1e611e47500e74915cd854f621929db03da34871/src/PackageCompiler.jl#L341-L345, and in the manual where I linked. Not sure how I can make it seem more public.

That's pretty good. Of course, if only users actually read the documentation...

What's wrong with the gensymmed name?

I don't know what the guarantees of consistency of gensymed names (e.g. they might not be the same across Julia versions), so we might not be able to save the list of precompiled statements.
I've also noticed that on Julia 1.5 it doesn't appear to precompile functions defined in the script itself, e.g. I have this line:
https://github.com/simonbyrne/libcg/blob/master/lib/precompile.jl#L2
but when I run ./main --trace-compile=stderr, it still appears in the list of statements:
https://github.com/simonbyrne/libcg/runs/1131199583#step:7:10

so we might not be able to save the list of precompiled statements.

No, you would have to do the same as Julia itself which is to regenerate the list when the sysimage is rebuilt. But this is not only a problem with gensymmed functions, between Julia versions many method changes signatures gets removed, new one gets added, etc, so it's always good to re-generate if you want the best accuracy.

I've also noticed that on Julia 1.5 it doesn't appear to precompile functions defined in the script (passed via the script argument) itself, e.g. I have this line:

Main.julia_cg: I am unsure if Main is handled in a special way. I've found it best to always make sure that the stuff you want to precompile is in a package and that it gets included in the sysimage via importing it. This happens automatically if you use something like PackageCompiler.create_sysimage([:CG], ...).

Fixed in #14


usage questsions

When using the batch feature how do you save the 256 upsample?
How do you create 384 or 512px images instead of 256?
How do you make more surrealistic images?

How do you make more surrealistic images?

#5


fix: make command flag not interspersed

Signed-off-by: Allen Sun<EMAIL_ADDRESS>
Ⅰ. Describe what this PR did
We should make all pouch flags only be flags of itself, rather than flags of pouch's subcommands.
For example:
pouch pull --tlscacert /data/cert/ca.crt --tlscert /data/cert/<IP_ADDRESS>.cert  --tlskey /data/cert/<IP_ADDRESS>.key kube-proxy:v1.13.4

is illegal.
Only
pouch --tlscacert /data/cert/ca.crt --tlscert /data/cert/<IP_ADDRESS>.cert  --tlskey /data/cert/<IP_ADDRESS>.key pull kube-proxy:v1.13.4

is legal.
Ⅱ. Does this pull request fix one issue?

This issue is reported from issue https://github.com/alibaba/pouch/issues/2771#issuecomment-476930794
Ⅲ. Why don't you add test cases (unit test/integration test)? (你真的觉得不需要加测试吗？)
added
Ⅳ. Describe how to verify it
none
Ⅴ. Special notes for reviews
none

closing it because it is not active right now. please feel free to reopen it if you still want to work on it.


Add option to support self-signed certificate

Hi,
it would be nice if appr could provide an option to specify a custom keystore / bundle, so that it can be used with registries with self-signed certificates.
I tried to set the environment variable APPR_CA_BUNDLES to a folder with our CA pem file and to the CA file, which should be trusted, itself, e.g.:
export APPR_CA_BUNDLES=/tmp/certs/
# or
export APPR_CA_BUNDLES=/tmp/certs/Root-CA.pem

If i understand the documentation of requests correctly, this should work. But we only got:
Api-version: .. Connection error
Client-version: 0.6.1

I can only guess that the environment variable is not used correctly?

Hi, thanks for report,
can you provide the command line used ?
also could you try the options:
  -k, --insecure        turn off verification of the https certificate
  --cacert [CACERT]     CA certificate to verify peer against (SSL)

-k should skip certs verification, --cacert should have the same effect than setting APPR_CA_BUNDLES

Thanks for the fast response. Actually -k and --cacert work.
I guess part of the problem was I first used version 0.6.1 and the change which added -k and --cacert was after the 0.6.1 release.
I've build the appr binary myself with the current version and now both options work.


add: All three traversal in the binary tree

Describe the algorithm/code
I want to Implement all the three traversal algorithm of the tree.

Inorder Traversal (Left->Node->Right)
Preorder Traversal (Node->Left->Right)
PostOrder Traversal(Left->Right->Node)

Do you want to work on this feature?

[X] I am willing to implement this feature.

Hi @Abhishek0732 !
We already have this implemented in our repo!
Try adding some algorithms or codes which are not currently present in the repo.


Evaluate Next Gateway API Release for Updates to NGF

Spike to evaluate the next release of the Gateway API and to create a list of issues to implement to ensure we have core support for the next version.

TLDR - so far there's nothing critical that we have to implement for the upcoming release.
New to experimental channel:

Gateway infrastructure (core). Only applies to controllers that provision resources.
Gateway listener tls frontend validation (extended)
Session persistence for http and grpc routes (extended)
Backend LB policy (extended)
Named routing rules for all route types
Supported Features. Not new, but breaking changes have been made. We don't currently implement supported features, so this change doesn't affect us.

New to standard:

HTTPRoute timeouts (extended)
Increased the limit on HTTPRoute matches for 8 to 64. Total number of matches across all rules in a route must be less than 128.
When an HTTPBackendRef refers to a Service that has no ready endpoints, implementations should return a 503.
Backend protocol selection (extended)

What might make it to standard:

Gateway infrastructure
Timeouts and duration

What might make it to experimental:

Percentage-based request mirroring
Configurable retries

Conformance tests are passing on main which means we should be good for the release unless anything changes in the next month.
Here's a list of the extended features we do NOT support for the Gateway-HTTP conformance profile:

GatewayHTTPListenerIsolation
GatewayInfrastructurePropagation
GatewayStaticAddresses
HTTPRouteBackendProtocolH2C
HTTPRouteBackendProtocolWebSocket
HTTPRouteBackendRequestHeaderModification
HTTPRouteBackendTimeout
HTTPRouteParentRefPort
HTTPRoutePathRedirect
HTTPRouteRequestMirror
HTTPRouteRequestMultipleMirrors
HTTPRouteRequestTimeout

Recommended changes we should make for the upcoming release:

Test new limits on HTTPRoute matches. We should allow a rule with up to 64 matches.
When an HTTPBackendRef refers to a Service that has no ready endpoints, we should return a 503. Currently, we return a 502.

Created https://github.com/nginxinc/nginx-gateway-fabric/issues/2431 and https://github.com/nginxinc/nginx-gateway-fabric/issues/2430


[BUG] Error displaying wrapped Python functions where wrapper is from another module

Describe the bug
I am using a function wrapper to produce multiple functions from a stub one, and set the produced function with different names and docs. However, the produced functions are not displayed in the page generated from mkdocstrings. If I set show_if_no_docstring, it appears but without any document.
The function wrapper mypartial is as below.
def mypartial(name: str, doc: str, f, *args, **kvs):

    def g(*_args, **_kvs):
        return f(*args, *_args, **kvs, **_kvs)

    g.__name__ = name
    g.__doc__ = doc
    g.__wrapped__ = f  # Whether to set __wrapped__ does not change the result
    return g

xxx = mypartial("xxx", "xxx", lambda x, y: x + y, 1)

Surprisingly to me, this piece of code works. But if I import mypartial from another module (just another file aside), it does not. I am wondering what is the difference whether mypartial is defined in another module.
I noticed there is some discussions in https://github.com/mkdocstrings/mkdocstrings/issues/162. But my case is a little bit different, because my decorated function has a different name and doc from the original one.
To Reproduce
Run the code above, but define mypartial in a separated file.
Expected behavior
Function xxx should be documented
Screenshots
The function xxx just disappears.
System (please complete the following information):

pytkdocs version 0.16.1
Python version: 3.9.2
OS: Linux

Hi, thanks for the report. I think setting __name__, __doc__ and __wrapped__ attributes should be enough, but maybe it's not. Did you try using functions.wraps instead?

functools.wraps does not meet my use case well. The reason is that I am generating multiple functions from one stub function, instead of replacing an original function with a new one, so the generated functions should have different meta data from the original one, but functools.wraps just sets the original function's meta data to the new one.
Besides, I have also tried setting __module__. It does not work either.

I see, thanks. I'll to have to run a debug session to see exactly what's going wrong (I'm on mobile right now, will have time next week).

Hi @roastduck, still interested in getting this fixed? I'll close for now but will gladly reopen if needed :slightly_smiling_face:


donations

Are you accepting donations? I just came across RcloneBrowser and it's great. Are you still actively developing/updating it? I don't see any recent commits.

im having problems with rclone mount , i just wish he would make rclone browser work with latest rclone

rclone 1.43 change a little the output format for logs. This is something the creators of rclone Browser GUI will have to fix as it is not a problem with rclone itself.

that's the comment i got in the rclone forum , not much kinda hard to know what exactly changed


Is Classic Search Still Useful?

Is there a reason to keep using classic search (ie is it faster in some instances), or should we switch everything over to modern?
It would make the GUI less confusing to only have one type of search mode.

modern search requires making the fragment index which is several gigabytes. some users (e.g., me) may value their hard drive space and don't want to make an index for each organism+search type combination

We could have a default option of wiping the index after the run? It seems like a small sacrifice.

pretty sure classic search is faster in most types of searches except open-mass searches. could be wrong though. takes a long time to make the fragment index. I'm just not sure what the benefit is here. a tooltip briefly explaining the difference between classic and modern and some more detailed info on the wiki seems adequate

if we're looking to revamp the GUI I'd advocate for some features hidden behind an "advanced options" button, plus some more guidance for modification selection (GPTMD vs variable, etc). those are the biggest hangups for most users. I don't think we should just remove core functionality

The main question was "is there a situation where classic search is faster than modern search". I'm not really looking to revamp the GUI with this. Talking with Alexey, he said that MSFragger was able to easily handle nonspecific/semispecific searches, which is something we currently struggle with for classic searches. We also have significantly more theoretical peptides with our GPTMD databases, which are noticeably slower searches after adding those mods.

feel free to run some benchmarks. the classic search is intended for standard searches, i.e. searching standard bottom-up data. there are of course cases like nonspecific or open-mass searches when modern search is superior. RAM usage is also a factor in modern search. I'd like to see data for that in classic vs. modern. in modern you can use DB partitions but you need to know what you're doing there, i.e. how many partitions should I use?

Modern search crashed multiple times on me while classic didn't. generally speaking both GPTMD and the search tend to eat up the memory to a stall (128GB system), unless I tell it to conserve memory(in both searches). In this case it doesn't crash but it uses only 30% of available RAM.

Yes


Fixes for multi-circle-membership

Our pilot users in France are members in more than one circle. We have not fully supported / tested this in mvp1 so there are a few minor things coming up to fix:
1. Circle switching
When logging in they should be taken only to their primary circle, but they need a way to switch between circles. I can see a simple way by offering this under the 'user menu' in the top nav bar as an option to switch to any of the other circles they are members of:
Helper Name

Your profile
Switch to CIRCLE2_name
Switch to CIRCLE3_name
Log out

2. Menu item 'Your profile' switches to a different circle
When test user is in circle 4 doing work and then goes to 'Your Profile', the profile is opened but in the context of circle 5 now.
3. Verify admin right per circle
Verify that user who is admin in circle A, but not in circle B does not gain admin rights while working in that circle.
4. Ensure first circle remains primary
When joining another circle, we need to ensure the user always remains in his first circle as primary. Currently when joining another circle, the user seems to get switched to the latest.
5. Selection of primary circle
On the helper profile, we used to have a drop down showing all circles a user was member of. It was labeled 'Primary circle' and determined which circle a user was taken to upon login. We decided to suppress / remove this for mvp1, but users are not requiring a way to set their primary circle. This value should only be changeable for users with more than 1 circle.

@phil-monroe Is this a good an reliable way in your opinion to switch between circles? For now we suppressed the 'Find Circles' item in that user menu, but switching will be important for the French team.

Assigning to @kristysnet to take a look at. This option should only appear for users that are members of more than 1 circle.

Setting to prio 'high' since we encountered the bug where a used gets switched to the second circle as their primary once they join.
@phil-monroe is this what the code does right now or was it a glitch somehow?

@kristysnet - this feature is totally cool! @phillipoertel and I merged it in and tested it, looks spot on. Even works with the Join approval flow we implemented, just as we hoped!
Point 1,2,3 and 5 are totally working. Point 4 needs looking at. And here are a couple of nits so far:

When we have full circle names in the drop down menu, there isn't a lot of space. Is it possible to adjust the width of the drop down menu to avoid line breaks?

When joining a new circle, this circle gets set as the new primary one. We should not do that but stick to the original one. The user can change that later if they desire.
On the user profile, primary circle can be selected in edit, but it is not shown in the view mode.

Well done!!!

This works great now - awesome feature!


[CROSSDATA-76] [MongoDB] Fix queries with LIMIT 0

The same semantic should be applied for all connectors. So, although a limit 0 in MongoDB returns all the rows we should return no rows,

+1, But in the future, look for an implementation that check the query on the real Database

LGTM


Request for Detailed Instructions on Running the Code

Hello Steve,
I hope this message finds you well. I am reaching out to you regarding your GitHub repository, 'owl-vit-object-detection'. I am deeply interested in your project and would like to learn more about it.
However, I am finding some difficulties in running the code and I believe a more detailed guide or instructions would be greatly helpful.
Your work on 'owl-vit-object-detection' is truly impressive and I'm eager to delve deeper into it. I understand that writing such instructions can be time-consuming, but it would be of tremendous help to me and possibly to other users as well.
Thank you in advance for your time and consideration. I look forward to hearing from you.
Best regards,
Van Gao

Hey @vangao , I haven't touched this project for a long time but I do plan to revisit it soon and make some updates which include a readme for how to get started. Please watch the repo so that you can stay updated! It's a busy summer for me so it might be a while.

@vangao Have a look now

Hi Steve,
Just a quick note to say thanks for all your help with the 'owl-vit-object-detection' project. It's made a huge difference and I really appreciate it.


[Feature] Sidebar ribbon button - allow for restoring old behaviour of opening only today note

While more choice is always good forcing users to choose which note to open may break their workflows.
The 2-clicks and hoovering mouse is more  friction than 1-click as it was before.
Proposition
Add toggle in Periodic notes setting that will decide about Ribbon button action

If the user want to open today daily note  or want the new menu with an option to choose

An example of how this might be implemented in settings is a Devonlink plugin
https://github.com/ryanjamurphy/DEVONlink-obsidian

Alternatives:
User will use  Obsidian default today note plugin to open today note
Possible problems with this approach:

it will duplicate the setup of today note
Icons for both plugins are the same

Obsidian 0.11.9
Plugin Verison 0.0.13

Hi @danieltomasz, you raised a great point. I gave this some thought and came up with a compromise. The new behavior is that clicking the icon will open the daily note (matching the old behavior). However, I also added a right-click menu to the ribbon icon for opening weekly and monthly notes. This avoids introducing a new configuration option, exposes all the same functionality, and keeps the UI lightweight. (The downside right now is feature discovery, which I plan to improve)
I am still debating if the modal is necessary or if this covers all use cases.

Nice idea! About discoverability concerns, would one time info screen would help (it will display something only when user first time click button)

I was thinking of just adding something similar to the Photoshop toolbar - a small triangle to indicate that there's more options within.

But a one-time tooltip could work!

I also added a right-click menu to the ribbon icon for opening weekly and monthly notes.

How do I reach weekly and monthly on mobile?


Debian as host OS rather than Ubuntu

As discussed - it would be advisable to use Debian as the host OS rather than Ubuntu

I was very surprised that you closed that.....

I was staring at it hoping that it would resolve itself, then I saw it hadn't and Ubuntu gave me the shivers which triggered a chain reaction where my hand hit the close button.

Like they do with legitimate issues of stability? Must have been what happened with USB keyboard drivers

How dare you!, Ubuntu has a flawless reputation of quality packaging, they'd certainly never break critical features of the operating system during upgrades, ever... right? :hankey:

Psh nobody was using USB anyway

I really want CentOS 5 being the target.  2.6.18 is awesome.

Great idea! 2.6 +480 patches make it total Docker safe

I hear CentOS is all the rage with 'enterprise' these days... :postbox:

Is that an money box with silver cents being put into it or are you just happy to see stable kernels?


distance_to_object.ipynb code reads different frames while running different times despite keeping the same range value while pipe.wait_for_frames()?

Required Info

Camera Model
{D435 }

Firmware Version
(Open RealSense Viewer --><IP_ADDRESS>3)

Operating System & Version
{Win (10)

Platform
PC

SDK Version
{ legacy / 2.40.0 }

Language
{python}

Segment
others }

Issue Description
I am using this demo code distance_to_object.ipynb (https://github.com/IntelRealSense/librealsense/blob/jupyter/notebooks/distance_to_object.ipynb)  and running it into my own .bag file that I capture using Intel realsense D435. The issue I am facing is that I get a different frame every time I run it.  Below is the sample line of code and I am using 810 in range value to wait for the 810th frame to capture and save in color_frame and depth frame.
# Skip 5 first frames to give the Auto-Exposure time to adjust
for x in range(810):
    pipe.wait_for_frames()
# Store next frameset for later processing:
frameset = pipe.wait_for_frames()
color_frame = frameset.get_color_frame()
depth_frame = frameset.get_depth_frame()
# Cleanup:
pipe.stop()
print("Frames Captured")
But it seems that everytime I run the code I am getting different frames in color_frame and depth_frame despite have same range value 810. Can anyone help me how to get same frame everytime I run it?

Hi @nirojshrestha019   A RealSense Python user who was also skipping frames in a bag took the approach of inserting a playback.pause() instruction between pipe.wait_for_frames and the color / depth capture instructions.
https://github.com/IntelRealSense/librealsense/issues/7932

Hi @nirojshrestha019  Do you require further assistance with this case, please?   Thanks!

Case closed due to no further comments received.

Sorry for the late response. Thank you for your help. It worked.

No problem at all - it's great to hear that you succeeded.  Thanks very much for the update!


Remove references to gym-ignition-models

The dependency was dropped upstream in https://github.com/ami-iit/adam/pull/44, so I think we can also remove the reference here.
xref: https://github.com/robotology/gym-ignition-models/issues/36

Checklist

[x] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.


Configurable Helm chart TLS secret name

Our TLS secret is used by different tools and it would help us to have the possibility to configure the secret used by the ingress.

Is there anything I can do to get this merged?

It would really help us with integration if we could configure the Chart to use existing Let's Encrypt certificates. Is there a reason why there is no response here?

@madddi Thank you for the contribution, sorry for the (really long) delay

https://github.com/rancher/rancher/issues/33225


Issues with resource on latest build[core]

It seems in the latest build the style attribute names are changed by adding res_their_int_id_value as a prefix. For reference, I'm attaching the photo here.

@redmi111 Can you please elaborate a bit more why this is a problem? According to #1043 the names used before are invalid.

Yeah, you're right it should not be a problem.

For resource names started with $ (ie. $avd_hide_password which exist on most apk inside res\drawable-v21) we can safely just removing the $ prefix instead of using the fallback res_xxxx names.


Address AOT Trim warning in JsonPath

I was trying out JsonPath in an AOT project and hit a trim warning during publish:
src\JsonPath\FunctionRepository.cs(94,17,94,85): warning IL2075: 'this' argument does not satisfy 'DynamicallyAccessedMemberTypes.PublicMethods' in call to 'System.Type.GetMethods(BindingFlags)'. The return value of method 'System.Object.GetType()' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to.

That was caught by the NAOT trimmer that wasn't seen by the static analyzer for .NET 8. Luckily, this static analysis bug is fixed in .NET 9, so I tried out .NET 9 in the csproj and the warning shows up.
I rewrote the code slightly to help carry the annotation along and the warning goes away.

Sorry, this was incomplete. Flipping to draft while I sort it out.

Thanks for this. I'll look at it when I can.
Is there a way to test this besides adding a new framework?
Also, I recently added a PR template. Did it not come up for you?

Is there a way to test this besides adding a new framework?

It shows up if you make an app that's <PublishAot> and then you publish. We had been avoiding doing that since the goal with .NET's static analysis is that all the warnings should show up when compiling the library as IsAotCompatible. And the fact that this warning didn't show up was just a bug, so I'm inclined to leave it and just add net9 as a target framework when it's stable.

Also, I recently added a PR template. Did it not come up for you?

Oops, I deleted too much of it. Fixed up the PR description.

Thanks.  I'll update version and release notes on a new branch, then push it out.

Thanks!


Error: java.lang.UnsatisfiedLinkError. Library not loaded

Im trying to execute my code, but it calls error : "Caused by: java.lang.UnsatisfiedLinkError" with text "Library not loaded<EMAIL_ADDRESS>Im also tried create link by command : "ln -sf /opt/homebrew/opt/openssl@3 /usr/local/opt/"
and it created link in /usr/local/opt. Also i checked the file which was in log<EMAIL_ADDRESS>and it exist. I guess its connected with openssl, how can i solve this problem?
my equipment: Mac m1
P.S the same code i executed on windows and it work

What is output of which java and java --version?

java -version:
openjdk version "1.8.0_312"
OpenJDK Runtime Environment Corretto-8.312.07.1 (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM Corretto-8.312.07.1 (build 25.312-b07, mixed mode)
which java:
/usr/bin/java

I changed version. Now i getting another error :
Caused by: it.tdlight.common.utils.CantLoadLibrary: Native libraries for platform OSX-AARCH64 not found! Required version: tdlight osx aarch64 4.0.219
my gradle dependences:

dependencies {
implementation platform('it.tdlight:tdlight-java-bom:<IP_ADDRESS>')
implementation 'it.tdlight:tdlight-java'
implementation 'it.tdlight:tdlight-natives-osx-amd64'
}

"-amd64" library is definitely not suitable for aarch64 Java.

is there any plan in future to add support for osx-aarch64?

TDLib supports aarch64. You are trying to use prebuilt tdlight package, which is unrelated to TDLib.

Thanks for your answers


auto insert css into head tag

Should this functionality be opt-in? I'm thinking that, especially if you tell the plugin to output compiled CSS to a file, you wouldn't want to include the CSS in your JS bundle and insert it into the head? (I might be wrong, I haven't actually used this plugin yet! 😄 )

@xiaofuzi Thanks for this functionality.This is the first PR for my own project.😄

@adamdicarlo The PR was merged.I will change semicolons and spaces to adapt to this project.

@adamdicarlo Meged! I will add semicolons and change the spacing to match the project.

nice.

在 2016年8月30日，11:58，管斌瑞<EMAIL_ADDRESS>写道：
@adamdicarlo https://github.com/adamdicarlo Meged! I will add semicolons and change the spacing to match the project.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/differui/rollup-plugin-sass/pull/1#issuecomment-243326556, or mute the thread https://github.com/notifications/unsubscribe-auth/AD-oiWVtVuklK2wGlkVd7ezREoersHSvks5qk6p4gaJpZM4JlZuO.

<EMAIL_ADDRESS>


[Feature] Expose public mapping names, keys, and values

🚀 Feature

Mapping names, keys, and values should be output in the block data, or an api endpoint that retrieves all mappings' update data based on a given block height.
Motivation
As an Aleo developer, I would like to know the history of my program’s mapping key-value pairs. This will allow me to show users of my programs their history, usage, and current public data.
Currently, in order to figure out the history of a given mapping key-value pair, finalize functions have to be re-executed with the public inputs information obtained in the block data. For transactions with a finalize component within Aleo block data, the known data are:

Program name
Function name
(Encrypted) inputs
(Encrypted) outputs
Finalize component inputs

Separately, for a given transaction but not a given transition, these finalize data are known:

mapping function type (e.g. update_key_value)
Mapping id (field)
Index
key_id (field)
value_id (field)

With all these data, and given that a program’s instructions are known, in order to find the value of a mapping at any given block (up to the current block), the functions has to be executed and mapping value updated every time a given program function is called. Note that the index must be used if there are multiple mappings updated in a given transition.
If the finalize data additionally included the mapping name, the key literal value, the value literal value, then we could construct a history of a mapping’s usage and updates. Alternatively, if the Aleo api exposed an endpoint to retrieve a mapping's entire history could also provide this information. The endpoint should take in a program id, because the mapping id may not necessarily be known as the mapping could have been removed.
See below for current finalize data:
"finalize": [
              {
                  "type": "update_key_value",
                  "mapping_id": "1983797953180567811979143201159699323489553565864862741629395500585975099993field",
                  "index": 0,
                  "key_id": "6734840842853071513047894160775850205244595944922363331996471212787090015555field",
                  "value_id": "8071618983338753384953810423877238125756048099417006199822619927987465059053field"
              }
          ]

And example data for a transition with a finalize component:
"id": "some_id",
                          "program": "finalize_example.aleo",
                          "function": "sample",
                          "inputs": [
                              {
                                  "type": "private",
                                  "id": "4field",
                                  "value": "ciphertext1e8kyf7zy0mely0"
                              },
                              {
                                  "type": "private",
                                  "id": "2390458754field",
                                  "value": "ciphertext1018924359875"
                              }
                          ],
                          "outputs": [],
                          "finalize": [
                              "293837field",
                              "5u8"
                          ]

Implementation

When the mapping id, key id, and value id are output to the block data, the mapping name, key literal value, and value literal value should also be output to the block data. Alternatively, an endpoint to retrieve all history of a program's mappings could be exposed.

Adding key, value, and mapping_name can be done, however there is a big state-space consideration. Doing so will greatly bloat the chain (especially as the stored objects/structs get larger and more complex).
In our case, it shouldn't be up to the ledger to bear the burden of tracking the history of each application, especially if it can be reconstructed via re-execution. If developers would like to track their history, they can simply iterate through the Ledger transactions relevant to their program, execute the finalize portions and store it independently.
Other chains also do not have this "lookback" ability without having to perform re-execution or special tracking outside of the chain itself.
For now, we have endpoints for people to query the current state of mapping data via https://github.com/AleoHQ/snarkOS/pull/2461, however I'm not sure how much value there is tracking program mapping history on-chain.
Closing this issue now, but feel free to reopen if there's a compelling angle I'm not seeing.


Don't allow negative "nth" specifications in "nth" ranges

Does allowing this make any sense? If it does it should definitely throw an exception in strict mode.

I can't think of any real case where this made sense, i.e. I can't think of an opening hours sign that could be written that way...

"We are open each month until and including the 30th but only every 2nd day"

If negative "nth" actually appear in the wild, I think the chance is higher that it is a typo rather than what the contributor meant.
However, a less ludicrous opening hours sign may say

"open on odd dates, i.e. every 1st, 3rd etc of each month"

If I understood the specification correctly, writing Jan-Dec 1-31/2 is not valid because month ranges are not supported at that spot. But maybe this is something that may be worth supporting in non-strict mode if it isn't yet, I don't have numbers how often this appears in the wild but there are street signs that are valid every second day of each month, see
https://wiki.openstreetmap.org/wiki/Proposed_features/Parking_lane_conditionals#Other_signage

However, a less ludicrous opening hours sign may say

"open on odd dates, i.e. every 1st, 3rd etc of each month"

If I understood the specification correctly, writing Jan-Dec 1-31/2 is not valid because month ranges are not supported at that spot. But maybe this is something that may be worth supporting in non-strict mode if it isn't yet, I don't have numbers how often this appears in the wild but there are street signs that are valid every second day of each month, see https://wiki.openstreetmap.org/wiki/Proposed_features/Parking_lane_conditionals#Other_signage

There are two issues: on the one hand there are no month day ranges that are separate from dates. What is supported is only Jan 1-31 which simply is short hand for Jan 1 - Jan 31, so support would require month day ranges as an independent construct. Not sure if that wouldn't create even more ambiguity in parsing (for example with that shorthand). The 2nd minor issue is adding an interval specification, that is unlikely to be problematic on it's own.

I don't see how Jan-Dec 1-31/2 would be ambiguous. Maybe in that there is no 31st of February? But anyway, I'll create a new issue for this to no longer hijack this issue about support for negative nth ranges.


Add optional port for resolvenames via JSON

Allow configuration for non-standard HTTP port (e.g. when running CCU2 virtually on the same machine via docker image, and port cannot be 80).

PR for Home Assistant:
https://github.com/home-assistant/home-assistant/pull/15029


Collect metal3 pods data if ACM hub uses BMC to create/scale clusters using ACM

Metal3 pods logs is required to investigate issues related to Cluster installations that are being made using BMC
Related Issue:  stolostron/backlog#<ISSUE_NUMBER> NA
Description of Changes:
The metal3 pods logs are captured if there's at least one BaremetalHost CR. The BaremetalHosts CR are usually created when you opt to create/scale clusters using BMC
What resource is being added:  | N/A
We are running an inspect against the openshift-machine-api that has the metal3 operator pods
Is this a Hub or Managed cluster change?:
This needs to be captured from the ACM hub
Notes:

/retry

/test all

@eemurphy Can you please have a look at this too?

I pushed back the PR with git commit -s as suggested by @jlpadilla . But I can still see the dco error. Either I have not re-ran the checks properly or there's some other issue. I can create a new PR from scratch if required


Update mongodb exampleto model mapped

As per this article, http://stackoverflow.com/questions/5794834/how-to-access-a-preexisting-collection-with-mongoose, in order for the client or users towork, they must already exist in mongodb, adding the name to model maps them.

I'm still not sure if Mongoose needs this - I'm closing due to age but please do reopen if we can get an example of this not working, thanks


[5.3] Add support for Collection's contains to look in single-dimension arrays for a key/value pair

This is a shortcut for something like the following:
$key = 'key';
$value = 'value';
$collection->contains(function ($v, $k) use ($key, $value) {
    return ($k === $key) && ($v == $value);
});

Instead you can do:
$collection->contains('key', 'value');

Also applies to containsStrict.

@mikemand I think you should take a secound view on this because you broke some tests.

@morloderex Thank you, I didn't notice it fail on my dev environment. I will take a look.

I would suggest just using ->where and then count.

Ok, thank you Taylor.


Standalone Editor CORS error in opencast 11.4

Describe the issue
In opencast 11.4 the standalone Editor cannot load the waveform due to a CORS error:
XMLHttpRequest blocked by CORS policy as no header is present on the requested ressource.
Browser - console output:
Access to XMLHttpRequest at 'https://<presentation-node>/static/mh_default_org/internal/69f554e6-98ad-4e60-ad3b-ff8cdc00a887/7d9e16a2-114a-4bf9-86fc-cc506236659b/composite.mp4' from origin 'https://<admin-node>' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
composite.mp4:1          Failed to load resource: net::ERR_FAILED
composite.mp4:1          Failed to load resource: the server responded with a status of 403 (Forbidden)
composite.mp4:1          Failed to load resource: the server responded with a status of 403 (Forbidden)
/admin-ng/index.html;jsessionid=node0ubq5wme8kduk148dsxtqqovuu2517.node0:1          Failed to load resource: net::ERR_TOO_MANY_REDIRECTS

To Reproduce
Steps to reproduce the behavior:

open Admin UI
use "open video editor" button on any video
waveform gets the "wheel of death"
open browser console for errors

Environment Information

Cluster: 1 admin vm, 1 worker vm, 1 presentation vm
OS: CentOS 7 (Red Hat 4.8.5-39)
MariaDB Ver 10.7.3
Shibboleth Auth
Apache httpd
Browser: Chrome, Firefox, Edge
Opencast 11.4

Our Fix:
Add a line to the apache ssl file /etc/httpd/conf.d/<presentation-node-url>.ssl.conf:
Header add Access-Controll-Allow-Origin <admin – server – node – adress>

CORS missing allow origin

Is the .4 version cursed? I can see this issue in 12.4 now, too although I am sure, I didn't experience that in 12.3 where we ran the editor without any -UI-configuration. Wondering if something changed in the editor or if the added configuration did that.

The waveform is not an issue because it's fetched as an img src.

BTW, we are redirecting requests coming from the editors to the internal publication channel to the presentation node back to the admin node because a user might not be authenticated at the presentation server. I wonder if we misconfigured something.
# preview videos should be served by admin
# where user is authenticated when editing videos
location /static/mh_default_org/internal {
    return 302 $admin_url$request_uri;
}

CORS headers can be added by the proxy, thus my comment. If media delivery is cookie protected, then yes, but this is another issue.

We have enabled cookie based file delivery protection (aka. securing static files). Would you like me to file a separate issue against the editor?

Sorry, I missed this issue when filing the pull request against the editor.
I'll try to get a new version of the editor in soonish.
In the meantime, if you run into this issue, you can fix this in Opencast with a little bit of Nginx magic on the admin node:
    location ~ /editor/.*/edit.json {

      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Forwarded-SSL "on";

      proxy_pass http://<IP_ADDRESS>:8080;

      # additional CORS and proxy settings here

      sub_filter_once off;
      sub_filter_types application/json;
      sub_filter 'presentation.your-opencast.org' 'admin.your-opencast.org';
    }

This will filter the response from Opencast to the video editor and replace the presentation links with admin links


Runner Configuration

Provide a way to configure runners. First use case: --liberal flag for pronto-flay.

https://github.com/mmozuras/pronto/pull/104


Shared Preferences Web bug with localStorage not accessible

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

Create flutter web application, using Easy_Localization, where in init it initializes and tries to save stuff in shared preferences
Push that web application to any hosting (for example github pages)
Create simple html/css page with iFrame in it, and set iframe content to your web application.
Open that simple html/css page in anonymous tab in Google Chrome

Expected results
App loads as in not anonymous mode.
Actual results
App doesn't load, Unhandled exception :  Failed to read the 'localStorage' property from 'Window': Access is denied for this document
Code sample
No sample
Screenshots or Video
No response
Logs
No response
Flutter Doctor output
Doctor output
[√] Flutter (Channel stable, 3.10.5, on Microsoft Windows [Version 10.0.19044.3086], locale uk-UA)
    • Flutter version 3.10.5 on channel stable at C:\Users\Arthur\fvm\versions\3.10.5
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 796c8ef792 (3 weeks ago), 2023-06-13 15:51:02 -0700
    • Engine revision 45f6e00911
    • Dart version 3.0.5
    • DevTools version 2.23.1

[√] Windows Version (Installed version of Windows is version 10 or higher)

[√] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at C:\Users\Arthur\AppData\Local\Android\sdk
    • Platform android-33, build-tools 33.0.0
    • Java binary at: C:\Program Files\Java\jdk-17\bin\java
    • Java version Java(TM) SE Runtime Environment (build 17.0.7+8-LTS-224)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.3.4)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.3.32901.215
    • Windows 10 SDK version 10.0.19041.0

[!] Android Studio (version 2023.1)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    X Unable to find bundled Java version.
    • Try updating or re-installing Android Studio.

[√] VS Code (version 1.79.2)
    • VS Code at C:\Users\Arthur\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension can be installed from:
       https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.19044.3086]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 114.0.5735.199
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 114.0.1823.58

[√] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

See https://www.chromium.org/for-testers/bug-reporting-guidelines/uncaught-securityerror-failed-to-read-the-localstorage-property-from-window-access-is-denied-for-this-document/
Closing as this is not a bug in the plugin; it's documented as using localStorage on web, so if you run it in a context where that's blocked, the plugin can't work.


REST API request for Payment Lookup

Background
With an ever-increasing number of payments, we want to add a payment lookup feature in the UI, like existing invoice lookup: https://api.lightning.community/#v2-invoices-lookup
Your environment

version of lnd: 0.14.1
which operating system (uname -a on *Nix): Windows 10
version of btcd, bitcoind, or other backend: 0.21.1

Expected behaviour
To lookup a payment directly through hash, like current invoice lookup API.
Actual behaviour
No REST API exists for payments lookup yet.

There is TrackPaymentV2 (https://api.lightning.community/#v2-router-track). It's a streaming endpoint, so it'll block and stream updates if the payment isn't final yet. But I think that should return exactly what you're looking for.

We need this endpoint to give an option to search a payment from the list of all payments, not unfinished only. A simple search from the list like invoice lookup, not the subscription.

The TrackPaymentV2 RPC will return the current state of the payment (with all information available at that time) immediately and then keep the stream open for updates if the payment isn't final yet. So for finished payments you can just close the stream after the first message and then you have exactly what you're asking for. It's just not a synchronous API, but I'm pretty sure you have streaming requests with WebSockets working in other places?

Got it, I will check the solution by today EoD and let you know if it works. Thanks.

Track payment worked as per the requirement. Closing the issue now. Thank you for the prompt response.


[twitch-webhooks] When call listen() quickly after unlisten(), the suspended subscriptions are not correctly resubscribed

Bug Report
Info
I use Ngrok but I don't use twitch-webhooks-ngrok, I connect with ReverseProxyAdapter.
Code
this.webhooksListener = new WebHookListener(
    this.apiClient,
    new ReverseProxyAdapter({
        hostName: webhooksHostname,
        listenerPort: 8090
    })
)

Actual Behavior
When I call unlisten(), I receive four requests over 100 seconds:
GET  /stream.change.120607238  502 Bad Gateway
GET  /stream.change.120607238  502 Bad Gateway
GET  /stream.change.120607238  502 Bad Gateway
GET  /stream.change.120607238  502 Bad Gateway

Then if I call listen(), I receive one request:
GET  /stream.change.120607238  202 Accepted

And on each notification I receive a POST 202 and all is working well:
POST /stream.change.120607238  202 Accepted

But if I call listen() before the fourth request (502 Bad Gateway), I receive two requests:
GET  /stream.change.120607238  200 OK
GET  /stream.change.120607238  202 Accepted

And now for the first next notification I receive a POST 410, and then no more notification:
POST /stream.change.120607238  410 Gone

And the console says:
twitch-webhooks WARNING Notification for unknown hook received: stream.change.120607238

Environment

Version:
"twitch": "^4.2.5",
"twitch-webhooks": "^4.2.5",
Node version: v14.8.0

This is fixed in 4.2.7 and 4.3.0-pre.4.


Original data case ID missing

Is your feature request related to a problem? Please describe.
Case ID from original source could not be entered into the form.
Describe the solution you'd like
Add field that allows to enter ID from source.

Describe alternatives you've considered
Considered to put in notes field.

Over to Shru to spec out

Is the ask to enter an ID instead of a URL, in addition to? I'm sorry I'm not following.

Sorry should've put some more information in from conversations we've been having. There will be two IDs: one ID is the ID we create for our database. This is the "Unique Case ID" in the schema, and will be generated by our database and not entered by the user. There is another ID called the "Data Source ID" in the schema, which is what this bug is requesting. Some sources provide their own IDs distinguishing cases for just that one source. We want the curators to copy the ID provided by the source and enter it as a "Data Source ID".
Let me know if you need more details!

Per our chat, let's try this. Let me know if you need anything else. @sratcliffe118 prolly need to reflect this in the schema too.

Thanks, Shroo! Ah, yes, I had it wrong when I said this was the "Data Source ID" from the schema. That row was referring to an ID for the entire source document. We'll need to add another row in the linelist model doc for the source entry ID.


after i updated it said active client session restarting

im running on ubuntu server (digitalocean) and after i updated i got client session still active restarting in ...
http://imgur.com/Tfs4jZP

before it ran fine

Remember to update deps after updating the bot.  pip3.5 install --upgrade -r requirements.txt

I did it but now I'm getting a different error I'll post as picture in the morning

http://imgur.com/ais2JrI

leave it im marking this solved i completely reinstalled it and it fixed it

admins mark this a solved since i dont know how to do it

hah


[Snyk] Security upgrade @atlaskit/css-reset from 6.3.8 to 6.9.1

Snyk has created this PR to fix 1 vulnerabilities in the yarn dependencies of this project.
Snyk changed the following file(s):

ui/package.json
ui/yarn.lock

Note for zero-installs users
If you are using the Yarn feature zero-installs that was introduced in Yarn V2, note that this PR does not update the .yarn/cache/ directory meaning this code cannot be pulled and immediately developed on as one would expect for a zero-install project - you will need to run yarn to update the contents of the ./yarn/cache directory.
If you are not using zero-install you can ignore this as your flow should likely be unchanged.
Vulnerabilities that will be fixed with an upgrade:

Issue
Score

Regular Expression Denial of Service (ReDoS) SNYK-JS-UAPARSERJS-3244450
  586

[!IMPORTANT]

Check the changes in this PR to ensure they won't cause issues with your project.
Max score is 1000. Note that the real score may have changed since the PR was raised.
This PR was automatically created by Snyk using the credentials of a real user.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
📜 Customise PR templates
🛠 Adjust project settings
📚 Read about Snyk's upgrade logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Regular Expression Denial of Service (ReDoS)

Vuln has been patched in a different branch