Testing plugins with docker container

Hey guys,
I am quite knew to kong and the lua environment. I have followed your tutorials and have made successfully made a plugin.
I would like to add some tests to this and in the documentation there is a reference to a specs folder and also to the test framework busted. I can see the specs folder in the git repo but in the container at

/usr/local/share/lua/5.1/kong/

There is no specs folder nor is busted installed. Is there a container that provides all of this or is this is something I have to do manually so that I can get tests to work?
Thanks.

Kong version 0.9.5
Ubuntu 16

the development/test stuff is not in the distributions, only in the source repo.
Generally;

install Kong as usual
clone the repo
make dev
from the repo start kong with ./bin/kong start (to make sure you start the local dev one)

Don't have them handy, but iirc there are a view dev setups available, using either vagrant or docker, please use you google foo on that first

Hey,
Thanks for the quick reply.
Some of the repos I found regarding a kong dev version are the following:

https://github.com/konobi/kong-dev-docker
https://github.com/superpixelhq/kong-plugin-development

The first one seems to create a container from the ground up and install everything needed for kong (not sure if it does the steps you recommend as there are a lot of instructions and I am also a bit new to docker).
The second I used in the past and its quite old. It uses kong 0.8.x which makes it useless for me.
I was hoping to find something from Mashape for plugin developers. Has my google foo failed me?

We have plans to release a suite of testing tools that would be independent of the main Kong repository for plugins developers in the future, but nothing so far. In the meanwhile, you would have to familiarize yourself with Lua testing frameworks and build your own solution (you can get inspiration from the Kong testing suite).

@thibaultcha Great.... thanks for the help.

@Dinah-C-J situation remains unchanged for Docker. Those distro's are for running Kong, not for developing.
May I suggest you use the Kong-Vagrant box? It includes everything you need, and the instructions are step by step including testing the template plugin.

@Tieske This is the wrong approach.
Relying on vagrant when also using docker is horrible in windows (you normally can only run one or the other).
When I was working on kong I was using exclusively the docker version for my development as I had other things running on my machine and couldn't run something as heavy as vagrant (the machine wasn't great)

@AntonioCS

This is the wrong approach.

By what measure?
I do see your point in that it is not the optimal solution for you. That said, we cannot help that you have limitations; docker+vagrant, windows in general, and too little hardware.
What we have available is the vagrant box, and we support it in the best way we can (many of our own engineers use it). As I said, it contains detailed step-by-step instructions to get anyone going.
Now if your limitations prevent you from using it, then that's too bad. Maybe you can use the repo for inspiration to create a similar Dockerfile for example, if that works better for you. If you do, then please share it with the community so it can benefit others with similar limitations.

Thanks @Tieske.  I am using kong-vagrant locally and it works perfectly fine. But our actual instances are docker containers so was fishing something for it. I shall explore something new and see if I can get to something on it

@Tieske It's not the optimal solution for me nor is it for most people.
If you are using docker why would you use vagrant?
You can do everything that you do in vagrant in docker but it is much more lightweight and does not break down as much. Most of the times when I used vagrant, there would be something wrong with it (some update of something that ran in the machine).
With docker you have a sense of all the parts that are important to what you actually want to do, with vagrant you are just using another full blown OS.
And your remark regarding the hardware limitation would probably "hit" other devs as well. When we join a company we work with what is given, it is rare for a dev to make demands regarding his hardware.
It is foolish for the kong team not to provide docker alternatives for everything.

@Dinah-C-J glad to hear it works for you. If you come up with something docker based, that would be a welcome contribution 👍
@AntonioCS This is an open source project, provided for free. Maybe try your luck with some other open source projects and see how willing they are to provide "alternatives for everything". The gist here is that there is a set up for it. If you don't like it for some reason, feel free to contribute an alternative.
If you contribute a docker based development environment, I'll try my best to help you out with any issues you encounter. But please do not ask us to do things (for free) to solve your problems, because you don't want to contribute them yourself.

@Tieske Is there any progress on the dockerized testing suite? quoting (above reply).
I found an equivalent version here - https://github.com/inspectorioinc/docker-kong-plugin-tests that maintains a dockerfile that has the dependencies like busted and the spec.helpers file.  I couldn't get it to work however.
@Dinah-C-J If you don't mind me asking, could you please tell me what you went with finally?

@Presto412 have you tried Pongo? https://github.com/Kong/kong-pongo

I figured I could use it, but i don't want to have it run docker-in-docker mode (since we're intending to use k8s pods as Jenkins agents).

best there is is https://github.com/Kong/kong-pongo#running-pongo-in-docker ...

Alright, I'll see what I can do with it. If we get a VM agent, should work


Fix a few things and other QOL changes

Not a detailed or thought out PR... Just some stuff I fixed...
Initially wanted to add meta tags to the pages but now decided to just push this...

This looks alright to me!
The
 tags were used everywhere in the original wiki, what do you think about replacing them with the double spaces @DV8FromTheWorld? It's nicer to read in unrendered markdown for sure, but it does make it less obvious when trying to edit it. Another option could to use \ instead, to get rid of the html tag but still make it clear that there's a line break there.

I for my part think that the wiki should be restructured in this area, since having stuff like a set max width makes no real sense when using (online) editors and only causes confusion.
If we use markdown, then we should utilize all its features as good as we can. After all is the purpose of markdown to simplify HTML markup and make it more readable...
So tl;dr I say we should get rid of the
 tags and the overall width limitation.

I've pushed a change that switched out the inline admonition block with a code annotation.
Additionally did I move the image and SVG file into an images folder, since I also added a CSS file overriding the default code annotation colour to the primary one (The grey was barely visible on the code block with large comments)

Wait, do you mean 2 spaces at the end of the line to indicate a
? I don't know why, but I thought you meant 2 newlines in the docs.
I definitely don't want to use 2 trailing spaces to indicate a
 as editors will remove trailing spaces during optimization workflows (Intellij runs this by default on file unfocus)

I definitely don't want to use 2 trailing spaces to indicate a
 as editors will remove trailing spaces during optimization workflows (Intellij runs this by default on file unfocus).

Idk what configuration you actually use, but IJ never did this in my case. The files always kept their trailing spaces in markdown files.
I'm generally not a fan of using HTML stuff inside markdown when there is a MD variant.
Having a
 in front of every new line for a simple line break makes sense for Javadocs, but for Markdown is it imo just bad.
Will re-add the
's tho.

I've reverted the line breaks to using the
 tags again.
One thing I would still ask for is, to get rid of this nonsense per-line limit.
Having lines break at a certain limit is just annoying because you can't really see if there is a new line or not and in terms of GitHub and the website itself does it also not matter as in both cases you don't see it by default (unless you look at the plain text in the markdown file).
Also, Editors will either auto-wrap it (Like GitHub) or just expand to the left which isn't even that bad.
If you want to keep this, then I'm sure are there some GH Actions and tools that could auto-format markdown to keep this.

Is there anything preventing approval on this?

This looks fine to me from a content perspective, but I'm not an expert in this software to know if all of the changes are valid from a formatting perspective.

I tested this locally and it looked fine for me.

Would you be able to move colors.css to stylesheets/ instead of assets/css/

I honestly forgot this and iirc didn't apply it yet?
Would do that first, so no merge until that first pls.

I tested this locally and it looked fine for me.

Yep, I checked it too and it all looks good to me. Once that last change has been applied we'll be able to merge

Moved the css to assets/stylesheets/
The PR is now ready for me.

Oh, I meant to move it to stylesheets/, not assets/stylesheets

Oh, I meant to move it to stylesheets/, not assets/stylesheets

That wouldn't make any sense... Javascript and CSS are usually stored under a assets directory in their respective folders.
Material for MkDocs also has assets/stylesheets/ for its SCSS files, so it would make sense to keep it consistent here...

That wouldn't make any sense... Javascript and CSS are usually stored under a assets directory in their respective folders.

I get that, but like I said before, that's exactly what mkdocs shows in its own documentation: https://squidfunk.github.io/mkdocs-material/customization/#adding-assets
That makes it easier for contributors to figure out the structure, since we're not deviating from the norm. The more they can just get from the mkdocs material documentation the better, because in our contributing guidelines we'll need to state everything they can't know by reading those docs.

Material for MkDocs also has assets/stylesheets/ for its SCSS files, so it would make sense to keep it consistent here...

That's in the theme files themselves, not in their own documentation that's using the theme. We'd want to keep it consistent with the documentation, as we're doing the same.

Made quite a few changes.

Added a first design for a Landing Page. [Preview]
This isn't final yet and it's currently discussed and still worked on in the Splash Page thread
Moved CSS from assets/stylesheets/ to stylesheets/. Hope it's good that way.
Changed the primary colour used in the wiki to use the actual colour used in the logo.
Updated the logo. Got rid of the gradient and instead use a single colour.

Since the stuff isn't final yet do I convert this into a draft to prevent accidental merging.

Could you please handle the landing page and all that in a different PR? Those changes are entirely separate from everything else in here, and it's easier to review and merge those separately. We can get this PR merged already then

Could you please handle the landing page and all that in a different PR? Those changes are entirely separate from everything else in here, and it's easier to review and merge those separately. We can get this PR merged already then

Okay. I removed the override stuff, but I leave in the CSS stuff since it doesn't affect the page in any negative way

Is there anything holding up this PR?

I don't think so...


[Bug]: Possible bug - Register on IDP do not use domain discovery

Preflight Checklist

[X] I could not find a solution in the documentation, the existing issues or discussions
[X] I have joined the ZITADEL chat

Environment
Self-hosted
Version
v2.40.4
Describe the problem caused by this bug
unsure if this is intended or just a bug. When a new user clicks on an external IDP (azure,google) without an active account Zitadel will only create that account in the default organization and ignore domain coming from the external idp even if the username and email are the same and there exists an org with that domain name registered in the Zitadel instance.
To reproduce
create org
add domain name same as used in idp
add and enable idp in default instance, default org and new test org
enable create account on idp
enable domain discovery on all orgs
click on idp and notice that the email domain for the user is ignored and forces the default org.
Screenshots
No response
Expected behavior
No response
Operating System
No response
Relevant Configuration
No response
Additional Context
No response

hei @zs-ko
The behaviour is intended.
It depend where you create your idps, per default users will always be registered to the default organization.
You can send an organization scope to select the organization urn:zitadel:iam:org:id:{id} https://zitadel.com/docs/apis/openidoauth/scopes#reserved-scopes
Or you can use domain discorvery: https://zitadel.com/docs/guides/solution-scenarios/domain-discovery

Ok, we have enabled domain discovery but still new users are registered to the default domain when using External SSO providers. This do not happen if they enter a username in the username field. then they are registered to the correct tenant.
This only happens when a new user logs inn trough sso. I would have expected the new user to then be registered on the correct org or be redirected to the org and then registered. But when SSO is enabled on the instance this only allows for existing users that have used the sso from the default instance to log inn.

I have the same issue. Domain discovery is enabled, but logging in via SSO with a domain registered to a non-default organization doesn't work.
I get the errors below, which seems to suggest that ZITADEL is trying to add the domain to the default organization, rather than looking at the other organization domains. There is also no reason for the user to see an error about domains already being reserved...so feels like an internal bug.
Microsoft - External User Not Found
Domain is already reserved and cannot be used.

My scenario is slightly different:

Create organisation: Company A
Add verified domain to that organisation: companya.com
Add Microsoft as external IdP with tenant type: organizations
Add user to organisation<EMAIL_ADDRESS>Go to login and click Microsoft button
User is redirected to Microsoft login and authenticates as<EMAIL_ADDRESS>User is redirected back to zitadel and gets the domain reserved error
User is also offered to Link account. Clicking the button redirects back to login but doesn't link anything

The idea is that authorised users are created in their associated organisation beforehand by an admin within that organisation.

My scenario is slightly different:

Create organisation: Company A
Add verified domain to that organisation: companya.com
Add Microsoft as external IdP with tenant type: organizations
Add user to organisation<EMAIL_ADDRESS>Go to login and click Microsoft button
User is redirected to Microsoft login and authenticates as<EMAIL_ADDRESS>User is redirected back to zitadel and gets the domain reserved error
User is also offered to Link account. Clicking the button redirects back to login but doesn't link anything

The idea is that authorised users are created in their associated organisation beforehand by an admin within that organisation.

Ok. Thanks for the clarification that helped.
So the problem is that you do not specify which organisation you want. When the user clicks on the microsoft button in step 5, this is the microsoft button of the default organization.
You would need to specify the organization with the organization scope urn:zitadel:iam:org:id:{id}
The domain discovery is to find out to which organization the user belongs in the first place. But we do not know when you come back from the idp.

How is this supposed to work for a SaaS application with a common login page? Is the suggestion then to not have an instance level IdP and instead configure this per organization? Would this flow work?

Go to zitadel login
Enter email address<EMAIL_ADDRESS>Domain discovery finds user organisation and redirects with organisation scope
Click Microsoft button and authenticate

How is this supposed to work for a SaaS application with a common login page? Is the suggestion then to not have an instance level IdP and instead configure this per organization? Would this flow work?

Go to zitadel login
Enter email address<EMAIL_ADDRESS>Domain discovery finds user organisation and redirects with organisation scope
Click Microsoft button and authenticate

yes that should work. so as the user always belongs to an orgnization somehow zitadel needs to know to which one.
we did a recent change about what should be shown when opening up the login without a context. https://zitadel.com/docs/support/advisory/a10003
so for example if you have social logins like google, github for your default organization, and then specifc azure ads for your other organizations you would just let them enter the username in the first input.

Thanks, then it really is better not to show any IdPs on the contextless login screen as that will definitely cause confusion!

yes, i agree. the default instance will cause confusions and result in users beeing registered on the wrong org.
When i think about this, would this not defy the intent of the domain discovery.
When i have the following org with domain
Company A: companya.com
Company B: companyb.com
then i have not check for add suffix to domain so the function would be
If this settings is disabled, you have to ensure that usernames are unique over all organizations
Then when you on the default instance click login with Azure and when domain discovery is allowed i think it should default to the registerd domain by domain discovery.
a user that belongs to the Company A by domain companya.com should not be able to be placed outside Company A org.
This would allow for less confusion in the login flow and simpler/faster login process for end users leveraging external idp.

yes, i agree. the default instance will cause confusions and result in users beeing registered on the wrong org.
When i think about this, would this not defy the intent of the domain discovery.
When i have the following org with domain Company A: companya.com Company B: companyb.com
then i have not check for add suffix to domain so the function would be If this settings is disabled, you have to ensure that usernames are unique over all organizations
Then when you on the default instance click login with Azure and when domain discovery is allowed i think it should default to the registerd domain by domain discovery.
a user that belongs to the Company A by domain companya.com should not be able to be placed outside Company A org.
This would allow for less confusion in the login flow and simpler/faster login process for end users leveraging external idp.

I agree, it would be a lot simpler of domain discovery just placed users in their associated organisation rather than the default org. Is it also not dangerous to allow users from different organisations to mix in the same org?
@hifabienne I'm still unable to log in via Microsoft even when the IdP is on companya. I get the same error where the user cannot be found. It's as if domain discovery just isn't working fully when the user doesn't live in the default organisation. It correctly identifies that companya has Microsoft as an IdP, but it looks like the organisation scope is not set on the redirect URI. This is the URL that zitadel redirects to:
https://login.microsoftonline.com//oauth2/v2.0/authorize?client_id=&login_hint=&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Fui%2Flogin%2Flogin%2Fexternalidp%2Fcallback&response_type=code&scope=openid+profile+email+User.Read&state=241887275904929796

As the idps always belong to a organization it is hard to do a domain discovery there, as ZITADEL already has a specified organization.
So far the domain discovery is mainly to identify if a user does not yet exist to know to which organization to redirect.
I agree that there could be some improvements, but I am a little hesitant at the moment, as it might be not the same process for every costomer.
We try to build a flow that works for most of the customers.
If you need more flexibility or another flow, you could build your own login ui, and use our session API.
Yes when the user doesn't exist you will still get a not found error and then the user has to register. you can also enable auto register in that case the user should be created automatically

As the idps always belong to a organization it is hard to do a domain discovery there, as ZITADEL already has a specified organization. So far the domain discovery is mainly to identify if a user does not yet exist to know to which organization to redirect.

Is that the case for IdPs defined at an instance level? I would have thought that this would then scan all organisation domains and redirect with the matched organisation scope.

Yes when the user doesn't exist you will still get a not found error and then the user has to register. you can also enable auto register in that case the user should be created automatically

I still can't get it working with the IdP on the organisation, specifically when the user is pre-created. I'm adding the user via the management API. Do you see an issue with the request?
{
    userName = humanUser.Username,
    profile = new
    {
        firstName = humanUser.FirstName,
        lastName = humanUser.LastName,
        displayName = humanUser.DisplayName,
        preferredLanguage = "en",
    },
    email = new
    {
        email = humanUser.EmailAddress,
        isEmailVerified = true
    },
    password = humanUser.Password,
    passwordChangeRequired = false,
    idps = (object[])(humanUser.UseBasicAuth ? [] : [new
    {
        configId = idpId,
        externalUserId = humanUser.EmailAddress,
        displayName = humanUser.DisplayName,
    }])
});

As the idps always belong to a organization it is hard to do a domain discovery there, as ZITADEL already has a specified organization. So far the domain discovery is mainly to identify if a user does not yet exist to know to which organization to redirect.

Is that the case for IdPs defined at an instance level? I would have thought that this would then scan all organisation domains and redirect with the matched organisation scope.

Yes when the user doesn't exist you will still get a not found error and then the user has to register. you can also enable auto register in that case the user should be created automatically

I still can't get it working with the IdP on the organisation, specifically when the user is pre-created. I'm adding the user via the management API. Do you see an issue with the request?
{
    userName = humanUser.Username,
    profile = new
    {
        firstName = humanUser.FirstName,
        lastName = humanUser.LastName,
        displayName = humanUser.DisplayName,
        preferredLanguage = "en",
    },
    email = new
    {
        email = humanUser.EmailAddress,
        isEmailVerified = true
    },
    password = humanUser.Password,
    passwordChangeRequired = false,
    idps = (object[])(humanUser.UseBasicAuth ? [] : [new
    {
        configId = idpId,
        externalUserId = humanUser.EmailAddress,
        displayName = humanUser.DisplayName,
    }])
});

Yes it is also the case with idps created on the instance level. We recently made a change to the login, so the instance settings will never trigger instead the default organization does. But as this would be a breaking behaviour change it is behind a feature flag. you can find the details here: https://zitadel.com/docs/support/advisory/a10003
the creation does look fine for me

I will close this issue for now. As we have changed the behaviour, with the advisory above.
Feel free to reopen, if you still face the problem and can provide more information


Document how to add new development acceptance tests

People should know how to add a new example using sqatt. Add a section on the README that documents this.

Duplicate #166


[Update] - Update to the latest version of simplejson

What
Upgrade to the latest version of simplejson
Why
Keep current with utilized libraries and performance increases

Implemented for ST3 via https://github.com/dzhibas/SublimePrettyJson/commit/f48297e39133756edc17188d6f1c00857905067a

Included in st3-1.0.5


Add GroundView Logo to README.md

Please add the GroundView logo to the API README. Both .jpeg and .png versions are attached.

Done


If the timeInterval prop of CalendarContainer is not set to the default value(60), onPressBackground will return an incorrect datetime.

Hi, I changed the timeInterval prop of CalendarContainer to a custom value, such as 15 or 30. When I tapped any position on the timeline, the onPressBackground event fired, but it returned the wrong datetime value. Tapping near the 0 o'clock position on the timeline returns a relatively accurate time. However, the farther the tap is from 0 o'clock, the greater the time deviation.

Hi, I changed the timeInterval prop of CalendarContainer to a custom value, such as 15 or 30. When I tapped any position on the timeline, the onPressBackground event fired, but it returned the wrong datetime value. Tapping near the 0 o'clock position on the timeline returns a relatively accurate time. However, the farther the tap is from 0 o'clock, the greater the time deviation.

I forgot to test the case of changing the timeInterval. I’ll check and fix it soon.

Fixed in v2.0.3


Feature Request: Make Lifetimes in Router Advertisements configurable

Is your feature request related to a problem? Please describe.
There are various Lifetime values in Router Advertisements, all of which are configurable in radvd, but none of which are currently configurable through the OPNsense UI.
Describe the solution you'd like
I would like input fields in services_router_advertisements.php which would allow configuring these values in Router Advertisements:

Default Router Lifetime (AdvDefaultLifetime)
Prefix Valid Lifetime (AdvValidLifetime)
Prefix Preferred Lifetime (AdvPreferredLifetime)
RDNSS Lifetime (AdvRDNSSLifetime)
DNSSL Lifetime (AdvDNSSLLifetime)
If additional routes are specified: Route Lifetime (AdvRouteLifetime)

Describe alternatives you've considered
There currently seems to be no way to configure these values and the radvd defaults seem to be used.

I hadn't noticed that this has been closed a month ago, sorry. Unfortunately it's not working, see #3589.


No need to resample if working with 1T data.

This hopefully addresses part of #108.  This seems to have fixed the problem in the simple example referenced in the Issue.  I just started looking at the code yesterday and am not sure of any potential side effects the change might have.
Thank you for taking a look.

Resampling is needed regardless as the bars are constructed from tick(ish)-based data

I realize that now, but of course, then there is still an issue...


Pre ugridsave refactor

🚀 Pull Request
Description
Refactoring netcdf variable creation routines.
Now squashed down to 2 commits :

add lost of extra assertCDL-like testing, for ~anything that uses iris.save
do some refactoring

Consult Iris pull request check list

Replaced by #4301 (which is non-draft)


new environment and related code

Pull request information

Status: ? (ready to merge / in development)
Kind of changes: ? (bug fix / new feature / documentation...)
Related PR or issue: ? (optional)

Description

? (general description)

index environment with related code.


prepare_receptor removes zinc (ZN) from the structure

prepare_receptor (from ADFRsuite_x86_64Darwin_1.0) removes zinc from the structure - please advise
$ ./ADFRsuite_x86_64Darwin_1.0/bin/prepare_receptor -r protein.pdb
'G ' apparently composed of not std residues. Deleting
$ grep " G " protein.pdb
HETATM 4160 ZN    ZN G   1     -10.017 -36.970 -30.036  1.00 29.52          ZN2+
HETATM 4161 ZN    ZN G   2      -9.524 -33.581 -30.517  1.00 28.82          ZN2+
$

