Convert router stack to an object of arrays

Object and array access is almost equal in performance, so why not change the stack from an array of layers to an object with paths as the keys and an array with all the handlers as the values? That would mean that If a middleware is at the "end" of the stack, it could still be accessed in a comparable amount of time. For example, two stacks, with simplified layers:

var stack = [{
  regexp: /^\/?(?=/|$)/i,
  handle: Function
}, {
  regexp: /^\/?(?=/|$)/i,
  handle: Function
}, {
  regexp: /^\/products\/?$/i,
  handle: Function,
  route: { path: '/products', stack: [Object], methods: [Object] }
}, {
  regexp: /^\/product\/(?:([^/]+?))\/?$/i,
  handle: Function,
  route: { path: '/product/:id', stack: [Object], methods: [Object] }
}, {
  regexp: /^\/product\/?$/i,
  handle: Function,
  route: { path: '/product', stack: [Object], methods: [Object] }
}, {
  regexp: /^\/product\/(?:([^/]+?))\/?$/i,
  handle: Function,
  route: { path: '/product/:id', stack: [Object], methods: [Object] }
}, {
  regexp: /^\/product\/(?:([^/]+?))\/?$/i,
  handle: Function,
  route: { path: '/product/:id', stack: [Object], methods: [Object] }
}, {
  regexp: /^\/products\/?$/i,
  handle: Function,
  route: { path: '/products', stack: [Object], methods: [Object] }
}];

// Accessing a route here requires iterating through all the layers in the array.
// Now say the stack were an object
var stack = {
  '^\/products\/?$': {
    handle: Function,
    route: { path: '/products', stack: [Object], methods: [Object] }
  }
};

Accessing a specific middleware in the object stack should be faster by skipping over all the inapplicable middlewares. This approach could go with either a path -> Array of handlers or path -> method type -> Array of handlers. Depending on whether the user has lots of handlers on one path, it may make sense to switch to filtered by method, but that requires some more thought. This is just a general inquiry into optimizing routing in Express. Any thoughts? I looked for some issues with ideas like this but I didn't find anything specific, so I decided to open one here to get some discussion going.

You would no longer be able to have the same path exist in multiple positions in the stack, would you? If not, then we would not be able to do this type of conversion. If so, please make a PR against the 5.x branch and post benchmarks (if the purpose is that it's faster).

I'm fine with whatever thoughts people have in general :) And I know code+benchmarks speaks very well in general, so PRs (even incomplete ones) are welcome here and can be discussed :)

@dougwilson do you mean having two handlers for a route like GET /abc? I think having an array-based stack for each path key would still work, just limit the routes that have to be iterated over before getting to a matching one, no? Say you have two handlers matching GET /abc, then that would just be:
'/abc': [{
  handler: Function
}, {
  handler: Function
}]

You would just create the stack by doing:
app.get('/abc', handler);
// this would execute something like
if (stack[path]) {
  stack[path].push(new Layer());
} else {
  stack[path] = [new Layer()];
}
// stack = {'abc': [{ handler: Function }] }
app.get('/abc', handler); // stack = {'abc': [{ handler: Function }, { handler: Function }] }

Maybe I'm missing the nuances, but I tried to look around the source code a little bit to understand Express routing a little bit more and see what can be done to make it faster, if possible.

Gotcha. What you are suggesting would break the following, if I'm understanding you:
app.get('/stuff', function (req, res, next) {
  // do work, realize this is not the handler for req
  next()
})
app.use(some_middleware)
app.get('/stuff', function (req, res, next) {
  // fallback GET /stuff route
})

Even then, in general, what you are describing sounds to be like you just want to use app.route, which will group all the methods and it's inner middlewards together into a "mini stack" that can easily be skipped over.
We had tried in the past to make is so if you did app.get(path, fn1) and then app.get(path, fn2), they would group together where fn1 was declared, but that broke so, so many users, so we undid that grouping behavior.

Maybe I'm missing the nuances

As for this, this is why I encourage you to start hacking on Express :) We have a very large test suite, so as you are tweaking, you'll know if you're tripping on a nuance or not, based on causing tests to fail. This is the easiest way to get into Express core hacking, i.m.o. It's where even I started :)

@dougwilson you are right, it would break that case. The issue I see is that if you have a handler for /abc declared at the end of the stack then the router has to iterate all the way to the end before actually letting the handler kick in. What about something like:
var stack = [{
  // here would be the handler for a bunch of routes declared before the first app.use
}, {
  // here would be an app.use handler
}, {
  // here would be some more routes declared to happen after an app.use
}];

So the stack would be iterated over like this:
// on request
stack.forEach(function(handler) {
  if (handler.path) { // catches one-off app handlers in the order they are added
    // handle URL using this handler
  } else {
    // assume it's an object of route paths
    see if a handler for URL exists, if so, call it
  }
});

I really cannot comment on speculation :) Please, please, feel free to make a PR so you can play with Express and determine all the edge cases you need to handle, etc. And if the argument is being made for performance, we would really like to see a benchmark showing this.
Your new stack is pretty much describing the already existing app.route feature, which is hightly recommend. You should never be using app.get/app.post unless you need it--always do a single app.route and group everything there.

We also need to be sure that routes always run in the correct order. i.e. we need multiple different paths that match the same req.url (because they are regular expressions) to always match in the same order. JavaScript does not guarantee the ordering of keys in an object--remember, people are actually using this router in web browsers.

Here is an example, if it helps :)
app.get('/books/:id', function (req, res, next) {
  // do work, realize this is not the handler for req
  next()
})
app.all('/books/*', something)
app.get('/books/:id', function (req, res, next) {
  // fallback getting a book
})

Note that internally, all app.all does is calls app.get, app.post, etc. for all methods. Theoretically a user could have also written it as app.get('/books/*', something). Also, I'm not saying the things are the best way to construct these types of routes, but it's currently allowed, because we basically have the philosophy that anything you want to do is possible. We even let you use your own router implementation, which is what LoopBack is doing and anyone can :) Just create your own function that takes req, res, next, call it a router, attach everything on there and then app.use() it.

If such a refactoring is a possibility, wouldn't a trie be a better idea in terms of performance ?
RegExp paths could be expressed as state-machines or modelled as an array like now.

Trie? How could it be a state machine for the routes?

There hasn't been much discussion in here for a couple months. Any thoughts on issuing a PR to discuss over? Otherwise, I may need to close this for becoming stale.


IR-195: set pod topology spread constraint

Defaults to:
  topologySpreadConstraints:
  - maxSkew: 1
    topologyKey: topology.kubernetes.io/zone
    whenUnsatisfiable: DoNotSchedule
    labelSelector:
      matchLabels:
        docker-registry: default
  - maxSkew: 1
    topologyKey: kubernetes.io/hostname
    whenUnsatisfiable: DoNotSchedule
    labelSelector:
      matchLabels:
        docker-registry: default
  - maxSkew: 1
    labelSelector:
      matchLabels:
        docker-registry: default
    topologyKey: node-role.kubernetes.io/worker
    whenUnsatisfiable: DoNotSchedule

Users are able to override it via ImageRegistry Spec. In that case, only the user provided constraints will apply (the default constraints are removed).
~With the default constraints, it is not possible to schedule pods on master nodes, regardless of tolerations or node selectors added.~
When node selectors are specified, no default constraints are used. We do this to maintain current behaviour where it's possible to deploy the image registry to specific nodes that may otherwise be excluded by the topology constraints.
Relates to IR-195
Depends on https://github.com/openshift/cluster-image-registry-operator/pull/728 and https://github.com/openshift/api/pull/1052
~NOTE: this branch has flavianmissi:upgrade-openshift-api rebased into it. Please ignore the vendored changes, they should be removed when https://github.com/openshift/cluster-image-registry-operator/pull/728 lands and we update openshift/api to a commit including https://github.com/openshift/api/pull/1052~

/assign @dmage

/lgtm
/hold
until replace is removed after approvals
/assign @xiuwang @bmcelvee @sferich888
for approvals

/retest-required

/retest-required

/test e2e-vsphere-operator

/lgtm
/label qe-approved

/assign @bmcelvee @sferich888
for Docs and Px approvals

/label docs-approved

/retest-required

/retest-required

/test e2e-aws-image-registry

/retest-required

/remove-label qe-approved

/retest

/retest-required

/label qe-approved

/retest-required

/retest-required

/retest

/lgtm

/hold cancel
/lgtm

Test again, nodeSelector and tolerations works well, thanks
/label qe-approved

/lgtm

/label px-approved
IR-228 isn't marked as TE Needed


Add EvaluatedRef to clean Evaluated binary operation codes

That was quite messy to write binary operation codes in Evaluated

However, that binary operations only needs borrowed ones, so EvaluatedRef only takes borrowed ones to make the codes simple.
@KyGost How do you think of this?

Looks good :-)


UI for adding subgroups

At present, the backend allows creating subgroups, but there is no UI for doing so. We should fix this.
Group settings > Member panel
We should add a "Subgroups" section at the top:

Input field that immediately opens the typeahead with a list of groups (similarly to Who can manage this group). Note that individual users should not be shown here.
Current + newly added groups should be shown as pills (with user counts).
There should be a "Save changes" / "Discard" confirmation.
When the field is disabled due to lack of permissions, show a tooltip: "You do not have permission to add subgroups to this group."
We'll want to have a ? link to the help center next to the heading. /help/user-groups is fine; we can decide later if we want a (new) specific subsection.

New groups

Section at the top: "Add subgroups" (with a ? link as above).
Same UI as above for adding subgroups, but no confirmation required.

Notes

As a follow-up, we should add an option to display members of subgroups in the Members table. For now, they will not be displayed.

CZO thread

@alya I am interested in this issue

@alya I would like to work on it

$ we can create the subgroup as follows:
1. create a UI to add subgroups, just below the members section in the group setting.
2. show all the previously created subgroups and then on the bottom, show the create button to create "subgroup".
3.then we'll need to fetch the name of the groups and group members
4.Look forward to the issues after doing this.

@ezParth  As noted in the contributor guide, please choose an issue with the "help wanted" label.

This issue will probably be replaced by #31850.


Uncaught ModuleNotFoundError in caching.py line 22

