Update TodoService.cs

https://learn.microsoft.com/en-us/aspnet/core/fundamentals/http-requests?view=aspnetcore-8.0#httpclient-and-lifetime-management
HttpClient instances can generally be treated as .NET objects not requiring disposal.
Summary
Describe your changes here.
Fixes #Issue_Number (if available)

Thanks for the PR, @AntonyNET - but I'm going to leave this as is.
While you're correct when consuming an HttpClient without the factory approach, that's not true when using IHttpClientFactory. It's fine to have them in a using as the factory manages the underlying HTTP message handler's lifetime (and they're not disposed of), see:

HttpMessageInvoker.Dispose
DefaultHttpClientFactory.CreateClient

For more info, see Guidelines for using HttpClient: Recommended use.

Thank you very much for the detailed answer.


Create 2021-02-19-layperson-lit-review.md

Figure 1 uses the same figure as Blog post from Freeze 3 (Figure 3 in this post https://www.covid19hg.org/blog/2020-09-24-freeze-3-results/). Only figures 2 and 3 are new and will be attached in the PR note

What kind of change does this PR introduce?
This is a new blog post for the lay person literature review

Does this PR introduce a breaking change?
It should not.

What needs to be documented once your changes are merged?
There are two images that need to be included where I have labeled figure 2 and figure 3 appropriately.
Figure 1 is from freeze 3's blog post https://www.covid19hg.org/blog/2020-09-24-freeze-3-results/ (figure 3 in this link for freeze 3 but it is now referred to as figure 1 in this lit review)

Please see this commit on how to properly include images in bloom posts.
https://github.com/covid19-hg/covid19hg/commit/e395e3abb33696701705db1a65b6aedee22c7e8b

Now moved to this https://github.com/covid19-hg/covid19hg/pull/144


feat(content): set height to make it accessible for childs

Short description of what this resolves:
Makes height of content available for childs.
Changes proposed in this pull request:

add height: 100%; to scroll-inner class of content component.

Ionic Version:   4.x
Fixes: #14771

Thank you for the PR!

Thanks for the fast response :) I really appreciate your work.


Migrate Data chats flock to office 365

Hello,
I need migrate Flock (Communication & Collaboration Platform for Modern Teams) to Microsoft Teams (Office 365), how to do it?,
for examples, groups, chats, images and documents.

@cesaralcazar thank you for submitting feedback.
I think the best way forward is if you open a service ticket in your tenant so this can get resolved ASAP. Based on the outcome let me know if it is something that can be called out in the docs.
Please follow this link to contact support for business products:https://docs.microsoft.com/office365/admin/contact-support-for-business-products
Please keep us posted here on the resolution so we can feed whatever information you discover into the content.


--showConfig change to show all config, jest-editor-support fails

Summary
jest 21.0.0
--showConfig flag will return configs

Codecov Report

Merging #4494 into master will increase coverage by 0.02%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #4494      +/-   ##
==========================================
+ Coverage   56.85%   56.87%   +0.02%
==========================================
  Files         186      186
  Lines        6300     6303       +3
  Branches        3        3
==========================================
+ Hits         3582     3585       +3
  Misses       2717     2717
  Partials        1        1

Impacted Files
Coverage Δ

packages/jest-editor-support/src/Settings.js
100% <100%> (ø)
:arrow_up:

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 3aebe4f...6a1aa10. Read the comment docs.

@connectdotz  done

cc @orta pls review

Ye[ - this looks 👍
Thanks @cpojer

@recca0120, @orta, I haven't really tested this, but looking at the code further, it strikes me that the change might break the older jest version which still output config... can you confirm?

Hrm, yeah, that's a good point - this would only support Jest 21.
I missed this, at this point we don't know what version of Jest someone is running. Could we possibly check the response and support both?

That sounds right, if configs is not available, just fall back to config. @recca0120 do you want to push a PR to fix it?

yes, I'll send PR to fix it laster


How to setup GTP CHAT

I don't know how to set up Open AI Chat. I review all documents from Project and still nothing...

I don't know how to set up Open AI Chat. I review all documents from Project and still nothing...

/Setup fun

solved


Mixin type inference ignores previous mixins with explicitly specified types

Consider the following code:
class A extends Object with B<String>, C {}
class B<T> {}
class C<T> extends B<T> {}

Class A's use of mixin C should be inferred as C<String>, since the base class of the mixin application (Object with B<String>) satisfies C's supertype constraint with T = String.
The analyzer version of mixin type inference currently fails to notice this during error generation, since it skips over B<String> entirely during analysis (due to the fact that it explicitly specifies a type).

Fix is out for review: https://dart-review.googlesource.com/c/sdk/+/44440


callout: Update docs to use accordion for conditional reveal

Updates docs for Callout to the new design which includes using accordions for conditional reveal and a colour section for dark palette.
View preview
Checklist
Preflight

[x] Prefix the PR title with the slug of the package or component - e.g. accordion: Updated padding or docs: Updated header links
[x] Describe the changes clearly in the PR description
[x] Read and check your code before tagging someone for review
[x] Create a changeset file by running yarn changeset. Learn more about change management.

Testing

[x] Manually test component in various modern browsers at various sizes (use Browserstack)
[ ] Manually test component in various devices (phone, tablet, desktop)
[x] Manually test component using a keyboard
[x] Manually test component using a screen reader
[ ] Manually tested in dark mode
[x] Component meets Web Content Accessibility Guidelines (WCAG) 2.1 standards
[ ] Add any necessary unit tests (HTML validation, snapshots etc)
[ ] Run yarn test to ensure tests are passing. If required, run yarn test -u to update any generated snapshots.

Documentation

[ ] Create or update documentation on the website
[ ] Create or update stories for Storybook
[ ] Create or update stories for Playroom snippets

Creating new component

[ ] Document the component for the website (docs/overview.mdx and docs/code.mdx at a minimum)
[ ] Preconstruct entrypoint has been created (run yarn in the root of the repo to do this)
[ ] Changeset file includes a minor
[ ] Export components for docs site and Playroom (docs/components/designSystemComponents.tsx)
[ ] Add component to Kitchen Sink (.storybook/stories/KitchenSink.tsx)
[ ] Add snippets to Playroom (docs/playroom/snippets.ts)
[ ] Add pictogram to Docs (docs/components/pictograms/index.tsx)

Conflicts 😢


Added password mode to text inputs

I came in today wanting to update to hide passwords in the UI, and found a PR that already did it.
Thanks!


[Feature request] Add one  colorscheme for popup

There are already two colorschemes for popup, if you don't like them, you can customize the colorscheme by yourself. I'm not sure whether you will satisfy with it if I add one.


app.import is not a function

When referencing ember-faker as a dependency, not a devDependency the build fails with
TypeError: app.import is not a function
    at CoreObject.included (/Users/paul/Projects/ember-sp-models/node_modules/ember-faker/index.js:12:17)
    at /Users/paul/Projects/ember-sp-models/node_modules/ember-cli/lib/models/addon.js:248:34
    at Array.map (native)
    at CoreObject.eachAddonInvoke (/Users/paul/Projects/ember-sp-models/node_modules/ember-cli/lib/models/addon.js:246:24)
    at CoreObject.extend.included (/Users/paul/Projects/ember-sp-models/node_modules/ember-cli/lib/models/addon.js:385:10)
    at CoreObject.superWrapper [as included] (/Users/paul/Projects/ember-sp-models/node_modules/ember-cli/node_modules/core-object/lib/assign-properties.js:32:18)
    at EmberAddon.<anonymous> (/Users/paul/Projects/ember-sp-models/node_modules/ember-cli/lib/broccoli/ember-app.js:435:15)
    at Array.filter (native)
    at EmberAddon.EmberApp._notifyAddonIncluded (/Users/paul/Projects/ember-sp-models/node_modules/ember-cli/lib/broccoli/ember-app.js:430:45)
    at EmberAddon.EmberApp [as appConstructor] (/Users/paul/Projects/ember-sp-models/node_modules/ember-cli/lib/broccoli/ember-app.js:109:8)
    at new EmberAddon (/Users/paul/Projects/ember-sp-models/node_modules/ember-cli/lib/broccoli/ember-addon.js:38:8)
    at module.exports (/Users/paul/Projects/ember-sp-models/ember-cli-build.js:6:13)
    at CoreObject.module.exports.Task.extend.setupBroccoliBuilder (/Users/paul/Projects/ember-sp-models/node_modules/ember-cli/lib/models/builder.js:54:19)
    at CoreObject.module.exports.Task.extend.init (/Users/paul/Projects/ember-sp-models/node_modules/ember-cli/lib/models/builder.js:89:10)
    at CoreObject.superWrapper [as init] (/Users/paul/Projects/ember-sp-models/node_modules/ember-cli/node_modules/core-object/lib/assign-properties.js:32:18)
    at CoreObject.Class (/Users/paul/Projects/ember-sp-models/node_modules/ember-cli/node_modules/core-object/core-object.js:32:33)

This solution is copied from: https://github.com/ember-cli/ember-cli/issues/5747

Thanks!

Published to npm as<EMAIL_ADDRESS>


Propagate Request Headers to client.go

Changes
Based on changes in https://github.com/databricks/databricks-sdk-go/pull/572.
This PR adds initial support for headers in client.go. The impl.go implementations, when making a request, will construct a map of headers to be included in the request. These are passed through a new parameter in client.Do().
In the future, to support dynamic headers, we can modify our codegen template to add those fields to the headers map before calling the client.
Alternatives considered:

Adding headers in request objects directly: this would not require any change in the client interface. Instead, we would introduce a new annotation for headers, much like what we do for query parameters, and reflectively scan the fields of each request object. We could do this, but for headers that have a fixed value (like Content-Type and Accept), these fields would essentially be private final fields that we could iterate through. Users can never interact with these fields, so it seems a bit unusual to have them in the request structure, a public interface.

Tests

[ ] make test passing
[ ] make fmt applied
[ ] relevant integration tests applied

Codecov Report
Patch coverage: 1.60% and project coverage change: -1.74% :warning:

Comparison is base (8fdffbe) 18.26% compared to head (c458855) 16.53%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #589      +/-   ##
==========================================
- Coverage   18.26%   16.53%   -1.74%
==========================================
  Files          85       85
  Lines        9987    11124    +1137
==========================================
+ Hits         1824     1839      +15
- Misses       8004     9126    +1122
  Partials      159      159

Files Changed
Coverage Δ

service/billing/impl.go
0.00% <0.00%> (ø)

service/catalog/impl.go
0.00% <0.00%> (ø)

service/iam/impl.go
0.00% <0.00%> (ø)

service/iam/model.go
0.00% <ø> (ø)

service/jobs/impl.go
0.00% <0.00%> (ø)

service/ml/impl.go
0.00% <0.00%> (ø)

service/pipelines/impl.go
0.00% <0.00%> (ø)

service/provisioning/impl.go
0.00% <0.00%> (ø)

service/settings/impl.go
0.00% <0.00%> (ø)

service/sharing/impl.go
0.00% <0.00%> (ø)

... and 5 more

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


oneOf with type: null breaks validation

What version of Ajv are you using? Does the issue happen if you use the latest version?
Latest
Test case
const ajv = require('ajv');

const v = new ajv({ removeAdditional: true, coerceTypes: true });

v.addMetaSchema(require('ajv/lib/refs/json-schema-draft-06.json'));

v.addSchema({
    "$id": "test-schema.json",
    "$schema": "http://json-schema.org/draft-06/schema#",
    "definitions": {
        "test::Test": {
            "type": "object",
            "properties": {
                "id": {"type": "number"},
                "name": {"oneOf": [{"type": "string"}, {"type": "null"}]},
                "num": {"type": "number"}
            },
            "required": ["id"]
        }
    }
});

const t = v.compile({ '$ref': 'test-schema.json#/definitions/test::Test' });

const obj = { id: "1", name: null, num: "2" };

t(obj);

console.log(t.errors);

console.log(obj);

Validation result, data AFTER validation, error messages
[
  {
    keyword: 'oneOf',
    dataPath: '.name',
    schemaPath: 'test-schema.json#/definitions/test::Test/properties/name/oneOf',
    params: { passingSchemas: [Array] },
    message: 'should match exactly one schema in oneOf'
  }
]
{ id: 1, name: null, num: '2' }

What results did you expect?
{ id: 1, name: null, num: 2 }

It passes validation if I change oneOf to anyOf, but the result is then
{ id: 1, name: '', num: 2 }
While I expect
{ id: 1, name: null, num: 2 }
Can you PLEASE make ajv never convert nulls to anything?..)

Can you use “type”: [“null”, “string”]?

Having to maintain a specific order sucks :)
And anyway, the order doesn't fully fix the number|string case: number|string will convert strings to numbers, and string|number with convert numbers to strings. But both should probably just do nothing because both types are allowed...