Oh, it looks like it should be
prepare_receptor -r protein.pdb -U -U nphs_lps_waters

You can fork our GitHub repos, make changes on your public repo, and request that we pull your changes into our repos using the pull request button on the GitHub interface.


StartAsync can block

Information

OS: Windows
Version: 0.43.0
Terminal: Windows Terminal

Describe the bug
When starting a progress task with StartAsync, I would expect a new task to be created inside of StartAsync via TaskFactory.StartNew in order for it to be non-blocking when synchronous code is inside of the StartAsync action. Currently in the example, the 'otherTask' line is not hit until the progress is completed.
var progressTask = AnsiConsole.Progress()
    .StartAsync(async ctx =>
    {
        // Define tasks
        var task1 = ctx.AddTask("[green]Reticulating splines[/]");
        var task2 = ctx.AddTask("[green]Folding space[/]");

        while (!ctx.IsFinished)
        {
            // Simulate a synchronous operation like a database driver that may not have asynchronous I/O.
            Thread.Sleep(5000);

            // Increment
            task1.Increment(1.5);
            task2.Increment(0.5);
        }
    });

var otherTask = Task.StartNew(() => doStuff());

Task.WaitAll(progressTask, otherTask).

To Reproduce
Shown Above. Workarounds are wraping AnsiConsole.Progress in a TaskFactory.StartNew or have await Task.Yield() inside of the action of StartAsync.
Expected behavior
StartAsync would be non-blocking even if there are blocking things inside of StartAsync's action.

If you run AnsiConsole.Progress().StartAsync() then action parameter should contain await operations to use async feature.
I think that using only sunchronous operations inside StartAsync require to use Task.Run and it's correct solution.
Your sample should look more like this:
var progressTask = AnsiConsole.Progress()
    .StartAsync( async ctx =>
    {
        var task1 = ctx.AddTask( "[green]Reticulating splines[/]" );
        while ( !ctx.IsFinished )
        {
            await Task.Delay( 1000 );
            task1.Increment( 50 );
            AnsiConsole.WriteLine( task1.Value );
        }
    } );
var otherTask = Task.Run( () => AnsiConsole.WriteLine( "Other stuff" ) );
await Task.WhenAll( progressTask, otherTask );
AnsiConsole.WriteLine( "Done" );

Then you will see in the output
Other stuff
50
100

Has @danielklecha's comment above fixed this issue for you @kuhnboy?


feat: add support for python 3.9

Coverage decreased (-0.2%) to 90.307% when pulling 30e29c3bd30b2773c0defe063344f2b3ddf891d7 on feat/py3.9 into 41aeab13b3c167c07ce485f7cd42c9e3779be076 on master.


fix DeprecationWarning: time.clock

fix DeprecationWarning: time.clock has been deprecated in Python 3.3 and will be removed from Python 3.8: use time.perf_counter or time.process_time instead
time.clock has been replaced with time.perf_counter in the code.

Duplicate of #638


Scala and Swift support nested comments

In both Scala and Swift modes:
/*
  /* this is a nested comment */
  this is commented in Github, but not CodeMirror
*/

Is there a bit to flip in these modes that's easy to turn on?

Is there a bit to flip in these modes that's easy to turn on?

No, you'd have to adjust their block-comment tokenizers to track comment depth.

I just verified that Scala and Swift indeed support nested block comments, curious. Are there any other languages (in CodeMirror) that do that?

Yup, at least one: https://github.com/codemirror/CodeMirror/issues/3878
On Thu, Dec 7, 2017 at 10:29 AM, Adrian Heine né Lang <
<EMAIL_ADDRESS>wrote:

I just verified that Scala and Swift indeed support nested block comments,
curious. Are there any other languages (in CodeMirror) that do that?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/codemirror/CodeMirror/issues/5096#issuecomment-350053946,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAlbyJClzlRi0zH7bdX9g-a9MxIWgkswks5s-C6AgaJpZM4QrQef
.

a7e29eee89aed63727e46d1e422cfa95b1200859 and ff21fec1 :)

Thanks so much, Adrian.


Add exceptions for UK bank holidays

The May Day and Spring Bank Holidays in the UK were moved in specific years:

May Day Bank Holiday was moved to 8 May to commemorate the 50th (1995) and 75th (2020) anniversary of VE Day.
Spring Bank Holiday was moved to 4 June for the celebration of the Golden (2002) and Diamond (2012) Jubilee of Queen Elizabeth II.

Source: https://en.wikipedia.org/wiki/Public_holidays_in_the_United_Kingdom#England,_Northern_Ireland_and_Wales

Thanks a lot for this! These additions are always welcome.


[Bug]: Selecting a tab reloads itself, after relaunch of obsidian app

Bug Description
Tabs from a previous Obsidian instance, after a close and relaunch of the application, will cause itself to reload when activated back from another tab in the same pane.
Screen-capture videos to help elucidate the issue:
1 On a fresh start of Obsidian, the open Surfing tabs from a previous instance will continue reloading themselves each time they are re-activated from another tab.

2 If new tabs are opened, they work fine. Until Obsidian is quit and relaunched. these will not reload continuously.
Imgur GIF (uploaded to imgur, as inserting them all into this ticket would have been chaos)
3 Can also copy/pasted the URLs of the "bad tabs" into new tabs, and these will no longer reload themselves. It does not matter if the bad tabs are closed or not.
Imgur GIF
4 Demonstrating that the issue persists even when Surfing is the only plugin enabled in all of Obsidian.
Imgur GIF
To Reproduce

Open a tab and go to a Todoist.com or Notion.so page or subpage.
Notice it works as intended, when you go to another tab in that same pane, and back, the page remains loaded.
Quit Obsidian application.
Launch Obsidian. Go to the Surfing tab of Todoist/Notion.
Go to the other tab open in that same pane, then go back to the tab of Todoist/Notion.
Notice that the tab reloads itself. Repeat step 5, the tab will reload again every time.
Copy the URL to that Todoist/Notion page. Close that tab.
In a new tab in that same pane (or any other pane) paste that URL and go to it.
Repeat steps 2-5. Notice the issue repeats.

Obsidian Version
1.1.9
web-browser-only

[X] Did you install only one web browser plugin?

Checklist

[X] I updated to the latest version of the plugin.

Will be fixed in next / next x2 version.

Will be fixed in next / next x2 version.

Wonderful. Can you speculate as to how far away that is?  I reload Obsidian often, so this is a pain point for me at the moment. Thanks

Fixed via #113

Much of that is in non-English so I cannot understand it. But it seems like progress so that is good.
If you would like a beta-tester for the newest version, I am happy to help. Let me know if you'd like me to test. Thanks


Elevation checking

Question, is there anyhow i can check whether UACme has successfully elevated or not ? like return code or something ? so far as i see, return code always returns 0 no matter if it fails or succeeds

Which one method?

Oh... For instance, Method 4, 46, don't seem to work anymore on Windows 7

architecture : AMD46,
( 64 bit )

Method 4 is only x86. After MS released Windows 7 SP1 rollup update sdbinst.exe updated it manifest and this method have been fixed completely.

Oh, well... thnk anyway, i can still use the others :P
But isn't there like a return code in %errorlevel% or something to check whehter things have been elevated successfully ?

Exe sets process exit code to result value. It is STATUS_SUCCESS on success (all preparations succeded and elevation requested, however elevation is not guaranteed) or any other value that mean error.

so methods 4 and 46 will return something isn't STATUS_SUCCESS ?
( Also, what is STATUS_SUCCESS you mean, an environment variables ? )

https://docs.microsoft.com/en-us/windows/desktop/api/processthreadsapi/nf-processthreadsapi-getexitcodeprocess


Typo fix apos

Remove superfluous apostrophe found in README!

Coverage remained the same at 100.0% when pulling<PHONE_NUMBER>d6b9d5103195b13b83242c9179c5f5 on typo-fix-apos into 460a3c2ff96674a7560cdbb57b3d0d461d5bd30e on main.


Feature/exceptions synch

Synchronize with develop branch so that this feature doesn't stray off the mergeable path :)

This broken (although it may not be), so I did a manual merge: 8f905e787f18749cfa6b2d079adff641a7a4f5c7

Thanks :)
As I said, I am trying to keep this somewhat in synch with the develop branch, to avoid merge conflict headaches once the feature unstalls.


Introduce script coding standards

Proposed coding standards for scripts.
This mostly documents established practice, and adds a few emergent but not necessarily consensual guidelines for Python code.
I haven't bothered writing coding standards for sh and Perl because we don't use them for new scripts.

LGTM


Invalid Kubernetes config

Running the example yields this error:
Error from server (Invalid): error when creating "/dev/fd/63": DaemonSet.extensions "cloudsqlproxy" is invalid: spec.template.spec.containers[0].ports[0].name: Invalid value: "sqlproxy-port-database1": must be no more than 15 characters
Error from server (Invalid): error when creating "/dev/fd/63": Service "sqlproxy-service-database1" is invalid: spec.ports[0].targetPort: Invalid value: "sqlproxy-port-database1": must be no more than 15 characters

I signed it!

Thanks for the pull request!


Crowdin Translation Download messes front matter

Have you read the Contributing Guidelines on issues?

[X] I have read the Contributing Guidelines on issues.

Prerequisites

[X] I'm using the latest version of Docusaurus.
[X] I have tried the npm run clear or yarn clear command.
[X] I have tried rm -rf node_modules yarn.lock package-lock.json and re-installing packages.
[ ] I have tried creating a repro with https://new.docusaurus.io.
[ ] I have read the console error message carefully (if applicable).

Description
I am currently integrating Crowdin translations into my project's docs.
After running the following:
yarn run write-translations
yarn run crowdin upload
yarn run crowdin download

The translated sidebar_labels have a different formatting than the original docs.
For example, we expect the markdown format to be:
---
sidebar_label : Aperçu
---

in the translated docs but instead we get:
- - -
sidebar_label : Aperçu
- - -

Which messes up the rendering as can be seen here:

Reproducible demo
No response
Steps to reproduce

Follow the guidelines here: https://docusaurus.io/docs/i18n/crowdin
After generating translations, the sidebar_label surrounding dashes add an extra space between them, messing up the rendering.

Self-service

[ ] I'd be willing to fix this bug myself.

I'm not sure of my answer, but already in the original version, you have to remove the space before : in the frontmatter
- sidebar_label : Overview
+ sidebar_label: Overview

In Crowdin, do the translation without putting the space before : :
sidebar_label: Aperçu

From my experience, I think this will solve the problem

This is definitely not a Docusaurus issue since we aren't involved in the workflow. Please contact Crowdin for support—I'm curious to hear their feedback as well.

There are many little annoying issues on Crowdin side that you should become used to. Sometimes a translator add a bad <xyz> somewhere. Sometimes they have markdown parser issues. Sometimes weird things happens and you can often fix them by deleting (or temporary renaming) and then reuploading the problematic file.
Agree it's out of the Docusaurus scope, unfortunately, we can't improve this external SaaS

@Josh-Cena @slorber I was able to fix the issue with a script:
#!/bin/bash
cd i18n
find . -type f -name "*.md" -exec sed -i 's/- - -/---/g' {} +
find . -type f -name "*.mdx" -exec sed -i 's/- - -/---/g' {} +

And then call this script after you run yarn crowdin:sync and before you call the yarn build command. Resolved the issue.


esp-idf : ESP32_S3 nimble bleprph immediately disconnecting on windows after pairing, reason=531 (IDFGH-9270)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

