Preprocessor Extensibility

Although I prefer using LESS, SASS is also great and there are some situations in which I am required to use it. Built-in support for SASS/SCSS in SquishIt would be a great feature, although not trivial because the compiler is written in Ruby.
Maybe some knowledge could be acquired from GitHub's Paul Betts and his Sass And CoffeScript repository, which uses IronRuby for the same purpose I am suggesting.

I 100% agree with you, and would rather use SASS. Unfortunately, unless we have a good way of including the project as a library within SquishIt, this just isn't going to happen.

I missed the second part of your comment, I'll take a look at Sass and CoffeeScript and see if there is anything I can glean from it. I'm not in favor of shipping IronRuby as a dependency or as part of SquishIt just to have Sass support though.

Before adding support for more preprocessing languages, (IMHO) some work should be put into allowing such languages to be "plugged" into SquishIt as extensions of sorts. SquishIt already has a lot of dependencies, and this might scare people away from using it. Let SquishIt.Framework deal only with concatenation and minification, and provide SquishIt.Less, SquishIt.Sass, SquishIt.CoffeeScript as separate assemblies and NuGet packages, dependent on SquishIt.Framework and whatever else they need.

This is an excellent point. And one that does need to be addressed.
On Wed, Nov 16, 2011 at 2:18 PM, Jrn Schou-Rode <
<EMAIL_ADDRESS>
wrote:

Before adding support for more preprocessing languages, (IMHO) some work
should be put into allowing such languages to be "plugged" into SquishIt as
extensions of sorts. SquishIt already has a lot of dependencies, and this
might scare people away from using it. Let SquishIt.Framework deal only
with concatenation and minification, and provide SquishIt.Less,
SquishIt.Sass, SquishIt.CoffeeScript as separate assemblies and NuGet
packages, dependent on SquishIt.Framework and whatever else they need.

Reply to this email directly or view it on GitHub:
https://github.com/jetheredge/SquishIt/issues/100#issuecomment-2766224

That is just what I was going to say. Maybe we should provide some way of
registering extensions so that they may execute any necessary
transformations before the minification and concatenation. That would be
perfect because then anyone could even write custom transformations if they
find it necessary for a specific project.
Perhaps it would be better if this issue was closed and another one opened
for the purpose of making SquishIt extensible, right?
On Wed, Nov 16, 2011 at 5:18 PM, Jørn Schou-Rode <
<EMAIL_ADDRESS>
wrote:

Before adding support for more preprocessing languages, (IMHO) some work
should be put into allowing such languages to be "plugged" into SquishIt as
extensions of sorts. SquishIt already has a lot of dependencies, and this
might scare people away from using it. Let SquishIt.Framework deal only
with concatenation and minification, and provide SquishIt.Less,
SquishIt.Sass, SquishIt.CoffeeScript as separate assemblies and NuGet
packages, dependent on SquishIt.Framework and whatever else they need.

Reply to this email directly or view it on GitHub:
https://github.com/jetheredge/SquishIt/issues/100#issuecomment-2766224

Late to the party, but the problems with coffeescript on mono got me thinking about this a lot, and I think it would be nice to add hooks into the file processing pipeline allowing registration of types implementing an interface (or even just lambda expressions) to add their own preprocessing logic based on file extensions, or any condition that works against the file name really.
I hate having the code in there that just blows up when you try to run it on mono, and it's going to take me a while to evaluate how difficult (or even possible) it'd be to build Jurassic against Mono.Cecil instead of Reflection.  Without a direct need for coffeescript I'm not sure I'll ever find the time to be honest.
Allowing users to provide their own preprocessors would help to minimize dependency issues like the one with Jurassic, and hopefully keep everyone happy.  We could maintain some examples on the wiki or in a contrib type library to make it easier to get up and running fast.

Yeah I've decided the interface is a should also (mostly because it would allow us to scan at startup for implementations if we wanted to bypass the register step).  I was thinking an interface like:
interface IPreProcessor {
    bool MatchRule(string fileName);
    string PreProcess(string content);
}

would be pretty easy, that way you could use normal string comparison if you want.  The names don't seem ideal but I think they get the idea across.
A static list of these to check against before normal processing should be pretty lightweight and unobtrusive, and free us from needing to maintain nearly as much conditional logic based on file extensions.  It would be a big change, so communication would be key, but I think it would be a significant improvement.

As you were sending your latest message, I commited to my fork. Would you mind checking it out and telling me what you thik?
I just removed the dotless dependency from SquishIt.Framework to a separate project, called SquishIt.Less, which implements the preprocessor hook itself. Then I registered the LessPreprocessor from the new Global.asax file in the AspNet test project.
The next steps would be doing the same for JS preprocessors, removing the Jurassic dependency, and then publishing separate NuGet packages for each.
Don't mind the 3 broken tests, I just realized that I had broken them. I'll fix them ASAP.

That's more or less what I had in mind, though I do think the preprocessor should be responsible for checking file path for a match (so people can use compiled regexes, avoid them altogether, etc...)
Justin's working on getting a 0.8.2 release out right now so that some bugfixes are available in the near term - this seems like more of a 0.9 or 1.0 change to me.  I set up a branch to track your changes in my fork though, perhaps we can work on it this way in the meantime.

Alex, I don't know how to request a pull to your fork. Is there any way to do it, or do you have to pull it yourself?

That's weird, I would expect it to work through the "pull requests" tab like it does everywhere else.

Great! I still have A LOT to learn about Git, as I'm just getting started with it.

Only one way to learn it :)  Thanks for helping out, this is something I've been mulling over for a while.  Sometimes it takes knowing that someone else is feeling the pain to get me sufficiently motivated.

Pull requests are a Github thing, not a Git thing. You have to login to Github and click on the "Pull Request" button. Hope that helps!

Closing this for now, we can revisit once the preprocessor stuff gets farther along.


Alphabetically sort commands in help menu

Alphabetically sort the help commands

Thanks for the PR! Hmm I think it would be better to separate commands into sections, like lnd's lncli:

There could be a Channels, Payments, Peers, and top-level section containing nodeinfo and signmessage.
Let me know if you'd like to tackle this @ch1ru but I kinda think this would be a preferable improvement

Yeah I think separating commands might be a better approach. I'll write up a pr for this later


Feature 90515: Bot - Notification - Zap received

This DRAFT PR should send notifications to the person you send a Zap to.
It's awkward to test without (a) users list in send zap being populated from AD (rather than a list of users from LNbits), (b) user accounts and wallets being automatically created in AD. Are you working on both of those @desousamario85?
To testing in your sandbox:

Create a new user to zap on your sandbox
Set that user up as a user in DEV LNbits (with two wallets)
Amend their profile using Postman
Send the zap to a receiver who is in the same AD domain (account on your sandbox)

Could you please test this @EdiWeeks @akash2017sky @desousamario85

Let's test this one first @EdiWeeks:
https://github.com/BenGWeeks/Zapp.ie/pull/31
If it works, we'll merge to master and then get the latest main merged into this PR.
Then look at this one:

Deploying to your sandboxed environment
Create a new user to zap on your sandbox
Initiate a conversation with that bot with the other user (it should create an LNbits account and wallets)
Send a zap to the original user
Log back in as the original user, and see if you get a notification

@BenGWeeks please can you remove from the sentence
Enhancement 91939: Remove "the great news" from notification


request for calc_optical_flow.py

Thanks for your excellent work. There are some problem when I run the calc_optical_flow.py because of the torch version missed. Could you send me or upload the UCSDpred2 optical_flow? Thank you.

Thanks for your excellent work. There are some problem when I run the calc_optical_flow.py because of the torch version missed. Could you send me or upload the UCSDpred2 optical_flow? Thank you.

How did you solve this issue? I am facing the same problem

You have to get the docker container with the required torch version


Creating github pages

[x] create a github page using sphinx
[x] use github action to create the page

Codecov Report

Merging #42 (9cb39a3) into main (adaacea) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head 9cb39a3 differs from pull request most recent head 7c0c725. Consider uploading reports for the commit 7c0c725 to get more accurate results

There should be now a github page of this project on https://wiederm.github.io/endstate_correction/. If one wants to adapt the documentation one needs to modify the according rst file in the docs folder, if you want to create a new section add the name of the rst file into the toctree which can be seen in docs/index.rst :
.. toctree::
   :maxdepth: 2
   :caption: Contents:

   getting_started
   theory
   api

As soon as you change something in the docs folder, no matter on which branch, and commit this change, a github action will start and push stuff to the gh-pages branch, afterwards the page will build from this gh-pages branch (you don't need to do anything about it, just modifying the rst file everything else will be handled by the github actions).
Currently, the api documentation is not set up properly, I will look at this during the next day, but we can still start using the page...

API documentation is working now as well!

Awesome! API documentation is super great! I see that I have some documenting to do :-)


How to pass request.currentUser to context.req in Nuxt framework

Hello. could you help me?
 On the server, when I call request
request.currentUser // {id: '10215478' name: 'Alex' ...}
request.auth.check() // true

How can I pass these parameters to Nuxt framework?
I tried to use nuxtServerInit:
// resources/store/index.js
export const state = {
  currentUser: null,
}

export const mutations = {
  SET_USER: function (state, user) {
    state.currentUser = user
  },
}

export const actions = {
  nuxtServerInit ({ commit }, { req }) {
    commit('SET_USER', req.currentUser) // req.currentUser = undefined
  },
}

https://github.com/nuxt/adonuxt/issues/6


Durable functions won't run

Great article and repo! Very useful for me and thanks for sharing it. I followed the pattern in your code but failed to make durable functions work. Just wondering, have you had a successful conclusion in this context?
Please feel free to have a look at this issue that I opened.

Hi Arash, Sorry to hear but I've not tested this with Durable Functions, I'll be watching your issue closely...

@merken I got the durable functions working. The issue was related to the environment variables misconfiguration that I fixed.


Provide alternative precedences for select!

The select! macro currently selects a random future in case multiple futures are ready.
It would be useful to be able to specify the precedence, for example choosing the first future like the existing behavior of Select.
This could be implemented by providing a parameter or with a separate wrapper macro such as select_first!.
Of course it's possible to work around this by not using the select! macro or by calling it multiple times, but it seems useful to have.

