Garbled request body

When sending a post request the json body becomes an arbitrary data.
Example

Sample
vite react + typescript project
import './App.css'

import { AnonymousAuthenticationProvider } from '@microsoft/kiota-abstractions';
import { FetchRequestAdapter, HttpClient } from '@microsoft/kiota-http-fetchlibrary';
import {createWebClient} from '../WebClient/webClient'

function App() {
  return (
    <>
        <button onClick={async () => {
            const authProvider = new AnonymousAuthenticationProvider();
            const adapter = new FetchRequestAdapter(authProvider);
            adapter.baseUrl = "https://localhost:7139";

            const client = createWebClient(adapter);
            await client.api.values.post({
              name: "test",
              value: "test",
            });
        }}>
          test
        </button>
    </>
  )
}

export default App

api
dotnet 8 webapplication
{
  "openapi": "3.0.1",
  "info": {
    "title": "WebApplication2",
    "version": "1.0"
  },
  "paths": {
    "/api/Values": {
      "post": {
        "tags": [
          "Values"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UploadModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UploadModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UploadModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "Values"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/WeatherForecast": {
      "get": {
        "tags": [
          "WeatherForecast"
        ],
        "operationId": "GetWeatherForecast",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WeatherForecast"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WeatherForecast"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WeatherForecast"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "UploadModel": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "WeatherForecast": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date"
          },
          "temperatureC": {
            "type": "integer",
            "format": "int32"
          },
          "temperatureF": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "summary": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    }
  }
}

@qwertycho
Thank you for the additional information.
When the API you're targeting replies to the compressed request, does it send back a 415 status code? Or something else?
The handler should retry with an uncompressed request body making failures "transparent" (although haven't a negative impact on bandwidth usage and latency).
We didn't get any feedback about APIs not supporting request body compression in other languages where it's been implemented to date as far as I know.
The addition of this handler by default is guided by our design guidelines
Can you expand on the export comment you were making please?

I find it bizarre that requests are compressed by default. In my decade+ of web development, I've never heard of compressing json payloads sent to a server (only responses). Furthermore, given that Kiota is closely related to ASP.NET core and ASP.NET core fails to recognized compressed data by default, Kiota basically is broken out of the box for ASP.NET backends.
Disabling compression as per the comment above worked for me.

@baywet
The api does not send a 415 statuscode but a 400. When i tested it with a api that send a 415 it works perfectly fine.
As @brad-technologik said ASP.NET does not support compressed content by default.
The kiota-http-fetchlibrary exports all the middlewares (RedirectHandler, RetryHandler, etc) except for the CompressionHandler. So if somebody wanted to build a HttpClient with a custom set of middleware, they won't be able to use the CompressionHandled.
As far as i can see the only thing that is configurable in the CompressionHandler is the 'enableCompression' flag, so that's why i said that there isn't much to configure.

Hitting this same issue here: https://github.com/Apicurio/apicurio-registry/pull/5498
So, I can confirm that Java server are being affected by this issue too.

@baywet
Yes, That are the points where the CompressionHandler is missing.
As for for compression being enabled by default: I think it's fine, as long as it's properly documented. When looking at the documentation there is no mention of compression being enabled. Currently the only mention of default middleware is Create a middleware handlers array and use the existing middleware already implemented within Microsoft.Kiota.HttpClientLibrary that includes existing handlers like retry, redirect, and more.
I think that it would be good to mention the different middleware handlers that are enabled by default in the quickstart guides and then link to the middleware page.

So there is any workaround for this or this still need to be resolved? @baywet

The only workaround today it to remove the compression middleware from the default middlewares when initializing the client.
We (the internal kiota team) still need to make a decision regarding what to do here:

disable request compression by default for all languages
disable request compression by default only for TypeScript so browser tools can be used
somehow detect that browser tools are open, and disable request compression in that context only (I did a quick search the other day, there doesn't seem to be any reliable API to do that)
simply leave things as is, improve the public documentation
is there any other option I missed?

Input is appreciated.
CC @maisarissi @sebastienlevert for the experience part.

How to remove it from base client? @baywet

@illunix please create another issue to add typescript example on the middleware documentation page here

Instead of relying on 415 code response, is there another way we could identify compression is not supported to do the uncompressed body retry?

Not as far as I know. I think we made an assumption that APIs that do not support compression would reply with a 415 in the majority of cases. I now believe it's far more nuanced than that:

APIs that do support request body compression, but do not support the algorithm we're using would reply with a 415 in the vast majority of cases. This is very unlikely to happen in our case though as we're using the most "popular" compression algorithm (gzip).
APIs that do not support request body compression might send back a 415, or a 4XX status code. 415 is clearly linked to the content-type or encoding. Content type is unlikely to happen unless the description is wrong. So we can safely assume at the handler level it's an encoding issue and retry without the encoding. 4XX could be anything, from something not found, to the payload not being formatted properly for whatever reason, to throttling, etc... We could expand retrying on any 4XX, but that might have serious performance/latency impacts for clients to these APIs, with no added benefits. And it's not clear what's the proportion of APIs in the wild that are sending back 4XX for an unsupported content encoding.

And then there's the developer experience issue, I think most front end devs would expect to be able to inspect the payload with the developer tools in browser. It's interesting that those tools automatically decompress the response payload, but not the request payload. Or don't even offer a button to do so.

Thanks for the additional information.
I think my first option would to keep as it is, so with default request body compression, but make that very clear in our docs with additional content of how to disable that which is actually a adding your default set of middleware article.
Second would be disabling it for Kiota TypeScript and adding the relevant code for request compression in the Graph Core.
Curious to hear @sebastienlevert @darrelmiller opinions.

Can we add some console.error when we "can" identify that this is an issue and then add a link to our docs? This would make the developer experience better (they would know it's happening, why, and what to do). This would be probably a TypeScript only requirement? Or would WASM also bring this challenge?

WASM also brings the same challenge, but the developer tooling might be different and bring different expectations from the developer. E.g. if I'm building a blazor web app, my IDE might be attached to the browser instead of using the developer tools on the browser. And that debugger might or might not do the request body decompression for me.
Console logging in production can have performance (and security if we start logging payloads) impacts. Some of which might be partially mitigated by using different levels like debug etc which get filtered automatically. And ultimately, should we log just on 415? also on any 4XX status code?

I went spelunking a little more on the developer experience aspect.
Chromium has a bug logged for this, so does firefox, I couldn't find an equivalent bug for safari or even test it, but I wouldn't be surprised if it were also impacted, Safari generally being behind the other two.
I tried identifying in chromium where the fix should be, but between the size of the repo, most of it being C++ and my C++ being extremely rusty, it wasn't clear to me.
It seems that both fix efforts are stalled on a missing repro, I'll try to reactive them by replying to the posts.
To test that in the tools, here is a quick snippet that can be pasted in the console.
async function compress(str) {
  // Convert the string to a byte stream.
  const stream = new Blob([str]).stream();

  // Create a compressed stream.
  const compressedStream = stream.pipeThrough(
    new CompressionStream("gzip")
  );

  // Read all the bytes from this stream.
  const chunks = [];
  for await (const chunk of compressedStream) {
    chunks.push(chunk);
  }
  return await concatUint8Arrays(chunks);
}
async function concatUint8Arrays(uint8arrays) {
  const blob = new Blob(uint8arrays);
  const buffer = await blob.arrayBuffer();
  return new Uint8Array(buffer);
}
const clearPayload = {
  displayName: "Jane doe"
};
const strPaylaod = JSON.stringify(clearPayload);
const compressedBytes = await compress(strPaylaod);
const requestOptions = {
   method: 'POST',
   headers: {'Content-Type': 'application/json', 'Content-Encoding': 'gzip'},
   body: compressedBytes
};
const response = await fetch('https://graph.microsoft.com/v1.0/me', requestOptions);

@illunix
You need to create a httpAdaper with a custom set of middleware. After that simply use the httpAdapter in a FetchRequestAdapter.
factory middlewares

Thank you @rkodev ! I have disabled the compression with this snipped:
    const http = KiotaClientFactory.create(undefined, [
      new RetryHandler(), new RedirectHandler(), new ParametersNameDecodingHandler(), new UserAgentHandler(),  new HeadersInspectionHandler()
    ])

    const adapter = new FetchRequestAdapter(new BearerAuthenticationProvider(), undefined, undefined, http);
    const client = createApiClient(adapter);

    client.api.endpoint.post({
      field: "testdata",
    })

The compression is a bit annoying when the api does not support it.
I did notice that the CompressionHandler is not in exported in the http fetch library, so that limits discoverability. Although it seems there isn't much to configure anyway.

This works but for development environment in my Angular app, but for example when I try do prod build I get

We didn't get any feedback about APIs not supporting request body compression in other languages where it's been implemented to date as far as I know.

Just want to chime in on this: I set up a (what I thought would be) very straightforward C# ASP .NET Core (9.0) based API and tried to use Kiota as OpenAPI generator.
And even though these are both Microsoft products, they seemed to hold contradictory views:
ASP .NET Core does not respond with 415 to compressed requests - compression is in fact, entirely opt-in.
There were no error messages on either the Kiota client nor the ASP .NET Core server suggesting that there was a mismatch of expectations with regards to compression - even though they were configured in non-production settings (i.e. Release "Development" for the server).
This may not seem a critical issue to resolve - but it makes for very bad developer experience to already stumble when setting up a new tool that should be one of the "safest" choices - a USP that I feel Kiota aims to, but currently fails to provide.

Thanks for the additional input!
I did have a quick chat about that with @captainsafia internally today. It doesn't seem like turning support for request body decompression on by default is part of the asp.net philosophy. Same for updating the templates (dotnet new & co) to include it by default.
The best course of actions from an asp.net perspective is to include that aspect in the "performance" documentation section, and accept the fact that some people might turn it on, some people might not. And beyond asp.net developers, other ecosystems (java, etc...) might have the same fragmentation. So we should account for this.
This is before we even consider the experience impact of not being able to see the request body in the developer console. (no traction of the browsers issues so far)
Sending requests the service might not understand by default is a bit aggressive, we should probably evaluate having two "handlers profiles":

default: all the safe things that do not impact the request being sent out
performance: this would build on default and have request body compression for now, and things like caching, etags & co in the future.

Documentation would lead customers to select the performance profile when required. Graph clients would have their own selection of middleware handlers (default + a few things from performance we know graph supports + a few things that are in the graph core layer).
Thoughts?

I appreciate you further digging into this!
From my POV as a developer who had just started out using Kiota, the thing I would have appreciated most would have been a clear communication about the implicit choices made for me. At that point in time, it was the default compression middleware, in the future it might be the default "handler profile".
Any solution like logging the selected default middleware/"handler profile" or making it necessary on an API level that the developer explicitly opt into one would have made my (debugging) life easier, so I welcome any movement in that direction.

Thank you for the additional information.
That's a great suggestion! Would a console.debug enumerating the active handlers (would log every time a client is created) been enough in your opinion?

That would work!

Thanks for confirming @ItsJustRuby !
While we wait for other decisions to be made (most of the team is out on our side), is this something you'd like to submit a pull request for provided some guidance?

Thank you for the opportunity 😄.
I have, however, moved on quite a lot from my original project that involved Kiota and do not have any interest in pursuing this further at this time.

Hey 👋,
sorry for chiming in really quickly in this conversation, I'm on vacation with a very limited screen time ATM.
I love how this discussion progressed, but I lack to see taking in serious consideration turning compression off by default:

at least asp, quarkus and spring do not enable it by default (it would be great to have a full matrix of popular langs/frameworks)
as noticed, it doesn't play well with debugging
it easily makes the user experience troublesome for newcomers: i.e. it's arguably hard to find out this is the root cause of something not working out of the box with Kiota (this issue matches my own experience too FWIW)

I can foresee users trying out Kiota and moving away quickly as it doesn't work, without tweaks, with a pretty standard/expected setup.
On the other hand we have performances, and that's a very valid argument, still, making compression opt-in instead of opt-out would turn into a situation where:

ease newcomers experience
makes everything easier to debug
isn't surprising in some ecosystems
ppl concerned about perf can easily turn it on (documentation needed here)

Given Microsoft's APIs usually support it you can easily turn it on by default in the Graph SDKs, while keeping the default off for the above mentioned reasons.
Happy to hear feedback on this possible course of action :-)

@andreaTP thanks for chiming in, I think we're all on the same page given the last few replies here:

default profile (works for the vast majority of the APIs out there, at a performance trade-off in some scenarios)
perf profile (everything in default + compression and other potentially compatibility impacting handlers like caching, e-tag... opt-in)
a console debug to tell the developer what's active at glance.
Microsoft Graph SDK (and other applications) will mix and match to fine tune the set of handlers for the scenario.

There are two main reasons why this isn't progressing at this time:

I'd like a confirmation for this plan of actions from the PMs @maisarissi @sebastienlevert  (both out of office)
On the engineering side, I'm pretty much the only one holding the fort at the moment.

Thank you for your patience. :)

Looks like an awesome plan!
I missed some context here, sorry for the noise.
No rush and happy new year :-)


Account creation

Adds account creation to the tools/utilities section.

Thanks @aaroncox !! Made all the discussed changes.

Thanks for the hard work on this! Going to merge - and we can make further changes we find through testing as additional PRs.


Issue with Timestamp type when using Hyper extract

I created a hyper extract using the Hyper API in Python. This hyper extract contains several Timestamp fields.
I set the columns to type=SqlType.timestamp() and the data is a Timestamp Object like this: Timestamp(year, month, day, hour, min, sec).
The issue is when I open the generated hyper extract in Tableau desktop, any back-end date calculations fail, giving the following error:

An error occurred while communicating with data source 'SN PPM Extract (local copy)'.
Bad Connection: Tableau could not connect to the data source.
ERROR:  unsupported data types in call to 'tableau.normalize_datetime'
SELECT TABLEAU.TO_DATETIME(DATE_TRUNC('YEAR', TABLEAU.NORMALIZE_DATETIME("pm_project"."start_date")), "pm_project"."start_date") AS "tyr:start_date (pm_project):ok"
FROM "public"."pm_portfolio" "pm_portfolio"
LEFT JOIN "public"."pm_project" "pm_project" ON ("pm_portfolio"."name" = "pm_project"."primary_portfolio")
GROUP BY 1

The above case is using the field 'start_date (pm_project)', and is trying to get the Year part of the date time.
Attached is the .tdsx containing the hyper file as a .zip file. Any help you could provide would be greatly appreciated.
SN PPM Extract.zip

https://github.com/tableau/hyper-api-samples/blob/d6303a2e3ab2027fcb42ecb3579b966147d3ded8/Tableau-Supported/Python/insert_data_with_expressions.py#L79
Offline, changing over to the expression was recommended

Changed my code over to use the expression for the datetimes and it works like a charm now! Thanks so much!
Would still like to figure out why exactly using the Timestamp object wasn't working, but this will definitely work as a solution for me. :)


Entries being re-attached after disposing of dbcontext

I am bulk inserting data into a sql server db. I add a few hundred records at a time, call SaveChanges, and dispose of the context. Then create a new Context to add the next few hundred.
After disposing and creating the new context, the change tracker tracks 0 entries, as expected. Upon adding the next first object to the new context with Update, the context picks up the previously added entries, and tracks them with a state of unchanged. Since I'm adding tens of thousands of records, after adding a few thousand, the dbcontext slows down significantly, as it is tracking lots of unchanged records.
I have AutoDetectChangesEnabled set to false, and am using auto-generated Ids.
Steps to reproduce

Create DbContext
add items with Update
savechanges
dispose of context
note that change tracker is not tracking anything
add a new item with Update
check change tracker, see that previously added entries are there.

How I'm saving with/disposing of the context.
try
{
    var result = await DbContext.SaveChangesAsync();
    return result;
}
catch (Exception e)
{
    throw e;
}
finally
{
    DbContext.Dispose();
    DbContext = new MyContext();
    DbContext.ChangeTracker.AutoDetectChangesEnabled = false;
}

Notes
I've seen this comment here: https://github.com/aspnet/EntityFrameworkCore/issues/6737#issuecomment-252740574 that mentions the garbage collector needing to run to release entries from memory. But is this relevant with a new context tracking old entries?
To get around this issue I've been manually detaching the entries before disposing. Which does solve it, but isn't ideal as acknowledged in this thread: https://github.com/aspnet/EntityFrameworkCore/issues/10125#issuecomment-470676793
I realise that my usage isn't common and the issue isn't really blocking but bringing it up in case it's a symptom of a bigger bug somewhere.
Further technical details
EF Core version: 3.0.0-preview9.19423.6
Database provider:  Microsoft.EntityFrameworkCore.SqlServer
Target framework: .NET Core 3.0
Operating system: Windows 10 64 bit
IDE: Visual Studio 2019 16.3 preview 3

@arturgromek Could you create a small runnable project that shows this issue?

EF Team Triage: Closing this issue as the requested additional details have not been provided and we have been unable to reproduce it.
BTW this is a canned response and may have info or details that do not directly apply to this particular issue. While we'd like to spend the time to uniquely address every incoming issue, we get a lot traffic on the EF projects and that is not practical. To ensure we maximize the time we have to work on fixing bugs, implementing new features, etc. we use canned responses for common triage decisions.


Return all matching individuals in search

Fixes #375.

@balhoff Thanks, I am testing this throughout this week on branch issue-375 locally. I wanted to give an update. So far everything on this PR is working smoothly locally. I didn't want to be silent. We will test more with @lpalbou
Thanks for the PR.


:focus -> :focus-visible for focus state in lot picker

Description
Changed :focus -> :focus-visible for focus state in lot picker
Issue(s)
Fixes CUR-976
How to test

Go to https://deploy-preview-2904--oak-web-application.netlify.thenational.academy/teachers/curriculum/
Check the focus state of lot picker when using mouse/keyboard

:tada: This PR is included in version 1.598.4 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Loading of an image is failed under status heading in README.md

Prerequisites

[X] I have searched for duplicate or closed issues
[X] I have validated any HTML to avoid common problems
[X] I have read the contributing guidelines

Describe the issue
An image is not loaded due to violation of some policy in the README.md file of webpage
Reduced test cases

What operating system(s) are you seeing the problem on?
macOS
What browser(s) are you seeing the problem on?
Chrome
What version of Bootstrap are you using?
v4.5.2

Can I work on this? I can change the link of image provided on the main branch

Thanks for reporting this issue @Shekhar-Dangi but our v4 has been deprecated since 2023-01-01, we don't make modifications to the v4-dev branch anymore.


Failure to Nuke DHCP Options

Seems to have some dependency issue when nuking DHCP Options.
  DEBUG   Deleting DHCP Option dopt-0670d0a5db70f8520                           s
  DEBUG   [Failed] Error deleting DHCP option dopt-0670d0a5db70f8520: DependencyViolation: The dhcpOptions 'dopt-0670d0a5db70f8520' has dependencies and cannot be deleted.
                status code: 400, request id: 0a1dc610-122e-4a5d-9580-39a99d05fa10
  DEBUG   [nukeDhcpOption] Failed DependencyViolation: The dhcpOptions 'dopt-0670d0a5db70f8520' has dependencies and cannot be deleted.
                status code: 400, request id: 0a1dc610-122e-4a5d-9580-39a99d05fa10

Cannot seem to reproduce anymore. Will close this.


[Event Request] Report 5882 Copy Phys. Invt. Order procedure InsertNew

Hi all we have some functionality in the report 5882 "Copy Phys. Invt. Order"
in that report, we have a function "InsertNewLine"
I need two triggers in that function
one is BeforeInsert, and another is afterInsert (After Dimension UPdate) see the screen shot:

Please always put the full detailed signature of the requested events.
If you use AL code copied from VSCode instead of screenshots it will speed up the process of implementation.

The detailed list of event's parameters was not provided.


Add Middlewares ipAllowList and grpcWeb to V3 CRDs

What does this PR do?
Adds new V3 introduced Middlewares to CRDs:

grpcWeb
ipAllowList which is a rename of current ipWhiteList

Motivation
V3 changed ipWhiteList Middleware by ipAllowList. Not being present on CRD blocks migration for ipWhiteList users.
More

[X] Yes, I updated the tests accordingly
[X] Yes, I ran make test and all the tests passed

Hello @gcaracuel,
Thanks for this PR.
I understand why you did it but I don't see how we can accept it.
With this PR, it means that users of current stable version of Traefik Proxy, v2.10, will have new (non-working) fields on their version.
Considering that (a) Helm is not allowing us to manage CRDs upgrade (b) the CRDs on Traefik Proxy v3 will still evolve, I guess it's better to stick with stable CRDs from stable version of Traefik Proxy.
See my comment on #911 for more info.


I have a minor question about the code.

Thank you so much for sharing your valuable research and code.
I am having a problem while training your model using the nuScenes dataset.
In lines 105-107 of the CenterFusion/src/main.py,
(https://github.com/mrnabati/CenterFusion/blob/master/src/main.py#L105-L107)
          # log dataset-specific evaluation metrics
          with open('{}/metrics_summary.json'.format(out_dir), 'r') as f:
            metrics = json.load(f)

it seems to load the 'metrics_summary.json' file.
But I can't find the part where this file is created even after looking through the whole code.
I would really appreciate it if you could tell me about this.

非常感谢您分享您宝贵的研究和代码。我在使用 nuScenes 数据集训练模型时遇到问题。
在第 105-107 行中，（https://github.com/mrnabati/CenterFusion/blob/master/src/main.py#L105-L107CenterFusion/src/main.py)
          # log dataset-specific evaluation metrics
          with open('{}/metrics_summary.json'.format(out_dir), 'r') as f:
            metrics = json.load(f)

它似乎加载**了“metrics_summary.json”**文件。但是即使浏览了整个代码，我也找不到创建此文件的部分。
如果您能告诉我这件事，我将不胜感激。

请问你解决了吗


Add Support for Cupy, Dask and JAX arrays

Extend scope of functions/methods to Cupy, Dask and JAX arrays (Duck arrays)

[ ] Add decorator @infer_array_module to all numpy-backed functions of the package to extend their scope to Cupy, JAX and Dask arrays and hence provide support for GPU/TPU and out-of-core/distributed computations.
The decorator should infer the array module to be used (numpy, cupy or dask) from the input duck array fed to the function (similarly to cp.get_array_module()). The code should be made module-agnostic by replacing all np.function by _xp.function where _xp is dynamically inferred at run-time by the decorator.

Example:
import numpy as np
import cupy as cp
import dask.array as da
import jax.numpy as jnp
import types
from typing import Callable, Optional

def infer_array_module(decorated_object_type='method'):
  def make_decorator(call_fun: Callable):
    def wrapper(*args, **kwargs):
      if decorated_object_type == 'method':
        arr = args[1] #First argument is self
      else:
        arr = args[0]

      if isinstance(arr, cp.ndarray):
        xp = cp
      elif isinstance(arr, da.core.Array):
        xp = da
      elif isinstance(arr, jnp.ndarray):
        xp = jnp
      else:
        xp = np # Fall back to Numpy backend if unknown array type
      kwargs['_xp'] = xp
      return call_fun(*args, **kwargs)
    return wrapper
  return make_decorator

class FFTOp(object):

  def __init__(self):
    pass

  @infer_array_module()
  def __call__(self, x, _xp: Optional[types.ModuleType] = None):
    return _xp.fft.fft(x)

Cupy specifics:

[ ] Control better dtypes of Map, LinearOperator and Functional objects as well as algorithms (float64 computations on GPUs are notoriously slower than float32 computations)
[ ] Cupy should remain an optional dependency. Any call to the cupy module should hence be conditional to this dependency being installed.
[ ] Benchmark cupy vs numpy computations.

Dask specifics:

[ ] Output of callables are  by default lazy dask arrays. In iterative algorithms, lazy arrays should be computed via the method persist()  (equivalent to compute() on a single machine but keeps the computation result distributed when working with multiple nodes). This is necessary since the stopping criterion to most algorithms cannot be computed lazily. Moreover, computing the dask arrays avoid overly long dask computation graphs which comes with much overhead.

JAX specifics:

[ ] JAX arrays are immutable so inplace computations in the code must be updated (potentially cumbersome).

Compatibility checklist for pycsou/pycsou/core/
Cupy
./map.py

[ ] Map
[ ] MapShifted
[ ] MapSum
[ ] MapComp
[ ] DifferentiableMap
[ ] DiffMapShifted
[ ] DiffMapSum
[ ] DiffMapComp
[ ] MapStack
[ ] MapVStack
[ ] MapHStack
[ ] DiffMapStack
[ ] DiffMapVStack
[ ] DiffMapHStack

./linop.py

[ ] LinearOperator
[ ] AdjointLinearOperator
[ ] TransposeLinearOperator
[ ] LinOpSum
[ ] LinOpComp
[ ] SymmetricLinearOperator
[ ] UnitaryOperator
[ ] LinOpPinv

./functional.py

[ ] Functional
[ ] DifferentiableFunctional
[ ] LinearFunctional
[ ] ProximableFunctional
[ ] ProcFuncPostComp
[ ] ProxFuncAffineSum
[ ] ProxFuncPreComp
[ ] ProxFuncCompUnitOp

./solver.py

[ ] GenericIterativeAlgorithm

Dask
./map.py

[ ] Map
[ ] MapShifted
[ ] MapSum
[ ] MapComp
[ ] DifferentiableMap
[ ] DiffMapShifted
[ ] DiffMapSum
[ ] DiffMapComp
[ ] MapStack
[ ] MapVStack
[ ] MapHStack
[ ] DiffMapStack
[ ] DiffMapVStack
[ ] DiffMapHStack

./linop.py

[ ] LinearOperator
[ ] AdjointLinearOperator
[ ] TransposeLinearOperator
[ ] LinOpSum
[ ] LinOpComp
[ ] SymmetricLinearOperator
[ ] UnitaryOperator
[ ] LinOpPinv

./functional.py

[ ] Functional
[ ] DifferentiableFunctional
[ ] LinearFunctional
[ ] ProximableFunctional
[ ] ProcFuncPostComp
[ ] ProxFuncAffineSum
[ ] ProxFuncPreComp
[ ] ProxFuncCompUnitOp

./solver.py

[ ] GenericIterativeAlgorithm

JAX
./map.py

[ ] Map
[ ] MapShifted
[ ] MapSum
[ ] MapComp
[ ] DifferentiableMap
[ ] DiffMapShifted
[ ] DiffMapSum
[ ] DiffMapComp
[ ] MapStack
[ ] MapVStack
[ ] MapHStack
[ ] DiffMapStack
[ ] DiffMapVStack
[ ] DiffMapHStack

./linop.py

[ ] LinearOperator
[ ] AdjointLinearOperator
[ ] TransposeLinearOperator
[ ] LinOpSum
[ ] LinOpComp
[ ] SymmetricLinearOperator
[ ] UnitaryOperator
[ ] LinOpPinv

./functional.py

[ ] Functional
[ ] DifferentiableFunctional
[ ] LinearFunctional
[ ] ProximableFunctional
[ ] ProcFuncPostComp
[ ] ProxFuncAffineSum
[ ] ProxFuncPreComp
[ ] ProxFuncCompUnitOp

./solver.py

[ ] GenericIterativeAlgorithm


Refactor to add 14

Attempt to expand the database

@AndrewFeeney I can't get it right, the tests are failing, can you help?

It is alternative solution to #28, I think we have to discuss which is better to go forward with (this one has tests failing but I think I can argue that there are some advantages that just need a little bit of work)

With regret I am unable to merge this PR as another earlier one with a similar feature has just been merged. I can see that you poured a great deal of effort into this, and I appreciate it. If you would like to modify it and reopen it, I would gladly reconsider it.

If you feel that your implementation offers advantages I'm open to hearing them.


Ein Link zu "Melden Sie sich beim Admin Center für Microsoft Teams an."

Hier wäre ein Link nützlich, wo beschrieben wird, wo und wie man dieses "Admin Center" findet.
Gibt es das auch in der kostenlosen Teams-Version?
Wenn nein, wie kann man in dieser den Gastzugriff aktivieren?

Dokumentdetails
⚠ Bearbeiten Sie diesen Abschnitt nicht. Er ist für die Verknüpfung von docs.microsoft.com zum GitHub-Artikel erforderlich.

ID: 042d7ce6-ee22-690f-8188-ff8a4a585847
Version Independent ID: 3e5bc99c-e08e-44e0-cda3-687ed3633175
Content: Aktivieren oder Deaktivieren des Gastzugriffs auf Microsoft Teams
Content Source: Teams/set-up-guests.md
Service: msteams
GitHub Login: @LanaChin
Microsoft Alias: v-lanac

Bing translator: "Here would be useful a link where to describe, where and how to find this "Admin Center".
Is this also available in the free Team version?
If not, how can You Enable Guest Access in this one?"

@scanum It seems the question is for a writer not for a loc. team

@aisbergde https://github.com/MicrosoftDocs/OfficeDocs-SkypeForBusiness/issues/2887

yes, it is for the writer. There should a link like https://admin.teams.microsoft.com/
and if a login is not possible because the person is not an admin or if login is possible the there are no enough rights, then some information is required who is admin to be able to contact this person. But this is not a question of documentation, this needs to be implemented in Teams or on the website to make it more user friendly.

@aisbergde Have a look at these articles and let me know if they help at all - https://docs.microsoft.com/microsoftteams/manage-freemium and https://support.office.com/article/manage-your-teams-free-organization-5208c55a-5d66-416c-b99a-1028c3fef637

I have been on this sites last week and I wrote some feedback on this sites. The issue is: the idea is a little bit clear but there is not enough informations on this sites to get a full understanding. There is no definition for the item "organization", there is no information how to find out who is the "first person of an organzation" which has limited admin rights. And there is no link in the documentation to https://admin.teams.microsoft.com/
BTW this typical for many microsoft documentations: there is a lot of information, a normal user can think, all is well documented, but the final and importand links are often missing. And then a normal user needs to search in the internet. And an answer can be find outside the Microsoft documentation.
And even if I spent my time to give you feedback, what is missing in the documentation to make it better to understand, and you could use this feedback to improve the documentation, I get links, which I already visited to write again and again, what is missing. It is a little bit "the castel" from Kafka
I am really interested in helping to improve the documentation and to make it better to understand.

@aisbergde Thank you for submitting feedback. We understand that this issue has been resolved.
Please feel free to re-open this issue if there is a specific area of the docs that we can improve or make better. Thank you.

@aisbergde it seems that with the free version there is no access to the admin center. You will have to upgrade to the full version for this. For more information about the Teams Free version including organizations there is also a FAQ section on the app.  To enable guest access please see here https://support.office.com/article/add-guests-to-a-team-in-teams-fccb4fa6-f864-4508-bdde-256e7384a14f?ui=en-US&rs=en-US&ad=US. I have tested it and it works well.

I tested the free version and I got access to some kind of administration after I found the link
'https://admin.teams.microsoft.com'
I tried several emails of my domain @aisberg.de (which is used as the mysterious "organization" as I found out later, but of course this is not described in any place in the teams documentation) and finally I found one email which has Admin rights in this "organization".
The usage of teams would be much easier if the "organization" would be shown by name directly in teams and also the email of the administrator. But teams prefer to hide important information in the app.
Also Microsoft is not willing to add the link into the documentation and so also other user will not find the link by reading Microsoft documentation but only by using search engines.
I am often impressed how many resources Microsoft invest in generating a lot of very good documentation and how often the very last step in the documentation is missing.


adding autofocus to email input field

added autofocus in the email field of the web-app generator page.

@anu-007 looks great!

Thanks @anu-007


:label: generated GraphQL types

Thank you for your contribution to the KodaDot NFT gallery,
we really appreciate your contribution!
Used: GraphQL Code Generator
PR type

[ ] Bugfix
[ ] Feature
[x] Refactoring

Before submitting this PR, please make sure:

[x] Your code builds clean without any erros or warnigns
[ ] You've posted screenshot of demonstrated change in this PR
[ ] Merged recent default branch, main and you have no conflicts
[x] Didn't break any original functionality

Optional

[ ] You've tested it on mobile
[ ] Are there any edge cases? Name if any

What's new? (may be part of changelog)

closes #<issue_number> - <Brief_description_how_you've_fixed_it>

If issue had bounty label ($,$$,$$$)

Fill up your KSM address: https://kodadot.xyz/transfer/?target=<Kusama_Address>

Yup but we can type the queries


fix(cert): read ca crt file only with externalcertloader

Purpose of PR?:
when externalcertloader is being used to load certificates provided externally using files, for CA it requires only certificate file to be read to add it to the certpool.
Does this PR introduce a breaking change?
No
If the changes in this PR are manually verified, list down the scenarios covered::
Additional information for reviewer? :
Mention if this PR is part of any design or a continuation of previous PRs
Checklist:

[ ] Bug fix. Fixes #
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update
[x] PR Title follows the convention of  <type>(<scope>): <subject>
[ ] Commit has unit tests
[ ] Commit has integration tests

Ref https://github.com/kubearmor/KubeArmor/issues/1464


demo-angular does not build with tns 5.4.0

Make sure to check the demo app(s) for sample usage
Make sure to check the existing issues in this repository
If the demo apps cannot help and there is no issue for your problem, tell us about it
Please, ensure your title is less than 63 characters long and starts with a capital
letter.
Which platform(s) does your issue occur on?

Both

Please, provide the following version numbers that your issue occurs with:

CLI: )5.4.0

Please, tell us how to recreate the issue in as much detail as possible.
After executing cd src && npm run postclone and accepting to create an Angular demo app, that demo app does not build after doing tns run ios

Fixed


Removing archived repoistories

Following repositories have been archived and are read-only, so they are unable to be contributed to:
https://github.com/ZupIT/ritchie-formulas,
https://github.com/ZupIT/ritchie-cli,
https://github.com/ZupIT/charlescd,
ℹ Repository information
The repository has:

[ ] At least three issues with the good first issue label.
[ ] At least 10 contributors.
[ ] Detailed setup instructions for the project.
[ ] CONTRIBUTING.md
[ ] Actively maintained.

Hey @eryan411  ! I tried to contribute to this repo as well but I haven't seen any activity in the last few months. I decided to fork it to keep it alive. Please see https://github.com/lucavallin/gfi and feel free to open a pull request there. At this time I am setting up the hosting and cleaning up the code. If you're up for it, I could use some help to convert the app from Nuxt.js & Python to Next.js & Typescript.


Update SDK to use API generated on 2023-02-16 (API version 2022-09-13)

looks good

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Sorting on ManyToMany and Index view is possible

The documentation states that

NB! The resource can only be sorted on either the Index view or the HasMany list view, but not both!

That's not entirely true. If you name the column name on the PivotModel different than on your Model where you want to sort in the index view (e.g. PivotModel column name: sort_order, Model column name: order_column) and then add the following method to your Nova Resource
public static function getSortability(NovaRequest $request)
    {
        $response = HasSortableManyToManyRows::getSortability($request);

        if (!$request->viaManyToMany()) {
            return (object)[
                'model' => $response->model,
                'sortable' => $response->sortable,
                'sortOnBelongsTo' => false,
                'sortOnHasMany' => $response->sortOnHasMany,
            ];
        }

        return $response;
    }

Don't forget to change the order_column_name on your Model to order_column.

Yeah, it's possible when using multiple order columns. But providing that out of the box and documenting it so that people actually understand it is quite a challenge. ;)

@Tarpsvo alright. I thought I just let you know in case you didn't. Maybe you can just link to this issue from the documentation somehow, so other ppl encountering this do have a clue on where to start with this.

Added a reference to this issue in the docs. :) Thanks!

The getSortability method above will cause the global search to break.  I've solved that by adding an additional check:
`    public static function getSortability($request)
{
$response = HasSortableManyToManyRows::getSortability($request);
    if (is_null($response)) {
        return (object)['canSort' => false];
    }

    if (!$request->viaManyToMany()) {
        return (object)[
            'model' => $response->model,
            'sortable' => $response->sortable,
            'sortOnBelongsTo' => false,
            'sortOnHasMany' => $response->sortOnHasMany,
        ];
    }

    return $response;
}   `


⚠ Homepage API has degraded performance

In 5c6f0cb, Homepage API (https://api.oxstreet.com/layouts/v1/public/homepage) experienced degraded performance:

HTTP code: 400
Response time: 21576 ms

Resolved: Homepage API performance has improved in 77e0c2e.


performance: reduce the api objects for RHV provider.

due to an performance issue on RHV side, we found the appliance hit the db connection pool.
by reducing the amount of new api objects we can clearly see an improvement.
seems like this change can be implemented on any provider.
@masayag
@pkliczewski

@borod108 please review

@borod108 please review

This PR looks like you're trying to get the benefits of a connection pool like we have in the VMWare VIM Broker without actually implementing a connection pool.
@agrare maybe you could lend a little insight into the connection pooling bit of the VIM Broker and see if there's some overlap or easy gains the oVirt team dive into.

Yeah it does look like that, the VimBroker uses a hash to store the connections with a mutex to protect against multi-threaded access so it can handle brokering multiple connections, the hash key for the connection is #{server}_#{username}.
Here is where the new connection handling is done https://github.com/ManageIQ/manageiq-gems-pending/blob/master/lib/gems/pending/VMwareWebService/MiqVimBroker.rb#L422

I'm closing this for now.  I believe trying to use a global var here is just going to cause problems.


Preview Changes and TimberPost

Thanks for Timber!
I was having problems previewing changes in the admin. The preview showed the published version rather than the changes.
I replaced
$post = new TimberPost();
with
$post = Timber::query_post();
in all my php files except for the blog home. That seems to fix the issue.
However, I don't want to introduce new problems to my theme, changing things I don't fully understand, so I thought I'd ask about this behavior here.
Is this a TimberPost bug, a feature, or a subtlety I haven't grasped yet?
Thanks!
(On a related note, it seems like you need to use post.get_field('field') rather than post.field on all field types to properly preview ACF changes. That makes sense, but it wasn't clear to me from the ACF Cookbook.)

This is solved and merged.


Fix Chunk F3 + G crashing game

To be checked and merged after updating to 21w13a snapshot, due to vanilla also breaking chunk border rendering in 21w10a


Add aria-label to the map canvas

It looks like the default aria-label ("Map") is coming directly from mapbox-gl:
https://github.com/mapbox/mapbox-gl-js/blame/d0f42e4274a0972f27c1e7f1546aea58491d2a4c/src/ui/map.js#L2285
There doesn't seem to be a nice way to configure this as a user of
mapbox-gl, so the easiest thing to do is just fish the canvas out of the
DOM and reset the attribute.
Note that this needs to be done after L.map() is called, because the
mapbox doesn't get its DOM until its used in the Leaflet map.
Fixes #80

 [A11y] 1.1.1 Non-Text Content – Map Name Not Meaningful

 Add descriptive aria-label to map so that it’s announced sensibly when focused


TrainerHparams doesn't account for train_subset_num_batches when calculating relevant quantities

TrainerHparams doesn't account for train_subset_num_batches when calculating quantities such as samples_per_epoch, tokens_per_epoch, and steps_per_epoch. This wrecks things like LR schedules when using train_subset_num_batches.

btw the name of the branch is because this was originally supposed to be part of a fix for swa and the schedulers (which stopped playing nicely together at some point), but this bug surfaced during testing. Not sure if it makes sense to split them into separate PRs

Added a potential fix for ComposedScheduler, which now has attribute _last_lr and as such won't crash when is called get_last_lr() is called

We sycned offline -- likely this is breaking the checkpoining tests because those tests use train_subset_num_batches. This is a low prioirty PR, so going to defer this merge until after v0.4

This PR now only addresses SWA. train_subset_num_batches will be moved into a separate PR.

Closing this for #555


NameError: uninitialized constant

I'm getting the following stack trace and unsure why
NameError: uninitialized constant MyModelName::
Stacktrace seems to be pointing to:
acts_as_recommendable.rb:81:in `create_liked_by_set'
I'm using rails 3.1 and ruby 1.9.2

Hey @Kelend, could you post a full stack trace as well as what you're doing to raise the error? I've been completely unable to reproduce this locally and I've tried all the logic out that I can think of. Any relevant code I could look at would help me troubleshoot this with you. Is your app in a public repo, by any chance? I saw you had a fork of recommendable, but it seems to be gone now.

Yeah, I forked because I thought I knew the error, but it seemed to be a wrong lead.
Heres the full stack trace:

NameError: uninitialized constant Beer::
from /app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.1.1/lib/active_record/base.rb:1341:in compute_type' 	from /app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.1.1/lib/active_record/reflection.rb:173:in klass'
from /app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.1.1/lib/active_record/associations/association.rb:118:in klass' 	from /app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.1.1/lib/active_record/associations/association.rb:166:in find_target?'
from /app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.1.1/lib/active_record/associations/collection_association.rb:327:in load_target' 	from /app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.1.1/lib/active_record/associations/collection_proxy.rb:51:in load_target'
from /app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.1.1/lib/active_record/associations/collection_proxy.rb:89:in method_missing' 	from /app/vendor/bundle/ruby/1.9.1/bundler/gems/recommendable-d808cc550090/lib/recommendable/acts_as_recommendable.rb:81:in create_liked_by_set'
from /app/vendor/bundle/ruby/1.9.1/bundler/gems/recommendable-d808cc550090/lib/recommendable/acts_as_recommendable.rb:40:in create_recommendable_sets' 	from /app/vendor/bundle/ruby/1.9.1/bundler/gems/recommendable-d808cc550090/lib/recommendable/acts_as_recommended_to.rb:604:in predict'
from /app/vendor/bundle/ruby/1.9.1/bundler/gems/recommendable-d808cc550090/lib/recommendable/acts_as_recommended_to.rb:588:in block in update_recommendations_for' 	from /app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.1.1/lib/active_record/relation/batches.rb:21:in block (2 levels) in find_each'
from /app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.1.1/lib/active_record/relation/batches.rb:21:in each' 	from /app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.1.1/lib/active_record/relation/batches.rb:21:in block in find_each'
from /app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.1.1/lib/active_record/relation/batches.rb:69:in find_in_batches' 	from /app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.1.1/lib/active_record/relation/batches.rb:20:in find_each'
from /app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.1.1/lib/active_record/base.rb:443:in find_each' 	from /app/vendor/bundle/ruby/1.9.1/bundler/gems/recommendable-d808cc550090/lib/recommendable/acts_as_recommended_to.rb:586:in update_recommendations_for'
from /app/vendor/bundle/ruby/1.9.1/bundler/gems/recommendable-d808cc550090/lib/recommendable/acts_as_recommended_to.rb:577:in block in update_recommendations' 	from /app/vendor/bundle/ruby/1.9.1/bundler/gems/recommendable-d808cc550090/lib/recommendable/acts_as_recommended_to.rb:577:in each'
from /app/vendor/bundle/ruby/1.9.1/bundler/gems/recommendable-d808cc550090/lib/recommendable/acts_as_recommended_to.rb:577:in update_recommendations' 	from (irb):3 	from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.1.1/lib/rails/commands/console.rb:45:in start'
from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.1.1/lib/rails/commands/console.rb:8:in start' 	from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.1.1/lib/rails/commands.rb:40:in <top (required)>'
from script/rails:6:in require' 	from script/rails:6:in 'irb(main):004:0> ls
NameError: undefined local variable or method ls' for main:Object 	from (irb):4 	from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.1.1/lib/rails/commands/console.rb:45:in start'
from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.1.1/lib/rails/commands/console.rb:8:in start' 	from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.1.1/lib/rails/commands.rb:40:in <top (required)>'
from script/rails:6:in `require'

My user model has recommends :beers
My worker was erroring out, I connected to the console and ran User.first.send("update_recommendations") which produced this error.

Hm, interesting. What does your Beer model look like? Do you have any in your database?

Beer model:
class Beer < ActiveRecord::Base
  belongs_to :brewery
end

still in the prototyping phase, so its completely bare, I've currently got 5000 test records


Update globals.d.ts for File declaration in Typescript

Summary:
In Webstorm or VSCode when using Typescript the declaration of the class "File" is missing. So both IDEs show "File" as error. With this change it fixes the issue https://github.com/facebook/react-native/issues/38061 .

Fixes #38061
Changelog:
[GENERAL] [FIXED] Fixed missing File declaration in Typescript global.d.ts

Test Plan:
I ran
yarn run test-typescript
with no error
After that i initialized a new react-native project and installed the react-native library with my local changes of global.d.ts. Webstorm and VSCode now find the declaration of "File" and don't show "File" as error and suggest the right parameters.

Does React native define a global File interface? Having this be a global seems a bit suspect.

RN defines a exporting class File like the class Blob, which is global. And you could always instantiate that class File. The only thing I changed is that the IDE can use the typescript compliant declaration.

Ah, I was missing this bit: https://github.com/facebook/react-native/blob/5f84d7338f42fe9b1d5bf2a9b1c8321b59551f15/packages/react-native/Libraries/Core/setUpXHR.js#L30C1-L30C1


Refactor parse_dts.rs

TODO:

[ ] exclude deprecated fields
[ ] allow Schemes as values on object properties.

Codecov Report

Merging #234 (7720ab7) into main (ebc9d9e) will decrease coverage by 0.33%.
The diff coverage is 77.40%.

@@            Coverage Diff             @@
##             main     #234      +/-   ##
==========================================
- Coverage   93.36%   93.02%   -0.34%
==========================================
  Files          33       33
  Lines        4128     4200      +72
==========================================
+ Hits         3854     3907      +53
- Misses        274      293      +19

Impacted Files
Coverage Δ

crates/crochet_infer/src/lib.rs
99.18% <ø> (ø)

crates/crochet_infer/src/context.rs
84.61% <46.66%> (-9.24%)
:arrow_down:

crates/crochet_dts/src/parse_dts.rs
82.71% <80.12%> (-0.52%)
:arrow_down:

crates/crochet_infer/src/infer.rs
97.29% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


There is something wrong after using the latest master-branch-code, cannot bind ovn-fip to pod.

Add an ovn-eip which type is 'fip', bind to pod,  there are some error from those code below. And there is no problem before.
pkg/controller/ovn_fip.go

	vpcName := subnet.Spec.Vpc
	if cachedEip.Status.Type != "" && cachedEip.Status.Type != util.NatUsingEip {
		err = fmt.Errorf("ovn eip %s type is not %s, can not use", cachedEip.Name, util.NatUsingEip)
		return err
	}

can be:
cachedEip.Status.Type != util.NatUsingFip

@bobz965

same problems as :
if cachedEip.Status.Type != "" && cachedEip.Status.Type != util.NatUsingEip {
		err = fmt.Errorf("ovn eip %s type is not %s, can not use", cachedEip.Name, util.NatUsingEip)
		return err
	}

use nat type， not fip, i update the doc, https://github.com/kubeovn/docs/pull/110

thanks a lot!!


fix process termination when /bin/sh is BusyBox

It seems like bash is using exec by default for single commands provided via -c. BusyBox however is not. If /bin/sh is BusyBox (e.g. on Docker images based on Alpine) then the specified command becomes a subprocess of /bin/sh. This messes up signal handling and goreman fails to terminate the subprocesses when receiving a SIGTERM. Adding an explicit exec should fix this without modifying any command parsing.

This may address the same as #30.

Right. LGTM

Thanks for the quick merge!

FYI previously goreman worked if your command started with environment specifiers, or if you used more complicated shell. eg: both these used to work
envExample: FOO=bar mycommand
shellExample: sleep 10 && echo hi

goreman now fails on both of those. The first failure is somewhat obvious since goreman will complain that it can't find the command FOO=bar. However, the second is subtle since exec sleep 10 && echo hi will exec sleep 10 and therefore the && echo hi is never evaluated. So you just get a silent failure.
some documentation or shell parsing would be useful in this case. I just updated my goreman, hence me only noticing this now.

Hmm, sorry I didnot consider it.

@neelance do you know the way to pass command-line into the busybox shell? and way to send signal to the process group?

Is there some standard on how foreman tools are supposed to behave, e.g. which shell features are supposed to be supported?
The first case that @keegancsmith mentioned could be solved by prepending env, but the second can't. I also just realized that in the case of the issue I had, it might have been possible to add the exec to the Procfile itself.
I'm not sure what the best thing to do here is. But I think it would be better to avoid behavior that is different depending on which sh your system has.

There doesn't really seem to be a standard. One could check the most popular Procfile runner and see how it behaves. Fixing signal behaviour is the correct thing to do, and prefixing exec seems like a good solution. From reading the POSIX standard I don't see anything preventing or condoning the automatic exec bash does. The only real way around this is to write a little wrapper script that traps the signal and manually sends it, which doesn't seem like a great thing.
I think the best thing would be to somehow detect when there is a compound command, and Goreman warns/exits with a good error message to the user.

How about to support both with new flag or environment variable?

I'll revert this change.


Update Set-NetEventPacketCaptureProvider.md

added Description for As job and Input object

Docs Build status updates of commit 4091c12:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docset/winserver2012r2-ps/neteventpacketcapture/Set-NetEventPacketCaptureProvider.md
:white_check_mark:Succeeded

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

@JohanFreelancer9 Copy editing is needed for this PR. Thanks.

@dariomws306 @tseward
Peer review needed for this PR. Thanks.


Svg images cannot retain aspect ratio

Changing the color works fine, but the image appears very very small in the top left corner of the ImageView. I have no control over the svg file (it has a fixed size). In the SvgBitmapTranscoder class I have tried to svg.documentPreserveAspectRatio = PreserveAspectRatio.STRETCH but it has no effect. Also tried the same in the SvgDecoder class. Chances are that I'm missing something obvious. Any words of advice you can offer me?

@GerhardtBruwer Do you have this issue with the last version of the library? 3.0.0

No answer, I close it. Feel free to re-open.


The new nudge configs does not work as expected. We revert this change while figuring out the correct nudge settings.

/override "Red Hat Konflux / ols-e2e-tests-rosa / lightspeed-console"
/override "Red Hat Konflux / ols-enterprise-contract / lightspeed-console"
Override tests not related to this PR


Owner level metric

It would be great to get metrics for a specific owner like http://metrics.cocoapods.org/api/v1/owners/6563. If a roll-up report is not feasibly than at least providing an endpoint to list the pods own by an owner would allow us to script something.

<EMAIL_ADDRESS>already lists pods, but we definitely could consider adding an owners endpoint to metrics

That will unblock us at least, thanks!


WIP: implement gateway service

What this PR does / why we need it:
Implement gateway service (aka egress lockdown).  WIP.  Not tested.  Detailed description to follow here.
Test plan for issue:
Manual.
Is there any documentation that needs to be updated for this PR?
Yes.

@mikeandescavage fyi - contains a fair amount of deployment code implementation

I see how much change is coming this way and im bit worries.
I think apart of anybody spinning new instance of RP locally, we need to start exploring running 2 RPS in parallel and sending traffic to A/B RP based on feature flag in production. Im not sure how confident I am with the pace of change here and complexity if it without proper way to test this in prod in A/B manner.

I see how much change is coming this way and im bit worries.

Let's talk ...

I think apart of anybody spinning new instance of RP locally, we need to start exploring running 2 RPS in parallel and sending traffic to A/B RP based on feature flag in production. Im not sure how confident I am with the pace of change here and complexity if it without proper way to test this in prod in A/B manner.

This will be controlled by feature flag so that the rollout can be graduated.  This work builds upon the capability to deploy the entire ARO stack INT-style for development.


(Contains fix) Makefile doesn't point to the correct pytest binary

I was following the instructions of the Contributing page. Upon the make check step, I run into this error
PYTHONPATH=/root/ansible-bender PYTHONDONTWRITEBYTECODE=yes pytest-3 --cov=ansible_bender -l -v ./tests/
/bin/sh: 1: pytest-3: not found
make: *** [Makefile:13: check] Error 127

Background info: My pytest version is 6.1.2. Python version 3.7.3. OS is Debian 10.6
FIX: In Makefile:7 I changed PYTEST_EXEC := pytest-3 to PYTEST_EXEC := pytest. This is just a hot-edit in my workspace for now.
Should this be pushed upstream?

Hi Keith, yes, we can change this in upstream - the reason the default is pytest-3 is that's Fedora Linux had while moving from python 2 to python 3. I just checked that python3-pytest on Fedora now has pytest and pytest-3 - please open a PR and we can merge that.

Hi Keith, yes, we can change this in upstream - the reason the default is pytest-3 is that's Fedora Linux had while moving from python 2 to python 3. I just checked that python3-pytest on Fedora now has pytest and pytest-3 - please open a PR and we can merge that.

Fixed by #242

Fixed by #242


Converting js methods in html.erb files

Hello, thanks for the gem. But sometimes it is converting the method names of the js code in html.erb to translation keys.

As I said in #42 , I no longer work on this gem. Happy to review a PR if you provide one but I have moved away from ruby/rails some time ago and can't justify spending time on this.


Fix broken link for QueueAttribute

Replaces old link targeting QueueAttribute.cs file.
QueueAttribute.cs moved from folder "Microsoft.Azure.WebJobs" into "Microsoft.Azure.WebJobs.Extensions.Storage".
While namespace name being the same "Microsoft.Azure.WebJobs".

@DenisBalan : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Thanks, @DenisBalan!
#sign-off


Fixes #74 Added support for comments to command processor

Pull Request Test Coverage Report for Build 164

0 of 0   changed or added relevant lines in 0 files are covered.
115 unchanged lines in 5 files lost coverage.
Overall coverage decreased (-0.02%) to 90.829%

Files with Coverage Reduction
New Missed Lines
%

.tox/pypy/site-packages/friendlyshell/base_shell.py
23
86.4%

.tox/py3/lib/python3.5/site-packages/friendlyshell/base_shell.py
23
85.6%

.tox/py2/lib/python2.7/site-packages/friendlyshell/base_shell.py
23
86.4%

.tox/pypy3/site-packages/friendlyshell/base_shell.py
23
85.6%

.tox/py3/lib/python3.6/site-packages/friendlyshell/base_shell.py
23
85.6%

Totals

Change from base Build 161:
-0.02%

Covered Lines:
2538

Relevant Lines:
2778

💛  - Coveralls


Improve helm chart to be ready for 5.x

closes #3998
also adds an workflow to automatically release the helm charts

In general, you should provide strongly typed abstractions, stuff like the secrets, pullSecrets and probes are just passed through without any validation, typing or logic
If we just add some fields that are passed through without any logic then the user nearly might as well just write their own chart.
I'd also strongly advise on using the https://github.com/bitnami/charts/tree/main/bitnami/common chart as much as possible, things like labels, ingress, pullSecrets, images, secrets are all neatly standardised and abstracted by them

I would be more than happy to receive pull requests with improvements from you and the community! Hope to see them coming :)

In general, you should provide strongly typed abstractions, stuff like the secrets, pullSecrets and probes are just passed through without any validation, typing or logic
If we just add some fields that are passed through without any logic then the user nearly might as well just write their own chart.
I'd also strongly advise on using the https://github.com/bitnami/charts/tree/main/bitnami/common chart as much as possible, things like labels, ingress, pullSecrets, images, secrets are all neatly standardised and abstracted by them

I would be more than happy to receive pull requests with improvements from you and the community! Hope to see them coming :)

@cwrau do you have some time and desire to help out?


Confusing documentation: querybase.ref without index

querybase.ref expects two arguments. If you try to wrap a ref without the index argument, you get an error:

No indexes provided in the Querybase constructor. Querybase uses the indexOn() getter to create the composite queries for the where() method.

However the README proposes that this is a valid line:
const querybaseRef = querybase.ref(databaseRef);

And somehow allows querying any single field, individually? Has this been deprecated, or...?

Thanks for flagging this!


Command line for multiple path seems to be broken in 0.9.2

System: Mac, Chrome (but not a client issue), node.js 14
version with the issue: 0.9.2
version with NO issue: 0.9.1
Steps to reproduce

Two folder css/ and svg/
Using the command line

./node_modules/.bin/livereload "dist/, svg/" --extraExts svg -w 500 -d

Edit a dist/some.css file

Actual
with 0.9.2, nothing happen, the livereload terminal does not print anything, which seems to mean it did not watch the folder, and browser does not get updated.
Expected
With 0.9.1, changing any .js or .css or .svg in any of those directories console.log the change notification in the terminal and reloaded the browser correctly.
Workaround
Rollback to 0.9.1

@jeremychone super sorry about this. I broke an assignment operator when resolving a path. New release coming soon.

Confirming that 0.9.3 fixed this issue. Thanks!


Should have the playground published to a fixed endpoint on release

Right now the playground is an awesome tool for people to play with or report issue but it is always up to date with the main changes which result in some different behavior.
The playground was designed to work with bundled packages so I think we could just upload to /<publihsed-version>/compiler.js and similar for all the other versions.

@markcowl Could we bump this one up in priority. If we want to start using the playground for "live" examples as in my typespec-openapi3-examples project, we need to have a stable version of TypeSpec and associated packages to target.
Currently any of these examples that do a using OpenAPI, which works fine in 0.48.0, fail in the playground because it already incorporates the namespace change to TypeSpec.OpenAPI.

This is done, playground currently use latest version instead of next, this issue tracks the version picker. https://github.com/microsoft/typespec/issues/2044


cleanup icons & graphics - 10.2

add icons & graphics (splash screens etc) from master)