General issue report
esp-idf version : release/V4.4  ( using esp-adf also so we can't jump to release V5.0)
hardware: ESP32-S3-WROOM-1
ISSUE:
Running the nimble bleperiph example, the BLE immediately disconnects on windows 11 after pairing, reason=531.
Steps to repeat the issue:
Run nimble's bleprph example on an ESP32-S3
Using a windows device with a BLE5.0 compatible hardware , add the ble device, it will pair, connect for 5 seconds then immediately disconnects with reason = 531.
the logs are below:
(460) NimBLE: GAP procedure initiated: advertise;
I (470) NimBLE: disc_mode=2
I (470) NimBLE:  adv_channel_map=0 own_addr_type=0 adv_filter_policy=0 adv_itvl_min=0 adv_itvl_max=0
I (480) NimBLE:
I (490) uart: queue free spaces: 8
I (14790) NimBLE: connection established; status=0
I (14790) NimBLE: handle=1 our_ota_addr_type=0 our_ota_addr=
I (14790) NimBLE: 7c:df:a1:e4:b0:fa
I (14790) NimBLE:  our_id_addr_type=0 our_id_addr=
I (14800) NimBLE: 7c:df:a1:e4:b0:fa
I (14800) NimBLE:  peer_ota_addr_type=0 peer_ota_addr=
I (14810) NimBLE: c8:b2:9b:f4:fe:b0
I (14810) NimBLE:  peer_id_addr_type=0 peer_id_addr=
I (14820) NimBLE: c8:b2:9b:f4:fe:b0
I (14820) NimBLE:  conn_itvl=48 conn_latency=0 supervision_timeout=960 encrypted=0 authenticated=0 bonded=0
I (14830) NimBLE:
I (14840) NimBLE: mtu update event; conn_handle=1 cid=4 mtu=256
I (15530) NimBLE: encryption change event; status=0
I (15530) NimBLE: handle=1 our_ota_addr_type=0 our_ota_addr=
I (15530) NimBLE: 7c:df:a1:e4:b0:fa
I (15530) NimBLE:  our_id_addr_type=0 our_id_addr=
I (15540) NimBLE: 7c:df:a1:e4:b0:fa
I (15540) NimBLE:  peer_ota_addr_type=0 peer_ota_addr=
I (15550) NimBLE: c8:b2:9b:f4:fe:b0
I (15550) NimBLE:  peer_id_addr_type=0 peer_id_addr=
I (15560) NimBLE: c8:b2:9b:f4:fe:b0
I (15560) NimBLE:  conn_itvl=48 conn_latency=0 supervision_timeout=960 encrypted=1 authenticated=0 bonded=1
I (15570) NimBLE:
I (15710) NimBLE: subscribe event; conn_handle=1 attr_handle=8 reason=1 prevn=0 curn=0 previ=0 curi=1
I (16370) NimBLE: connection updated; status=0
I (16370) NimBLE: handle=1 our_ota_addr_type=0 our_ota_addr=
I (16370) NimBLE: 7c:df:a1:e4:b0:fa
I (16370) NimBLE:  our_id_addr_type=0 our_id_addr=
I (16380) NimBLE: 7c:df:a1:e4:b0:fa
I (16380) NimBLE:  peer_ota_addr_type=0 peer_ota_addr=
I (16390) NimBLE: c8:b2:9b:f4:fe:b0
I (16390) NimBLE:  peer_id_addr_type=0 peer_id_addr=
I (16400) NimBLE: c8:b2:9b:f4:fe:b0
I (16400) NimBLE:  conn_itvl=12 conn_latency=0 supervision_timeout=960 encrypted=1 authenticated=0 bonded=1
I (16410) NimBLE:
I (18350) NimBLE: connection updated; status=0
I (18350) NimBLE: handle=1 our_ota_addr_type=0 our_ota_addr=
I (18350) NimBLE: 7c:df:a1:e4:b0:fa
I (18350) NimBLE:  our_id_addr_type=0 our_id_addr=
I (18360) NimBLE: 7c:df:a1:e4:b0:fa
I (18360) NimBLE:  peer_ota_addr_type=0 peer_ota_addr=
I (18370) NimBLE: c8:b2:9b:f4:fe:b0
I (18370) NimBLE:  peer_id_addr_type=0 peer_id_addr=
I (18380) NimBLE: c8:b2:9b:f4:fe:b0
I (18380) NimBLE:  conn_itvl=48 conn_latency=0 supervision_timeout=960 encrypted=1 authenticated=0 bonded=1
I (18390) NimBLE:
I (19730) NimBLE: subscribe event; conn_handle=1 attr_handle=8 reason=2 prevn=0 curn=0 previ=1 curi=0
I (19730) NimBLE: disconnect; reason=531
I (19730) NimBLE: handle=1 our_ota_addr_type=0 our_ota_addr=
I (19740) NimBLE: 7c:df:a1:e4:b0:fa
I (19740) NimBLE:  our_id_addr_type=0 our_id_addr=
I (19750) NimBLE: 7c:df:a1:e4:b0:fa
I (19750) NimBLE:  peer_ota_addr_type=0 peer_ota_addr=
I (19760) NimBLE: c8:b2:9b:f4:fe:b0
I (19760) NimBLE:  peer_id_addr_type=0 peer_id_addr=
I (19770) NimBLE: c8:b2:9b:f4:fe:b0
I (19770) NimBLE:  conn_itvl=48 conn_latency=0 supervision_timeout=960 encrypted=1 authenticated=0 bonded=1
I (19780) NimBLE:
I (19790) NimBLE: GAP procedure initiated: advertise;
I (19790) NimBLE: disc_mode=2
I (19790) NimBLE:  adv_channel_map=0 own_addr_type=0 adv_filter_policy=0 adv_itvl_min=0 adv_itvl_max=0

Hi @JADELITANI ,
I tried reproducing this issue locally, but code is working properly. Can you share debug logs and application's sdkconfig here for us to debug the issue?
Thank You.

Hi @IshaESP
Thank you for your reply.
I used the bleprph example as is.
Attached is the sdkconfig file you requested and Below are the logs:
I (102597) NimBLE: connection established; status=0
I (102607) NimBLE: handle=1 our_ota_addr_type=0 our_ota_addr=
I (102607) NimBLE: 7c:df:a1:e5:78:72
I (102607) NimBLE:  our_id_addr_type=0 our_id_addr=
I (102617) NimBLE: 7c:df:a1:e5:78:72
I (102617) NimBLE:  peer_ota_addr_type=0 peer_ota_addr=
I (102627) NimBLE: c8:b2:9b:f4:fe:b0
I (102627) NimBLE:  peer_id_addr_type=0 peer_id_addr=
I (102637) NimBLE: c8:b2:9b:f4:fe:b0
I (102637) NimBLE:  conn_itvl=48 conn_latency=0 supervision_timeout=960 encrypted=0 authenticated=0 bonded=0
I (102647) NimBLE:
I (103007) NimBLE: mtu update event; conn_handle=1 cid=4 mtu=256
I (103187) NimBLE: encryption change event; status=1288
I (103187) NimBLE: handle=1 our_ota_addr_type=0 our_ota_addr=
I (103187) NimBLE: 7c:df:a1:e5:78:72
I (103187) NimBLE:  our_id_addr_type=0 our_id_addr=
I (103197) NimBLE: 7c:df:a1:e5:78:72
I (103197) NimBLE:  peer_ota_addr_type=0 peer_ota_addr=
I (103207) NimBLE: c8:b2:9b:f4:fe:b0
I (103207) NimBLE:  peer_id_addr_type=0 peer_id_addr=
I (103217) NimBLE: c8:b2:9b:f4:fe:b0
I (103217) NimBLE:  conn_itvl=48 conn_latency=0 supervision_timeout=960 encrypted=0 authenticated=0 bonded=0
I (103237) NimBLE:
I (103307) NimBLE: disconnect; reason=531
I (103307) NimBLE: handle=1 our_ota_addr_type=0 our_ota_addr=
I (103307) NimBLE: 7c:df:a1:e5:78:72
I (103307) NimBLE:  our_id_addr_type=0 our_id_addr=
I (103317) NimBLE: 7c:df:a1:e5:78:72
I (103317) NimBLE:  peer_ota_addr_type=0 peer_ota_addr=
I (103327) NimBLE: c8:b2:9b:f4:fe:b0
I (103327) NimBLE:  peer_id_addr_type=0 peer_id_addr=
I (103337) NimBLE: c8:b2:9b:f4:fe:b0
I (103337) NimBLE:  conn_itvl=48 conn_latency=0 supervision_timeout=960 encrypted=0 authenticated=0 bonded=0
I (103347) NimBLE:
I (103357) NimBLE: GAP procedure initiated: advertise;
I (103357) NimBLE: disc_mode=2
I (103367) NimBLE:  adv_channel_map=0 own_addr_type=0 adv_filter_policy=0 adv_itvl_min=0 adv_itvl_max=0
I (103377) NimBLE:
I (104547) NimBLE: connection established; status=0
I (104547) NimBLE: handle=1 our_ota_addr_type=0 our_ota_addr=
I (104547) NimBLE: 7c:df:a1:e5:78:72
I (104547) NimBLE:  our_id_addr_type=0 our_id_addr=
I (104557) NimBLE: 7c:df:a1:e5:78:72
I (104557) NimBLE:  peer_ota_addr_type=0 peer_ota_addr=
I (104567) NimBLE: c8:b2:9b:f4:fe:b0
I (104567) NimBLE:  peer_id_addr_type=0 peer_id_addr=
I (104577) NimBLE: c8:b2:9b:f4:fe:b0
I (104577) NimBLE:  conn_itvl=48 conn_latency=0 supervision_timeout=960 encrypted=0 authenticated=0 bonded=0
I (104587) NimBLE:
I (104597) NimBLE: mtu update event; conn_handle=1 cid=4 mtu=256
I (105287) NimBLE: subscribe event; conn_handle=1 attr_handle=8 reason=1 prevn=0 curn=0 previ=0 curi=1
I (105947) NimBLE: connection updated; status=0
I (105947) NimBLE: handle=1 our_ota_addr_type=0 our_ota_addr=
I (105947) NimBLE: 7c:df:a1:e5:78:72
I (105947) NimBLE:  our_id_addr_type=0 our_id_addr=
I (105957) NimBLE: 7c:df:a1:e5:78:72
I (105957) NimBLE:  peer_ota_addr_type=0 peer_ota_addr=
I (105967) NimBLE: c8:b2:9b:f4:fe:b0
I (105967) NimBLE:  peer_id_addr_type=0 peer_id_addr=
I (105977) NimBLE: c8:b2:9b:f4:fe:b0
I (105977) NimBLE:  conn_itvl=12 conn_latency=0 supervision_timeout=960 encrypted=0 authenticated=0 bonded=0
I (105987) NimBLE:
I (107927) NimBLE: connection updated; status=0
I (107927) NimBLE: handle=1 our_ota_addr_type=0 our_ota_addr=
I (107927) NimBLE: 7c:df:a1:e5:78:72
I (107927) NimBLE:  our_id_addr_type=0 our_id_addr=
I (107937) NimBLE: 7c:df:a1:e5:78:72
I (107937) NimBLE:  peer_ota_addr_type=0 peer_ota_addr=
I (107947) NimBLE: c8:b2:9b:f4:fe:b0
I (107947) NimBLE:  peer_id_addr_type=0 peer_id_addr=
I (107957) NimBLE: c8:b2:9b:f4:fe:b0
I (107957) NimBLE:  conn_itvl=48 conn_latency=0 supervision_timeout=960 encrypted=0 authenticated=0 bonded=0
I (107967) NimBLE:
I (109307) NimBLE: subscribe event; conn_handle=1 attr_handle=8 reason=2 prevn=0 curn=0 previ=1 curi=0
I (109307) NimBLE: disconnect; reason=531
I (109307) NimBLE: handle=1 our_ota_addr_type=0 our_ota_addr=
I (109317) NimBLE: 7c:df:a1:e5:78:72
I (109317) NimBLE:  our_id_addr_type=0 our_id_addr=
I (109327) NimBLE: 7c:df:a1:e5:78:72
I (109327) NimBLE:  peer_ota_addr_type=0 peer_ota_addr=
I (109337) NimBLE: c8:b2:9b:f4:fe:b0
I (109337) NimBLE:  peer_id_addr_type=0 peer_id_addr=
I (109347) NimBLE: c8:b2:9b:f4:fe:b0
I (109347) NimBLE:  conn_itvl=48 conn_latency=0 supervision_timeout=960 encrypted=0 authenticated=0 bonded=0
I (109357) NimBLE:
I (109367) NimBLE: GAP procedure initiated: advertise;
I (109367) NimBLE: disc_mode=2
I (109377) NimBLE:  adv_channel_map=0 own_addr_type=0 adv_filter_policy=0 adv_itvl_min=0 adv_itvl_max=0
I (109387) NimBLE:
sdkconfig.zip

Hi @JADELITANI ,
You can switch the debug logs on with the help of following steps:

idf.py menuconfig
Component config  → Bluetooth → NimBLE Options → NimBLE Host log verbosity → Debug logs
Component config → Log output → Default log verbosity → Debug

Can you try using this sdkconfig :
sdkconfig.zip
Thank you!

Hi @IshaESP
I tried your sdkconfig and it is still not working.
Here are the logs with the debug active
ble_logs.txt

Hi @JADELITANI ,
Can you get OTA logs ?
Is this issue seen with only one device or across all devices ?

It is happening on my windows 11 device.
On my Android phone and Iphone it is not happening.
It is a windows related issue for sure. But I can't seem to find the solution.
Regarding Ellisys OTA logs can you guide me on how to get them ?

Observation from the logs shared :

In the debug logs shared previously, we can see that disconnect event is being received by esp32s3.

After connection update, as seen in logs:

Success case:   conn_itvl=12 conn_latency=0 supervision_timeout=960 encrypted=0 authenticated=0 bonded=0
failure case:  conn_itvl=48 conn_latency=0 supervision_timeout=960 encrypted=0 authenticated=0 bonded=0

Subscription is also failing with reason = 2 because link is getting disconnected while subscription is happening causing it to fail.

So we wanted Over The Air(OTA) logs to check what remote(Windows 11 phone) is doing. As confirmed by you, issue is not seen on android phones, so this looks to be tied up with particular remote device.  I do not have a windows phone handy , but will try to get one and then can try.

Hi IshaESP
Just to be clear the issue I'm facing is with a windows 11 laptop , with BLE 5.2 capable hardware.
Thank you

Hi
Thanks for clarifying this. But we will still need Over The Air(OTA) logs to debug this issue.

Hello Again,
Sorry for the delay but I got caught up in other work.
Update: I moved to esp-idf release/V5.0 and I tested the nimBLe periph example on my windows 11 laptop and the issue is still there.
However I was able to get logs using windows Bluetooth virtual sniffer and Wireshark.
Attached you can find the logs. I hope this can help pinpoint the issue.
Thank you
wireshark_events_ble_periph_example.txt

Hi @JADELITANI ,
Looking from the wireshark logs, host is sending a disconnect after receiving LE Connection Update Complete event from controller. To verify if the controller is sending an error in event or host is sending terminate due to different reason. Can you please apply this patch on nimble and give us the logs.
To apply patch:

cd components/bt/host/nimble/nimble
git apply nimble.patch

nimble.zip

Hello @IshaESP
Here you go , I had to change the patch to be able to build. I changed ESP_LOGI( INFO .. to ESP_LOGI("BLE GAP INFO".. and ESP_LOGI("BLE HS HCI EVT INFO" , ... for some reason INFO was not defined.
Waiting for your reply
wireshark_ble_periph_test_24_7_23.txt
esp_ble_periph_logs_24_7_23.txt

Hello @IshaESP
Do you have any updates , we are still having the same problem.
Waiting for your reply

Hi @JADELITANI ,
The issue here is that the disconnect is initiated from windows side. However, OTA log doesn't show anything where a response from nimble should result in this behaviour. All SMP / ATT requests from windows are responded as expected. Just before link termination, windows initiates LLCP updation, and that too is happening correctly when confirmed via the counters and Empty packets
So, since windows internal working is not known, it is taking time to understand and figure out what is going wrong. The same code works ok with other devices does imply that we adhere to BLE standards.  I have a wild guess that may be windows is expecting some GATT service, which nimble is not exhibiting, leading to disconnect from windows side. But this is just a guess. Will try few more things to check more on this.
OTA for reference.
windows_nimble_bleprph_2_good.zip

esp-idf version : release/V4.4
hardware: ESP32-S3-WROOM-1
Hello,
I had been facing the same issue with nimble BLE connection with Windows. After a lot of experimenting, I managed to get a stable connection with Windows using nimble. These are the steps that I took in debugging the problem:

Looked for any Bluetooth example in ESP-IDF connected successfully to Windows. I found one example that worked: ble_hid_device_demo
After a bit of experimentation, I found that the services and characteristics that were needed to get the connection to work were HID Service (Characteristics: Report, Report Map, HID Information, HID Control Point), Battery Service (Characteristic: Battery Value), and Device Information Service.
This finding was confirmed after some investigation into windows documentation (here) and a nice reference that summarizes these requirements (here - see Table 3.1, 2.1).
Accordingly, I implemented these services and characteristics in nimble, utilizing the UUIDs that I got from here.
After implementing these services in nimble, I was able to connect successfully to the esp32-s3 without any disconnection.

With all that said, the connection is not yet perfect as I still have the following two issues:

I am unable to disconnect from the device once a connection has been made. I suspect I need to add a characteristic or service to enable this behavior, but I am not sure which to add. For reference, see the photos below:
These are the connection options that I get for my esp32:

And this is what I expect to get for my connection:

Since the device is paired, windows attempts to connect to the device once it has been detected via Bluetooth. However, I get stuck in a connect-disconnect loop where windows attempts to connect to the esp but then fails and disconnects. I get the following logs:
I (6122) NimBLE: PHY updated rx 1, tx 1
I (6367) NimBLE: disconnect; reason=531

Can you please help me resolve these last two problems?
Thank you

Have the same issue with ESP32 C3, host disconnects with 531 reason.
esp-idf: v5.1
windows 11

Seeing similar with esp32-s3, esp-idf 5.1, and lightblue on ios, this is using the bleprph example almost verbatim.
I (670) BLE_INIT: BT controller compile version [963cad4]
I (670) BLE_INIT: Bluetooth MAC: 7c:df:a1:e0:e9:be

I (680) ble: BLE Host Task Started
I (680) NimBLE: GAP procedure initiated: stop advertising.

I (680) NimBLE: Device Address:
I (680) NimBLE: 7c:df:a1:e0:e9:be
I (680) NimBLE:

I (680) NimBLE: GAP procedure initiated: advertise;
I (680) NimBLE: disc_mode=2
I (680) NimBLE:  adv_channel_map=0 own_addr_type=0 adv_filter_policy=0 adv_itvl_min=0 adv_itvl_max=0
I (680) NimBLE:

I (680) uart: queue free spaces: 8
I (690) main_task: Returned from app_main()
esp> I (26130) NimBLE: connection established; status=0
I (26130) NimBLE: handle=1 our_ota_addr_type=0 our_ota_addr=
I (26130) NimBLE: 7c:df:a1:e0:e9:be
I (26130) NimBLE:  our_id_addr_type=0 our_id_addr=
I (26130) NimBLE: 7c:df:a1:e0:e9:be
I (26130) NimBLE:  peer_ota_addr_type=1 peer_ota_addr=
I (26130) NimBLE: 7d:4c:e3:5e:5d:26
I (26130) NimBLE:  peer_id_addr_type=1 peer_id_addr=
I (26130) NimBLE: 7d:4c:e3:5e:5d:26
I (26130) NimBLE:  conn_itvl=24 conn_latency=0 supervision_timeout=72 encrypted=0 authenticated=0 bonded=0

I (26130) NimBLE:

I (26590) NimBLE: mtu update event; conn_handle=1 cid=4 mtu=256

I (26890) NimBLE: subscribe event; conn_handle=1 attr_handle=8 reason=1 prevn=0 curn=0 previ=0 curi=1

I (41020) NimBLE: subscribe event; conn_handle=1 attr_handle=8 reason=2 prevn=0 curn=0 previ=1 curi=0

I (41020) NimBLE: disconnect; reason=531
I (41020) NimBLE: handle=1 our_ota_addr_type=0 our_ota_addr=
I (41020) NimBLE: 7c:df:a1:e0:e9:be
I (41020) NimBLE:  our_id_addr_type=0 our_id_addr=
I (41020) NimBLE: 7c:df:a1:e0:e9:be
I (41020) NimBLE:  peer_ota_addr_type=1 peer_ota_addr=
I (41020) NimBLE: 7d:4c:e3:5e:5d:26
I (41030) NimBLE:  peer_id_addr_type=1 peer_id_addr=
I (41030) NimBLE: 7d:4c:e3:5e:5d:26
I (41030) NimBLE:  conn_itvl=24 conn_latency=0 supervision_timeout=72 encrypted=0 authenticated=0 bonded=0

I (41030) NimBLE:

I (41030) NimBLE: GAP procedure initiated: advertise;
I (41030) NimBLE: disc_mode=2
I (41030) NimBLE:  adv_channel_map=0 own_addr_type=0 adv_filter_policy=0 adv_itvl_min=0 adv_itvl_max=0
I (41030) NimBLE:

Hey, i found the CONFIG_BT_NIMBLE_NVS_PERSIST config, it will enables saving keys after device restart. After i was enable it, reconnection started work on windows.
I'm using esp-idf 5.3.1 now.


DefaultPromptAbbreviateHomeDirectory Not working

System Details

posh-git version/path: 1.0.0 beta4 ~\Documents\PowerShell\Modules\posh-git\1.0.0
PowerShell version: 7.0.1
git version 2.27.0.windows.1
OS: Microsoft Windows NT 10.0.18363.0

Issue Description
The prompt is not abbreviated, full path name is shown regardless of DefaultPromptAbbreviateHomeDirectory setting and regardless if set in profile or not.
This is the most recent installation (of all programs/modules) on fresh windows, I never had this problem before with git prompt.

EDIT:
Ah silly me! please forgive me, I didn't notice my github folder somehow ended up outside of home directory.
It works just fine!


Infinite loading animation on modal

When I open the modal to check a track's availability, I don't ever get any results to load.  I only see the song info, search bar, and loading circle.

Not sure what I did but it fixed itself...

Did you check the Queue blocking setting in the bottom panel? I think it's still enabled b


Request configuration headers from encoder

Requests configuration NALs from encoder instead of parsing the bitstream.
Tested on Windows with all configurations. Needs testing on Linux.

Okay, I guess this one is on hold until there's a ready solution for Linux or another workaround to extract and keep the headers.

for the macos CI fail just add a blank method there like all the other stuff in the header


Adding ability to use google reCaptcha V2

The captcha is beeing shown only when:

the user is not logged in AND
the option to use it is set on.

redid PR

We're sorry but you need to resolve conflict before continue the review process :/

Since we had no news from you for more than 30 days, I'll close this pull request. Feel free to reopen or open another one if you think it's still relevant.
Thanks!


Change Highlight.js CDN

This commit results from the following topic on Discourse:
Can we remove yandex?
I finally opted for the CDN of unpkg.com. This CDN has an excellent reputation and it is more and more used.

I tried building the site and it loads much faster with those changes. Thanks!
I did not check if the syntax highlighting was working correctly, because I couldn't find any that was highlighted on the existing website. Looks like most code is presented without highlighting. E.g. https://hipparchus.org/hipparchus-core/analysis.html


Fix testing for Linear Search in Every Language

Thanks for helping us build up our knowledge base!
What kind of pull request have you brought us today?
Pull Request Type

[x] Sample Program Documentation
[ ] Language Documentation
[ ] Project Documentation
[ ] Other (explain below)

Notes
fixes #505

This need to be fixed in the code and tests, not here


wireguard: Fix traffic counters in cilium debuginfo

Wireguard keeps track of the traffic sent and receive for each peer. We
print this information in cilium debuginfo. Because the agent failed
to populate them the JSON response, the counters were always wrongly
reported as zero.

test-me-please

GH actions seems stuck on the non-required performance tests. Marking this as ready to merge, as all required tests have passed.


Reset view after an offer has been created

Addresses #495

Looks good now. I would approve when the build is fixed 👍🏼

 Provide functionality to remove selected items from the offer


long time to calculate class A networks

subj

looks like ipaddress library takes a long time to calculate

@drunk3nme try new main version please

All good, Thank you


richgo: 0.3.3 -> 0.3.6

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/kyoh86/richgo/releases.
meta.description for richgo is: "Enrich go test outputs with text decorations"
meta.homepage for richgo is: "https://github.com/kyoh86/richgo"
meta.changelog for richgo is: ""
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 0.3.6 with grep in /nix/store/ffd3mnyc4458rgbdv3bwwckcb73mj6wg-richgo-0.3.6

directory tree listing: https://gist.github.com/3088144d3ee6a6c3157fe486ef19cb5a

du listing: https://gist.github.com/14db2009fb68ff1dc9965f663c414c21

Rebuild report (if merged into master) (click to expand)

4 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
1 i686-linux rebuild(s)
1 x86_64-darwin rebuild(s)
1 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
richgo

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/ffd3mnyc4458rgbdv3bwwckcb73mj6wg-richgo-0.3.6 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A richgo https://github.com/r-ryantm/nixpkgs/archive/7b0ab727ed33abfc489bade6889272808451dc2f.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/ffd3mnyc4458rgbdv3bwwckcb73mj6wg-richgo-0.3.6
ls -la /nix/store/ffd3mnyc4458rgbdv3bwwckcb73mj6wg-richgo-0.3.6/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

richgo

Maintainer pings
cc @rvolosatovs @kalbasit for testing.

Result of nixpkgs-review pr 111825 run on x86_64-darwin 1

1 package built:

richgo


[] of Int32 should have been expanded (Exception)

I am getting:
BUG: [] of Int32 at ... should have been expanded (Exception)
...
Error: you've found a bug in the Crystal compiler.
from this code:
List.find {|i| i > 0}
exit
List = [] of Int32

$ crystal -v
Crystal 1.0.0 (2021-03-22)

LLVM: 9.0.1
Default target: x86_64-apple-macosx

Duplicate of #5636.


DuckDNS IP never updated

v 1.10 installed using hassio
Hello,
Is it normal that my dynamic IP is never updated to DuckDNS?
Even if I restart the addon my IP is not updated
In logs I only see this lines (I think warnings correspond on the time that internet connection is down)
[10:10:59] INFO:
[10:16:00] INFO:
[10:21:01] INFO:
[10:26:03] INFO:
[10:31:04] INFO:
[10:36:05] INFO:
[10:41:10] WARNING:
[10:46:16] WARNING:
[10:51:21] WARNING:
[10:56:26] WARNING:
[11:01:28] INFO:
[11:06:29] INFO:
[11:11:30] INFO:
[11:16:31] INFO:
[11:21:32] INFO:
[11:26:34] INFO:

Why closing? If I need to provide additional info please tell me


A question about TV mode

Does the theme also support TV mode?

It should? I believe I tested it by simply turning it on my browser but I don't have a TV that uses it but give it a go and see how you manage and let me know if there's anything out the ordinary.

But in the Jellyfin settings there is also an option in profile that can be set to TV mode so that it can be modified, however I have tested it and it is like the original, since it has other settings.

But in the Jellyfin settings there is also an option in profile that can be set to TV mode so that it can be modified, however I have tested it and it is like the original, since it has other settings.

Yes - that's what I tested with. The theme applies to that display mode.


How to request ssl use the default trust store, rather than specify the CA?

Sorry if this documented, I haven't been able to find an answer.
Right now, the docs specify that the minimum required to use an SSL/TLS connection while validating the server's certificate is:
var connection = mysql.createConnection({
  host : 'localhost',
  ssl  : {
    ca : fs.readFileSync(__dirname + '/mysql-ca.crt')
  }
});

However, I believe that if the server's certs are signed by a CA that is also in the systems trust store, supplying the CA should not be necessary. See https://github.com/nodejs/node/issues/4175#issuecomment-243715727
Is there a way to be lazy and not re-specify the CA? Something like:
var connection = mysql.createConnection({
  host : 'localhost',
  ssl  : {}
});

... would be ideal.

It's not documented well, but it is the last example in the section https://github.com/mysqljs/mysql/blob/master/Readme.md#ssl-options

Hi @dougwilson thanks for your response. I'm not sure I understand. Are you suggesting I specify rejectUnauthorized: true?

Hi @menicosia I'm not sure what you mean. The last example has rejectUnauthorized: false. Are you seeing something different?

Here is the example I am referring to:
var connection = mysql.createConnection({
  host : 'localhost',
  ssl  : {
    rejectUnauthorized: false
  }
});

Oh, I just realized what that means. The double-negative is really throwing me off. Yea, I believe you can use an empty object like your OP: ssl: {} to just use the Node.js CA logic. Does that not work?

Afraid not. Neither ssl: {} nor ssl: {rejectUnauthorized: true} work. I delayed responding till I made sure I was using a recent version - I'm testing on node 8.6.0.

Interesting. In the meantime I tested against Azure which uses certs that are part of Node.js (they use public domain certs) and using {} worked fine. If you can hrlp me replicate the issue I can debug through where the issue is, or if you can PR a fix. If you want me to take a look, I'll need the following:

Version of this module
Version of MySQL server
Complete code you are trying to use
Complete instructions for how you have setup the SSL on the server (or a way for me to connect to a server you have setup).

Thanks!

For the error (which wasn't in the original email) the HANDSHAKE_SSL_ERROR is just the code. If you can provide the message property and stack trace that may help shed light on this as well.

I will also check on 8.6.0 as well, since I tested on 6.11.4 while you gater the additional information.

@dougwilson thank you much for being super responsive and testing against a known implementation like Azure.
This leads me to worry that perhaps the CA certs that are expected to be in my trust store... are not actually in my trust store. (My project is a PaaS that is supposed to take care of automate distribution of certs, Cloud Foundry.)
Please put this bug on hold while I escalate internally.

Also, I'm not sure if you know (but I just realized from your notes) that if the CA you need is not part of the static set built into Node.js directly, then unless you have manually compiled Node.js yourself with the compile time flag to have it use the OpenSSL system store, your CA is probably not visible to Node.js (if you are getting a bin built by a distro they may have it setup for you). There is also the environment variable NODE_EXTRA_CA_CERTS will look at to load in extra CAs as well.
If you suspect it is a CA issue, there is probably some Node.js API to get the list of all CAs your Node.js knows about and you can verify if it is indeed in the list or not.

Thanks, I've added this to our issue #152172167. I'll check back!

Awesome :) I'm happy to help figure out what the caude is if needed. I'll likely follow this up to allow just "ssl: true" as a shortcut as well.

Hi @KuSh I went to add ssl: true support, and come to my surprise: it does work! Unfortunately it does not work the same as ssl: {}, in that rejectUnauthorized defaults to false instead of true... since there are things documenting that it does indeed work, it is unlikely I can fix it without a major release, as it would break a lot of folks, as internal MySQL instances are very likely use to use certs from the public PKI.

I'm going to close this as the original OP has the answer from so long ago for how to use the default Node.js store.


Nuxt Bridge support added

Nuxt Bridge Support Added with Nuxt 2
Updated dependency to latest compatiable versions

Fixed #94


Explore vTPM and how we can use it with remote attestations

@danko-miladinovic is working on this.
It is important to figure out:

How our Agent needs to be changed to fetch the attestation from GCP and Azure
How our CLI needs to be changed in order to verify the attestation


I can’t reproduce the performance of PN

I can’t reproduce the performance of PN. In your readme，the accuracy of PN can reach  61.09. However only 59.26 on test set I I can reproduce while  62.31 on val set. I train it on 3090*2 and use the same config  as set_config_PN.py. Are there any detiles I haven't noticed?

I will run the code to see if there exists a problem. Please wait.

I have checked and ensured that the accuracy can be achieved.  One thing to notice is that there is only one trained 5-shot model, testing for both 1-shot and 5-shot settings. Did you run a new 1-shot model for 1-shot testing? This will likely harm the performance. And make sure you are using the best model checkpoint with the highest validation accuracy, instead of the last one.

The optimal choice of the total training batch size is 2.

I have checked and ensured that the accuracy can be achieved. One thing to notice is that there is only one trained 5-shot model, testing for both 1-shot and 5-shot settings. Did you run a new 1-shot model for 1-shot testing? This will likely harm the performance. And make sure you are using the best model checkpoint with the highest validation accuracy, instead of the last one.

I did trained the 1-shot code for 1-shot training. I will try a 5-shot training. Thank you!


Population

Here I added a population slider, hover labels, and turned off the @media settings in the CSS stylesheet.

looks great! merging!


Edge filtered by edges numbers/percentage presented

Now, the edges are filtered by weight value directly, which is not that intuitive. Instead, it would be nice to allow users to indicate the desired number/percentage of edges to be shown in the graph.

One more todo: check the mechanism of recomputing edges and nodes. Used to be like computing when the corresponding DFs are empty, but since we have the edge filter added (may also want the node filter in the future?), it might be nice to look back to improve that.

A new solution: Remove the slider of the miner, but adding a midware of row selector to allow user to freely select the rows by adding rules (e.g. weight greater than). Meanwhile, add output edge table to statistic view widget, so that users can clearly see the distributions there.


Expose offset retention time in the Consumer API

This change implements a version of the enhancement described in https://github.com/zendesk/ruby-kafka/issues/233.
Our use case for this is a very low throughput topic where some partitions do not receive new messages within the broker's retention period setting (1 day). Previously committed offsets would be purged and the next day the partition would be read from the beginning again.
Exposing this setting to the consumer provides more flexibility than changing the broker's setting for all consumers.

:heart:


Error using fragments when paging (after parent query changes).

I have a parent container List that renders a list of child container Items. I also have pagination working (i.e., a fetchMore property that implements an updateQuery function).
However, if I change the value of one of the query variables (e.g., a "text" filter) then paging causes an error (the Item fragment is included twice as below).
From my experience with Relay, the parent query variables should be used to parameterize the fragment, but I don't know if that's relevant here, or possible (e.g., ${Item.getFragment('item', { filter: variables.filter })})
ApolloError: "GraphQL error: There can only be one fragment named "ItemFragment".

query GetItems($text: String, $offset: Int, $count: Int) {
  items(text: $text, offset: $offset, count: $count) {
    id
    ...ItemFragment
    __typename
  }
}

fragment ItemFragment on Item {
  id
  title
  __typename
}

fragment ItemFragment on Item { // Only happens when $text is changed.
  id
  title
  __typename
}

Unrelated, but one disadvantage of the convention to put fragments as static members of the component is you can't reference these from static propTypes {} member functions.

Unrelated, but one disadvantage of the convention to put fragments as static members of the component is you can't reference these from static propTypes {} member functions.

Could you file this on react-apollo please?
The above looks like a bug, where we are accidentally appending the fragment twice.
Can you reproduce some of your code here? Where you are running the query and setting the variables, etc?

Thanks @stubailo:
Child Item
export const ItemFragments = {
  item: new Fragment(gql`
    fragment ItemFragment on Item {
      id
      title
    }
  `)
};

export class Item extends React.Component {
  static propTypes = {
    item: ItemFragments.item.propType
  };
  render() {
    let { item } = this.props;
    return (
      <div>{ this.props.title }</div>
    );
  }
}

Parent List:
const GetItemsQuery = gql`
  query GetItems($text: String, $offset: Int, $count: Int) {
    items(text: $text, offset: $offset, count: $count) {
      id
      ...ItemFragment
    }
  }
`;

  graphql(GetItemsQuery, {
    options: ({ text }) => {
      return {
        fragments: ItemFragments.item.fragments(), // WAS EXPECTING TO PASS IN text HERE.
        variables: {
          text: text,
          offset: 0,
          count: 10
        }
      };
    },

    props({ ownProps: { text }, data: { loading, items, fetchMore } }) {
      return {
        loading,
        text,
        items,
        fetchMoreItems() {
          return fetchMore({
            variables: {
              text: text,
              offset: items.length
            },
            updateQuery: (previousResult, { fetchMoreResult }) => {
              return _.assign({}, previousResult, {
                items: [...previousResult.items, ...fetchMoreResult.data.items]
              });
            }
          });
        }
      }
    }
  }),

Temporary workaround:
networkInterface.use([{
  applyMiddleware({ request }, next) {
    let definitions = {};
    request.query.definitions = _.filter(request.query.definitions, (definition) => {
      let name = definition.name.value;
      if (definitions[name]) {
        return false;
      } else {
        definitions[name] = true;
        return true;
      }
    });

    next();
  }
}]);

Great workaround.
If you could submit a failing test that would be super helpful as well: https://github.com/apollostack/apollo-client/blob/dc8cc0063d93a8c15a90771bc88183bc058b5e1b/test/fetchMore.ts

OK. I'll try to wrap my head around that and have a stab at it (might be closer to Monday though).
Thanks for the comments.

Yeah, we won't be able to get to a fix before Monday either. Thanks for the really detailed report!

I had the same issue. The workaround for me was to explicitly specify the same query and fragments in the call to fetchMore.

Looks like the fix would be in here: https://github.com/apollostack/apollo-client/blob/372bca9881b374caf56d0cbd0795a88dcc13ec0f/src/queries/getFromAST.ts#L150

@stubailo are you suggesting that we "fix" this by checking whether a fragment with the same name already exists on the query? The other fix would be not to attach it twice in the first place. I'm leaning towards a simple fix for now, because we'll soon want to refactor how we transform queries anyway.

@helfer see #906 for a (fairly) simple fix for this particular issue (which is not attaching it twice in the first place)
warnings about fragment name collisions are already being surfaced in  createFragment

Solved in #913


Google Consent Update not firing on 'Deny'

Hello, we are granting all consent options by default, but are giving users the option on our cookie banner to opt out. However, when I click on the "reject" button, no event fires and Google Consent is not updated.
Below is our current configuration:
{"ccpaAcknowledgeOnDisplay": true,   "ccpaAcknowledgeOnLoad": true,   "ccpaAppliesToEntireUSA": false,   "consentOnContinuedBrowsing": false,   "countryDetection": true,   "enableCcpa": true,   "lang": "en",   "siteId": 1234567,   "cookiePolicyId": 12345678,   "banner": {     "acceptButtonColor": "#FC5F41",     "acceptButtonDisplay": true,     "backgroundColor": "#303440",     "closeButtonDisplay": false,     "customizeButtonCaptionColor": "#FFFFFF",     "customizeButtonColor": "#303440",     "customizeButtonDisplay": true,     "logo": null,     "position": "bottom",     "rejectButtonColor": "#303440",     "rejectButtonDisplay": true,     "usesThirdParties": false,     "acceptButtonCaption": "I accept cookies",     "content": "We use cookies to give you the best experience possible. By continuing to use our website, you consent that you're onboard with our %{privacy_policy}.",     "rejectButtonCaption": "I do not accept"   } }
Any help is appreciated, thank you!

Hi,
thank you for reaching us. Could you please share with us a link to a demo and specific steps to reproduce the issue?
Should be said, our GTM template is currently working automatically only for tags that support built-in consent mode. For example Google analytics or Adsense.
For custom tags, it's needed to create a manual trigger, as explained in this guide: https://www.iubenda.com/en/help/1235-google-tag-manager-blocking-cookies
Please note that in this case you should create specific activators GTM side and update our cookie solution script with specific callbacks.
In this case you should add the cookie solution script directly in the HTML without adding it in the GTM template since currently it doesn't support the callbacks.
Anyway we inform you that we are working hard to improve this template and we will add more functionalities in the near future.
Thank you :)


chore: include projects in code coverage reports

Codecov Report

Merging #9 into master will increase coverage by 4.29%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master       #9      +/-   ##
==========================================
+ Coverage   84.05%   88.35%   +4.29%
==========================================
  Files           9       18       +9
  Lines          69      146      +77
  Branches        0       10      +10
==========================================
+ Hits           58      129      +71
- Misses         11       15       +4
- Partials        0        2       +2

Impacted Files
Coverage Δ

projects/http-retry/src/http-retry.interceptor.ts
90% <0%> (ø)

projects/ngx-let/src/public_api.ts
100% <0%> (ø)

projects/http-retry/src/public_api.ts
100% <0%> (ø)

projects/http-retry/src/http-retry.helpers.ts
94.73% <0%> (ø)

projects/http-retry/src/http-retry.di-tokens.ts
100% <0%> (ø)

projects/ngx-let/src/ngx-let.directive.ts
100% <0%> (ø)

projects/http-retry/src/http-retry.service.ts
83.33% <0%> (ø)

projects/ngx-let/src/ngx-let.module.ts
100% <0%> (ø)

projects/http-retry/src/http-retry.module.ts
77.77% <0%> (ø)

Continue to review full report at Codecov.

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


Help with writing an Adapter

We've been writing a bunch of plugins for our new gulp-etl project, which uses gulp to do data manipulation and automation. The Writing a plugin docs have been invaluable, thx!
I'm now writing my first vinyl adapter, and I'm having a harder time getting going there since there doesn't seem to be any analogous "Writing an adapter" documentation. Is there any example of a starter adapter? I'm not having much luck working through the thicket of streaming tools in vinyl-fs.src() to reproduce a basic example.
If not, here's my specific problem: I've got an adapter that works in streaming mode (current code is here), but I'm having a problem getting buffer mode to work. Since there's no callback in .src() I can't figure out how to return an .isBuffer() vinyl file that will later, asynchronously, receive its contents. The file is being evaluated downstream as .isNull() and finishing processing before I can set its contents.
I know this must be a simple issue, but my gulp/streaming ninja skills are still weak :) Can somebody point me in the right direction? If it would help I can post my misguided efforts at coding the buffer mode, but I'm hoping someone can just point me to a good example.
As to buffer mode: we'll be working mainly in streaming mode, but it seems to me that we'd need to provide both modes to be good gulp citizens. Right? Also, once we finish this adapter we'd like to build gulp adapters for S3 and DropBox (discussed here, looks like they're both still needed) and we'll want to do them the same way.

@donpedro I definitely think this is valuable documentation to have.  Currently, vinyl-fs has gotten much more complicated than the original adapter concept (it now includes sourcemaps, symlinks, etc) but I've been trying to think of a way to streamline adapters so you can "plug-in" the reading/writing mechanisms and have all the benefits of other adapters.
I'd love to chat more about this and see if my thoughts are on the right track.

@phated you're tremendously accommodating, thank you!
My initial goals are much more modest; I'm trying to recreate for vinyl adapters the most valuable resource I found for learning to create plugins: What does a good plugin look like? For instance, here is my original proof of concept .src(), which I wrote to see if I could even get anything to work at all:
import Vinyl = require('vinyl')
import PluginError = require('plugin-error');
const pkginfo = require('pkginfo')(module); // project package.json info into module.exports
const PLUGIN_NAME = module.exports.name;
const from2 = require('from2');
import * as path from 'path'

// dead-simple stream-mode-only gulp vinyl adapter: loads a file as a
// stream and wraps it in a vinyl file, then returns vinyl file in a readable stream
export function src(filePath:string, optionsIgnoredForNow:any) {
  let fileStream
  let vinylFile
  try {
    fileStream = require('fs').createReadStream(filePath)
    // let asdf = (undefined as any).wontWork // create an error for testing
    vinylFile = new Vinyl({
      base: path.dirname(filePath),
      path:filePath,
      contents:fileStream
    });
  }
  catch (err) {
    throw new PluginError(PLUGIN_NAME, err);
  }

  return from2.obj([vinylFile])
}

It should be simplified further, but the skeleton is here; create a stream using a familiar built-in module (node's fs), demonstrate how to drop it into a Vinyl object and return it using a recommended module (from2). No muss, no fuss, just take it from there for your application.
I got it this far, but this only does streams; I'm struggling with the buffer mode code. If someone can help me add the code for buffer mode that would work with a non-streaming asynchronous resource like fs.readFile, I think you've got a great starting point that could begin to make it as easy to create vinyl adapters as it is to create plugins. I'm new to the gulp world, but as @contra wrote 5 years ago:

It seems like people really understood the concept of a “gulp plugin” (a transform stream) but the idea of vinyl adapters never really clicked with many. I’m not sure how to make this catch on...

As a beginning gulp developer, I'd say that this piece (really, the entire Writing a plugin doc) which doesn't exist for vinyl adapters is the biggest reason gulp plugin development seems really accessible while building a vinyl adapter looks like a huge mountain to climb.

I found the solution I was looking for, and it was indeed simple. The problem in brief: trying to wrap a streaming resource but still provide a buffer-mode option.
The solution I went with was to simply stream the output through gulp-buffer. Basically, replacing the last two lines of the above code with this:
const gulpBuffer = require('gulp-buffer')

...

    let result = from2.obj([vinylFile])
    // buffer mode: stream through gulpBuffer to convert vinylFile to buffer mode (isBuffer(true))
    if (options.buffer !== false) {
      result = result.pipe(gulpBuffer())
    }
  }

So with that out of the way it's still a work in progress, but I've now officially published my first Vinyl adapter!
Thanks to @phated and the gulp team for all the work! I'll head over now and see if I can help out a bit with writing some docs.


Investigate discrepancies in PE resource detection compared to YARA

Sometimes we provide different PE resources than YARA. I haven't dig into this much deeper and don't know the cause but it should be investigated and fixed afterwards.
Files:
88ff9ef1f056be47f0da0d226e1295ba7a9668595dd5af5da3fcce89eafc204d
8a8154c36977c3f47a65c329a6dd93c58b8aff6050a4a748f4c610310daf0d8b

Hey, I wanna ask about the second file 8a8154c36977c3f47a65c329a6dd93c58b8aff6050a4a748f4c610310daf0d8b Is there some specific thing that differs? I've tried to dump module data from YARA and output from FileInfo, both found the same amount of resources and on first sight, few first and last entries seem to be about the same.
The first file 88ff9ef1f056be47f0da0d226e1295ba7a9668595dd5af5da3fcce89eafc204d has 224 resources in FileInfo and 0 in YARA, so I'll start with that one.

The first file seems to be ignored by YARA because the resource entries contain non-null characteristics. (thanks to @ ladislav-zezula)
After a deeper look, for the second file, YARA returns YR_UNDEFINED as offset value at certain entries, probably a sanity check for the offset validity.

I've created PR that addresses the second sample with invalid offsets. Based on discussion with @ ladislav-zezula the first sample being different in YARA is wrong on the YARA side and not FileInfo.

Second case fixed in https://github.com/avast/retdec/pull/982.
As the first case doesn't seem to be a RetDec problem I'm closing this for now.
@metthal please have a look and do one of these:

If you don't agree, and think this should be addressed in RetDec please reopen this.
If you think this should be addressed in YARA, either create an issue there or let me know, I will do it.
Ignore.


Dapper-based builds should support local replaces

It’s often convenient, when working on changes across repositories, to use local replaces in go.mod. Unfortunately this fails when building with Dapper since we only copy the current project into the build container. Such builds should support local replaces by also copying other projects as needed.
There is a workaround: run go mod vendor before the build.

Hi @skitt
I have the following error when I run go mod vendor. I'm on devel branch.
go mod vendor
verifying<EMAIL_ADDRESS>checksum mismatch
        downloaded: h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
        go.sum:     h1:ahVqZF4n1W4NqwvVnZzC4es67xsW9uR/RRf2RRxieJU=

SECURITY ERROR
This download does NOT match an earlier download recorded in go.sum.
The bits may have been replaced on the origin server, or an attacker may
have intercepted the download attempt.

For more information, see 'go help module-auth'.

I have tried clearing the cache and building it again, but the error persists.

@r2dedios unfortunately that’s not something we can do much about, until the dependency drops out of our tree (which doesn’t seem likely in the near future). You can work around the failure by deleting the corresponding line in go.sum:
sed -i '/h1:ahVqZF4n1W4NqwvVnZzC4es67xsW9uR/RRf2RRxieJU=/d' go.sum

I see. But this does not cause other dependencies to renew well, does it?

Sorry, I don’t understand what you mean by “renew well”. The underlying problem is that the 2.4.0 tag in mikefarah/yaml was moved, and there are two different versions of the 2.4.0 artifacts — in particular, goproxy has a different version compared to what is currently exposed by the upstream repository. So depending on where your system downloads its dependencies from, you’ll get a different hash.
Removing the yaml hash from go.sum has no effect on other dependencies.

I ask because I'm trying to update some features in cloud-prepare lib, and always I run go mod vendor I get that error. Thanks to you I understand why, but my questions was: Is this error an isolated one, or this fail could interrupt the go mod vendor command? Thanks

It stops the whole go mod vendor operation unfortunately. Could you try GOPROXY=direct go mod vendor instead?

Hi @skitt, sorry for the late response.
No, anything changes. I only be able to update vendor folder using the Makefile.
I Think this could be related with my env too. I had several issues in other repos.
Thanks for help! ;)