There is select and selectUnbiased in Kotlin, where the default doesn't use random, and a user opts in explicitly for randomness.
This differs from the current implementation, which I believe chooses to use randomness implicitly following Golang's lead.
(I think I'm in favor of random being opt-in, personally.)

I would like to like to see it too! One benefit of that would be also that the unbiased version would work in nostd, due to not having a dependency on a random generator.
Regarding what the default should be, I am undecided:

I understand Go opting for randomizing as a default since it avoids starvation/deadlocks if the same path is always ready. The unbiased method requires users to understand that.
However it's often helpful being able to be able to specify priorities. E.g. a result always having a higher priority then a timeout. Or a value from one channnel (e.g. the control channel) being more important than from another one (the data channel).  I think some people even expect the order to reflect priorities when they write their code. The non randomized version will also perform slightly better.

In the current state maybe adding a select_biased/select_with_priority macro might be the favorable option for purely the reason that it won't break existing code.

Would it make sense to have a macro for equal priority round robin polling? Like stream::Select, but for a small static set of streams which may be optimized better than SelectAll: a u32 value is enough to hold the round robin index and closed state flags for up to 27 streams.

better than SelectAll

It would also allow constituents of different types and do not require Unpin.


is this project being maintained?

Hi, is this project being maintained? the last release was almost a year ago.
AOT fails when used with angular-cli. any plans on releasing a new version with the AOT fixes?
if not is there any other library that you guys can suggest?
--thank you.

@rajesh-kanakabandi - Probably not: https://github.com/krispo/ng2-nvd3/issues/55

@rajesh-kanakabandi Looks abandoned; even the basic bar chart example is wrong -- utterly frustrated wasted over an hour only to realize it's plainly wrong. Just write the wrapper yourself.


JVM crash on std::runtime_error exceptions

Greetings,
we're currently facing a number of JVM crashes while using tinyb in our OSGI development environment. The crashes seem to be all caused by exceptions thrown inside the native C++ portion of tinyb.
Upon further investigation (see the StackOverflow links a the end of the post), the root cause for these crashes seems to be that the JNI specification is a C-only specification which is totally agnostic to C++ constructs (like exceptions): the behavior in these cases is undefined in the spec and could also bring down the JVM (like what's happening to us).
The ideal way to deal with native exception inside a JNI application would be to catch all the incoming C++ exceptions inside the native code and then translate those native exception/errors in proper return codes or Java exceptions/errors when needed.
From what I've seen in tinyb source files, there are a number of exceptions like this:
if (!result)
{
    throw std::runtime_error("cannot create instance of class\n");
}

that get directly thrown to the JNI runtime. These would all need to be caught (or, in this case, directly translated to Java exceptions) for the crashes to disappear.
References

SO 1
SO 2

I'm currently working on getting C++ exceptions converted to Java, but it requires adding exception handling code to each JNI interface function, so it might take a few days to complete.

Should be fixed in 44ea9ff1da0e10a7e0e8c14167f0fc7e8937bd3a. It's a huge patch, if you have any issues please tell me. I will also try to throw errors from BlueZ/DBus as IOExceptions and mark Java functions with the likely and useful exceptions.

That's great!
We're going to test it right now

We're currently facing an issue on some of our environments where the same runtime exception is always thrown.
I'm going to open a new issue about it, because I'm not entirely sure it's related to the changes introduced in 44ea9ff.

I guess we can close this issue along #30 too.


Horizontal/Vertical scrollbars appear in dev environment

I get these scroll bars if I go to http://localhost:4000/battle around the heading
But it doesn't appear in production. Can someone confirm if they get the same issue?
EDIT: Seems working fine on Firefox, but issue is in Chrome and Microsoft Edge

Can't reproduce

Testing on master branch with Windows. Tested with Edge and Chrome and icognito mode and still get it. Even on login page.

Tested with master branch (have fetched latest). Still get it. Tested with chrome and Microsoft edge in incognito.

Started happening to me too now


Update my links

I've deleted the zenn page because I want llm-jp/awesome-japanese-llm to be referred first.
Also, I've changed the domain for my personal website
Sorry for bothering you 🙏

Hi @kaisugi! I have made corrections to the multilingual pages in this commit https://github.com/taishi-i/awesome-japanese-nlp-resources/commit/1791c4fbd5b54ae36a2251fbe1187abfd7b7f9f4. I look forward to your pull requests. Thank you always.


DUOS-1821[risk=med] Updated env conditionals for MDV

Addresses DUOS-1821

PR updates env conditionals and updates routes for MDV release on dev and staging
PR also provides some minor styling tweaks to the Update Vote button on DarCollectionTable (change the label to 'Update' instead of 'Update Vote', change coloring for button on NewChairConsole). .
PR performs some minor code cleanup (removed duplicate code) on AdminConsole and SigningOfficialConsole (still used in prod)
PR does not provide Nav updates, that is covered in DUOS-1886. As such both PRs need to go in together for MDV to be deployed on staging.

Have you read Terra's Contributing Guide lately? If not, do that first.

Label PR with a Jira ticket number and include a link to the ticket
Label PR with a security risk modifier [no, low, medium, high]
PR describes scope of changes
Get a minimum of one thumbs worth of review, preferably two if enough team members are available
Get PO sign-off for all non-trivial UI or workflow changes
Verify all tests go green
Test this change deployed correctly and works on dev environment after deployment

I'm correctly seeing DAR Collections in dev and staging environments and the older pages in prod.
I'm not sure if these are changes that need to be made, but here are the things I noticed while testing the different environments:
DEV: worked as expected
STAGING:

works if the only config I change in the json file is setting env to staging. When I get all of the configs from https://duos-k8s.dsde-/staging.broadinstitute.org/config.json, I saw this when I used npm start

With the old navbar, upon signing in as a chair, it defaults to the /chair_console path and says "Page Not Found." Then if I click the link in the navbar to the chair console, it directs me to /new_chair_console, which works

I don't think this is a real use case, but if I am in staging and force the new navbar by setting the local storage variable, chair and member consoles don't work. Presumed to be fixed by DUOS-1886

PROD:

same issue with getting all configs from https://duos-k8s.dsde-/prod.broadinstitute.org/config.json, but works properly if starting with dev configs and just changing env to prod


Splitting XML into single-column rows

I'm wondering if the equivalent of the wholetext feature in Spark's text support could be made available when reading XML files. The use case would be:

I have a large XML file with N child elements, where each child element should become a row.
I want a single-column row with a "value" column that contains the unmodified XML for each child element.
My writer can then do XML-ish things on the XML element in each row.

Basically, I'm looking to take advantages of spark-xml's splitting capabilities but without converting each split element into a structured row.

You can always read the XML files as text, already, and then parse them as you like by hand.
But you can also declare any parent element's schema to be type 'string' and then you'll get the XML body as a string as its value rather than parse it.

If you want "child", then rowTag has to be "parent" I believe. Here, the type would be array of string, as there are multiple child elements

Unfortunately no luck so far - I tried:
Dataset<Row> dataset = newSparkSession().read()
            .format("xml")
            .schema(new StructType().add("child", new ArrayType(DataTypes.StringType, false)))
            .option("path", "src/test/resources/aggxml/*.xml")
            .option("rowTag", "parent")
            .load();

But that results in the following:
{
  "child" : [ "\n    <text>first</text>\n    <age>10</age>\n  ", "\n    <text>second</text>\n    <age>20</age>\n  " ]
}
{
  "child" : null
}

I tried replacing "child" with "parent" in the schema definition, but that results in:
{
  "parent" : null
}
{
  "parent" : null
}

Any other ideas? While I'm basically looking for an optimization over using the existing "text" data source and then applying StaX against the in-memory string contents of an XML file, it seems a lot cleaner to me - and presumably at least slightly more efficient - to read an XML file with N elements in it and produce a dataset containing N rows, with each row having a single column of type string.

Closing, as what I really want to do is have each child element become its own row.
My team is looking at how spark-xml is implemented, as we are trying to do something similar with using Stax to process an XML file and emit a Spark row for each user-defined child element. If you happen to know, is this the code from XmlRelation that does all the magic that allows for local/s3/etc paths to be accessed easily?
    val filesystemPath = location match {
      case Some(p) => new Path(p)
      case None =>
        throw new IOException(s"Cannot INSERT into table with no path defined")
    }

    val fs = filesystemPath.getFileSystem(sqlContext.sparkContext.hadoopConfiguration)

We basically want to reuse Spark's support for reading files from various filesystems, and then each for each file, we'll run it through our own XML splitting code to generate a row per child element.

If you just want to turn child, which is an array of N strings of XML, into N rows, the just use the explode function on child.

Thanks @srowen  - sorry to bother on this ticket, but hoping one last question - do you know of a way to extract the child elements such that the array of N strings includes the <child> and </child> elements? I believe there's a way I can prepend/append those strings - possibly as part of the explode - but just curious if it's possible to do via the rowTag and schema configuration.
Also, anything to be concerned about in terms of performance here for something like a 1gb file with 100k matching elements in it? I'm not experienced enough with Spark yet to know what the costs associated with explode are - i.e. if Spark is having to first construct an array with 100k strings in it, and then do work to create 100k rows from that array. Just not sure if that's considered a scalable / efficient approach.

No, that is not part of the 'value' of the element, but yes you can just put them back on for your purposes. explode and then concat values onto the resulting column, sure.
I don't think it's a particularly expensive operation here, no


Support JumpServer (Python + Vue) SSO authentication with Casdoor

Backend: Python, https://github.com/jumpserver/jumpserver
Frontend: Vue + Element UI, https://github.com/jumpserver/lina

We need to try to connect via all protocols:

CAS: https://docs.jumpserver.org/zh/master/admin-guide/authentication/cas/
SAML: https://docs.jumpserver.org/zh/master/admin-guide/authentication/saml2/
OIDC: https://docs.jumpserver.org/zh/master/admin-guide/authentication/openid/

@joy0010

@TJxiaobao


Working on Nextcloud 26.0.x ?

I just want to know…
Thanks for the advancement to Nextcloud 25, does it work on the current Nextcloud 26 or will there be a new version for it soon?
Will this also be integrated in the AppStore?
Thanks

@csoc-technik any news on Nextcloud 25/26 support and pushing the current version on the appstore? thanks.

@SilverNavigator https://github.com/csoc-de/Shifts/issues/37#issuecomment-1645533015 yes, you can 1.8.6 to install.

We've released a new version 1.9.0 for Nextcloud 25 and 26. However, this version is not yet fully compatible with Nextcloud version 27.
We currently are unable to upload the release to the appstore since we are getting a signature error. We will try to get the new version into the appstore as soon as we can.


Amendment to address where to close issues

Amendment to include a line that we should close issues in Github not Jira

Checks are stalled with "Waiting for status to be reported", which I am sure is related to issues GitHub were having last week, and not the contents of this pull request. The GitHub UI doesn't give me any opportunity to re-run the checks for this pull request and I don't want to add the noise of triggering them in some other way such as adding another commit.
Therefore, I'm going to merge this pull request now.


upgrading from v3 to v4 azure function results in "custom~4" setting

az feedback auto-generates most of the information requested below, as of CLI version 2.0.62

Related command
az functionapp config appsettings set --settings FUNCTIONS_EXTENSION_VERSION=~4 -g <RESOURCE_GROUP_NAME> -n <APP_NAME>
az functionapp config set --net-framework-version v6.0 -g <RESOURCE_GROUP_NAME> -n <APP_NAME>
Describe the bug
After running cli command to upgrade azure function, I get custom ~4 vs ~4

To Reproduce
migrate code and settings to azure function.
run azure cli command as per documentation on upgrading - https://learn.microsoft.com/en-us/azure/azure-functions/functions-versions?tabs=azure-cli%2Cwindows%2Cin-process%2Cv4&pivots=programming-language-csharp#migrating-from-3x-to-4x
Expected behavior
I expect to see ~4 as my runtime version.

Environment summary
Azure Pipeline / Devops
Additional context
All my apps I am upgrading are resulting in this 'custom~4' setting.  They are all getting a runtime version
Runtime version : <IP_ADDRESS>54
The following is the output from
az functionApp show --ID ""
{
	"appServicePlanId": "/subscriptions/guid/resourceGroups/dev-companyName-ingress/providers/Microsoft.Web/serverfarms/hostingplan-functionName-dv",
	"availabilityState": "Normal",
	"clientAffinityEnabled": false,
	"clientCertEnabled": false,
	"clientCertExclusionPaths": null,
	"clientCertMode": "Required",
	"cloningInfo": null,
	"containerSize": 1536,
	"customDomainVerificationId": "RANDOMSTRING",
	"dailyMemoryTimeQuota": 0,
	"defaultHostName": "fnc-functionName-dv.azurewebsites.net",
	"enabled": true,
	"enabledHostNames": [
		"fnc-functionName-dv.azurewebsites.net",
		"fnc-functionName-dv.scm.azurewebsites.net"
	],
	"extendedLocation": null,
	"ftpPublishingUrl": "ftps://waws-prod-blu-093.ftp.azurewebsites.windows.net/site/wwwroot",
	"hostNameSslStates": [
		{
			"hostType": "Standard",
			"ipBasedSslResult": null,
			"ipBasedSslState": "NotConfigured",
			"name": "fnc-functionName-dv.azurewebsites.net",
			"sslState": "Disabled",
			"thumbprint": null,
			"toUpdate": null,
			"toUpdateIpBasedSsl": null,
			"virtualIp": null
		},
		{
			"hostType": "Repository",
			"ipBasedSslResult": null,
			"ipBasedSslState": "NotConfigured",
			"name": "fnc-functionName-dv.scm.azurewebsites.net",
			"sslState": "Disabled",
			"thumbprint": null,
			"toUpdate": null,
			"toUpdateIpBasedSsl": null,
			"virtualIp": null
		}
	],
	"hostNames": [
		"fnc-functionName-dv.azurewebsites.net"
	],
	"hostNamesDisabled": false,
	"hostingEnvironmentProfile": null,
	"httpsOnly": true,
	"hyperV": false,
	"id": "/subscriptions/guid/resourceGroups/dev-companyName-ingress/providers/Microsoft.Web/sites/fnc-functionName-dv",
	"identity": null,
	"inProgressOperationId": null,
	"isDefaultContainer": null,
	"isXenon": false,
	"keyVaultReferenceIdentity": "SystemAssigned",
	"kind": "functionapp",
	"lastModifiedTimeUtc": "2022-10-06T20:15:58.500000",
	"location": "East US",
	"maxNumberOfWorkers": null,
	"name": "fnc-functionName-dv",
	"outboundIpAddresses": "",
	"possibleOutboundIpAddresses": "",
	"publicNetworkAccess": null,
	"redundancyMode": "None",
	"repositorySiteName": "fnc-functionName-dv",
	"reserved": false,
	"resourceGroup": "dev-companyName-ingress",
	"scmSiteAlsoStopped": false,
	"siteConfig": {
		"acrUseManagedIdentityCreds": false,
		"acrUserManagedIdentityId": null,
		"alwaysOn": false,
		"apiDefinition": null,
		"apiManagementConfig": null,
		"appCommandLine": "",
		"appSettings": null,
		"autoHealEnabled": false,
		"autoHealRules": null,
		"autoSwapSlotName": null,
		"azureStorageAccounts": {},
		"connectionStrings": null,
		"cors": null,
		"defaultDocuments": [
			"Default.htm",
			"Default.html",
			"Default.asp",
			"index.htm",
			"index.html",
			"iisstart.htm",
			"default.aspx",
			"index.php"
		],
		"detailedErrorLoggingEnabled": false,
		"documentRoot": null,
		"experiments": {
			"rampUpRules": []
		},
		"ftpsState": "FtpsOnly",
		"functionAppScaleLimit": 200,
		"functionsRuntimeScaleMonitoringEnabled": false,
		"handlerMappings": null,
		"healthCheckPath": null,
		"http20Enabled": false,
		"httpLoggingEnabled": false,
		"id": "/subscriptions/guid/resourceGroups/dev-companyName-ingress/providers/Microsoft.Web/sites/fnc-functionName-dv/config/web",
		"ipSecurityRestrictions": [
			{
				"action": "Allow",
				"description": "Allow all access",
				"headers": null,
				"ipAddress": "Any",
				"name": "Allow all",
				"priority":<PHONE_NUMBER>,
				"subnetMask": null,
				"subnetTrafficTag": null,
				"tag": null,
				"vnetSubnetResourceId": null,
				"vnetTrafficTag": null
			}
		],
		"javaContainer": null,
		"javaContainerVersion": null,
		"javaVersion": null,
		"keyVaultReferenceIdentity": null
		"kind": null,
		"limits": null,
		"linuxFxVersion": "",
		"loadBalancing": "LeastRequests",
		"localMySqlEnabled": false,
		"location": "East US",
		"logsDirectorySizeLimit": 35,
		"machineKey": null,
		"managedPipelineMode": "Integrated",
		"managedServiceIdentityId": null,
		"minTlsVersion": "1.2",
		"minimumElasticInstanceCount": 0,
		"name": "fnc-functionName-dv",
		"netFrameworkVersion": "v6.0",
		"nodeVersion": "",
		"numberOfWorkers": 1,
		"phpVersion": "",
		"powerShellVersion": "",
		"preWarmedInstanceCount": 0,
		"publicNetworkAccess": null,
		"publishingUsername": "$fnc-functionName-dv",
		"push": null,
		"pythonVersion": "",
		"remoteDebuggingEnabled": false,
		"remoteDebuggingVersion": null,
		"requestTracingEnabled": false,
		"requestTracingExpirationTime": null,
		"resourceGroup": "dev-companyName-ingress",
		"scmIpSecurityRestrictions": [
			{
				"action": "Allow",
				"description": "Allow all access",
				"headers": null,
				"ipAddress": "Any",
				"name": "Allow all",
				"priority":<PHONE_NUMBER>,
				"subnetMask": null,
				"subnetTrafficTag": null,
				"tag": null,
				"vnetSubnetResourceId": null,
				"vnetTrafficTag": null
			}
		],
		"scmIpSecurityRestrictionsUseMain": false,
		"scmMinTlsVersion": "1.0",
		"scmType": "VSTSRM",
		"tags": {
			"displayName": "The Azure Functions App that hosts Application Service Message Handler."
		},
		"tracingOptions": null,
		"type": "Microsoft.Web/sites/config",
		"use32BitWorkerProcess": true,
		"virtualApplications": [
			{
				"physicalPath": "site\\wwwroot",
				"preloadEnabled": false,
				"virtualDirectories": null,
				"virtualPath": "/"
			}
		],
		"vnetName": "",
		"vnetPrivatePortsCount": 0,
		"vnetRouteAllEnabled": false,
		"webSocketsEnabled": false,
		"websiteTimeZone": "Eastern Standard Time",
		"windowsFxVersion": null,
		"xManagedServiceIdentityId": null
	},
	"slotSwapStatus": null,
	"state": "Running",
	"storageAccountRequired": false,
	"suspendedTill": null,
	"tags": {
		"displayName": "The Azure Functions App that hosts Application Service Message Handler."
	},
	"targetSwapSlot": null,
	"trafficManagerHostNames": null,
	"type": "Microsoft.Web/sites",
	"usageState": "Normal",
	"virtualNetworkSubnetId": null,
	"vnetContentShareEnabled": false,
	"vnetImagePullEnabled": false,
	"vnetRouteAllEnabled": false
}

route to CXP team

@MacMcDell Apologies for the delay! are you still facing this issue? did you try upgrading to latest version of azure cli 2.43.0

Not sure why you would mark an issue as addressed immediately after asking
if it was resolved. It is not resolved. I have apps still being categorized
as Custom ~4. They are using Runtime Version <IP_ADDRESS>31. What does 'Your
app is pinned to... ' mean?
[image: image.png]
Mac
On Thu, Dec 8, 2022 at 7:02 AM msftbot[bot] @.***>
wrote:

Hi @MacMcDell https://github.com/MacMcDell. Thank you for opening this
issue and giving us the opportunity to assist. We believe that this has
been addressed. If you feel that further discussion is needed, please add a
comment with the text “/unresolve” to remove the “issue-addressed” label
and continue the conversation.
—
Reply to this email directly, view it on GitHub
https://github.com/Azure/azure-cli/issues/24130#issuecomment-1342623090,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AALRK5OBUANNDDZCGXOQJW3WMHE4RANCNFSM6AAAAAAQ7WFHBI
.
You are receiving this because you were mentioned.Message ID:
@.***>

Using azure CLI 2.4.0.
Tried running the .net framework command again using the following:
az functionapp config set --net-framework-version v6.0 -n "fnc-myfunction-dv" -g "mygroup"
same result.

@MacMcDell are you sure you are using 2.4.0? please share results of az version
please refer this document to know understand the cause and resolution of portal warning "Your portal is pinned to..."
https://techcommunity.microsoft.com/t5/apps-on-azure-blog/issues-you-may-meet-when-upgrading-azure-function-app-to-v4/ba-p/3288983

Command + version screen shot.

@MacMcDell Please use az upgrade to the latest version of azure cli 2.43.0 and retry. Also hope you got a chance to see the document i shared to fix the warning in the portal.

I reviewed the document. On the ResourceExplorer I have the same .net 6 version showing. There is nothing to change.

@MacMcDell Thank you for confirming this, Can you open a support ticket to understand the issue further please? this does not seem like  a client issue (CLI).


Give more permission to the diagnose pods

Some containers which run os like rhel/fedora run tcpdump
as specific user id "72". So it needs pods to be privileged.
Also setting the runAsUser prevents the pods from starting with
random user id

Make the diagnose pod a privileged
Run the diagnose pod with userId 0

Signed-off-by: Aswin Suryanarayanan<EMAIL_ADDRESS>

Can you explain in the summary why this isn needed?

Can you explain in the summary why this is needed? Also perhaps a comment in the code.

OK so this is to fix the tcpdump permission issue.

Can you explain in the summary why this is needed? Also perhaps a comment in the code.

+1, let's try to be clear in the commit message and code about what fails exactly without this

Can you explain in the summary why this is needed? Also perhaps a comment in the code.

+1, let's try to be clear in the commit message and code about what fails exactly without this

Done.

@aswinsuryan I can handle the backport.

Backport PR: https://github.com/submariner-io/subctl/pull/435


fixing pedantic warnings

How does this include actually work? including either one includes the other?

Since one of these is conceptually at the end of the other (i.e., ConsumerMixin-inl.h and ConsumerMixin.h) and the #pragma onces ensure that neither gets included twice, this should stitch them together properly regardless of which one is included.
But it's a bit unintuitive, so maybe it should be changed. ☺

OK, so the point is that one includes at the end and so the order is always enforced.
Is this common? I found this ref in Google style guide.

Prefer placing the definitions for template and inline functions in the same file as their declarations. The definitions of these constructs must be included into every .cc file that uses them, or the program may fail to link in some build configurations. If declarations and definitions are in different files, including the former should transitively include the latter. Do not move these definitions to separately included header files (-inl.h); this practice was common in the past, but is no longer allowed.

I don't know whether it's common or not, and I don't think Google's style guide is a reference we follow closely.
The advantage is that it makes reading the header easier, as the implementation details are somewhere else. But personally, I'm partial to doing this with an IDE or documentation generator, and keeping everything inline where it belongs.


Adding a new rebus

Adding a new rebus
firebug        Old tool of firefox to debBUG, also a kind of bug.

I'd a couple of problems since I was editing the files in Windows, it was reported with lint that an LF was expected instead of CRLF, I found in a forum how to change the setting to expect CRLF instead of LF, also how to ignore and not verify the line-breaks, this second option since I still got 1 error (the first time I got more than 2000 errors).
I decided to go forward since I tested, I played and everything seems to be ok (the test result said all test passed),  despite I still got an error when running prettier as follows

npm run test:all

npm run test && npm run lint

<EMAIL_ADDRESS>test C:\Users\mick_\Documents\manolasco\git\rebus
jest

PASS  tests/mini.spec.js
PASS  tests/store.spec.js
PASS  tests/components.spec.js
PASS  tests/app.spec.js
PASS  tests/rebus.spec.js
Test Suites: 5 passed, 5 total
Tests:       47 passed, 47 total
Snapshots:   37 passed, 37 total
Time:        4.332s
Ran all test suites.

<EMAIL_ADDRESS>lint C:\Users\mick_\Documents\manolasco\git\rebus
eslint src tests

<EMAIL_ADDRESS>lint C:\Users\mick_\Documents\manolasco\git\rebus
eslint src tests

C:\Users\mick_\Documents\manolasco\git\rebus\src\js\rebuses.js
890:3  error  Delete ·  prettier/prettier
✖ 1 problem (1 error, 0 warnings)
1 error and 0 warnings potentially fixable with the --fix option.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>lint: eslint src tests
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>lint script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR!      C:\Users\mick_\AppData\Roaming\npm-cache_logs\2020-09-09T18_00_30_337Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>test:all: npm run test && npm run lint
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>test:all script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR!      C:\Users\mick_\AppData\Roaming\npm-cache_logs\2020-09-09T18_00_30_361Z-debug.log
The contents of 2020-09-09T18_00_30_361Z-debug.log
0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli   'C:\Program Files\nodejs\node.exe',
1 verbose cli   'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js',
1 verbose cli   'run',
1 verbose cli   'test:all'
1 verbose cli ]
2 info using<EMAIL_ADDRESS>3 info using<EMAIL_ADDRESS>4 verbose run-script [ 'pretest:all', 'test:all', 'posttest:all' ]
5 info lifecycle rebus@1.0.0~pretest:all<EMAIL_ADDRESS>6 info lifecycle rebus@1.0.0~test:all<EMAIL_ADDRESS>7 verbose lifecycle rebus@1.0.0~test:all: unsafe-perm in lifecycle true
8 verbose lifecycle rebus@1.0.0~test:all: PATH: C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;C:\Users\mick_\Documents\manolasco\git\rebus\node_modules.bin;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0;C:\windows\System32\OpenSSH;C:\Program Files\nodejs;C:\Program Files (x86)\QuickTime\QTSystem;C:\Program Files\PuTTY;C:\Program Files\Git\cmd;C:\Users\mick_\AppData\Local\Microsoft\WindowsApps;C:\Users\mick_\AppData\Roaming\npm;C:\Users\mick_\AppData\Local\atom\bin;C:\Program Files (x86)\Nmap
9 verbose lifecycle rebus@1.0.0~test:all: CWD: C:\Users\mick_\Documents\manolasco\git\rebus
10 silly lifecycle rebus@1.0.0~test:all: Args: [ '/d /s /c', 'npm run test && npm run lint' ]
11 silly lifecycle rebus@1.0.0~test:all: Returned: code: 1  signal: null
12 info lifecycle rebus@1.0.0~test:all: Failed to exec test:all script
13 verbose stack Error<EMAIL_ADDRESS>test:all: npm run test && npm run lint
13 verbose stack Exit status 1
13 verbose stack     at EventEmitter. (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\index.js:332:16)
13 verbose stack     at EventEmitter.emit (events.js:315:20)
13 verbose stack     at ChildProcess. (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14)
13 verbose stack     at ChildProcess.emit (events.js:315:20)
13 verbose stack     at maybeClose (internal/child_process.js:1021:16)
13 verbose stack     at Process.ChildProcess.handle.onexit (internal/child_process.js:286:5)
14 verbose pkgid<EMAIL_ADDRESS>15 verbose cwd C:\Users\mick\Documents\manolasco\git\rebus
16 verbose Windows_NT 10.0.18362
17 verbose argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "run" "test:all"
18 verbose node v12.18.1
19 verbose npm  v6.14.5
20 error code ELIFECYCLE
21 error errno 1
22 error<EMAIL_ADDRESS>test:all: npm run test && npm run lint
22 error Exit status 1
23 error Failed at the<EMAIL_ADDRESS>test:all script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]
Associated Issue: #
Summary of Changes

