Add marginTop to other components?

marginTop is maybe the most important style for structuring the UI, besides flex stuff.
It's useful for Views, Texts...
marginBottom is less useful and more complex because the dictates how other components will behave. marginTop is specific for the component in question.
While it can be set in style, often it's required to set a specific marginTop for each Header, for example. This allows an easy fine touch.
Maybe just top? Would be ambiguous. marginTop is clearer.

0.55.0

Added marginTop to View-based, Text, TextInput and Switch.


adding aws secret manager

added aws secrets manager (only snowflake is using)
updated snowflake connection to key_based_authentication
updated sample settings.py and .env

also updated redshift connection library from jaydebeapi to official redshift library, no longer need to download jar files

updated load_via_aql_snowflake to use key based authentication
current, both load_via_aql_snowflake and query_snowflake will load private key inside themselves, next todo will be adding a function to load and decrypt private key


Fix integrate docs

[ ] Tests added
[x] Passes black . && mypy . && flake8
[x] Fully documented, including whats-new.rst for all changes and api.rst for new API

This updates the name in the parameter list of Dataset.integrate and adds an example. Also, the note in DataArray.integrate referred to coord which does not exist. I guess in the end to make it match Dataset.integrate it would be better to rename that parameter from dim to coord, but that would mean changing the API.

done


Don't do the less check on smart collections

Description
Add a setting to control whether less applies to smart collections
Default collection count for comparison to 0 if the count is None
Issues Fixed or Closed

Fixes #2274

Type of Change

[X] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)

Checklist

[X] Updated Documentation to reflect changes
[X] Updated the CHANGELOG with the changes

This touches some other files, is that intentional?

I see that .envrc is added, is that intentional here?

Yeah, for those who use direnv

Also can't merge because of a conflict in changelog

Fixed.


[Feature] Document Defects Difficult to Get Started

Pre-check

[X] I am sure that all the content I provide is in English.

Search before asking

[X] I had searched in the issues and found no similar feature requirement.

Apache Dubbo Component
Java SDK (apache/dubbo)
Descriptions
The documents are all tutorials written from an xml perspective, but now they are basically configured with springboot integration using annotations. Beginners are developed with annotations. As a result, the documents are all written in xml, which is difficult to start.
It is hoped that the official documents can provide usage methods from the perspective of annotations.
Related issues
No response
Are you willing to submit a pull request to fix on your own?

[ ] Yes I am willing to submit a pull request on my own!

Code of Conduct

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

The new documentation design is already in the works and should accompany the official release of dubbo3.3.

The new documentation design is already in the works and should accompany the official release of dubbo3.3.

Thank you. I'm looking forward to it

The new documentation design is already in the works and should accompany the official release of dubbo3.3.

I hope to help everyone get started faster and integrate with practical use

The new documentation design is already in the works and should accompany the official release of dubbo3.3.

I hope to help everyone get started faster and integrate with practical use

We also look forward to your participation to help us improve the documentation.

The new documentation design is already in the works and should accompany the official release of dubbo3.3.

I hope to help everyone get started faster and integrate with practical use

We also look forward to your participation to help us improve the documentation.

Is there a place to preview the new version of the document?

It's a good to google before asking questions, or at least look up the official website
https://dubbo.apache.org/en/docs3-v2/java-sdk/quick-start/spring-boot/
https://dubbo.apache.org/zh-cn/overview/quickstart/java/spring-boot/

The new documentation design is already in the works and should accompany the official release of dubbo3.3.

I hope to help everyone get started faster and integrate with practical use

We also look forward to your participation to help us improve the documentation.

Is there a place to preview the new version of the document?

https://dubbo-next.staged.apache.org


Image for twitter card of playlist.wiki homepage is not very good

It's a big, awkwardly cropped version of the WikiEdu logo.

@rileywho

Alternative Images. @ragesoss thoughts?

@rileywho nice! I think the second one with "Create Your Wiki Playlist" is the better of the two.
:shipit:

@hudakdidit New Meta Image

@rileywho those image dimensions work well for twitter but not for facebook. Could you render a new one? Looks like for facebook 470px x 256px is good: https://blog.bufferapp.com/ideal-image-sizes-social-media-posts#facebook

Facebook debugger preview:


Adding/Updating usa-new_jersey-newark.json

Can you move this to sources/us/nj/newark.json please?

@iandees  As this was submitted via the app, it still won't pass as it needs a conform.  That really needs to be updated, possibly to populate an issue instead of a PR. Think @riordan can handle it as he works for Mapzen but others wouldn't know how to get this to pass the CI
Also, @riordan I think you meant for the data url to be http://njgin.ci.newark.nj.us/arcgis/rest/services/CityBaseMap/8Parcels/MapServer/0, correct?

I’m hearing a major need to get the app updated. Been chatting with @ajturner about this.

Thanks @geobrando! Since this is my first submission, I wasn't sure how the export was intended to be formatted.
Happy to make the changes.
But the real contributor here is @jqnatividad, who's been working with Newark on their open data portal and got them really excited about contribution to the project. A few of @ontodia's hosted CKAN data portal clients are really excited about making it easy for projects to leverage their open data, so this feels like the start of something really good.
Patch coming soon.

@migurski lemme know how I can help out on that.

I’m hoping to speak with ESRI folks about it tomorrow, but the short version is that the app can only be improved with user participation to make sure we don’t guess at a confusing UI again. I’d like their help getting direct introductions to local government people who could participate as guinea pigs. Could Joel be one of these?

@riordan It looks like this source does not have situs addresses but only owner addresses.  OA is expanding to be a repository of parcels in addition to address points, but currently we're only accepting sources with physical addresses.
I just brought up this point in https://github.com/openaddresses/machine/issues/163.  In the meantime, I've added this source to the parcel wiki.
Thanks again.

@geobrando I think "PROPLOC" might work with some Regex work:
PROPLOC: 41-43 COMMONWEALTH AVE
http://njgin.ci.newark.nj.us/arcgis/rest/services/CityBaseMap/8Parcels/MapServer/0/query?where=OBJECTID%3D1&text=&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&relationParam=&outFields=PROPLOC&returnGeometry=false&maxAllowableOffset=&geometryPrecision=&outSR=&returnIdsOnly=false&returnCountOnly=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&returnZ=false&returnM=false&gdbVersion=&returnDistinctValues=false&f=pjson
However, returns Address Ranges for most parcels, not sure that's been discussed here before.

@slibby You are right! Missed that field.  But yes, address ranges are not supported.  Though I'm quite sure there's some that have found their way into our collection.  If they're mostly ranges I would say we shouldn't use it.
Was mentioned in the roadmap thread https://github.com/openaddresses/openaddresses/issues/996

Update: it appears to be a mix of ranges + single addresses.
18114 ranged out of 46218 total

Thanks @riordan for submitting this.  We'll work directly with Newark GIS folks to ensure we have clean data. And yes @migurski, would be happy to be a guinea pig.
Perhaps we can create best practices/standard for sharing this kind of data and use Newark as our reference implementation?
Right now, we're currently working with a few cities in the Northeast with their CKAN installations.  One vision I discussed with @riordan is to work on ckanext-mapzensearch, whereby we incentivize municipalities to publish open address data, which is then harvested/submitted to openaddresses.io, and geocoded against by Mapzen Search.
The hope is, this creates a virtuous cycle that has several benefits:

cities get a high-quality open source geocoder powered with their open address data without having to expose their ESRI geocoder
this geocoder can then be used to geo-enrich other datasets they publish
general public / tech community can use a much better open source geocoder without the severe throttling limitations of geocoders like Google, etc.
there's an option to mount an in-premise geocoders for high-throughput users (e.g. local civictech projects)

Working with CKAN would be amazing. Right now we poll our data sources semi-regularly and download their entire contents to the best of our ability. A CKAN plugin or extension or similar that hit some openaddresses thing to tell us when new data is available (whether someone is interested in contributing brand spanking new data or if there's updates to an existing dataset) would be amazing.

@iandees, @riordan and I discussed that as well! :)
Wouldn't it be amazing if openaddresses can just check the data.json of a CKAN instance, and automagically find open address data based on some standard metadata around the open address dataset in the catalog?
And to complete the loop, when the CKAN instance with the oa/mapzen integration geocodes a dataset, you can even find out what "version" of a dataset is being used...

I'm going to close this PR because we can't do ranged addresses right now.
If the other things brought up in this ticket (CKAN integration, etc.) are still interesting to folks, please file a new ticket.


can it work with openHD?

can it work with open HD?
Since there is no discussion, and I didn't find way to email.  Hope issues will get any luck response. :)

I don't think so. I don't have any experience with open HD, and this project uses its own protocol. Depending on the format/protocol open HD needs, it could be adapted, but I have no idea about what kind of work this could require

OK, maybe I have to try my RPI 3B+, and Fix the  esp-idf 4.3 + latest code(56ee43e) constantly reboot #16


interactive projectile-grep like counsel-projectile-grep

After reading #112 and #233, I have stopped using counsel-projectile and now have most projectile commands working nicely with selectrum.  However I notice that projectile-grep does not dynamically update a list of candidates as more characters are entered, in the same way that counsel-projectile-grep did.  Is there any way to achieve this?

This is discussed more generally in #114. You can achieve that currently with Selectrum by passing a dynamic candidate function (we have examples of that in the wiki) but it's not clear if something like this could work nicely with default completion. I think a good compromise would be to ask for the search term first and then give you a list back which you can use continuous completion on. I think @minad is also looking for approaches to implement such a command in consult.

Thanks!  I had missed #114 - I'll keep an eye on it and also check out the wiki!

Can be closed? We have consult-grep, consult-ripgrep and consult-git-grep with project support now.

Can be closed? We have consult-grep, consult-ripgrep and consult-git-grep with project support now.

Oh cool! I'll check them out.

Oh cool! I'll check them out.

I've had a look at these 3 functions and they are almost perfect, but they are lacking the final piece in terms of integration with projectile-grep.  Compare with counsel-projectile-grep, whose docstring says:

If inside a git project and ‘projectile-use-git-grep’ is non-nil, use git grep. Otherwise use grep recursively.

Although that doesn't explicitly say it, the key difference is that if you are visiting a file in a subdirectory of the git repo and you invoke counsel-projectile-grep, it will search the whole repo, not just the current subdirectory like the three consult grep functions mentioned above.
So ideally there would be an analogous consult-projectile-grep which when invoked from within a git repo, first changes directory to the repo root directory then uses consult-git-grep or consult-ripgrep to do the searching, and when invoked from outside a git directory, uses either consult-grep or consult-ripgrep as normal.

I've had a look at these 3 functions and they are almost perfect, but they are lacking the final piece in terms of integration with projectile-grep.  Compare with counsel-projectile-grep, whose docstring says:

If inside a git project and ‘projectile-use-git-grep’ is non-nil, use git grep. Otherwise use grep recursively.

Although that doesn't explicitly say it, the key difference is that if you are visiting a file in a subdirectory of the git repo and you invoke counsel-projectile-grep, it will search the whole repo, not just the current subdirectory like the three consult grep functions mentioned above.
So ideally there would be an analogous consult-projectile-grep which when invoked from within a git repo, first changes directory to the repo root directory then uses consult-git-grep or consult-ripgrep to do the searching, and when invoked from outside a git directory, uses either consult-grep or consult-ripgrep as normal.

@aspiers No, actually they are perfect ;)
I wrote above: with project support, they can be configured such that they behave exactly like you described. But I must admit, the readme didn't mention project support before. I updated the readme. Please take a look.

@aspiers No, actually they are perfect ;)
I wrote above: with project support, they can be configured such that they behave exactly like you described. But I must admit, the readme didn't mention project support before. I updated the readme. Please take a look.

OK great, thanks.  I had noticed the mention of project support and as a result even read the source for the three functions but had missed that the support is "hidden" in consult--directory-prompt.  I now have it working.  In the process I noticed a couple of minor issues but I'll file them on the consult repo to avoid spamming selectrum further.  Thanks a lot!

OK great, thanks.  I had noticed the mention of project support and as a result even read the source for the three functions but had missed that the support is "hidden" in consult--directory-prompt.  I now have it working.  In the process I noticed a couple of minor issues but I'll file them on the consult repo to avoid spamming selectrum further.  Thanks a lot!


The specification mentions GML 3.3 and GML 3.2.1

Page 10 mentions both, GML version 3.3 and version 3.2.1, as encodings. Only one version should be mentioned.
Originally, we said to use GML 3.3, because this version allows us to encode UML association classes.
However, GML 3.3 did not allow us any more to represent code lists in the same way as we did in CityGML 2.0. For this reason, we decided in #10 to use the GML 3.2.1 encoding rule again in ShapeChange and to add the association class encoding as extra rule taken from GML 3.3 to the ShapeChange configuration file.
This would mean, that currently we use GML 3.2.1, right?
This would also mean that #79 is not relevant any more, since the GML 3.3 compact encoding cannot occur in instance documents any more.
In addition, instead of refering to GML 3.2.1 we should refer to GML 3.2.2 as there has been a corrigendum some time ago regarding the gml:id attribute on LinearRing geometries.

Recommended resolution: delete text "version 3.3" on page 10 paragraph 2.
CityGML 3.0 is a conceptual model and is not tied to ANY encoding. You are free to use any version of GML (or any other type of encoding) you like.

For the conceptual model, the recommended resolution is fine. When the GML encoding is done, it will be necessary to adjust which GML is used (3.2.2 and/or GML 3.3).
The choice is to be done on basis of analysis of constraints, as recommended by Tatjana. However I would like to point out that GML 3.3 offers a more efficient encoding in support of TIN terrain (in GML). Woudl there be a way to incorporate this in the GML encoding of CityGML 3? This is something of interest because as you know, TIN terrain in CityGML 2.0 is extremely heavy on large areas.

When discussing this issue with Thomas two days ago, we wanted to suggest to write in the text that the preliminary encoding of CityGML is based on GML 3.2.2, because in that way the GML encoding can still make use of the same code list representation as in CityGML 2.0 and that, in addition, to be able to encode association classes, an additional rule was taken over from GML 3.3.
But the proposed resolution not to mention GML at all in the conceptual model specification is probably even better.

Perhaps GML should be mentioned in some accompanying text when the standard is sent out for public comment, as it is still relevant to know that a - proposed - GML encoding already exists, then reviewers can look at that too.
If a version is mentioned, the patch version number should be left out, so "GML 3.2" and not "GML 3.2.2". It is not very likely, but if a "minor bug" would be found with the GML standard and it would be fixed, then GML 3.3.3 would be released, using the same namespace http://www.opengis.net/gml/3.2 , and physically residing in the same location as the current GML 3.2.2, thus in folder http://schemas.opengis.net/gml/3.2.1/. As was done with the update from GML 3.2.1 to GML 3.2.2.

Do not mention GML in specification. Explain that GML implementation has been prototyped and is available in information that accompanies/introduces the specification.

Changes to section 2 (Scope).
Removed version from the first reference to GML.
Removed the patch number from the reference to the preliminary encoding.
I cannot find any other references to GML except as a separate encoding standard for the Conceptual Model.

Agreed to close at 20 August 2020 SWG meeting.


Fixed twice assigned values

The Pinguem.ru competition on finding errors in open source projects. Warnings, found using PVS-Studio:
FreeRDP/client/X11/xf_input.c	272	warn	V519 The 'px_vector' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 271, 272.
FreeRDP/client/X11/xf_input.c	286	warn	V519 The 'px_vector' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 285, 286.
FreeRDP/client/X11/xf_input.c	305	warn	V519 The 'py_vector' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 303, 305.
FreeRDP/client/X11/xf_input.c	319	warn	V519 The 'py_vector' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 317, 319.
FreeRDP/client/X11/xf_input.c	349	warn	V519 The 'z_vector' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 346, 349.
FreeRDP/client/X11/xf_input.c	373	warn	V519 The 'z_vector' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 370, 373.
FreeRDP/client/X11/xf_input.c	384	warn	V519 The 'z_vector' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 381, 384.

@freerdp-bot can you test that ?


Refactoring changes in the training routine

Description
This PR introduces a few improvements/changes to the training routine and its tests:

improve logging messages
improve fixture in conftest to obtain a single batch from different datasets and with different batchsize without hardcoding any of the values
provide training toml file that sets parameters for force training
The Error classes will return now the error per molecule instead of the mean of the error, this makes it easier to log and use torchmetrics
tracking loss now also with torchmetrics instead of custom torch.nn.Module
allowing to cache the processed dataset. In that case we assume that another process has already processed the dataset (since the .pt file is present) and, if cache regeneration is not requested, we will use this file and skiptt the prepare_dataset operation.
lock the prepare_dataset method: only a single instance should execute this method per dataset.

This PR also includes bugfixes:

fix a bug in the force loss calculation
only retrain/create graph of force when in training mode (not in evaluation or test mode)

Status

[x] Ready to go

The CI was failing due to running out of memory (CI runner is capped at 16 gb).  See #246 .  The code will skip training sake with forces.


fix progress bar being disabled

Codecov Report

Merging #9 (1c19894) into main (db57837) will increase coverage by 0.03%.
The diff coverage is n/a.

:exclamation: Current head 1c19894 differs from pull request most recent head 8279a06. Consider uploading reports for the commit 8279a06 to get more accurate results

@@            Coverage Diff             @@
##             main       #9      +/-   ##
==========================================
+ Coverage   86.20%   86.24%   +0.03%
==========================================
  Files          21       21
  Lines        1566     1563       -3
==========================================
- Hits         1350     1348       -2
+ Misses        216      215       -1

Impacted Files
Coverage Δ

ngs_tools/utils.py
90.21% <ø> (-0.05%)
:arrow_down:

ngs_tools/chemistry/Chemistry.py
81.16% <0.00%> (-0.13%)
:arrow_down:

ngs_tools/logging.py
67.79% <0.00%> (+1.12%)
:arrow_up:

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 db57837...8279a06. Read the comment docs.


add onChanged to controller

It's probably fixed via onSubmit, I'll close this pull request because I think it's outdated. Sorry for the delay.


HTML Report: Improve 'Print to PDF' layout/view

Feature Description
Current Situation
It is almost impossible to export the HTML report to a multi-page PDF with the current CSS configuration. The PDF always contains a single page with the scrollbars visible. See attached screenshot.

Solution Proposal
Modern browsers support a media query called: @media print with which the CSS can be customized when a HTML page printed (e.g., when a user clicks 'Print to PDF' in the browser).
I have experimented a little bit and with the main CSS file: https://github.com/gatling/gatling/tree/main/gatling-charts/src/main/resources/io/gatling/charts/assets/style/style.css and have added the following print media query.
Additional CSS
@media print {
	.nav {
		display: none;
	}

	.cadre {
		overflow-y: unset;
	}

	.content-in {
		overflow-x: unset;
	}
}

It hides the sidebar navigation and removes the horizontal and vertical scrollbars, allowing the content to flow over multiple pages.

I'd be happy to contribute this as a PR, if others think this might be a valuable addition.

Looks like a good idea. So indeed, could you please provide a PR?

Looks like a good idea. So indeed, could you please provide a PR?

Yes, sure. Here you go: https://github.com/gatling/gatling/pull/4354


problem with xcode build

got error when build using xcode

Module 'contacts_service' not found

╰─➤  flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.12.13+hotfix.8, on Mac OS X 10.15.3 19D76, locale en-GB)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 11.3.1)
[✓] Android Studio (version 3.5)
[✓] IntelliJ IDEA Community Edition (version 2019.3.3)
[✓] VS Code (version 1.43.1)
[✓] Connected device (2 available)

@mdnurfikriabdghani are you able to build and run the flutter example app?

@mdnurfikriabdghani this plugin has been updated. Please try again using the latest version 0.4.2 released today.

@lukasgit  Got this error when compiling on Xcode
SwiftContactsServicePlugin.swift
Missing argument for parameter 'localizedLabels' in call

@lukasgit Got this error when compiling on Xcode
Version 0.4.2
SwiftContactsServicePlugin.swift
Missing argument for parameter 'localizedLabels' in call

Same problem

@sperochon see above posts Missing argument for parameter 'localizedLabels' in call

Seems to forget some files... I look at it...

@sperochon thank you

@sperochon also note the latest PR #94

@sperochon see above posts Missing argument for parameter 'localizedLabels' in call

I have fixed it in my code PR 94

I have added the parameter missing iOSLocalizedLabels parameter to new methods openContactForm and openExistingContact.
The PR is #96

PR #96 now included in version 0.4.4


Hard Lock (No Crash)

When picking up LostGroveLongSwim, the game completely froze. It didn't crash out so I don't have a crash report log to share.
I was streaming the run, so if it helps, this is a clip of it: https://www.twitch.tv/videos/2249970744

This is likely an issue that was fixed in a previous update. Potentially version 0.1.2-alpha where async calls to the AP server replaced sync calls. If this is not the case, then this issue can be reopened


TSBM-303 Upgrade to matter <IP_ADDRESS>

Upgrade to matter <IP_ADDRESS> and fix build issues

Superseded by PR21


after updating vscode my computer crash and vscode cannot launch anymore

VSCode Version: version 1.30.0
OS Version: windows 10 pro 1809