number|string case will also convert "1.000000000000000001" to just 1, which is a precision loss. It's probably a small loss, but it's still a loss :)

Using a single type keyword with multiple types addresses the issue (and the order is not important in this case). For OpenAPI schemas that don’t allow multiple types there is “nullable” keyword they define.
Using oneOf to allow “null” and some other type is an anti-pattern, do not use it and use one of the option above.
Allowing the same property to be either a number or string can also be addressed with multiple
types but it is also an anti-pattern - a property should have one type allowed, possibly nullable.
The only legitimate use case for oneOf/anyOf keyword is discriminator pattern - the fact it is defined in a general Boolean logic way is a mistake in JSON Schema design that leads to multiple solutions to lens with tools and that causes OpenAPI to resort to workarounds and deviation from the JSON Schema spec.
Going to close the ticket - I don’t have any plans to change the coercing functionality - you just have to structure your schemas taking above into the account.

I have a lot of cases where I am accepting a hash with arbitrary "scalar" values which are string|number in case of json and I don't f*ing care if this is an antipattern or not... :-) my backend needs it, and js is a dynamic language after all. Also I'm sure that string containing a number must be indistinguishable from just the number for the backend. Other cases of coercion like arrays or string json decoding are unimportant or maybe even harmful, but string/number case is a must...
Ok, thanks for the discussion anyway, it seems I'll try to patch ajv myself, because current coerce functionality just breaks the data for me.

Can you use “type”: [“null”, “string”]?

Learning how to use the library and guided me into the right direction.

Hello and thank you for creating ajv!
I also ran into this issue today. My openapi 3.0 schema for a particular property looks like this:
                    "myProperty": {
                        "oneOf": [
                            {
                                "type": "integer",
                                "nullable": true
                            },
                            {
                                "type": "string",
                                "nullable": true
                            }
                        ]
                    }

However, ajv reports an error when the property is null.
"message": "must match exactly one schema in oneOf"

Changing oneOf to anyOf makes the error go away, but I definitely expected oneOf to work. Thank you!

I have the same issue today. using type: ['integer', 'null'] seems to work, but will show incorrect results in Swagger UI in Fastify (fastify is using ajv validator under the hood).


[Episode idea] BPF LSM

Security enforcement using eBPF programs

covered in episode 29 https://www.youtube.com/watch?v=OBFYMBHrstI&list=PLDg_GiBbAx-mY3VFLPbLHcxo6wUjejAOC&index=42


Interactive Plots: open fifty open gui in separate jupyter lab tab?

Hello,
I'm also using jupyterlab and I'm interested in opening the "fiftyone"-GUI in a seperate "jupyter lab" tab
as visualized here:
https://voxel51.com/docs/fiftyone/user_guide/plots.html#view-plots
There it seems to be a separte jupyter lab tab?
I only know #session.open_tab(), but this open a separate browser tab instead of jupyter lab tab and I really want to see both elements side by side?
Thank you

thank you!


panic: runtime error: invalid memory address or nil pointer dereference

Hi,
on my vm the exporter crashed if i curl the metrics, i get a segfault:
./mongodb_exporter-linux-amd64 -mongodb.uri "mongodb://user:password@<IP_ADDRESS>:27017/database?replicaSet=rs0&authSource=admin"
Listening on :9001 (scheme=HTTP, secured=no, clientValidation=no)
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x508228]

goroutine 22 [running]:
panic(0x73d340, 0xc42000e090)
        /usr/local/go/src/runtime/panic.go:500 +0x1a1
github.com/dcu/mongodb_exporter/collector.(*PreloadStats).Export(0x0, 0xc420052240)
        /Users/dc/code/go/src/github.com/dcu/mongodb_exporter/collector/metrics.go:363 +0x38
github.com/dcu/mongodb_exporter/collector.(*ReplStats).Export(0xc42020ecc0, 0xc420052240)
        /Users/dc/code/go/src/github.com/dcu/mongodb_exporter/collector/metrics.go:352 +0x90
github.com/dcu/mongodb_exporter/collector.(*MetricsStats).Export(0xc42020bb80, 0xc420052240)
        /Users/dc/code/go/src/github.com/dcu/mongodb_exporter/collector/metrics.go:435 +0x4c7
github.com/dcu/mongodb_exporter/collector.(*ServerStatus).Export(0xc42008f9a0, 0xc420052240)
        /Users/dc/code/go/src/github.com/dcu/mongodb_exporter/collector/server_status.go:111 +0x1f9
github.com/dcu/mongodb_exporter/collector.(*MongodbCollector).collectServerStatus(0xc420048f50, 0xc4200f8680, 0xc420052240, 0x7235e0)
        /Users/dc/code/go/src/github.com/dcu/mongodb_exporter/collector/mongodb_collector.go:85 +0xe3
github.com/dcu/mongodb_exporter/collector.(*MongodbCollector).Collect(0xc420048f50, 0xc420052240)
        /Users/dc/code/go/src/github.com/dcu/mongodb_exporter/collector/mongodb_collector.go:64 +0x2d4
github.com/dcu/mongodb_exporter/vendor/github.com/prometheus/client_golang/prometheus.(*Registry).Gather.func2(0xc420054630, 0xc420052240, 0x928900, 0xc420048f50)
        /Users/dc/code/go/src/github.com/dcu/mongodb_exporter/vendor/github.com/prometheus/client_golang/prometheus/registry.go:433 +0x63
created by github.com/dcu/mongodb_exporter/vendor/github.com/prometheus/client_golang/prometheus.(*Registry).Gather
        /Users/dc/code/go/src/github.com/dcu/mongodb_exporter/vendor/github.com/prometheus/client_golang/prometheus/registry.go:434 +0x326

@Bodenhaltung did you manage to work around this? I got the same problem.

Facing same issue when I curl /metrics path

I didn't find a work around and switched to https://github.com/percona/mongodb_exporter

@tcurdt Thanks, can you share grafana dashboard link.

@tcurdt Thanks, can you share supported grafana dashboard link.

Not yet. Sorry.
Probably worth getting in touch with people from the percona project if you don't want to create it yourself.

Looks like it might be similar to #127 with the PR https://github.com/dcu/mongodb_exporter/pull/128


Update CRL expiration dates (no CRL changes)

Update CRL expiration dates (no CRL changes, just new expiry dates)

Now with gpg-signed commits


Migrate Existing usage of common.handleError() to common.handleDetailedError() to provide better Errors

Throughout the codebase there are many // TODOs that call for a more specific errors to be returned where possible.
In general these can be replaced by using common.handleDetailedError(). The criteria to find these and implement them properly would be:

The Server Status Object is built manually when passed as the third argument to handleError()
Above it there is already a detailed error message being logged that can be used instead
The error message being logged above doesn't include any details of the user initiating the action, or about the database structure.

The common pattern would be:
logger.generic(3, "Detailed error message only being output to logs.");
await common.handleError(req, res, {
  ok: false,
  short: "Server Error",
  content: "Package Name is banned",
});

Which could then be made into:
await common.handleDetailedError(req, res, {
  ok: false,
  short: "Server Error",
  content: "Detailed error message only being output to logs",
});

This issue has now become outdated, with the endpoint builder taking care of this


Wrong language detection, any makefile inside repo, but linguist detected that makefiles has 51%

Preliminary Steps
Please confirm you have...

[x] reviewed How Linguist Works,
[x] reviewed the Troubleshooting docs,
[x] considered implementing an override,
[x] verified an issue has not already been logged for your issue (linguist issues).

Problem Description

URL of the affected repository: https://github.com/bielu000/pe-dumper
Last modified on: 2018-08-20
Expected language: C/C++
Detected language:
Makefile 51.8%
CMake 19.8%
C++ 14.6%
C 12.3%
Tcl 1.5%

