Add versioning for major/breaking changes

User Story
As a data producer
I need my data to be upversioned when i make a major (breaking) change to my table schema
So that consumers of my data can point their downstream processes at the latest version
Value / Purpose
Implementation of data product versioning, enabling management of breaking changes to data products.
Hypothesis
If we make a major change for a schema
Then the parent data product will be up-versioned and created as a new version of the database in athena
Proposal
The copying of data and creation of a new data product version should be handled through the versioning module.
This will need to be added to the daap-update-schema lambda handler so that the expected behaviour for the data happens on a major schema update
Additional Information
This ticket is dependant on https://github.com/ministryofjustice/data-platform/issues/1797 so we have version suffixes on databases/data products
Definition of Done

[ ] Another team member has reviewed
[ ] Tests are green

Do first: #2064

Tom's related PR is almost done (draft here https://github.com/ministryofjustice/data-platform/pull/2363) so I'm going to start looking into this now

iii) may not be necessary... but it possibly makes the update process simpler, because it means that the user has to load a new snapshot only for the table that they changed, rather than loading a new snapshot for everything.
Some different scenarios:

User removes a column. In this case we can use the new metadata with the old parquet files.
User removes an entire table. In this case we can copy the existing schemas
User changes a column data type. In this case we cannot use the new metadata with the old parquet files, as we would get an athena error

The following scenarios are minor updates so will not be affected by this ticket:

Adding a column
Adding a table
Changing descriptions for a column
Changing product level metadata

Question: Do we need to create the glue database right away following an update?

If so, then it is probably the same amount of work to populate historical tables as to leave them empty until the next athena load.

If not, then we may have a period of time where the metadata is in the catalogue but the tables don't exist, which is more confusing for users. This scenario can also occur when new schemas are added but is less likely to be an issue in that case.

Scenario from a consumer perspective:

Data owner updates a schema
Consumer notices that a major update is available
Consumer tries to use the new version

Maybe new major versions need to go through some kind of draft state until the first athena load has completed successfully? Until then, we don't send it to the catalogue and don't send out notifications.

Proposed behaviour for different scenarios (TBC)
Can split these scenarios into
A. cases where we can create the new table using historical data (e.g. when deleting a table)
B. cases where a new snapshot will be required before the new table is "ready"
I think case A does exist, so I can start looking at this later this afternoon.
Case B needs some further refinement. Current proposal:

the data owner could pass a flag indicating a new snapshot will follow
if the flag is present, we store it as part of the table schema
we could use the presence of the flag to prevent versions of the data product that are pending a new snapshot from being exposed to data consumers via the catalogue

https://github.com/ministryofjustice/data-platform/pull/2421#issue-1999529666


Site swap in GUI For some tenants

Please update this to provide information that Replacing the root is available in the GUI in some tenants  the following was provided to me from Microsoft Support.
Ensure the following:
•	The site you select as the new root site must be a communication site (SITEPAGEPUBLISHING#0) or a modern team site that isn't connected to a Microsoft 365 group (STS#3) and where the publishing feature has never been activated.
•	The current root site can't be connected to a Microsoft 365 group.
•	When you replace the root site, both the current site and the new site can't be hub sites or associated with a hub. If either site is a hub site, unregister it as a hub site, replace the root site, and then re-register the site as a hub site. If either site is associated with a hub, disassociate the site, replace the root site, and then reassociate the site.
•	Replacing the root site with another site replaces the entire site collection with the new site collection. If your current root site has subsites, they'll be archived.
•	The site you select as the new root site must be within the same domain as the current root site.
If the above is confirmed then follow the below steps:
•	Navigate to SharePoint admin center
•	In the upper right, make sure the All sites view is selected.
•	In the URL column, select to sort A to Z so the current root site appears at the top of the list.
•	Select the root site (https://contoso.sharepoint.com).
•	Select Replace site.
•	In the URL of the site you want to use box, enter the full or relative URL of the site that you want to become the new root site.
•	Select Save.
•	While the root site is being replaced, it might return a "not found" (HTTP 404) error for few minutes.
•	After you replace the root site, content must be recrawled to update the search index. This might take some time depending on factors such as the amount of content in these sites. Anything dependent on the search index might return incomplete results until the sites have been recrawled.
•	If the new root site was an organization news site, update the URL. Get a list of all organizational news sites
[Enter feedback here]

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

ID: 32473b7b-386e-1440-6bfa-1a9b2413e2aa
Version Independent ID: 54a60006-3d61-4bb9-a040-60fe77ef9f85
Content: Invoke-SPOSiteSwap (SharePointOnlinePowerShell)
Content Source: sharepoint/sharepoint-ps/sharepoint-online/Invoke-SPOSiteSwap.md
Service: sharepoint-powershell
GitHub Login: @WayneEwington
Microsoft Alias: waynewin

Hello @brookehyde
Many thanks for your feedback.
I read the article and I found that some of the things you shared here are already in it

• The site you select as the new root site must be a communication site (SITEPAGEPUBLISHING#0) or a modern team site that isn't connected to a Microsoft 365 group (STS#3) and where the publishing feature has never been activated.

Information on the article:
"If the target is the root site at https://tenant-name.sharepoint.com then the source site must be either a Modern Team Site (STS#3) or a Communication Site (SITEPAGEPUBLISHING#0)."

• The current root site can't be connected to a Microsoft 365 group.

Information on the article:
"The source and target sites can't be connected to an Office 365 group."

• When you replace the root site, both the current site and the new site can't be hub sites or associated with a hub. If either site is a hub site, unregister it as a hub site, replace the root site, and then re-register the site as a hub site. If either site is associated with a hub, disassociate the site, replace the root site, and then reassociate the site.

Information on the article
"They also can't be hub sites or associated with a hub. If a site is a hub site, unregister it as a hub site, swap the root site, and then register the site as a hub site."

• Replacing the root site with another site replaces the entire site collection with the new site collection. If your current root site has subsites, they'll be archived.

This should be implied as subsites belong to the site being swapped and archived.

• The site you select as the new root site must be within the same domain as the current root site.

Will propose clarifying that this cmdlet works to swap sites in the same SP Online Tenant.
Many thanks

The big omission is that it is in the GUI!
Get Outlook for iOShttps://aka.ms/o0ukef

From: Andres Mariano Gorzelany<EMAIL_ADDRESS>Sent: Friday, October 16, 2020 12:21:25 PM
To: MicrosoftDocs/office-docs-powershell<EMAIL_ADDRESS>Cc: Brooke Hyde<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/office-docs-powershell] Site swap in GUI For some tenants (#6668)
Hello @brookehydehttps://github.com/brookehyde
Many thanks for your feedback.
I read the article and I found that some of the things you shared here are already in it
• The site you select as the new root site must be a communication site (SITEPAGEPUBLISHING#0) or a modern team site that isn't connected to a Microsoft 365 group (STS#3) and where the publishing feature has never been activated.
Information on the article:
"If the target is the root site at https://tenant-name.sharepoint.com then the source site must be either a Modern Team Site (STS#3) or a Communication Site (SITEPAGEPUBLISHING#0)."
• The current root site can't be connected to a Microsoft 365 group.
Information on the article:
"The source and target sites can't be connected to an Office 365 group."
• When you replace the root site, both the current site and the new site can't be hub sites or associated with a hub. If either site is a hub site, unregister it as a hub site, replace the root site, and then re-register the site as a hub site. If either site is associated with a hub, disassociate the site, replace the root site, and then reassociate the site.
Information on the article
"They also can't be hub sites or associated with a hub. If a site is a hub site, unregister it as a hub site, swap the root site, and then register the site as a hub site."
• Replacing the root site with another site replaces the entire site collection with the new site collection. If your current root site has subsites, they'll be archived.
This should be implied as subsites belong to the site being swapped and archived.
• The site you select as the new root site must be within the same domain as the current root site.
Will propose clarifying that this cmdlet works to swap sites in the same SP Online Tenant.
Many thanks
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/office-docs-powershell/issues/6668#issuecomment-710259418, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ALMUGP3WEF3BWS4D4AFFIQDSLB6JLANCNFSM4SKES4PA.

The big omission is that it is in the GUI! Get Outlook for iOShttps://aka.ms/o0ukef
…

Hello @brookehyde
How are you?
That is documented here https://docs.microsoft.com/en-us/sharepoint/modern-root-site#replace-your-root-site

@get-itips Thank you very much for the contribution and sharing this explanation. @brookehyde Hope this comment is helpful for you. If you see a documentation update is required, please feel free to open an issue for the same. We proceed here to close it. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


Different NICMOS observations have the same OPUS ID

Here are two example observations from HSTN0_7319:
"HSTJ0_7319","DATA/VISIT_01/N41S01010.LBL","N41S01010","N41S01010", 7319,"Goguen, Jay             ","HST-J-NICMOS-5-ID7319-V1.0     ","NICMO
S","NIC2  ","IMAGE         ","HST_PREVIEW_DOCUMENT","BINARY","1997-06-12","2017-12-20T15:33:13","1997-06-12T19:43:02","1997-06-12T19:47:18",
256.0,"JUPITER","IO              ","IO-N2BO                        ","POL0L             ",1.9950,0.2100,0.2100,2.1000,1.8900,"NIC2FIX
","NORMAL              ","FINE     ","N/A  ","MULTIACCUM",116 ,85
"HSTJ0_7319","DATA/VISIT_01/N41S01011.LBL","N41S01011","N41S01011", 7319,"Goguen, Jay             ","HST-J-NICMOS-5-ID7319-V1.0     ","NICMO
S","NIC2  ","IMAGE         ","HST_PREVIEW_DOCUMENT","BINARY","1997-06-12","2017-12-20T15:33:13","1997-06-12T19:48:28","1997-06-12T19:52:44",
256.0,"JUPITER","IO              ","IO-N2BO                        ","POL0L             ",1.9950,0.2100,0.2100,2.1000,1.8900,"NIC2-FIX
","NORMAL              ","FINE     ","N/A  ","MULTIACCUM",256 ,256
Note the names are N41S01010 and N41S01011. We now give them the same OPUS ID. However, they have different start times: 1997-06-12T19:43:02 vs. 1997-06-12T19:48:28. This implies to me they are separate observations, not "different versions" of the same observation.
Should we be dropping that last character of the NICMOS filename as we currently are, or keep it and make these observations separate?

From meeting 11/20/18: In the case where the last character is a digit, they should be different observations. Mark will fix this in PdsFile.

Moved to pds-webtools


GTM - Dynamic IP filtering for internal traffic

Edit: Please read @ddveloper's comment below! We will implement the localStorage option for IP filtering. However, we will need to find a solution that will work for mobile devices.

To create a "developer cookie" that we can use to filter out data generated by internal traffic (QA testing on prod env).

Replace/edit existing GA code snippet to check for the "developer cookie" in the scripts before sending any data to GA
For each QA using Chrome, install the extension, set the developer cookie value
Test

If we are successful in filtering out IP with this method, we will look into how to insert cookies in other browsers!

as @joshmorel suggested, the localStorage can be manually configured and the GA code can be updated based on that, this can be applied to a wider range of browsers since they all support setting localStorage value.
I tested the below code with my GA account, after manually configuring my Chrome and Microsoft Edge, with a pair key-value qa_dev: true, it works as expected
	<!-- Global site tag (gtag.js) - Google Analytics -->
	<script async src="https://www.googletagmanager.com/gtag/js?id=G-xxxxx"></script>
	<script>
		if (localStorage.getItem("qa_dev") === "true") {
			alert('welcome! QA team');
		} else {
			window.dataLayer = window.dataLayer || [];
			function gtag(){dataLayer.push(arguments);}
			gtag('js', new Date());
			gtag('config', 'G-xxxxx');
		}
	</script>

@doheekim93 @ddveloper
I think the localStorage is the best way to do it, but on mobile devices you can't set a new localStorage value, so I was thinking maybe add a hidden route on front-end that will set the QA key to true.
So like you can go to fightpandemics.com/enableqa and that will set the localStorage key for you and redirect you.


[Bug] Nexterm Nginx Reverse Proxy

General

[X] I have updated to the latest version of Nexterm.
[X] My bug has not been reported yet.

The Bug
Hello!
I am trying to point a domain to Nexterm with the nginx reverse proxy manager. At the beginning it does work very well, but if i try to connect to any server via ssh i get the error in the browser console:
WebSocket connection to 'wss://terminal.mydomain.de/api/servers/sshd?sessionToken=secret&serverId=1&identityId=1' failed:
What device are you using to access the page?
In the browser
Which operating system is your Nexterm instance running on?
Linux

@crocofied have you enabled websocket support in your NGINX proxy config?


split monolithic config docs into separate files

Codecov Report

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

@@            Coverage Diff            @@
##             master    #6220   +/-   ##
=========================================
  Coverage          ?   83.23%
  Complexity        ?    12516
=========================================
  Files             ?     1450
  Lines             ?    47393
  Branches          ?     5814
=========================================
  Hits              ?    39446
  Misses            ?     5256
  Partials          ?     2691

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 46e1b1f...c59eaad. Read the comment docs.


add docs section to reference.octant.dev

Signed-off-by: Wayne Witzel III<EMAIL_ADDRESS>

Locally, test this using npm run storybook from the web/ folder.


Automatic Updates without reload

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.
[X] I have read the console error message carefully (if applicable).

Description
Prefetching sidebar items: Docusaurus prefetches pages when opening sidebar items, which works perfectly fine.
Prefetching pages on hover: When the content has changed and the user did not yet reload the docusaurus page the user receives a 404 in the network tab and docusaurus automatically fetches the newer version of the content, which also works fine.
The thing is that both of these concepts work perfectly fine on their own. A problem we encountered is that a combination of both (I guess it is the combination somehow) will break the behavior and the user ends up in a never ending loading state (unless the user manually reloads the page).
Reproducible demo
https://github.com/JPeer264/docusaurus-cache
Steps to reproduce
The reproduction is written inside the docusaurus home. But to complete it here I will copy it here as well:
Reproduction

Build and run the docker image
$ docker build -t docusaurus .
$ docker run -p 3000:80 --rm docusaurus

Open http://localhost:3000/ in your browser and open up all pages.

In your browser return to the sidebar item Reproduction and reload the page (leave the cache as is)

In your editor change the header /pages/subfolder/another-subfolder/modifyMe.md to something else

Rebuild everything as described in point 1. (remember to not reload the page)

In the browser, and without reloading, open Subfolder and try to open Some important heading

💥

Video
Kapture 2022-07-04 at 13.26.38.webm
Expected behavior
I would expect that the page Some important heading will load without reloading as this page was not affected by anything.
Actual behavior
The page Some important heading does not load as the refetch was pointing to a 404.
Your environment

Public source code: https://github.com/JPeer264/docusaurus-cache
Public site URL: -
Docusaurus version used: 2.0.0-beta.21
Environment name and version (e.g. Chrome 89, Node.js 16.4): NodeJS 16.14.2
Operating system and version (e.g. Ubuntu 20.04.2 LTS): Natively macOS 11.6.7 (20G630), Docker env: linux/amd64 based on the nginx image

Self-service

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

Hey, this is a duplicate of #7599 and fixed in the next version (expect a release this week). Try the canary release for now.

Thanks a lot! I was searching for the correct issue. Seems that my search skills need to improve ;)

Yeah, I wouldn't have arrived at that either if I'm searching this myself :/ Accidentally creating duplicate issues is not a problem at all!


Installation instructions?

Hi I was just searching github for flashcard web applications and found yours and tried to install it without luck (no stylesheets loading, registering not possible etc). I just uploaded it to a webspace, apllied permissions, added database details into secrets.php but that was not enough. Thanks!
Edit: Some paths in the header of index.php are wrong /styles/... insteas of styles/...

Hi, thanks for your interest in this project.
This is a LAMP project and it might be hard to run on your own now. This is something that I'm working on my own for my Uni mini-project, it's only 10% complete. I've a long way to go and I'm planning to publish it in my server, but it would still at the best a "mini-project", dunno if it will be enough to serve your purpose.
Are you trying to use this for your studies? Then maybe things like Anki, Quizlet would be a better option.

Thanks for your answer. I know Anki and Quizlet but I would prefer something selfhosted and web based that also friends can use. LAMP sounds easy to run? Like Wordpress? I have tried several selfhosted options, I wasn't convinced by most of them. Good luck with your project, I am looking forward to updates!

Hello, completed the prototype and also added instructions on running locally... Mind you that, as i said before, this is a mini project so please don't expect anything big

Very nice! Looks like a good start for something bigger. In this field we need more projects like yours!
Installing via docker didn't work, so I installed it the traditional way as you described. Worked fine.
The docker logs said something like that the index.php file was missing, so I got permission denied


crpn_faster_rcnn gets "No gt bboxes" error

Hello,
I have been trying to run crpn_faster_rcnn but the training always fails with "No gt bboxes" error.
I am using custom models but the model does have a region proposals as I am loading the weights from pre-trained weights for crpn I created from the same dataset.
I've played around with the learning rate but no chance.
Do you have any hint or advice on what is going on? Thanks.

This is the error message

This is the error message

I have met the same problem.Have you solve it?

This is the error message

It seems that cascade RPN does not support empty GT images from the code here. I am not sure whether this has specific motivation for that, so may involve @thangvubk's help to have a look on that. Maybe we can enable similar logic for empty GT in other assigner.

Hi. I think just enable logic for empty GT in other assigners to resolve the problem. I will update the code.


Ability to obtain an index's name from its UUID.

Is your feature request related to a problem? Please describe
Portal26 (AWS Partner) builds and sells a plugin for OpenSearch. Among other things the plugin adds encryption at rest for the data written to the file system. Customers can specify different encryption keys for different indices. In order to do this,  customers must maintain a mapping between an index's UUID and the encryption key that must be used for it.
Some of our customers run their SaaS business on top of OpenSearch. They tend to have 100s of indices for each of their customers. And they host 10s of such customer on one cluster. Maintaining a mapping with between 1,000s of UUIDs to their corresponding encryption key becomes error-prone.
They happen to have a index naming convention where the index names start with a unique_customer_name. They want to maintain a mapping between index name prefix to encryption key.
The Lucene Codec plugin that Portal26 implements does not get index name. Instead it gets a file system location that contains the indices' UUID. Portal26 would like to get the index's name from its UUID.
This way we can support our customers to maintain a mapping between Index Name Prefix to Encryption Key. And we can translate the UUID to its index name and then retrieve the key.
Describe the solution you'd like
An internal API/ method which accepts an index's UUID and return's the index's name.
Related component
Indexing
Describe alternatives you've considered
We have considered building and maintaining a mapping within the plugin. But since the plugin does not persist anything (it is stateless) it has to build and maintain this in memory and it could be an expensive operation. And every time a new index is added, it has to modify this mapping which could involve periodic polling adding to the cluster workload.
Additional context
The customer who wants this is Pega systems. They asked us to tag them in this ticket. They will also voice their vote on the ticket.

This mapping could be easily  obtained using _cat APIs:
$ curl http://localhost:9200/_cat/indices?h=index,uuid

index1 SbFwt5hhSviSj1YTFtwyEg

From an internal API standpoint, if you have a reference to IndicesService, you can get it in a slightly roundabout way:
public static String resolveIndexName(IndicesService indicesService, String uuid) {
  Index indexForUuid = new Index("", uuid);
  IndexService indexService = indicesService.indexService(indexForUuid);
  if (indexService == null) {
    // throw an exception?
    // Could also call indicesService.indexServiceSafe(indexForUuid),
    // which will throw the exception for you.
  }
  return indexService.getIndexSettings().getIndex().getName();
}

Would Plugin.onIndexModule be useful here?
I tried the snippet that @msfroh provided using the GuiceHolder pattern in a plugin to get the indices service and tried to get the indexName within Plugin.createComponents or ClusterPlugin.onNodeStarted, but neither worked and the IndexService returned from IndexService indexService = indicesService.indexService(indexForUuid); was null at that point in execution.

Before the node is fully initialized, Plugin.onIndexModule is called for every index in the cluster where you can obtain the index name and UUID for all indices in the cluster. On Node bootstrap, you may see messages like:
[2024-04-02T00:13:33,394][INFO ][o.o.p.PluginsService     ] [smoketestnode] PluginService:onIndexModule index:[.opendistro_security/tk6k2nCkRJuc5Gr4mXUxEQ]

and this line directly comes from onIndexModule here: https://github.com/opensearch-project/OpenSearch/blob/2dc071ff2546b0c6483b9e0a382badf9ac353cdc/server/src/main/java/org/opensearch/plugins/PluginsService.java#L309

@cwperks Thanks. This looks promising. I will run it by my engineering team. Will comment again in a few days. Much appreciated.

[Triage - attendees 1 2 3 4 5 6 7 8]
@pakshi-titaniam It looks like this issue has been resolved. Please open a new issue if this is not the case.

@cwperks onModuleModule method is useful to collect the uuid and indexName mapping. However in case of cluster startup/restart, the lucene reading related things are called for existing indices (where we required the indexName from uuid)  - called even before onIndexModule. Is there any other way to collect the uuid and indexName ?
Also an alternative option could be store this uuid - indexName mapping in some persistence storage like file system similar to how Opensearch is maintaining the state in cluster with permissions to write to a file. So on cluster startup, we can read the mapping from the the file and load it up in plugin as a MAP even before lucene reads happens (on AbstractLifecycleComponent -> doStart).
Any pointers would be helpful.

@cwperks Thanks for checking the details.

I found that opensearch service is partially up before onIndexModule is called - in the place of lucene related code we have. So I tried to call /_cat/indices and got the uuid and index mapping.
In the case of single node using the same node ip this is fine. In the case of multi node and when load balancer url is used, the API call can go to any available node on the restart/bootstrap. So it's not guaranteed that all nodes are up at this point of time and call might fail with service unavailable.

So to avoid complexity, I am looking for a way to do an internal call using code itself from plugin to get /_cat/indices response without doing an external API call with ip.
I found that RestIndicesAction class  is used for _cat/indices call internally. Any idea how to call this class method in plugin to get the _cat/indices response details without doing an external API call?

@cwperks Thanks for checking the details.

I found that opensearch service is partially up before onIndexModule is called - in the place of lucene related code we have. So I tried to call /_cat/indices and got the uuid and index mapping.
In the case of single node using the same node ip this is fine. In the case of multi node and when load balancer url is used, the API call can go to any available node on the restart/bootstrap. So it's not guaranteed that all nodes are up at this point of time and call might fail with service unavailable.

So to avoid complexity, I am looking for a way to do an internal call using code itself from plugin to get /_cat/indices response without doing an external API call with ip.
I found that RestIndicesAction class is used for _cat/indices call internally. Any idea how to call this class method in plugin to get the _cat/indices response details without doing an external API call?

@cwperks Any idea? I have also tried multiple Listeners like ClusterStateListener. These are all having the information after the state is loaded only. Most of the samples I have tried are not giving the necessary information before the lucene loading is completed and cluster state is changed.

I was trying to take a deep dive to see how the files are read from disk on node bootstrap, but I haven't been able to fully grok the code path.
@reta @dblock @msfroh any other ideas for getting a full list of index names and UUIDs before a cluster has fully initialized?

@anto-tl could you please clarify what you mean by

the lucene reading related things are called for existing indices (where we required the indexName from uuid) - called even before onIndexModule. Is there any other way to collect the uuid and indexName ?

@reta

On cluster restart I have noticed that the code flow goes to the following pieces of code

Calling: Store.tryOpenIndex
https://github.com/opensearch-project/OpenSearch/blob/2.9.0/server/src/main/java/org/opensearch/gateway/TransportNodesListGatewayStartedShards.java#L185
Calling: Lucene.readSegmentInfos
https://github.com/opensearch-project/OpenSearch/blob/2.9.0/server/src/main/java/org/opensearch/index/store/Store.java#L602
...
...

From here it goes to Lucene codec which loads the indices. We have implemented/overridded Lucene codec for encryption.
https://github.com/apache/lucene/blob/releases/lucene/9.5.0/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java#L407

At this point we can get the uuid from the file system location. Here we want to get the indexName from uuid.
Problem with onIndexModule is that, it's called after all the indexes are read. So we couldn't collect the uuid and indexName mapping on the restart scenario
As mentioned above one solution we are thinking is, trying to find a way to do the internal call from plugin code to _cat/indices content/response to get the indexName and uuid mapping as it's available at this point of time. I have already explained the problem with _cat/indices external call here. So we like to get the information from current running node itself with api call.

Note:
Also I have tried to get indices information from clusterService (or) indicesService references. But index information is not loaded at this point of time. After the lucene segement read completed and clusterChanged event is triggered then only I can get the information. But we need uuid-indexName information even before this point of time.

Ah I see, thanks @anto-tl for detailed explanation ... The ShardId that is passed Store method has ShardId that in turn has reference to index name and uuid. Shouldn't it be sufficient?

@reta Thanks for the pointer on ShardId. Let me take a look if I can use it and let you know.

Still not sure how can we register or use this in plugin to use that. Any idea how can we achieve this?

@anto-tl I don't think you could alter TransportNodesListGatewayStartedShards::nodeOperation or  Store.tryOpenIndex in any ways, those are static methods. Here is another idea: since you need it at codec level, the CodecService has IndexSettings supplied that also has index details. Plus, you could provide your own using EnginePlugin::getCustomCodecServiceFactory.
Besides that, I think this we are getting to the end of the possible options, it seems like the feature you are working on needs to be looked to suggest the path forward.

@reta Will take a look.
Also, Is there any option for calling _cat/indices logic internally via code in the same node without doing an external API call in plugin code? If we can call the same node to get the details then it's fine
Explained the multi node problem here and this is why wanted to external api call. If mTLS enabled (or) call goes to other on startup we can't get the needed _cat/indices response, that's why wanted to avoid external api call.

Also, Is there any option for calling _cat/indices logic internally via code in the same node without doing an external API call in plugin code?

I think you run into initialization sequence here, when the cluster was not ready to handle the requests when you called the API? In any case, createComponents provides the Client instance:
    public Collection<Object> createComponents(
        Client client,
        ClusterService clusterService,
        ThreadPool threadPool,
        ResourceWatcherService resourceWatcherService,
        ScriptService scriptService,
        NamedXContentRegistry xContentRegistry,
        Environment environment,
        NodeEnvironment nodeEnvironment,
        NamedWriteableRegistry namedWriteableRegistry,
        IndexNameExpressionResolver indexNameExpressionResolver,
        Supplier<RepositoriesService> repositoriesServiceSupplier
    ) {
 ...
}

The Client is instance of NodeClient (sadly, may need type check) which allows local execution: NodeClient::executeLocally

@reta Thanks. If possible can you send some code snippet example for how to call _cat/indices with client.executeLocally if you have any idea, i.e how to build ActionType, ActionRequest, ActionListener for sending request for _cat/indices call. I am seeing different samples on opensearch code for client.executeLocally, but not sure how to build for _cat/indices since there is not specific ActionType Instance or Request in the RestIndicesAction class.

@reta Finally I have found one way to get indexName and uuid mapping on the startup by below code

Get all indices settings and collected the index name uuid information.

client.admin().indices().getSettings(new GetSettingsRequest()).actionGet().getIndexToSettings().values();

Also I have tried like below to get the indicesStats information. But indicesStatsResponse.getIndices() map is empty on the startup. So couldn't use this

// Create a request to get indices stats
IndicesStatsRequest indicesStatsRequest = new IndicesStatsRequest();
indicesStatsRequest.indices();
indicesStatsRequest.indicesOptions(IndicesOptions.lenientExpandHidden());
indicesStatsRequest.all();
indicesStatsRequest.includeUnloadedSegments(false);

ActionListener<IndicesStatsResponse> actionListener = new ActionListener<>() {
    @Override
    public void onResponse(IndicesStatsResponse indicesStatsResponse) {
        Map<String, IndexStats> indices = indicesStatsResponse.getIndices();
        log.info("Indices: {}", indices);
    }

    @Override
    public void onFailure(Exception e) {
        log.error("error: {}", e.getCause());
    }
};

client.executeLocally(IndicesStatsAction.INSTANCE, indicesStatsRequest, actionListener);


Make a UI UX Design for the chatbot

Make a UI UX Design for the user chatbot

This is UI UX Design for the chatbot. Let's code

Implementation of chatbot in progress


Send WM hint to float windows under Linux

Most SFML applications are intended to be viewed at a fixed size, and when a tiling window manager tries to tile an SFML window, it rarely gives a desired result.
After doing a bit of research, it appears that running xprop and clicking on any floating window will always yeld:
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
Additionally, it may make sense to set "SFML" and "sfml" classes to SFML windows so that (if ever needed), SFML windows can be matched and treated differently at the WM level.

If you guys are curious, I've been researching this issue myself. I found out that adding the atom _NET_WM_STATE_MODAL seems to do the trick, at least in i3.


Allow disabling color inheritance for TeX mobjects

Overview: What does this pull request change?

Add a preserve_colors parameter to SingleStringMathTex, allowing the user to disable color inheritance
Add a Parameters section to SingleStringMathTex's docstring
Add demos to the Extra LaTeX Packages section of the guide on using text, showing how to use xcolor to apply colors to TeX strings

Motivation and Explanation: Why and how do your changes improve the library?

This makes it easier to color parts of TeX mobjects; for example users can define custom TeX commands in their template (like \newcommand{\X}{\ensuremath{\textcolor{cyan}{X}}} to allow \X to produce a cyan math-mode X).
This also avoids issues like #3492, #3548 by allowing TeX itself to apply the colors.
Links to added or changed documentation pages

https://manimce--3643.org.readthedocs.build/en/3643/reference/manim.mobject.text.tex_mobject.SingleStringMathTex.html
https://manimce--3643.org.readthedocs.build/en/3643/guides/using_text.html#extra-latex-packages
Further Information and Comments

Render of passing test case (upper is inheriting color, lower is preserving it):

Note that, without further changes to the preamble / SVG reading, any TeX not explicitly colored is black and thus invisible against the default background.

Reviewer Checklist

[ ] The PR title is descriptive enough for the changelog, and the PR is labeled correctly
[ ] If applicable: newly added non-private functions and classes have a docstring including a short summary and a PARAMETERS section
[ ] If applicable: newly added functions and classes are tested

I like the idea of the change! The implementation still has some cases unhandled, like in the following scene:
class MathNotShowing(Scene):
    def construct(self):
        template = config.tex_template.copy()
        template.add_to_preamble(r"\usepackage{xcolor}")

        text = r"test color \textcolor{blue}{inheritance}"
        math = "\sum e^{ix}"

        tex_inherit = Tex(
            text+f"${math}$",
            tex_template=template
        )
        mathtex_inherit = MathTex(
            text+math,
            tex_template=template
        )
        tex_preserve = Tex(
            text+f"${math}$",
            tex_template=template,
            preserve_colors=True
        )
        mathtex_preserve = MathTex(
            text+math,
            tex_template=template,
            preserve_colors=True
        )

        vgr = VGroup(tex_inherit, mathtex_inherit, tex_preserve, mathtex_preserve).arrange(
            DOWN
        )

        self.add(vgr)

Notes:

This should be mentioned in the text guide, probably in the extra packages section, along with an example TexTemplate setting the default color

Can you explain the issue that is being solved with that ?
Because normally you would change the colors on the Mobjects that are created and not directly in the TeX code. Is there something that doesn't work when doing it with Mobject Coloring?
Additionally it would be a good idea to either, make a PR a draft if it is not ready for review, otherwise it would be great if you have working tests, run pytest for this in your poetry environment.
Thanks for participating in contributing to Manim! ✨

Seems to have gone stale; I'm closing this until there is more information about the concrete use case for this feature.


DOC: adding steps to access project on local device.

What's wrong with the existing documentation
the steps to open up the project on the local device is missing.
so creates a  problem while 'npm start'.
i want to add the steps in the repo 'to get started'
Add ScreenShots

i would add the detailed steps.
please assign the issue to me @MonalikaPatnaik
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'23 contributor
[X] I want to work on this issue

Thanks


Fix a DTLS server hangup due to TLS13_AD_MISSING_EXTENSION

This causes the DTLS server to enter an error state:
./openssl s_server -dtls
./openssl s_client -dtls -maxfraglen 512 -sess_out s1.txt
[...]
Q
./openssl s_client -dtls -sess_in s1.txt
CONNECTED(00000003)
^C
./openssl s_client -dtls
CONNECTED(00000003)
140335537067840:error:14102410:SSL routines:dtls1_read_bytes:sslv3 alert handshake failure:ssl/record/rec_layer_d1.c:614:SSL alert number 40
At this point the dtls server needs to be restarted,
because verify_cookie_callback always fails, because
the previous cookie is checked against the current one.
The reason for this is not fully understood.
In wireshark we see the following each time:
c->s Client Hello (without cookie)
s->c Hello Verify Request (with new cookie)
s->c Alert (Level: Fatal, Description: Handshake Failure)
c->s Client Hello (echoes new cookie)
The client gives up when the Alert arrives.
The Alert is triggered because the server calls
verify_cookie_callback with the previous cookie,
although it just sent the current cookie in the
Hello Verify Request.
However this does only happen because no Alert message
is sent when the client re-connects the session with
the missing -maxfraglen option.

Checklist

[ ] documentation is added or updated
[x] tests are added or updated

This is for 1.1.1 only, master has been fixed by 1376708c a while ago.

This pull request is ready to merge

Pushed to 1.1.1 as 6e73a0a.   Thanks!


How to get and execute a  js file thorough async request

Maybe it will become something like lua Hotpatch ,update app online

We have plans to do that. For production it's a bit tricky and needs some thought.
Do you want it for production or development use?

Production use, because my product managers hope publish every week

@amasad , is there any possibility to execute another js in main.jsbundle now?

@jhdxr what do you mean by that? You can always require modules. If you want to dynamically load files you can use XHR and eval

After some tests using eval, I couldn't get it to work for hot reloading an RN app from javascript. It's probably a safer solution to load a new native js context. Here's some sample code from the http://rnplay.org iOS app that implements this in Objective C and exports a method for its use.
You could use a similar method to load a downloaded bundle.

@jsierles don't most async JS loaders do xhr+eval? I'm sure require.js and webpack do. The old ones too (like LAB.js etc)

@amasad yep they do. I think what jhdxr meant was loading an whole new app bundle, replacing the current one. I tried this by evaluating fetched javascript in a simple test in React Native and nothing happened. No console output, nor did the app reload. It was not a very good test, I'll admit, so might be worth looking into more.
That said, loading a new js context works pretty well for us. Here's a more involved example where we switch between RCTRootViews which have their own JS context.

Oh cool. cc @philikon who could be interested in this.


update readme

add information about me on readme file, add a imagine to img folder

no conflicts, commit merge request.

No conflicts, commit merge request.


Compile protos statically instead of importing them dynamically

@opentelemetry/exporter-trace-otlp-grpc uses @grpc/proto-loader to load protos at runtime, dynamically producing a package definition that can be passed to grpc.loadPackageDefinition. The relevant code can be found here.
The problem is that @grpc/proto-loader and these external proto files don't play nicely with bundlers like esbuild, webpack, etc. The issue can be hacked around (see https://github.com/open-telemetry/opentelemetry-js/issues/2786#issuecomment-1088796793), but it's quite messy.
Describe the solution you'd like
The protos @opentelemetry/exporter-trace-otlp-grpc uses are static and so, instead of dynamically producing a package definition at runtime, why not statically produce a package definition at compile time?
grpc-tools, from the same people as @grpc/proto-loader, provides a command-line tool, grpc_tools_node_protoc. According to their README.md, it

Generates code that does not require any gRPC library, and instead generates PackageDefinition objects that can be passed to the loadPackageDefinition function provided by both the grpc and @grpc/grpc-js libraries.

I don't have experience with gRPC in Node.js, but I expect that, leveraging grpc-tools as a development dependency, we could stop shipping proto files inside of @opentelemetry/exporter-trace-otlp-grpc. Instead, we would depend on pre-compiled JavaScript (the package definition). Bundlers like esbuild, webpack, etc., would automatically work.
There's one thing to note about grpc-tools: it installs arch × OS-dependent binaries, and it currently lacks arm64 builds for darwin (see https://github.com/grpc/grpc-node/issues/1405). This means it wouldn't be easy to just clone the repo and compile the protos into package definitions on any machine. Instead, if the protos are changing rarely, perhaps the package definitions should be compiled and checked in by a committer with access to an amd64 machine.
Update 1: I started implementing this. As far as I can tell, it is workable generating for grpc_js, but not with generate_package_definition. It also requires a change in the way the protobuf messages are constructed. For example, right now, @opentelemetry/exporter-trace-otlp-grpc depends on @opentelemetry/exporter-trace-otlp-http in order to use these types and toOTLPExportTraceServiceRequest. Instead, I think it would make sense to remove the dependency on @opentelemtry/exporter-trace-otlp-http, since those types can be generated by ts-protoc-gen. Additionally, we'd need to reimplement toOTLPExportTraceServiceRequest in @opentelemetry/exporter-trace-otlp-grpc in terms of low-level, generated methods (setResourceSpans, etc.).
Update 2: Looks like something similar was attempted with pbjs in https://github.com/open-telemetry/opentelemetry-js/pull/2691 and then ultimately hand-rolled in https://github.com/open-telemetry/opentelemetry-js/pull/2746. The new solution will use the JSON instead of binary protobuf encoding (?), although there are some questions around stability of names in the JSON encoding. Inter-package dependencies will change as well. It seems there's active work here, and I should just wait.
Describe alternatives you've considered

Abandon esbuild in order to use @opentelemetry/exporter-trace-otlp-grpc. Uncompressed, my build artifacts would go from a few megabytes to hundreds of megabytes.
Try using @opentelemetry/exporter-trace-otlp-proto instead (it loads proto files differently and so may need fewer hacks to get working in my environment, but still not nice).

Additional context
This change would be relevant to @opentelemetry/exporter-trace-otlp-proto and any other OpenTelemetry JavaScript library that uses (static) protos.

Similar work is already ongoing here. We created the otlp-transformations package to handle the data manipulation and will be splitting the serialization for protobuf into its own package.

Thank you! I will sit tight and wait


[style]: Navbar After Search

What's the style idea?
We need to improve
NavBar when i search any one Praticular Item . in Result its Give me The Navbar With Empty white Bcakground
Add screenshots
Add screenshots

Code of Conduct

[X] I agree to follow this project's Code of Conduct

can i solve this issue ?

Can you elaborate the issue

@adarsh-k27 Can you elaborate on the issue


diagnostics: 3.1.2-1 in 'humble/distribution.yaml' [bloom]

Increasing version of package(s) in repository diagnostics to 3.1.2-1:

upstream repository: https://github.com/ros/diagnostics.git
release repository: https://github.com/ros2-gbp/diagnostics-release.git
distro file: humble/distribution.yaml
bloom version: 0.11.2
previous version for package: 3.1.1-1

diagnostic_aggregator

No changes

diagnostic_common_diagnostics
* replacing ntpdate with ntplib (#289 <https://github.com/ros/diagnostics/issues/289>)
* Contributors: Christian Henkel

diagnostic_updater

No changes

diagnostics

No changes

self_test

No changes

needs #36591

needs #36591

Not any more


Prevent duplicate jobs

Data upload and migrations should only be run once even when there are multiple app instances

Duplicate of #608, just phrased the opposite way. 🙂

Duplicate of #608, just phrased the opposite way. 🙂


react-native-chart-kit

greetings all, i've been working on react-native-chart-kit,specifically on LineChart and i wonder if there is a way that i can change the color of the dots?
also if there is a way to change the color of one dot only that will be really great , here is a  screenshot of the page:

In order to change the color of all dots you can add this in your code
<LineChart  propsForDots: {                         r: "6",                         strokeWidth: "2",                         stroke: "#3dcd58"                     }  />

This is available in d061a9c and can be closed 👍 .


Adds Accordion component and patterns

Task: task-988155
Links: Accordion component |  Accordion patterns
Component
http://localhost:1111/components/accordion.html
Fluent 2 - React Accordion - Fluent 2 Design System (microsoft.design)
Figma - Fluent 2 web – Figma
Accessibility - Accordion Pattern (Sections With Show/Hide Functionality) | APG | WAI | W3C
Handles:

3 sizes (matches fluent)
Multiple open panels or only 1 open panel, designated open panel on page load
Left and right aligned icon (matches fluent arrow direction)
Automatically adds left/right padding if background color atomic classes are used
Uses same animation for chevron direction change + timing as current _details.scss icon (transition: transform 0.15s)

Pattern
http://localhost:1111/patterns/accordion.html
Serves 2 functions

Use atomics to show pattern that will be used for upcoming Ignite designs.
This component will deprecate the need for _details.scss currently used in docs-ui, 2 patterns used to show the 2 scenarios currently being used on docs-ui.

Form-based advisor/Plan adjuster pattern for Ignite
Figmas (press Shift + 2 after page load to zoom in on component selection):

Form-based advisor - Plan generation view
Plan Adjuster UI

_details.scss usage in docs-ui

2nd example would replace Training journey section below first bifold

https://learn.microsoft.com/en-us/training/career-paths/ai-engineer

3rd pattern example would replace:

Marketing page FAQ pattern (right aligned chevron, body gray content container.)

https://review.learn.microsoft.com/en-us/test/marketing/?branch=main#frequently-asked-questions-title

Testing

Visit preview pages to view new pages
Expected result: Component page matches Figma. Patterns match docs-ui .details usage (FAQ, Career Path Journey section), and Form-based advisor/Plan adjuster designs proposed for Ignite
Visit Select component page
Expected result: Verify refactor to use shared chevron mixin results in no visual changes from existing page

Additional information
[Optional]
Contributor checklist

[x] Did you update the description of this pull request with a review link and test steps?
[x] Did you submit a changeset? Changesets are required for all code changes.
[ ] Does your pull request implement complex UI logic (js/ts)? Consider adding an integration test to test your user flow.
[ ] Does your pull request add a new page to the documentation site? Add your new page for automated accessibility testing in /integration/tests/accessibility.

@ollips @BenDMyers @homing1 all feedback has been addressed. Ready for review.


Browser window option "trafficLightPosition" doesn't work on macOS 10.14

Homework

☑ I looked at nativefier --help and https://github.com/nativefier/nativefier/blob/master/API.md
☑ I searched existing issues, open & closed. Yes, my question is new.
☑ I'm using the latest version available at https://github.com/nativefier/nativefier/releases

Your question
I'm trying to build an Electron-App with an Offset for Traffic Lights on macOS, but "trafficLightPosition": { "x": 100, "y": 100 } in --browserwindow-options doesn't seem to work.
Steps to reproduce
If you already have a Nativefier command you're struggling with, paste full nativefier command and its logs, with the --verbose flag, on a public site:
nativefier https://repo.avalon-studios.de --title-bar-style hidden --browserwindow-options '{"trafficLightPosition": {"x": 100, "y": 100}}'

Context

Nativefier: 45.0.4
Node.js: 14.18.1
Npm: 6.14.15
OS: macOS 10.14

Apple have moved the position of the Traffic Lights in most of their apps now, so it would be good to have this option working to make truly native-feeling apps. Many third-parties are following suit.
Of course, a lot of nativefier apps might stick with the classic Title Bar style, so the default position should likely remain as long as hiding the Title Bar is opt-in.


fix missing locally needed debian-sys-maint password in puppet4

the deb_sysmaint_password variable is empty in puppet4 within the else part (not on the galera master)

sorry, I just realised this is a duplicate of #63  (although my MR also moved the code documentation)


services.prometheus.exporters.nextcloud, with 0.5.1 not able to use nextcloud auth token

Describe the bug
when i try to use a auth token instead of admin user account, it failed to build.
error: The option `services.prometheus.exporters.nextcloud.passwordFile' is used but not defined.
Steps To Reproduce
Steps to reproduce the behavior:
use nextcloud exporter without username and password
i removed the options .username and .passwordFile
and added .extraFlags = [ "--auth-token @/root/nextcloud-exporter-tokenfile" ];
Expected behavior
on cli with correct parameters the service runs smoothly
Notify maintainers
@Ma27 @ajs124

I think this is a 'missing feature' more than a bug, but indeed a feature I'd enjoy a lot :).
I guess we could do something like #242942?

@raboof I don't use tokenFile in my config, so it's simply left at default (""). It seems with this update, I'm now getting this error:
       error: A definition for option `services.prometheus.exporters.nextcloud.tokenFile' is not of type `path'. Defin
ition values:
       - In `/nix/store/ifdk68fj3gv9fyfvkyh2ay88qybh2dd9-source/modules/nixos/services/nextcloud.nix': ""

It seems like both passwordFile and tokenFile should be types.nullOr types.path and check for null, rather than the non-path ""? Otherwise, I think this breaks those of us who just use a passwordFile.

@raboof I don't use tokenFile in my config, so it's simply left at default (""). It seems with this update, I'm now getting this error:
       error: A definition for option `services.prometheus.exporters.nextcloud.tokenFile' is not of type `path'. Defin
ition values:
       - In `/nix/store/ifdk68fj3gv9fyfvkyh2ay88qybh2dd9-source/modules/nixos/services/nextcloud.nix': ""

It seems like both passwordFile and tokenFile should be types.nullOr types.path and check for null, rather than the non-path ""? Otherwise, I think this breaks those of us who just use a passwordFile.

Ouch, sorry about that - I'm sure I looked at the derivation output when only passwordFile was set, but apparently I broke it again in a subsequent refactor.
Would https://github.com/NixOS/nixpkgs/pull/254563 fix it for you?

Thanks, that looks good to me!


Yours / Theirs input editors get empty

Have a merge conflict. Open merge editor
Do not react on any conficts. Click on Accept Merge
Dialog shows up. The Yours / Theirs editors get empty in the background before I have reacted in the dialog 🐛

If I click cancel now I am in a broken state.
I can repro 100%.

fyi @hediet @bpasero

The accept command triggers a close of the merge editor and while that happens the confirm logic kicks in...

Looks good now -> verified


collector/perf: Run perf as root if the target is rooted

If you want to collect events by event id (eg. in simpleperf, "rNNN" with NNN a number), you must run it as root.  Otherwise, simpleperf fails with a SIGABRT:
simpleperf F environment.cpp:856] Check failed: tmp_file->fd != -1 (tmp_file->fd=-1, -1=-1)
Aborted

Run simpleperf as root by default if the target is rooted to avoid this.

Alternatively, I could change this to only run it as root if using simpleperf and the event matches "r[0-9]+". I think this is better, but feel free to suggest otherwise.

As a formatting nit, while very useful in the PR description, would you be able to remove the complete error message from the commit message itself to help maintain the max line length?

Done!


Unable to run published msixbundle due to application crashes at start

Describe the bug
When trying to run a published application it crashes at startup
Application: Capster.exe
CoreCLR Version: 8.0.824.36612
.NET Version: 8.0.8
Description: The process was terminated due to an unhandled exception.
Exception Info: System.TypeInitializationException: The type initializer for '<Module>' threw an exception.
 ---> System.TypeInitializationException: The type initializer for 'WinRT.TypeNameSupport' threw an exception.
 ---> System.TypeLoadException: Could not load type 'System.Collections.Generic.List`1' from assembly 'System.Collections, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
   at WinRT.TypeNameSupport..cctor()
   --- End of inner exception stack trace ---
   at WinRT.ProjectionInitializer.InitalizeProjection()
   --- End of inner exception stack trace ---
   at Capster.Program.Main(String[] args)

Steps to reproduce the bug
Create a winui3 application in visual studio
Publish the application
Install & run
Expected behavior
No response
Screenshots
No response
NuGet package version
Windows App SDK 1.5.6: 1.5.240802000
Packaging type
No response
Windows version
No response
IDE
No response
Additional context
No response

I've updated to Windows App SKD 1.6, and now the error are different:
Application: Capster.exe
CoreCLR Version: 8.0.824.36612
.NET Version: 8.0.8
Description: The process was terminated due to an unhandled exception.
Exception Info: System.MissingMethodException: Method not found: 'Void System.Runtime.CompilerServices.IAsyncStateMachine.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)'.
   at Capster.Program.Main(String[] args)
   at Capster.Program.<Main>(String[] args)


Small changes to improve document readabilty

Some small changes in the project documents to improve readability and to link to some resources directly.

Hi @lucaslra, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. I promise there's no faxing. https://cla.microsoft.com.

TTYL, MSBOT;

@lucaslra, Thanks for signing the contribution license agreement so quickly! Actual humans will now validate the agreement and then evaluate the PR.
Thanks, MSBOT;

test fail

sorry this change just change docs. but seems this seems to be trigger of error
https://travis-ci.org/Microsoft/vscode/builds

@mattn There's a bit of flakiness with our current builds, they seem to fail occasionally, unrelated to your changes. Will address it fast.


One parameter mistake in README

Hello,
On the raw of 1001, the code is check_pgactivity -h localhost -p 5492 -s last_vacuum -w 30m -c 1h30m,
the parameter -p 5492 should be -p 5432 I think.

Hello,
This has been fixed in the git repository and will be included in the next release.
Thank you for your report!


Handle CSG edge case where intersection line hits common edge of 2 tr…

…iangles
Previously, the code assumed that if the intersection line hit the common edge of 2 triangles, it meant that the intersection entered or exited a shape. However, there is also a case where the intersection just "skirts" the other shape on the outside. To handle this case, we added a check for the direction of the normals of the faces. If the inner product of the normals and the intersection is greater than 0, then the intersection is inside the shape.
Fixes: https://github.com/godotengine/godot/issues/58637
Still happens: https://github.com/godotengine/godot/issues/41140

OldBelge posted a test case.
Uploading prototype003.zip…

Investigating fixes for the perpendicular cases.

Before:

After:

Some debugging diagrams.

We've decided that fixing two cases is good enough for this pr. Waiting for review.

Before:

After:

Missed an edge case.

CSGBug_2023-03-11.zip

Original:
https://user-images.githubusercontent.com/32321/224521654-62c7efd2-2f71-4c61-a041-05ff5d71fc81.mp4
Fixed:
https://user-images.githubusercontent.com/32321/224521645-1fc062d5-0521-4843-b2b7-3d24d0e76b25.mp4

I started testing this PR, as I have a project using CSG which suffers from glitches. This PR seems to fix a lot of the problems!
It's a fairly pathological case, we stitched 40 Path3Ds together, generating CSGPolygon3D from each Path3D and using them to subtract from a big CSGBox3D.
Here's how it looks like in 4.0.2-stable:

(same in 4.1 master as of 6bf94cfd7acf747f1b4fd0b0762cb878f8f08198)
The glitches can move around, forcing a regeneration of the CSGCombiner can typically make things better or worse, so it's clearly a problem of precision issues.
And here's how it looks like with this PR (rebased on latest master):

So... it's definitely better :D
I'll soon make that project open source so it can be used by others for testing too. It's this game: https://akien.itch.io/godog
The above screenshots is from a level we didn't use in the end due to those glitches. But even the playable build on itch has CSG glitches (weird hard lines going through the level where it's supposed to be subtracting geometry), and I confirmed that this PR fixes them.

I pushed some changes to avoid breaking compatibility. It's still possible to reduce the snap value down to 1e-6 m, i.e. 1 µm, which should help solve situations with missing triangles on small CSG meshes as seen by @goatchurchprime in #41140.
It's not perfect, but hopefully that makes things more usable.

Tested some more projects from previously reported issues / duplicates.
This PR does fix the MRPs from those issues:

#41140, when changing the snap value to 0.0001 to match the size of the geometry
https://github.com/team-godog/NGJ2023_Godog

main branch, which had a few holes and most importantly missing triangles in the subtraction which would end up as hard lines on top of the track.
pathageddon branch, which a much more complex network of Path3Ds which used to be full of holes in the lower part, as shown in https://github.com/godotengine/godot/pull/74771#issuecomment-1523377936 (this branch is iffy when loading in Godot 4.0 or 4.1.dev, be sure to delete .godot to force a reimport, possibly re-edit the project twice, and you might still need to manually trigger a reimport of the shiba.gltf mesh to be able to open the Game scene).

But doesn't fix the MRPs from those issues:

#43755
#75862

Thanks!

Does this also fix #73927? (Which may be a duplicate of the linked issue.)

Testing with the repro project here from #74343 it does not appear so. I have a branch on my fork that fixes this issue by keeping track of which edges have already been processed by the loop. Will post over on issue #73927 to continue the conversation there.

Cherry-picked for 4.0.3.


Add sandbox tag to CDK8s listing

Pre-submission checklist:
Please check each of these after submitting your pull request:

[x] Are you only including a repo_url if your project is 100% open source? If so, you need to pick the single best GitHub repository for your project, not a GitHub organization.
[x] Is your project closed source or, if it is open source, does your project have at least 300 GitHub stars?
[x] Have you picked the single best (existing) category for your project?
[x] Does it follow the other guidelines from the new entries section?
[x] Have you included a URL for your SVG or added it to hosted_logos and referenced it there?
[x] Does your logo clearly state the name of the project/product and follow the other logo guidelines?
[x] Does your project/product name match the text on the logo?
[x] Have you verified that the Crunchbase data for your organization is correct (including headquarters and LinkedIn)?
[ ] ~15 minutes after opening the pull request, the CNCF-Bot will post the URL for your staging server. Have you confirmed that it looks good to you and then added a comment to the PR saying "LGTM"?

:heavy_check_mark: Deploy Preview for landscape ready!
:hammer: Explore the source changes: 2e3b3e7d24e374a67b59dadc22f72383d0eb301b
:mag: Inspect the deploy log: https://app.netlify.com/sites/landscape/deploys/60bfa793c713600008718302
:sunglasses: Browse the preview: https://deploy-preview-2141--landscape.netlify.app


airmail beta

As it currently stands (I think) airmail-beta.rb is out of date, and the in app upgrade process is a manual download/ install procedure.
Anyone able to maintain it so it stays up to date?

Unlikely. We don’t have maintainers for specific casks (though some users do tend to keep certain casks they’re interested in, up to date).
You can always submit a PR to update the latest version, though.

I took a look at the file:
https://github.com/caskroom/homebrew-versions/blob/master/Casks/airmail-beta.rb
But wasn't sure on the origin of the file, I've not seen a source link like that one before.  I thought I'd ask in case someones hosting it on a private server someone/ is responsible for keeping it up to date.
Although I've just noticed that it is the actual url for the beta download.
If wanna go about submitting a PR, is there a tried and tested way for testing for a new version of the file?  I'd rather not do manual update so the next time they update the file it breaks again.

in case someones hosting it on a private server someone

That would be a security risk, and we don’t allow it.

a tried and tested way for testing for a new version of the file?

Simply the official url.


Disabled option doesn't work correctly.

In our case when the disabled option is a dynamic value, the option works correctly the first time but after changing the value to false, the first level of nested sortable works incorrectly.
`<SortableJs
class="sortable"
@options={{hash animation=150 fallbackOnBody=true swapThreshold=0.65 group=group dragClass="sortable-drag" disabled=disabledSortable }}
@onEnd={{action onEnd}}
@onChoose={{action "onChoose"}}
@onUnchoose={{action onUnchoose}}
@onChange={{action "onChange"}}

<div class="tree-sortable>
    {{#if sortedTreeData.length}}
        {{#each sortedTreeData as |treeItem|}}
            <TreeItem
                @treeItem={{treeItem}}
                @onEnd={{action onEnd}}
                @onChoose={{action onChoose}}
                @onUnchoose={{action onUnchoose}} />
        {{/each}}
    {{/if}}
</div>

`

I will take a look at this today. Thanks for reporting!

Thanks for a quick response.


Cannot add html link to email body

when trying to add a html link in the body of the email.  It will not add the content in the body when sending

Could you give an error message and a code sample? The Go Playground is handy for code samples.

I do not have an error reported from it.  The email body is just blank.  However, if I switch the contents of demoName and link, then the link appears in the subject line and the body displays as it should.  Here is a snippet of my code per the example:
demoName = "name of demo
link := "https://link-to-aws-file"
email := gmail.Compose(demoName, link)

I'm afraid I can't work out why it's not working. My knowledge of SMTP is very limited; I just wrapped the stdlib package. Sorry I can't help


etcd implementations are getting more values than specified

https://github.com/kelseyhightower/confd/blob/560171742e6b822972e9699cac296beacadaf607/backends/etcdv3/client.go#L81-L91
This is how values are retrieved with etcd/etcdv3 as a backend. You may notice that this is more than what we are expecting. For example, if we retrieve a key "/abc/def", this method retrieves "/abc/def", "/abc/def/1" and "/abc/def123". But the last one should not be retrieved.
We may fix this with two separated calls: a Get without prefix for "/abc/def", and a Get with prefix for "/abc/def/"

I'm actually not quite sure about whether this is a bug or not. Sometimes you actually want to retrieve all keys that start with the prefix so you might use /prefix to do that, in other scenarious you might want to only retrieve the keys that are direct children in which case you might use /prefix/. Thoughts?

@okushchenko It must be consistent with other backends. I'm OK with both, but usually I think it is nature to retrieve only direct children.


Update to rust 2021

This updates the crate to 2021, although for backwards compatibility I'm probably going to merge this some time later as this was stabilized in 1.56

[x] Tested on an x11 machine
[x] Compilation warnings were addressed
[x] cargo fmt has been run on this branch
[x] cargo doc builds successfully
[x] Added an entry to CHANGELOG.md if knowledge of this change could be valuable to users
[ ] Updated documentation to reflect any user-facing changes
[ ] Created or updated an example program if it would help users understand this functionality

I will merge this when 1.59 releases next week


injector: support pod specific IP range exclusions

Description:
Adds support for specifying pod specific outbound
IP range exclusions similar to port exclusions.
The pod specific and global IP range exclusions
will both apply to a pod being injected.
Also makes the following changes:

Fails patching on invalid annotations
Moves OS specific init container code to
its own function

Related to #4396

Testing done:
Unit tests

Affected area:

Functional Area

Sidecar Injection
[X]

Please answer the following questions with yes/no.

Does this change contain code from or inspired by another project? no

Did you notify the maintainers and provide attribution?

Is this a breaking change? no

Has documentation corresponding to this change been updated in the osm-docs repo (if applicable)? no, will be done later

Codecov Report

Merging #4488 (ae0785a) into main (7158a8c) will decrease coverage by 0.03%.
The diff coverage is 89.23%.

@@            Coverage Diff             @@
##             main    #4488      +/-   ##
==========================================
- Coverage   69.04%   69.01%   -0.04%
==========================================
  Files         214      214
  Lines       14589    14639      +50
==========================================
+ Hits        10073    10103      +30
- Misses       4464     4484      +20
  Partials       52       52

Flag
Coverage Δ

unittests
69.01% <89.23%> (-0.04%)
:arrow_down:

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

Impacted Files
Coverage Δ

pkg/injector/webhook.go
88.26% <ø> (ø)

pkg/injector/patch.go
84.00% <80.55%> (-4.47%)
:arrow_down:

pkg/injector/exclusions.go
100.00% <100.00%> (ø)

pkg/messaging/workqueue.go
89.28% <0.00%> (-10.72%)
:arrow_down:

pkg/crdconversion/crdconversion.go
67.91% <0.00%> (-6.72%)
:arrow_down:

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 7158a8c...ae0785a. Read the comment docs.

This looks good. Great work, @shashankram! Let's also file an issue in osm-docs to document this behavior and an example how it works and how to implement it. Also, this PR should fully address #4396, right?

Hey @trstringer, I was planning to update osm-docs once I complete implementing #4396. This change does not address #4396 as the issue pertains to IP range inclusions whereas this change enhances the exclusions behavior. The reason I implemented this change is so that both inclusions and exclusions can be configured similarly. I will start working on #4396 next.


No clear instructions to implement redirection to a different tenant

No clear instructions to implement redirection to a different tenant. Where to make these changes? What PS commands to use? Examples?
[Enter feedback here]

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

ID: 3cfb6e9b-57d4-749f-a1d0-5f5c24e141ce
Version Independent ID: e67e1021-7801-477b-1642-43c283742e59
Content: Manage site redirects - SharePoint in Microsoft 365
Content Source: SharePoint/SharePointOnline/manage-site-redirects.md
Service: sharepoint-online
GitHub Login: @MikePlumleyMSFT
Microsoft Alias: mikeplum

Hello @ChrisNoelBritto
I don't see this article mentioning that as possible or am I missing something? Redirects are created automatically as a result of
changing a SharePoint site address, moving a site to a different geo-location or swapping a site.

We appreciate any feedback that improves the content in the Microsoft docs but we haven't had any response from you so we are going to close this issue.
Please feel free to re-open this issue if there is a specific area of the docs that we can improve or make better. Thank you.


Fix SUPPORT.md for better readability

Most of the text was duplicated, and the second copy had better
section titles that made the intent more prominent.

This pull request is ready to merge

Merged
efb4667f72356046a492d8875bd3b02b6fe352e8 Fix SUPPORT.md for better readability


Refactor create_database_table into Connection.create_table and select_into_database_table, implement Set.

Pull Request Description
First part for #6498 - refactoring of the upload infrastructure, in preparation for update_database_table.
Implemented a Set data structure which was long needed.
The APIs are added and an initial implementation is created, but it is not complete - but it has grown significantly already so the remaining implementation will be done as a separate PR.
Adds some basic ability for a function to ensure that it is only executed from within a transaction.
Important Notes

Checklist
Please ensure that the following checklist has been satisfied before submitting the PR:

[x] The documentation has been updated, if necessary.
[ ] Screenshots/screencasts have been attached, if there are any visual changes. For interactive or animated visual changes, a screencast is preferred.
[x] All code follows the
Scala,
Java,
and
Rust
style guides. In case you are using a language not listed above, follow the Rust style guide.
All code has been tested:

[x] Unit tests have been written where possible.
[ ] If GUI codebase was changed, the GUI was tested when built using ./run ide build.

I added widgets for selecting a column for the primary_key fields in select_into... but they do not seem to show up :/

@jdunkerley do you think this could be because the function is an extension function?
Although I'm pretty sure that used to work. Maybe because it is imported with a rename? That would be weird but you never know. Still, ideally I think I'd prefer to figure out this issue as part of the follow-up PR (unless I did some obvious mistake that I'm missing here).

The widgets are behaving weirdly
https://github.com/enso-org/enso/assets/1436948/c7b19e85-336c-49a2-ba61-aac964e34b9d
I set up a custom @primary_key Widget_Helpers.make_column_name_vector_selector annotation but it seems to be not picked up.
I see both a dropdown for Nothing as well as a Vector Editor plus (I think only one of these 2 should show up for a single parameter, no? in this case vector editor should probably take over, especially as its requested by the widget)
Moreover, when I add an element with Vector Editor - Nothing gets added, even though the Vector is of Text, not Nothing and it has the column selection widget which somehow does not get picked up.
cc: @Frizi


About long sentences split in train/dev/test at line 541 in file "wmseg_model.py"

Excuse me!
Can you tell me why you used the line "if char in ['，', '。', '？', '！', '：', '；', '（', '）', '、'] and len(sentence) > 64:" for all train/dev/test set to split long sentences? Whether this process is valid for evaluating Chinese Word Segmentation?
Thanks for your answering.

Excuse me!
Can you tell me why you used the line "if char in ['，', '。', '？', '！', '：', '；', '（', '）', '、'] and len(sentence) > 64:" for all train/dev/test set to split long sentences? Whether this process is valid for evaluating Chinese Word Segmentation?
Thanks for your answering.

Thanks for asking.
The reason we split long sentences into short ones is to make to code run faster. You don't have to do this.
Given that punctuations are always natural word boundaries, we think this is valid for evaluating Chinese Word Segmentation.


[Storage][LiveTest]replace the fixed blob names

LGTM I think some more tests need to be rerecorded for CI to be green.


⚠ Bofrost.at has degraded performance

In fda9b1b, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1668 ms

Resolved: Bofrost.at performance has improved in 18ee426 after 7 minutes.


How to exclude null value from pydantic model used by FAST API

I am currently using pydantic model as below. It has 2 optional fields description and tax.
from typing import Optional
from fastapi import Body, FastAPI
from pydantic import BaseModel, Field
app = FastAPI()
class Item(BaseModel):
name: str
description: Optional[str] = Field(None, title="The description of the item", max_length=300)
price: float = Field(..., gt=0, description="The price must be greater than zero")
tax: Optional[float] = None
@app.post("/items/")
async def create_item(item: Item):
return item
Problem - How to exclude optional fields from JSON when not supplied as part of the request.
Request -:
{
"name": "A",
"price": 10.21
}
Fast API produces -:
{
"name": "A",
"description": null,
"price": 10.21,
"tax": null
}
Expected -:
{
"name": "A",
"price": 10.21
}
PYDANTIC provides a way (exclude_none flag) to do that but how to make use of that flag when it is being used in fast API?

This what pydantic provides - https://pydantic-docs.helpmanual.io/usage/exporting_models/#modeldict

Try this code:
@app.post("/items/")
async def create_item(item: Item):
    return item.dict(exclude_none=True)

Using exclude_none doesn't seem to work when a response_model is in mentioned in route decorator.
@app.post("/items/", response_model=Item)
async def create_item(item: Item):
    return item.dict(exclude_none=True)

Fast api seems to reprocess the dict with the pydantic model
So i settled for overriding the dict method in the model itself
def Item(BaseModel):
   name: str
   description: Optional[str]
   ...
   def dict(self, *args, **kwargs) -> Dict[str, Any]:
        _ignored = kwargs.pop('exclude_none')
        return super().dict(*args, exclude_none=True, **kwargs)

(an actual solution would put this definition in separate subclass of BaseModel for reuse)

You can accomplish this directly with the decorator by setting the response_model_exclude_none parameter, e.g.:
@app.post("/items/", response_model=Item, response_model_exclude_none=True)
async def create_item(item: Item):
    # do something with item
    return item

This was added last year in https://github.com/tiangolo/fastapi/pull/1166 and is available since version 0.54.0

@squat I need to exclude None from the request body, not from the response model.
`from typing import Optional
from fastapi import Body, FastAPI
from pydantic import BaseModel, Field
from typing import List
app = FastAPI()
class Item(BaseModel):
name: str
description: Optional[str] = Field(None, title="The description of the item", max_length=300)
price: float = Field(..., gt=0, description="The price must be greater than zero")
tax: Optional[float] = None
@app.post("/items/")
async def create_item(item: List[Item] = Body(...)):
return item
`
Request -:
{
"name": "A",
"price": 10.21
}
Fast API produces -:
{
"name": "A",
"description": null,
"price": 10.21,
"tax": null
}
Expected -:
{
"name": "A",
"price": 10.21
}
Question is - How to send the exclude_none or exclude_default flag to the PYDANTIC model?

Your initial question was

How to exclude optional fields from JSON

However, you're saying that you're not concerned with the JSON response from the API handler, correct?
I don't understand what you're trying to accomplish. JSON is only relevant in two places here: the serialized request and the serialized response. You can't control the whether or not a field is present in a request's JSON because that comes from the client. Are you worried about JSON in requests coming from clients generated by your OpenAPI spec? Again, this is something out of FastAPI's control.
Maybe it would be helpful if you share when/where you expect this? e.g.:

do you want JSON to exclude these fields? As mentioned above you can only enforce the response;
if it's not about JSON, do you want the Python item object inside the handler to exclude these fields? exclude_none is used when turning a Pydantic object into a dict, e.g. right before the handler returns JSON. item is not a dict; it is a Python object of a type that you defined as having a description and tax field. These fields will always be present on the item object, regardless of whether the request JSON had them. Remember, Optional is a bit of a misnomer; it does not mean that having the field is optional but rather that the value can be None. It is defined as shorthand for a union between None and another type.

@squat Thanks for the detailed explanation.
Let me ask this way - How to exclude none before the handler returns JSON?

@plankthom Your solution works for a get operation. On a put, I get the following:
KeyError: 'exclude_none'

Could you kindly confirm? Thanks

+1

@plankthom Your solution works for a get operation. On a put, I get the following:
KeyError: 'exclude_none'

Could you kindly confirm? Thanks

You could check if the attr exist before remove it
def Item(BaseModel):
   name: str
   description: Optional[str]
   ...
   def dict(self, *args, **kwargs) -> Dict[str, Any]:
         if hasattr(kwargs, "exclude_none"):
            _ignored = kwargs.pop("exclude_none")
        return super().dict(*args, exclude_none=True, **kwargs)

@plankthom Your solution works for a get operation. On a put, I get the following:
KeyError: 'exclude_none'

Could you kindly confirm? Thanks

You could check if the attr exist before remove it
def Item(BaseModel):
   name: str
   description: Optional[str]
   ...
   def dict(self, *args, **kwargs) -> Dict[str, Any]:
         if hasattr(kwargs, "exclude_none"):
            _ignored = kwargs.pop("exclude_none")
        return super().dict(*args, exclude_none=True, **kwargs)

hi @daipham3213
I tried your solution with the following error:
TypeError: pydantic.main.BaseModel.dict() got multiple values for keyword argument 'exclude_none'

if someone still looking for this answer, this worked for me
@app.post("/items/") async def create_item(item: Item):     return item.dict(exclude_unset=True)

if someone still looking for this answer, this worked for me
@app.post("/items/")
async def create_item(item: Item):
    return item.dict(exclude_unset=True)

@plankthom Your solution works for a get operation. On a put, I get the following:
KeyError: 'exclude_none'

Could you kindly confirm? Thanks

You could check if the attr exist before remove it
def Item(BaseModel):
   name: str
   description: Optional[str]
   ...
   def dict(self, *args, **kwargs) -> Dict[str, Any]:
         if hasattr(kwargs, "exclude_none"):
            _ignored = kwargs.pop("exclude_none")
        return super().dict(*args, exclude_none=True, **kwargs)

This is a better solution
class User(GenericModel):
    ...

    def dict(self, *args, **kwargs) -> dict[str, Any]:
        """
            Override the default dict method to exclude None values in the response
        """
        kwargs.pop('exclude_none', None)
        return super().dict(*args, exclude_none=True, **kwargs)

We really need this as a built in feature. I find myself writing this dict override all the time. It should be something we can set either on Field or in the Config


Support get/set bounds with pitch and bearing

add webMercatorViewport.getBounds method that returns map bounds
make webMercatorViewport.fitBounds method support tilted viewports

I'm too looking for a getBounds() method to run geospatial queries based on visible bounding box.


New service send_magic_packet with new component wake_on_lan

Description:
New component to expose a service to send magic packets to Wake-On-LAN capable devices to wake up, as discussed here
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#<home-assistant.github.io PR number goes here>
Example entry for configuration.yaml (if applicable):
wake_on_lan:

Example script for calling the new service:
script:
  - alias: Wake device
    service: wake_on_lan.send_magic_packet
    data:
      mac: aa:bb:cc:dd:ee:ff

Checklist:
If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.github.io

If the code communicates with devices, web services, or third-party tools:

[x] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[x] New dependencies are only imported inside functions that use them (example).
[x] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.

I was trying also with device_tracker entity names, in order to make easier service calls without the MAC address. It works nice, but requires to expose the MAC address in the device_tracker state_attributes, which could be seen as undesirable, because MAC addresses are ugly and don't add useful information for the frontend panels, so, what do you think about?
The service schema would be:
WAKE_ON_LAN_SEND_MAGIC_PACKET_SCHEMA = vol.Schema({
    vol.Exclusive(CONF_MAC, 'device identifier'): cv.string,
    vol.Exclusive(CONF_DEVICE, 'device identifier'): cv.entity_id,
    vol.Optional(CONF_BROADCAST_ADDRESS): cv.string,
})

And the parameter description:
device:
  description: Name of the device_tracker entity to wake up. Use this instead of `mac` address for known devices by Home Assistant.
  example: 'device_tracker.nas'

Can you add a test that wol.send_magic_packet gets called?

@balloob, tests made.
I'm mocking wol.send_magic_packet in all correct service calls but one, in which I'm sending a magic packet to a non existent mac, so I added the wake_on_lan library to requirements_test_all.txt. Is this the convenient thing to do?

How does this fit with switch.wake_on_lan ? Isn't there some overlap in functionality here?

Hi @lwis, I think the intention here is to call this new component from any of the platforms / components that are using the WOL functionality, including the switch. For now, there is overlapping, of course.

Ok, is that refactor planned for a later PR?

Yes, now I'm finishing another PR derived from #8240 to use this new component from media_player kodi, as a proof of concept. If looks good, next can be the refactor of the existent (I think there are only three or four)

We should deprecate that switch, as it can be replicated using this service and a ping binary sensor.

@azogue we should not actually sent out a packet. That is doing I/O for no reason and slows down the tests.
Adding it to the test requirements is fine, but we can do better 😉  Since we don't actually want to call the dependency, we just want to verify that we tried calling it. To do so, we can mock out the dependency being loaded with a fixture.
# Example from pyunify test. Copy paste this above your tests.
@pytest.fixture
def mock_wakeonlan():
    """Mock mock_wakeonlan."""
    module = mock.MagicMock()
    with mock.patch.dict('sys.modules', {
        'mock_wakeonlan': module,
    }):
        yield module

To leverage fixtures, you'll have to re-organize your tests, make them all functions on the module level and add hass as first parameter. That will automatically create and stop a hass instance for you to use 👍
Instead of mocking the logger, let's use another fixture called caplog. It will capture all logging and you can test on it using caplog.text.
def test_calling_service(hass, caplog, mock_wakeonlan):
    assert len(mock_wakeonlan.mock_calls) == 1

See the PyUnifi example here: https://github.com/home-assistant/home-assistant/blob/352cca1037f1d51b09003b8ce942f97918dcf336/tests/components/device_tracker/test_unifi.py

@balloob,

we should not actually sent out a packet

I was doubtful about that, I'll change it and make it as requested.
The mock of the _LOGGER i saw in another test, btw.
I'll remove the wakeonlan lib of requirements, also, right?

🎉
Thanks for bearing with us on the tests @azogue. Now you know how to write tests for your future endavors in Home Assistant 👍

I've learned a lot, so thanks to all of you! 🎉


allow logging for objects and propose shortcuts

close #13

@AdrienGiboire Why did you close this? It looks like a good thing.

There was conflicts because I did this quite some time ago. I have to rebase your work first then make a fresh pull request.


Use Cros-guest-tools to get chromeos integration

Currently, I am setting up a ubuntu bionic chroot (completely irrelevent) as this is more of a question of how well the crostini guest tools would mesh and if they would even work. This guide explains how to install cros-guest-tools in a new termina container. Could this be done with a crouton chroot and work?

@pcs3rd,
What Chrome OS integration are you missing?
I don't know if anything would break but I don't think they'd mesh well.
According to the 'cros-guest-tools-deb' package description it includes things for plumbing it into the CrOS dbus that I don't think are appropriate or needed in crouton. You can take a look at the package build and install the other things you think you might want though.
Hope this helps,
-DennisLfromGA

@DennisLfromGA I was more or less wanting to see if I could get shelf integration with a running crouton instance since sommelier can be run too.

+1 for this. I'd love to have my crouton apps listed in the ChromeOS launcher and launched in a browser tab or separate window when clicked.

I'd love this as well so that I can get rid of Crostini. For me it's too complex (a container running in a VM!!!) for little benefit for my use case. The only downside of using Crouton is lack of Crostini level integration, ie applications appearing in launch menu, same window manager/taskbar, open with crouton app from files app, etc.

@erenoglu as I hinted to earlier, if I remember right you can run versions of sommelier on crouton instances and that will give you window integration. Guest-tools would just make it easier to manage windows + start apps without using a cli. I haven't used crostini in a while (16gb Chromebook, crouton stuff on sdcard), because of the changes in where exacutables can be run. I've taken mr.chromebox's full eufi firmware in preferance.

@erenoglu as I hinted to earlier, if I remember right you can run versions of sommelier on crouton instances and that will give you window integration. Guest-tools would just make it easier to manage windows + start apps without using a cli. I haven't used crostini in a while (16gb Chromebook, crouton stuff on sdcard), because of the changes in where exacutables can be run. I've taken mr.chromebox's full eufi firmware in preferance.


Native OSX support

make lipsync's installer work with OSX (uname -a = darwin) as well as Linux. We need to get a version of lsyncd2 working using fevents or some other kernel watching mech

Any update on this?  I would love to see OSX supported.

I haven't had time to try Guard for this unfortunately, but it can be set to run shell commands whenever a file changes:
https://github.com/hawx/guard-shell

I'd like to add you to my professional network on LinkedIn.

Phil

Phil Cryer
Technical infrastructure engineer at Center for Library & Informatics at Woods Hole Marine Biological Laboratory
Greater St. Louis Area
Confirm that you know Phil Cryer:
https://www.linkedin.com/e/sx37d5-gtkqzvcr-5o/isd/4504899444/_GuCvnB0/?hs=false&tok=3qJk4W4Srlf4Y1
--
You are receiving Invitation to Connect emails. Click to unsubscribe:
http://www.linkedin.com/e/sx37d5-gtkqzvcr-5o/ql1xzIiEd2QiqszGpcWdCa_CRk_LQPXUKEewqGiJfI_nMPu0KJ3R8ajpxoDEi4q0QgyrFAjJOIfMveXPQRyrMUehfZlEFlweNcIVaD/goo/reply%2Bi-799934-9861fb798c8fcec9e2677e092c69bcb135790b48%40reply.github.com/20061/I1560656522_1/?hs=false&tok=2aG-G1UKLlf4Y1
(c) 2011 LinkedIn Corporation. 2029 Stierlin Ct, Mountain View, CA 94043, USA.


Simplifying hookification and adding use device name

Description

Added useDeviceName() that wraps getDeviceName()
Added internal utility function, useOnMount(...),  to simplify the 'hookification' (patent pending) of some async functions

Compatibility

OS
Implemented

iOS
✅

Android
✅

Windows
✅

Checklist

[X] I have tested this on a device/simulator for each compatible OS
[X] I added the documentation in README.md
[ ] I mentioned this change in CHANGELOG.md
[ ] I updated the typings files (privateTypes.ts, types.ts)
[X] I added a sample use of the API (example/App.js)

Nice - this softens the blow of the code multiplier that hooks otherwise is - so now it looks like (whitespace aside) effectively a one-liner to wrap any of the async calls in a hook? And this works for you on firstInstallTime and deviceName in testing?

Yep! It should be super simple to wrap most of the other async functions.
There are a few that will require a bit more than the wrapper I made. I’ll work on those soon for another PR.

Great - merged - it sounds like you have an internal plan for more development, I could release now or wait - I don't believe anyone is waiting for anything and there are no bugfixes queued so I'm inclined to wait unless you need a release for your own purposes with this work included (which would be fine too).
Cheers

Waiting is fine with me! I'll probably have another PR out tonight


Deeplinks are not working with Uniswap DEX

Describe the bug
I tried to swap some ETH to WETH on Uniswap and after I click on swap button it doesn't open SH wallet confirmation popup or redirect me to SH wallet, I have to open wallet manually. Idk if it's expected behaviour, it looks like deeplinks are not working and app behaves like web wallet
To Reproduce
Steps to reproduce the behavior:

Go to Uniswap and connect the wallet via wallet connect
Try to swap ETH to WETH
See error

Expected behavior
When I do swap on DEX I have to be redirected to wallet to sign confirmation modal
Screenshots
If applicable, add screenshots to help explain your problem.
Smartphone (please complete the following information):

Device: Samsung S9
Browser chrome

Additional context
reproducible on dev branch
https://github.com/user-attachments/assets/41663bcb-0473-4f3f-9ad5-42333a5c21f6

Hello @Liubov-crypto
You're experiencing transcript error. It seems your query would be best dealt with by the support team.
I'll have to refer you to the official support Requests team with the ticket ID UNI07638
Please see the link below to our dedicated support line:
Uniswap Support Requests
Click on the live chat icon at the bottom corner of the page to initiate chat


Fix issue with sourcemaps when using gulp-sourcemaps and autoprefixer

As described in the comments of issue 106, I'm receiving an incomplete sources property when feeding the results from gulp-sass into autoprefixer (using gulp-postcss or gulp-autoprefixer). This was not the case in earlier versions of this plugin. As suggested by @w0rm, changing the file extension of the map's file property fixes the issue and the existing tests still succeed.

@Snugug did the work around the sourcemaps so he will want to have a look i guess but that's ok for me

Thanks! Is there a new minor release planned?

@backflip Yah. I want to see if we can resolve #257 quickly and if so, a new patch release will be pushed (this is a bug fix, not a new feature, so a patch instead of a minor).

Perfect.

@backflip Thomas, have you managed to get sourcemaps working with your setup? Would you mind sharing your gulp configuration for the sass task?

Hey @lmartins, I'm sorry about the delay. My setup is overly complex but with regards to sourcemaps it's basically identical to https://github.com/dlmanning/gulp-sass/blob/master/test/main.js#L401-415. What issues do you have specifically?


Implement totems

This PR implements the totem item
as well as implementing the TotemUseAction and the Totem sound

bump

everything should be good now.


Possible Malware

This is possibly a false positive, but wanted to mention it.  I just ran Malwarebytes on my Mac and it quarantined files from this repo for Adware.  Worth running a quick scan on your code.
Thanks.

which file?

It quarantined the whole directory.
Sent from my iPhone

On Dec 27, 2018, at 9:05 PM, emn178<EMAIL_ADDRESS>wrote:
which file?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Dependencies updated. Fixed all npm audit issues.


Version 1.3.2 does not support python versions <=3.10

Hi!
I have the following exception on python3.10:
ImportError: cannot import name 'Unpack' from 'typing_extensions'

According to the typing_extensions docs, the Unpack class has been available since python version 3.11

aiocsv successfully builds and runs on all versions of CPython ≥ 3.8: https://github.com/MKuranowski/aiocsv/actions/runs/8866966804
typing_exceptions docs say that you have linked say that Unpack is in pure-Python typing starting with 3.11. The whole point of typing_extensions is to backport typing features.
The typing_exceptions docs however do say that Unpack is available starting with version 4.1.0. Which version of typing_exceptions are you running?

You're right, sorry