Steps to Reproduce:

my vscode old version was version 1.30.0 and today there was a new version 1.30.1 and i update it
then after the update installed my system crash (blue screen)
then i reboot my computer and found that vscode cannot launch anymore. here is the error

launch code in powershell:

Does this issue occur when all extensions are disabled?: No

Does it work if you reinstall VS Code from scratch?


[Feature request] Scope snippets based on file extension

Make snippets categorize to only be exposed on a per file extension basis to prevent snippets created for lets say Python to show up in the ctrl+space menu when working in a .cpp file.
Or is this a thing already? The docs doesn't seem to mention it

That was exactly the problem my extension originally tried to solve. There are multiple extensions now for dealing with snippets dedicated for a language or a file extension, which limit their usability. I believe that developing a "generic" treeView for all your snippets will offer you the flexibility to organize snippets the way you prefer. No default or strict way of doing it !


[image_picker][iOS] Exception is thrown when picking image on simulator

This issue is still a problem => https://github.com/flutter/flutter/issues/70436 on Apple M1 Max.
flutter doctor:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel master, 3.1.0-0.0.pre.1834, on macOS 12.4 21F79 darwin-arm, locale en-FR)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 14.0)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.2)
[✓] VS Code (version 1.69.2)
[✓] Connected device (5 available)
[✓] HTTP Host Availability

• No issues found!

Hi @Kiruel, thanks for filing the issue.
Please provide the information indicated below:

Which image_picker version are you using?
Affected device information (iOS model, version)
A completed and minimal reproducible code sample
Reproduction steps

Hi @Kiruel   For developing on apple silicon (M1), you needed to remove the google_maps plugin. This plugin moves the simulator to Rosetta and this has some issues with image handling in the simulator.


Changed deutsch layout

I had to add a CSS class to the Japanese keyboard because the layouts were conflicting.

I prefer to make PR after making the italian keyboard layout as well to check everything


Make wrap work with points in the vector-labels example

Fixes #7941.

arrange text to the orientation of the line help me


Unclear on using in an external site

Hey @ElMassimo,
Can I use your dark mode switch on my site? How would I do that? I tried this:
<script type="module" src="https://raw.githubusercontent.com/ElMassimo/vue-custom-element-example/main/package/src/index.ts"></script>

But it did not work.
Basically, I'm trying to build a "widget" that someone can embed on their site (like your dark mode switch), but am unclear how you would embed a Vue custom element on an external site. So, how would I embed your dark mode switch on my site? Is that possible?

Great, thanks!

Hey @ElMassimo,
I cloned the project, did npm install and run the project. I'm getting error.. attached the photo.

Can you help?

Just checked and I can't replicate that error.
I've updated the example to use Vite 3 and the latest Vue, feel free to pull from this repo and try again.


Improving error handling with neocore

It would be great if we would improve the error handling at some point. I'd like to remove the logzero dependency from neocore and throw exceptions instead of logging errors and returning default values. This will need some refactoring on the implementation points in neo-python.
Not a hurry, but I think would improve the overall robustness and usability of neocore.

done


Is a log file viewer planned?

One of the best features that I'm missing from SmartInspect is the log file viewer...curious if there are plans to add a viewer here.

Now days with specialized distributed logger aggregators like elastic search (Kibana), GrayLog, Grafana, Splunk and others the time of single file log viewers is over.  I was a SmartInspect user and then I switched to QuickLogger, they had a nice visualizer but it was not scaling well for big files, forget about multiple sources, graphics or visualizations.

When using plain text files, we use BareTail.
With LoggerPro you can append your logs everywhere. Did you tried Redis and the Redis Viewer?

@epachsoft There's a very long way to go before log file viewers are irrelevant.  I see the obvious trend though.
@danieleteti I'll take a look at BareTail.  Thanks.


typo: additnal -> additional

@nschonni : Thanks for your contribution! The author, @Deland-Han, has been notified to review your proposed change.

merging typo fix in code comments


fix resolving ReactComponentElement children

Currently Radium resolves all the childrens of the enhanced element which can lead to some unexpected behavior and affect the performance badly.
ex:
<MyRadiumComponent>
  <ThirdPartyComponent/>
  <div/>
</MyRadiumComponent>

The ThirdPartyComponent and it's children will be resolved, not just the div
<MyRadiumComponent>
  <MyRadiumComponent>
    <MyRadiumComponent/>
  </MyRadiumComponent>
</MyRadiumComponent>