Hmmm, this appears to be a caching issue. I've just forced a reanalysis and it is now reflecting C as the only language in the repo, but the language bar hasn't picked this up this yet for some reason.
Try making another commit to the repo or give it some time for the caching to expire.


Feat/limit nominators per delegate

Description
This PR completes the feature of limiting the number of nominators per hotkey. Default value is set to 128, but it can be adjusted via admin extrinsic. Initially the code migrates by initializing counters using Stake state map, so that add_stake transaction don't need to run O(n) counting operation.
Related Issue(s)

Closes Issue #[347]

Type of Change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update
[ ] Other (please describe):

Breaking Change
n/a
Checklist

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

Screenshots (if applicable)
n/a
Additional Notes
n/a

Also i think this PR should be going into development not dynamic.


MAXO:0035056	spine MRI

MAXO:0035056	spine MRI

spine was already requested with ID MAXO:0035014. see #382 will not use this number.

 There doesn't appear to be an UBERON term that encompasses both.

The spine MRI gives information about both the spinal cord and the vertebral column. It is probably ok to use the uberon term for spinal cord since this the organ that the spinal MRI is often better at visualizing

Added term as spinal cord MRI under MAXO:0035014.


Refactor prepare-pipelines.yml

Depends on https://github.com/Azure/azure-sdk-tools/pull/8929

/azp run prepare-pipelines


Autorun after the app APK is updated

For kiosk app, after the app APK is updated (programmatically), we want the app to rerun itself.

Thanks!
Just need to make sure: are you sure it works?
I would say this should will not work with new prevention of multiple running instances, requested by #27 :
https://github.com/honza889/cordova-plugin-kiosk/blob/master/android/HomeActivity.java#L25

Yes, I have actually tested it on Android 4.4. It works like this:

After a new APK file is downloaded and installed, the app will be stopped. There's zero instance of the app and its activities.
The receiver in this PR will be called. It will start HomeActivity.


Update Minimum cloud-core Version

FireStore requires Google\Cloud\Core\TimeTrait which wasn't introduced into core until 1.20.0,
increasing the minimum allowed version should address the issue.

Hi @baileylo.
Thanks for the contribution. Rather than update only Firestore, I've opened #1219, which bumps the required version of core for all our clients. We'll get it released as soon as we can!


Don't show "False" last spawn time if it's 0.

Un-spawned workers has last_spawn 0, so lets not show false time "5:30".

Thanks again


Empty .obj file

Should loading an empty .obj file generate an error?

Absolutely yes.

Ah, ok.  I think I had an .obj file with only the name of a material in it and no other lines -- no error was generated, but accessing shapes[0].mesh.positions.size() caused a crash.  Is that correct?

Why not first check shapes.size()?

Ah, I see -- so an error is generated only for a completely empty .obj file but as long as there are some characters in the file we still need to manually check.

When .obj contains no triangles but lines, shapes will be zero and this would be expected behavior(adding support for parsing lines or other primitives are todo).


No window controls

No titlebar controls.
Currently on Windows.

Thank you for catching this. I do not use Obsidian on my Windows machine and didn't think to test there. If you go ahead and update the theme, the buttons should now be visible post-@a95f159. I'll see if I have some time this week to make them look a little nicer, but at least you can look at them now. :) Let me know if you notice anything else and hf with Stellaris, good game.


Bump snakeyaml to 2.0

Description

Backport https://github.com/opensearch-project/observability/pull/1465

Issues Resolved

CVE-2022-1471

Check List

[ ] New functionality includes testing.

[ ] All tests pass, including unit test, integration test and doctest

[ ] New functionality has been documented.

[ ] New functionality has javadoc added
[ ] New functionality has user manual doc added

[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #1513 (3e5b476) into 1.3 (2c2e257) will not change coverage.
The diff coverage is n/a.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff            @@
##                1.3    #1513   +/-   ##
=========================================
  Coverage     76.55%   76.55%
  Complexity      283      283
=========================================
  Files            38       38
  Lines          2158     2158
  Branches        228      228
=========================================
  Hits           1652     1652
  Misses          365      365
  Partials        141      141

Flag
Coverage Δ

opensearch-observability
76.55% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.


Fix stacktrace on Bazel build.

We need at least following defs to be set to print stacktrace in
failure signal handler.

HAVE_UNWIND_H: On Linux and macOS. unwind.h is usually present
by default on those systems.
HAVE_DLADDR: On macOS.

Note that today glog does not build with Bazel on Windows.
Resolves #346.

This would be super cool.

sorry for late.
seems PR is too old for buildkite verification.
could you rebase to master to pick up the changes to the WORKSPACE file and others?

Sure, rebased.


num-traits support (optional)

Currently num-traits is only in dev-dependencies.
As originally suggested here it would be useful to have some support for traits for abstracting across bignum libraries, which would make it possible for e.g. the rsa crate to use either crypto-bigint or num-bigint-dig.
Though num-traits probably lacks all of the requisite functionality to do that, it would get us quite a bit of the way there.

Currently num-traits is only in dev-dependencies.
As originally suggested here it would be useful to have some support for traits for abstracting across bignum libraries, which would make it possible for e.g. the rsa crate to use either crypto-bigint or num-bigint-dig.
Though num-traits probably lacks all of the requisite functionality to do that, it would get us quite a bit of the way there.

Is the absence of num-traits the reason for not using crypto-bigint in rsa, k256 etc.?
I am now compiling a list of all dependencies for the MPC project I am building, and obviously a bigint library is a prerequisite for many higher-level primitives (like the actual group code, for both Paillier and the elliptic curves k256, ed25519 etc. that I need).
I am very careful in my analysis, as for me it is important to know exactly the building blocks both theory and implementation wise. It is important for me to not have duplication, so e.g. relying on both crypto-bigint and num-bigint is something I'd go a long way to avoid. There is enough attack surface as it is, I don't want to be exposed to double the attack surface.
Now, regarding choosing which bigint library to use, crypto-bigint seemed the obvious choice for me:

because it is constant-time (num-bigint is not, afaik)
it is no-std pure-rust (which is important for me for WASM, but num-bigint seems to offer it)
it is developed by RustCrypto, which means the same developers of many other building blocks I plan to use anyway (like k256, and the hash functions, and maybe other tools).

But finding out crypto-bigint isn't even used internally within RustCrypto made me wonder how production-ready it is, and what was the reasons behind you choosing to work with num-bigint (is it purely for historical reasons? num-bigint was ready before crypto-bigint was, and you need to do the switch now? will supporting num-traits allow that transition?)
Thanks

Is the absence of num-traits the reason for not using crypto-bigint in rsa, k256 etc.?

k256 uses it via the elliptic-curve crate, at least using Uint for the internal Scalar implementation. The field implementations use unsaturated limbs, so retrofitting it into the existing arithmetic is somewhat problematic.
All of the other elliptic curve libraries we maintain use it for both the scalar and field implementations, although that's generally leveraging purpose-dedicated field arithmetic on saturated limbs. Support for Montgomery form in crypto-bigint is relatively new v0.5.0 about a month ago and we haven't attempted migrating yet.
crypto-bigint has 10 million downloads largely due to its use in the elliptic-curve crate and all of its downstream consumers.
The reason rsa (and dsa) don't use it is lack of heap-backed integers, which are needed to accommodate the widely varying key sizes used by these algorithms (as opposed to monomorphizing for multiple key sizes, or only monomorphizing for the largest supported key size and bailing out for slower ones).
It's something we plan to add but just haven't had time for.
It would be nice to be able to use traits to abstract between stack and heap-based big integers, so RSA and DSA can be implemented generically and the stack-based big integers used on heapless platforms.

Is the absence of num-traits the reason for not using crypto-bigint in rsa, k256 etc.?

k256 uses it via the elliptic-curve crate, at least using Uint for the internal Scalar implementation. The base field implementations in k256 use unsaturated limbs, so retrofitting it into the existing arithmetic is somewhat problematic.
All of the other elliptic curve libraries we maintain (e.g. p256, p384) use it for both the scalar and field implementations, although that's generally leveraging purpose-dedicated field arithmetic on saturated limbs, either implemented specific to a particular modulus or synthesized via fiat-crypto. Support for Montgomery form in crypto-bigint (i.e. Residue) is relatively new, shipping in v0.5.0 about a month ago, and we haven't attempted migrating yet.
crypto-bigint has 10 million downloads largely due to its use in the elliptic-curve crate and all of its downstream consumers.
The reason rsa (and dsa) don't use it is lack of heap-backed integers, which are needed to accommodate the widely varying key sizes used by these algorithms (as opposed to monomorphizing for multiple key sizes, or only monomorphizing for the largest supported key size and bailing out for slower ones).
It's something we plan to add but just haven't had time for.
It would be nice to be able to use traits to abstract between stack and heap-based big integers, so RSA and DSA can be implemented generically and the stack-based big integers used on heapless platforms.

Thanks for the detailed reply, however I was left even more confused because an apparent lack of knowledge on my side, I'd love if you'll clarify:

what are saturated and unsaturated limbs?
what do you mean by monomorphizing for a key size?
with Montgomery support in crypto-bigint, what can change?
which code is now generated via fiat-crypto?
and how do you imagine num-traits support in crypto-bigint? Is that for the generic BigInt object, or also for U256 etc.?

Thank you very much

what are saturated and unsaturated limbs?

Some bigint libraries do not use all of the bits of a limb. This is an unsaturated representation. There are a few different reasons for this: sometimes the unsaturated implementation can be more efficient, especially when leveraging e.g. special properties of the field modulus.
However, one of the most common reasons was better carry handling. Unsaturated representations could use part of a limb represent carry bits. The need for this has largely been obviated by using machine instructions which provide access to the carry bit, like add-and-carry (ADC), subtraction-with-borrow (SBB), and multiply-and-carry (MAC), all  of which are emitted by crypto-bigint on x86/x86_64 when using a saturated representation.

what do you mean by monomorphizing for a key size?

The size of a Uint is a const generic parameter, and thus determined at compile time.
With RSA, it'd be nice to use a 2048-bit Uint for 2048-bit keys, and a 4096-bit Uint for 4096-bit keys. In other words: to pick the number of limbs on the fly at runtime to match the key size.
Without a heap, the best you could do is having an enum over a U2048, U4096, and possibly others. This monomorphizes the arithmetic implementations specific to each size. Great for efficiency, less so for code bloat.
Heap-backed integers would allow dynamic sizes, reusing the same code regardless of the size, at the cost of efficiency.

with Montgomery support in crypto-bigint, what can change?

We could potentially use Residue as the internal type of various field elements, replacing various modulus-specific arithmetic implementations.

which code is now generated via fiat-crypto?

The arithmetic operations on the base and scalar fields for p224, p384, and p521 are all generated via fiat-crypto. We'll likely extend that to p192, bp256, and bp384 at some point too.

and how do you imagine num-traits support in crypto-bigint? Is that for the generic BigInt object, or also for U256 etc.?

Hopefully a generic implementation would work for all Uint regardless of the size.

what are saturated and unsaturated limbs?

Some bigint libraries do not use all of the bits of a limb. This is an unsaturated representation. There are a few different reasons for this: sometimes the unsaturated implementation can be more efficient, especially when leveraging e.g. special properties of the field modulus.
However, one of the most common reasons was better carry handling. Unsaturated representations could use part of a limb represent carry bits. The need for this has largely been obviated by using machine instructions which provide access to the carry bit, like add-and-carry (ADC), subtraction-with-borrow (SBB), and multiply-and-carry (MAC), all  of which are emitted by crypto-bigint on x86/x86_64 when using a saturated representation.

what do you mean by monomorphizing for a key size?

The size of a Uint is a const generic parameter, and thus determined at compile time.
With RSA, it'd be nice to use a 2048-bit Uint for 2048-bit keys, and a 4096-bit Uint for 4096-bit keys. In other words: to pick the number of limbs on the fly at runtime to match the key size.
Without a heap, the best you could do is having an enum over a U2048, U4096, and possibly others. This monomorphizes the arithmetic implementations specific to each size. Great for efficiency, less so for code bloat.
Heap-backed integers would allow dynamic sizes, reusing the same code regardless of the size, at the cost of efficiency.

with Montgomery support in crypto-bigint, what can change?

We could potentially use Residue as the internal type of various field elements, replacing various modulus-specific arithmetic implementations.

which code is now generated via fiat-crypto?

The arithmetic operations on the base and scalar fields for p224, p384, and p521 are all generated via fiat-crypto. We'll likely extend that to p192, bp256, and bp384 at some point too.

and how do you imagine num-traits support in crypto-bigint? Is that for the generic BigInt object, or also for U256 etc.?

Hopefully a generic implementation would work for all Uint regardless of the size.

Wow, that's an amazing answer.
I'll take a deeper look at Residue and num-traits with these new understandings.
One thing however, why use fiat-crypto in several libraries and not others?
Is there no way of generating generic big-num (or at least for a specific modulus size) code using fiat-crypto?

One thing however, why use fiat-crypto in several libraries and not others?

The libraries that don't use fiat-crypto have handwritten field arithmetic implementations which outperform the fiat-crypto synthesized code, namely k256 and p256.
k256 in particular supports lazy normalization which helps performance significantly. To my knowledge this is only supported in fiat-crypto for fields modulo Solinas primes.

Is there no way of generating generic big-num (or at least for a specific modulus size) code using fiat-crypto?

What would it be generic around? The modulus? (like Residue?)
fiat-crypto takes the field modulus as input, and generates code specific to that modulus. It doesn't have support for generic parameters in the synthesized implementations.

One thing however, why use fiat-crypto in several libraries and not others?

The libraries that don't use fiat-crypto have handwritten field arithmetic implementations which outperform the fiat-crypto synthesized code, namely k256 and p256.
k256 in particular supports lazy normalization which helps performance significantly. To my knowledge this is only supported in fiat-crypto for fields modulo Solinas primes.

Is there no way of generating generic big-num (or at least for a specific modulus size) code using fiat-crypto?

What would it be generic around? The modulus? (like Residue?)
fiat-crypto takes the field modulus as input, and generates code specific to that modulus. It doesn't have support for generic parameters in the synthesized implementations.

Sorry that was a problem in my wording. What I meant by generic is that it is not special-purpose for e.g. a specific curve but just a standard 128,256,2024,2048,4096 etc. bits long.
I guess that won't suffice for elliptic curves because they are not really using u256 but a ~256-bit (prime sometimes) modulos right?
Also, from your questions there seems to be a tradeoff between performance and security here? if you want the formal security grantees of fiat-crypto, you lose a little on performance?

fiat-crypto synthesizes field arithmetic, so it's all specialized to the properties of a particular field modulus.
There is a formal verification versus performance tradeoff, yes. We opt for better performance because that seems to interest our users more than formal verification.

fiat-crypto synthesizes field arithmetic, so it's all specialized to the properties of a particular field modulus.
There is a formal verification versus performance tradeoff, yes. We opt for better performance because that seems to interest our users more than formal verification.
Hopefully in the future fiat-crypto will improve performance and add features like lazy normalization.

I definitely am on the other side, and if formal verification is possible it is worth performance penalties. Esp when performance optimizations in these fields tend to be a factor under 2, at least from what I've seen so far.
However, from a brief look on fiat-crypto it seems that the Rust generated code isn't formally verified (no proof).
Also, I'm not sure what are the guarantees fiat-crypto formally proves: is it purely correctness, or also side-channel resistance (e.g. constant-time)
So I'd have to dig deeper, read the fiat-crypto papers before I decide the path to go.
Assuming that I end up deciding to go with fiat-crypto, what would be the best way to assure all my cryptographic building blocks rely on it?
My thoughts (although I need to take a deeper look into num-traits) are to rely on num-traits, and to adapt the fiat-crypto generated code to it later upon instantiation.
My question to you is - could we in the future rely on num-traits for elliptic-curve and k256? just asking if it's a possibility, not whether you are willing to do it ( I might decide to contribute it myself if I find it necessary, for now I just want to know if it's a valid option)?