Ah, that suggests there’s something wrong in your local Go cache!

Lookslike yes, I saw that mikefarah's lib its removed from the direct dependencies, but I still having errors with it.

/cc @edennishri

Thank you Mike


Invert navigation shortcuts on manga mode

Invert the navigation controls ( left / right arrows) when manga mode is active.

I'll have a look at this and report back shortly! :)


Typo in README.md

Description
There is a typo in the Commands section in README.md.

Steps to reproduce

Scroll down to Commands
Read table headers

Expected result
- Descriptiton
+ Description

Actual result
Descriptiton

Environment
N/A

fixed by #321


Add support to force-validate specific fields (even if untouched)

Hi there !
I'm trying to implement a multi-step form (in the same page) and I'm using laravel-precognition-vue-inertia
I can't find a practical way to force validation for the fields contained in each step of the form even if they are untouched (in the handler of the "Next step" button for example) without affecting the whole form (fields in other steps) or submitting it .
How to achieve this behaviour?

@xahmedtaha we will be tagging this PR shortly, which will allow this behaviour: https://github.com/laravel/precognition/pull/26


Add getter and setter for global FFmpeg options

Q
A

Bug fix?
no

New feature?
yes

BC breaks?
no

Deprecations?
no

Fixed tickets
fixes #issuenum