change 1
change 2

Pull Request Test Coverage Report for Build 853

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 87.143%

Totals

Change from base Build 514:
0.0%

Covered Lines:
158

Relevant Lines:
180

💛  - Coveralls


Convert tests to use the subtest pattern

Currently, the tests are structured in an old fashioned way that tests individual expected behavior for certain conditions for each route. So if there's a route that can return a 200 and a 404, there are two tests that set up the circumstances for each response and call that function and do the normal things tests do.
Go supports subtests that would make it so we could have one test for that route that calls two subtests, which would likely lead to a lot less repeated code and a much cleaner overall test structure. Dairyclient's tests follow this pattern someone, and I found it to be very useful and clean.

this was addressed in #49


[SPARK-46973][SQL] Add new SessionCatalog APIs to support V2 table cache

What changes were proposed in this pull request?

This PR updates the SessionCatalog to better support V2 table caching by introducing new APIs specifically for V2 tables, which use Table providers instead of LogicalPlans. Additionally, it adds table caching during the loadTable operation for V2 data sources to improve the performance of V2 table resolution.
Why are the changes needed?

To allow more efficient V2 table resolution.
Does this PR introduce any user-facing change?

No
How was this patch tested?

New unit tests
Was this patch authored or co-authored using generative AI tooling?