The inner MyRadiumComponent-s will be added to the resolveStyles() multiple times.
I added a failing test for this and a possible fix which is only resolve ReactDOMElement-s when it recurse over the children in the resolveStyles() and skips the ``ReactComponentElement```-s.

@ianobermiller You're right! I added the changes, what do you think?

We can clean that up another time, I'll probably make a refactoring pass at resolveStyles in the future.


BSPGuy Change Class Issue

I have no idea what is going on, and it didn't even happen to me until now. I linked the paths to the .fgd files flawlessly, as well as the game directory, but nothing changed. This is specifically in regards to the change class tab, and I have to say, it does make me agree that BSPGuy still needs some polishing, though it might be best if it were to be released when its done.
When I clicked on the thing that makes a list of NPCs, functions, etc, it is almost to the brim of being empty apart from the "Change Class" and "Other" sentence, yet the "Other" tab has nothing in it either. What is going on?

might be related to this:
https://github.com/wootguy/bspguy/issues/16#issuecomment-751418120
Check or post your log here if the FGD settings look fine. Idk what else it could be.
Widgets -> Log -> Right click -> Copy

I checked, but sadly nothing in the log is associated with the problem.

If you send the FGDs and your FGD settings I can try to reproduce it on my end.

What do you mean?
And by the way, here is what my settings look like.

I mean can you attach the FGD files here in a ZIP file? ZIPs can be attached when leaving a comment. I already have half-life.fgd but idk where absolutezero.fgd comes from.
Without the files I can only guess at a fix for this.

Half-Life Absolute Zero FGD.zip

The file is empty (0 bytes). Remove it from the FGD list and you'll be able to change classes. Either that or move it to the bottom of the list.

the .fgd file was originally in D:\Steam\steamapps\common\Sven Co-op\svencoop, I moved it to d: and applied the settings changes. Everything worked. Then i copied the .fgd to different places (steamapps, ...\common, ...sven co-op, etc ), swapped between \ and /  everything worked fine


Entity display error

The texture is not fixed.
Keep switching textures. And flickering chaos.
This can occur on any random textured entity.

Any ideas for narrowing down too large an entity to its scope?

The first screenshot seems to be a bug with ToroQuest Revamped, but I will try to fix the second screenshot.

The first screenshot seems to be a bug with ToroQuest Revamped, but I will try to fix the second screenshot.

Well, then I should tell ToroQuest Revamped.


MQTT BROKER - NO CONNECTION

Hi, I have implemented the code with wifi modules esp8266, NODE.JS SERVER in Linux Mint and using "mosquitto" as MQTT BROKER, but I get the following error:
[MESH >>] {"topic":"2483256220/water","payload":"275"}
[ERROR] No MQTT connection
This is the configuration of the "config.js" file:
config.serial = {};
config.serial.port = process.env.MESH_SERIAL_PORT || "/dev/ttyUSB0"; // "/dev/ttyUSB3"
config.serial.baud = process.env.MESH_SERIAL_BAUD || 115200;
config.mqtt = {};
config.mqtt.server = process.env.MESH_MQTT_SERVER_URL || "<IP_ADDRESS>:1883";

Hi.
Please try to connect to mqtt server using some test tool like mqttspy or mqttlens or just simple command line:
mosquitto_pub -h <IP_ADDRESS> -p 1883 -t 'hello'  -m 'MQTT test'

There is a simple case in my code - if underlying mqtt library can't connect - i show this message.


Can't open documents in owncloud - conversion always fails

Every document I try to open via owncloud just gives the error:
"Error occurred in the document server: Conversion error"
Is there any way I can get at the debugging logs so I can find out what's actually going wrong? The error message isn't very helpful.

Hello @tim1mw
Please enter on your host the command supervisorctl and attach here screenshot of its result.

Hi @tim1mw  and @JohnPerkin ,
Please let me know how it has solved?

I have the same problem. I limit access to Onlyoffice using the "ip_filter" option only allowing the Nextcloud server to access Onlyoffice. It seems that conversions aren't handled directly between the Nextcloud Server and Onlyoffice, so the conversion fails with an error because the client machine is not allowed to access the Onlyoffice server directly.

I now added the root certificate to /usr/local/share/ca-certificates/ and issued update-ca-certificates and now I get this error message when trying to convert a file:

{"reqId":"e2oHK5ySm1TqITCdklwh","level":3,"time":"2017-07-10T13:07:56+00:00","remoteAddr":"server","user":"user","app":"PHP","method":"POST","url":"\/index.php\/apps\/onlyoffice\/ajax\/convert","message":"file_get_contents(https:\/\/server\/ConvertService.ashx): failed to open stream: HTTP request failed! HTTP\/1.1 403 Forbidden\r\n at \/var\/www\/nextcloud\/apps\/onlyoffice\/lib\/documentservice.php#187","userAgent":"Mozilla\/5.0 (X11; Linux x86_64; rv:54.0) Gecko\/20100101 Firefox\/54.0","version":"<IP_ADDRESS>"}
{"reqId":"e2oHK5ySm1TqITCdklwh","level":3,"time":"2017-07-10T13:07:56+00:00","remoteAddr":"server","user":"user","app":"PHP","method":"POST","url":"\/index.php\/apps\/onlyoffice\/ajax\/convert","message":"file_get_contents(https:\/\/server\/ConvertService.ashx): failed to open stream: HTTP request failed! HTTP\/1.1 403 Forbidden\r\n at \/var\/www\/nextcloud\/apps\/onlyoffice\/lib\/documentservice.php#187","userAgent":"Mozilla\/5.0 (X11; Linux x86_64; rv:54.0) Gecko\/20100101 Firefox\/54.0","version":"<IP_ADDRESS>"}
{"reqId":"e2oHK5ySm1TqITCdklwh","level":3,"time":"2017-07-10T13:07:56+00:00","remoteAddr":"server","user":"user","app":"PHP","method":"POST","url":"\/index.php\/apps\/onlyoffice\/ajax\/convert","message":"file_get_contents(https:\/\/server\/ConvertService.ashx): failed to open stream: HTTP request failed! HTTP\/1.1 403 Forbidden\r\n at \/var\/www\/nextcloud\/apps\/onlyoffice\/lib\/documentservice.php#187","userAgent":"Mozilla\/5.0 (X11; Linux x86_64; rv:54.0) Gecko\/20100101 Firefox\/54.0","version":"<IP_ADDRESS>"}
{"reqId":"e2oHK5ySm1TqITCdklwh","level":3,"time":"2017-07-10T13:07:56+00:00","remoteAddr":"server","user":"user","app":"onlyoffice","method":"POST","url":"\/index.php\/apps\/onlyoffice\/ajax\/convert","message":"GetConvertedUri: 36041460 Bad Request or timeout error","userAgent":"Mozilla\/5.0 (X11; Linux x86_64; rv:54.0) Gecko\/20100101 Firefox\/54.0","version":"<IP_ADDRESS>"}

It seems that the conversion isn't done just between the Onlyoffice server and the Nextcloud server, but this fails due to the ip_filter setting which doesn't allow the client to directly interact with the Onlyoffice server.

the 'old'-file-types (*.doc, *.xls - without the x at the end) do work? actually I have the same error like you, but only with the old file-types

@e-alfred
Please try the following:
open the NextCloud config file /nextcloud/config/config.php
and insert a section to it:
'onlyoffice' => array (     'verify_peer_off' => TRUE )
@tim1mw
Try restart ONLYOFFICE Document Service:
supervisorctl restart all
Re-save the settings for onlyoffice in ownCloud.

This issue was closed due to no response.


feat(interaction): 支持禁用刷选功能

👀 PR includes

✨ Feature

[x] New feature

📝 Description

刷选功能支持配置是否开启 interaction.brushSelection: boolean
趋势分析表关闭刷选功能
优化注册交互的方式, 移动端关闭 hover 交互
修复交互文档 demo 不显示的问题

🖼 Screenshot

Before
After

❌
✅

🔗 Related issue link

🔍 Self Check before Merge

[ ] Add or update relevant Docs.
[ ] Add or update relevant Demos.
[ ] Add or update relevant TypeScript definitions.

:tada: This PR is included in version @antv/s2-v1.4.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version @antv/s2-react-v1.4.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version @antv/s2-v1.5.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version @antv/s2-react-v1.5.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version @antv/s2-v1.6.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version @antv/s2-react-v1.6.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version @antv/s2-v1.7.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version @antv/s2-react-v1.7.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version @antv/s2-v1.8.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version @antv/s2-react-v1.8.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


fix: update nft-claimer signer

🧿 Current issues / What's wrong ?
Signature implementation for NFT-Claimer is out-of-sync with the smart contract.
💊 Fixes / Solution
Update the NFT-Claimer signature schema to be in sync with what the smart contract is using.
🚧 Changes

Update the signature schema
Add tests

This PR only affect NFT-Claimer behavior, and can be pulled, as the signature is not live yet, and deploying this PR will allow easier testing by the SC team
🛠 Tests

Start the app
Run curl -X POST localhost:3005/api/nft-claimer/mint/sign -H "Content-Type: application/json" -d '{"id": "0x28535f56f29a9b085be88e3896da573c61095a14f092ce72afea3c83f4feefe0", "address": "0x91FD2c8d24767db4Ece7069AA27832ffaf8590f3", "salt": "123456337495"}'
It should output something

Your latest commits are breaking the tests

Values on .env.test should remains as is, all tests depends on them


Getting errors for simple example using create-react-app

I tried singel by using create-react-app and running singel src/App.js which gives me
~/test-singel  singel src/App.js
/Users/tschloetel/test-singel/src/logo.svg:4
React.createElement(
^

ReferenceError: React is not defined
    at Object.<anonymous> (/Users/tschloetel/test-singel/src/logo.svg:1:1)
    at Module._compile (module.js:652:30)
    at loader (/usr/local/lib/node_modules/singel/node_modules/babel-register/lib/node.js:144:5)
    at Object.require.extensions.(anonymous function) [as .js] (/usr/local/lib/node_modules/singel/node_modules/babel-register/lib/node.js:154:7)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/Users/tschloetel/test-singel/src/App.js:2:1)

Then I created Test.js with the example from the docs:
// bad - 2 elements
const Element = props => (
  <div {...props}>
    <span />
  </div>
);

// good
const Element2 = props => (
  <div {...props} />
);

// good - if Element is good
const Element3 = props => (
  <Element {...props} />
);

I ran singel Test.js and get
usr/local/lib/node_modules/singel/dist/Logger.js:47
    const elementName = this.element.displayName || this.element.name;
                                     ^

TypeError: Cannot read property 'displayName' of undefined
    at Logger.start (/usr/local/lib/node_modules/singel/dist/Logger.js:47:38)
    at realPaths.forEach (/usr/local/lib/node_modules/singel/dist/cli.js:68:12)
    at Array.forEach (<anonymous>)
    at run (/usr/local/lib/node_modules/singel/dist/cli.js:57:13)
    at Object.<anonymous> (/usr/local/lib/node_modules/singel/dist/cli.js:91:1)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)

Hey, @ts-de. Thank you for reporting it. The first error should be easy to fix. We are currently not ignoring svg files. We should add svg to src/babelConfig.js.
The second issue isn't actually an issue. We only support default exports. The examples in the Readme are there just as a reference. It's not supposed to be copied and pasted into a project.
Do you want to update babelConfig.js. I'll be glad to help you if you have any questions.

Thanks @diegohaz. I added svg to src/babelConfig.js and I also played around to add the error. I am not sure if this is the best approach, though. The current error output is as follows:

But I think it would be cooler if the error was actually added to the reporting. I am just not sure how to, yet.
You can find both commits in https://github.com/ts-de/singel/commits/bugfix/issue%2321
Happy to hear your feedback

I think that's pretty good actually. We can try to add the error to the tester itself (so it would look like you thought), but it would require more changes since we wouldn't have the component name nor the component itself, which is currently required by ReactTester.


nginx: adjustments for core changes

OK but the core changes should be released

that's why I was stalling, but @AdSchellevis should decide this particular inclusion

@fichtner the core change is not dangerous, it handles elements with a specific class more special, other inputs are not affected. Also all the constraint code works exactly the same way. The new constraint should not be used anywhere else except my plugin but my be needed by @mimugmail for his plugins.
I do see only one big issue: When this code is missing, you cannot use nginx-devel with opnsense (only opnsense-devel works) so there may be some unnecessary bug reports.
You can test the other affected constraint in the backup section (nextcloud) and the nginx set if in the streams server (route with). The frontend code is for example in the nginx plugin in the SNI upstream map. It is using the hidden field in both directions (create one, reload the page and edit it to check).


SimpleSmt.get_node(..) infallible branch

When fetching a leaf from a SimpleSmt the lookup should be infallible. Hence we should replace ok_or(...) with expect(..) in the code below.
https://github.com/0xPolygonMiden/crypto/blob/52db23cd423e01a92eaf92abfd25aeef5b882c92/src/merkle/simple_smt/mod.rs#L132-L135

Closed by #149.


[Debian 11] Failed to Compile with cargo-features = ["resolver"]

When packaging with Debian 11 .deb (https://github.com/alvistack/containers-netavark/commit/cb6a4437b78ae963d79d62f5d468eeb5c8064983 and https://build.opensuse.org/package/show/home:alvistack/containers-netavark-1.0.1), following error message happened:
[  123s] set -ex && \
[  123s] 	export VERGEN_GIT_SHA="5810f9fec619ddf3c95737f9ba26c67f43a6c88c" && \
[  123s] 	cargo build --release
[  123s] + export VERGEN_GIT_SHA=5810f9fec619ddf3c95737f9ba26c67f43a6c88c
[  123s] + VERGEN_GIT_SHA=5810f9fec619ddf3c95737f9ba26c67f43a6c88c
[  123s] + cargo build --release
[  123s] error: failed to get `anyhow` as a dependency of package `netavark v1.0.1 (/usr/src/packages/BUILD)`
[  123s]
[  123s] Caused by:
[  123s]   failed to load source for dependency `anyhow`
[  123s]
[  123s] Caused by:
[  123s]   Unable to update registry `https://github.com/rust-lang/crates.io-index`
[  123s]
[  123s] Caused by:
[  123s]   failed to update replaced source registry `https://github.com/rust-lang/crates.io-index`
[  123s]
[  123s] Caused by:
[  123s]   failed to parse manifest at `/usr/src/packages/BUILD/vendor/zvariant/Cargo.toml`
[  123s]
[  123s] Caused by:
[  123s]   feature `resolver` is required
[  123s]
[  123s]   consider adding `cargo-features = ["resolver"]` to the manifest

This is most likely related to zvariant/Cargo.toml require resolver = "2" (see https://gitlab.freedesktop.org/dbus/zbus/-/blob/main/Cargo.toml#L3), which may not supported by Debian 11 Rust.
Steps for reproduce with podman:
$ sudo podman run -ti --rm --name debian-11 --hostname debian-11 debian:10
root@debian-11:~# apt update && apt -y full-upgrade
root@debian-11:~# apt -y install git cargo gcc
root@debian-11:~# git clone https://github.com/containers/netavark.git
root@debian-11:~# cd netavark/
root@debian-11:~/netavark# mkdir -p .cargo
root@debian-11:~/netavark# cargo vendor > .cargo/config.toml
    Updating crates.io index
error: failed to sync

Caused by:
  failed to download packages

Caused by:
  failed to download `zvariant_derive v3.1.2`

Caused by:
  unable to get packages from source

Caused by:
  failed to parse manifest at `/root/.cargo/registry/src/github.com-1ecc6299db9ec823/zvariant_derive-3.1.2/Cargo.toml`

Caused by:
  feature `resolver` is required

  consider adding `cargo-features = ["resolver"]` to the manifest

We can't easily downgrade this dependency because of a recent major version bump in zbus/zvariant (there were breaking API changes due to a move to the use of async), so I don't think we can easily resolve this on our end.

It seems to me that you're asking netavark to compile with older versions of rust. @baude reached out to me about this issue and I'm happy to take a look.
to reproduce this with different versions of debian, I'm using this Containerfile:
FROM debian:10

RUN apt update && apt -y install git cargo gcc

RUN mkdir /build && cd /build && \
   git clone https://github.com/containers/netavark.git && \
   cd netavark/ && \
   mkdir -p .cargo && \
   cargo vendor > .cargo/config.toml && \
   cargo build

Note that I actually have 3 variations of this file that use different base images in line1:

debian:10 (buster)
debian:11 (bullseye)
debian:sid (unstable)

Using "buster", a podman build -f Containerfile breaks with this error:
error: failed to sync

Caused by:
  failed to download packages

Caused by:
  failed to parse manifest at `/root/.cargo/registry/src/github.com-1ecc6299db9ec823/iptables-0.5.0/Cargo.toml`

Using "bullseye", a podman build returns this output:
error: failed to sync

Caused by:
  failed to download packages

Caused by:
  failed to parse manifest at `/root/.cargo/registry/src/github.com-1ecc6299db9ec823/iptables-0.5.0/Cargo.toml`

Using "sid", a podman build actually succeeds just fine.
Why is that? -- the reason is most likely the version of the rustc compiler supported by the different releases of debian:

Debian Release
version

Debian 10 (buster)
1.41

Debian 10 (bullseye)
1.48

Debian 10 (buster)
1.57

see https://tracker.debian.org/rustc for a more details.
I think it would be helpful if this project could clearly document what's the minimum required version of the rust compiler. It might also be useful to do a survey about the state of rust across different Linux distributions and architectures (luckily, at least in debian/bullseye, rustc has been successfully ported to every release architecture, including mips or s390x :-) )

Soled by manually dirty package Rust as https://build.opensuse.org/package/show/home:alvistack/rust-lang-rust-1.61.0 for my supported OS.


Fix Termynal size, update first steps, add fast button

Fix Termynal containers size, make it discover and fix the container size before animating it to avoid growing containers that end up changing the size of the page and make it move if the user scrolls to the bottom.
Add a "fast" button to Termynals to allow skipping the animation.
Use Termynal for First Steps.

Codecov Report

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

@@           Coverage Diff           @@
##           master       #6   +/-   ##
=======================================
  Coverage   41.17%   41.17%
=======================================
  Files           7        7
  Lines         391      391
=======================================
  Hits          161      161
  Misses        230      230

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 e91c5a4...941e86d. Read the comment docs.


ci: add support for canaries

@jeromelaban looks like we'd need new .mobileprovision files for these new Bundle IDs. I changed them to differentiate between winui and non-winui as well as the new canary bundle ids. I don't think I have permissions to create new certs/provisioning profiles

@jeromelaban this would be for the new Toolkit Canary apps though, I can re-use the ones that are for Chefs? I thought they'd be tied to a specific bundle id

Ah that's toolkit, yes I'll fix that

Ah that's toolkit, yes I'll fix that :)

@kazo0 you should be able to use:


dataLabels offsetX incorrect indentation

Hello everyone, I'm facing the problem of shifting the datalabel offsetX if I want to make datalabels outside the bar.
If the number of characters is very different (1% vs 10000%), the offsetX is counted from the last character, not the 1st, and I can't change that. Please help if you know the solution.

textAnchor: 'start' solved my problem, sorry


feat: .add_hold_invoice

See inline docs for testing/usage, but for convenience:
  hash_bytes = "87550a73354fa8f098632c34268c8d2012708a8f56bc7c08209460fb4a3add0e"
                    |> String.upcase()
                    |> Base.decode16!()
  Invoicesrpc.AddHoldInvoiceRequest{value_msat: 150_000, hash: hash_bytes}
  |> LndClient.add_hold_invoice()

@RooSoft I'm going to go ahead and merge this :) It's a new feature anyway, so risk is very low


esp32-blink: rename LED to Led

Fix:
-- Configuring done (2.1s)
CMake Error at main/CMakeLists.txt:63 (target_sources):
  Cannot find source file:

    LED.swift

  Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm
  .ccm .cxxm .c++m .h .hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90
  .f95 .f03 .hip .ispc

-- Generating done (0.4s)
CMake Generate step failed.  Build files cannot be regenerated correctly.
FAILED: build.ninja

Tested on ArchLinux (x86_64/zen3) - GPIO i18 (blink-led)

Thanks for the fix!


feat: add cookie support

WIP
Doesn’t work yet. Set-Cookie header is present, but I can’t access anything in JavaScript (yet).

Stale for too long


How to repeat searches after rebinding f to evil-snipe-s

What would you like to know?
I want to use 2-character sniping on f and repeat searches also on f
Rebinding 2 character sniping is easy:
 (with-eval-after-load 'evil-snipe      (evil-define-key '(normal motion) evil-snipe-local-mode-map        "s" nil        "S" nil        "f" 'evil-snipe-s        "F" 'evil-snipe-S))
However, to repeat searches I then have to use s.
I tried many ways of overriding the evil-snipe-override-local-mode-map to "f" evil-snipe-repeat but it usually just overrides the 2 character sniping or simply does not work. What is the correct way to do this?

It turned out I was trying to rebind the wrong keymap. A quick look into the code solved my misunderstanding:
  (with-eval-after-load 'evil-snipe      (setq evil-snipe-parent-transient-map            (let ((map (make-sparse-keymap)))              (define-key map "f" #'evil-snipe-repeat)              (define-key map "F" #'evil-snipe-repeat-reverse)              map)))


refactor(ast_tools): rename oxc_ast_codegen to oxc_ast_tools.

#4846  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @rzvxa and the rest of your teammates on  Graphite


Add qrisk

Use qrisk for risk calculations. To preserve backwards compatibility, risk calculation functions are wrappers for corresponding qrisk functions. Risk calculation throughout the project updated to use qrisk instead of internal definition.

Also needs deprecation warnings when the old functions are called.

For deprecation, we could just use https://github.com/quantopian/zipline/blob/master/zipline/utils/deprecate.py (the deprecation code will be duplicated, but probably not worth our time to set up a shared utilities repo for the sake of one file ;)
and then decorate the appropriate functions with @deprecated

yeah can just copy&paste that.

Looks good, had some comments

Just made a new commit that adds deprecation warnings to functions defined in timeseries.py, uses qrisk functions whenever risk calculations are used within the project, and moves risk function testing out of this project. Testing for functions defined in qrisk should happen in that repo instead of having duplicates here.


seaweedfs crashed

version:2.65 linux amd64
Command:
nohup weed server -ip=<IP_ADDRESS> -dir=/mnt/vol/object_444/data_1 -s3 -s3.port=29000 -s3.allowEmptyFolder -volume.port=27000 -filer.port=28000 -volume.max=4294967295 &
I use cosbench to test performance of weed. When running the test , I quickly encountered two serious problems：
1） weed crashed
I0928 22:04:43 61566 volume_loading.go:133] loading index /mnt/vol/object_444/data_1/abc203726_55138.idx to memory
I0928 22:04:43 61566 store.go:135] add volume 55138
I0928 22:04:44 61566 topology.go:208] removing volume info: Id:55135, Size:0, ReplicaPlacement:000, Collection:abc203726, Version:3, FileCount:0, DeleteCount:0, DeletedByteCount:0, ReadOnly:false
I0928 22:04:44 61566 volume_layout.go:349] Volume 55135 becomes unwritable
I0928 22:04:44 61566 topology.go:208] removing volume info: Id:55137, Size:0, ReplicaPlacement:000, Collection:abc203726, Version:3, FileCount:0, DeleteCount:0, DeletedByteCount:0, ReadOnly:false
I0928 22:04:44 61566 volume_layout.go:349] Volume 55137 becomes unwritable
I0928 22:04:44 61566 topology.go:208] removing volume info: Id:55136, Size:0, ReplicaPlacement:000, Collection:abc203726, Version:3, FileCount:0, DeleteCount:0, DeletedByteCount:0, ReadOnly:false
I0928 22:04:44 61566 volume_layout.go:349] Volume 55136 becomes unwritable
I0928 22:04:44 61566 master_grpc_server.go:113] master see deleted volume 55135 from <IP_ADDRESS>:27000
I0928 22:04:44 61566 master_grpc_server.go:113] master see deleted volume 55137 from <IP_ADDRESS>:27000
I0928 22:04:44 61566 master_grpc_server.go:113] master see deleted volume 55136 from <IP_ADDRESS>:27000
I0928 22:04:44 61566 master_grpc_server.go:154] master send to filer@<IP_ADDRESS>:28000: url:"<IP_ADDRESS>:27000"  public_url:"<IP_ADDRESS>:27000"  deleted_vids:55135  deleted_vids:55137  deleted_vids:55136  data_center:"DefaultDataCenter"
panic: runtime error: index out of range [0] with length 0

goroutine 8037320 [running]:
github.com/chrislusf/seaweedfs/weed/topology.(*VolumeLocationList).Head(0xd53fc12f48)
	/root/original_weed/seaweedfs/weed/topology/volume_location_list.go:31 +0x4a
github.com/chrislusf/seaweedfs/weed/topology.(*Topology).PickForWrite(0xc0003c81e0, 0x1, 0xd54ff8fe30)
	/root/original_weed/seaweedfs/weed/topology/topology.go:148 +0x774
github.com/chrislusf/seaweedfs/weed/server.(*MasterServer).Assign(0xc000ed6f00, {0x31bea78, 0xd5529cd950}, 0xd5529de6e0)
	/root/original_weed/seaweedfs/weed/server/master_grpc_server_volume.go:150 +0x7d2
github.com/chrislusf/seaweedfs/weed/pb/master_pb._Seaweed_Assign_Handler({0x2e726a0, 0xc000ed6f00}, {0x31bea78, 0xd5529cd950}, 0xd5529a5e60, 0x0)
	/root/original_weed/seaweedfs/weed/pb/master_pb/master.pb.go:4460 +0x385
google.golang.org/grpc.(*Server).processUnaryRPC(0xc00068ad00, {0x31e7e90, 0xc000282480}, 0xd5529bf100, 0xc001069b00, 0x431edd8, 0x0)
	/root/go/pkg/mod/google.golang.org/grpc@v1.29.1/server.go:1082 +0x14c9
google.golang.org/grpc.(*Server).handleStream(0xc00068ad00, {0x31e7e90, 0xc000282480}, 0xd5529bf100, 0x0)
	/root/go/pkg/mod/google.golang.org/grpc@v1.29.1/server.go:1405 +0x852
google.golang.org/grpc.(*Server).serveStreams.func1.1()
	/root/go/pkg/mod/google.golang.org/grpc@v1.29.1/server.go:746 +0x11d
created by google.golang.org/grpc.(*Server).serveStreams.func1
	/root/go/pkg/mod/google.golang.org/grpc@v1.29.1/server.go:744 +0x125
I0928 22:04:47 02813 master.go:165] current: <IP_ADDRESS>:9333 peers:
I0928 22:04:47 02813 file_util.go:23] Folder /mnt/vol/object_444/data_1 Permission: -rwxr-xr-x
I0928 22:04:47 02813 file_util.go:23] Folder /mnt/vol/object_444/data_1 Permission: -rwxr-xr-x
I0928 22:04:47 02813 master.go:165] current: <IP_ADDRESS>:9333 peers:<IP_ADDRESS>:9333
I0928 22:04:47 02813 master_server.go:116] Volume Size Limit is 30000 MB
I0928 22:04:47 02813 master_server.go:210] adminScripts:
I0928 22:04:47 02813 master.go:120] Start Seaweed Master 30GB 2.65  at :9333
F0928 22:04:47 02813 master.go:123] Master startup error: listen tcp :9333: bind: address already in use
goroutine 44 [running]:

2) weed show no free volume left ,but --volume.max was set to<PHONE_NUMBER> .  After restarting weed, the error disapperd, but a few minutes later ,it shows again. I used weed shell to list volumes, and found that the number of volume was increasing
Here is th weed log.
weed.log

Thanks for the details. Added a fix.
Seems you need to wait a bit before throwing traffic. Seems there are many volumes and the volume server may take a longer time to start. The master did not receive the volumes information from the volume servers yet.


Delegate callback when web view process terminates

This is an intermediary solution for #50.
In summary, WKWebView can terminate under certain circumstances when in the background. When a Turbo-powered app is re-opened after this occurs the app can be left in a weird state.
This PR adds a new delegate callback, sessionWebViewProcessDidTerminate(_:), that developers can hook into to do what they see fit. @tony42, for example, is resetting the state of their app. I'm following that same approach.

I'm not sure if/how this can be handled better inside of this library short of iOS 16 fixing the issue entirely. So this feels like the next best approach as it puts the power back in the developer's hands.

@joemasilotti thanks for implementing the hook.

@joemasilotti @tony42 do either of you have any tips on how to fix this without this PR being merged? I'm not a Swift expert, is there an equivalent to Ruby monkey patching to implement the fix right away?

Not that I'm aware of, no. You could try to become the web view delegate, but that might mess things up with how the framework listens for events.
@jayohms will need to merge this in to enable the hook.

Hey Joe Masilotti,
I get that the sessionWebViewProcessDidTerminate function will be triggered on this error, but how to restart the app, or just revisit the "root" url whenever this happens?
Do you have an example, sorry new to IOS development.
Cheers,
Chris

Hey, when I try to use this commit to my package, I get a build error:
Type 'SceneDelegate' does not conform to protocol 'SessionDelegate'
Am I doing something wrong?

Cheers,
Chris

@chriskroon, nope! You need to implement the new method in SceneDelegate.
extension SceneDelegate: SessionDelegate { // If you already have this defined then only add the implementation below.
    func sessionWebViewProcessDidTerminate(_ session: Session) {
        // ...
    }
}

Hey Joe,
I found that out by myself and I thought that I replied haha.
Thx Joe!
Cheers,
Chris

Thanks for exposing this hook and sorry for the delay!

Thanks for diagnosing and fixing this @joemasilotti. I'd been tearing my hair out trying to figure out why the first visit was failing after the app had been in the background for a long time. I had assumed the app was terminated and the failure was part of a turbo cold boot.

For those watching this issue, has anyone implemented anything apart from this callback?
https://nevermeant.dev/handling-blank-wkwebviews/ and https://github.com/Telerik-Verified-Plugins/WKWebView/issues/248#issuecomment-235241805 discuss timer-based approaches and I am curious if anyone has used them in a Turbo context with success. (Or if they haven't needed to because just implementing this callback and calling session.reload() did the job.)

In the Turbo Native apps I build and maintain I reset the entire app in the callback. For example, usually something like this.
func sessionWebViewProcessDidTerminate(_ session: Session) {
    navigationController.popViewController(animated: false)
    navigationController.viewControllers = []

    self.session = createSession()
    modalSession = createSession()

    startApp()
}

Nice, I might try the same. Have guy found a reliable way to replicate the issue so you can test it?

 Playing a graphically intense game for a few seconds usually triggers it.

Following up for anyone who lands here in the future.
My comment above doesn't seem to work 100% of the time. Instead, I've opted for restarting the entire app as if it was launched cold. It's a worse experience for the user, but it works 100% of the time which is a better trade-off for me.

Hey Joe,
I also implemented it that way, this hook you can use for whenever a scene will become active again
 func sceneWillEnterForeground(_ scene: UIScene) {
       // Your Code
       (I open an link whenever it's set by a push notification of the last link)
    }


Add some changes to your presentation card

Hi Pyzyryab! I forked your folder of your flutter practices because I am doing some apps with the same framework as well!
Add some changes to your presentation card project, hope you like them! Hopefully we can work together on a project in a near future! :)

Hey @Pylyv . Thx for your contribution, I really appreciate it. All related stuff looks nicer now! Such a great job.
I will merge your pull request.

Hey @Pylyv . Thx for your contribution, I really appreciate it. All related stuff looks nicer now! Such a great job.
I will merge your pull request.


Update scalafmt-core to 2.7.4

Updates org.scalameta:scalafmt-core from 2.0.1 to 2.7.4.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scalameta", artifactId = "scalafmt-core" } ]

labels: library-update, semver-minor

Codecov Report

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

@@            Coverage Diff            @@
##             master     #124   +/-   ##
=========================================
  Coverage          ?   59.93%
=========================================
  Files             ?       99
  Lines             ?     4026
  Branches          ?      157
=========================================
  Hits              ?     2413
  Misses            ?     1613
  Partials          ?        0

Continue to review full report at Codecov.

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


New --enforceReadonly compiler option to enforce read-only semantics in type relations

This PR introduces a new --enforceReadonly compiler option to enforce read-only semantics in type relations. Currently, the readonly modifier prohibits assignments to properties so marked, but it still considers a readonly property to be a match for a mutable property in subtyping and assignability type relationships. With this PR, readonly properties are required to remain readonly across type relationships:
type Box<T> = { value: T };
type ImmutableBox<T> = { readonly value: T };

const immutable: ImmutableBox<string> = { value: "hello" };
const mutable: Box<string> = immutable;  // Error with --enforceReadonly
mutable.value = "ouch!";

When compiled with --enforceReadonly the assignment of immutable to mutable becomes an error because the value property is readonly in the source type but not in the target type.
The --enforceReadonly option also validates that derived classes and interfaces don't violate inherited readonly constraints. For example, an error is reported in the example below because it isn't possible for a derived class to remove mutability from an inherited property (a getter-only declaration is effectively readonly, yet assignments are allowed when treating an instance as the base type).
interface Base {
    x: number;
}

interface Derived extends Base {  // Error with --enforceReadonly
    get x(): number;
}

In type relationships involving generic mapped types, --enforceReadonly ensures that properties of the target type are not more mutable than properties of the source type:
type Mutable<T> = { -readonly [P in keyof T]: T[P] };

function foo<T>(mt: Mutable<T>, tt: T, rt: Readonly<T>) {
    mt = tt;  // Error with --enforceReadonly
    mt = rt;  // Error with --enforceReadonly
    tt = mt;
    tt = rt;  // Error with --enforceReadonly
    rt = mt;
    rt = tt;
}

The --enforceReadonly option slightly modifies the effect of as const assertions and const type parameters to mean "as const as possible" without violating constraints. For example, the following compiles successfully with --enforceReadonly:
const obj: { a: string, b: number } = { a: "hello", b: 42 } as const;

whereas the following does not:
const c = { a: "hello", b: 42 } as const;  // { readonly a: "hello", readonly b: 42 }
const obj: { a: string, b: number } = c;  // Error

Some examples using const type parameters:
declare function f10<T>(obj: T): T;
declare function f11<const T>(obj: T): T;
declare function f12<const T extends { a: string, b: number }>(obj: T): T;
declare function f13<const T extends { a: string, readonly b: number }>(obj: T): T;
declare function f14<const T extends Record<string, unknown>>(obj: T): T;
declare function f15<const T extends Readonly<Record<string, unknown>>>(obj: T): T;

f10({ a: "hello", b: 42 });  // { a: string; b: number; }
f11({ a: "hello", b: 42 });  // { readonly a: "hello"; readonly b: 42; }
f12({ a: "hello", b: 42 });  // { a: "hello"; b: 42; }
f13({ a: "hello", b: 42 });  // { a: "hello"; readonly b: 42; }
f14({ a: "hello", b: 42 });  // { a: "hello"; b: 42; }
f15({ a: "hello", b: 42 });  // { readonly a: "hello"; readonly b: 42; }

Stricter enforcement of readonly has been debated ever since the modifier was introduced eight years ago in #6532. Our rationale for the current design is outlined here. Given the huge body of existing type definitions that were written without deeper consideration of read-only vs. read-write semantics, it would be a significant breaking change to strictly enforce readonly semantics across type relationships. For this reason, the --enforceReadonly compiler option defaults to false. However, by introducing the option now, it becomes possible to gradually update code bases to correct readonly semantics in anticipation of the option possibly becoming part of the --strict family in the future.
Fixes #13347.

@typescript-bot test it

@typescript-bot pack this

Can you update tests/cases/compiler/APILibCheck.ts and enable this flag? This would let us ensure our public API will work with this flag; we already do this for exactOptionalPropertyTypes.

nit: In the PR description the second code example does not match the preceding wording - it doesn't use readonly

Any reason why this isn't called strictReadonly?

Any reason why this isn't called strictReadonly?

Same reason as --exactOptionalPropertyTypes. It's too breaky to be in the --strict family of options and not necessarily desired by everyone.

nit: In the PR description the second code example does not match the preceding wording - it doesn't use readonly

Right, but only having a get accessor implies that the property is readonly. But apparently that isn't obvious.

It's too breaky to be in the --strict family of options and not necessarily desired by everyone.

Alright, that makes sense.  That being said (and I realize this is just :bike: :house: at this point) I'm still not a big fan of enforceReadonly, as the implied opposite of "--enforceReadonly" is "don't enforce readonly", which... isn't really accurate.

Tried this on a personal project (a few thousand LOC) I wrote in the 4.3 timeframe and only got one (1!!) error. Looking ahead with skipLibCheck off, there's some stuff to address in @types/node. I'll do a DT PR once the beta is out
node_modules/@types/node/globals.d.ts:85:13 - error TS2403: Subsequent variable declarations must have the same type.  Variable 'AbortSignal' must be of type '{ new (): AbortSignal; prototype: AbortSignal; abort(reason?: any): AbortSignal; any(signals: AbortSignal[]): AbortSignal; timeout(milliseconds: number): AbortSignal; }', but here has type '{ new (): AbortSignal; prototype: AbortSignal; }'.

85 declare var AbortSignal: {
               ~~~~~~~~~~~

  ../typescript/built/local/lib.dom.d.ts:2360:13
    2360 declare var AbortSignal: {
                     ~~~~~~~~~~~
    'AbortSignal' was also declared here.

node_modules/@types/node/http2.d.ts:61:22 - error TS2430: Interface 'Http2Stream' incorrectly extends interface 'Duplex'.
  Property 'destroyed' is 'readonly' in the source but not in the target.

61     export interface Http2Stream extends stream.Duplex {
                        ~~~~~~~~~~~

node_modules/@types/node/net.d.ts:75:11 - error TS2415: Class 'Socket' incorrectly extends base class 'Duplex'.
  Property 'destroyed' is 'readonly' in the source but not in the target.

75     class Socket extends stream.Duplex {
             ~~~~~~

node_modules/@types/node/stream.d.ts:480:15 - error TS2420: Class 'Writable' incorrectly implements interface 'WritableStream'.
  Property 'writable' is 'readonly' in the source but not in the target.

480         class Writable extends Stream implements NodeJS.WritableStream {
                  ~~~~~~~~

Latest commits exclude methods from strict checking. A bit of rationale is in order. Consider scenarios like this:
interface Base {
    foo(): void;
}

interface Item extends Base {
    name: string;
}

interface ReadonlyItem extends Base {
    readonly name: string;
}

declare let item1: ReadonlyItem;
declare let item2: Readonly<Item>;

item1 = item2;  // Error?

It seems unreasonable to error on the assignment, yet the foo property in Readonly<Item> is a readonly function type property, whereas the foo property in ReadonlyItem is a method that isn't and can't be marked readonly. Previously this wasn't an issue because we never enforced readonly semantics across type relationships.
Methods have always been considered mutable, and we don't even allow readonly modifiers on method declarations. TBH, if we did, I think most users would read it as "this method doesn't mutate the object", which wouldn't at all be the case. Interestingly, we've had very few requests for readonly methods. It doesn't really seem to be a pain point, and mutation is commonly used in interception patterns, function prototype construction, etc.
We could consider having mapped types with readonly modifiers not add readonly to properties that originate in methods, but that just doesn't seem right either. I mean, Readonly<T> is supposed to make every property readonly.
In my opinion, the best course of action is to simply exclude methods from strict readonly checking. Meaning that, in a type relationship, when a target property is declared as a method, we don't care about the readonly state of the source property.

we've had very few requests for readonly methods. It doesn't really seem to be a pain point, and mutation is commonly used in interception patterns, function prototype construction, etc.

There are some interest expressed by #22315
We could add another flag that extends the check of enforceReadonly to methods and make methods readonly by default.

@ahejlsberg

It seems unreasonable to error on the assignment, [..]
Methods have always been considered mutable, and we don't even allow readonly modifiers on method declarations. TBH, if we did, I think most users would read it as "this method doesn't mutate the object", which wouldn't at all be the case.

I disagree here. Given enforceReadonly, I'd expect item1 = item2;  // Error? to error. Also, I don't see why methods shouldn't be allowed to be declared readonly – I can (and do) already do this, and it works as I expect:
export type Type = {
	readonly toString: () => string
}

I'd like to be able to do this, purely based on consistency (I don't really need two ways to describe the same thing, so ¯\_(ツ)_/¯):
export type Type = {
	readonly toString () : string
}

Wrapping Readonly<> around types with methods also gives us that behavior. So, from my point of view, disallowing readonly on readonly toString () : string is just an unnecessary hurdle because it merely hinders a feature that is available via different avenues anyway:
class X {
	readonly toString : () => string = () => ``
}

class Y {
	readonly toString () { // no reason why exactly this should error…
		return ``
	}
}

class Z {
	get toString () {
		return () => ``
	}
}

const x = new X()
const y = new Y()
const z = new Z()

x.toString = ()=>``
y.toString = ()=>`` // …or why exactly this should not
z.toString = ()=>``

Also, while I consider inline assignment dangerous enough, function parameters are even more dangerous because you usually do not see the code that works on your supposedly readonly data:
const readonlyArray = [] as const

mutateArray(readonlyArray) // The type 'readonly []' is 'readonly' and cannot be assigned to the mutable type 'unknown[]'.ts(2345)

function mutateArray (array : Array<unknown>) {
	array.shift()
}

const readonlyObject = { toString () { return `` } } as const

mutateObject(readonlyObject) // This should error

function mutateObject (mutable : { toString() : string }) {
	mutable.toString = () => `-`
}

mutateObject(readonlyObject) should error because otherwise, you have no guarantees that the function doesn't do something to your methods. This introduces an opportunity for runtime errors that seems preventable by making the behavior consistent.
And I don't count “interception patterns, function prototype construction, etc.” as strong counter-arguments, because:

Proxy
The prototype can be built as a mutable object and then assigned as a readonly prototype
For runtime-safe tasks, there are usually options that work with the type system

If any specific project absolutely cannot work with this, then I guess that enforceReadonly is generally unfit anyway.
@Conaclos

We could add another flag that extends the check of enforceReadonly to methods and make methods readonly by default.

I'm unsure about the second part – I'd like to make everything readonly by default 😅 and I fear that's out of scope here…
But a flag to treat methods like everything else would be good. After all, JS doesn't treat them differently, does it?

While I welcome this direction, please do not use the term "enforce" for things that are not actually enforced. TypeScript is unsound and erased, so it cannot and does not actually enforce anything. It is useful for catching some many accidents, which is great. But some accidents will slip through the unsoundness, and much malice will. The term "enforce" implies otherwise and will give some people a false sense of security, which is dangerous.

@erights did you have a synonym in mind?

But some accidents will slip through the unsoundness, and much malice will.

No one should be using a language with any in an adversarial situation. What scenarios are you thinking of here?

Object.freeze, which is the fundamental enforcement mechanism for read-only-like stability, was introduced in ES5 specifically to be genuine enforcement which could be used in adversarial situations. Since then, Object.freeze has been used as an adversarial enforcement mechanism many times.
We are of course using Hardened JavaScript and harden in many adversarial situations. We also use TypeScript in various ways in that context. Better TypeScript readonly support is welcome for many things, including better typing of harden. However, we already find we need to continually remind users of TypeScript-on-Hardened-JS that the TypeScript typing portions of their code are unsound and erased, and therefore unenforced. When they want to enforce something, they need to rely on unerased runtime enforcement mechanisms. That's fine.
But seeing the term "enforce" in the documentation of the unenforced TypeScript properties will only deepen the confusion and make the explanations harder. It is harmful and confusing.

a synonym in mind?

checkReadonly implies a check for type system violations without implying that they're enforced.
Another option is strictReadonly since some aspects of readonly are already checked and this is a more strict form.

Regarding the name of the flag, we're perfectly happy to entertain suggestions for better options.
The issue with --checkReadonly is it would imply that no readonly checks occur when it is disabled, which isn't the case. We always disallow assignments to readonly properties.
The issue with --strictReadonly is that it implies being in the --strict family of flags. That's not the case because it would be too significant of a breaking change.

Welcome to Codecov :tada:
Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.
Thanks for integrating Codecov - We've got you covered :open_umbrella:

Oh come on, they weren't supposed to comment that (must be the unlucky first PR, sorry)

Regarding the name of the flag, we're perfectly happy to entertain suggestions for better options.

Glad to hear it! Before trying to generate more suggestions, I'd like to better understand the feature.
What surprises me is that it is a compiler flag at all, rather than a stronger form of readonly within the language alongside the existing one. As a flag, it changes meaning of existing code. Let's call the existing semantics the "weaker" constraints, and with the flag, "stronger" constraints. (I am not suggesting these names. Just need terminology to ask questions.)
What happens if I have some modules or packages that are correctly written to the weaker constraints, and other modules or packages written correctly to the stronger constraints, and now I want to correctly compose them together into a larger system. Can I statically type check this composite system? Clearly, if I check the composite only with the stronger constraints, the modules correct only by the weaker constraints will fail. If I check the composite only with the weaker constraints, if all the inputs were correct on their own terms, the composite would still pass. But the code written to the stronger constraints could come to violate them without causing a static error.
Is all this correct?

@typescript-bot pack this

@typescript-bot pack this

Before trying to generate more suggestions, I'd like to better understand the feature.

The rationale for the existing functionality of readonly is outlined here. The modifier was introduced several years after the initial release of TypeScript, and even then it was too large of a breaking change to check it strictly. Therefore, we decided to just error on direct assignments to readonly properties, but otherwise ignore the modifier for purposes of relations between types containing readonly properties.
The --enforceReadonly option (or whatever we call it) implements that final step of checking that readonly isn't defeated by treating a read-only property as a mutable property through a conversion of the containing type. We know this will be a breaking change for a lot of code, but there is a subset of the community for whom updating their code is a worthwhile cost. Over time we may see enough code updated to the stricter semantics that we could consider including the option in the --strict family of flags.

What surprises me is that it is a compiler flag at all, rather than a stronger form of readonly within the language...

The surprising thing really is that we aren't checking readonly in type relations and --enforceReadonly at least puts us on a path to doing so. I think that introducing another stronger readonly-like modifier would just add to the confusion.

What happens if I have some modules or packages that are correctly written to the weaker constraints...

What happens is that you'll see new errors pointing out places where your code potentially indirectly violates readonly by treating read-only properties as mutable properties through type conversions. These errors may be corrected by adding or removing readonly modifiers as appropriate, or by adding type assertions that explicitly call out the unsound behavior. In all cases, code that is updated to compile with --enforceReadonly will continue to compile without the switch.
We aren't providing a way to control the checking on an individual module or type basis, mostly because it becomes very hard to reason about. For example, what does it mean to derive a "weak" type from a "strong" type, and, in type relations, what happens when you mix "weak" and "strong" types? We have multiple other options (e.g. the entire --strict family of flags) that are global in nature in the same manner.

We have multiple other options (e.g. the entire --strict family of flags) that are global in nature in the same manner.

Can we just do that?

I do understand the concern around breakages this would cause if it falls under the strict family of flags, but I do feel it's rather unfortunate; enabling strict, to me, opts you into TypeScript in its strictest form, whatever that may be in any given version. Breakages can be somewhat easily addressed by disabling a newly introduced flag, or by actually fixing the newly-reported errors. Assuming folks opt into strict because they desire the least room for "unsound" code, having to adopt a new flag—that may even become deprecated if the flag is eventually promoted to the strict family—during an update to benefit from better strictness seems undesirable to me.
I do have a concrete proposal: let strict be an option that takes a version string to be able to tell which strict flags have been opted into, preventing future breakages for additional new strict flags. I believe this is similar to the recent work on a deprecation flag. That does raise the question as to whether true should mean everything or "5.5", where I think the former sounds like the more desirable behavior but that would leave the concern that this change would still break apps (and I understand how this would break the "top ###" tests and potentially the performance tests that TS itself relies on for testing).

Alternatively, perhaps this should just be an "edition" flag (or whatever name makes sense, I'm using the Rust terminology here) as a high level switch that determines how the options are interpreted.

I do understand the concern around breakages this would cause if it falls under the strict family of flags, but I do feel it's rather unfortunate; enabling strict, to me, opts you into TypeScript in its strictest form, whatever that may be in any given version.

This not the current effect of "strict". For example both "noUncheckedIndexedAccess" and "useDefineForClassFields" improve safety.
That said some sort of versioned "strict" does seem reasonable.

The issue with --strictReadonly is that it implies being in the --strict family of flags. That's not the case because it would be too significant of a breaking change.

@ahejlsberg I'm confused, how does it's name imply it's significance or expected significance as a breaking change? Also, why would me implying that it's part of the --strict family of flags be a bad thing? The way I interpret --strictReadonly is that I'd be more constrained with the flag enabled than without it. Which I believe fits the linguistic meaning of "strict", would it not?
Note: I'm interpreting this from a more surface level understanding of the concepts, since this level of discussion is generally outside my realm of expertise. But I felt the need to contribute since, I just recently encountered a use-case where not having this flag could prove to be dangerous as I don't have a means of gracefully handling this risk other than hoping the dev reads the jsdocs on the function in question.
As for flag name suggestions, if --strictReadonly is not appropriate, then perhaps something along the lines of --noReadonlyCoercion?

Edit: Oh I think I may have figured it out, my initial interpretation was that --strict was just a prefix and nothing more. However, if I've understood correctly, --strict is actually it's own flag which includes the effects of all the other flags that are prefixed with --strict?

"strict" enables a variety of flags, some prefixed with strict. It doesn't enable all safety features.

The prototype properties need to be treated specially.
Perhaps we might need // @ts-ignore for interface DOMMatrix extends DOMMatrixReadOnly in the DOM types.

@jakebailey would it be much effort to rebase and pack this branch? I briefly tried to resolve the conflicts but felt I didn't have enough context around the changes.


feat: allow pagination object to be generated using $prefs only

Related:
#2635
Issue
Allow pagination object to be generated using $prefs only. Currently there's a dependency on wp_query via the $paged wp_query param when checking if the previous pagination link should be rendered.
Solution
Use $current instead of $paged when checking if previous pagination link should be generated. $current is initialized using $paged but then overridden with the corresponding value in $prefs. Now we can use $prefs to wholly configure a pagination object.
Impact
No impact. Backwards compatible.
Usage Changes
None.
Considerations
None.
Testing
No tests needed.

Just merged 2.0 back into this branch and there is a static analysis error @phasdev . @nlemoine , thoughts?

OK fixed.

coverage: 87.947%. remained the same
when pulling 7f261c7860499c43d32d6d8454a798206f9b0db1 on phasdev:feat-2635-generate-pagination-from-prefs-only
into 9c6e0e3035b6312de63609c65a7d38b5735d8721 on timber:2.x.


PersistentBottomSheet, when is magnified using Magnification accessibility tool, on touching of it beyond original boundary dismissing it

PersistentBottomSheet, when is magnified using Magnification accessibility tool, on touching of it beyond original boundary dismissing it.
Platforms Impacted

[x] Android

Description of changes
Instead of relying on the getGlobalVisibleRect which returns original/unmagnified coordinates, attached a click listener on the outline which takes care of dismissing the bottom sheet.
(a summary of the changes made, often organized by file)
Verification
(how the change was tested, including both manual and automated tests)
After fix, able to click on the menu items in persistent bottom sheet, able to dismiss it by clicking out the menu view.

Before
After

Screenshot or description before this change
Screenshot or description with this change

Pull request checklist
This PR has considered:

[x] Light and Dark appearances - N/A
[x] VoiceOver and Keyboard Accessibility - No change
[ ] Internationalization and Right to Left layouts - NA
[x] Size classes and window sizes (notched devices, multitasking, different window sizes, etc) - NA

Please raise the CR against the develop branch


how to get XMLHttpRequest.upload in fetch?

i am using fetch to implement a uploading functionality
the functionality have been completed
now i need to show the uploading progress
so, how to get XMLHttpRequest.upload object in fetch?

fetch specification doesn't contain functionality that allows implementing progress indicators; therefore, this library doesn't implement such functionality either. See https://github.com/github/fetch/issues/379#issuecomment-239635017
You might want to use XMLHttpRequest directly in order to implement this.


loader not adding shims for Array.find / findIndex / etc

Alright, been fighting with this for a while. It looks like it's running it through the 6to5 transform just fine ad my arrow functions are being converted, but it's not adding in any of the shims pulled from core-js so my .find calls are dying. I just dumped a quick example in a repo so you can see.
https://github.com/jdivock/5to6LoaderBusted
Not sure if I missed something in the docs or what, but this should work shouldn't it?

That example specifically works for me.
I mean, the document.write output [object Object] to the HTML but that's to be expected.
When I switch to use console.log instead it outputs {id: 123} fine.
In my opinion, you don't need the jsx-loader when using 6to5-loader, since it already converts JSX.
On the other hand, you need to tell 6to5 to use the core-js shims:
{test: /\.jsx?$/, exclude: /node_modules/, loader: '6to5-loader?optional=coreAliasing'}

and you need to install core-js by issuing npm install core-js

Actually, I missed the polyfill include that's in the 6to5 docs.
So just having this in my entry file:
require("6to5/polyfill");

Did the trick.


lint error while implementing generics

Issue

I tried to learn and implement goGenerics in the local system,
In local, i observed that the syntax is not working, although the program run (in both go playground as well as the local system)

but only the syntax error is showing

Can you add more information on how to reproduce the problem? What editor, editor version are you using? What tool or plugin is providing linting in your editor, and what version is it?
Please note the Go issue tracker is for tracking bugs and proposals for Go only. For asking questions, see https://go.dev/wiki/Questions.

Also: what is the error message corresponding to the red underline?
(If I had to guess, absent context, I would suspect that you may be using an editor backed by gopls, and may need to recompile gopls using a version of Go that supports generics).

Can you add more information on how to reproduce the problem? What editor, editor version are you using? What tool or plugin is providing linting in your editor, and what version is it?
Please note the Go issue tracker is for tracking bugs and proposals for Go only. For asking questions, see https://go.dev/wiki/Questions.

Using the latest VS code on the Linux platform
go version 18beta series'
go-lint-cli version latest

Also: what is the error message corresponding to the red underline?
(If I had to guess, absent context, I would suspect that you may be using an editor backed by gopls, and may need to recompile gopls using a version of Go that supports generics).

Error msg corresponding to underline: Cannot define func like this
In place of [ you have to use (
But, luckily when I compiled the program it runs regardless of error and print results

what is "go-lint-cli version latest"

go install golang.org/x/tools/gopls@latest?

That's also the latest,
Might be because of vs Code, it's showing red underline

what is "go-lint-cli version latest"

CLI lint for Golang

1.18 has been properly released, you shouldn't be using beta releases.
1.19 is also available.
Reinstall a proper version of go, then reinstall the tools.
Note golangci-lint is not part of the Go project.
Unlike many projects, the Go project does not use GitHub Issues for general discussion or asking questions. GitHub Issues are used for tracking bugs and proposals only.
For questions please refer to https://github.com/golang/go/wiki/Questions


where is the config file?

sorry i am new , where is the config file?

There is no config file. You configure fff through environment variables.


Failing to parse valid regex

The following regex fails to parse in rust, but works with the official go parser:
uri=~"/v[1-9]/.*/{gid}/{uid}"

Reproduce
use promql_parser::parser;

fn main() {
    let promql = r#"rate(http_server_requests_seconds_bucket{method="GET",status=~"2..",uri=~"/v[1-9]/.*/{gid}/{uid}",le="0.25"}[1h])"#;

    match parser::parse(promql) {
        Ok(expr) => {
            println!("Prettify:\n\n{}", expr.prettify());
            println!("AST:\n{expr:?}");
        }
        Err(info) => println!("Err: {info:?}"),
    }
}

# `Err: "illegal regex for /v[1-9]/.*/{gid}/{uid}"`

The same query works with in go:
package main

import (
	"github.com/prometheus/prometheus/promql/parser"
)

func main() {
	_, err := parser.ParseExpr(`rate(http_server_requests_seconds_bucket{method="GET",status=~"2..",uri=~"/v[1-9]/.*/{gid}/{uid}",le="0.25"}[1h])`)

	if err != nil {
		panic(err)
	}
}

Maybe it's because the difference between regex implementation of Rust and Go. I will try to fix it.
Thanks for your report.

hi @yuanbohan, wow faster answer than I expected. I was taking a quick look as well:
For reproducing:
use regex::Regex;
fn main() {
    let re = r#"/v[1-9]/.*/{gid}/{uid}"#;

    Regex::new(&re).unwrap();
}

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Syntax(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
regex parse error:
    /v[1-9]/.*/{gid}/{uid}
                ^
error: repetition quantifier expects a valid decimal
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
)', src/main.rs:20:21

Which makes sense, not sure what a good fix is here

Just to verify that prometheus itself handles the regex as expected (or not expected), it shows series

Maybe you can use other symbols, like <,_?
or just escape the curly brackets using \?

let re = r#"/v[1-9]/.*/\{gid\}/\{uid\}"#;
let cap = Regex::new(&re).unwrap().captures("/v1/foo/{gid}/{uid}");
println!("{cap:?}");

==== output
Some(Captures({0: 0..19/"/v1/foo/{gid}/{uid}"}))

Is this what you want? @fbs

For a bit of background (shouldve added that earlier):
We run a shared prometheus platform used by many teams. I want to do some analysis of those rules to help teams with some company specifics (architecture). As its an all python team I'm using this library as pyo3 makes it really easy.
So changing the regex isn't an option, they come from end users and are valid for prometheus itself.
I guess its hard to fix as its a regex implementation difference between go and rust. If there was a 'less strict' regex flag I would be ok with that. What do you think?
I'm open to implementing something for it

I guess its hard to fix as its a regex implementation difference between go and rust. If there was a 'less strict' regex flag I would be ok with that. What do you think?

From the regex lib's doc I can't find any configuration to control such behavior 🙁
Not a regex expert, but what do you think of adding some "preprocess" to modify the input regex rule like @yuanbohan said:

Maybe you can try other symbols in your uri, like <, _? Or just escape the curly brackets using \ in your regex?

I'm not sure if this is viable...

I indeed ended up adding some preprocessing in #76. Its not the nicest implementation but it seems to work. Bit worried about some other edge cases I've missed.


Remove left over test code

I'm sure tdaede has just forgotten to erase this line of code for testing! ^_^

I actually used to have a desync because the last coeff's context is special. That might be fixed now, but you should make sure it doesn't desync at low qp.

Wow- the issue you observed still stay there.
Please don't merge this patch.
So, we have issue in coefficient coding of last coeff of 4x4.


Update README.md

This PR updates the citation from the preprint to the peer reviewed one

@GavEdwards @mughetto do either of you have permissions to merge this and make a new release?