Most of our downstream users would disagree I think, especially about k256.
The most common requests we get on k256 are for improved performance, particularly from prospective users who are using the C implementation.
We try to improve the performance with each release. The last release shipped variable-time inversions for verification, and the next will hopefully ship wNAF.
Another option is to provide both, ala curve25519-dalek which has a fiat backend, though that would also be a lot of work.
I'm honestly not sure about using num-traits as an abstraction for the purposes of the @RustCrypto crates. crypto-bigint already has its own traits which e.g. elliptic-curve uses.
For dsa and rsa, I'd probably rather add a heap-allocated equivalent of Uint like DynUint, which could implement the crypto-bigint internal traits. That would let us take advantage of other work being done within the crypto-bigint ecosystem, like crypto-primes.

fiat-crypto synthesizes field arithmetic, so it's all specialized to the properties of a particular field modulus.
There is a formal verification versus performance tradeoff, yes. We opt for better performance because that seems to interest our users more than formal verification.
Hopefully in the future fiat-crypto will improve performance and add features like lazy normalization.

I ran some benchmarking, and was really surprised at the results. I published the code so you can see that I haven't made any mistakes.
But results are (full trace is found in the readme file of the repo):

fiat-crypto field arithmetic (add, mul) is faster than k256
crypto-bigint::Residue arithmetic faster than k256 (but slower than fiat-crypto

How can this be explained? perhaps there's some error on my side?

Perhaps open an issue on https://github.com/rustcrypto/elliptic-curves

@tarcieri getting back to the subject of this issue, is this feature something we are planning on delivering? specifically, I care about implementing Num forDynResidue, so I can support multiple backend implementations when writing my code (as I'm doing Paillier, I need a dynamic modulus and the arithmetic operations defined for it.)

I think a num-traits impl would be great, but per the issue title I think it should be an optional rather than hard dependency

I think a num-traits impl would be great, but per the issue title I think it should be an optional rather than hard dependency

Optional as in a crate feature? that works for me. If so, I'll write my code assuming it and might contribute this feature later on.

Yep

Started to develop my code based on num-traits, but found an obstacle that I cannot overcome; the Num trait offers basic arithmetic operation over some field, probably meant to be over \Z. Whilst I do need that functionality, in order to perform Paillier operations we also need to sometime think of those numbers as over \Z_{N^2} or \Z_N.
My original thinking was to implement Num for DynResidue, which I think could work:

specifically, I care about implementing Num forDynResidue, so I can support multiple backend implementations when writing my code (as I'm doing Paillier, I need a dynamic modulus and the arithmetic operations defined for it.)

But not only that this won't work in-tandem with normal (over $\Z) Uint operations, I'm not even sure how to implement Num for Uint: for example, Mul expects to output Self, which is not the case for Uint which outputs Self::Concat which is the "next-size" type (so we'd have U128 outputting U256, which makes sense but does not comply with the Num interface.)
So:

I'm not sure what was your original intention with implementing num-traits.
I believe the no num-traits interface could supply me with the operations I need for Paillier.

An interface that does, however, comply with what I need for Paillier is curv::BasicOps + curv::Modulo.
However, this trait has the same restriction as Num - it operates on the same type for both input and output of arithmetic operations so that I believe that it can't be implemented for Uint.
Would love to hear your thoughts on this @tarcieri

num-traits is now a hard dependency. #433 added quite a few trait impls.
It would be nice to impl Num, and there are a few PRs open to do that, but to really do that properly I think we need to finish up #246 and/or #247.
I'm going to close this and suggest #218 as a place to follow up on Num support for now.


Upgrading to 1.3.3 creates compile error

Hi,
after upgrading to version 1.3.3 I get the following error:
C/C++ debug|armeabi-v7a : CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
JSI_LIB

Donwgrading to 1.3.2 again solves this issue.

the same problem
"react-native": "^0.63.x",
"react-native-mmkv": "^1.3.3",
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':react-native-mmkv:generateJsonModelDebug'.
> /home/i/all_work/thera/mobile-thera-app/node_modules/react-native-mmkv/android/CMakeLists.txt : C/C++ debug|armeabi-v7a : CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
  Please set them or make sure they are set and tested correctly in the CMake files:
  JSI_LIB
      linked by target "reactnativemmkv" in directory /home/i/all_work/thera/mobile-thera-app/node_modules/react-native-mmkv/android

@mrousavy
https://github.com/mrousavy/react-native-mmkv/blob/e0527fc64466b82da1b285c427a921894e3cd8b2/package.json#L69-L72
How about removing dirty versions ^^^ and use something valuable >=0.66.0

@mrousavy no stress. I just wanted to report the issue. For me that is not a problem.

Will this ever get fixed?

@Albermonte

Will this ever get fixed?

As you can read in my previous comment, there is a solution for this problem. Simply use RN 0.66. In said comment, I also said that I will take a look at this when I have some free time. I didn't have free time to fix your issues yet, since I am busy running a company and enjoying life. Instead of rudely asking someone that provides an awesome project for free to fix your issues, why not try to fix it yourself and contribute to the project you are using for free?

@mrousavy totaly agree. Your work is really bringing react-native forward. Some people do not understand what work is put into these kind of libraries and aparently do not appreciate it. This really is a downside of open-source...
As a gesture, I bought you a coffee :D

@mrousavy All I did was asking if it was going to be fixed becuase there were no new info after almost 2 months and wanted to know if you are still working on this or just ignoring the error because it works on the latest RN version.
Sorry if the message was rude or similar, not my intention.
If you have any idea why it's not working with RN <0.66 I can try to fix it and open a PR.
Cheers

All good, I'm sure it's just the form of communication, hard to tell a tone over the internet.
No, I am not currently investigating this, since react-native-mmkv is as fast as ever and works great in the example/ app here, as well as in 3 apps I am using in production.
If you find a fix that works for you, I am very happy to test your PR if it still works in my apps, and if it does we can get that to master asap. :)
Have a nice weekend y'all

Also, thank you Alex for the Coffee. Much appreciated! 🖤

The issue is here
RN < 0.66 doesn't need that block, while other libraries like react-native-mmkv-storage
 use something like this:
if (JSI_LIB)
  # React Native 0.66.x and above
  find_library(
        JSI_LIB
        jsi
        PATHS ${LIBRN_DIR}
        NO_CMAKE_FIND_ROOT_PATH
  )
endif()

That doesn't work here, no idea why, the JSI_LIB var is always empty, so it will only work for RN < 0.66.
I got it working for RN 0.66 with that code but only sometimes, so will use patch-package with RN < 0.66 until a proper fix is  found.
If anyone wants it:
react-native-mmkv+1.5.3.patch
diff --git a/node_modules/react-native-mmkv/android/CMakeLists.txt b/node_modules/react-native-mmkv/android/CMakeLists.txt
index 8784d6b..434d8b1 100644
--- a/node_modules/react-native-mmkv/android/CMakeLists.txt
+++ b/node_modules/react-native-mmkv/android/CMakeLists.txt
@@ -31,12 +31,7 @@ find_library(
         log-lib
         log
 )
-find_library(
-        JSI_LIB
-        jsi
-        PATHS ${LIBRN_DIR}
-        NO_CMAKE_FIND_ROOT_PATH
-)
+
 find_library(
         REACT_NATIVE_JNI_LIB
         reactnativejni

Thaks for the solution, @Albermonte

Add support for react-native 0.71 to fix CMake Error: The following ariables are used in this project, but they are set to NOTFOUND. FBJNI_LIB


docs: Nav - Examples need to have a dark background so they are visible when the light theme is toggled on.

When light theme is toggled on, the nav component examples are hard/impossible to see. Should be placed inside a container with a background of colorsBackgroundDark[2].
https://design-system.pluralsight.com/components/nav

lol, awesome

orrrr, make nav light themeable
(given my DAP work this morning, this was on my mind.)


Is there a way to order routes?

I have two APIs: users\{id} and users\recent. I'm trying to call the latter one, but it always calls the former one instead. Is there a way to set order or priority?

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

ID: cef2688f-faa5-5209-ea5f-23228851c6ec
Version Independent ID: 2d621670-0e4e-e4c7-bb27-a4700fa8fd36
Content: Create a serverless API using Azure Functions
Content Source: articles/azure-functions/functions-create-serverless-api.md
Service: functions
GitHub Login: @mattchenderson
Microsoft Alias: mahender

@MisinformedDNA Thanks for the feedback. We are actively investigating and will get back to you soon.

Not sure I fully understand the problem. How are you calling these APIs? Are you saying regardless of the GET command you always get the same API call back even when specific a different API ID?

There are two functions in the same app, both have a GET verb and both have defined routes:
        [FunctionName("GetRecent")]
        public static IActionResult GetRecent(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "lists/recent")]HttpRequest req,
            TraceWriter log)
        { ... }

        [FunctionName("GetList")]
        public static IActionResult Get(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "lists/{id}")]HttpRequest req,
            string id,
            TraceWriter log)
        { ... }