No

cc @cloud-fan

thanks, merging to master!


parameter typo? parameter effect?

visualFeatures

"categories" and "tags" in the example are "Categories" and "Tags"
"Categories" seems to have no effect: categories will always be returned in the skill output

details

"Celebrities " and "Landmarks " seems to have no effect: even when all parameters are not specified, "celebrities" and "landmarks" will still be returned in the "categories " of the skill output

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

ID: 041bd8fd-b0ef-be36-5022-78214d1d9ba4
Version Independent ID: f95cc248-f2cb-08ba-cca3-94c8e26362c2
Content: Image Analysis cognitive search skill - Azure Search
Content Source: articles/search/cognitive-search-skill-image-analysis.md
Service: search
GitHub Login: @LuisCabrer
Microsoft Alias: luisca

Thanks for the feedback! We are currently investigating and will update you shortly.

@xizhengszhang, Thanks again for your feedback! We went ahead and made an update to the doc. The update should be public soon, so we will close this out, but if you feel you need more information please just let us know.


[docs] Add HLJS

Not sure yet I understand how it works.

Not sure how progress is coming along on this @budparr but as an FYI, I extended the HLJS for some hugo-specific needs if you look at the code. LMK if you have any questions, brother. Thanks!

So, reviewing this file:
https://github.com/rdwatters/hugo-docs-concept/blob/master/themes/hugo-docs-concept/pipeline/js/scripts/highlight.pack.js
It looks like this is a hand copied file with no dependencies, correct? Can you point out exactly what you added so I can pull that out. I'm going to try to use NPM and just add the critical bits, which I think will make it more maintainable in the future.

This is where I'm at so far:
https://github.com/budparr/gohugo-theme/blob/master/src/js/hljs.js

[ ] pick a different style

[ ] check, it may have created a conflict with my copy button styling

I spoofed HLJS by registering the handlebars library for HTML, which allows us to highlight just the Hugo templating. I've styled it so just that shows up. May have to adjust, but I think this makes sense.

FWIW, @rdwatters, we have a lot of opinionated HTML in there that doesn't really belong. This one in the image is a case in point, where it has ID selectors, which don't need to be there, and are bad practice anyway. I can make an issue on the other repo later, just brought up it because I've been looking at these code blocks all night