fixed in #26


Include URL or ID pointing to the extension on the web store for extension data gathering

-fox

This is a note to myself so I have this information after I'm done rewriting the code for browser extensions. Chrome extension IDs are the name of the folder they're found in under the profiles. A link can be obtained by appending this ID to the end of this link: https://chrome.google.com/webstore/detail/

You would probably want to check if the extension is actually on the webstore instead of just blindly adding it to the json

I don't really know if there's a good way to do this efficiently on data collection. Do you have an example of such an extension I could base off of?

After some discussion it was decided the play on this is basically going to be passing the extension ID from Specify into Specified and having it hyperlinked to the web store Specified side. Worst case scenario a non-existent ID on the webstore will just 404


Compatibility with segment replication

Coming from https://github.com/opensearch-project/anomaly-detection/issues/936#issuecomment-1631313721 and with core now supporting real time reads for segment replication enabled indices (https://github.com/opensearch-project/OpenSearch/issues/8536), we can revert https://github.com/opensearch-project/anomaly-detection/pull/948 which enforces DOCUMENT replication strategy.
CC @kaituo @ohltyler
Request owners to label this issue with 2.10.0 release.

will respond later.

revert change pr created - https://github.com/opensearch-project/anomaly-detection/pull/999
@dreamer-89 do you have any instruction on how to test this to ensure the core side change is working well with AD?