As you can see, these routes overlap when id equals recent. To avoid these issues, ASP.NET MVC would let us define a route order, but I don't see that option here. So how does Azure Functions know which function to run? Right now, whenever I make a GET request to https://localhost:7071/api/lists/recent, it always accesses GetList instead of GetRecent, regardless of the order they are defined. Based on a guess, they may be running in alphabetical order of the FunctionName, but I'm not sure.
NOTE: The APIs are being called from .NET apps and the browser with the same result.

Thanks for that. I am checking with the functions team offline to get an answer.

@MisinformedDNA , are you observing this on the V1 or V2 Functions runtime?

@kashimiz v2

@MisinformedDNA the ability to define route order is not exposed today. My recommendation for your scenario, for now, would be to add an appropriate route constraint (e.g. a constraint to your id in the route template) to avoid ambiguity. That would prevent having recent qualify as an id.

Oh OK, so I could do something like
Route = "lists/{id:minlength(10)}"

That'll works for me.
@fabiocav Is there an issue tracking this?

This tracks the validation to detect ambiguous routes, which is similar to what we had in V1:
https://github.com/Azure/azure-functions-host/issues/3152
Implicit route priority (most to least restrictive) is another enhancement to be made, but we don't have anything tracking explicit order/priority.

I created https://github.com/Azure/azure-functions-host/issues/3153 to track route priority.

Unfortunately can't use Route constraints for a guid id. It fails to bind it to a Guid parameter!

@audipen See https://docs.microsoft.com/en-us/aspnet/core/fundamentals/routing?view=aspnetcore-2.1#route-constraint-reference. You should be able to use {id:guid}. Or, alternately, you can accept a string and convert to a Guid yourself.

What if you have a routing like:
survey/{id}
survey/{id}/pay
I'd like to order the later first.  As of now I'm having the same prob as described above.  When I call survey/{id}/pay it is hitting the first route :(

I created a nuget package for this scenario, see https://www.nuget.org/packages/AzureFunctionsRoutePriority/1.1.1 and https://github.com/peterdol/azure-functions-route-priority. It applies to proxies as well. Please use at your own risk and test it well, I only created and tested it for my own needs and use cases.

I created a nuget package for this scenario, see https://www.nuget.org/packages/AzureFunctionsRoutePriority/1.1.1 and https://github.com/peterdol/azure-functions-route-priority. It applies to proxies as well. Please use at your own risk and test it well, I only created and tested it for my own needs and use cases.

Disappointing there is no update on this... is it possibly fixed in .NET 5 functions?

Fun trick I learned today. You can manage this order alphabetically via the names of functions. Priority is by descending alphabetical order, at least in my very limited testing.
Original:
// Called first
[FunctionName("Download")]
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = "{**path}")]

// Never called
[FunctionName("Service")]
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = "Service")]

Put a function first:
// Called second
[FunctionName("Download")]
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = "{**path}")]

// Called first
[FunctionName("a_Service")] // Function names are required to start with a letter
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = "Service")]

Put a function last:
// Called last
[FunctionName("z_Download")]
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = "{**path}")]

// Called first
[FunctionName("Service")] // Function names are required to start with a letter
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = "Service")]

Note that extended ascii is not supported in function names, so no Ω Functions. The regex for function names is here:
https://github.com/Azure/azure-webjobs-sdk/blob/3f4ec78be9f43bb041937425ced00b341883aa42/src/Microsoft.Azure.WebJobs/FunctionNameAttribute.cs#L35

Just to add to this in 2022. I have some endpoints that work fine, but others that break as described. For example users/me and users/{userId} work just fine, but orders/me and orders/{orderId} do not. There doesn't really seem to be a rhyme or reason as to why it breaks.

@AverageCakeSlice Per https://github.com/Azure/azure-functions-host/issues/3153#issuecomment-1073158123, it may have something do to the alphabetical order.

@AverageCakeSlice Per Azure/azure-functions-host#3153 (comment), it may have something do to the alphabetical order.

Yes. I am hitting this issue as well. Very mysterious until I found this thread. It is very surprising that the route is not prioritized by more specific > less specific. Isn't that how it works in frontend routing normally?

Just run into the same issue. Any plans to fix it?


Can't apply silktouch to emerald hammer via Anvil

I cannot apply silk touch to emerald hammer by anvil & enchantment book, is this intended?
Btw, can you please make a list of enchantments available for hammers?

The Silk Touch issue was fixed in one of the 1.16.2 versions, iirc. Available enchantments are the exact same as Pickaxes, with the addition of the Curse of Gigantism.

Oh... I am sorry, I thought I have downloaded the latest version.


Create a prototype wrapper for the different clic methods

In this pull request I created several options to wrap the Clic methods in Java. I have created 6 possible methods that take up different possible arguments. We do not need to include all of them and we can iterate over them to achieve what we exactly want. I am drafting this pull request because it is easier to work on something that already exists and it is not just an idea:

public static ArrayJ absolute(ArrayJ input): creates an output array with the same characteristics as the input array (data type, memory type, device, dimensions), performs the absolute operation on it and returns it.

public static void absoluteInPlace(ArrayJ input, ArrayJ output): checks that both arrays have the same characteristics (data type, memory type, device, dimensions), performs the absolute operation on the input array modifying the output array. In this case the method does not return anything and the output array is modified inplace. Output cannot be null.

The following methods are taking some of the responsability that CliJ or ClicIcy would have as they accept objects from ImagePlus, ImgLib2 or Icy. However, the possibility of using standalone Clesperanto without other dependencies still exist. This is possible thanks to reflection. Looking at the class imports:
import java.util.Arrays;

import net.clesperanto.core.ArrayJ;
import net.clesperanto.core.DeviceJ;
import net.clesperanto.core.MemoryJ;

We can see that nothing outside clesperanto core or basic Java has been imported. The methods that interact with other dependencies are used via reflection. During initialization, the code checks whether the dependencies are present or not and if they are not they are simply not called. When a user just wants to have standalone clesperanto, they simply need the clesperanto jar. However, if they want to use it from Icy, just adding the required dependencies for Icy will make it work with Icy Objects.