Related issues/PRs
#issuenum

License
MIT

What's in this PR?
This PR adds functions to get and set global FFmpeg options.
Why?
These functions are required to set options before the input file argument, for example -hwaccel vaapi for GPU-based encoding.
Example Usage
$video->setOptions(array(
       '-hwaccel', 'vaapi',
       '-hwaccel_output_format' , 'vaapi',
       '-hwaccel_device' , '/dev/dri/renderD128'
));

To Do

[ ] Create tests

PR 627 covers the same issue, closing this.


only v0.0.0 support dep

only v0.0.0 support dep, v0.0.0 is not the lastest.

Hi, yeah, dep doesn't seem to support the version suffixes of Go modules. The go mod init command supports migrating from dep, is that a good option for you?

Another, How can I use basic auth at v0.0.0

Don't use v0.0.0 — that's an old version.
Either add the credentials to the ELASTICSEARCH_URL variable, or set the corresponding fields in the config struct:
https://github.com/elastic/go-elasticsearch/blob/36b236c0f9d7508ee34826303a67fba36f38810c/elasticsearch.go#L26-L33


ros_type_introspection: 1.4.0-0 in 'kinetic/distribution.yaml' [bloom]

Increasing version of package(s) in repository ros_type_introspection to 1.4.0-0:

upstream repository: https://github.com/facontidavide/ros_type_introspection.git
release repository: https://github.com/facontidavide/ros_type_introspection-release.git
distro file: kinetic/distribution.yaml
bloom version: 0.7.2
previous version for package: 1.3.1-0

ros_type_introspection
* embedding abseil-cpp
* Contributors: Davide Faconti

Sorry, I believe that I messed up with this. Is it possible to revert this to the previous version 1.3.1 (and the lunar too)?

Yes we can revert it because it hasn't yet been synced. -> #20843


[TEVA-2458] Job application status update

Jira ticket URL
https://dfedigital.atlassian.net/browse/TEVA-2458
Changes in this PR

Update publisher job application page as per design
Update publisher job application dashboard as per design
Update jobseeker job application page as per design
Add reviewed status to job applications that is triggered when a publisher views a submitted job application

Product sign off

[ ] Looks good!

NB: Developers - this will funk up your local database if you already have applications, so I recommend resetting/destroying job applications locally

Review app deployed to https://teaching-vacancies-review-pr-3332.london.cloudapps.digital

First view of "Applicants for" page, status of applicant is unread.

Clicked into applicant, status updates and timeline updated

Return to "Applicants for" page and status displays correctly here

@cpjmcquillan the above all looks good to me, but not quite sure what you mean by "Update jobseeker job application page as per design"
What was changed on the jobseeker side?