Aider version: 0.64.1
Python version: 3.12.7
Platform: Windows-11-10.0.26100-SP0
Python implementation: CPython
Virtual environment: No
OS: Windows 11 (64bit)
Git version: git version 2.45.2.windows.1
An uncaught exception occurred:
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "__main__.py", line 7, in <module>
    sys.exit(main())
             ^^^^^^
  File "main.py", line 641, in main
    main_model = models.Model(
                 ^^^^^^^^^^^^^
  File "models.py", line 835, in __init__
    res = self.validate_environment()
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "models.py", line 1081, in validate_environment
    res = litellm.validate_environment(model)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "llm.py", line 23, in __getattr__
    self._load_litellm()
  File "llm.py", line 30, in _load_litellm
    self._lazy_module = importlib.import_module("litellm")
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 995, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "__init__.py", line 10, in <module>
    from litellm.caching.caching import Cache, DualCache, RedisCache, InMemoryCache
  File "__init__.py", line 1, in <module>
    from .caching import Cache, LiteLLMCacheType
  File "caching.py", line 22, in <module>
    from openai.types.audio.transcription_create_params import TranscriptionCreateParams
ModuleNotFoundError: No module named 'openai.types'

Thanks for trying aider and filing this issue.
This looks like a duplicate of #1283. Please see the comments there for more information, and feel free to continue the discussion within that issue.
I'm going to close this issue for now. But please let me know if you think this is actually a distinct issue and I will reopen this issue.
Note: A bot script made these updates to the issue.


add Clearview AI & Palantir to list

Remove this sentence and insert the description of the pull request here.

✅ By submitting this PR, I have verified the following

[ ] Checked to see if a similar PR has already been opened 🤔
[ ] Reviewed the contributing guidelines 🔍
[ ] Added my name to the bottom of the list under the Contributors section in the README.md with a link to my personal website or GitHub profile 👥 (Optional)

Closing this b/c this list is for partnerships offers that have been declined, where these companies have not reach out to us.


deposittoaddress issue, error in index of parameters

Syntax of deposittoaddress command is:
deposittoaddress "fromaccount" "roicoinaddress" amount termdepositlength ( "comment" "comment-to" subtractfeefromamount )
In ROICoin 1.1.7 it is not possible to use subtractfeefromamount and comment parameters because of errors of counting and indexing of parameters in deposittoaddress function in rpcwallet.cpp file. Please consider to fix as follows:
`
Value deposittoaddress(const Array& params, bool fHelp)
{
if (!EnsureWalletIsAvailable(fHelp))
return Value::null;
if (fHelp || params.size() < 4 || params.size() > 7)
    throw runtime_error(
        "deposittoaddress \"fromaccount\" \"roicoinaddress\" amount termdepositlength ( \"comment\" \"comment-to\" subtractfeefromamount )\n"
        "\nDeposit an amount to a given address for term length (blocks). The amount is a real and is rounded to the nearest 0.00000001\n"
        "\nBy default it will deposit coins from the default account.\n"
        + HelpRequiringPassphrase() +
        "\nArguments:\n"
        "1. \"fromaccount\"     (string, required) The name of the account to send funds from. May be the default account using \"\".\n"
        "2. \"roicoinaddress\"  (string, required) The roicoin address to send to.\n"
        "3. \"amount\"      (numeric, required) The amount in ROI to send. eg 0.1\n"
        "4. \"termdepositlength\" (numeric, required) The number of blocks to lock the coins.\n"
        "5. \"comment\"     (string, optional) A comment used to store what the transaction is for. \n"
        "                             This is not part of the transaction, just kept in your wallet.\n"
        "6. \"comment-to\"  (string, optional) A comment to store the name of the person or organization \n"
        "                             to which you're sending the transaction. This is not part of the \n"
        "                             transaction, just kept in your wallet.\n"
        "7. subtractfeefromamount  (boolean, optional, default=false) The fee will be deducted from the amount being sent.\n"
        "                             The recipient will receive less roicoins than you enter in the amount field.\n"
        "\nResult:\n"
        "\"transactionid\"  (string) The transaction id.\n"
        "\nExamples:\n"
        + HelpExampleCli("deposittoaddress", " \"\" \"1M72Sfpbz1BPpXFHz9m3CdqATR44Jvaydd\" 0.1 10848")
        + HelpExampleCli("deposittoaddress", " \"\" \"1M72Sfpbz1BPpXFHz9m3CdqATR44Jvaydd\" 0.1 10848 \"donation\" \"seans outpost\"")
        + HelpExampleCli("deposittoaddress", " \"\" \"1M72Sfpbz1BPpXFHz9m3CdqATR44Jvaydd\" 0.1 264000 \"\" \"\" true")
        + HelpExampleRpc("deposittoaddress", " \"\" \"1M72Sfpbz1BPpXFHz9m3CdqATR44Jvaydd\", 0.1, 264000 , \"donation\", \"seans outpost\"")
    );

LOCK2(cs_main, pwalletMain->cs_wallet);
string strAccount = AccountFromValue(params[0]);

CROIcoinAddress address(params[1].get_str());
if (!address.IsValid())
    throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid ROIcoin address");

// Amount
CAmount nAmount = AmountFromValue(params[2]);

// Term Deposit
int termDepositLength = params[3].get_int();

// Wallet comments
CWalletTx wtx;
wtx.strFromAccount = strAccount;

if (params.size() > 4 && params[4].type() != null_type && !params[4].get_str().empty())
    wtx.mapValue["comment"] = params[4].get_str();
if (params.size() > 5 && params[5].type() != null_type && !params[5].get_str().empty())
    wtx.mapValue["to"]      = params[5].get_str();

bool fSubtractFeeFromAmount = false;
if (params.size() > 6)
    fSubtractFeeFromAmount = params[6].get_bool();

EnsureWalletIsUnlocked();

SendMoney(address.Get(), nAmount, fSubtractFeeFromAmount, wtx, termDepositLength);

return wtx.GetHash().GetHex();

}
`

Incorporated into Development Branch for future release.  Close.


add reset function test for InMemorySpanExporter

Which problem is this PR solving?
In the initial implementation, the reset function of InMemorySpanExporter was not directly tested because it was consistently used in the afterEach setup of tests. This design made a standalone test unnecessary at the time of its addition (commit c8a37be).
However, as of commit b884eec, the reset function was removed from the afterEach setup, leaving it untested directly. This PR addresses this gap by adding a dedicated test to ensure reset functionality works as intended.
Short description of the changes
Added a unit test specifically for the reset function of InMemorySpanExporter to ensure its functionality is covered even after removal from the afterEach setup.
Type of change

[x] Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?
This PR includes a dedicated unit test for the reset function to validate its behavior independently from other tests.

[x]  Added a standalone test for reset

Checklist:

[x] Followed the style guidelines of this project
[x] Unit tests have been added
[ ] Documentation has been updated

@pichlermarc Thanks for approving and fixing nits!


Use one MySQL-Server & PhpMyAdmin container instead of one for each DDEV

Is your feature request related to a problem? Please describe.
I think it's overhead using one MySQL & PhpMyAdmin container for each DDEV-Project. It would make more sense to use only one Docker-Container for MySQL & PhpMyAdmin for all DDEV Projects/Instances.
Describe the solution you'd like
One Docker-Container for MySQL managing all DDEV-Projects/Instances. DDEV could use SSH or Docker-CLI to coordinate managing databases for each Project/Instance.

Thanks for the suggestion, but this wouldn't work out for a number of reasons:

All databases for all projects would then have to have unique names.
It would be impossible to support the many versions of MySQL and MariaDB that ddev supports, you could have only one.

You may want to consider stopping projects that you're not using, then they don't take up any resources.


[TB] Review JSON variables

Problem/Concern
Review & align JSON variables for Figma.
Proposed Solution

Verify


Added code for sieve of erasthosthenes

Added code for sieve of erasthosthenes

Okay, but the code quality can be improved a bit as I can find there are silly variable names used.


pass CurrentAdmin to the BaseResource

Describe the problem feature solves
Right now custom Adapters don't know nothing about currently logged in user. So in case where adapter is asking the API it might need some access token which will be stored in CurrentAdmin entity.
Describe the solution you'd like
I would like to pass CurrentAdmin to the invocation of each method in BaseResource
Describe alternatives you've considered
haven't considered other solutions
Acceptance criteria

add currentAdmin to all BaseResource mthods
update the documentation

eventually decided that adapters take this as a (ResourceOptions/Action).filter and filter could be function. Adapters shouldn't be aware of internal state like CurrentAdmin


Investigate inconsistent source values.

We're seeing some weird values for the source field on user documents – why!?
 Trello Card

 As a dev, I want to figure out why different sources are coming in so that data can do their analysis properly!

Just leaving some notes here as I try to figure out the "New Web Users by Registration Source" dashboard, which graphs the value for user_registration_source on Phoenix user accounts.
Phoenix's user_registration_source should almost always contain the same value as Northstar's source field. The only scenario that I can think of where it may not: if the user's Northstar source was later updated when an "earlier" source was backfilled. Spot-checking a few random records seems to confirm that this isn't a problem with inconsistent data in Phoenix (vs. Northstar).
So anyways, there's an abrupt change in sources visible on the graph (for example, the purple niche sources disappear and are replaced by a red message_broker source). This happened on the day when we deployed these changes to how sources are set: adding a fallback to use OAuth Client ID if a specific source value is not provided (or for any registrations that don't happen via POST /v1/users endpoint).
…

So let's see how one of these requests gets to Northstar from Niche:
The Niche source processor's process method sets a hard-coded "niche" string in the source field on the import user before sending it to Northstar via the toolbox, which whitelists the source field and POSTs it to Northstar's v1/users endpoint. This seems like what you'd expect from those earlier source results, but doesn't explain why it changed on the 8th.
One (unrelated) thing that worries me is that the Niche import will happily write a bogus password to any matched user account, which could potentially overwrite an existing user's password. 😨
Aaaanyways, everything looks okay from that end I think.

A ha! The problem is that we create the Drupal user before the custom source value is applied. So it'll always use the auto-generated source (either OAuth client ID or northstar) rather than any override provided in the request.

The fix in #522 solves this issue. We do have correct values for these fields stored in Northstar, so the best fix is probably to update Looker to query Northstar for that information (since we don't have an "update user" endpoint built in Phoenix to retroactively fix incorrect data there).

The patch for this bug was deployed to production, and I've verified that new users are now getting the correct field_user_registration_source value in Phoenix.


Difference between [Unreleased] and Unreleased

I see that there are 2 "Unreleased" sections:
## Unreleased

## \[Unreleased\]

What is the difference between the two?

Most likely you had the [Unreleased] line without the actual link. Square brackets In markdown are for links. The library follows the keepachangelog format as closely as possible. So it kept whatever you had in your file and added an empty "Unreleased" section as the format suggests. That's my guess.

Ok cool. Not sure what happened. I just use cider to update the file. Maybe something else is changing it somehow.
Anyway, thanks!


https://quantstack.net/xtensor has an invalid certificate

Thanks. We are not serving quantstack.net as https. If necesary, we could set up some https redirect with e.g. cloudfare.
Is it important for a usecase of yours?

Is it important for a usecase of yours?

When I've created the FreeBSD port, I checked the https URL. There is the policy that https should be preferred and it is broken. It's not a big deal, I just reported it here so that you know.

Thanks for reporting. I will configure the https redirect next time I iterate on the website.

This might be the recipe to fix this issue: https://gist.github.com/cvan/8630f847f579f90e0c014dc5199c337b

https://blog.github.com/2018-05-01-github-pages-custom-domains-https/

Unfortunately, we did not get the domain from cloudfare.
I am looking at getting a certificate from let's encrypt, but there does not seem to be a way to use that certificate with GitHub pages.