public static Object absoluteReturnSameType(DeviceJ device, Object input): this method accepts whatever object we decide to support and creates the result in the same object type. If an ArrayJ is provided, and ArrayJ will be returned, same with ImagePlus or ImgLib2.

public static ArrayJ absoluteReturnArrayJ(DeviceJ device, Object input) : this method accepts any object we want, but the result is always returned as a newly created ArrayJ. Usefull if we want to stay on the GPU to do more operations and avoid copying back and forth between CPU and GPU.

public static Object absoluteReturnWanted(DeviceJ device, Object input, ObjectType objectType): accpet any supported Object as an input but in this case we decide which kind of object we want to return. Useful together with the previous method, we can perform several operations one after the other avoiding copying back and forth between the CPU and GPU and on the last one we return the object that we want.

public static void absoluteInPlace(DeviceJ device, Object input, Object output): method that allows any kind of object as input and any kind of object as output. The output is modified inplace.

Hello again @StRigaud
Here is the new template for the Tier wrappers:
	public static ArrayJ absolute(DeviceJ device, Object input, ArrayJ output) {
		Objects.requireNonNull(input, "Input cannot be null");
		ArrayJ in = ObjectConverter.push(input, device, "buffer");

		if (output == null) {
			return new ArrayJ(
					net.clesperanto._internals.kernelj.Tier1.absolute(in.getDevice().getRaw(), in.getRaw(), null),
					device);
		}
		return new ArrayJ(
				net.clesperanto._internals.kernelj.Tier1.absolute(in.getDevice().getRaw(), in.getRaw(), output.getRaw()),
				device);
	}

With this there is just one Java method per Clic method that supports the input to be ArrayJ, ImgLib2, ImagePlus... while keeping the modularity of the library and the ouptut can be modified in place and/or returned. The output will always be an ArrayJ.
This is what I understood from out discussion? Is there any thing else that I am missing?
Note that I still need to update the documentation

Replace Object with ArrayJ in Tiers function
Move the push/pull Object converter function outside of the Tiers

@StRigaud ready to merge


Use ml4gw sine gaussian

Use torch implementation of SG for better sampling of parameter space

This is a big change, several files have been touched. Overall it looks good to me. There are a few comments I have left above, mostly queries and some semantics.
Overall training using ml4gw and validating against lalsimulation/lalinference is a good idea.


Change Schema .find API

You can now be more explicit in what schema you are finding:
GovukSchemas::Schema.find(links_schema: 'detailded_guide')
GovukSchemas::Schema.find(frontend_schema: 'detailded_guide')
GovukSchemas::Schema.find(publisher_schema: 'detailded_guide')
GovukSchemas::Schema.find(notification_schema: 'detailded_guide')

This would also allow you to GovukSchemas.find("detailed_guide", schema_type: "frontend", links: true), which doesn't make much sense.
Perhaps we can think of a better API:
GovukSchemas.find("detailed_guide", schema_type: "links")
GovukSchemas.find("detailed_guide", schema_type: "publisher")
GovukSchemas.find("detailed_guide", schema_type: "frontend")
GovukSchemas.find("detailed_guide", schema_type: "notification")

Or perhaps:
GovukSchemas::Schema.find_links_schema("detailed_guide")
GovukSchemas::Schema.find_frontend_schema("detailed_guide")
GovukSchemas::Schema.find_publisher_schema("detailed_guide")
GovukSchemas::Schema.find_notification_schema("detailed_guide")

GovukSchemas::Schema.find(links_schema: "detailed_guide")
GovukSchemas::Schema.find(frontend_schema: "detailed_guide")
GovukSchemas::Schema.find(publisher_schema: "detailed_guide")
GovukSchemas::Schema.find(notification_schema: "detailed_guide")

WDYT?

Yes sure, like it.

@tijmenb updated, went for GovukSchemas::Schema.find(links_schema: "detailed_guide") style


Update reportbuilder.yaml

Update metrics from Agent activity Activity dashboard to be available for Chat channel only.

@DavLipman can you please approve the pull request ?
It is for incident INC0034176.


Fix golint issues in maya/volume/policies/v1/policy_jiva.go

File: maya/volume/policies/v1/policy_jiva.go
Line 17: warning: package comment should be of the form "Package v1 ..." (golint)

Resources:
-> Contributors guide: https://github.com/openebs/openebs/blob/master/CONTRIBUTING.md
Complexity: Easy

I would like to work on this

@vardhanapoorv  go ahead. Let me know if you need any help.

@vardhanapoorv I am also working on this. Please let me know if you have already completed this.

@ashishranjan738  This folder volume is no longer in the repo. I think the issue should more likely be closed.

thanks @mathagician . I will close this.


Remove statement for Operation_Not_Supported in Get and SetFPState()

dsSetFPState() and dsGetFPState() has the below statement :

It must return dsERR_OPERATION_NOT_SUPPORTED if the indicator is single-colored or if the FP State is "OFF".

This does not hold true as FP state can be retrieved or set though it is a Single coloured LED. Also OFF is also a valid FP state
typedef enum __dsFPDState_t
{
dsFPD_STATE_OFF=0,  ///< FPD State Disable
dsFPD_STATE_ON,     ///< FPD State Enable
dsFPD_STATE_MAX,    ///< Out of range
}dsFPDState_t;
This issue is created to remove the below statement from dsSetFPState() and dsGetFPState():

It must return dsERR_OPERATION_NOT_SUPPORTED if the indicator is single-colored or if the FP State is "OFF".

This issue is now merged.


"Show rules" leads to nonexistent page

This is on the page when uploading a mod.

Yes this is a known issue. Although I guess we lacked an issue to track it.

Already fixed in https://github.com/FAForever/downlords-faf-client/pull/2462
Close the issue


Cannot delete an EPerson via the commandline "Groomer" tool when EPerson is referenced elsewhere.