revert change pr created - #999
@dreamer-89 do you have any instruction on how to test this to ensure the core side change is working well with AD?

Thanks @jackiehanyang for working on this change. I commented on revert PR #999

I've conducted a comprehensive review of our backend and would like to share my insights on two key components:

State Index Query:

The real-time performance is satisfactory, especially since it primarily supports the profile API. The RAW feature is not required.
For historical detectors, a change may or may not be necessary. Interestingly, ml-commons has no reported issues and historical detectors have implementation similar to ml-commons. You can refer to Issue #1023 which Yaliang has reviewed and signed off on. Should any modifications be required, TaskManager.getAndExecuteOnLatestTasks should prioritize primary shards to locate the most recent task.

Result Index Query from Alerting:

As indicated in Issue #974, there's a slight delay of a few seconds. However, given that we operate with a minute-level delay, I believe this won't pose any significant concerns.
In light of the above, I am inclined to approve Pull Request #999 . This should allow us to finalize the seg replication compatibility.

Thanks @kaituo for the summary and explanation. Do we need anything else other than merging PR #999 ? If not, do you mind merging #999 and closing this issue.

We do need another approver.

@kaituo @jackiehanyang : As PR #999 is merged and backported. Do you mind closing this issue if nothing else is pending.

@kaituo @owaiskazi19 @jackiehanyang  : Mind closing this issue if nothing else is pending