The official github blog post linked above does not mention cloudflare :) should not be a problem anymore.

This fixed!


Deprecated API UIWebView

🔙 Regression
Hello I have found one issue, after I submitted the app on applestore I received an email with this informations:
ITMS-90809: Deprecated API Usage - Apple will no longer accept submissions of new apps that use UIWebView as of April 30, 2020 and app updates that use UIWebView as of December 2020. Instead, use WKWebView for improved security and reliability. Learn more (https://developer.apple.com/documentation/uikit/uiwebview).
Bug Information
Version Number of Plugin: 2.2.1
Device Tested On: iPhone 8
Simulator Tested On: iPhone 8
Version of VS: 8.5.2 (build 13)
Version of Xamarin: <IP_ADDRESS>
Versions of other things you are using:
=== Visual Studio Community 2019 for Mac ===
Version 8.5.2 (build 13)
Installation UUID: c0d4e237-8159-4e2d-83d2-4d5d4b53171e
GTK+ 2.24.23 (Raleigh theme)
Xamarin.Mac <IP_ADDRESS> (d16-5 / 30e8706b4)
Package version: 608000123

=== Mono Framework MDK ===
Runtime:
Mono <IP_ADDRESS> (2019-10/1d0d939dc30) (64-bit)
Package version: 608000123
=== Xamarin Designer ===
Version: <IP_ADDRESS>1
Hash: 35aa4889d
Branch: remotes/origin/d16-5
Build date: 2020-02-25 00:52:08 UTC
=== Roslyn (Language Service) ===
3.5.0-beta4-20125-04+1baa0b3063238ed752ad1f0368b1df6b6901373e
=== NuGet ===
Version: <IP_ADDRESS>15
=== .NET Core SDK ===
SDK: /usr/local/share/dotnet/sdk/3.1.200/Sdks
SDK Versions:
3.1.200
3.1.102
3.1.101
3.1.100
3.1.100-preview2-014569
3.0.100
3.0.100-rc1-014190
3.0.100-preview9-014004
3.0.100-preview8-013656
2.2.300
2.2.107
2.2.102
2.1.505
2.1.302
MSBuild SDKs: /Library/Frameworks/Mono.framework/Versions/6.8.0/lib/mono/msbuild/Current/bin/Sdks
=== .NET Core Runtime ===
Runtime: /usr/local/share/dotnet/dotnet
Runtime Versions:
3.1.2
3.1.1
3.1.0
3.1.0-preview2.19525.6
3.0.0
3.0.0-rc1-19456-20
3.0.0-preview9-19423-09
2.2.5
2.2.1
2.1.16
2.1.15
2.1.14
2.1.13
2.1.9
2.1.2
=== Xamarin.Profiler ===
'/Applications/Xamarin Profiler.app' not found
=== Updater ===
Version: 11
=== Apple Developer Tools ===
Xcode 11.4 (16134)
Build 11E146
=== Xamarin.Mac ===
Xamarin.Mac not installed. Can't find /Library/Frameworks/Xamarin.Mac.framework/Versions/Current/Version.
=== Xamarin.iOS ===
Version: <IP_ADDRESS> (Visual Studio Community)
Hash: b75deaf82
Branch: d16-5-xcode11.4
Build date: 2020-04-01 21:33:19-0400
=== Xamarin.Android ===
Version: <IP_ADDRESS> (Visual Studio Community)
Commit: xamarin-android/d16-5/988c811
Android SDK: /Users/leonardo/Library/Developer/Xamarin/android-sdk-macosx
Supported Android versions:
8.1 (API level 27)
SDK Tools Version: 26.1.1
SDK Platform Tools Version: 29.0.6
SDK Build Tools Version: 29.0.2
Build Information:
Mono: c0c5c78
Java.Interop: xamarin/java.interop/d16-5@fc18c54
ProGuard: xamarin/proguard/master@905836d
SQLite: xamarin/sqlite/3.28.0@46204c4
Xamarin.Android Tools: xamarin/xamarin-android-tools/d16-5@9f4ed4b
=== Microsoft Mobile OpenJDK ===
Java SDK: /Users/leonardo/Library/Developer/Xamarin/jdk/microsoft_dist_openjdk_<IP_ADDRESS>
1.8.0-25
Android Designer EPL code available here:
https://github.com/xamarin/AndroidDesigner.EPL
=== Android SDK Manager ===
Version: <IP_ADDRESS>
Hash: 6fb4c79
Branch: remotes/origin/d16-5
Build date: 2020-04-02 00:16:12 UTC
=== Android Device Manager ===
Version: <IP_ADDRESS>
Hash: 49194e8
Branch: remotes/origin/d16-5~1
Build date: 2020-04-02 00:16:32 UTC
=== Xamarin Inspector ===
Version: 1.4.3
Hash: db27525
Branch: 1.4-release
Build date: Mon, 09 Jul 2018 21:20:18 GMT
Client compatibility: 1
=== Build Information ===
Release ID: 805020013
Git revision: 90b766333e562018f979de04293c097898dafdf4
Build date: 2020-04-02 10:35:07-04
Build branch: release-8.5
Xamarin extensions: 90b766333e562018f979de04293c097898dafdf4
=== Operating System ===
Mac OS X 10.15.3
Darwin 19.3.0 Darwin Kernel Version 19.3.0
Thu Jan  9 20:58:23 PST 2020
root:xnu-6153.81.5~1/RELEASE_X86_64 x86_64
=== Enabled user installed extensions ===
MvvmCross Template pack 2.1.0
Version: <IP_ADDRESS>2
Platform:

[x] :iphone: iOS
[ ] :robot: Android
[ ] :checkered_flag: WPF
[ ] :earth_americas: UWP
[ ] :apple: MacOS
[ ] :tv: tvOS
[x] :monkey: Xamarin.Forms

Nothing in FFImageLoading touches UIWebView. Search the codebase right here on Github and there are zero results in code.
If you're using Xamarin Forms then your issue is probably with that. Unless you're on the absolute latest version and have followed their guidance with the mtouch arguments - then the problem will persist.

Maybe it is not directly FFImageLoading but some dependency, I think that SkiaSharp have dependency with the UIWebView because after installed the FFImageLoading I found a dependency with UIWebView from libSkiaSharp

What version of Xamarin Forms are you running? You have to be on Forms 4.5 or newer to get rid of this error. https://devblogs.microsoft.com/xamarin/uiwebview-deprecation-xamarin-forms/

I installed the latest 4.6.x

What makes you think this library is the cause of the warning? You took it out submitted and the warning went away?


[QUESTION] Is there a way to include subfolder in the file location?

Hi,
Is there a way to include the subfolder in the name of the file for compatibility purposes? For examples, if I ask to put the file in the "images" subfolder, the file is stored there but the Markdown does not include the subfolder name. So if I open the file in a different app, the contnt is missing.
Thanks,
L

Just for clarification, lets assume if I drop "image.jpg" into note called "MySampleNote.md":

You want image to be stored inside /images subfolder and then its name to be auto-renamed to {foldername}{notename}{date} ?

Thus "images.jpg" would become "images-mysamplednote-YYYYMMDD.jpg"?

Various options for file renaming are in the roadmap, although can't provide exact date right now

Thanks for the clarification. Should be possible to implement this,
although not sure about forward slash “/”, Obsidian doesnt allow certain
special characters to be used in the name e.g “/:” are not allowed, hence
most likely would need to use “-” or “underscore” instead.
Gonna have to investigate it further
On Mon, 2 Oct 2023 at 14:19, lduperval @.***> wrote:

HI,
No, not quite.
If I have an image called: doctor-listening-to-patient-heart.jpg
I want the file to be named
images/doctor-listening-to-patient-heart-YYYYMMDD.webp
where YYYYMMDD is not necessarily important. But the
doctor-listineng-to-patient part is because it contains semantic
information.
L
—
Reply to this email directly, view it on GitHub
https://github.com/xRyul/obsidian-image-converter/issues/14#issuecomment-1743004572,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALJFUBXESWA3RBANG33JVWDX5K5PXAVCNFSM6AAAAAA5H6B2MCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONBTGAYDINJXGI
.
You are receiving this because you commented.Message ID:
@.***>

Actually, the "images/" is not part of the name. It's the folder specified in the config. It could be anything.
Thanks!
L

I think I finally got it 😅
doctor-listening-to-patient-heart.jpg
↓
doctor-listening-to-patient-heart.webp

To preserve the original name you can simply turn off: Auto rename
If images/ doesn't have to be in the name, you can put the image into images/ subfolder via:
a) "Output" -> "In the folder specified below:" then type in "/images". This will allow you to store all images inside this folder, regardless in which note they are located.
b) "Output" -> "In subfolder under current folder" then type in "/images".  If you have many folders in Obsidian, and each folder represents a category/project, then this option might be great for you. It will create a subfolder under current note, or if the note is inside the folder, then it will create subfolder inside this folder. Thus essentially allowing your images to follow your "projects".

https://github.com/xRyul/obsidian-image-converter/assets/47340038/b7aa521f-4d19-4b4d-b00b-243cab65ad24

Oh, that's simpler than I thought! Thanks!

Hi again,
I have another question. Above you say that if "images/" doesn't have to be in the name I have a couple of options. But what if I do want "images" to be part of the name (which is what I want for compatibility with other editors)?
Thanks!


History fallback silencing 404

Describe the bug
History may require some tweaking because it is silencing regular 404 when importing .js files for instance.
Here for instance someone may mistype an import name https://github.com/jamiealex/vite-history-fallback/blob/master/App.vue#L7
And instead of returning of 404, letting the dev know he messed up it is giving the index.html.
Chrome is throwing an error here: Failed to load module script: The server responded with a non-JavaScript MIME type of "text/html". Strict MIME type checking is enforced for module scripts per HTML spec. but it could be more explicit IMO.
I know this could be handled by eslint/third party dev tools but I genuinly think we should not rely on that. To know whether the response should fallback we could maybe check for ?import query string or other metadata.

Reproduction
https://github.com/jamiealex/vite-history-fallback

I actually found a Chrome Bug where Failed to load module script: The server responded with a non-JavaScript MIME type of "text/html". Strict MIME type checking is enforced for module scripts per HTML spec. is sometimes not thrown.... thus my issue ...


Fix usage of incorrect @Produces annotation

Looks good to me. One question however, @Unremovable are useless because this is managed by camel-quarkus-core ?

Looks good to me. One question however, @Unremovable are useless because this is managed by camel-quarkus-core ?

AFAIK - if the bean has an explicit name, it's unremovable. There is some logic in core that I think is supposed to make component beans unremovable, but I'm not sure if it's working. Hence how I stumbled on this issue while experimenting.

Oh, I see it was @javax.ws.rs.Produces. I guess @javax.enterprise.inject.Produces would be correct but superfluous in this situation?


Service doesn't exist after upgrade

Version of the custom_component
7.0.0

Configuration
multiscrape:
  - resource_template: >
      https://untappd.com/b/id/{{ states("sensor.kegtron_kt_100_94d7_port_name") }}
    name: tap_1
    scan_interval: 86400
    sensor:
      - unique_id: keg_tap1_name
        name: Keg Tap 1 Name
        select: ".name > h1:nth-child(1)"
      - unique_id: keg_tap1_brewery
        name: Keg Tap 1 Brewery
        select: ".name .brewery > a:nth-child(1)"
        on_error:
            value: last
  - resource_template: >
      https://untappd.com/b/id/{{ states("sensor.kegtron_kt_200_93f5_port_name_port_1") }}
    scan_interval: 86400
    name: tap_2
    sensor:
      - unique_id: keg_tap2_name
        name: Keg Tap 2 Name
        select: ".name > h1:nth-child(1)"
      - unique_id: keg_tap2_brewery
        name: Keg Tap 2 Brewery
        select: ".name .brewery > a:nth-child(1)"
        on_error:
            value: last
  - resource_template: >
      https://untappd.com/b/id/{{ states("sensor.kegtron_kt_200_93f5_port_name_port_2") }}
    name: tap_3
    scan_interval: 86400
    sensor:
      - unique_id: keg_tap3_name
        name: Keg Tap 3 Name
        select: ".name > h1:nth-child(1)"
      - unique_id: keg_tap3_brewery
        name: Keg Tap 3 Brewery
        select: ".name .brewery > a:nth-child(1)"
        on_error:
            value: last

Describe the bug
On 6.8.1 this was working and created 3 services I could call from my automations, I used to have multiscrape.trigger_tap_1 , multiscrape.trigger_tap_2, and multiscrape.trigger_tap_3 which I could call. Since updating to 7.0.0 only multiscrape.trigger_tap_3 exists
Debug log
Enabled debug logging, I do not see anything in the logs, the 2 services just don't seem to get created any longer.

For me also only the last service in my configuration exists.

I have the same problem, only the last multiscrape service exists, the others are unknown.
Already updated to 2024.4.0 and 7.0.0

Thanks, I found it and will fix it tonight.


Fix bug that could cause supautils to lead to segmentation fault.

With the setting supautils.privileged_role not set, supautils caused a segmentation fault when CREATE ROLE command was executed. ISTM that this happened because supautils_hook() unexpectedly passed "privileged_role" variable to get_role_oid() even though it's NULL. Attached patch fixes this bug.

Reproduced :heavy_check_mark:.
# After removing -c supautils.privileged_role=\"$privileged_role\" from shell.nix

$ supautils-with-pg-15 psql -U rolecreator

$ postgres=> create role foo;
server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
The connection to the server was lost. Attempting reset: 2023-02-10 17:37:47.327 -05 [338570] LOG:  server process (PID 338583) was terminated by signal 11: Segmentation fault

cc @soedirgo


how to get settings in console app

this works:
 static void Main(string[] args) {              IConfiguration Config = new ConfigurationBuilder().AddJsonFile("appSettings.json").Build();             Settings options = new();             Config.GetSection(nameof(Settings)).Bind(options);
no host builder, no async no await no task......
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: b458a209-339d-e896-4e85-6d1c6a7aa1f9
Version Independent ID: 0d5de37c-8f89-b6a5-3132-2c5214196bfd
Content: Configuration in .NET
Content Source: docs/core/extensions/configuration.md
Product: dotnet-fundamentals
GitHub Login: @IEvangelist
Microsoft Alias: dapine

Closing this as it's a duplicate of #26769


[spam]

What you mean closed
On Mon, Mar 21, 2022 at 2:48 PM Jordan Harband @.***>
wrote:

Closed #420 https://github.com/coinbase/coinbase-wallet-sdk/issues/420.
—
Reply to this email directly, view it on GitHub
https://github.com/coinbase/coinbase-wallet-sdk/issues/420#event-6278058839,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AX2XMWT7KRJARS7SPKQELLLVBDAAXANCNFSM5RITA7PA
.
You are receiving this because you authored the thread.Message ID:
@.***>

@Mario24433 i mean i closed it, because you provided no context or description of any kind, and the title "trade pullout" doesn't make any sense.


guide: better document negative index behavior w.r.t. PySequence

Fixes #2601

Possibly worth mentioning that this negative index handling only applies with #[pyclass(sequence)]?

Updated.

I don't understand the test failure...

@messense I see that maturin 0.14 has been released recently. Can this be a problem with it?

@messense I see that maturin 0.14 has been released recently. Can this be a problem with it?

Yes, it's resolved by https://github.com/PyO3/maturin/pull/1279.
For now you can pin maturin to 0.13.x in
https://github.com/PyO3/pyo3/blob/3408cc420052b9a61cbe535c9f7229982f0d20a5/pytests/noxfile.py#L12

Do we need to do this or will the fix be released soon?

Do we need to do this or will the fix be released soon?

I'll cut a new release now, but it's good idea to add a version constraint there anyway.


[TASK] Extract common styles into Components

Estimated story points: 5
Description

Common styles should be refactored into components.

[x] Input
[x] button
[x] select
[x] multiselect

Acceptance criteria

All form controls are using the respective component.

time: 1h


feat/addin_mailto_and_tel

fixes #77
Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ x] New feature (non-breaking change which adds functionality)
[x ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ x] My code follows the code style of this project.
[x ] My change requires a change to the documentation.
[ x] I have updated the documentation accordingly.

@AnitSarkar123 make the cursor pointer

and also add some hover effect like underline

Ok

You can check the code

@AnitSarkar123 drop the hover , just make the cursor change

@AnitSarkar123 drop the hover , just make the cursor change

Drop the hover means

@AnitSarkar123  I mean you don't have to implement the hover

Ok...i will see tomorrow the bug...how to change the coursor

@AnitSarkar123 any updates?

Yes sir @MAVRICK-1 tonight I will give the update

I can 't push my code if i push then many marge configure will appeared

@AnitSarkar123 update the branch


Improve parameterized benchmark summary graphs

A reminder for myself: the parameterized benchmark summary graphs can be sometimes misleading, since they are calculated by averaging results over all benchmark parameters.
If it happens that data series for some parameters is only available starting from a given commit (e.g. new feature), this can causes a sudden jump in the average of the results. Various examples of this here: https://pv.github.io/scipy-bench/ for example in sparse.Getset.track_fancy_setitem --- there is no regression, the benchmark just does not run for all parameters for too old versions.
It's not immediately clear what is optimal here, but the situation probably can be improved.

This is fixed, geometric mean + filling should be OK.


first time user / folder issue

Hey Kaja,
I think the error eviltrout was having is related to this:
    def upload_unique_files
      ([backup] - session.collection_by_title(@folder_name).files).each do |f|
        if f.present?
          full_path = backup.path
          filename = backup.filename
          file = session.upload_from_file(full_path, filename)
          add_to_folder(file)
          session.root_collection.remove(file)
        end
      end
    end

add_to_folder(file) is the code that contains the .create_subcollection . When someone doesn't have a folder created, this operation ([backup] - session.collection_by_title(@folder_name).files)  throws an error, because there's no collection_by_title.
Because the method to create the folder depends on the upload_unique_files, the folder is never created without proceeding with the operation first, but the operation depends on the folder creation 😄
Our folder creation is stuck in a Catch 22

aha yes sounds plausible. Doesn't seem like a hard thing to fix it

https://github.com/berlindiamonds/discourse-sync-to-googledrive/commit/28123b3cbc9cf976e3ac2a85a7a6a18cc15ad2b8


fix: Remove totalCount from auctionResultsByFollowedArtists home screen queries

Description
This change removes  totalCount from all auctionResultsByFollowedArtists home screen queries by using Relay's @relay(mask: false) directive instead.
This should avoid the redundant COUNT operation on the backend described here.
PR Checklist

[ ] I have tested my changes on iOS and Android.
[ ] I hid my changes behind a feature flag, or they don't need one.
[ ] I have included screenshots or videos, or I have not changed the UI.
[ ] I have added tests, or my changes don't require any.
[ ] I added an app state migration, or my changes do not require one.
[ ] I have documented any follow-up work that this PR will require, or it does not require any.
[ ] I have added a changelog entry below, or my changes do not require one.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

Android user-facing changes

Dev changes

Need help with something? Have a look at our docs, or get in touch with us.

Thanks for improving this @olerichter00 !!


Update color space if HDR is toggled in settings

Can't use GetContainingOutput because it returns stale info.

I see there are many DeviceResources.cpp out there, but I figured you guys would know how to propagate that better than me.
Assuming I didn't make a mistake in testing, I did verify that SimpleHDR_PC didn't respect HDR toggle without the changes, still didn't respect HDR toggle without the GetContainingOutput/factory replacement, but did work with all the changes.

Thanks for the feedback.
So the basic issue here is GetContainingOutput in recent Windows 10 versions doesn't do the right thing here...
Also, I forgot to call UpdateColorSpace after refreshing the factory. I tested moving between an HDR monitor and a non-HDR monitor, but didn't every try the toggle.

And yes, I'll need to propagate this fix to a lot of places.  Much appreciated though :)

Note that for UWP I can't use MonitorFromWindow since it's not in the UWP partition. That's why I used GetContainingOutput in the first place.

Fixed the leaks, and changed the loops to match existing code pattern.

So the basic issue here is GetContainingOutput in recent Windows 10 versions doesn't do the right thing here...

I'm not sure how it can since the swap chain is tied to a non-current factory.

Note that for UWP I can't use MonitorFromWindow since it's not in the UWP partition. That's why I used GetContainingOutput in the first place.

I dunno how UWP security works, but when I run SimpleHDR_UWP and step into GetContainingOutput, I see this call stack.
>	user32.dll!MonitorFromWindow()	Unknown
 	dxgi.dll!GetContainedOutputHwnd(struct HWND__ *,class ATL::CComPtr<class CDXGIFactory> const &,class CDXGIAdapter *,struct IDXGIOutput * *)	Unknown
 	dxgi.dll!CDXGISwapChain::GetContainingOutputImpl(struct IDXGIOutput * *,bool)	Unknown
 	dxgi.dll!CDXGISwapChain::GetContainingOutput(struct IDXGIOutput * *)	Unknown
 	SimpleHDR_UWP.exe!DX::DeviceResources::UpdateColorSpace() Line 692	C++

This DLL is allowed to call the function, but the application isn't?

Removed stray variable, and switched to MONITOR_DEFAULTTONEAREST to match DXGI implementation.

Aren't UWP apps supposed to call DisplayInformation.GetForCurrentView, DisplayInformation.GetAdvancedColorInfo, and look at AdvancedColorInfo.CurrentAdvancedColorKind?

The "official" DX12 HDR sample for Desktop doesn't use MonitorFromWindow but checks for the 'best' window intersection with desktop coords directly to match an adapter.
https://github.com/microsoft/DirectX-Graphics-Samples/blob/master/Samples/Desktop/D3D12HDR/src/D3D12HDR.cpp
For UWP it does the same thing:
https://github.com/microsoft/DirectX-Graphics-Samples/blob/master/Samples/UWP/D3D12HDR/src/D3D12HDR.cpp
I should also be handling WM_DISPLAYCHANGE for Win32 and OnDisplayContentsInvalidated for UWP.

I moved the color space update to happen in response to WM_DISPLAYCHANGE, and copied the intersection test out of D3D12HDR.
Also added a null check for m_swapChain because it doesn't make sense to test for null early for the function, and assume non-null later in the function.

Thanks. I'm checking into if the Win32 official sample should be using MonitorFromWindow instead, but this works too :)

Copied in changes as they are for d3d11game_win32_dr, which I think covers all the requests. Also had to add <system_error> to pch.h to fix compiler errors.

Thanks. I'll also need to update SimpleHDR_PC12, SimpleHDR_UWP, and SimpleHDR_UWP12 for the appropriate changes, but I can do that.

Sounds good; I'll let you take care of the rest.
I'd be surprised if MS wouldn't let you borrow an HDR monitor considering you have a need for one, like testing these changes. I dunno how close you guys are to being able to go back in office.

Due to our release mechanism, I ended up doing this via a different path but here is the commit with all your changes, plus also the other sample updates.
If you can try out SimpleHDR_PC, SimpleHDR_PC12, SimpleHDR_UWP, SimpleHDR_UWP12, and SimplePBR12 for UWP that would be helpful. Otherwise I can take it on faith :)
https://github.com/microsoft/Xbox-ATG-Samples/commit/187562b015d83679caf1e1ff93bca9bfc4fe7942

Verified all five seemed to respond correctly to toggling HDR in settings. Thanks!

Much appreciated! Submitted all my PRs so my test suites and templates should be in good shape too.


verbatimModuleSyntax in tsconfig causes problems with generated files

Description of the bug
If you turn on verbatimModuleSyntax in your tsconfig.json, you start seeing errors from the generated files such as
src/types/dev/hilla/mappedtypes/Pageable.ts:7:16 - error TS1284: An 'export default' must reference a value when 'verbatimModuleSyntax' is enabled, but 'Pageable' only refers to a type.

7 export default Pageable;

src/crud.ts:1:8 - error TS1484: 'Pageable' is a type and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled.

import Pageable from './types/dev/hilla/mappedtypes/Pageable';

Minimal reproducible example
Starter + edit tsconfig.json
Expected behavior
It should work
Versions:
- Vaadin / Hilla version: 2.2

I guess we should switch to .d.ts instead of regular .ts for interfaces since they won't produce any JS code. That'll fix this issue and will be more TS-friendly


Error installing cask with "brew install caskroom/cask/brew-cask"