Describe the bug
Are the constraints for deletion of EPersons still up to date to the possibility of EPerson deletion in DSpace 7, as I thought we could delete EPersons regardless of their involvement in Items/Workspace-Items/Workflow-Items now?
Those restrictions seem to be applied, when trying to delete EPersons e.g. from the Groomer Tool, but seem not to be applied when deleting the same EPerson from the Angular User Interface.
getDeleteConstraints in EPersonServiceImpl lists the following restrictions:
public List<String> getDeleteConstraints(Context context, EPerson ePerson) throws SQLException {
List<String> tableList = new ArrayList<>();

// check for eperson in item table
Iterator<Item> itemsBySubmitter = itemService.findBySubmitter(context, ePerson, true);
if (itemsBySubmitter.hasNext()) {
	tableList.add("item");
}

WorkspaceItemService workspaceItemService = ContentServiceFactory.getInstance().getWorkspaceItemService();
List<WorkspaceItem> workspaceBySubmitter = workspaceItemService.findByEPerson(context, ePerson);
if (workspaceBySubmitter.size() > 0) {
	tableList.add("workspaceitem");
}

ResourcePolicyService resourcePolicyService = AuthorizeServiceFactory.getInstance().getResourcePolicyService();
if (resourcePolicyService.find(context, ePerson).size() > 0) {
	tableList.add("resourcepolicy");
}

WorkflowService workflowService = WorkflowServiceFactory.getInstance().getWorkflowService();
List<String> workflowConstraints = workflowService.getEPersonDeleteConstraints(context, ePerson);
tableList.addAll(workflowConstraints);

// the list of tables can be used to construct an error message
// explaining to the user why the eperson cannot be deleted.
return tableList;

To Reproduce
Steps to reproduce the behavior:

Try to delete an EPerson that has one of the listed restrictions via e.g. the Groomer tool -> it fails
Try to delete the same EPerson via the Angular UI -> it succeeds

Expected behavior
Either the restrictions are valid, then the EPerson should not be deletable in both ways, or they are invalid, then they should be deletable both ways.

@MW3000 : This sounds to me like a bug in the Groomer tool you mention
As of 7.0, DSpace allows deletion of EPerson objects even if they are referenced in Workspace/Workflow items.  This is required to align with GDPR.  See this PR which added the improvement: https://github.com/DSpace/DSpace/pull/2229
So, it sounds to me like the Groomer tool was never updated to support the same types of deletion.  This would be a bug.  Pulling this over to the 7.6.x maintenance board to look for a volunteer (let me know if you are interested yourself).

@tdonohue Yes, I can fix this in the first week of September. I looked a bit more into it. Perhaps it would be helpful for the Groomer tool to have a command line option for both variants.

@MW3000 : I'm not against there being some sort of flag that allows both behaviors, but I'd recommend not over thinking it.  It's more important for the Groomer tool to act the same as the User Interface.  It seems odd to want the Groomer to throw an error when an EPerson has relationships, when that same behavior is not possible in the User Interface.  I'm not against it, but, I don't understand the use case for that scenario.
In any case, I'll assign this to you.  No worries if it will take a few weeks to get to.  Thanks for volunteering!

I opened a pull-request. And you were right, @tdonohue, I fixed it the most straightforward way, without adding any additional flags and complications.

Should I open a second pull-request for the main branch? I remember there was also some kind of automation for this?

@MW3000 : We do have new automation via GitHub Actions which attempts to port any merged PR with a port to [branch] label to the corresponding branch.  It's not perfect, but it works well with simple PRs.  Since your PR is simple, it likely will work there.


Obsolete terms 'x cytokine production in x cell'

Number of EXP annotation
term label

1
negative regulation of dendritic cell   cytokine production

6
negative regulation of macrophage cytokine production

2
negative regulation of mast cell cytokine production

2
negative regulation of natural killer cell cytokine production

1
negative regulation of plasmacytoid dendritic cell cytokine production

8
negative regulation of T cell cytokine production

4
negative regulation of T-helper 2 cell cytokine production

2
positive regulation of dendritic cell cytokine production

12
positive regulation of macrophage cytokine production

3
positive regulation of mast cell cytokine production

6
positive regulation of myeloid dendritic cell cytokine production

14
positive regulation of natural killer cell cytokine production

11
positive regulation of T cell cytokine production

6
positive regulation of T-helper 1 cell cytokine production

8
positive regulation of T-helper 2 cell cytokine production

4
regulation of dendritic cell cytokine production

5
regulation of T cell cytokine production

Note that curators should aim to capture the cell information in the AE field of the term and also consider annotation using a GO term describing the activation of a specific cell type

@addiehl We had created this ticket to check if we can obsolete terms that mention cell types in which the cytokine is produced, and capture that as an extension  - or is the pathway different in those different cells ?
Thanks, Pascale


Osiset compatible with CLI 3.0 for Post-checkout app extension

Discussed in https://github.com/osiset/laravel-shopify/discussions/1160

Originally posted by sushilsth June 28, 2022
Hi,
I have made the Shopify using this package and have already made LIVE in marketplace. Now, I want to implment theme app extension "Post Checkout UI". As per the requirement, I need to used Shopify CLI 3.0 [refernce link reference link ] where as Osiset donot have such directory.
I tried follow all the step mentioned in https://shopify.dev/apps/checkout/post-purchase/getting-started-post-purchase-extension but I am not able recognize web directory as mentioned in "Step 3: Add Shopify CLI as a project dependency >> 4".
Have anyone used Shopify CLI 3.0 in Osiset. Please help.

I think Shopify is trying to kill other third party packages for app development. They are forcing us to create the app using the cli 3.0 which is not using our favorite laravel-shopify package.
This is sad and truth but if we want to make our apps one step ahead and match the standards of Shopify we will have to move to cli I guess.

@sushilsth @sahil0571 You can still create a new project using the shopify CLI 3.0 and keep that just for extensions while continue using this project for actual app development. atleast that is what I am doing. The only problem is you end up have 2 sources..

@abishekrsrikaanth It will be helpful if you can share a demo project or repository for using this package as an extension in the cli app.

@sahilcrawlapps I also created Shopify app extension in different directory.  Let me share what I did so it can help you and other developers.

Create a new directory for app extension (It can be within your app directory or outside the app directory)

Add shopify.app.toml file in the newly created directory and add the following in toml file:

NAME = "YOUR APP NAME HERE"
SCOPES = "YOUR SCOPES HERE"
SHOPIFY_API_KEY = "YOUR SHOPIFY APP API KEY HERE"
SHOPIFY_API_SECRET = "YOUR SHOPIFY APP SECRET HERE"
APP_URL = "YOUR APP URL"
HOST = "YOUR APP HOST"
PORT = "YOUR APP URL PORT"

Create package.json file at root of the directory with following:

{
  "name": "APP NAME HERE WITHOUT SPACE, REPLACE SPACE WITH hyphen ", // my-app
  "private": true,
  "license": "UNLICENSED",
  "scripts": {
    "shopify": "shopify",
    "build": "shopify app build",
    "dev": "shopify app dev",
    "info": "shopify app info",
    "scaffold": "shopify app scaffold",
    "deploy": "shopify app deploy"
  },
  "dependencies": {
    "@shopify/app": "^3",
    "@shopify/cli": "^3"
  }
}

Run npm install

To check Shopify cli is install, Run npm run shopify
For App info Run npm run info

Create Extension by running following:

npm run scaffold extension
Then select extension type and name, which will create an extension directory.
Add blocks etc in extension.

Deploy Extension as Draft

npm run deploy
This command will log in to Shopify partner dashboard.
Note: Ruby and Bundler are required.

Once deployed then enable developer preview on the Shopify partner app extension page.

Install the app on the development store and test extensions.

I hope this will help you and other devs who are going to create an app extensions in this package.

@tanseercena This is super useful! It would be great if you could add this to the Wiki for other devs to see 😄

@ItsGageH Wiki added :book:
https://github.com/osiset/laravel-shopify/wiki/How-to-create-App-Extension

The wiki does a job explaining how to set up an epp extension.

@tanseercena Is this the correct way of setting up the app extension path (image below)? I created a new "app_extension" directory under "app" directory and ran "npm install" in the root. But when I ran "npm run shopify", the terminal is giving me the error "SyntaxError: Cannot use import statement outside a module". Not sure what I did wrong.


Flutter app doesn't build in Xcode 14, Failed to find a suitable device for the type IBSimDeviceTypeiPad2x

ios/Runner/Assets.xcassets:1:1: Failed to find a suitable device for the type IBSimDeviceTypeiPad2x (com.apple.dt.Xcode.IBSimDeviceType.iPad-2x) with runtime iOS 14.0 (14.0 - 18A5301v) - com.apple.CoreSimulator.SimRuntime.iOS-14-0

I restarted my machine, don't see this anymore.  🤷♀

I restarted my machine, don't see this anymore. 🤷♀

Worked for me too.


Allow passing number[] as value to filter method

It's required for check.isBetween and check.isStrictlyBetween

Correct 👍
Thanks for your time and contribution


feat: 🎨 proper font

Added various FIXME: April to all the edits.

@xat if you are around it would be nice to merge this soon! I finally added a CDN font for comic sans as some device don't have it 😅


request: Add twitter auth example (ios with skipNativeAuth)

Based on these docs:
https://github.com/robingenz/capacitor-firebase-authentication/blob/main/docs/firebase-js-sdk.md
I tried to implement Twitter:
  async function signinWithTwitter(): Promise<void> {
    // 1. Create credentials on the native layer
    const result: SignInResult = await FirebaseAuthentication.signInWithTwitter()
    if (!result.credential?.idToken || !result.credential?.secret) {
      throw new Error('Twitter error')
    }
    // 2. Create credentials on the web layer
    const credential = TwitterAuthProvider.credential(
      result.credential?.idToken,
      result.credential?.secret
    )
    // 3. Sign in on the web layer using the id token
    await signInWithCredential(firebaseAuth, credential)
  }

However, that doesn't work. The result looks like:

I don't get the idToken and secret.
It seems like Twitter works with redirect detection....?
I do see the redirection URL: do we need to parse something from here?

All help much appreciated!
my config:
"FirebaseAuthentication": {
      "skipNativeAuth": true,
      "providers": [
        "apple.com",
        "google.com",
        "twitter.com"
      ]
    },

@robingenz let me know if there's anything I can help you with this weekend.


FileNotFoundError: Could not find tshark on path tshark

Hi ,
I tried to start with the sample command you have given in the documentation.
python3 trace_visualizer.py -wireshark "OS" ./doc/free5gc.pcap
But I got the following message:
DEBUG:root:Preparing call for Wireshark version OS
DEBUG:root:tshark path: tshark
Traceback (most recent call last):
File "trace_visualizer.py", line 1695, in
input_file = call_wireshark(args.wireshark, input_file, args.http2ports)
File "trace_visualizer.py", line 1457, in call_wireshark
output_file = call_wireshark_for_one_version(wireshark_version, input_file_str, http2ports_string)
File "trace_visualizer.py", line 1504, in call_wireshark_for_one_version
raise FileNotFoundError('Could not find tshark on path {0}'.format(tshark_path))
FileNotFoundError: Could not find tshark on path tshark
According to the message, it says that "FileNotFoundError: Could not find tshark on path tshark". But I already have installed tshark , and wirshark.
$ which tshark
/usr/bin/tshark
$ which wireshark
/usr/bin/wireshark
any suggestion please? Can I know what I have done wrong here ?
Also , can I check with you, can we use this script to draw SVG sequence diagrams using 5g http2 traces only for a specific IMSI?
Thanks
Luke.

Hey,
Did you copy-paste the correct version of wireshark in this location /wireshark. see instructions

Hi,
Thank you for the reply and the support. Let me explain what are the steps that I have followed. Actually I think I have followed your instructions correctly. But let me explain;

I downloaded the WiresharkPortable_2.9.0.paf.exe and extracted it .  Then I got the this folder "WiresharkPortable".
I uploaded the whole folder (including its contents) to the wireshark folder of the root directory.
/opt/5g-trace-visualizer/wireshark

/opt/5g-trace-visualizer/wireshark/WiresharkPortable
executed the command but got the same error message.

Then I copied only the content to the wireshark folder
/opt/5g-trace-visualizer/wireshark --> ls
pp  Data  help.html  Other  WiresharkPortable.exe

executed the command but still the same error.

Then I copied the entire folder including its content by renaming like this --> WiresharkPortable_2.9.0

/opt/5g-trace-visualizer/wireshark/WiresharkPortable_2.9.0

ls

App  Data  help.html  Other  WiresharkPortable.exe

But still I am getting same error.
May I know, did I miss any step on your instructions ? My OS is ubuntu 20.04 Desktop version.
Thanks
Luke.

Hi,
When setting the wireshark option to os, the script makes a call to tshark instead of to (example for the case you put -wireshark 3.4.1 to make the string more understandable) wireshark/WiresharPortable_3.4.1/App/Wireshark/tshark (see code here).
A couple of comments/questions:

Is tshark in your path? If a normal user cannot run tshark from any folder, neither will the script. Although I developed this on Windows with Windows in mind, it should work on Linux (at least according to user feedback from #4)
The Wireshark Portable package you downloaded is for Windows (exe), it won't run on Linux

BR,
Josep


Cannot resolve 'main.js' in /dir

Bug report

What is the current behavior?
Webpack reported it cannot resolve 'main.js' in folder /x/y although the file was present. After changing
entry:'main.js'
to
entry:'./main.js'
everthing worked fine.
If the current behavior is a bug, please provide the steps to reproduce.

What is the expected behavior?
Do not print out such missleading error message. main.js was present in the directory printed on the console. The message was kind of:
Module not found: Error: Can't resolve 'main.js' in '/home/marco/projects//webpage'
But main.js was present in the directory /home/marco/projects//webpage
Please do not print that the file is not there, when it is present there.

Other relevant information:
webpack version: 5.20.2
Node.js version: 10.23
Operating System: Debian 10
Additional tools:

This looks like CLI problem, please provide your CLI version
@alexander-akait we fixed something like this right?

"webpack-cli": "^4.5.0",

I just freshly installed that a couple of minutes ago.

Thanks, was able to repro, yes the problem is not with CLI my bad, @sokra is this intentional that we enforce the user to provide a relative path prefixed with ./?

yeah, it's like the request you write in imports. import "main.js" vs import "./main.js".
main.js would resolve to node_modules/main.js.

But I guess we could provide a better error message by trying to resolve it as resolve request too and if this works we can add a Did you mean "./main.js"? to the error message.

Yes that makes sense, will take a look 👍

Thanks for the hint that main.js could also mean node_modules/main.js. The suggestions with "Did you mean" will be really helpful.
Please also keep in mind, that most people outside there do not know a lot about webpack. They only use it because the need to, maybe because of some tool like vue-cli set that up. Of course it's always good to know your tools but sometimes its simply not possible to know all of them.
So writing, that the error occurred while a resolve request, may not be understood by everybody. Instead the user reads a path, webpack says it looked into, but didn't really do so. Could the message contain the path, webpack did really look into, while the resolve request? Otherwise it may be better to not mention a path either but printing the hint with "Did you mean ./main.js.

Could the message contain the path, webpack did really look into, while the resolve request?

yes -> https://github.com/webpack/webpack/pull/12601

Could the message contain the path, webpack did really look into, while the resolve request?

yes -> #12601

Does the detailed information show the real path?

Fixed https://github.com/webpack/webpack/pull/12601
@marco74 it shows possible imports which you maybe mean

It could be further improved with Did you mean ./main.js.

yep, will PR in a while


TelemetryV2: Stackdriver Edges Sampling

For Stackdriver edges API, which tracks number of peers connecting to a given pod, we can have 10k peers in the worst case. Consider not adding an edge if an edge already exists to a given workload.

We will add 5 (?) edges per workload
If we get another peer from the same workload, we will not add that edge.
Control this sampling by percentage, or any other means.

Can you clarify your intention here?
We already don't add traffic assertions when we've seen a peer previously:
https://github.com/istio/proxy/blob/master/extensions/stackdriver/edges/edge_reporter.cc#L106-L110

If we have 1000 peers connecting to a pod that belong with the same deployment, we are not adding additional value by adding more assertions. If we sample that at 10% that would still provide meaningful data.

I'm not sure about "not adding addition value". The existing contract is to capture all workload instance to workload instance edges. topK + sampling could result in unstable results and noisy renderings over time.

If we are to show instance to instance connections then I agree with the contract. However if we never specified or commited to that assertion with be comprehensive then we can sample. If the recall is on rolled up workload dimensions, it will still work.
Your other PR works too, that changes the batch size, however we should consider sampling .


Update TypeScript definition to support v6.X

Issue Summary
v6.X is a major breaking change from v5.X, so the TypeScript definition needs an update.

cc @SPARTAN563

Will take a look, can't promise that I'll get to it this week with SRECon, however I'll do what I can.

No worries @SPARTAN563, enjoy the conference!

Meanwhile SPARTAN563's PR gets reviewed, we can trick things a bit to work with Typescript:
// SINCE WE DONT HAVE TYPINGS READY FOR '@sendgrid/mail'
// REQUIRE w. any WILL  BE USED

/// <amd-dependency path="model/tree" />
declare var require: (moduleId: string) => any;
var sgMail = require('@sendgrid/mail')();

Thanks @bogacg!

Solved with #430


Solved 🐞 "Routing Navigation Errors" For The Pages

Related Issue
Closes #137
Description
To rectify the {404 Not Found Error}, it is necessary to establish redirect and rewrite rules for the React Router application. These rules will assist the application in circumventing the "Page Not Found" error.
That's why I created a vercel.json file in the root directory of the project. This file will enable Vercel to configure the routing accurately.

The provided code snippet instructs Vercel to rewrite any incoming URL path to the root path.
This configuration ensures that when we initiate a redirect with a child path, Vercel will redirect it to the root path, effectively preventing the occurrence of the 404 Not Found Error.

Type of PR

[x] Bug fix

@PatilHarshh Please take a look and review it, Thank You!!
Checklist:

[x] I have performed a self-review of my code
[x] I have read and followed the Contribution Guidelines.
[x] I have tested the changes thoroughly before submitting this pull request.
[x] I have provided relevant issue numbers, screenshots, and videos after making the changes.
[x] I have commented my code, particularly in hard-to-understand areas.

I did not understand Your issue . What it resolves Actually

@PatilHarshh, the issue is vercel navigation errors of pages which gives error 404 page not found after refreshing the pages (except home page) this issue occurs only after deployment of the project, in local server or preview it does not occur....to rectify this issue i have configured some redirect rewirte rules which ensures that each page is navigating without any error

LGTM !


Previous [cached?] image names don't change to new image

This is reproduced with small images; it's safe to assume this also happens with large images, but untested.
To reproduce:
1 - Upload somesmallimage
2 - Run once with this image to make it show ( Unsure if this is necessary )
3 - Delete the image
4 - Upload a new image named the same (somesmallimage)
5 - Future tests will still show the old [cached?] image
*Note that even if you change the image, run, then change it back, it still shows the old image.
The current workaround is to completely change the name everywhere, which ... well... 👎 hehe

This is true—we do cache things pretty hard. If you open your Discord console when you send a SET_ACTIVITY payload, you'll see that we're swapping out the string you send for an image id. In this case, we're grabbing the same image id as the "old" one, because or backend says "Hey, same key, same id, easy."
I don't really have a better solution for you right now. I could see a world in which we do something like...idk, adding a debug field in the SET_ACTIVITY payload that ignores cache? That seems like an abuse vector though.
Maybe @night can weigh in on a good way to develop around this for now. Even trying it on a localdev client with caching disabled, I get the same results as you.

Is it possible to wipe cache as new assets are uploaded? By the way, the uploader allows for multiple uploads of the same name, which I don't know if should be posted here or not. Intuitively it would replace the old one and temporarily wipe cache for that string. If that's possible, anyway.
Or - what you can do with a cache is only allow cache clearing once every x amount of time because it's only going to be used during development. It's the same thing Cloudflare does! You can only clear cache once per 15 minutes or something.

Sure, there's lots we could do in the long run. Right now, we don't have the infrastructure to support the difference between an app "in development" vs. "released" unfortunately. That, and allowing users to explicitly bypass the cache could be an abuse vector against our own network/CDN.
Operating on the scale that we do, we always prefer to cache hard when we can. A game like League of Legends, for example, could be accessing the same asset millions of times simultaneously, and 99.99% of the time, that asset won't change.
I will let night speak as to the feasibility of either solving this totally valid concern on our end, or a workaround that you could implement on your side.

@dylanh724 I have to admit it's not a great solution but for testing purposes you can delete %appdata%/discord/cache and then restart discord.

I suppose this is related but when an image is deleted is there still a resized preview copy stored in the cache of the machines who were in the channel it was sent out to?


How to catch the "Already purchased" exception  ?

It seems that the API doesn't provide a way to catch    the "already purchased" error
It is thrown at global level.

How do you catch it ? I don't know what to show the user .. I need to detect this error

Got it.
After the promisiying API , I got it in the global catch  :
...
catch (e)
  {
   if ((e + "").toLowerCase() .indexOf("already purchased") > -1)
  }


Vite 5 breaks base64 replacement on CSS files

Hi,
I was testing the plugin on the playground with vite 5 and the base64 inside CSS is not replaced.
The image is added to the assets folder, but it's never used on the CSS.
Images on the JS works normally.
Here is a small reproduction check the dist folder.
You can also run vite build in the terminal.

@marcelobotega Thank you for your feedback, I'll confirm the issue and fixed it soon.

@marcelobotega This problem stems from Vite's updated method for converting SVG files to their base64 format, I'll follow Vite's update and re-enable the replacement.


i18n

Since we are adding different stores from different countries, should we add some localization library to allow users to view in their preferred language?
I'm usually working with i18n or i18next

For this case you could also use: https://tolgee.io/ (open source with option for cloud hosting service which is free for other open source projects)

Scusi, but i18n is entirely out of scope for this project. I understand that we may add more non-German stores in the future, but the site is definitely aimed at German speaking people.


npm install doesn't work the first time

We're seeing an issue on OS X Yosemite (and on Heroku) where when we run npm install, sharp doesn't build successfully. To resolve this issue, we have to run npm install sharp manually. This is happening with 0.6.2 and 0.7.1. It looks like node-gyp doesn't run in the first case, but does in the second. We're using NPM 2.1.2 and 2.1.4, I believe.

As there have been no more reports/update of this problem, I'm closing this item. Please feel free to re-open if it occurs again or if more information is available.


upgrade substrate client

https://github.com/threefoldtech/tfchain/pull/848/files
pending for this
https://github.com/threefoldtech/tfgrid-sdk-go/issues/309

pending for the go sdk release

pending for the go sdk release


typescript with eslint auto fix and format

Any idea

I implemented the lintfix as part of https://github.com/nuxt/create-nuxt-app/pull/829 together with code style format using prettier. Is this what you were looking for, or do you have some specific requirements? The eslint lintfix can be performed directly using:

yarn lint:js --fix
npm run lint:js -- --fix

while you also add .ts as part of extensions inside lint:js to enable explicit TypeScript files (on top of TS inside .vue).


add Gymnasium-Heiligenhaus

@Dannyx1604 First stage of verification passed, official domain is gymnasium-heiligenhaus.de as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

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


Merging XLNet NER project into main repo?

Here is the XLNet extension project which includes a XLNet-NER implementation, https://github.com/stevezheng23/xlnet_extension_tf.
This XLNet extension project is currently importing zihangdai/xlnet repo as its submodule, maybe we can consider merging it into the main repo?

Great. It looks like the results on NER are a bit behind the current SoTA, which is over 93. It would be great to see whether the hparams or implementation could be improved.

Yes, the result is from the initial run, I haven't tuned the hparams yet.
On Thu, Jun 27, 2019 at 1:10 AM Zhilin Yang<EMAIL_ADDRESS>wrote:

Great. It looks like the results on NER are a bit behind the current SoTA,
which is over 93. It would be great to see whether the hparams or
implementation could be improved.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/zihangdai/xlnet/issues/68?email_source=notifications&email_token=ABYXYM7GMJXUP7SEUREXS63P4RYWJA5CNFSM4H3ZHHUKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYWKB5Y#issuecomment-506241271,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABYXYM4LRT7EQTL6H2DBRVTP4RYWJANCNFSM4H3ZHHUA
.

@stevezheng23 I've one question regarding to the NER implementation: have you also experiment with using different layers? E.g. the BERT paper (table 7) uses a feature-based approach with a concatenation of the last four layers. Could you give some details what layers you're using in your repo? Thanks :)

@stefan-it In the initial experiments, I just finetuned the XLNet model by adding a dense + softmax layer on top of the last layer. For feature-based approach, I have't done corresponding experiments yet.

@stefan-it One off-topic question please, in "concatenation of the last four layers", does "last four layers" means 9,10,11,12 layer?

@mcggood Yes :) Btw: here are the results for the feature-based approach from the BERT paper: