Issue with certain big_map values

Steps to reproduce:
Create a big map index for KT1XumYAxnPCrDiLU4XLNciZncExAzdEJrua, big map user_roles, ex:
spec_version: 1.2
package: test

contracts:
  access_control_mainnet:
    address: KT1XumYAxnPCrDiLU4XLNciZncExAzdEJrua
    typename: access_control

datasources:
  tzkt:
    kind: tzkt
    url: https://api.tzkt.io

indexes:
  my_index:
    kind: big_map
    datasource: tzkt
    skip_history: never
    handlers:
      - callback: on_update_user_roles
        contract: access_control_mainnet
        path: user_roles

What did you expect to happen:
user_roles_value.py generated class contains value of type Dict[str, int], corresponding to big_map content which is:
big_map(address, map(string, nat))
What actually happened:
user_roles_value.py is empty:
# generated by datamodel-codegen:
#   filename:  user_roles_value.json

from __future__ import annotations

from pydantic import BaseModel, Extra

class UserRolesValue(BaseModel):
    pass

    class Config:
        extra = Extra.allow

Environment

Python version: 3.10
DipDup version or commit hash: 5.2.2
Database engine version: not applicable
Hasura version: not applicable
Are you in docker? not applicable
Can you reproduce this issue on master? yes

But maps works when used as inputs for ex FA2 metadata, could it be that the input to codegen needs to be different?

Should be something like
class UserRolesValue(BaseModel):
    __root__: Dict[str, str]

perhaps this is an edge case that is not handled by datamodel-codegen correctly

Current datamodel-codegen output:
class UserRolesValue(BaseModel):
    __root__: Optional[Dict[str, str]] = None


Some Readme content edits

Overall some minor items in the Readme content.

Fix typo(s)
Change quoted area to an Alert (a.k.a. admonition)
Replace a broken netdevops.me hyperlink with an archive.org copy of that page
Move the Connection Mode list into a table
Various wording and sentence changes (admittedly my take and can be adjusted)
Markdown linting-esque changes

(full MD linting and GH Actions for another PR!)
Surround MD headers with white space
Break long MD lines into shorter lines

I'm open to feedback and any tweaks/changes.

thanks @mjbear a couple of small additions

Thank you @hellt
I'm going to give the documentation another read or two. I'll mark it as "Ready" when I have it ready for merging.
Thank you!

@hellt
Admittedly my take on some of the sentences and wording. Hopefully I didn't distort the intended information and message.
Just like your earlier suggestions, I'm open to them. :grinning:

thank you

thank you

Teamwork!
Thank you as well. :grinning:


nixos/fresh-rss: init module

Motivation for this change
https://github.com/NixOS/nixpkgs/issues/77246
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Notify maintainers
cc @schmittlauch

@schmittlauch people who aren't as familiar with a technology often times provide the most valuable feedback as they have fresh eyes and are able to see shortcomings others can't :smile:
All feedback welcome. Thanks.
Note this is still a work in progress, though. I've done very minimal testing and I'm not convinced this works reliably yet.
More to come.

Hey! I'd love to see this module being included into nixpkgs. Right now we "only" have tt-rss which has a couple of shortcomings and freshrss has a lot of potential.
Cheers!

@makefu any interest in picking this up? I don't use fresh-rss so this PR is lower on my priorty list.

@aanderse low prio is fine for me, i will use ttrss until the time comes :) but thanks for even starting the PR!

I am also interested in this MR, can I know what's left to be done?

I don't think many people use httpd so someone should probably port it to nginx. Aside from that... probably just testing?
I don't use this software and have very little interest in finishing this off anymore. Competing priorities, etc... Are you interested in taking this over?

@aanderse I'm quite new to Nix, and have never packaged anything for nixpkgs.
I could probably port it to nginx, but I'm trying to understand why the service itself should be taking care of this, instead of being left to the user ?
I assume testing is mostly making sure the derivation builds, and probably also running correctly.

The package is probably good to go. The module does a fair bit of work for the user. We could just ship a package without a module...

If anyone wants to finish this off please feel free to take over.


Simplify project creation instructions

I never knew you could do it until Rich just pointed it out https://github.com/sveltejs/kit/pull/1014#issuecomment-819453251. This seems slightly simpler and also demonstrates something users might not find by themselves otherwise

We should probably do the same in https://github.com/sveltejs/sites/blob/master/sites/kit.svelte.dev/src/routes/index.svelte (and also update the npm run dev & open http://localhost:3000 which is a macOS-ism to npm run dev -- --open).


Option to pause plugin until manually resumed

I use both TabNine and GitHub Copilot as they are both good in different situations, but I don't want to use them both at the same time. What I want to do is have both installed, but then disable the completions for one of them while I am using the other. Copilot supports this case, but TabNine only allows me to snooze it for 1 hour at a time.
It would be really nice if there was an option that would pause the completions until manually turned back on again.
gz#32335(related to Zendesk ticket #32335)

Hi,
Thanks for the feedback. I will pass it on to our product team.

I don't see any changes in the plugin, but I assume it has been added since the issue has been closed. Where can I find this option?


Correct order of keycloak password change encryption step

Description
Change for https://jira-pro.its.hpecorp.net:8443/browse/CASMTRIAGE-3655
Checklist Before Merging

[x] If I added any command snippets, the steps they belong to follow the prompt conventions (see example).
[x] If I added a new directory, I also updated .github/CODEOWNERS with the corresponding team in Cray-HPE.
[x] My commits or Pull-Request Title contain my JIRA information, or I don't have a JIRA.

/backport main


Properties File Fix

Change name of dataframe q
q1.E4 will probably have to be changed - it is an equipment type in industry processes!

Note: these are two separate issues! Take care not to close this without resolving both (especially the "q1.E4" point will probably live longer than the "dataframe q" point, which is really only a very simple refactoring.

it addresses issue #99 and it is solved with the pull request of #103


added DOKKU_DOCKERFILE_START_CMD support

closes #1249
I need little help with the test suite here, I tested it on my server it worked smoothly.

Sorry I'm on mobile right now. What are you asking?

Looks legit to me. @josegonzalez thoughts?

@michaelshobbs I was commuting, thank for being patient on this, I am a noob with bash!

No worries at all. Thanks for putting this together.

Looks good to me, does it work?

it does on my DO machine! So happy that I can now deploy same app multiple times and just change the args :)

Thoughts on documenting this?

@michaelshobbs yeah, I am Italian so I would probably do a shitty job at it but I can give it a try and maybe you can review it ?

sounds good to me :smile:

@michaelshobbs hey, I did my best!
I actually have a question: there are inconsistencies on names I think and I am not sure DOKKU_DOCKERFILE_START_CMD is the correct name, we have:

DOCKERFILE_PORT
DOCKER_OPTIONS_DEPLOY
DOCKER_OPTIONS_RUN
DOCKER_OPTIONS_BUILD
DOKKU_DOCKER_BUILD_OPTS
DOKKU_DOCKERFILE_CACHE_BUILD
DOKKU_DOCKERFILE_START_CMD

Thoughts?

I think that it would be more appropriate to call it DOCKER_OPTIONS_RUN_CMD
https://docs.docker.com/reference/run/
And I am not mistaken we can remove DOCKERFILE_PORT, DOKKU_DOCKER_BUILD_OPTS, DOKKU_DOCKERFILE_CACHE_BUILD which are just shortcut for DOCKER_OPTIONS_* ?

I'm sure we could do better on naming here. However these are all used in their own way without duplication. DOCKER_OPTIONS_* variables are specifically used in the docker-options plugin and are named that way only because that's how the original author of the once external plugin named them.
Let's not remove or change any names as part of this PR. If you want to take a stab at making these conform to a standard in another PR, that would definitely be welcomed.

@michaelshobbs I didn't mean to change names in this PR I just wanted to think forward and use a different name for this option.
I can bake another PR. You said those options work their own way but it seems to me that DOKKU_DOCKER_BUILD_OPTS  and DOCKER_OPTIONS_BUILD are the same, all we need is the docker plugin ones, there nothing you can't so passing params to docker, included disabling cache and exposing the port. I'll open a new ticket to iterate on this a bit more?

Sounds good to me


Pass 'this'parameter to apply call

This is the fix for issue #71 which causes constructed objects not to be returned if the constructor has been instrumented for trace.
The issue was that we were failing to pass this through to the apply() call for the instrumented method, which has now been resolved.

@tunniclm could you review?

It looks like this area of code could do with some attention to clearly define all the cases it needs to handle (with some nice testcases). I am suspicious that we aren't handling every cases correctly.
That said, this change is a clear improvement so I'm happy to merge.


Getting AccessDenied on uploaded images

I am getting this error when I am using images from my notion doc

This is my notionId: 96defe8701444f0782cc9b428929c79a
I am rendering the page content using react-notion-x, those are working fine but the image URLs I am getting from the payload are not working
Would appreciate any help on this one 😊

Hey!
I just checked with react-notion and it seems to work fine for us:
https://react-notion.com/96defe8701444f0782cc9b428929c79a
The URL needs to be signed by the client!

Hey, thanks, how exactly do you "sign" a URL here for images?
I am creating a custom integration here.