Fix tracking calls on results-footer template.

At this point, the calls to recordSharing are not passing the correct information.
Also, there is an old call to submit_slogan_choice that does not exist in the new tracking model.

Fixed here: https://github.com/labinthewild/LITW-study-templates/commit/2b165f0a0081cc40fe1d91b7e055e272061772f7


Fix implementation of installOnNode for phones

WHAT
Fix implementation of installOnNode for phones.
WHY

From RemoteActivityHelper#getAvailabilityStatus:

On phone devices, it will always return STATUS_UNKNOWN

Missed adding comment to the watch implementation, requested in https://github.com/google/horologist/pull/1992#discussion_r1457584821

HOW
Checklist :clipboard:

[N/A] Add explicit visibility modifier and explicit return types for public declarations
[x] Run spotless check
[x] Run tests
[N/A] Update metalava's signature text files

So not broken, just pointless to check?

So not broken, just pointless to check?

Yes, based on my understanding of the docs. Just when called by phones, for watches it is advised to check.


Work with 5G? Or need higher freq antenna?

Might be a newbie question here, but came across this repo and love the idea of getting into software based antennas, however where I live, GSM isn’t a very popular cellular technology. It’s all 5G and LTE around here. Would this repo work (theoretically) if I had a 5G capable antenna to work with? It’s my understanding that 5G operates at between like 28-39 GHz? Just a thought, I did a search for 5G and LTE in the existing issues but didn’t find anything. Thanks!