@bencmitchell hope this clears it up!
Publisher

Don't hide heading
Update breadcrumb link

Publisher dashboard

Updated translations (e.g Shortlisted applications)

Jobseeker

Add the rest of the school details

Cheers @cpjmcquillan , I could check the publisher side and all looked good but now getting a page not found error when trying to access the review app so unable to take a look at the jobseeker side.


google not returning id_token

I only see the access_token in the response. I have tried different options but still can't get id_token (JWT). Is it possible to get it from the client directly without a server?

#64

#73

I did not delve into this library and did not look at the api on which it is built, but I opened the Google site, made a button according to the documentation and received an id token https://developers.google.com/identity/gsi/web/guides/display-button #html

id token will be returned on version 2.6.1


Show how many jobs ahead of job in queue

Is your feature request related to a problem? Please describe.
Waiting for a job to start without any idea of position in the queue is quite frustrating.
Describe the solution you'd like
It would be great if on a pending job banner instead of just
Waiting for agent 6h 5m

It could say something like
Waiting for agent 6h 5m (4 jobs ahead, 6 active workers)

Describe alternatives you've considered
From the context of agents, a browsable queue of jobs that an agent can pick up.
Additional context

hey there! this is a great idea - it'd be handy for me too.
we're working on some stuff kinda sorta similar to this at the moment - it's looking like it'll be a link to queue metrics from the Waiting for agent text, but not quite as fancy as you've described here.
this isn't really a feature that we can add agent-side, so i'd recommend raising this as feedback with your CSM - i'll close this issue for now, but happy to continue to chat here :)


Replace dynamic plugins with statically linked extensions

Description of change

Plugins removed and replaced by extensions
Added extension builder in aperturectl

Checklist

[ ] Tested in playground or other setup
[ ] Screenshot (Grafana) from playground added to PR for 15+ minute run
[ ] Documentation is changed or added
[ ] Tests and/or benchmarks are included
[ ] Breaking changes

I still believe there is no way to pass files during runtime except for attaching a new volume. We should prepare the file, include it in the docker context, and then use it. We can still continue to accept config file name.


Cached test execution (TestModule.testCached)

In a somewhat larger project we have implemented a testCached target, which does exactly the same as the TestModule.test target, but it is a normal cached task instead of a command. That means, test are only re-executed, if any of it's inputs change. Test unrelated to a change will not re-run. Over the time, I very much like that feature and would like to integrate it into mill core.
WDYT? /cc @lihaoyi

Sounds like a good idea. We have that for Bazel at work and it works very
well
On Tue, 15 Oct 2019 at 5:24 PM, Tobias Roeser<EMAIL_ADDRESS>wrote:

In a somewhat larger project we have implemented a testCached target,
which does exactly the same as the TestModule.test target, but it is a
normal cached task instead of a command. Over the time, I very much like
that feature and would like to integrate it into mill core.
WDYT? /cc @lihaoyi https://github.com/lihaoyi
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/lihaoyi/mill/issues/711?email_source=notifications&email_token=AE5HBDEWXPN4JBVCIIPAWADQOWD5LA5CNFSM4JAZXKO2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HR2AQPA,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AE5HBDFEBEUSGRXLXGUVYULQOWD5LANCNFSM4JAZXKOQ
.

Implemented via #712