@Utkarshbhimte
https://github.com/splitbee/react-notion/blob/master/src/utils.ts#L46-L62
Try to prefix the URL you get from the worker with https://www.notion.so/image/ and be sure to call encodeURIComponent on the URL

Thanks 😊


BTC payments disabled for Cake Pay Web. Use XMR or Trocador exchange plugin

BTC payments are back online!


Authenticating with an expired OTP gives you a bad error message

If you call client.otps.authenticate with an expired code it tells you that your project ID or key is invalid and hides the actual error message about the OTP code being invalid
https://github.com/stytchauth/stytch-python/blob/56f59bddb2cc76577e1fd195665eb8e73f8c5d4a/stytch/api/decorator.py#L11

Thank you for opening up the issue, Jake! We've fixed this in our v4.3.1 update


Require user to specify serializer

Per the discussion in https://github.com/airblade/paper_trail/issues/555, if we were to change the default serializer (which has not been decided yet) I'd prefer to add a deprecation warning like this in one major version (currently, the next is 5) and then change the default in the version after that (e.g. 6).
@seanlinsley @batter

To clarify, please do not merge this, it's just an aid to the discussion in #555. :no_good: :no_entry_sign:

I think it'd be preferable to only print this warning if YAML is actually in use. Are there downsides to detecting the current format like I described on #555?

Closing. This was just for the sake of discussion. (Which I guess should continue in #555)  Sean, I will get back to you about the pros/cons of format detection. I have some thoughts on it, I just have to organize them :)


Unclear instructions on an FCC CSS Grid challenge

On the CSS Grid challenge "CSS Grid: Use grid-area Without Creating an Areas Template" I think the wording is a little unclear

Go to https://www.freecodecamp.org/learn/responsive-web-design/css-grid/use-grid-area-without-creating-an-areas-template
Notice the wording on the test reading "item5 class should have a grid-area property such that it is between the third and fourth horizontal lines and between the first and fourth vertical lines."

I think this reads that the area should be a decimal point between 3 and 4 horizontally, and a decimal point between 1 and 4 vertically i.e. beginning horizontally at something greater than three, and beginning vertically at something greater than one.
Leading to incorrect CSS something like:
grid-area: 3.5/1.5/4/4;
I'm happy to close this if I am the only person to think this, but I think the below wording is nicer:
Original:
"item5 class should have a grid-area property such that it is between the third and fourth horizontal lines and between the first and fourth vertical lines."
Improved:
"item5 class should have a grid-area property that begins on the third horizontal line, ending on the fourth horizontal line and begins on the first vertical line, ending on the fourth vertical line."
Leading to something like the below, which would better guide the user to pass the test:
grid-area: 3/1/4/4;
This isn't a browser specific problem, I just think it would be a nice quality of life improvement.

"item5 class should have a grid-area property that begins on the third horizontal line, ending on the fourth horizontal line and begins on the first vertical line, ending on the fourth vertical line."

Aren't you implying that the area starts on the line? The way i have understood grid lines is that they are "width-less"  boundaries of the areas within which the grid items lie.  The numbers 1, 2, 3, ... are just labels for the vertical and horizontal lines splitting your grid container into grid areas. And you can give them any name you want instead of using numbers. From your interpretation it seems you are implying the lines have width hence taking up space and there are sub-grid lines within adjacent vertical lines or adjacent horizontal lines which is not the case. The numbers are just labels for the vertical and horizontal lines enclosing the grid tracks nothing more.
Perhaps look at

Aren't you implying that the area starts on the line?

I don't think it reads that way personally. Do you?
I understand your point but I disagree.
I still think my proposed description is an improvement for the item listed above, as I think it is using the same terms the underlying CSS is using.
grid-area: 3/1/4/4; is essentially shorthand for: grid-area: <name> | <row-start> / <column-start> / <row-end> / <column-end>;
I think it makes more semantic sense to use the terms "begins" and "ending" in the description of what the user needs to do, to better mirror the CSS.
I got the above snippet from reading https://css-tricks.com/snippets/css/complete-guide-grid/#prop-grid-area

I think it makes more semantic sense to use the terms "begins" and "ending" in the description of what the user needs to do, to better mirror the CSS.

If this is the reason for your suggestion, i have no objection.
Actually my response above is mostly to your explanation of why the change is necessary not the actual change itself, i should have made that clear from the onset:

I think this reads that the area should be a decimal point between 3 and 4 horizontally, and a decimal point between 1 and 4 vertically i.e. beginning horizontally at something greater than three, and beginning vertically at something greater than one. Leading to incorrect CSS something like: grid-area: 3.5/1.5/4/4;

Essentially what i am saying is that interpreting the instruction that way would mean  the lines take some sort of "width" and/or "height" therefore  the area must exclude that width/height which isn't the case. If your intention is to make the instruction align with the doc. it is okay because even the mighty MDN is using the same.

Okay, you have been a very helpful sounding board @nibble0101 - thank you for bouncing your ideas/ why it's necessary.
If I make a pull request and go with what I discussed above:
"item5 class should have a grid-area property that begins on the third horizontal line, ending on the fourth horizontal line and begins on the first vertical line, ending on the fourth vertical line."
Does FCC have a process to translate it into the other supported languages? My Arabic leaves a lot to be desired.
Or should I perhaps only change the English?

Or should I perhaps only change the English?

Just change the English version for now.

Thank you for the assistance @RandellDawson


Fine tune for ± a few characters

Hi, guys. I have a question about training a new trainddata. In the eng.trainddata, I want to add a few characters. In the guideline, the steps is on linux. I want to do this on Windows. How can I do this?Thanks.

Environment

Tesseract Version: 5.0
Commit Number: no
Platform: Windows 10, version 64-bit

Current Behavior: Fine tune a new eng.trainddata with adding a few characters on Windows.
Expected Behavior:
Suggested Fix:

Please use the Tesseract user forum for questions.


Parsing error on nested components in rich text field after package update

Brief bug description
After the package update from 5.2.1 to 5.7.2 I experience the following error:
Error: Parsing HTML failed:Error: Linked item with codename 'n57a6c951_d80e_012e_851c_863145fc5424' could not be found in response and therefore the HTML of rich text field could not be evaluated. Increasing 'depth' parameter of your query may solve this issue.

It looks like there is a missing reference to a nested component in a rich text element. It seems that the error occurs inside the getHtml() method. Increasing the depth parameter value does not help.
When I request the data using cURL I can see that the 'n57a6c951_d80e_012e_851c_863145fc5424' item (in the red area) stands for the following situation in the KC UI:

Repro steps

Create a model with Rich Text Field in KC.
Create a Content Item and add a Component to its Rich Text field. And add another Component to the Component Rich Text field. (As shown in the image taken in KC UI above).
Fetch created Content Item using kentico-cloud-delivery, version greater or equal 5.7.2.
Use getHtml() function from received RichTextField of the top-level Content Item.
See the error in console: Error: Parsing HTML failed:Error: Linked item with codename 'xxxx' could not be found in response and therefore the HTML of rich text field could not be evaluated. Increasing 'depth' parameter of your query may solve this issue.

This happens in the following project: https://github.com/Kentico/kentico-cloud-docs-web
Feel free to clone it, ask @jancerman for access to the KC project and experience the error on your own. And probably, ask me to provide the .env file.
Expected behavior
Resolve everything correctly as in the version 5.2.1.
Test environment
Node.js v10.15.0 on Windows, using the SDK with Vanilla JS

Thank you for extensive explanation. Unfortunately, this is a known issue and it happens in situations where child item references any of the parent items in the resolving tree.
This should be fixed in v6 onwards. Unfortunately, this issue was discovered after I started refactoring and I can't update v5 anymore. Can you switch to 6.0.0-beta.3 ?
The only downside for you is that there are some breaking changes (see changelog) and more breaking changes are yet to come.

Thanks for the quick turnaround.
I updated to 6.0.0-beta.3 and resolved the "toPromise" breaking change. The issue I describe above has been resolved.
However, another similar issue appeared. I am getting the following error:
Parsing HTML failed:Error: Image with id 'cf59a7b9-6f2c-4c6c-8c51-426753d63e8d' was not found in images data

Again, the issue happens inside the getHtml() method. The missing image is inserted in the following location in the KC UI:

Also, I am concerned about the following breaking change: https://github.com/Kentico/kentico-cloud-js/pull/139. Why exactly is that a breaking change and for what updates should I be looking for in my vanilla JS code?

I'll have to look at the images issue, thanks for letting me know. Can you please get the URL of request you are making (e.g. call getUrl method on the query) so that I can test it on my end?
As for your other concern, the change mainly affects the linkedItems property in the response object (you might not even be using this as all linked items are also resolved recursively on item level) so that it is no longer an array, but object where you access items by their codenames. See test example.

Ok, thanks.
https://preview-deliver.kenticocloud.com/ad858591-7c5b-00e9-52c1-796f3aebc535/items?system.type=scenario&depth=2&elements.url=test-my-content
As it is a preview URL, you need an access token. Ask @jancerman or let me know how can I send it over to you privately.

I wasn't able to reproduce this on my end using your project. Do you still see the error? Looking at the code this error should happen only if the image is not included in response, but I could be wrong. This is the test I've run:
 deliveryClient.items()
        .depthParameter(2)
        .equalsFilter('elements.url', 'test-my-content')
        .type('scenario')

it('Test included images', () => {
      const codenames = Object.keys(response.linkedItems);

      for (const codename of codenames) {
        const item = response.linkedItems[codename];
        if (item.system.type === 'callout') {
          item.content.getHtml();
        }
      }
      assert.ok(true);
    });

I'm using callout type and linkedItems because this has been the only instance of the image with id cf59a7b9-6f2c-4c6c-8c51-426753d63e8d I found in response using your Url.
Anything else I can try?

In your example, you call the getHtml() method directly on the linked item. To reproduce the error, you need to apply the method on its parent. In version 5.2.1, it works fine. Feel free to paste the following code in the app.js file and request the /test-resolver endpoint. I gathered and simplified the whole way of getting content, so you can hopefully get the point.
const KenticoCloud = require('kentico-cloud-delivery');

app.get('/test-resolver', asyncHandler(async(req, res) => {
	const deliveryClient = new KenticoCloud.DeliveryClient({
		projectId: 'xxx',
		previewApiKey: xxx',
		enablePreviewMode: true
	});

	const query = await deliveryClient.items()
		.depthParameter(2)
		.equalsFilter('elements.url', 'test-my-content')
		.type('scenario')
		.queryConfig({
			richTextResolver: (item) => {
				if (item.system.type === 'callout') {
					return `

                ${item.content.value}

`;
				} else {
					return `Non-existing resolver.`;
				}
			}
		});

	const response = await query
		.toPromise()
		.catch((err) => {
			console.error(err);
		});

	response.items[0].content.getHtml();

	return res.end();
}));

Inside the value of response.items[0].content property is text that contains the following markup:
<object type="application/kenticocloud" data-type="item" data-rel="link" data-codename="test_callout"></object>

From my understanding, when I call response.items[0].content.getHtml(), the SDK applies richTextResolver. As you can see, in the callout resolver template I try to evaluate the item.content.value property. That property contains the image, and the SDK seems to be looking for the image. However, it looks like it is not available in that context and the SDK throws the error. I hope it makes sense.

Thanks for the description. You're right, there was an issue where resolved HTML was not picked up by HTML parser and resolving context did not contain images from 'current' content item.
This seems to be a bit more complex so I'm gonna have to do some refactoring & tests on the matter, but it should be fixed for now in 6.0.0-beta.4.
Let me know if that works as intended.

I updated the package in the project and tested on the /test-resolver endpoint that is outlined in my previous comment. And nothing changed... I am getting the same error. Take your time with the refactoring :)

Are you sure the package was updated correctly? I've used the exact same code you sent and it worked ok on my end (where previously it thrown the same exception you mentioned) 🐙
I'll try again once I'm back in the office though.

Hm, strange. I double-checked, and the issue persists on my end.

Sorry, you're right :-( I implemented the fix only for browser adapter and forgot to do that for parse5 adapter.
Can you try 6.0.0-beta.5 ?

I confirm that the image issue is now resolved in 6.0.0-beta.5. Regrettably, another problem appeared.
Suddenly, some linked items get rendered twice in the resolver. In the website, request /tutorials/test-my-content  or / paths in the browser. You should see those duplications.

The correct version could be seen here and here.
I tried hard to find the cause, and I got at least a suspicion. I extended the /test-resolver endpoint to resolve images and render markup on the page.
const KenticoCloud = require('kentico-cloud-delivery');

app.get('/test-resolver', asyncHandler(async (req, res) => {
    const deliveryClient = new KenticoCloud.DeliveryClient({
        projectId: 'xxx',
        previewApiKey: 'xxx,
        enablePreviewMode: true
    });

    const query = await deliveryClient.items()
        .depthParameter(2)
        .equalsFilter('elements.url', 'test-my-content')
        .type('scenario')
        .queryConfig({
            richTextResolver: (item) => {
                if (item.system.type === 'callout') {
                    return `

                ${item.content.value}

`;
                } else if (item.system.type === 'image') {
                    return `<img src="${item.image.value[0].url}">`;
                } else {
                    return `Non-existing resolver.`;
                }
            }
        });

    const response = await query
        .toPromise()
        .catch((err) => {
            console.error(err);
        });

    response.items[0].content.getHtml();
    return res.send(response.items[0].content.resolvedHtml);
}));

In case the image resolver returns , the resolver renders just one image.
In case you extend it to

 or

, the image gets rendered twice.
Strange, right?
Then I noticed that in the first case the resolved content gets wrapped in

In the other case, the
 element becomes just a sibling of the resolved content.
The reason that comes to my mind is that having
 or
 tags inside the
 tag is not valid according to the W3C specification. Because of that, resolving content inside the getHtml() method could go wrong.
Interesting is that such a situation occurs in version 5.2.1 and the content gets resolved/rendered just once.
Could you please inspect the problem?
Is necessary to wrap resolved content in the
 or any other tag as it might break the markup?

I was not able to reproduce this isse. I'm using:
deliveryClient.items()
      .depthParameter(2)
      .equalsFilter('elements.url', 'test-my-content')
      .type('scenario')
      .queryConfig({
        richTextResolver: (item) => {
          if (item.system.type === 'callout') {
            return `

            ${item.content.value}

`;
          } else if (item.system.type === 'image') {
            return `<li><img src="${item.image.value[0].url}"></li>`;
          } else {
            return `Non-existing resolver.`;
          }
        }
      })

And the resulting HTML looks like:

This scenario is here for testing purposes. It should contain all types of content that can be rendered within an article.

Warning

This is a callout shared in multiple items.

H2

H2 with icon {@icon-codename@}

H2 with code {~<script/>~}

H3

H3 with icon {@icon-settings@}

H3 with code {~<script//>~}

H4

H3 with icon {@icon-back@}

H4 with code {~GetAll~}

Text

Notification message object

The {~message~} object contains information about the origin of the notification. The attributes from the notification {~message~} object are also duplicated in the HTTP webhook header with the {~X-KC-Message~} prefix. For example, Project ID is represented as the {~X-KC-Message-Project-Id~} header.

Reusable chunks

An example of a Content chunk containing information about creating content types.

Non-existing resolver.

Code samples

The notifications sent to a webhook come with the {~X-KC-Signature~} header. This header contains a checksum of the JSON payload that you can use to verify the authenticity of the notification. The signature is a base64 encoded hash that is generated using a HMAC SHA-256 with a secret key.

shell

Non-existing resolver.

Code below taken from https://developer.kenticocloud.com/docs/getting-content#section-ordering-content-items.

cURL

Non-existing resolver.

.NET

Non-existing resolver.

JavaScript / NodeJs

Non-existing resolver.

TypeScript

Non-existing resolver.

Java

Non-existing resolver.

JavaRx

Non-existing resolver.

PHP

Non-existing resolver.

Swift

Non-existing resolver.

Taken from elsewhere.

Python

Non-existing resolver.

Ruby

Non-existing resolver.

Images

Always use alt text from assets.

Asset inserted directly into rich text.

Asset inserted through the Image component. No description, no border, 100% width, not zoomable.

Asset inserted through the Image component. No description, no border, 50% width, zoomable.

Asset inserted through the Image component. With description, border, 75% width, not zoomable.

Animated asset inserted through the Image component. With description, border, 100% width, not zoomable.

Tables

Taken from https://developer.kenticocloud.com/reference#webhooks-and-notifications

	Notes

	Valid types: {~asset~}, {~content_item~}, {~content_item_variant~}, {~content_type~}, {~project~}, {~project_settings~}, {~sitemap~}, {~taxonomy~}. For more information, see the list of types.

operation	The action performed on the data	string	Valid operations: {~upsert~}, {~publish~}, {~restore_publish~}, {~unpublish~}, {~archive~}, {~restore~}. For more information, see the list of operations.

Test font icon {<EMAIL_ADDRESS>
api_name	Whether the notification is for the production or preview version of the Delivery API	string	Valid value: {~delivery_production~}.

project_id	The ID of the project holding the changed content	string

webhook_url	A publicly available URL address of a webhook endpoint	string	Valid address format: {~https://example.com/webhook-url~}

created_timestamp	Formatted UTC time and date	string	Valid format: {~YYYY-MM-DDTHH:MM:SSZ~}. ISO-8601 formatted string.

Taken from https://developer.kenticocloud.com/docs/static-site-generators

Feature	Availability	Documentation

Retrieve content items	{@icon-success@}	View docs

Secure access	{@icon-error@}

Preview unpublished content items	{@icon-error@}

Filter content items	{@icon-error@}

Localization	{@icon-success@}	View docs

Retrieve linked items and items in Rich text	{@icon-success@}	View docs

Retrieve content as strongly-typed models	{@icon-success@}	View docs

Render components and items in Rich text	{@icon-success@}	View docs

Resolve links to content items in Rich text	{@icon-error@}

Retrieve taxonomy groups	{@icon-error@}

Webhook support	{@icon-error@}

Code generators	{@icon-success@}	View docs

Callouts

Worked examples

Learn how to integrate a search service into your app from worked examples in our blog posts.

Searching Content with Kentico Cloud: Algolia Integration – walks you through adding Algolia search service into an ASP.NET MVC application and updating search index in reaction to webhook messages.

Automate Azure Search index updates with webhooks – shows how you can use Azure Functions, Azure Search, and webhooks in a .NET web app.

Link to test article.

Disclaimers

This page only covers the built-in Kentico Cloud functionality. You also need to check any custom functionality in your project for personal data handling.

This page is provided for informational purposes only and should not be relied upon as legal advice. You can use the information to identify personal data and its flow in the system, and take appropriate measures. However, we recommend consulting with a legally qualified professional to verify that your project complies with the GDPR.

Links to Finding your content and home page.

API requests limits

The requests made to the Content Management API count towards the overall API calls limit set in our Fair Use Policy. For more information, see Pricing FAQ on our Kentico Cloud website.

Quick facts about codenames

Codenames are case sensitive identifiers of objects in Kentico Cloud. They are generated by the system each time the name of an object is updated. This also means that you cannot change codenames directly.

Embedded content

YouTube.com

Non-existing resolver.

Codepen

Non-existing resolver.

StackBlitz

Non-existing resolver.

Codesandbox.io

Non-existing resolver.

Lists

List item

List item

List item

List item

List item

List item

Another list item

Another list item

Another list item

Another list item

Another list item

Another list item

Another list item

Another list item

Another list item

Nesting list types is not broken.

Weird list item

What is this?

Smells like ...

First

Second

Third

Yes it is

Another list item

Third list item

I tried this both under node.js and browser with no apparent duplicates. Is there something I'm missing?

I guess you reproduced the issue. Don't you see that the image has been resolved twice?

Check line 7 in the resulting HTML you have just posted.

Moreover, check the HTML structure of that line. I don't think it is valid and intended way of how HTML should be structured.

Ah right, thanks. I was looking at the other images and didn't notice this one identical.

Turns out parse5 parses HTML a bit differently. I've added a data-sdk-resolved flag attribute to prevent duplicate resolving. Try @6.0.0-beta.7. The html I now get looks like this:

This scenario is here for testing purposes. It should contain all types of content that can be rendered within an article.

Warning

This is a callout shared in multiple items.

H2

H2 with icon {@icon-codename@}

H2 with code {~<script/>~}

H3

H3 with icon {@icon-settings@}

H3 with code {~<script//>~}

H4

H3 with icon {@icon-back@}

H4 with code {~GetAll~}

Text

Notification message object

The {~message~} object contains information about the origin of the notification. The attributes from the notification {~message~} object are also duplicated in the HTTP webhook header with the {~X-KC-Message~} prefix. For example, Project ID is represented as the {~X-KC-Message-Project-Id~} header.

Reusable chunks

An example of a Content chunk containing information about creating content types.

Non-existing resolver.

Code samples

The notifications sent to a webhook come with the {~X-KC-Signature~} header. This header contains a checksum of the JSON payload that you can use to verify the authenticity of the notification. The signature is a base64 encoded hash that is generated using a HMAC SHA-256 with a secret key.

shell

Non-existing resolver.

Code below taken from https://developer.kenticocloud.com/docs/getting-content#section-ordering-content-items.

cURL

Non-existing resolver.

.NET

Non-existing resolver.

JavaScript / NodeJs

Non-existing resolver.

TypeScript

Non-existing resolver.

Java

Non-existing resolver.

JavaRx

Non-existing resolver.

PHP

Non-existing resolver.

Swift

Non-existing resolver.

Taken from elsewhere.

Python

Non-existing resolver.

Ruby

Non-existing resolver.

Images

Always use alt text from assets.

Asset inserted directly into rich text.

Asset inserted through the Image component. No description, no border, 100% width, not zoomable.

Asset inserted through the Image component. No description, no border, 50% width, zoomable.

Asset inserted through the Image component. With description, border, 75% width, not zoomable.

Animated asset inserted through the Image component. With description, border, 100% width, not zoomable.

Tables

Taken from https://developer.kenticocloud.com/reference#webhooks-and-notifications

	Notes

	Valid types: {~asset~}, {~content_item~}, {~content_item_variant~}, {~content_type~}, {~project~}, {~project_settings~}, {~sitemap~}, {~taxonomy~}. For more information, see the list of types.

operation	The action performed on the data	string	Valid operations: {~upsert~}, {~publish~}, {~restore_publish~}, {~unpublish~}, {~archive~}, {~restore~}. For more information, see the list of operations.

Test font icon {<EMAIL_ADDRESS>
api_name	Whether the notification is for the production or preview version of the Delivery API	string	Valid value: {~delivery_production~}.

project_id	The ID of the project holding the changed content	string

webhook_url	A publicly available URL address of a webhook endpoint	string	Valid address format: {~https://example.com/webhook-url~}

created_timestamp	Formatted UTC time and date	string	Valid format: {~YYYY-MM-DDTHH:MM:SSZ~}. ISO-8601 formatted string.

Taken from https://developer.kenticocloud.com/docs/static-site-generators

Feature	Availability	Documentation

Retrieve content items	{@icon-success@}	View docs

Secure access	{@icon-error@}

Preview unpublished content items	{@icon-error@}

Filter content items	{@icon-error@}

Localization	{@icon-success@}	View docs

Retrieve linked items and items in Rich text	{@icon-success@}	View docs

Retrieve content as strongly-typed models	{@icon-success@}	View docs

Render components and items in Rich text	{@icon-success@}	View docs

Resolve links to content items in Rich text	{@icon-error@}

Retrieve taxonomy groups	{@icon-error@}

Webhook support	{@icon-error@}

Code generators	{@icon-success@}	View docs

Callouts

Worked examples

Learn how to integrate a search service into your app from worked examples in our blog posts.

Searching Content with Kentico Cloud: Algolia Integration – walks you through adding Algolia search service into an ASP.NET MVC application and updating search index in reaction to webhook messages.

Automate Azure Search index updates with webhooks – shows how you can use Azure Functions, Azure Search, and webhooks in a .NET web app.

Link to test article.

Disclaimers

This page only covers the built-in Kentico Cloud functionality. You also need to check any custom functionality in your project for personal data handling.

This page is provided for informational purposes only and should not be relied upon as legal advice. You can use the information to identify personal data and its flow in the system, and take appropriate measures. However, we recommend consulting with a legally qualified professional to verify that your project complies with the GDPR.

Links to Finding your content and home page.

API requests limits

The requests made to the Content Management API count towards the overall API calls limit set in our Fair Use Policy. For more information, see Pricing FAQ on our Kentico Cloud website.

Quick facts about codenames

Codenames are case sensitive identifiers of objects in Kentico Cloud. They are generated by the system each time the name of an object is updated. This also means that you cannot change codenames directly.

Embedded content

YouTube.com

Non-existing resolver.

Codepen

Non-existing resolver.

StackBlitz

Non-existing resolver.

Codesandbox.io

Non-existing resolver.

Lists

List item

List item

List item

List item

List item

List item

Another list item

Another list item

Another list item

Another list item

Another list item

Another list item

Another list item

Another list item

Another list item

Nesting list types is not broken.

Weird list item

What is this?

Smells like ...

First

Second

Third

Yes it is

Another list item

Third list item

Hopefully its gonna sort this out without any unwanted complications.

Okay, thanks. Looks better. However, I still think there is an issue with the HTML structure. The current result is:

I guess your intention is to have the following structure:

However, having the
 tag inside the
 tag is not valid according to HTML specification so that the parser behind comes up with that non-sense. I would rather see the
 tag there. Or better no wrapping tag.
What if I would like to have an unordered list where its list items would be processed by the resolver? I would end up with something like that:

Or that if you change
 to
:

And that is not a valid HTML structure.

But that is a matter of configuration, right? You don't have to use figure if you don't want to. You may also change the 'p' tag wrapper using the linkedItemResolver.linkedItemWrapperTag client configuration. It defaults to 'p', but I agree it would be useful to use div instead. I'll likely change this for final 6th release.
Does the above solve your issue?

You're right again :) However, what I find strange is that this happens only if p tag is used as linked item element wrapper. If I use div instead, the code looks like:

Honestly, I think this is a bug within parse5 lib. Can you try using div for linkedItemResolver.linkedItemWrapperTag? How does that work for you?
I'm not sure if its possible to get rid of the wrapper in parse5 without some custom regex processing or something like that. I would agree that it would be best to remove it all together since you can control html within your own resolved and add wrappers there if necessary.

It also works fine if I leave the object tag that Delivery API returns initially. What if I removed the ability to set the wrapper tag and just left the object there? Do you see any potential issues with that? Would it break formatting or would it not be valid in some cases? You would basically have:

Many thanks for your suggestions.
I haven't noticed that I can define the tag using the linkedItemResolver.linkedItemWrapperTag property. Setting that to div makes me happier. In case it is not technically possible to omit the wrapper element, then we have to live with that. With 6.0.0-beta.7 I see no more issues.
I wouldn't leave the object tag there as its semantics is understood as a multimedia content usually from an external source. The div tag is better IMHO as it has no semantics.
And regarding the parse5 lib, I think the correct answer is "it tries to output valid HTML and thus adds the extra tags". I remember WYSIWYGs or web browser parsers are doing the same thing.


unable to verify the first certificate

Trying out the "Using API keys" node code.  Adapted it for Google Sheets.
My own API key and spreadsheet id are in place of the dummies below.
The response from the API call is an error:
"unable to verify the first certificate".
If I remove the spreadsheetId line, it will respond "Missing required parameters: spreadsheetId".
I can't tell, from the error message, if this is a node or Google issue for me.
Code:
var { google } = require('googleapis');
var sheets = google.sheets('v4');
var API_KEY = 'my_api_key';
sheets.spreadsheets.get({
auth: API_KEY,
spreadsheetId: 'my_spreadsheet_id',
}, function(err, response) {
console.log('response: ' + response);
console.log('Result: ' + (err ? err.message : 'good'));
});
Thanks!

Weird.  Does this work for you from here?
https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/get

Also - are you by chance behind a proxy?

Hey, thanks so much for the quick reply.  It DOES work on the developers.google.com site.  I'm told we just installed a Barracuda firewall only about a month ago.  I need to run the node.js server on a standalone PC.  Any idea which IP(s) I'd need to whitelist on the Barracuda?

The certs link works great, the spreadsheets one is definitely being blocked by Barracuda.

Switched to our guest network... there's the traffic!  (not sure if the image can be pasted)...

Very psyched.  Able to read values from the spreadsheet's Sheet1.  Excellent questions, Justin, thanks for saving me a lot of time! Very much appreciated.

Great to hear you're on track :)


close the h2quic.RoundTripper in the example client

While it's not necessary, it's best practice to close the h2quic.RoundTripper.
That way, QUIC can do a proper connection shutdown.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@ad3fbd3). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #1091   +/-   ##
=========================================
  Coverage          ?   90.89%
=========================================
  Files             ?      107
  Lines             ?     7268
  Branches          ?        0
=========================================
  Hits              ?     6606
  Misses            ?      429
  Partials          ?      233

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 ad3fbd3...3e9c831. Read the comment docs.


(chore): bump deps to fix twistlock scan issue

Description of the change:

Bump the following dependencies to ensure we aren't using versions resulting in twistlock scan issue:

github.com/emicklei/go-restful/v3 --> v3.10.0
github.com/golang-jwt/jwt/v4 --> v4.4.3
golang.org/x/net --> v0.7.0

Motivation for the change:

fixes #6322

Checklist
If the pull request includes user-facing changes, extra documentation is required:

[ ] Add a new changelog fragment in changelog/fragments (see changelog/fragments/00-template.yaml)
[ ] Add or update relevant sections of the docs website in website/content/en/docs

/hold

Hi @everettraven
I see you are not able to merge this Pull Request due to github.com/distribution/distribution/v3
Could you please consider merging this CVE github.com/emicklei/go-restful/v3 --> v3.10.0 in a separate PR? Because this is a High Vulnerability CVE.
Or May I create a Separate Pull Request for the github.com/emicklei/go-restful/v3? Apologies for the inconvenience.
Thanks,

@ukumar009 Apologies for the delayed response! I just got some time to circle back around to this. I am planning on updating this PR to fix a number of CVE related issues.

/unhold


Storybook does not work with Vue components that import mixins

Cloned the vue kitchen sink from Storybook 3.4.11
npm i
npm run storybook

=> All kinds of errors because of missing vue-template-compiler...

npm i --save vue-template-compiler

npm run storybook
=> Appears to work now

Add file /src/stories/MyMixin.js with:
export default MyMixin = {};

Add to /src/stories/Button.vue:
import MyMixin from 'MyMixin.js';

Refresh browser and Storybook now reports:
ERROR in ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/stories/Button.vue Module not found: Error: Can't resolve 'MyMixin.js' in '/Users/madewith/MadeWith/vue-kitchen-sink/src/stories'
I've read about webpack settings that solved a seemingly similar issue with importing sub components here:
https://github.com/storybooks/storybook/issues/2695

@gabrielcsapo Thank you for following up.
I've tried the exact same thing in Storybook 4 Alpha with the same outcome.

that's not how we run the examples in the monorepo. You need to bootstrap everything before, not just the example.
Anyway, you should probably import it like this:
import MyMixin from './MyMixin.js';


Unable to build with pyinstaller

When I go to build my python program with PyInstaller to turn it into a windows exe, It throws an error:
Unable to find "C:\Users\3jbc2\nltk_data" when adding binary and data files
I have tried everything. Any ideas?

I ran into the same issue this morning. This resolved the issue: https://stackoverflow.com/questions/57128735/using-pyinstaller-with-nltk-results-in-error-cant-find-nltk-data
Also, part of my issue ended up being that I was using Python 3.8 which isn't supported by PyInstaller yet. Running pyInstaller with Python 3.7 in PipEnv resolved that issue as well. Now working just fine!

Or, you could try and build a setup.py using setuptools and a bash script instead of an exe. Which results in virtually the same output, or so I think.


Build ot-cli.exe as usermode Windows executable

Current coverage is 65.10% (diff: 100%)

Merging #649 into master will decrease coverage by 0.64%

@@             master       #649   diff @@
==========================================
  Files            95         99      +4
  Lines         12851      14338   +1487
  Methods        1789       1972    +183
  Messages          0          0
  Branches       1496       1684    +188
==========================================
+ Hits           8450       9335    +885
- Misses         3952       4476    +524
- Partials        449        527     +78

Powered by Codecov. Last update c063ec1...f21d645

Great to see windows support.  At first glance, the windows and posix drivers seem to share a lot in common.  Is it possible to share more code between the two?

They do share a lot in common, except for the console handling and the socket interfaces. I could probably combine them into one source, but I don't think the directory should be called posix then. What do you think we should call it? Maybe something like virtual since it isn't on a real device?

FYI, the build failure was introduced in #641.  I just merged #650 which moves the failing test back into the XFAIL list.  You'll need to rebase on top of master to get the checks to pass.

I was never really fond of the name for the posix platform, since it doesn't really build real support for OpenThread for Posix, it builds a simulated environment.
Not sure if I like the name virtual better, though, but that might have more to do with my negative feelings about how the physical layer is emulated with IPv4 sockets.
I'm curious how the posix platform performed with the Windows Subsystem for Linux.
I'll likely have more thoughts on this as I mull over it over the next day or so.

When I build ot-cli for Linux it runs just find on the Windows Subsystem for Linux.

So what exactly do you guys want changes to accept this PR?

It is a change that is going to cause us to have to change things internally, which tends to cause us to run behind on our own integrations. I realize that calling the platform the posix platform after this change is a bit of a misnomer, but I think it would make this change easier to swallow if we avoided renaming it for now, leaving it as "posix". Granted, it is misleading, but we have some milestones coming up and I would rather not have any renaming distractions.
Where possible, I'd rather the change use replacement implementations of missing posix functions rather than use #ifdefs, but I also realize that since we don't have any examples of that in this project yet that it is somewhat difficult to know what we would find acceptable for that.
I'm going to throw together a replacement implementation for strlcpy to replace the usage of strncpy. Then that should provide a model of how to do it. I'll try to punch that out today.

I think my latest changes satisfy all your requests. Please let me know if there is anything else you would like changed.

By the way, I put together that commit demonstrating how to add replacement functions. It is a bit larger than I originally thought, but after that commit gets merged adding new replacements for missing functions should be easy. It is tracked by #737.


Crossword sample

Would you please release one or two formated crosswords first if the whole dataset isn't ready right away? I tried to use your Crossword.py on .json file found on xwordinfo.com but failed. The initialize_grids didn't match the grids' format on .json.

Hey I added an example of an NYT puzzle inside the solver folder. You can also downloads any .puz file from various websites online and use those as input.


Test flax avail

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


Fix Quirk import extra gates bug

When more than one extra gate is provided only the last one was used for all of them.
Example:
extra_gates = {
    "Foo": cirq.rx(np.pi/2),
    "Bar": cirq.ry(np.pi/2),
}

cirq.quirk_url_to_circuit(
    'http://algassert.com/quirk#circuit={"cols":[["Foo"], ["Bar"]]}',
    extra_cell_makers=extra_gates)

0: ───Ry(0.5π)───Ry(0.5π)───

This is because the the extra_makers are defined as list comprehension, so only the last value is used for all the lambdas.
More details here: On Python's lambda and closures

@googlebot I signed it!

Should be done!


"The node  already exists in the voters set" error when creating a RawNode

Describe the bug
We often see errors like the following when we create instances of RawNode:
ERROR 2019-01-23T18:43:20Z: raft::raft: The node 1 already exists in the voters set.

To Reproduce

Create a file examples/two_mem_nodes/main.rs:

extern crate env_logger;
extern crate log;
extern crate raft;

use raft::prelude::*;
use raft::storage::MemStorage;

fn make_raw_node(configs: &[Config], idx: usize) -> Result<RawNode<MemStorage>, raft::Error> {
    let peers: Vec<Peer> = configs[idx]
        .peers
        .iter()
        .map(|id| Peer {
            id: *id,
            ..Default::default()
        })
        .collect();
    RawNode::new(&configs[idx], MemStorage::new(), peers)
}

fn main() {
    let _ = env_logger::try_init().unwrap();

    let configs = vec![
        Config {
            id: 1,
            peers: vec![2, 3],
            ..Default::default()
        },
        Config {
            id: 2,
            peers: vec![1, 3],
            ..Default::default()
        },
        Config {
            id: 3,
            peers: vec![1, 2],
            ..Default::default()
        },
    ];

    let _raw_node_1 = make_raw_node(&configs, 0).unwrap();
    let _raw_node_3 = make_raw_node(&configs, 1).unwrap();
    let _raw_node_3 = make_raw_node(&configs, 2).unwrap();
}

Update Cargo.toml accordingly:

diff --git a/Cargo.toml b/Cargo.toml
index 7ed554f..f2146af 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -38,3 +38,7 @@ travis-ci = { repository = "pingcap/raft-rs" }
 [[example]]
 name = "single_mem_node"
 path = "examples/single_mem_node/main.rs"
+
+[[example]]
+name = "two_mem_nodes"
+path = "examples/two_mem_nodes/main.rs"

Run it:

$ cargo run --example two_mem_nodes -- --nocapture
   Compiling raft v0.4.0 (/home/ht/src/pyrofex/other/raft-rs)
    Finished dev [unoptimized + debuginfo] target(s) in 2.33s
     Running `target/debug/examples/two_mem_nodes --nocapture`
ERROR 2019-01-23T20:07:33Z: raft::raft: The node 2 already exists in the voters set.
ERROR 2019-01-23T20:07:33Z: raft::raft: The node 3 already exists in the voters set.
ERROR 2019-01-23T20:07:33Z: raft::raft: The node 1 already exists in the voters set.
ERROR 2019-01-23T20:07:33Z: raft::raft: The node 3 already exists in the voters set.
ERROR 2019-01-23T20:07:33Z: raft::raft: The node 1 already exists in the voters set.
ERROR 2019-01-23T20:07:33Z: raft::raft: The node 2 already exists in the voters set.

Expected behavior
I expect to see no errors when creating an instance of RawNode.
System information
N/A
Additional context
It appears that doing the following is redundant, as the node's ProgressSet is already initialized properly when we call RawNode::new (by virtue of calling Raft::new):
https://github.com/pingcap/raft-rs/blob/c6b5d57dbc172dd50f94b0d9e4df2684338dab92/src/raw_node.rs#L253-L255
However, simply removing this causes some of the tests to fail, so I defer to your expertise on how to best address this problem.

An update to this, you can see that in https://github.com/pingcap/raft-rs/pull/196/files#diff-3e643971842b1203495f3e09ab4b6832L222 we removed the peers param from RawNode::new().
Prior to the full 0.6.0 release we'll need to make sure we have a clear correct way documented for folks to bootstrap and restore a cluster.


[Form Recognizer] Supporting multiple content sources for building a model

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-ai-formrecognizer

Handling in #29978


Add Coursera to friends of Rust.

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @alexcrichton (or someone else) soon.
If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.
Please see the contribution instructions for more information.

Thanks so much! Glad to have you all aboard :smile:


Nested router outlets (multiple router instances)

As a developer I want to add sub-routes dynamically to allow non-monolithic app structures so that the teams working on different parts of the app are free to define the routing structures for their sub routes without a central coordination.
As a Polymer developer I want to do that by adding a router outlet into a bundle layout component's template (that is itself rendered in a router outlet).
DoD:

the routes defined in a nested vaadin-router are rendered in the same resolve pass as root route component
if a route in a nested vaadin-router component prevents a transition, the outer router also stops the resolve pass
there is a demo of using nested vaadin-router elements

The common DoD applies.

Looks like this can be merged into #199.


Make changes based on feedback.

Closes # 63
📑 Description
Incorporate feedback from review of foundational CP.

✅ Checks

[ ] My pull request adheres to the code style of this project
[ ] My code requires changes to the documentation
[ ] I have updated the documentation as required
[ ] All the tests have passed
[ ] I have selected a committee co-chair to review the PR

ℹ Additional Information

Thanks for the feedback @bilhar97! @TomKowal  also caught the OID table was not updated correctly.
Two items I didn't address yet, but please review the others and, if you had some time, you can update these last two. Otherwise I will tackle them tomorrow morning.

<IP_ADDRESS>.1 Trigger Events: Reference to Appendix 0 -> "See Appendix 0 for details of HL7 V2 messages."

I saw the reference in both the CP and the applied doc so I'm not quite sure what this feedback item is requesting. If easier and you have time, please pull this branch and just make the change.

Line 1055: MSH segment missing fields i.e., character set, message type and OID

I just haven't done this yet. If you do pull the branch, you could update this also.


Invalid regex errors with --no-regex option

bump-my-version version: 0.9.3
Python version: 3.11.15
Operating System: macOS

Description
It looks like the constant strings I am providing to bump-my-version in a search and replace operations are interpreted as regular expressions, even if I explicitely pass the --no-regex option.
What I Did
Let starts with a simple changelog.md file containing:
# Changelog

## [0.0.1 (unreleased)](https://cool.url)

- Test unreleased package.

Now let's replace the (unreleased) part of the URL label with the current date:
$ bump-my-version replace --no-regex --no-configured-files --current-version "0.0.1" --search " (unreleased)](" --replace " ({now:%Y-%m-%d})](" ./changelog.md
Invalid regex 're.compile('\\ \\(unreleased\\)\\]\\(', re.MULTILINE|re.DOTALL)' for file ./changelog.md: missing ), unterminated subpattern at position 14.
Invalid regex 're.compile('\\ \\(unreleased\\)\\]\\(', re.MULTILINE|re.DOTALL)' for file ./changelog.md: missing ), unterminated subpattern at position 14.

The invokation seems to work, and changelog.md file is now:
# Changelog

## [0.0.1 (2023-08-29)](https://cool.url)

- Test unreleased package.

But I did not expect to have the error messages regarding regex compilation error.

@kdeldycke Is this still an issue with the 0.10.0 release?

Yes, I can confirm 0.10.0 fix this issue. Let's close this, and thanks for 0.10.0!


[realsense_camera/CMakeLists.txt] fix: finding librealsense library

Issue

No clear error if library was not found in CMake.
find_package(catkin OPTIONAL_COMPONENTS ...) was always overridden by find_package(catkin REQUIRED COMPONENTS ...). (library path for librealsense was always not written in catkin_LIBRARIES)
In current CMakeLists.txt, build system at first finds realsense (assumed to be installed without catkin), then re-finds librealsense (catkin package version). This could occur runtime error (undefined symbol) when realsense library (which is installed without catkin) is old.

Solution

fix: avoid to find_package catkin twice
find librealsense catkin package at first, and if not found then find realsense library by manual

We are about to release librealsense and realsense_camera as packages. Right now they are only in the Shadow Repository.
The existing code has been tested building with the follow configurations:

librealsense only installed without catkin (/usr/local)
librealsense only as a package via apt
librealsense installed without catkin (/usr/local) and as a package via apt [same versions]
librealsense installed without catkin (/usr/local) and as a package via apt [/usr/local older version]
All configuration work as expected. There is a Warning generated if you only have /usr/local version, but the build still completes successfully.
If there is no occurrence of librealsense, then the build will fail.

This method was done to support the cross over time of users having a /usr/local version and still working once switching to the packaged version. The packaged version will take precedence over a locally installed version. If the user builds librealsense from source using catkin_make, this version will be used.
Once the first packages are released from the ROS package server, the CMakeLists.txt will be updated to require librealsense from a package.

@furushchev
When I attempt to test your pull request on a system with only /usr/local librealsense (installed without catkin), the build fails.
CMake Warning at ros-realsense/realsense_camera/CMakeLists.txt:18 (find_package):   By not providing "Findlibrealsense.cmake" in CMAKE_MODULE_PATH this project   has asked CMake to find a package configuration file provided by   "librealsense", but CMake did not find one.
  Could not find a package configuration file provided by "librealsense" with   any of the following names:
librealsenseConfig.cmake
librealsense-config.cmake

  Add the installation prefix of "librealsense" to CMAKE_PREFIX_PATH or set   "librealsense_DIR" to a directory containing one of the above files.  If   "librealsense" provides a separate development package or SDK, be sure it   has been installed.
CMake Error at ros-realsense/realsense_camera/CMakeLists.txt:33 (message):   librealsense header files not found
-- Configuring incomplete, errors occurred!
Since only have a locally installed version of librealsense is the default case, this is a requirement.
Due to this problem, this PR will not be merged.


Added extension to .eslintrc

.eslintrc files without extension are deprecated
And thanks for this amazing tool!

Neat, thanks! I'll wait for CI to pass.

Sure, @mrmckeb, was already looking into it :smiley: . As it is documentation-related, I think it is better to open another PR. Or should add more commits to this one?

I'd say one PR, as the doc update is fairly minor and related, but @Timer might have a different opinion?

We can run with a separate PR -- this one is just internal for the monorepo. :-)
Feel free to just use the GH edit button to fix the typo in the docs.
Also, any app created with v2 automatically configures your Editor's linting so following that guide is unnecessary. Maybe we should note that. That PR might have more back and forth before it's finalized.
Thanks!


[AutoPR mysql/resource-manager/postgresql/resource-manager] [Don't Merge, Service rollout ~March/1/18 ] Swagger for new API changes 2017-12-01

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/2207

Codecov Report

Merging #2396 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #2396   +/-   ##
=======================================
  Coverage   54.27%   54.27%
=======================================
  Files        5326     5326
  Lines      126606   126606
=======================================
  Hits        68712    68712
  Misses      57894    57894

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 72d71b3...880e3dc. Read the comment docs.


[Event Request] codeunit 1220 "SEPA CT-Export File" - OnBeforeBLOBExport

Can you add event OnBeforeBLOBExport in codeunit 1220 "SEPA CT-Export File"?

What params should be passed by reference?

What params should be passed by reference?

FileCreated and IsHandled :)


Add ThreeLevelAccordian to readme

Project URL
https://github.com/amratab/ThreeLevelAccordian
Description
Customisable three level accordian with image and accessory options.
Why it should be included to awesome-ios (optional)
I had to make changes to present ones to get three level accordian. Also, this one supports large text.
Checklist

[x] Only one project/change is in this pull request
[x] Addition in chronological order (bottom of category)
[x] Supports iOS 9 or later
[x] Supports Swift 3
[x] Has a commit from less than 2 years ago
[x] Has a clear README in English

          1 Error

:no_entry_sign:
Found 2 link issues

Link issues by awesome_bot

Line
Status
Link

2258
301
http://www.ioscreator.com/ redirects tohttps://www.ioscreator.com/

2265
500
https://code.facebook.com/ios/

  Generated by :no_entry_sign: danger

Hey @amratab, thanks for contributing! 😄 👍


Add deprecated marker for fields in a model

Checks

[x] I added a descriptive title to this issue
[x] I have searched (google, github) for similar issues and couldn't find anything
[x] I have read and followed the docs and still think this feature/change is needed
[x] After submitting this, I commit to one of:

Look through open issues and helped at least one other person
Hit the "watch" button on this repo to receive notifications and I commit to help at least 2 people that ask questions in the future
Implement a Pull Request for a confirmed bug

Feature Request
Pydantic Fields should have a boolean option deprecated (default False) which can be used to mark deprecated fields. Pydantic plugin for Pycharm can also use this field to see if the field should be used any longer, and show code hints if someone is trying to interact with deprecated fields.
Output of python -c "import pydantic.utils; print(pydantic.utils.version_info())":
$ python -c "import pydantic.utils; print(pydantic.utils.version_info())"
             pydantic version: 1.6.1
            pydantic compiled: True
                 install path: ...
               python version: 3.6.8 |Anaconda, Inc.| (default, Dec 29 2018, 19:04:46)  [GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)]
                     platform: Darwin-19.6.0-x86_64-i386-64bit
     optional deps. installed: ['typing-extensions']

Sample Code Snippet
from pydantic import BaseModel, Field

class MyModel(BaseModel):
     oldField: Optional[int] = Field(None, deprecated=True, description="Use `newField` instead of this")
     newField: Dict[str, int] = Field({}, description="New field to accept string to key values")

I would find this extremely useful as I often encounter usage that is still accepted but discouraged in favour of other approaches.

Maybe this implementation should emit a DeprecationWarning on the model's instantiation. This warning is ignored by default, unless triggered by code in __main__, so it wouldn't modify the common behaviour and would make it easier to implement deprecation policies.
Also, deprecated was included as a boolean meta-data annotation in JSON Schema Validation 2019-09, so this Field property would also facilitate to implement JSON Schema to Pydantic proxies.
@dominikandreas I think this option would probably work better just as an annotation to be implemented at a validation level. A field can be deprecated by several fields or by none at all. Also, DeprecatedAlias is confusing since it could be interpreted as the alias property of the DeprecatedField instead of as the substitute field.

Any update regarding this? Can be very helpful.

It will remain possible to set the deprecated field in the JSON schema in v2, though it will change from being a keyword argument to the Field to going on a new keyword argument called json_schema_extra.
Regarding emitting DeprecationWarnings, IDE-integration, etc., I think that's a bigger discussion. You could definitely create a reusable validator that would emit a DeprecationWarning on initialization and use it in your own code.
Based on the suggestions already received in this thread (most of which I do think are reasonable), I think if we try to provide built-in support there will be a lot of debate about exactly how it should work, and it will come with a significant maintenance burden. I think we'd need to wait until v2 is released to look at this more seriously, but in principle I'd be open to a PR if whoever wants to open it can establish consensus on how the functionality would work. (That would also assume, and maybe this is a big assumption, that the implementation doesn't require adding a significant amount of complexity/maintenance burden to the library.)

@dmontagu There's an open PEP (PEP 702) to marking deprecations using @typing.deprecated, which adds a DeprecationWarning to classes and functions/methods and sets a __deprecated__ attribute with the deprecation message. (It was implemented as an expermiental feature in typing_extensionsp a couple of moths ago).
I think that enabling a similar approach through Field(deprecated=...) be interesting for several reasons.

the warning: DeprecationWarning is the builtin way to mark an object as deprecated. These warnings are ignored by default, so it has less to do with the warning itself as with the generated event. It's much simpler to capture these warnings and act accordingly than to check whether a deprecated field has been instantiated in each case.

the field: Relegating the property to a simple annotation in the JSON schema excludes it from the API. Whether a property is deprecated should not only have to do with the JSON schema, but also with the model. Having to go through the schema to determine if an attribute is deprecated would be cumbersome and error prone.

type checking: this PEP comes from suggestions made by mypy and Pyright. This would be a simple way of making deprecations visible to type checkers.

The implementation could be something like:
def Field(
    ...
    deprecated: bool | str = False,
):
    ...
    if deprecated is not False:
        if isinstance(deprecated, str):
            _deprecated_msg = deprecated
        else:
            _deprecated_msg = '{alias!r} is deprecated'

        # wraps the field as in typing.deprecated
        ...

I would be happy to submit a PR if you are open to consider this alternative :)

Well, if that PEP gets accepted, that would definitely offload the burden of figuring out how it should work; I'd be inclined to follow similar patterns as @typing.deprecated for fields, and use that information to populate the JSON schema fields.
Given that there is a PEP, I'm pretty reluctant to implement our own approach until we see how that shakes out because the last thing I'd want is to have our own approach that ends up incompatible with how that PEP works (especially if dataclasses ends up adding deprecation support in some manner, which I'd want to replicate as closely as possible), and then ending up unable to course-correct for reasons of backwards compatibility.

Glad to hear you will follow this pattern if the PEP is accepted :) And yes, it makes perfect sense to wait for the acceptance of the PEP before making a decision. But although

@typing.deprecated is also meant for dataclasses,
from typing_extensions import deprecated
from dataclasses import dataclass
import warnings

warnings.filterwarnings('error', category=DeprecationWarning)

@deprecated('this model is deprecated')
@dataclass
class Model:
    prop: int = 1

try:
    i = Model()
except DeprecationWarning as e:
    print(e)
#> this model is deprecated

print(Model.__deprecated__)
#> this model is deprecated

(and it just works with Pydantic models)
from typing_extensions import deprecated
from pydantic import BaseModel

@deprecated('submodel is deprecated')
class SubModel(BaseModel):
    prop: int = 1

class Model(BaseModel):
    sub: SubModel | None

m = Model()
#> Ok

m = Model(sub=SubModel(prop=1))
#> DeprecationWarning: submodel is deprecated

I think this is more about deprecating fields than models... and typing.deprecated is not directly usable with fields:
from pydantic import BaseModel, Field
from typing_extensions import deprecated

class Model(BaseModel):
    id: str = deprecated('prop is deprecated')(Field(alias='_id'))
#> raises TypeError (receives an instance, not a class or a callable)

class Model(BaseModel):
    id: str = deprecated('prop is deprecated')(Field)(alias='_id')
#> raises DeprecationWarning (FieldInfo is called on declaration)

So this is a please don't definitively discard the deprecated argument yet, rather than a please implement this asap ;)

I think this is more about deprecating fields than models... and typing.deprecated is not directly usable with fields:

Yes, I understand this. I'm hoping that it either ends up being clear that dataclasses has no intention of ever supporting deprecating fields, or that some approach to deprecating fields ends up being part of that PEP. (My main concern is another PEP will come along that will add deprecation to individual fields of a dataclass.)
Either way, I think it will make sense to add support for deprecating fields (beyond just on the level of JSON schema) once there is a little more clarity around the right behavior.

Our plan is to add this to annotated-types, then respect that.

This would be nice to have in V2, but since adding it should be entirely backwards compatible, it's not a blocker for V2 - can easily be added in 2.1 etc.

Doesn't this work out of the box? The Field docs explain that any keyword arguments are added verbatim to the field's schema.

The page is gone/moved and shows 404.

Marking this as complete via https://github.com/pydantic/pydantic/pull/8237.
Thanks for the awesome work, @Viicos!!! This will be one of our highlight features for 2.7.0 🚀 !!
Next steps:

[ ] Adding support for deprecated models
[ ] Adding support for configuring params like stacklevel, etc

Great!
I'll open a follow up issue to track remaining features that I had in mind

how to disable warning for specific access made in our class internally(to copy the old name to the new one if exists)?
class MyClass(BaseModel):
    def __init__(self, **data: Any) -> None:
        super().__init__(**data)
        # todo @V2: drop support for 'num_of_users' in favor of 'num_of_workers'
        if self.num_of_users is not None:
            deprecated_warning(
                'the "num_of_users" property is deprecated in would be removed in v2, use "num_of_workers" instead'
            )
            self.num_of_workers = self.num_of_users

this results in the each usage of our class:
/home/tmax/development/project/config/models.py:195: DeprecationWarning: deprecated
  if self.num_of_users is not None:

how to skip warning for very specific usages?

how to skip warning for very specific usages?

See the warning note under https://docs.pydantic.dev/latest/concepts/fields/#deprecated-as-a-boolean

Yep, this is what the note I linked does


fix bug in initial estimate of fermi fitting

@CumulonimbusCalvus @CJvanDiepen
Fix issue with _estimate_fermi_model_center (which I renamed to _estimate_fermi_model_center_amplitude)

@eendebakpt
The variable namings are indeed improved like this. Seems that I somehow messed up using both the normal data and the derivative data in the previous adjustment. Thanks for fixing this.
In the function _estimate_fermi_model_center_amplitude the usage of both step_size and amplitude_step seems redundant, hence one can be removed.

@CJvanDiepen @CumulonimbusCalvus Done

@CumulonimbusCalvus Addressed the comments


Support for proxy configuration might be needed

Short Description
Team
I tried to install it locally on my env. However, I'm after firewall thus I would need to configure proxy server to be able to fetch any artefacts from the internet. Thus I called gradle as:
./gradlew -Dhttp.proxyHost=135.245.X.X -Dhttp.proxyPort=8000 -Dhttps.proxyHost=135.245.X.X -Dhttps.proxyPort=8000 --debug
unfortunately, it didn't help my installation failed as below:
17:40:40.860 [DEBUG] [org.gradle.process.internal.health.memory.MemoryManager] Emitting JVM memory status event {Maximum: 536870912, Committed: 401604608}
16:22:59.452 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger]
16:22:59.452 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger] > Task :cogboard-webapp:npmInstall
17:40:41.163 [ERROR] [system.err] npm ERR! code ECONNRESET
17:40:41.166 [ERROR] [system.err] npm ERR! errno ECONNRESET
17:40:41.169 [ERROR] [system.err] npm ERR! network request to https://registry.npmjs.org/react-iframe failed, reason: read ECONNRESET
17:40:41.171 [ERROR] [system.err] npm ERR! network This is a problem related to network connectivity.
17:40:41.178 [ERROR] [system.err] npm ERR! network In most cases you are behind a proxy or have bad network settings.
17:40:41.178 [ERROR] [system.err] npm ERR! network
17:40:41.178 [ERROR] [system.err] npm ERR! network If you are behind a proxy, please make sure that the
17:40:41.178 [ERROR] [system.err] npm ERR! network 'proxy' config is set properly.  See: 'npm help config'
17:40:41.247 [ERROR] [system.err]
17:40:41.247 [ERROR] [system.err] npm ERR! A complete log of this run can be found in:
17:40:41.248 [ERROR] [system.err] npm ERR!     /home/malyska/.npm/_logs/2020-02-11T16_40_41_198Z-debug.log
17:40:41.257 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing state to: FAILED
17:40:41.258 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Process 'command '/home/malyska/dev/cogboard/cogboard-webapp/.gradle/nodejs/node-v10.16.0-linux-x64/bin/npm'' finished with exit value 1 (state: FAILED)
17:40:41.260 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Execute exec for :cogboard-webapp:npmInstall'
17:40:41.260 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Execute exec for :cogboard-webapp:npmInstall' completed
17:40:41.261 [DEBUG] [org.gradle.api.internal.tasks.execution.DefaultTaskSnapshotter] Snapshotting property $1 (Output) for task ':cogboard-webapp:npmInstall'
17:40:41.265 [DEBUG] [org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter] Removed task artifact state for {} from context.
17:40:41.265 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Task :cogboard-webapp:npmInstall'
17:40:41.252 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger]
17:40:41.252 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger] > Task :cogboard-webapp:npmInstall FAILED
17:40:41.266 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Task :cogboard-webapp:npmInstall' completed
Solution (optional)

add into wiki procedure how to build and launch after the firewall

Acceptance Criteria
N/A
Additional context (optional)
N/A

I've added few more flags as below, still checking but it fixed proxy issue:
malyska@sebaBox:~/dev/cogboard$ npm config set proxy http://135.245.X.X:8000
malyska@sebaBox:~/dev/cogboard$ npm config set https-proxy http://135.245.X.X:8000
malyska@sebaBox:~/dev/cogboard$ npm config set strict-ssl false

The last step is proxy for docker since 17.07 and higher:
cat ~/.docker/config.json
{
"proxies":
{
"default":
{
"httpProxy": "http://135.245.X.X:8000",
"httpsProxy": "http://135.245.X.X:8000",
"noProxy": "localhost,<IP_ADDRESS>,::1,localaddress,,*.YOUR.DOMAIN.com"
}
}
}

@SebaM - Thanks for this tip about setting proxies. We did not encounter this kind of issue as we don't use it as you do. When we setup CogBoard on our local PC's we are inside our private company network so there is no need to set up any proxies. With my current setup, I'm unable to test your solution but I will add a link to this issue in our Tips & Tricks wiki section.
Once again thanks for your help.

No problem. This is a typical case "do once and forgot" ;-) .
My new deploy seems to be working at my side.


Fix code lookup not accounting for linkReference placeholder

Fixes a crash caused by there being non hexadecimal characters in the form of placeholders for linked library addresses in the deployedBytecode. When handling this bytecode, replaces these placeholders with zeroes, and then also tracks the linkReferences as emitted by the solc compiler along with the bytecode to remove these ranges from the comparison just as the immutables are removed.
Also hides the interimStates cell if --expand-config is not passed, as is already done for the jumpDests cell.

I'm assuming the failures are due to flakiness, retrying CI.


Make prelude support nasm

We use a certain open source third party library which has some assembly files which can only be built with nasm.  nasm has a couple of command line differences that are relevant for the purposes of getting minimal nasm support:

response files don't use the syntax @foo.argsfile, rather they use the syntax<EMAIL_ADDRESS>Content of response files cannot be quoted.
src file input is not prefixed with -c.

Since our toolchain now conditionally uses nasm or the default toolchain assembler, we are taking advantage of cxx_toolchain_override().  This was missing the ability to override some of the assembler arguments (e.g. we need to set compiler_type="nasm"), and also we discovered a few bugs where some fields were not null checked.  So all of this is fixed in this PR.
One thing I don't entirely understand is depfiles, or if I need to do anything.  nasm accepts a couple of relevant command line options, which I don't fully understand how to use
    -M            generate Makefile dependencies on stdout
    -MG           d:o, missing files assumed generated
    -MF file      set Makefile dependency file
    -MD file      assemble and generate dependencies
    -MT file      dependency target name
    -MQ file      dependency target name (quoted)
    -MP           emit phony target

I can get a .d file to generate by passing -MD /path/to/d/file -MT /path/to/obj/file but I don't know what's going to happen if I omit this.  Everything seems to work for me.  but maybe it's because none of my asm files depend on any other external files.  Willing to investigate this further with some guidance, but the PR already works for me as is, so if people are ok with the current missing depfile support, so am I.

Gh says there are conflicts, could you rebase? Will import afterwards

Done


Fix typo in readme.

The first command in the readme doesn't work because it says to use
POST, but only GET, PUT and DELETE are supported for config. This makes
the readme example match the script's behaviour.

Thanks @danhawkes ! :+1:


List of enlightened Microsoft apps

Hello,
Any plans to include WVD in WIP?
Right now if I'm connected via WVD, inside in WVD local disk mapping allowed by default, this means I can copy corporate data directly to my PC drive and data will be not encrypted on my PC.
WVD uses Remote Desktop msrdc.exe and msrdcw.exe, not sure if we should simply import app info from file or wait for some update on WIP policy?

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

ID: b5ed0150-0172-f3ad-3c7f-3a7141efbe64
Version Independent ID: 6a978d2b-a0ff-1052-ce00-06f02f30cfa1
Content: List of enlightened Microsoft apps for use with Windows Information Protection (WIP) (Windows 10) - Microsoft 365 Security
Content Source: windows/security/information-protection/windows-information-protection/enlightened-microsoft-apps-and-wip.md
Product: w10
Technology: windows
GitHub Login: @DulceMontemayor
Microsoft Alias: dansimp

@lightupdifire According to this thread it works but it's quite tricky to configure it right. More details here.
Looking at the WVD Roadmap and the latest announcements i don't see anything related to WIP.

@VLG17
From our side, we don't see any errors, like cannot update feed or start Remote Desktop.
I do see the app as "enlightened", issue is that data copied from the Remote Desktop to my PC not encrypting.
Then maybe good to add a FAQ for WIP for WVD support?


include eslint-plugin-unicorn

eslint-plugin-unicorn is required by eslint-config-bluedrop

Good catch!


feat: admission webhook sidecar rewrite

Summary:

define Pebble layer
use KubernetesResourceHandler to manage k8s resources (crds and auth_manifests)
use KubernetesServicePath library to patch the admission webhook service
define on_event handler that performs all required actions for the charm
rewrite cert generation to be more robust
upload certs to container with container.push
define on_remove handler to remove resources safely

TODO:

handle upgrade event
implement health check on admission webhook service
handle update status event to report health check status
create unit tests for: Not leader scenario, No relation scenario, Pebble layer, deploy K8s resources, generate certs
add integration tests for on_remove

Will take a look when the work is complete.