No, it's impossible because gr-gsm didn't support 5G.


Asset Hosts & Precompiling

For those that still precompile Rails assets on their production servers, Lambda may introduce a new way of thinking that forces static assets to be offloaded to a  CDN or Asset Host. Using one is actually a great idea and allows your application server to focus solely on itself vs static file requests.
Overview
Wiring this up is super easy with AWS & Rails using Lamby's bin/build script. From a high level, here is what we are going to do.

Create an S3 bucket to host your assets.
Create a CloudFront distribution to serve S3 assets with long TTLs.
Configure Rails to that distro as an Asset Host.
Ship assets to S3 prior to package and deploy.

Configure Rails Asset Host
Let's start at the end and work our way backwards. In your production.rb, or any other environment file that uses an asset host, configure Rails with the domain you intent to use. Most often this is a simple assets subdomain if you are running under a custom domain name. For example:
config.action_controller.asset_host = 'https://assets.example.com'

We also recommend that you asset manifest be removed from the public dir and instead placed in your application config. This way it can be packed and deployed along side your application. In config/assets.rb.
Rails.application.config.assets.manifest = Rails.root.join('config/manifest.json')

Precompile to S3 Bucket
Our S3 bucket examples will follow this naming convention myapp-asset-host-{region}-{env} and we will show you how to create that bucket in the last step. But in order to get our Rails assets to that bucket we need to hook into our bin/build script. The snippet below:

Makes sure the public/assets directory is clean from any prior builds.
Run Rails assets:precompile task using AWS' Docker container.
Use the AWS CLI s3 sync command to upload the public directory to your S3 bucket. Also sets a cache header for a proper Origin response.
Cleans up build project of non-compiled assets to save package space.

If you are using the Webpacker gem for your JavaScript assets while still using Sprockets for CSS. The following precompile script should be helpful since the AWS Docker container for Ruby does not have Node installed.

Uses local project directory to build assets and copy to build dir.
Ensure both sprockets manifest and packs manifest are packaged.
Does an S3 sync for both assets and packs.

# [HOOK] Asset Hosts & Precompiling
npm install
./bin/rails assets:clobber
NODE_ENV=$RAILS_ENV ./bin/rails assets:precompile
cp -rf ./config/manifest.json ./.aws-sam/build/RailsFunction/config/
cp -rf ./public/assets ./.aws-sam/build/RailsFunction/public/
cp -rf ./public/packs ./.aws-sam/build/RailsFunction/public/
pushd ./.aws-sam/build/RailsFunction/
aws s3 sync ./public/assets "s3://rails-asset-host-${AWS_DEFAULT_REGION}-${RAILS_ENV}/assets" \
  --cache-control "public, max-age=31536000"
aws s3 sync ./public/packs "s3://rails-asset-host-${AWS_DEFAULT_REGION}-${RAILS_ENV}/packs" \
  --cache-control "public, max-age=31536000"
rm -rf ./public/assets \
  ./public/packs/js \
  ./app/assets \
  ./app/javascript \
  ./vendor/assets \
  ./node_modules
popd

Create S3 Bucket & CloudFront Distro with CloudFormation
This CloudFormation was inspired by by DJ Walkers Automate Your Static Hosting Environment With AWS CloudFormation tutorial but re-written from the ground up to be more inline with a Rails static asset host best practices. Summary:

Setup to work for staging and production Rails envs.
Examples of using Mappings for each env's domain name.
Creates a private S3 bucket accessible via CloudFront.
Ensures all assets have a 1 year cache length.
Uses AWS SSM Parameter Store. For SSL Certificate. Ex: {{resolve:ssm:/cf/myapp/certarn:1}}. Replace this with your own certificate ARN or look into how to use [Parameter Store within CloudFormation(http://beta.awsdocs.com/services/cloudformation/cloudformation_ssm_securestring_params/.

Lastly, we recommend that you put project-specific CloudFormation templates into an ops directory in your project. For example this file could be in ops/s3/template.yaml and you could even make a ops/s3/deploy bin script which is described further down.
AWSTemplateFormatVersion: '2010-09-09'
Description: MyApp Asset Host

Parameters:
  RailsEnv:
    Type: String
    Default: staging
    AllowedValues:
      - staging
      - production

Mappings:
  Domain:
    staging:
      Name: assets-staging.example.com
    production:
      Name: assets.example.com

Resources:
  AssetHostBucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName:
        Fn::Sub: myapp-asset-host-${AWS::Region}-${RailsEnv}
  AssetHostBucketPolicy:
    Type: AWS::S3::BucketPolicy
    Properties:
      Bucket: !Ref AssetHostBucket
      PolicyDocument:
        Statement:
          - Action: 's3:GetObject'
            Effect: Allow
            Resource: !Sub 'arn:aws:s3:::${AssetHostBucket}/*'
            Principal:
              CanonicalUser: !GetAtt AssetHostDistributionIdentity.S3CanonicalUserId
  AssetHostDistributionIdentity:
      Type: AWS::CloudFront::CloudFrontOriginAccessIdentity
      Properties:
        CloudFrontOriginAccessIdentityConfig:
          Comment: !Ref AssetHostBucket
  AssetHostDistribution:
    Type: AWS::CloudFront::Distribution
    Properties:
      DistributionConfig:
        Aliases:
          - Fn::FindInMap: [ Domain, !Ref 'RailsEnv', Name ]
        Comment: !Sub 'myapp-${RailsEnv}-assethost'
        DefaultCacheBehavior:
          AllowedMethods: [ HEAD, GET ]
          CachedMethods: [ HEAD, GET ]
          Compress: true
          DefaultTTL: 31536000
          MinTTL: 31536000
          ForwardedValues:
            Cookies:
              Forward: none
            QueryString: false
          TargetOriginId: S3Origin
          ViewerProtocolPolicy: redirect-to-https
        Enabled: true
        HttpVersion: http2
        Origins:
          - DomainName: !GetAtt 'AssetHostBucket.DomainName'
            Id: S3Origin
            S3OriginConfig:
              OriginAccessIdentity: !Sub 'origin-access-identity/cloudfront/${AssetHostDistributionIdentity}'
        ViewerCertificate:
          AcmCertificateArn: '{{resolve:ssm:/cf/myapp/certarn:1}}'
          SslSupportMethod: sni-only

Example ops/s3/deploy bash script.
#!/bin/bash

set -e

export RAILS_ENV=${RAILS_ENV:=staging}
export AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION:=us-east-1}
export CLOUDFORMATION_BUCKET=${CLOUDFORMATION_BUCKET:="mycloudformationbucket.example.com"}

aws cloudformation deploy \
  --region ${AWS_DEFAULT_REGION} \
  --template-file "ops/s3/template.yaml" \
  --stack-name "myapp-s3-${RAILS_ENV}" \
  --s3-bucket "$CLOUDFORMATION_BUCKET" \
  --s3-prefix "myapp-s3-${RAILS_ENV}" \
  --capabilities "CAPABILITY_IAM"

Making an update to this due to the new execution environment changes (https://aws.amazon.com/blogs/compute/upcoming-updates-to-the-aws-lambda-execution-environment/) which no longer have a JavaScript runtime and hence can not compile JavaScript assets without putting a big gem into the production env.


Search functionality

Add search functionality based on fetching search data rather than searching through paged data.

@melihaksoy  Are you looking for maintainers ?

@bansalayush For sure, it'd be nice to have contributions. I have some other features in mind that I need to create in issue list, before this repo actually starts represents a all-around example.

I didn't get fetching search data rather than searching through paged data part. Can you help me out ?

I just updated description. I think UX wise having a separate feature for search is not a bad idea - just like launches & detail - this may come in handy in terms of decoupling.

Closing this as it'll be part of #21.


The git automatically fills in deleted information.

Which download is failing?
version 2.27.0
Problem
I didn't find the entry for submitting issues to Git for errors, so I have to give feedback here.
I found a Git logic bug. I want to discuss it with you. The scenario is as follows: When I patch the kernel 5.10 branch code to the 4.19 branch, a commit node of cherry-pick 5.10 to my own personal branch based on the 4.19 branch. The commit modifies many files, and I encounter a file conflict, the reason is that the file does not exist in the 4.19 branch. In this case, I only need to delete the file because I do not need it. Later, someone synchronized the file from the 5.10 branch to the 4.19 branch. At this time, I pulled a new personal branch based on the new 4.19 branch, and cherry-pick the patch that I merged on the old personal branch, when the commit node is integrated, it automatically carries the conflict information that has been deleted. For the source code, no error is reported. However, for the user, it does not meet the expectation because the conflict point has been deleted, later, because the file exists, the information is automatically filled in, which seems very intelligent and helps the user to automatically fill in the file, and the user does not need to resolve the conflict herein. However, a problem of a new scenario exists. For example, for Linux-based open-source communities such as OpenEuller and Red Hat, they have independent artifact repositories. The source code repository is synchronized to the artifact repository periodically. In this case, the time difference causes inconsistency between the artifact repository and the source code repository, in this case, if I compile the kernel in the source code repository, the problem is not found because Git automatically fills in the modification part. When I submit the patch to the product repository, the patch failure occurs because the product repository does not contain the file.
In conclusion, the git system should avoid the behavior that the user has deleted the conflict information and then the information is automatically filled in because of the addition of the file. This is not as expected for the user. The problem scenario is complex and the description is vague. If you have any questions, please contact me.
Operating system and browser
linux
Steps to reproduce

Run the git cherry-pick commit_id command to manually delete the conflict because a file does not exist.
Pull out an update branch again. At this time, the branch already has the file that does not exist. When the commit operation of the old branch on cherry-pick is performed, the deleted information is automatically filled in because the file that does not exist before is identified.

Other details
No response

As you can see in the issue template, this repository issue tracker should only be used to report problems found on the git-scm website (https://git-scm.com/).
Git specific issues should be raised with the community (https://git-scm.com/community).


plugin fails to load when multiple instances of xiv are open

weirdly it seems whenever a new instance of xiv is loaded, that one gets priority, and causes previously loaded instances to fail.
00:07:03.054 | ERR [PROFMAN] Couldn't apply state for one or more plugins
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.IO.IOException: The process cannot access the file 'C:\Users\snow\AppData\Roaming\XIVLauncher\pluginConfigs\MapPartyAssist\data.db' because it is being used by another process.
   at Microsoft.Win32.SafeHandles.SafeFileHandle.CreateFile(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options)
   at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
   at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
   at LiteDB.Engine.FileStreamFactory.GetStream(Boolean canWrite, Boolean sequencial)
   at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)
   at System.Lazy`1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)
   at System.Lazy`1.CreateValue()
   at LiteDB.Engine.DiskService..ctor(EngineSettings settings, Int32[] memorySegmentSizes)
   at LiteDB.Engine.LiteEngine..ctor(EngineSettings settings)
   at LiteDB.ConnectionString.CreateEngine()
   at LiteDB.LiteDatabase..ctor(ConnectionString connectionString, BsonMapper mapper)
   at MapPartyAssist.Services.StorageManager..ctor(Plugin plugin, String path) in D:\Documents\Documents\Development\Visual Studio\MapPartyAssist\MapPartyAssist\Services\StorageManager.cs:line 31
   at MapPartyAssist.Plugin..ctor(DalamudPluginInterface pluginInterface, CommandManager commandManager, DataManager dataManager, ClientState clientState, Condition condition, DutyState dutyState, PartyList partyList, ChatGui chatGui, GameGui gameGui, Framework framework) in D:\Documents\Documents\Development\Visual Studio\MapPartyAssist\MapPartyAssist\Plugin.cs:line 117
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
   at System.Reflection.ConstructorInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
   --- End of inner exception stack trace ---
   at System.Reflection.ConstructorInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
   at System.Reflection.RuntimeConstructorInfo.InvokeWithManyArguments(RuntimeConstructorInfo ci, Int32 argCount, Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.RuntimeConstructorInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Dalamud.IoC.Internal.ServiceContainer.CreateAsync(Type objectType, Object[] scopedObjects, IServiceScope scope) in C:\goatsoft\companysecrets\dalamud\IoC\Internal\ServiceContainer.cs:line 137
   at Dalamud.Plugin.Internal.Types.LocalPlugin.LoadAsync(PluginLoadReason reason, Boolean reloading) in C:\goatsoft\companysecrets\dalamud\Plugin\Internal\Types\LocalPlugin.cs:line 526
   at Dalamud.Plugin.Internal.Profiles.ProfileManager.ApplyAllWantStatesAsync() in C:\goatsoft\companysecrets\dalamud\Plugin\Internal\Profiles\ProfileManager.cs:line 246

The database file can only be opened by one process at a time but that is strange that the original instance gets bumped. Does the second instance initialize okay? Might have to do with something internal to how Dalamud handles multiple instances. Will have to investigate further.
I'm also pushing an update soon that will properly release the lock on the database when the plugin fails to load.

Did some testing on my dev build and the second instance fails to start without affecting the first instance. For now I'd like to keep it so you can only have one instance active, not just because of the db lock restriction but also because things could get  complicated with double-counting. You should be able to turn it off on one instance and enable in the other.
Looking at your stack trace it seems like a plugin collection was enabled and it's possible that that a previous attempt had a hold of the database without releasing it correctly when it ended.
Let me know if this continues to be an issue in future releases.

yeah I don't actually need it running on other instances, however I do not enable/disable collections every time I open other instances so whatever is on my main is on the alts. I suppose "simplest" would be to just have per character dbs, but I'll see how the lock release works some time this week when I can test it again


Feature Request #340

Don't let the branch name confuse you, this is a PR to add the first feature request mentioned in #340

Your commit history has lots of unrelated commits in it.

Fixed the appearance of unrelated commits and opened a new PR #709


Make Ctrl+Enter (quick submit) work for issue comment and wiki editor

This PR uses a more general method to handle quick submit  (Ctrl+Enter or Cmd+Enter).
With this PR, the editor for Edit Comment can respond to quick submit (which didn't before)
Partially fixes:

#14843

Then all the forms mentions in #14843 can be improved to benefit the quick submit after this PR.
This PR also removes the required SubmitReviewForm.Type check, now empty type (triggered by quick submit) means "comment".

Updated. And add js-quick-submit  class to more textareas

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@bcf13b6). Click here to learn what that means.
The diff coverage is 0.00%.

@@           Coverage Diff           @@
##             main   #19729   +/-   ##
=======================================
  Coverage        ?   47.35%
=======================================
  Files           ?      958
  Lines           ?   133603
  Branches        ?        0
=======================================
  Hits            ?    63268
  Misses          ?    62676
  Partials        ?     7659

Impacted Files
Coverage Δ

services/forms/repo_form.go
40.76% <0.00%> (ø)

Continue to review full report at Codecov.

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

:rocket:


Custom IOutputFormatter not executed when using conventional routing

Description
I'm using conventional routing: I'm programmatically assigning templates to controllers, ie not using [ApiController][Route(" .. ") but an IApplicationModelConvention implementation. Also, I have a custom IOutputFormatter. The bug is that my custom formatter is not always executed: it depends on how my routing is configured. Below is my controller in which I use conventional routing
// controller
public class WeatherForecastConventionRoutingController : ControllerBase
{
    [HttpGet] public object Get() => Ok("foobar");
    [HttpGet("foos")] public object GetFoos() => NotFound("foobar");
    [HttpGet("bars")] public object GetBars() => NotFound();
}

When triggering the first and second actions my formatter is executed. For the last action my custom formatter is entirely skipped.
This behaviour is different when using attribute based routing. In this case, for all three actions below my custom outputter is executed:
[ApiController]
[Route("[controller]"))]
public class WeatherForecastAttributeRoutingController : ControllerBase
{
    [HttpGet] public object Get() => Ok("foobar");
    [HttpGet("foos")] public object GetFoos() => NotFound("foobar");
    [HttpGet("bars")] public object GetBars() => NotFound();
  }

This behaviour being different is unexpected and I believe it is a bug.
To Reproduce
Clone this repro repository. Run it and check out and hit the endpoints

/weather-forecast-convention           // => "barfoo"
/weather-forecast-convention/foos      // => "barfoo"
/weather-forecast-convention/bars      // => bug: no content

/weather-forecast-attribute               // => "barfoo"
/weather-forecast-attribute/bars      // => "barfoo"
/weather-forecast-attribute/foos      // => "barfoo"

All of them should return the same output but this is not the case.
Use-case
In case the reader is wondering why this is relevant: I'm working on a framework that implements json:api. We're using conventional routing because we want to programmatically configure routing for better extensibility and at the same time we want to use a custom formatter to add additional error details when an entity is not found.
The work-around for now is to return NotFound(null) instead of NotFound().
Further technical details
.NET Core SDK (reflecting any global.json):
 Version:   3.0.100
 Commit:    04339c3a26

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  10.14
 OS Platform: Darwin
 RID:         osx.10.14-x64
 Base Path:   /usr/local/share/dotnet/sdk/3.0.100/

Host (useful for support):
  Version: 3.0.0
  Commit:  7d57652f33

.NET Core SDKs installed:
  2.1.700 [/usr/local/share/dotnet/sdk]
  2.2.301 [/usr/local/share/dotnet/sdk]
  3.0.100 [/usr/local/share/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.11 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.2.6 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.11 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.2.6 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.0.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.1.11 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.13 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.2.6 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.0.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

@maurei thanks for contacting us.
@pranavkm Can you tell what's going on here/what's missing?

Do you have an [ApiController] annotation in the first case? If not, that might explain the difference - controller instances annotated with ApiController attribute transform status code results in to ObjectResults with ProblemDetails - https://docs.microsoft.com/en-us/aspnet/core/web-api/?view=aspnetcore-3.0#problem-details-for-error-status-codes. In the absence of the ApiController annotation, all you have is a regular status code result which does not need to be formatted.

We're using conventional routing because we want to programmatically configure routing for better extensibility and at the same time we want to use a custom formatter to add additional error details when an entity is not found.

Why not add a result filter that transforms NotFoundResult \ NotFoundObjectResult to return a custom result type?

Thanks for your time guys, greatly appreciated
Yes the lack of [ApiController] is one case is the difference, see the repro repository.

all you have is a regular status code result which does not need to be formatted.

I.e. the formatters not being executed is by design? That troubles me a bit from an intuitive point of view.

In the typical usage of the boilerplate project there might not be any content to format, but that shouldn't necessarily mean that there is nothing to format. And I feel like the result filter isn't the place to do that?
In the current design the developer needs to know how .net core internally handles return NotFound() versus return NotFound(content) in the presence or absence of [ApiController].  (Is there documentation about this?) I feel like switching from attribute routing to conventional routing shouldn't affect the middleware any other than what is necessary for routing

Why not add a result filter that transforms NotFoundResult \ NotFoundObjectResult to return a custom result type?

I guess I could. But is this the intended way to deal with this? My concerns with this are:

The custom errors that we add are shaped in the same format as our regular API content (which is the json:api format), i.e. the same serializer is used. I feel it shouldn't be necessary to have to inject his custom serializer in another place than the formatter or (multiple places in general) to give shape to result content
The result filters aren't executed in the case of exceptions or short-circuit because of authorization. That means, afaik, in my case I would only have to use a filter like this because I switched away from using [ApiController]

Thanks again for your time 👍

Any update on this?

.e. the formatters not being executed is by design?

Yes, formatters are only invoked when there are objects to serialize. There are plenty of action result types, including StatusCodeResult, FileStreamResult, ViewResult, ChallengeResult etc, that do not incur a formatter being invoked.

The result filters aren't executed in the case of exceptions or short-circuit because of authorization

You should use an IAlwaysRunResultFilter.


Optimal Approved Assignment using Phragmén

Update staking module to allow nominators to approve any number of validators, and then they should be optimally assigned off-chain using Phragmén.
This will require off-chain compute, so until that is done, the algorithm should do the assignment on-chain.
Basic implementation of Phragmén is here: https://github.com/w3f/consensus/blob/master/NPoS/simplePhragmén.py

To be implemented here #1782.


Design: Contracts called

To show the unique strength of Clarity, we should show what other contracts a contract would call during execution. I believe we have designs for code lines executed but we don't seem to have a list of other contracts.
Compared to other Explorer mainnet release design tasks, this seems to be a medium priority.

@aulneau are you picking this up for dev or do you think there should be design changes? If the latter, please comment

@jasperjansz I don't believe this is currently possible from data exposed via the api. cc @zone117x

This would require something similar to this https://github.com/blockstack/stacks-blockchain/issues/1185
Seems pretty far away at the moment

moving this to the icebox so we can get back to it once we're closer to the data avilability


Oracle 11g enterprise docker image

Will there be a docker image for 11g enterprise ?

No. Oracle Database 11g has left primary support and as such, we will not be creating a Docker image for it. However, you may find some third-party images that you can adapt and use.


What need to do if some training slices are all background?

N foreground 0, N  background 1325572, unable to generate class balanced samples.

which tutorial?

My code is from the 2d segmentation tutorial. For the reason that the training slices are from a 3D volume, some slices don't have any target. Training with such dataset, the MONAI network reports this.

Did you solve this problem? I also encountered the same problem.Looking forward to receiving your reply, thank you!

@GOZGOXGOYGO, @KeqingWu check your label data. It should be int16 ranging 0-1.