I was going to write and mention that you can probably just download the HLJS with the languages I already include in the current version and just don't worry about the tweaks I made, some of which were just to make HLJS render the corresponding icon as part of the fontello icon font.
Agreed on some of the opinionated selectors, many of which are just carried over from the current site where we have some old (and many outdated examples pulled from spf13's site). As far as the ID being a bad practice, I agree for CSS, but it's still the fastest way to grab an element from the DOM using JS because of the way the browser indexes the elements (this might be outdated though). But that's neither here nor there - the main point is that we should use classes if the facilitate understanding of the concept...or do you think

I just think the bare minimum HTML to be illustrative (the rest is noise, IMHO), and I don't see any reason for class or IDs, unless they have something specific to do with what's being illustrated.
{{ partial "header.html" . }}
{{ partial "subheader.html" . }}

{{ .Title }}

    {{ range .Data.Pages }}
       {{ .Render "li"}}
    {{ end }}

{{ partial "footer.html" . }}

Good call. I'll update this weekend. There are only a couple examples where I think classes may help, but these might be better served with just a few HTML comments. Cheers!

Cool. I'm going to close this for now. We may want to revisit the styling, but that's easy enough, so if you see something that needs some color (as I said, I only styled the Hugo tags), just drop an issue.
Thanks!


Update fh-mbaas-api to version 5.11.0 and update travis to run node4 tests

Issues building this on node4 as the native dependencies don't compile


Add section on gNSI artifacts in bootz response

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 27.005%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
687

Relevant Lines:
2544

💛  - Coveralls


Increase selector specificities of plugin overrides in Twilight theme

Prompted by https://github.com/PrismJS/prism-themes/pull/141. Also removes redeclared properties, those that are the same as those in the plugins' default stylesheets.

Thank you for contributing @hoonweiting!


tiling issue compared to vanilla gdal2tiles

I'm attempting to move a panorama viewer from Openlayers 2 to Leaflet and tried out your modified version of gdal2tiles.
It works great on 95% of the images I give it but a handful return tiles like this link:
http://dev.gregwacker.com/#/photos/panorama/clat_adams_bicentennial_park_pano_2__6_photos_.jpg
The original image I tried to tile can be found here:
http://dev.gregwacker.com/photoalbums/ThePanoramas/fullsize/clat_adams_bicentennial_park_pano_2__6_photos_.jpg
The vanilla gdal2tiles output can be seen here:
http://www.gregwacker.com/photos/_panoramasViewer.cfm?panoID=232
Any ideas on why the leaflet version chokes on some images like the one above? The setting are identical with the exception of the Leaflet switch.
Another alternative since I'm not worried about x,y maker coordinates is to use the TMS tiles from vanilla gdal2iles with TMS set to true in leaflet, but I can't quite figure out the math for the bounds. Would you have any interest in providing an alternate rastercoords.js for TMS tiles?
Thanks for sharing the work you've done with gdal2tiles-leaflet to date.

I think I figured this out. I renamed and added your gdal2tiles.py to a 64-bit version of OSGeo4W (wanted to ensure other process would not be altered in any way) and called it using OSGeo4W.bat
When I added the same file to the 32-bit version of OSGeo4W  and called everything the exact same way it worked exactly as expected.


GZip vs. DEFLATE Handling in SocketRequestProcessor May Be Wrong

See the running line notes where @DaSourcerer reported that we may be using the wrong zlib functions for handling compressed content.

So is this fixed now that we require PHP 5.4?

I have absolutely nothing to contribute here other than that I saw the email pop up and I can't believe I ever knew that much about the innards of GZIP and DEFLATE...

@Konzertheld:

So is this fixed now that we require PHP 5.4?

I think it is safe to assume so.
@chrismeller: Well, a lot has changed since than. There is a content coding registry now that knows more than just gzip and deflate.

Alright. So, do we just close this issue or should we even change our code to something simpler now that zlib takes care itself?


Charts cause silent crash on Android Emulator as of 2022

Expected behavior
I'd expect to be able to see the charts render on the Android Emulator (current default as of 1/2022).
Current behavior
The website freezes, and you're unable to do anything until you leave the page and come back.  This happens just by going to the Chartjs.org website too.
Reproduce it (on a Mac)

Install latest Android Studio
Launch latest Android Emulator
visit chartjs.org on Chrome Browser within the emulator

Reproducible sample
None
Optional extra steps/info to reproduce
No response
Possible solution
No response
Context
No response
chart.js version
v3.6.2
Browser name and version
Android Emulator Chrome
Link to your project
No response

Since it is a emulator it should in theory work the same as on phone, no differences.
When I go to the site on my phone it works fine, and when I go to it in an emulator it works fine:

Closing since there isn't anything actionable here that we can do


WIP: Fixes status bar problem on Refine view controller

This problem was introduced here in #2368. I accidentally switched from status bar hidden to status bar style. But, since this VC isn't shown full screen on an iPad, we can simply always say it prefers the status bar hidden.
Investigating the iPad status bar issues led me further down a rabbit hole until I figured out what was causing our problems with status bars having to be manually changed back in viewDidAppear. The problem was our top menu VC was overriding childViewControllerForStatusBarHidden and childViewControllerForStatusBarStyle, returning the presented view controller in all cases. iOS is smart enough to decide (based on presentation contexts and trait collections) which VC to use. So I removed that code and deferred only to our root nav controllers, which use the default iOS behaviour. Everything seems to work, and there's less code :tada:
Fixes https://github.com/artsy/eigen/issues/2384
This is a WIP because I need to test the live VC's but our staging environment is currently under the weather. Will un-WIP once I've done that.

Cool - the concept sounds 👍 to me


Fix/remove cart customer check exception

If anonymous customer creates a cart and then tries to login it it throws an exception and page crashes. From database perspective customer can have multiple users so this check should not be performed at all.

If a user logs in, Lunar assumes they are associated to a customer and if not throws an exception because a user must belong to a customer.
We don't support users placing orders without being associated to a customer.
I'm going to close this issue, but if you think this is wrong or think it could be improved, please let me know.


Feature/jsonb filters

Filter api results via supported jsonb lookups:
e.g.
GET /api/record/?jcontains={"type": "object"}
GET /api/record/?jcontains={"required": ["id"]}

+1, interesting solution!


"Toggle panels layout" button doesn't work if Grouping panel with some grouped data is focused (the same issue - for References panel)

Description
https://github.com/user-attachments/assets/cbf0480f-7537-41e4-9cb8-4988149f16cd
DBeaver Version
Community Edition 24.1.5-202408122322
Operating System
Windows 10
Database and driver
PostgreSQL 16
PostgreSQL JDBC Driver 42.7.4
Steps to reproduce
No response
Additional context
No response

Thanks for your bug report.


Release cleanup

Flake8 and style fixes
Copyright update
Chuck __init__.py creation
Chuck SVN support
Doc and Python support updates

I wonder if this is enough for 1.0 😆  There is still some cruft in version.py (like the SCM references and alternative version routes like __version__ files - not sure how much used).


add implementation for BorshSerialize, BorshDeserialize, BorshSchema for char

I believe it was a deliberate choice to not implement it for char as it is not language-agnostic. What is your motivation to add it? Is there some use-case that drives this feature request?

Primarily the pr was driven by one last so far commented block in borsh_schema tests of cargo near abi compared to json_schema tests of cargo near abi

Closed as not needed atm


bugfix: toggle menu in mobile size

In LinuxFestival site there was one bug:

user could not read toggle menu after tap on button

Changes:

remove border color for beauty toggle button
resolve illegible menu toggle content in mobile size ( 767px < )
set right alignment navbar menu

Files changes:

public/css/style.css
resources/views/layout/header.blade.php

Commit applied. thanks for contributing.


Add support for k8s 1.20 in sync command

Also drops k8s 1.15 and 1.14, which is deprecated by EKS.

Thanks for review! I'll hold off on merge until the integration tests pass in terraform-aws-eks.

Ok the integration test had some errors, but it is unrelated to this change, so will merge and release!


docs: change master branch to main inside CONTRIBUTING.md

There should be not master branch since this repository has main as default branch.

Thanks! Good catch 👍🏻.


add support for multiple elements

I extracted https://github.com/kellyselden/ember-text-test-helper from an app without knowing hasText does whitespace collapsing. I would like to ditch my addon, but to reach feature parity, this project would need to support selectors that match multiple elements and "combine", as well as assert.dom(document.querySelectorAll('div')).
I think @Turbo87 is open to it, but every assertion will need to be updated. For instance hasAttribute will probably turn into a "all have attribute".

Just my 2 cents but this sounds like quite some magic that doesn't add a ton of value? I guess in the example you mention above you could select the parent element instead and assert on the text of that?
The case with hasAttribute seems to indicate some confusion already - how would you make that clear via the API that the meaning for a list of node is "all nodes have the attribute" - why not "one node has the attribute"?

Use cases:
let rows = findAll('[data-test-row]');

// do a bunch of stuff/assertions on these rows

assert.dom(rows).hasText('1 2 3');

and

  {{#each rows as |row|}}

      {{row.title}}
      {{row.body}} // assert.dom('[data-test-body]').hasText('1 2 3');

  {{/each}}

They aren't very common use cases, but that's what I was thinking when I did https://github.com/kellyselden/ember-text-test-helper/blob/master/addon-test-support/text.js#L6-L8.

I think that mixes access to the DOM and its properties with convenience methods for joining properties of a collection of things though. In the end the above is the same as
let rows = findAll('[data-test-row]');

// do a bunch of stuff/assertions on these rows

assert.equals(rows.map(r => r.text).join(' '), '1 2 3'));

It's a bit more code than that:
assert.equals(Array.from(rows, r => r.textContent).join(' ').trim().replace(/[\n ]+/g, ' '), '1 2 3'));

Yeah sure, my point was more that this might be unrelated convenience functionality for some very specific use cases and encapsulating all of the logic of
assert.equals(Array.from(rows, r => r.textContent).join(' ').trim().replace(/[\n ]+/g, ' '), '1 2 3'));

in
assert.dom(rows).hasText('1 2 3');

seems like a bit too much magic for my taste.

@kellyselden we could also just export our whitespace collapsing function as public API. Would that help?

this issue has gone somewhat stale and I haven't been able to come up with a convincing API yet so I'm closing the issue for now.

@Turbo87 how about either:
assert.dom("selector")
  .exists({ count: 2 })
  .at(0) // get the first index and continue chaining from there
  .hasAttr("thing");

assert.dom("selector")
  .exists({ count: 2 })
  .each((dom, index) => {
     dom.hasAttr("thing"); // continue asserting with each of the individual things
  })

@Turbo87 to be clear I'm not proposing accessors, though that would be a powerful eject button I wouldn't mind having, I'm proposing the ability for it to return new instances of assert.dom on an individual child of the original selector. This would massively cleanup a lot of dom assertions I've seen, and also naturally be bounded to a single level of decomposition since it's not possible to further select within a selected element <3


pull request for e2e test at 12/30/2016 13:45:13

:white_check_mark: Validation status: passed
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.


The "defaultDate" option appears to be ignored

Set the defaultDate option on the {{bs-datetimepicker}} component to a valid Date.
Observed: No visible difference from a datetime picker where now defaultDate option is defined.
Expected: It's not entirely clear from the docs, but I think I'd expect the default date to be pre-selected in the datetime picker.

I believe it has something to do with the line at https://github.com/plusacht/ember-bootstrap-datetimepicker/blob/master/addon/components/bs-datetimepicker.js#L82.


Adding cache_pop

Added cache_pop, allowing to delete a single element of the cache 🎉
Usage :
from async_lru import alru_cache