Hi,
I checked all troubleshooting steps but couldn't fix my error. I just installed Homebrew (run the update and doctor stuff as well) but when I try to install Cask it produces an error:
$ brew install caskroom/cask/brew-cask --verbose
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (caskroom/cask).
No changes to formulae.
==> brew cask install caskroom/cask/brew-cask --verbose
/usr/local/bin/brew cask install caskroom/cask/brew-cask --verbose
Error: '/usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask/Casks/brew-cask.rb' does not exist.
Error: nothing to install
Error: Kernel.exit
I searched the file system and brew-cask.rb is nowhere to be found, directory exists. Using Mac OS Sierra 10.12.5.
Output of debug:
$ brew install caskroom/cask/brew-cask --debug
==> brew cask install caskroom/cask/brew-cask --debug
Error: '/usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask/Casks/brew-cask.rb' does not exist.
Error: nothing to install/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/install.rb:17:in run' /usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/abstract_command.rb:34:in run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:98:in run_command' /usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:147:in run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:132:in run' /usr/local/Homebrew/Library/Homebrew/cmd/cask.rb:8:in cask'
/usr/local/Homebrew/Library/Homebrew/brew.rb:100:in <main>' /usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:152:in exit'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:152:in rescue in run' /usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:140:in run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:132:in run' /usr/local/Homebrew/Library/Homebrew/cmd/cask.rb:8:in cask'
/usr/local/Homebrew/Library/Homebrew/brew.rb:100:in `'
Output of cask doctor:
$ brew cask doctor
==> Homebrew-Cask Version
Homebrew-Cask >1.2.0 (no git repository)
caskroom/homebrew-cask (git revision 6b3e7; last commit 2017-06-03)
==> Homebrew-Cask Install Location

==> Homebrew-Cask Staging Location
/usr/local/Caskroom
==> Homebrew-Cask Cached Downloads
~/Library/Caches/Homebrew/Cask
==> Homebrew-Cask Taps:
/usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask (3623 casks)
==> Contents of $LOAD_PATH
/usr/local/Homebrew/Library/Homebrew/cask/lib
/usr/local/Homebrew/Library/Homebrew
/Library/Ruby/Site/2.0.0
/Library/Ruby/Site/2.0.0/x86_64-darwin16
/Library/Ruby/Site/2.0.0/universal-darwin16
/Library/Ruby/Site
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/vendor_ruby/2.0.0
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/vendor_ruby/2.0.0/x86_64-darwin16
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/vendor_ruby/2.0.0/universal-darwin16
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/vendor_ruby
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/x86_64-darwin16
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin16
==> Environment Variables
LANG="de_DE.UTF-8"
PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/usr/local/Homebrew/Library/Homebrew/shims/scm"
SHELL="/bin/bash"

No idea what outdated instructions you’re referencing, but homebrew-cask hasn’t been intalled like that in a long time.
Just run any brew cask command and it’ll work.

Looks like one year old... Sorry, am new to Mac. Thanks! :)


Report all variants

Reported by @AsierGonzalez via email on 2020-07-07.

As we have discussed a number of times, currently only the variants of certain clinical significance types (e.g. pathogenic and likely pathogenic) are included in the evidence strings. We would now like to request that all of them are included and we will then score them based on their clinical significance. We believe that expanding the range of clinical significance we cover may be useful for the users. The reference ticket for this item is https://github.com/opentargets/platform/issues/1139. Additionally, I would appreciate if you could point me to the ClinVar file(s) that contain the clinical significance information so that I can have a look into it to get a sense of what the values are and what their distribution is so that I can start working on the new scoring.

I couldn't agree more about including all variants. This can definitely be done.
Regarding the ClinVar files: we obtain most of the information, including clinical significance levels, from a single huge XML dump. However, I suggest that you don't start looking into it just yet. Right now I'm working on an issue #120, which is about describing all possible ways in which variants (including haplotypes, genotypes, and other complex cases) can be represented in ClinVar schema. This is issue was made necessary by our decision to swap RCV identifiers with VCV: when I started going through our code, I noticed it tries to handle some strange cases which I couldn't understand without revisiting the entire ClinVar data model.
What I'm saying is, given that I have the parser and the plotting already set up, I could easily extract any distribution of any value from the ClinVar data which you might require. So I'll do that and will report the results to you.

Sure, I am happy to wait - not too keen to start fighting with a huge XML when you know it better


Cannot get some public transport itineraries

Description
For some origins and destinations, the paths are empty (undefined behavior). See the log below.
It worked before the commit b038bfcd1d5823a2f208dff00f87fdc539d7eaed. I do not know exactly what is happening. If you change a bit the origin and destination (for origin, for example 45.361,5.950), it successfully find paths. @michaz if you explain what you changed, we may be able to figure it out.
To Reproduce
Steps to reproduce the behavior:

checkout GraphHopper and build
use the configuration below with the files PBF and GTFS (it may also work with updated PBF)
run java -Xmx32G  -jar path to /web/target/graphhopper-web-5.0-SNAPSHOT.jar server config_ara_tc.yml
Go to http://localhost:8989/route?point=45.360,5.950&point=45.180,5.740&profile=pt&pt.arrive_by=false&pt.earliest_departure_time=2022-01-05T16:40:00Z

Minimum configuration:
graphhopper:
  datareader.file: /path to/rhone-alpes-latest.osm.pbf
  graph.location: graph-cache-ara-tc
  gtfs.file: /path to /40ee9d6c-3bb9-409e-b670-986212de63f2_CG38.GTFS.zip

  profiles:
    - name: foot
      vehicle: foot
      weighting: fastest

server:
  application_connectors:
    - type: http
      port: 8989
      bind_host: localhost

Expected behavior
The paths should not be empty. There should be at least one path. (At least, an error should be written.)
System Information

Ubuntu 21.10
Java

openjdk version "11.0.13" 2021-10-19
OpenJDK Runtime Environment (build 11.0.13+8-Ubuntu-0ubuntu1.21.10)
OpenJDK 64-Bit Server VM (build 11.0.13+8-Ubuntu-0ubuntu1.21.10, mixed mode, sharing)

GraphHopper after commit b038bfcd1d5823a2f208dff00f87fdc539d7eaed

Screenshots & Logs

Output with a build after commit b038bfcd1d5823a2f208dff00f87fdc539d7eaed
{
  "hints": {
    "visited_nodes.sum": 1351705,
    "visited_nodes.average": 1351705
  },
  "info": {
    "copyrights": [
      "GraphHopper",
      "OpenStreetMap contributors"
    ],
    "took": 1887
  },
  "paths": []
}

Output with a build before commit
{
  "hints": {
    "visited_nodes.sum": 114067,
    "visited_nodes.average": 114067
  },
  "info": {
    "copyrights": [
      "GraphHopper",
      "OpenStreetMap contributors"
    ],
    "took": 289
  },
  "paths": [
    {
      "distance": 1626.231,
      "weight": 3103097,
      "time": 3103097,
      "transfers": 0,
      "points_encoded": false,
      "bbox": [
        5.737206,
        45.179985,
        5.955309,
        45.359999
      ],
      "points": {
        "type": "LineString",
...

The number of visited nodes exceed the maximum of 1M. If I increase the max to 2M, paths are found (it needs to visits 1351705 nodes).
There is actually one path found (out of 2, the second one is only walk) with increased maximum which is the same as before commit b038bfcd1d5823a2f208dff00f87fdc539d7eaed.

I found something:
The PtLocationSnapper snap to PtNode which can at the same time be a streetNode and a ptNode.
https://github.com/graphhopper/graphhopper/commit/b038bfcd1d5823a2f208dff00f87fdc539d7eaed#diff-210834b7a7294f171f91346ec0282a5f465e6a14b81eba98413f8f146bd49e57R68
This seems new: it seems that before the Node was either a streetNode or a ptNode, not both at the same time.
However, the GraphExplorer cannot find Node which are both at the same time. That is why it is ending up in exploring all the possible nodes. It is possible to correct this issue by attributing the value "-1" on the NodeId instead of finding the closest street or ptNode.
Example:
public Result snapAll(List<GHLocation> locations, List<EdgeFilter> snapFilters) {
    PointList points = new PointList(2, false);
    ArrayList<Snap> pointSnaps = new ArrayList<>();
    ArrayList<Supplier<Label.NodeId>> allSnaps = new ArrayList<>();
    for (int i = 0; i < locations.size(); i++) {
        GHLocation location = locations.get(i);
        if (location instanceof GHPointLocation) {
            GHPoint point = ((GHPointLocation) location).ghPoint;
            final Snap closest = locationIndex.findClosest(point.lat, point.lon, snapFilters.get(i));
            if (!closest.isValid()) {
                IntHashSet result = new IntHashSet();
                gtfsStorage.getStopIndex().findEdgeIdsInNeighborhood(point.lat, point.lon, 0, result::add);
                gtfsStorage.getStopIndex().findEdgeIdsInNeighborhood(point.lat, point.lon, 1, result::add);
                if (result.isEmpty()) {
                    throw new PointNotFoundException("Cannot find point: " + point, i);
                }
                IntCursor stopNodeId = result.iterator().next();
                for (Map.Entry<GtfsStorage.FeedIdWithStopId, Integer> e : gtfsStorage.getStationNodes().entrySet()) {
                    if (e.getValue() == stopNodeId.value) {
                        Stop stop = gtfsStorage.getGtfsFeeds().get(e.getKey().feedId).stops.get(e.getKey().stopId);
                        final Snap stopSnap = new Snap(stop.stop_lat, stop.stop_lon);
                        stopSnap.setClosestNode(stopNodeId.value);
                        allSnaps.add(() -> new Label.NodeId(-1, stopSnap.getClosestNode()));
                        points.add(stopSnap.getQueryPoint().lat, stopSnap.getQueryPoint().lon);
                    }
                }
            } else {
                pointSnaps.add(closest);
                allSnaps.add(() -> new Label.NodeId(closest.getClosestNode(), -1));
                points.add(closest.getSnappedPoint());
            }
        } else if (location instanceof GHStationLocation) {
            final Snap stopSnap = findByStopId((GHStationLocation) location, i);
            allSnaps.add(() -> new Label.NodeId(-1, stopSnap.getClosestNode()));
            points.add(stopSnap.getQueryPoint().lat, stopSnap.getQueryPoint().lon);
        }
    }
    QueryGraph queryGraph = QueryGraph.create(graphHopperStorage, pointSnaps); // modifies pointSnaps!

    List<Label.NodeId> nodes = new ArrayList<>();
    for (Supplier<Label.NodeId> supplier : allSnaps) {
        nodes.add(supplier.get());
    }
    return new Result(queryGraph, nodes, points);
}

The fact that the error (too much visited nodes) is not showing up is another issue.

Ouch. Thank you.


fix(deps): update terraform-module

This PR contains the following updates:

Package
Type
Update
Change

github.com/terraform-ibm-modules/terraform-ibm-key-protect
module
patch
v2.2.0 -> v2.2.1

github.com/terraform-ibm-modules/terraform-ibm-key-protect-key
module
minor
v1.0.3 -> v1.1.0

github.com/terraform-ibm-modules/terraform-ibm-key-protect-key-ring
module
minor
v2.0.1 -> v2.1.0

Release Notes

terraform-ibm-modules/terraform-ibm-key-protect
v2.2.1
Compare Source
Bug Fixes

update modules references to point to hashicorp module registry (7578950)

terraform-ibm-modules/terraform-ibm-key-protect-key
v1.1.0
Compare Source
Features

Renamed module to terraform-ibm-kms-key as official support added for HPCS. This module enables creating key in Key Protect and HPCS. (#398) (705ddc1)

v1.0.4
Compare Source
Bug Fixes

update module reference to hashicorp module registry (f5f3e42)

terraform-ibm-modules/terraform-ibm-key-protect-key-ring
v2.1.0
Compare Source
Features

Renamed module to terraform-ibm-key-protect-key-ring as official support added for HPCS. This modules works with both Key Protect and HPCS.  (#394) (1c58e95)

v2.0.3
Compare Source
Bug Fixes

update module reference to hashicorp module registry (e21735e)

v2.0.2
Compare Source
Bug Fixes

add new example to use existing kms (#389) (e28c1cd)

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

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

This PR has been generated by Renovate Bot.

/run pipeline

Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
⚠ Warning: custom changes will be lost.

/run pipeline

Going to close this PR so renovate will create a new one that it can manage since we fixed the bug that is causing https://github.com/terraform-ibm-modules/terraform-ibm-key-protect-all-inclusive/pull/348#issuecomment-1621421446


Fix getManifoldPico()

io.picolabs.manifold_owner currently returns "No Manifold Pico", even though one currently exists.

I tracked it down to an old wrangler change. I am pushing the fix to the Manifold repo. Just to be clear, it was not wrangler's problem.


Update CLI extensions available doc

Update CLI extensions available doc.
Triggered by Azure/azure-cli-extensions - TRAVIS_BUILD_ID=498866021
https://github.com/Azure/azure-cli-extensions/commit/06d67f4cd999db1c271f486e42b4c5b0202c2f45

OPS Build status updates of commit d1f8a37:
:clock10: Preparing: average preparing time is 57 sec(s)

OPS Build status updates of commit d1f8a37:
:clock10: Incremental building: average incremental building time is 13 min(s) 53 sec(s)

OPS Build status updates of commit d1f8a37:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/azure-cli-extensions-list.md
:white_check_mark:Succeeded
View (azure-cli-latest) View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid)

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


Ligatures are affecting scroll performance

I am using the FiraCode font with macligatures set. When scrolling down, MacVim seems to hiccup a bit, but when I scroll up it is very smooth. When I do not set macligatures it scrolls fine (but doesn't show the cool characters). I am testing the scroll speed using both my touchpad and jk keys and my key repeat is set at 1 which is 15ms.
This was originally posted in FiraCode's issues, but the solution to the problem probably lies in improving macligatures support.
OSX 10.11, MacbookPro Retina
Followed the instructions to
set macligatures
set guifont=Fira\ Code:h12

Doing some dumb testing against Activity Monitor, it looks like the CPU load when I scroll down is much lower (~%60) than when I scroll up (150-200%), so the downscrolling seems to be inhibiting the scroll rather than taking on a huge CPU load and causing framerate hiccups.
Looking around for some possibly related topics:
Guy with the same issue (Scroll to Amadeus Demarzi)
thread related to listchars

I  can confirm this by testing this with Quartz Debug FPS Counter. With Fira Code and no ligatures, scrolling down/up (holding down j/k with high key repeat (defaults write -g KeyRepeat -int 1)) produces 55fps. With ligatures, its consistently produces only 33-35fps.

I think the performance wasn't previously this bad. I even see a huge slowdown when I am moving the cursor in regions of the text that have no ligatures, and I am causing no redraws. Build 127.

When I'm running MacVim in the Terminal, I'm seeing flickering with macligatures on. Doesn't appear to be a problem w/the GUI version, though.

I'm also seeing this in 8.1.72 (149).  I was seeing incredibly slow performance with h/j/k/l movement when rendering more than three splits.  I :set nomacligatures and the issues went away.
Strangely, when I hit the top/bottom of the screen while moving the cursor, causing the screen to scroll, everything begins moving at normal speeds.  As soon as I move the cursor inside the visible viewport, it's slow again.


/range/lastCell is missing in OpenAPI description

Path:
/me/drive/items/{id}/workbook/names/{name}/range/lastCell is missing in OpenAPI description.
Raptor error:
Original HTTP Snippet:
GET /v1.0/me/drive/items/{id}/workbook/names/{name}/range/lastCell HTTP/1.1
Host: graph.microsoft.com
Exception while processing /home/vsts/work/1/a/Snippets/range-lastcell-v1-httpSnippet.
Path segment 'lastCell' not found in path

CC: @Ndiritu @SilasKenneth @shemogumbe @sebastienlevert @maisarissi

Not only lastCell, but also others mentioned here: https://github.com/microsoftgraph/msgraph-sdk-dotnet/issues/1873


Generate aliases

Generate aliases!

I'd like to modify the bin/ stuff before we merge. Some of it could be reduced to aliases. The others might work better using go and then some aliases. But if you wanna merge sooner that's fine by me. ￼

Also. We should tag the current version before moving on. Just in case people wanna keep using previous version.

I'm in no rush to merge. I'd love to get this polished before that. I'll actually work off a branch and then merge into this branch. I only created a PR because it's the easiest way for me to view the diff 😂 , and we can comment on the code here.

Also. We should tag the current version before moving on. Just in case people wanna keep using previous version.
Good idea 👍

I created a PR to rebase this branch on top of master: https://github.com/Dbz/kube-aliases/pull/21
It definitely needs some 👀

So with generation, I currently give everything all the base commands. But I think it may be better to have each resource have a list of commands that it wants. This way we whitelist the cmds we want for each resource.

Hey, I merged and changed a few things.
Offhand, the only thing was an underscore in the tests seems unconventional. Also, when reading in an aliases I dont think order is guaranteed so the test fails sometimes. Im going to adjust it a little bit but need to go for the day and am commiting.

Also, wanna move test cases yaml files into generate/tests just so we can test specific things there.
Ive never used require before. Will have to check it out.

Earlier commit I moved types into their own thing. I believe its more conventional.

What do you think about removing bin/generate-kube-aliases from git? Seems like something to add to the .gitignore. I didn't want to do that without asking you first

What do you think about removing bin/generate-kube-aliases from git? Seems like something to add to the .gitignore. I didn't want to do that without asking you first

Yea, I think so. Im thinking we generate a default file for users to source and only if they want they can use the generate tool. Figure we can make them into releases. Probably should have it ignore bin completely.

This last commit allows for additional aliases. Essentially we can generate everything to a single file.
Im happy to revert back if this isnt the direction youd like to go.

Guess let me know what you think from here.
Couple of thoughts. I have.

Probably can change cmds to a list like I had additional. I dont think it needs to be a map.
More tests - make sure things fail nicely
Build a release
Redo readme - most users will probably just want to source the generated file

OK, here is the PR to remove the leaky abstraction. I did a little bit of extra refactoring to combine Generate and GenerateAdditional: https://github.com/Dbz/kube-aliases/pull/26

Well, I think this is looking great.
I like all of your bullets. I would add we should make the user provided aliases go into a separate file so we're not overriding it on update.

Hmmm... that seems to have broken stuff. Tests are passing, but if you actually use the tool its broken. I have fixed that (need to initialize the map) but now the tests are always passing. So gotta figure out what that is all about.

It is the TestMain function. Itll be fixed next commit.

I made some modifications for my personal use to create aliases for powershell. I don't know go, so I am vary of opening a PR, but the basic idea is
diff --git a/generate/pkg/generate/generate.go b/generate/pkg/generate/generate.go
index 069a456..e083c42 100644
--- a/generate/pkg/generate/generate.go
+++ b/generate/pkg/generate/generate.go
@@ -104,7 +104,9 @@ func GenerateAlias(w io.Writer, aliases *types.AliasCMDs) error {
                        lastResource = alias.Resource
                }

-               fmt.Fprintf(w, "alias %v=\"%v\"\n", aliasName, aliasCommand)
+               ps1prefix := "ps1_"
+               fmt.Fprintf(w, "function %v%v {%v}\n", ps1prefix, aliasName, aliasCommand)
+               fmt.Fprintf(w, "New-Alias -Name %v -Value %v%v\n", aliasName, ps1prefix, aliasName)
        }

        var comment string
@@ -121,7 +123,9 @@ func GenerateAlias(w io.Writer, aliases *types.AliasCMDs) error {
                        comment = alias.Comment
                }

-               fmt.Fprintf(w, "alias %v=\"%v\"\n", alias.Short, alias.CMD)
+               ps1prefix := "ps1_"
+               fmt.Fprintf(w, "function %v%v {%v}\n", ps1prefix, alias.Short, alias.CMD)
+               fmt.Fprintf(w, "New-Alias -Name %v -Value %v%v\n", alias.Short, ps1prefix, alias.Short)
        }
        return nil
 }

It would be very nice if this could be accomodated.

Hi @anupamsr . I'm happy to accommodate :)
What should do is work together on a PR to create a new generated file specifically for powershell users. Should should be able to do that with a minimal amount of code.

@anupamsr -- started the support. Thank ya. 6199509f06cede43c5d2d732e81a3d53b28bd271

Hi. Is there a plan to add aliases for kubectl context?
+  - short: kk
+    cmd: "kubectl config"
+    comment: "Modify kubeconfig files."
+  - short: kkc
+    cmd: "kubectl config get-contexts"
+    comment: "Describe one or many contexts."
+  - short: kku
+    cmd: "kubectl config use-context"
+    comment: "Set the current-context in a kubeconfig file."

I am just about learning kubernetes devops so it if you think there is a better way, I would really appriciate knowing that.

Sure, if you want you can open a pull request and Ill merge it in. If not, Ill add it.

Yes, if you're gong to open a PR, please base it off of this branch!

Done. Please have a look: https://github.com/Dbz/kube-aliases/pull/34


Change commit messages in all repositories

Currently our commits have:
chore(openapi) ...
I think we should include name of the component inside the commit and use fix.
This way we can ensure that we will get meaningful changelog.
fix(kafka-admin) ...

Created for discussion

CC @craicoverflow

I think we should include name of the component inside the commit and use fix.

What if it is a feat? Maybe the commit type should match whatever thenew semver type is?

I think change should be added to code PRs (OpenAPI updates can be still chore)

I agree with this.

I think feat or fix are easier to change than chore as PR's are merged and they are not appearing in changelog.
What we want at minimum is information about:

What APIs were regenerated for that version and what are the same (Especially for golang that has all apis in one bundle)
If there are breaking changes in any of those apis
Distinct between fix and feat (but that is lower importance IMHO than two above)

I think using a tool like https://github.com/Tufin/oasdiff would come in handy here.
I tried to include it into the PR created through the Update OpenAPI specification workflow but it did not seem to work.
https://github.com/redhat-developer/app-services-sdk-go/blob/main/.github/workflows/update_openapi.yaml#L85

chore(all): re-generate OpenAPI client(s)

A problem is that our SDK generation workflow generates for all SDKs, so technically it is challenging to provide granular commit messages when there are multiple SDKs updated, where one could have a fix, one could have a feat and one could have a breaking change. Do you just go with the most major change?

It does generate all SDK's but in practice it only generates single one due to single OpenAPI change so never had problem with this specifically.
Problems I have right now:

Commit messages and changelogs are very unformalized across all SDK's.
We can document them but still this brings some challenges.
Having information in changelog what API was changed and if it was breaking is enough for my point of view.

Golang SDK is missing changelog. Will be resolved by #166

golang SDK is different than js-sdk and java SDK - missing examples etc.
So we cannot detect breaking changes or verify if things work. Will be resolved by #124

After checking I think we could keep original message in the openapi file (and use generation as form of keeping repo up to date with openapi files.

I actually think conventional commits are not suitable as a changelog for the SDKs as they are limited to the size of the commit message which really does not tell you enough of what has changed in the OpenAPI.
Tufin/oasdiff can be used to generate a PR description, which will be helpful for the maintainer to review. We can also use a diff tool to generate a changelog between two tags.

Actually I retract that - this will focus too much on the OpenAPI differences, but users will not even care about this since they are using the SDK only. I will try again to generate an OpenAPI diff and use it to create better commits.

Amazing idea. I was wondering if possible to use second lines from commits in gitchangelog when adding support to js-sdk

@craicoverflow another idea:
Import commits from source repo into description.

Yeah maybe - but I imagine source repo commits might focus more on low level details and might not transcribe well to the changelog for an SDK - which should be understandable with little context of the change details.

Yes. Feel free to do what you feel is best.


Add unsupervised labelling

add support for comma-separated llm generated
note to self: for structure, regex for a comma separated line and make sure few-shot prompt (ie: hf/text-clusetering lib)

closed -- 7ac3c73


Notifications: clickable area question

The entire top section of a notification list item activates the link to the Linode, is this intended? should it be only the link itself that can be clicked to go to that Linode?

closing for behavior task #1056


Forward Dialog utterance and parameters when doing a LUIS Intent redirection

I have implemented the onDefault action to handle all the utterances that are not matched elsewhere.
I have added a grammar spell checker, so that I could fix typos by the user like
quute by adele that is not understood by LUIS, by a simple grammar can turn this in the right one that is quote by adele.
At this point, I'm going to suggest the user if the correction is the right one prompting it:
var msg = "You typed " + result.text + "\nDid you mean \""+result.correction+"\"?"
BotBuilder.Prompts.text(session, msg );

and as soon as the user type yes I would like to reenter the dialog with this query, but I do not see a way to do this:
 function (session, results)
          {

           var response=results.response;
            if ( response == 'yes' ) {
              //@TODO redo query
              session.beginDialog('/');
            }
            else {
              session.send( self.getLocalizedString('RESPONSE_DISCARD','RESPONSE_DISCARD') );
            }

          }

For my understanding I can define redirects like
.on('DeleteTask', '/deleteTask')

Using the Session userData object I can add parameters like
session.userData.correct =  {
                      text : result.text,
                      correct : result.correction
                    };

in a session, and that's ok, but how to forward the user utterance as well properly in order to force to the right redirect i.e. force LUIS Dialog to the right route programmatically or to express this differently:
Given an utterance programmatically, is in the botframework api a way to get the matching Intent objects back from LUIS dialog model?
Here is the code callbacks in the onDefault.
self.dialog.onDefault(
        [
          function(session, args, next)
          {

            // Check query grammar
            var message = session.message.text;
            console.log("Checking grammar on %s", message);
            self.languageBot.spellChecker(message, function(result,error) {
                if(error) { // grammar error
                  self.logger.error("Failed to check grammar for %s", message);
                  session.send( self._options.locale['RESPONSE_NOTUNDERSTOOD'] )
                } else { // grammar passed
                  if( result.text != result.correction ) { // misspelling
                    var msg = "You typed " + result.text + "\nDid you mean \""+result.correction+"\"?"
                    session.userData.correct =  {
                      text : result.text,
                      correct : result.correction
                    };
                    BotBuilder.Prompts.text(session, msg );
                  }
                  else {
                    session.send( self._options.locale['RESPONSE_NOTUNDERSTOOD'] )
                  }
                }
            });

          }
          ,  function (session, results)
          {

           var response=results.response;
            if ( response == 'yes' ) {
              //@TODO redo query
              session.beginDialog('/');
            }
            else {
              session.send( self.getLocalizedString('RESPONSE_DISCARD','RESPONSE_DISCARD') );
            }

          }
        ]);

Interesting... First let me answer your core question and then I have one other suggestion...
To answer your question you'd want to use session.replaceDialog() instead of session.beginDialog() that will unload and reload the current dialog. To apply the correction just assign it to session.message.text before calling replaceDialog() That should do what you're trying to do.
My other suggestion is to use Prompts.confirm() instead of Prompts.text(). This prompt already knows to look for several variants of the yes & no.  The returned result.response will be a simple Boolean so way easier to check.

So I guess I have one more suggestion. You can teach LUIS to recognize these misspellings.  When you first train your LUIS model it's going to pretty much suck. The idea is you have to regularly go back and update your model by labeling all of the utterances it's been seeing, including the ones with misspellings, and then retrain and deploy a new model . If you do this it will quickly get better and eventually it'll will handle pretty much any misspellings the user throws at it.  Honestly you shouldn't need to add your own spell checking logic as a way to deal with unrecognized intents.  Just be religious about updating your model every day the first few weeks/months your bot is deployed.
Its also useful to just let a few people kick the tires by throwing your bot some messages you didn't think of.

@Stevenic thanks I'm going to changing the current implementation using the replaceDialog and overwriting session.message.text first.
Yes, absolutely, that was my second option, do retrain of misspellings, so this leads me to a new question. When deployed it could be hard to keep it completely "supervised", I mean labeling misspelling to the right Intent.
So, let's supposed I would like to keep grammar check, and let the users to crowd label those misspelling like quote by neil yoong or what song says snait peter won't call by name, etc.
At that point my problem turns into: can I submit to LUIS programmatically the utterance association to a certain Intent? If so, I could auto label error corrected by an automatic tool, and human reviewed by real users, so I will be sure to have a more than acceptable accuracy.
Thanks.

So I believe LUIS has an API for publishing label data. Unfortunately they don't have a direct way of letting you add people to a project so they can help retrain the model. What you can do is export your model which people can then add their labeled utterances into. But they'll need to either hand label them or import them into LUIS themselves, label them, and then export them back out. All very nasty sounding tasks...
To be honest I don't think the retraining tasks will be that bad. LUIS does a good job of recommending to you the utterances that it thinks it had issue with to start with just check this list every day and then things should stabilize pretty quickly. Once they do check it once a week for a month or two and after that you probably have pretty good coverage and you shouldn't really have to even think about it anymore.

@Stevenic thanks for your help. Your answer makes sense.
I have also posted the question to the LUIS forum https://social.msdn.microsoft.com/Forums/azure/en-US/99ed8e2d-2b08-472f-a098-bae5ad1d5f16/how-to-submit-new-labels-prain-and-publish-the-model-programmatically?forum=LUIS
Regarding the replaceDialog, it perfectly works, I was able to overwrite the value of message.text in the session and then restart the new dialog based on it (very useful!). I have also replaced the Prompts.text()  with the Prompts.confirm(), in order to evaluated results.response in the waterfall callbacks as a boolean.
About this, I have seen that the docs here doese not specify which kind of utterances it supports. Since I have build a a amazon-echo skill, I wonder if there is something similar to the built-in (pre-built) YesIntent that is trained on well-known confirmation utterances like

yes
yes please
sure

and if there is a way to extend this one with custom ones like

yep
right
alright

etc.
The same would work for a NoIntent etc.
Thank you.

No... We don't have any sort of pre-built intents yet. I completely agree they would be useful but there's an issue for us as to where does the LUIS model run? LUIS is a subscription based service so it potentially costs money to run models.  The Prompts class lets you replace the recognizer used and my thought was to potentially provide a LuisPromptRecognizer class which would use a LUIS Model to drive the built-in prompts. You would need to deploy a provided model to LUIS though and run it from your subscription. So there would be a workflow needed to set it up.

Got it, thanks! So you are referring to the Prompts options here.
This would be a good opportunity to have built-in intents for this new LUIS "prompt" model. Given that,  using the compareConfidence would be easier to handle the dialog.onDefault handler.
My aim, in this "natural language understanding bot" scenario, is not to leave the end-user without any assistance or without having LUIS to have a minimal understanding of the wrong utterances, that is exactly what is suggested in the Prompt docs here like handling things like "quit" or "what can I say?".

Yes... We're planning to add built in ways of providing answers for "what can I say?" and so forth but all good feedback.

Closing this for now.

@Stevenic ok, thank you.
For our records, some cases of type in a text bot:
You typed qquote by queen
Did you mean "Quote by queen"?
yes
{ firstRun: true,
  corrections: { text: 'qquote by queen', result: 'Quote by queen' } }
I have found this quote in "Voodoo" by Queen
"And it's all absurd to me"

and
get my favourites
You typed get my favourites
Did you mean "Get my favorites"?
yes
{ firstRun: true,
  corrections: { text: 'get my favourites', result: 'Get my favorites' } }
I have found 367 favorites. Your last favorite songs is "È tutto un attimo" by Anna Oxa. Do you want get the lyrics?

Typos are more frequent as we could think if your user interface is a keyboard rather than a mouse, so I strongly suggest a simple api to send new tuples (badUtterance, intentName) to LUIS like:
("get my favourites", "UserFavoritesIntent")', ("qquote by queen","SnippetIntent"), etc.
This is basically a manually labeled system assisted by a automatic syntax correction system.

hi @Stevenic. session.replaceDialog does not seem to trigger the intent match again.
mine is a similar. but instead of spell check, I am trying the following sequence.
on a local prompt question instead of answering the prompt question, the user chooses to do one of the global utterances ( on which Luis is trained )..
in the prompts results we notice that user has not chosen the standard answer but given a general utterance.
I did a session.replaceDialog('/');
it is supposed to pass the current message to Luis and invoke the rest of the intent matching waterfall sequences.
But the waterfall sequence is not being invoked.
but these sequences are invoked if User directly provides these utterances out of the prompt loop.
c= builder.EntityRecognizer.findBestMatch(globals.commodities, input, 0.2);
if (!c) {
session.send(prompts.notPicked);
session.replaceDialog('/');
// now the dialog intent matching / default waterfall sequence should be invoked,
}
the sequences are not getting invoked. It is waiting for user input again.

Sorry about that... This was a behavior change to fix a bug that was tripping everyone up. When you create your IntentDialog make sure you set the recognizeMode to RecognizeMode.onBegin so:
var dialog = new builder.IntentDialog({ recognizeMode: builder.RecognizeMode.onBegin, recognizers: [] });

Thanks Steve. this fixes the problem.
btw, would you know how long the session object will be available in memory. How can we clean up the memory if they are kept in memory for those chats that gone idle?

@Stevenic  hi steve I am implementing one food bot using LUIS, so I want to take input from user & give answer, if user enters incomplete info. then I want to reply him with another dialog which I am getting from LUIS json, but how can I get those response dialog  in my Nodejs code? I can not get those dialogs in botbuilder node's intent's function response, my sample json is here.
{   "query": "get 5 sandwichwith jumbo size ",   "topScoringIntent": {     "intent": "getOrder",     "score": 0.9999304,     "actions": [       {         "triggered": false,         "name": "getOrder",         "parameters": [           {             "name": "Food Name",             "type": "foodName",             "required": true,             "value": null           },           {             "name": "Size",             "type": "size",             "required": true,             "value": null           },           {             "name": "quantity",             "type": "quantity",             "required": true,             "value": [               {                 "entity": "5",                 "type": "quantity",                 "resolution": {}               }             ]           }         ]       }     ]   },   "intents": [     {       "intent": "getOrder",       "score": 0.9999304,       "actions": [         {           "triggered": false,           "name": "getOrder",           "parameters": [             {               "name": "Food Name",               "type": "foodName",               "required": true,               "value": null             },             {               "name": "Size",               "type": "size",               "required": true,               "value": null             },             {               "name": "quantity",               "type": "quantity",               "required": true,               "value": [                 {                   "entity": "5",                   "type": "quantity",                   "resolution": {}                 }               ]             }           ]         }       ]     },     {       "intent": "None",       "score": 0.07642237     },     {       "intent": "Help",       "score": 9.138411E-07     }   ],   "entities": [     {       "entity": "5",       "type": "quantity",       "startIndex": 4,       "endIndex": 4,       "score": 0.7467653,       "resolution": {}     }   ],   "dialog": {     "prompt": "which food do you want?",     "parameterName": "Food Name",     "parameterType": "foodName",     "contextId": "ae5de259-6a9b-476c-bbb8-1be7fceba761",     "status": "Question"   } }


Improve diagnostics and support for never type

Purpose
$title
Fixes #29663
Approach

Describe how you are implementing the solutions along with the design details.

Samples

Provide high-level details about the samples related to this feature.

Remarks

List any other known issues, related PRs, TODO items, or any other notes related to the PR.

Check List

[x] Read the Contributing Guide
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[x] Added necessary tests

[x] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

This PR needs to be updated once #29905 PR is merged.

@lasinicl, let's address the suggestions in a separate PR.


Homebridge restart causes 403 errors

Describe The Bug:

While shutting down my Homebridge server it has been observed that the plug-in throws 403 errors about the token being invalid. It seems fairly consistent as well.
To Reproduce:

Given a homebridge server with the plug-in running normally
When the server is restarted
Then the 403 error is noticed in the logs

Expected behavior:

Logs:
[11/7/2022, 10:57:31 AM] [Homebridge UI] Homebridge restart request received
[11/7/2022, 10:57:31 AM] [Homebridge UI] UI / Bridge settings have not changed; only restarting Homebridge process
[11/7/2022, 10:57:31 AM] [Homebridge UI] Sending SIGTERM to Homebridge
[11/7/2022, 10:57:31 AM] Got SIGTERM, shutting down Homebridge...
[11/7/2022, 10:57:31 AM] [Homebridge Automower Platform] Closing the stream...
[11/7/2022, 10:57:31 AM] [Homebridge Automower Platform] Stream closed.
[11/7/2022, 10:57:31 AM] [Homebridge Automower Platform] Logging out of the Husqvarna platform...
[11/7/2022, 10:57:31 AM] [Homebridge Automower Platform] Sending request [1/5]: 349ce722-2d0c-4781-963c-602f943cbe83
 {"url":"https://api.authentication.husqvarnagroup.dev/v1/token/REDACTED","method":"DELETE","headers":{"X-Api-Key":"REDACTED","Authorization-Provider":"husqvarna"}}
[11/7/2022, 10:57:31 AM] [Homebridge Automower Platform] Disconnected!
[11/7/2022, 10:57:31 AM] [Homebridge Automower Platform] Received response: 349ce722-2d0c-4781-963c-602f943cbe83
 {"status":403,"statusText":"Forbidden","body":{"errors":[{"title":"Error in API Gateway","code":"INVALID_API_KEY"}]}}
[11/7/2022, 10:57:31 AM] [Homebridge Automower Platform] An unexpected error occurred while shutting down the plugin. Error: ERR: 403 -> {"errors": [{"title": "Error in API Gateway","code": "INVALID_API_KEY"}]}
    at AuthenticationClientImpl.<anonymous> (/homebridge/node_modules/homebridge-automower-platform/dist/clients/authenticationClient.js:121:23)
    at Generator.next (<anonymous>)
    at fulfilled (/homebridge/node_modules/homebridge-automower-platform/dist/clients/authenticationClient.js:5:58)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
[11/7/2022, 10:57:36 AM] [HB Supervisor] Homebridge Process Ended. Code: 143, Signal: null
[11/7/2022, 10:57:41 AM] [HB Supervisor] Restarting Homebridge...

Plugin Config:
{
    "name": "Homebridge Automower Platform",
    "lang": "en",
    "appKey": "REDACTED",
    "authentication_mode": "client_credentials",
    "application_secret": "REDACTED",
    "platform": "Homebridge Automower Platform"
}

Environment:

Plugin Version:
Homebridge Version: v1.5.1
Node.js Version: v16.18.0
Operating System: docker

Initial investigation resulted in the Husqvarna API refusing to remove the Client Credentials flow based access tokens via DELETE action when invoked manually outside of the plugin. Password tokens however were being removed as expected.
{
    "errors": [
        {
            "title": "Error in API Gateway",
            "code": "INVALID_API_KEY"
        }
    ]
}

After the deletion, the access tokens were not being removed and still active so session hijacking could be a potential issue.

Their service desk team responded, this item was transferred to the appropriate internal team for investigation.


/wb fill runs out of memory (WB 1.9.10 beta)

When I was running WB 1.9.9 beta I couldn't get /wb fill to complete because it would throw errors about not being able to unload chunks.
With WB 1.9.10 beta the errors are gone, however I can see the available memory decrease as the fill service is running, until there is none left and the fill service will stop until I restart the server.
I'm on Spigot 1.14.1.
Here is a log of my startup where you can see the memory issue: https://pastebin.com/raw/FY5mJTTs

I am also having this issue. Paper Spigot 1.14.1, it runs fine and i've legit tried 2GB -> 8 GB by 2GB increments. Crashes every so often with no reason - its going perfectly then just crash.

Having similar kind of trouble with 1.9.10.

Tested on spigot 1.14.2 on the 1.14 compatible release and am having this exact same issue. Even changing the freq value to super low like 5 only slightly extends the life of the fill but then it still eventually completely crashes.

I'm going to suggest try the new PaperMC build for those running 1.14.2, update your server jar to #83 or above, several memory leaks where fixed which addresses many chunk/chunk cache issues, there have been MASSIVE updates in the past week alone.
https://github.com/PaperMC/Paper/commit/5c7081fecc7d6a2a435cf73e20849eb8b4e66f12
This was a chunk related Paper issue not a WorldBorder issue.  A developer on the Discord acknowledged these issues and they where worked on since release #56

The issue no longer exists here.  Chunks should be fully optimized by release #85 from what I was told.
Running with JVM params:  "%JRE_HOME%\java.exe" -d64 -server -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=7 -XX:+AggressiveOpts -Xms1G -Xmx4G -jar "!APP_HOME!\server.jar" nogui
/wb reload
/wb fill 1000 208 false
/wb confirm

Results:

Average:  130-230 chunks/run

My issues were also solved by paper build 58, so I'm contented :)


Add button[disabled] styling

Right now, <button disabled> displays like any other button, same opacity, same cursor, same hover styles – no way to see that it's disabled other than clicking on it and wondering why nothing happens.
Some additional styles are necessary here in my opinion. 👀

Fixed in #35

Fixed in #35