@alru_cache()
async def coro(val):
    return val

await coro(1)
await coro(2)
await coro(3)

print(coro.cache_info())
# CacheInfo(hits=0, misses=3, maxsize=128, currsize=3)

coro.cache_pop(2) # Remove 2 from cache
print(coro.cache_info())
# CacheInfo(hits=0, misses=3, maxsize=128, currsize=2)

Hey @baptiste0928, can You please add some tests?

And what about support *args, **kwargs for popping from cache?


Register VS Code as a folder opener at OS-Level

This would be helpful for not getting into the "broken" case of having only single files open as opposed to project folders.
Either here:

Or here:

MacOS (I already added a custom "Open in Insiders" action, ideally it'd be built in):

Let me know if you need any help.


Throttle policy export import support for APIM

Problem
When importing an API/Application from one environment to a new environment, if the throttling policies (custom made) related to the API/Application are not in the new environment, an error is thrown indicating the throttling policy is not supported and the importation fails.
Solution
Throttling policies should be imported separately prior to the API/Application importation to avoid the API/Application importation failure. For this purpose, user needs a list of throttling policies in the source environment to specify the throttling policy when exporting. Since the current REST APIs only allow getting details of a throttling policy using uuid, a new REST API should be introduced to export throttling policies by name. To directly import the throttling policy and update an existing a throttling policy, a new RESTAPI is introduced to import throttling policies.
Affected Component
APIM
Version
4.2.0
Implementation
Introduction of 3 RestAPIs for the following tasks

Exporting a Throttling Policy
Importing a Throttling Policy
Get Throttle Policies List

Sub Tasks

[x] #244
[x] #245
[x] #239
[x] #240
[x] #241
[x] #242
[x] #243

Related Issues
No response
Suggested Labels
No response

Closing as the feature is completed.


[DO_NOT_MERGE] Miscelleanous cleanups

Please take a look at the commits and see what you think.

got this all in now, so closing


A question on serving multiple-lora models in one server

Great project! It's very usful in industry application.
In this example(https://github.com/punica-ai/punica/blob/master/examples/tui-multi-lora.py), all requests are  same for different LoRA models, computational efficiency via SGMV is easily understandable.
But, how "Distinct" requests for different LoRA models can still have performance boost? That each request is for a different LoRA model.

Thanks for the kind words!
First, a quick clarification, tui-multi-lora.py demonstrates a mixed usage of 6 requests on 4 models. There are 3 demo applications (gsm8k, sqlctx, and viggo). Each of the apps run in two different ways:

Run the LoRA finetuned model
Run the original base model, with some prompt learning.

Therefore you get 3*2=6 requests in the batch, and 3+1=4 models (3 finetuned models + 1 zero weight, i.e., base model).
As for why there is performance gain in Distinct case (i.e., N requests for N LoRA models), I'd say it mostly comes from utilizing more compute units. x@A@B is a small computation, which cannot fully utilize GPU. Batching increases degree of parallelism, thus improves performance. However, this free lunch is not forever, as shown in Figure 8 and 9 in our paper. For more analysis, you can look at Figure 7, the roofline plot, and related text in Section 7.1.

Thanks! I'll read the paper later.


pyfeatures calc: allow to filter by ZCT coords

Adds options to select only specific Z, C, T indices to the feature calc app. For instance:
pyfeatures calc -t 10,20,30 plate_0.avro

This works as expected 👍

Merging. Worth an 0.3.0 tag?

Hold off tagging for now? It sounds like we'll need another change to enable reverse indexing.


Different InstallESD.dmg Hashes on Macbook Pro 5,5

Hi!
A friend  wants me to reformat his old Macbook Pro since he's not knowledgeable about it so I downloaded an Installer of OS X El Capitan via the App Store. codesign outputs are correct but the hashes for InstallESD.dmg are different. sw_vers output build number is 15D21. Is this because that its an old model? Anyway, below are the hashes. If anyone has the time for this same model and build version, I hope you could take the time to check the hash values for me. Thanks!
Macbook Pro (13-inch, Mid 2009)

sw_vers output
--------------------------
ProductName:	Mac OS X
ProductVersion:	10.11.3
BuildVersion:	15D21

InstallESD Hashes
--------------------------

SHA-1: ca4fc8f99f5d17d8193108ba31027cf6fd360048
SHA-256: c3d8a41ea5e0f28a678ba2e2c81453bc17db3295a376289aea60fcd84fd63d05

Thanks for reporting this. I don't have access to a 2009 MacBook, but perhaps the file is different because it includes an entirely different set of hardware drivers. I'm inclined to say codesign output is trustworthy, but I'll keep this ticket open in case anyone can reproduce the issue.

I'm still trying to get my hands on this model of MacBook. Maybe you can try the 10.11.4 image now that it's out, and let me know if those hashes match? Thanks.

They match now. I wonder why the one for 10.11.3 didn't match.

Probably driver-related, then. I'll reopen and investigate if I can ever find this model of Mac.


Is it possible to use SerialName in data class fields?

Is there any way to use a kotlinx.serialization or gson annotation on the fields of a data class in the version 1.6.1?
For example, I'm using the code below, but the generated example response is picking the data class field name and ignoring the annotation:
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class Pet(
   @SerialName("first_name")
   val firstName: String
)

get("pet", {
    response {
        HttpStatusCode.Ok to {
            body<Pet>() {
               mediaType(ContentType.Application.Json)
               example(
                   name = "get pet name",
                   value = Pet("Max")
              )
            }
        }
    }
}) {
    // handle request...
}

But the generated example give me:
{
    "firstName": "Max"
}

instead
{
    "first_name": "Max"
}

I saw that in the 2.0.0 version will be possible to set a custom example encoding

Hi,
there is this workaround for using kotlinx for schemas. For examples it is possible to set the value to a json-string provided by kotlinx instead of an object.
Version 2.x will have a much simpler/cleaner way of replacing the default encoders with e.g. kotlinx and should be done/release in a few days. If you want you could also check out the latest release candidate.


Support for older Android versions?

The number of potential users probably wouldn't legitimize the effort, but .. would it be a great deal to offer a version that can run on Android 7 (or maybe older)?
My bounty: 20000 sats.
(I know, laughable)

If someone is interested in this task, in my fork I've replaced all the Java 8 and SDK 26 calls. The changes need to be tested, but the blocker is the broken account storage. Currently, I have no time to investigate.
https://github.com/Radiokot/amethyst/tree/min_sdk_21


CUDA acceleration always enabled regardless of cuda feature enabled

There have been multiple reports of consistent GPU utilization shown with nvtop on Nvidia machines, regardless of if the cuda/opencl features are enabled. However, there should be no CUDA usage if the feature isn't enabled.
According to @winston-h-zhang this may be due to the following issue in https://github.com/lurk-lab/grumpkin-msm and https://github.com/supranational/pasta-msm:

build.rs will always enable cuda if it detects a valid nvcc

My tests on CPU comparing dev at 2066ae4 with https://github.com/lurk-lab/arecibo/pull/257.
results (1st set is dev/, 2nd set is the PR, machine is an M1 Mac):
https://gist.github.com/huitseeker/0a5504320bd179f07310de131f618c72


Identity UI Unsuitable

The new Identity UI library system introduced with 2.1 is unacceptable, in my eyes. There is too much background magic going on that isn't clear even after scaffolding all the pages. Not all users want to have an entire Areas folder with nothing but Identity in it while the rest of their project lives in the project root.
After scaffolding all the pages, I've noticed some pages have [AllowAnonymous] yet no pages have [Authorize], implying requiring authorization is the default. Yet, nowhere in the code is this made clear. Not in the Startup configuration. Not in Program.cs. Not in any files under the Identity folder. Nowhere. Leaving me to believe there's just some background magic going on that is being deliberately hidden from us.
The only current option also seems to be using Razor Pages for the Identity UI. Some of us want full control over how we use Identity so that we can customize it to our needs. The current setup is simply unacceptable. If my entire project is using MVC, I don't want Identity living in its own folder off in la-la land as Razor Pages. It makes the project structure a mess, and there's just no reason for it.
Please either fix the options so that those who want it can take full control of Identity and use it as they wish, whether that's the MVC approach or the Razor Pages approach. Or provide us with sufficient documentation so that we may add Identity to a blank project without using the Identity UI library or some magic scaffolding voodoo. As it stands now, there doesn't appear to be any documentation on Identity that doesn't rely on the new scaffolding system and Identity UI.

I have to say I agree. I have just been looking at the same thing, thinking I could make use of it in an application I am starting. At the moment, I am not willing to consider it as I cannot control it. When I get it back in a MVC form, where I can see the models and the controllers, then I will reconsider. In the meantime, it is dead in the water and I will go back to 2.0 for the time being.

@DamianEdwards @javiercn @danroth27

Perhaps the comment I can add here is that it's very rare that in a real production app anyone would really use the default ASP.NET Identity UI/templates. They will certainly be a starting point, but they always need tweaking/customizing. This is certainly the case for every identity project I work on or that I come across in my work.
So I think I agree that the more the UI is encapsulated the harder it is to use as that template/starting point. And the more there are tacit behaviors/features, then the harder it is to understand and take control of those.

@tstivers1990 Thanks for getting in touch with us.

The new Identity UI library system introduced with 2.1 is unacceptable, in my eyes. There is too much background magic going on that isn't clear even after scaffolding all the pages. Not all users want to have an entire Areas folder with nothing but Identity in it while the rest of their project lives in the project root.

The default UI is a starting point suitable for applications where there's not a lot of need to fully customize the UI. I'm not sure what background magic you are referring too; specially after scaffolding the pages, the mechanics of how it works are pretty similar to the 2.0 version in the templates, with the main exception that all the code is now in its own area. We put Identity in an area to isolate the code from the rest of the application and make sure that it doesn't negatively impact the rest of your application in a way that is not obvious.

After scaffolding all the pages, I've noticed some pages have [AllowAnonymous] yet no pages have [Authorize], implying requiring authorization is the default. Yet, nowhere in the code is this made clear. Not in the Startup configuration. Not in Program.cs. Not in any files under the Identity folder. Nowhere. Leaving me to believe there's just some background magic going on that is being deliberately hidden from us.

This is not the case. AllowAnonymous doesn't imply authorization, it only implies that no matter what, that page should be accessible to unauthenticated users. Previous versions of the templates would break when you added authorize as a global filter, hence we added [AllowAnonymous] to the pages where it applies.

The only current option also seems to be using Razor Pages for the Identity UI. Some of us want full control over how we use Identity so that we can customize it to our needs. The current setup is simply unacceptable. If my entire project is using MVC, I don't want Identity living in its own folder off in la-la land as Razor Pages. It makes the project structure a mess, and there's just no reason for it.

Maintaining two versions of the same codebase (MVC and Razor Pages) is very expensive for us and there are no real benefits from having an MVC implementation compared to a Razor Pages version. Both flavors are fully in ASP.NET. Moving the code out of the area should be relatively straight forward, as well as converting it to MVC from Razor Pages. It probably simply involves moving the pages from the area into your main app Pages folder and calling AddIdentity instead of AddDefaultIdentity.

Please either fix the options so that those who want it can take full control of Identity and use it as they wish, whether that's the MVC approach or the Razor Pages approach. Or provide us with sufficient documentation so that we may add Identity to a blank project without using the Identity UI library or some magic scaffolding voodoo. As it stands now, there doesn't appear to be any documentation on Identity that doesn't rely on the new scaffolding system and Identity UI.

The default UI is completely optional. You should be able to just scaffold the pages into your project and do whatever you want from there, whether that's convert them to an MVC flavor or move them out of the area into your main project.
@Rick-Anderson Is this something we can get documented?

Perhaps the comment I can add here is that it's very rare that in a real production app anyone would really use the default ASP.NET Identity UI/templates. They will certainly be a starting point, but they always need tweaking/customizing. This is certainly the case for every identity project I work on or that I come across in my work.
So I think I agree that the more the UI is encapsulated the harder it is to use as that template/starting point. And the more there are tacit behaviors/features, then the harder it is to understand and take control of those.

@brockallen The default UI is a starting point and a suitable option when you need to do simple customizations. For full control we recommend you scaffold the pages and change them to suit your needs.
Hope this helps.

This is not the case. AllowAnonymous doesn't imply authorization, it only implies that no matter what, that page should be accessible to unauthenticated users. Previous versions of the templates would break when you added authorize as a global filter, hence we added [AllowAnonymous] to the pages where it applies.

What I meant by this is that it's not obvious where authorization is required, and where it isn't. I'm guessing this is caused by the fact that configuration is now hidden behind services.AddDefaultIdentity<T>() which isn't very well documented. Probably the largest chunk of the frustration being caused by the whole thing is the lack of solid documentation.
I don't mind having to write my own implementation from scratch. Just document the Identity library so we know how to use it is all I ask.

Scaffold Identity
Applications that include Identity can apply the scaffolder to selectively add the source code contained in the Identity Razor Class Library (RCL). You might want to generate source code so you can modify the code and change the behavior. For example, you could instruct the scaffolder to generate the code used in registration. Generated code takes precedence over the same code in the Identity RCL.

Scaffold Identity
Applications that include Identity can apply the scaffolder to selectively add the source code contained in the Identity Razor Class Library (RCL). You might want to generate source code so you can modify the code and change the behavior. For example, you could instruct the scaffolder to generate the code used in registration. Generated code takes precedence over the same code in the Identity RCL.

This documentation is absolutely useless. It doesn't document how Identity works as a library. We need clear documentation that outlines how Identity works. Scaffolding only tells you how the templates use Identity. It doesn't tell you how Identity can be used, or what your options are if you're looking to customize it. Identity itself really needs to be documented, imo.

Intro to Identity
Identity is enabled for the application by calling UseAuthentication in the Configure method. UseAuthentication adds authentication middleware to the request pipeline.

@tstivers1990

This documentation is absolutely useless.  It doesn't document how Identity works as a library.

Thanks for your candid appraisal of my document.  That document is focused on scaffolding Identity, not explaining Identity.  See Intro to Identity and associated docs.

How is one supposed to determine what parts of the website require authorization and what parts don't, when the default project template leaves no code making this clear? A lot seems to be hidden behind services.AddDefaultIdentity<IdentityUser>() in the interest of making things easier for new users. But, in doing so, things have become more magic and less obvious. There's already an issue (#6367) open for this for almost a month with no update.
Add custom user data to Identity relies entirely on the scaffolding system. If you're not looking to use this system, you're out of luck. It fails to explain how customizing user data actually works. It doesn't explain the fact that you need to modify the call to AddDefaultIdentity<T>(). It doesn't explain the fact that you need to modify your DbContext to inherit from IdentityDbContext<T>.
I apologize if you take offense at my bluntness when it comes to the documentation. It's not intended to offend. But the theme I've noticed with the new documentation is that it relies very heavily on the scaffolding system. I think that's a bad approach, and I think that because as a user trying to familiarize myself with all of the changes that have happened since the pre-release days, a lot of questions have gone un-answered and a lot of time has been spent digging through GitHub repos to try and figure out how things work.

@Rick-Anderson I think that what @tstivers1990 wants is better documentation on how to plug-in identity without relying on the scaffolder.
@tstivers1990  The scaffolder is just a vehicle to delivering the code into your application. If you want full control, scaffold once and remove everything you don't need.
@Rick-Anderson These are the important bits to know if you have scaffolded the code into your app and don't want to use default identity at all.
Configure MVC to authorize the Identity pages that require authorization:
services.AddMvc()
   .AddRazorPages(options =>
       {
           options.AllowAreas = true;
           options.Conventions.AuthorizeAreaFolder("Identity", "/Account/Manage");
           options.Conventions.AuthorizeAreaPage("Identity", "/Account/Logout");
      });

Configure the cookie to point to the identity pages paths
services.ConfigureNamedOptions<CookieAuthenticationOptions>(options =>
{
    options.LoginPath = $"/Identity/Account/Login";
    options.LogoutPath = $"/Identity/Account/Logout";
    options.AccessDeniedPath = $"/Identity/Account/AccessDenied";
});

Regarding the fact that we rely on the scaffolder in our docs, its totally fine. The alternative is to tell you to copy paste a bunch of code in the docs into your project which is inevitably going to go out of sync. The scaffolder is the source of truth.
Hope this helps clarify things a bit.

Closing this issue as we are taking action on https://github.com/aspnet/Docs/issues/6990.
Thanks for bringing this issue to our attention.

Same comment as @brockallen here https://github.com/aspnet/Docs/issues/6146 and here https://github.com/aspnet/Docs/issues/6301 . It is creating too much confusion for only getting unnecessary aesthetics and makes it more difficult for people to get work done because they will have to modify the code anyway to meet compliance.
I can only strongly suggest to:

Remove the ui library from the default template and make docs to instruct the user on how put it all in a library (i.e. we basically reverse the process)
Remove AddDefaultIdentity from the universe, or the older one. In the case where the AddDefaultIdentity is chosen, clarify in the docs what is meant by Default by enumarating default values or behavior.


$recursiveRef: only supports hash fragment reference

AJV: 8.6.2
Draft: 2019-09
Hi, I've run into into a issue with $recursiveAnchor and $recursiveRef where I'm unable to target non-root schemas using $recursiveRef. For simplicity, below is the TypeScript data structure I'm trying to represent in JSON schema.
interface Element {
    elementId: string
    elements:  Element[]
}

interface Node {
    nodeId:   string
    nodes:    Node[]
    element:  Element
}

The following is the JSON schema I'm using to represent the above type. I believe JSON schema interprets the # pointer in the following to refer to the root schema in nested schemas, causing the inner Element array to be interpreted as an array of type Node. This is expected behaviour.
{
  "additionalProperties": false,
  "$id": "Node",                       // <------------+
  "$recursiveAnchor": true,            //              |
  "type": "object",                    //              |
  "properties": {                      //              |
    "nodeId": {                        //              |
      "type": "string"                 //              |
    },                                 //              |
    "nodes": {                         //              |
      "type": "array",                 //              | { $recursiveRef: '#' } targets root schema "Node"
      "items": {                       //              |
        "$recursiveRef": "#"           // -------------+
      }                                //              |
    },                                 //              |
    "element": {                       //              |
      "additionalProperties": false,   //              |
      "$id": "Element",                //              |
      "$recursiveAnchor": true,        //              |
      "type": "object",                //              |
      "properties": {                  //              |
        "elementId": {                 //              |
          "type": "string"             //              |
        },                             //              |
        "elements": {                  //              |
          "type": "array",             //              |
          "items": {                   //              |
            "$recursiveRef": "#"       // -------------+
          }
        }
      }
    }
  }
}

To address this, I've tried passing an explicit JSON pointer to try and target the appropriate sub schema.
{
  "additionalProperties": false,
  "$id": "Node",                        // <------------+
  "$recursiveAnchor": true,             //              |
  "type": "object",                     //              | Array of Node
  "properties": {                       //              |
    "nodeId": {                         //              |
      "type": "string"                  //              |
    },                                  //              |
    "nodes": {                          //              |
      "type": "array",                  //              |
      "items": {                        //              |
        "$recursiveRef": "Node#"        // -------------+
      }
    },
    "element": {
      "additionalProperties": false,
      "$id": "Element",                 // <------------+
      "$recursiveAnchor": true,         //              |
      "type": "object",                 //              |  Array of Element
      "properties": {                   //              |
        "elementId": {                  //              |
          "type": "string"              //              |
        },                              //              |
        "elements": {                   //              |
          "type": "array",              //              |
          "items": {                    //              |
            "$recursiveRef": "Element#" // -------------+
          }
        }
      }
    }
  }
}

However, AJV is reporting the following for the second schema.
Error: "$recursiveRef" only supports hash fragment reference

Not sure if this is against specification, or a possible constraint with some of the architectural changes in AJV to support these newer drafts. I've come across https://github.com/ajv-validator/ajv/issues/1198 which suggests dynamic ref scoping (which I'm guessing relates to this) So not sure if this is working as intended or is a bug. However, I've tested the second schema in JSON.NET Schema which seems to support referencing of this kind. So not sure.
What do you think is the correct solution to problem?
Allow $recursiveRef to support $id referencing.

For convenience, the following is reference data I've using to test.
 {
    "nodeId": "1",
    "nodes": [
        { "nodeId": "2", "nodes": [] },
        { "nodeId": "3", "nodes": [] },
        { "nodeId": "4", "nodes": [] },
        { "nodeId": "5", "nodes": [] }
    ],
    "element": {
        "elementId": "3",
        "elements": [
            { "elementId": "4", "elements": [] },
            { "elementId": "5", "elements": [] }
        ]
    }
}

It should be possible to copy the above schema and the above data as is into this site to compare.

Yes, it’s a current limitation that requires a bit of thinking to overcome…

@epoberezkin Hey, thanks for the reply. Just as a follow up, I have since tried to replace the $recursiveRef with $ref (which is permissive of arbitrary JSON pointers) and have been able to cause AJV to go into a recursive tailspin. The following analogs the above schema using $defs and $ref.
{
  "$id": "Node",
  "$ref": "Node#/$defs/self",
  "$defs": {
    "self": {
      "additionalProperties": false,
      "type": "object",
      "properties": {
        "nodeId": {
          "type": "string"
        },
        "nodes": {
          "type": "array",
          "items": {
            "$ref": "Node#/$defs/self"
          }
        },
        "element": {
          "$id": "Element",
          "$ref": "Element#/$defs/self",
          "$defs": {
            "self": {
              "additionalProperties": false,
              "type": "object",
              "properties": {
                "elementId": {
                  "type": "string"
                },
                "elements": {
                  "type": "array",
                  "items": {
                    "$ref": "Element#/$defs/self"
                  }
                }
              },
              "required": [
                "elementId",
                "elements"
              ]
            }
          }
        }
      },
      "required": [
        "nodeId",
        "nodes",
        "element"
      ]
    }
  }
}

Resulting in the following
... omitted
at Ajv2019.getJsonPointer (target\spec\index.js:4153:29)
at Ajv2019.resolveSchema (target\spec\index.js:4103:31)
at Ajv2019.resolveSchema (target\spec\index.js:4108:35)
at Ajv2019.getJsonPointer (target\spec\index.js:4153:29)
at Ajv2019.resolveSchema (target\spec\index.js:4103:31)
at Ajv2019.resolveSchema (target\spec\index.js:4108:35)
at Ajv2019.getJsonPointer (target\spec\index.js:4153:29)
at Ajv2019.resolveSchema (target\spec\index.js:4103:31)
at Ajv2019.resolveSchema (target\spec\index.js:4108:35)
at Ajv2019.getJsonPointer (target\spec\index.js:4153:29)
at Ajv2019.resolveSchema (target\spec\index.js:4103:31)
at Ajv2019.resolveSchema (target\spec\index.js:4108:35)
at Ajv2019.getJsonPointer (target\spec\index.js:4153:29)
at Ajv2019.resolveSchema (target\spec\index.js:4103:31)
at Ajv2019.resolveSchema (target\spec\index.js:4108:35)
... omitted
at CodeGen.code (target\spec\index.js:907:11)
at CodeGen.func (target\spec\index.js:1034:16)
at validateFunction (target\spec\index.js:3447:13)
at topSchemaObjCode (target\spec\index.js:3472:7)
at Object.validateFunctionCode (target\spec\index.js:3432:11)
at Ajv2019.compileSchema (target\spec\index.js:4018:20)
at Ajv2019._compileSchemaEnv (target\spec\index.js:4627:35)

Couldn't get this one to run across other JSON Schema validator either (it has problems resolving the subschema JSON pointer reference for unknown reasons). It looks like AJV is able to resolve it, but seems to be getting into a loop resolving the same pointer over and over during the codegen pass.
I'm guessing $recursiveRef uses a similar resolver code path (hence the # imposed limitation on the pointer). I'm wondering if it's possible to cache the resolved schema via JSON pointer, or if there are further downstream considerations with the validation sharing the same validation / fragment.

you only need to use recursiveRef and recursiveAnchor only if you need these schemas to be extensible, in normal cases you can do it with normal refs.

you can do what you need by splitting element schema to a separate schema file

consider using dynamicRef instead.

@epoberezkin Hey, thanks for the response. I'm not familiar with $dynamicRef but will take a look.

you can do what you need by splitting element schema to a separate schema file

Would this involve moving the recursive sub schema out into it's own schema and adding it to AJV via ajv.addSchema(...)? Would referencing the schema this way help avoid the infinite loop compiling recursive schemas of this type?

Would this involve moving the recursive sub schema out into it's own schema and adding it to AJV via ajv.addSchema(...)?

Yes, with addSchema or via schemas option.

Would referencing the schema this way help avoid the infinite loop compiling recursive schemas of this type?

Splitting and infinite loop is really unrelated, but it would help overcome the limitation. In general, you should not need $recursiveRef - normal $ref should allow creating recursive schemas - there are many examples in the tests.

@epoberezkin Hi, was just looking into this issue again, and seem to be having some success using the 2020-12 draft, replacing $recursiveAnchor and $recursiveRef for $dynamicAnchor and $dynamicRef respectively. The previous JSON test case written for this issue appears to be working great.
import Ajv from 'ajv/dist/2020'

const ajv = new Ajv({})

const Node = {
    'additionalProperties': false,
    '$id': 'Node',                            // <------------+
    '$dynamicAnchor': 'node',                 //              |
    'type': 'object',                         //              | Array of Node
    'properties': {                           //              |
        'nodeId': {                           //              |
            'type': 'string'                  //              |
        },                                    //              |
        'nodes': {                            //              |
            'type': 'array',                  //              |
            'items': {                        //              |
                '$dynamicRef': '#node'        // -------------+
            }
        },
        'element': {
            'additionalProperties': false,
            '$id': 'Element',                     // <------------+
            '$dynamicAnchor': 'element',          //              |
            'type': 'object',                     //              |  Array of Element
            'properties': {                       //              |
                'elementId': {                    //              |
                    'type': 'string'              //              |
                },                                //              |
                'elements': {                     //              |
                    'type': 'array',              //              |
                    'items': {                    //              |
                        '$dynamicRef': '#element' // -------------+
                    }
                }
            }
        }
    }
}

const ok = ajv.validate(Node, {
    'nodeId': '1',
    'nodes': [
        { 'nodeId': '2', 'nodes': [] },
        { 'nodeId': '3', 'nodes': [] },
        { 'nodeId': '4', 'nodes': [] },
        { 'nodeId': '5', 'nodes': [] }
    ],
    'element': {
        'elementId': '3',
        'elements': [
            { 'elementId': '4', 'elements': [] },
            { 'elementId': '5', 'elements': [] }
        ]
    }
}) // -> ok

console.log('ok', ok)

This issue was originally raised as AJV was stack overflowing in the $recursive case (possibly tied to the AJV's compilation logic) but seems to be fine for the $dynamic implementation on the 2020 draft. So was curious if there had been updates to AJV over the past 10 months to resolve the stack overflow issue.
Would be happy to close off this issue, but wanted to check before swapping over to the 2020 spec.


Adding xmake.nvim but I don't know where to put it

Makes it easier to use the xmake build tool in neovim.
Plugin address: xmake.nvim

I would say it probably belongs in the Utility section.


fix(curriculum): update instructions of rpg 17 with example code

Checklist:

[x] I have read and followed the contribution guidelines.
[x] I have read and followed the how to open a pull request guide.
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Closes #54075

Not a first timer.


WIP: cluster resiliency, remove workers if they die

Currently this adds a function to the scheduler that checks if workers have not sent a heartbeat within some timeout period. If this is the case the worker is removed from Scheduler.workers.
I want to be able to interrupt the workers if this happens, however I am still thinking of a proper way to do this. Suggestions?
Then once the workers are interrupted restart the job.

This works sometimes. And sometimes worker.to_scheduler.recv_multipart() raises an error that says "ZMQ error, socket operation on non-socket" but worker.to_scheduler is definitely a socket, so that is confusing.
This also does not yet have Worker.collect trying to gather keys from non-dead workers if they are available.

This can occur if the socket is already closed.
In [1]: import zmq
In [2]: context = zmq.Context()
In [3]: sock = context.socket(zmq.DEALER)
In [4]: sock.connect('ipc://alice')
In [5]: sock.close()

In [6]: sock.recv_multipart()
ZMQError: Socket operation on non-socket

This now combines heartbeats and registration. So if a scheduler un-registers a worker it can re-register without even knowing it was un-registered.

Should I break this into seperate PR's: The pieces of this PR are:

[x] add function to detect worker failure
[ ] watch for worker failure in a thread using this function
[x] add function to notify living workers about dead workers, and interrupt those that are hanging in collect
[ ] when a worker is interrupted, retry collect if possible
[x] combine worker heartbeats and registration. So if the scheduler un-registers a worker it thinks has died, but later the worker sends more heart beats. It will be re-registered.

Up to you.  At the moment you seem to be in charge of dask.distributed.  So I would say "whatever makes development easiest for you."

Okay this is looking good, all the features are there, and it is mostly behaving.
I still have some cleanup to do which I'll get to tonight..

Whoa, a quick glance through this looks really encouraging.  Should have stronger feedback tomorrow.

@mrocklin Just FYI this does not include a mechanism to restart a computation. I'll ping you after I cleaned it up a little bit.

So every worker now have a dictionary attribute queues_by_worker that maps another worker's address to a dict that has keys that are the queues associated with the other worker, and its values are the lists of "key names" that are being collected from the other worker.
This seems complicated. But I had add a way to track:

what queues (in self.queues) are associated with what workers. Since there can be multiple queues per worker, the queues are given a unique name they are keyed by in self.queues.
what workers are being collected from
what keys are being collected from them

A better way to consolidate this is welcome.

I then had to add a way to figure out if collecting a key succeeded or failed. I did this by putting a message into the queue for the key that has got_key, key, and worker. So the collect function can decide what to do, this happens here.

Oh, here is a thought.  When we lose a worker and we have to either

restart the computation from scratch
be clever and walk back the execution state to recompute missing data

Lets instead stop the computation but not release the data currently in the workers.  Then in the scheduler we use cull to remove tasks from the graph that correspond to the data we already have in the workers (the scheduler has a full catalog of what everyone has) and schedule that much smaller graph.  This both avoids unnecessary computation and is cheap to implement.
We would want to check that, at the end of a successful computation the workers' caches have been cleared (I'm not sure if this would happen or not.)

@mrocklin making a test that kills a worker during scheduler.schedule is kind of hard. But here is one that kills a worker. Then the scheduler tries to schedule a dask before it realizes the worker is dead. This hangs since the scheduler is waiting for a 'finished-task' signal from the worker.
def test_foo():
    with scheduler_and_workers(scheduler_kwargs={'worker_timeout': 0.1}) as (s, (w1, w2)):
        dsk = {'a': (add, 1, 2), 'b': (inc, 'a')}
        w2.close()
        while w2.status != 'closed':  # wait to close
            sleep(1e-6)
        assert w2.address in s.workers
        s.schedule(dsk, 'b')

There are actually several places where the scheduler will hang if a worker does not respond: scatter, gather, send_data would also hang. Maybe it would be better to fix these and handle restarting the computation in another PR. This one can me limited to making workers to worker interactions more resilient.

@mrocklin merging soon unless you have anymore comments.

No comments from me.  Do you have thoughts on how to extend this work to achieve more general resiliency?

@mrocklin Yes. I'm working on another PR making the scheduler more resilient to worker failure. I would like to get this in so I can do some refactoring.

OK.  +1 from me


Fix search page overlaping layout on mobile

Hello everyone, there's a minor bug on the search page on mobile screens.

Before
After

So here's a small patch to fix it.

A PR adding dropdowns was just merged. Thank you!!