Wallet is bloating address pool unnecessarily

The problem that you wish to solve
Hello,
Right now due to random fund reshuffling - https://github.com/input-output-hk/cardano-wallet/issues/2614 the wallet is slowly allocating more and more addresses, which may be by design and OK for small users. But for large users (e-shops etc.) this might be a problem.
For example here is this cardano-wallet used as a backend for automated tool - which in result over ~2 months generated almost 20 000 addresses associated with same staking key - https://cardanoscan.io/addresses?stakeKey=cab9c9543b2d6a84a99b54ad67dfe7ef135e87db3fad705d18916198
while only first ~200 addresses are actually active. All other addresses just had randomly funds thrown at by cardano-wallet. That means cardano-wallet need to keep all these addresess in memory and needs to scan the blockchain for all of them in order to calculate proper balance.
This seems to be putting unnecessary load on underlying systems. There should be an option to specify address pool limit (say 1000 addressess) so that wallet can stop auto-throwing funds at last N - address_gap (20 by default) when this limit is reached so that more and more addresses are not allocated indefinitely.
I don't believe that performance of cardano-wallet is going to be very good when you reach a point where you have billions cardano addresses associated with your staking key (I presume some e-shops might be getting at billions of transactions). There is currently about 20 new addresses associated with almost every transaction generated by cardano-wallet.
Description
Implemented address limit which if reached would stop putting funds at last N addresses to avoid allocating more of them.
Implementation suggestions
No response

over 34 000 addresses now with same staking key, I am wondering when cardano-wallet starts having troubles scanning the chain with so many addresses belonging to single wallet

over 110 000 addresses in single wallet and still increasing... cardano-wallet is now using over 12GB of RAM just to start and load all these addresses. Tracking of all these addresses takes immense CPU. This is a critical issue.

fix for this is trivial - when submitting a TX send change always to first address in address pool, to avoid allocation of 20 more addresses. Right now wallet puts change to the bottom of address pool every time.

This will be tackled in https://github.com/cardano-foundation/cardano-wallet/pull/4129 . We intend the "one-change-address" feature to be part of the next wallet release. Unfortunately, this does not reduce the number of change addresses used by an existing wallet, it only pertains to future address generation — but you can migrate to a new wallet to mitigate this.

fix for this is trivial - when submitting a TX send change always to first address in address pool, to avoid allocation of 20 more addresses. Right now wallet puts change to the bottom of address pool every time.

This feature is now part of the wallet release
https://github.com/cardano-foundation/cardano-wallet/releases/tag/v2023-12-18
I hope that this concludes the issue, feel free to reopen if you're not entirely happy.


how to set the parameters

Hi, I want to run the algorithms with datasets of another task. But the results are not good with the same parameters as PACS. Could you please share some experience with setting the parameters? This is the log. Thank you.
log.txt

Hi Cassiatora,
Thanks again for your interest in our work.
You can try different scale factor, hidden-size of the encoder and learning rate schedule for encoder and fea_proj.

Hi Cassiatora,
Thanks again for your interest in our work. You can try different scale factor, hidden-size of the encoder and learning rate schedule for encoder and fea_proj.

Thanks for your quick reply. I don't know the specific meaning of  tr_outloss、env0_out、env1_in. Would you mind telling me? Thank you for your patience in replying！

Hi Cassiatora,
Thanks again for your interest in our work. You can try different scale factor, hidden-size of the encoder and learning rate schedule for encoder and fea_proj.

hi，could you please share your parameters of TerraIncognita datastet?   i have tried many times ,but the results are not good with the same parameters as TerraIncognita.  thanks a lot!


Added Scrapping data from Booking.com #1117

Description
Added Booking.com module to give infromation about the hotels with their details of a place.
Usages
from scrape_up import Booking.com

Create an instance of BookingScraper class
scraper = BookingScraper("London")

Method
Details

get_hotels()
Returns a list of hotels with their details.

Resolves: closes #1117
Checklist

Before submitting this pull request, kindly verify that the ensuing checkpoints have been reached.

[x] Have you adhered to the repository's defined coding convention rules?
[x] Have you updated the 'documentation.md' file with the method/function documentation?
[x] Have you sent a message along with the result or response?
[x] Have you used the try-catch technique?
[x] Has the method/class been added to the documentation (md file)?

Screenshots

Additional Notes/Comments

Any additional remarks or suggestions concerning this pull request are welcome.

I certify that I have carried out the relevant checks and provided the requisite screenshot for validation by submitting this pull request.
I appreciate your contribution.

@SudoSu-bham sir , please review it and merge it.

@SudoSu-bham sir, please review and merge it please.

cc @nikhil25803

@nikhil25803 sir and @SudoSu-bham sir please review and merge it as program Is going to end.


Dependency issue

pm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving<EMAIL_ADDRESS>npm ERR! Found<EMAIL_ADDRESS>npm ERR! node_modules/react
npm ERR<EMAIL_ADDRESS>from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer<EMAIL_ADDRESS>|| ^16.0.0 || ^17.0.0" from<EMAIL_ADDRESS>Doesn't work with react 18 and henceforth will break for future versions

pm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving<EMAIL_ADDRESS>npm ERR! Found<EMAIL_ADDRESS>npm ERR! node_modules/react npm ERR<EMAIL_ADDRESS>from the root project npm ERR! npm ERR! Could not resolve dependency: npm ERR! peer<EMAIL_ADDRESS>|| ^16.0.0 || ^17.0.0" from<EMAIL_ADDRESS>Doesn't work with react 18 and henceforth will break for future versions

Sorry, I updated the dependencies to >= 15.0.0, should work now.


Updates poltergeist to 1.6.0

Updates poltergeist to 1.6.0 from 1.5.1. Changelog here —>
https://github.com/teampoltergeist/poltergeist/blob/master/CHANGELOG.md

Coverage remained the same at 98.68% when pulling a7d825db9745cffbc0b3cb0f968f2f63ba49f0e4 on updates-poltergeist into 55fd2236d84ae046a0fa3c0f45041d829d7d81c6 on master.


UserInputService TouchMoved/TouchStarted/TouchEnded first arguments is an instance rather than an InputObject

The first argument for each of these functions is indeed an InputObject.
https://developer.roblox.com/api-reference/event/UserInputService/TouchMoved
https://developer.roblox.com/api-reference/event/UserInputService/TouchStarted
https://developer.roblox.com/api-reference/event/UserInputService/TouchEnded

oh.. sorry about my bad english :(


awsebcli: remove eqyiel from maintainers; clean up; move to by-name; nixfmt-rfc-style

remove eqyiel from maintainers
clean up
move to by-name
nixfmt-rfc-style

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

cc @eqyiel

please dont merge until we get the maintainers confirmation that theyre okay with the removal

That might be unreasonable if they have left for good. But it's probably a good idea to at least try to get a hold of them first, and wait a little.

no rush, I was planing on waiting for a week, as per https://github.com/NixOS/nixpkgs/tree/master/maintainers#how-to-lose-maintainer-status
I haven't seen any activity frmo @eqyiel in last 4 years. also happy to add back if we hear from him


[SPARK-22535][PySpark] Sleep before killing the python worker in PythonRunner.MonitorThread

What changes were proposed in this pull request?
PythonRunner.MonitorThread should give the task a little time to finish before forcibly killing the python worker. This will reduce the chance of the race condition a lot. I also improved the log a bit to find out the task to blame when it's stuck.
How was this patch tested?
Jenkins

cc @ueshin

Test build #83921 has started for PR 19762 at commit a1f054b.

Test build #83925 has started for PR 19762 at commit dffcb05.

Test build #83921 has finished for PR 19762 at commit a1f054b.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/83921/
Test PASSed.

Test build #83925 has finished for PR 19762 at commit dffcb05.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/83925/
Test PASSed.

Merged build finished. Test PASSed.

Thanks! merging to master.


AutoWifi / SmartConfig

Fulfilling request from documentation and responding regarding use of Espressif ESPtouch on iOS and AutoWifi / SmartConfig.  In my testing, does not work at all.
Using an TTGO esp32+camera module[(https://www.aliexpress.com/item/TTGO-T-Camera-ESP32-WROVER-PSRAM-Camera-Module-ESP32-WROVER-B-OV2640-Camera-Module-0-96/32968683765.html)] successfully flashed with TenDollarWebcam via PlatformIO on OSX.  OLED screen reporting "Setup Wifi!"  Serial console lists these error messages:

(Sorry, copying and pasting doesn't seem to work out of PlatformIO's serial console.)
App on iPhone8 running iOS11 reports "fail" for both broadcast and multicast.
Any other way to configure wifi?

I had the same issue but with an AI THINKER board, SmartConfig wasn't working for me.
What i did to resolve was compare code to the previous version of TenDollarWebcam (before AutoWifi was added) and modified my project to remove AutoWifi and use pre-configure wifi info.
This is your best bet, let me know if you need a hand.


[Bug]: Inconsistency in Back button and edit Icon in API Editor

Is there an existing issue for this?

[X] I have searched the existing issues

Description

Back button is not as per design
Edit Icon is different from the design

Ref - https://www.figma.com/file/IfutQTUq3g97j59i3mx6Y4/Appsmith-Screens-Library?node-id=257%3A39431

Steps To Reproduce

Go to API/JS/Query editor
Can find back button on the top left of the editor and Edit icon next to title

Public Sample App
No response
Version
Cloud

dependent on this: https://theappsmith.slack.com/archives/CRVRBGU1K/p1655099347851899


sonarr missing get_quality_profiles

GET /profile
def get_quality_profiles(self):
"""Gets all quality profiles
Returns:
JSON: Array
"""
path = "/api/profile"
res = self.request_get(path)
return res
exists in v2.0.7 but missing in v3

😟
Looks like I didn't review #84 hard enough. I'm going to redo a complete review of it and see if there's anything else missing.

get_quality_profile exists within the base class. Could work without the s on the end.


Add support for disabled patterns

Hello there!
First of all, let me just say this is my first open source PR! 🎉
Has per the web worker api, a pattern can either enable or disabled the script.
https://developers.cloudflare.com/workers/api/
A disabled pattern does not the mean that specific pattern is turned off, it means the pattern will actively disable the script if matched. The current functionality of the plugin only accepts enabled routes and by disabling a route it's actually creating the adverse effect of disabling the script on that route.
Therefore, I'd like to propose adding support to the pattern to specify the desired state:
  pattern: [
      { pattern: 'example.com/*', enabled: true },
      { pattern: 'example.com/disabled', enabled: false }
  ],

Additionally I've kept support for strings and [strings] input that will default to enabled so this change is backward compatible.
Let me know what you think, I've had to make the change because my use case requires disabled pattern support!
Cheers

Hi, huge thanks for pointing that out! I completely overlooked this... yikes
Congrats on your first PR... I hate to be on the other side of this now, because I also had to learn this the hard way: always file an issue before committing development time to your own solution. Discuss the problem and agree on a solution with the maintainer first.
Because, in my opinion, your proposed solution is not the right way forward and will not be merged :/
Interop between strings and arrays in the config object is simple enough, but parsing configuration from a collection of objects on top of that adds over-the-top complexity.
More importantly, I got it wrong from the very beginning i.e. my design intent for this plugin was flawed from the start. So, instead of attempting to patch an already broken foundation, it makes more sense to release a new major version with rectified configuration options and methods.
Splitting (+ deprecating) the patterns  config key into enabledPatterns and disabledPatterns then makes the workflow as easy as:

Delete all patterns
Upload enabled patterns
Upload disabled patterns
Donzo

Branch 2.x inbound...

v2.0.0-beta.0

I totally agree with your proposed solution, it's the right way forward.
I actually made the fix before even thinking of opening a PR, next time I'll be sure to open an issue first.
Changing the configuration for enabled and disabled pattern is the right way forward.
Thanks for being so quick!


Fixed list contrast

Description
Increase contrast of list element
I changed the incremental and starting values for opacity in the List component so that the first list item has a color contrast ratio of at least 3:1. You can check this yourself by adding the WCAG Color Contrast Checker extension to your browser and running it on the about page.
Acceptance Criteria
Done when the contrast ratio for the first list item is 3:1
Test Instructions

Pull in branch
Type npm run dev
Run WCAG Color Contrast Checker extension

Product and Sprint Backlog
Trello

Nice work! This looks good in the app, but not quite right in Storybooks

Still approving, but there seems to be something up with the css in Storybooks

Definitely something funky going on with Storybooks, not really sure why as the stories file only specifies the 4 list items and doesn't appear to have independent styling. Merging this for now.


Re-add pre_job

What is the issue?
In pr #454 we removed the pre_job workflow job that didn't work as expected. It skipped the build job that skipped the test and initially the release process as well. However, we still want this feature, but it needs to work as intended.
Suggestion(s)/solution(s) [Optional]
This needs to be investigated further with the same marketplace-package or another.
Checklist (after created issue)

[x] Added label(s)
[ ] Added to project
[ ] Added to milestone

Wont do


Add React and Redux

Codecov Report

Merging #6 (52dd37d) into main (08b2521) will increase coverage by 100.00%.
The diff coverage is 100.00%.

@@             Coverage Diff             @@
##           main        #6        +/-   ##
===========================================
+ Coverage      0   100.00%   +100.00%
===========================================
  Files         0         1         +1
  Lines         0         2         +2
===========================================
+ Hits          0         2         +2

Impacted Files
Coverage Δ

src/pages/Home.tsx
100.00% <100.00%> (ø)

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 08b2521...52dd37d. Read the comment docs.


Using Protected Payment Buttons option

Instead of rendering the form with all data (public acessible on html), such as:
a3: 19.99
p2: 1
t3: M
business<EMAIL_ADDRESS>can we use a protected button, created on paypal site, and our paypal_dict can be like:
button_url: sandbox or live url
hosted_button_id: the button created ID

I believe this is answered in the docs:
https://django-paypal.readthedocs.org/en/stable/standard/encrypted_buttons.html
I have never tried this myself, so don't know if it works. If it doesn't, or needs fixing, please let me know (preferably in the form of a pull request) and I'll fix it.
If that is about something different, then as far as I know we don't support it. django-paypal is Open Source and has no team actively developing (I maintain existing functionality), so if you would like support for this to be added, it will be up to you (or someone you can persuade to do it) to implement it.


network map genreation should be disabled during filtering or should return warning

The link network map gets generated with filtered stories if you are browsing under a filter.  In 99% of cases, this will not produce what the user thinks it produces.  The fitlered map will be a map with the structure of the overall topic just with media sources that don't have at least one match for the filter query removed.  What almost all users think they will be getting is a map that reflects the architecture of only stories that match the filter query.
I think the same problem will apply to the word maps.

No, it should work for everything but filtering.
On Thu, Jun 7, 2018, 2:03 PM rahulbot<EMAIL_ADDRESS>wrote:

Ah - so you should only be able to download network maps if there are:

looking at the overall timespan, and
have no query filter set
have not selected a subtopic

Otherwise it should show a message saying "Sorry, but we can only generate
network maps when you are looking at the overall timespan, do not have a
query filter in place, and are not using a subtopic."
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/mitmedialab/MediaCloud-Web-Tools/issues/921#issuecomment-395511971,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABvvT8o7PQLCFrtRieLU-yUdgbiPGISBks5t6WrWgaJpZM4Sjlpr
.

that's correct.
-hal
On Thu, Jun 7, 2018 at 2:10 PM rahulbot<EMAIL_ADDRESS>wrote:

Oh, sorry - in the code we call all of those "filters" (snapshots, query,
timespan, subtopic) so I got confused. You mean it only misrepresents if a
query filter is in place.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/mitmedialab/MediaCloud-Web-Tools/issues/921#issuecomment-395514205,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABvvT0QqrrJSY_OE6sUpP8v6PFR8FYw5ks5t6WykgaJpZM4Sjlpr
.

--
Hal Roberts
Fellow
Berkman Klein Center for Internet & Society
Harvard University


If the service has no hours, do not show any hours.

I want representation on YP to match the front end of gogetta. Otherwise, it gives the misleading impression that this incomplete service is open. @jbeard4

Hi @shakilhossain1 this is important because we are showing the wrong info to users. This service is not suspended and an incorrect fix has been applied. If there are no hours, but there is a comment or a notification, the service should not be suspended, but show in the list and show on the details page as a service with a an accordion icon and open to show the information provide but without hours and without the hours icon.
Current view on YourPeer

A service should only be suspended if a Specialists has confirmed "This service is closed" which is not the case here and probably in several other services.

@jbeard4 maybe this is one that could be a way in for Ryan?

This is acknowledged. Will add it to the list of issues to pick up with Ryan.


Load Dependencies from google/containerregistry

Depends: https://github.com/promiseofcake/containerregistry/pull/1
There is no need for us to re-declare dependencies as we have them neatly provided for us in a deps.bzl definition.
This also recursively passes in parent dependencies to google/containerregistry rather than requiring each layer to understand how to handle the overrides.

This actually is not a working use-case because anyone using this repo would need to initialize both this and the parent repository, not ideal.


peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>

This is still an issue with the latest version.
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving<EMAIL_ADDRESS>npm ERR! Found<EMAIL_ADDRESS>npm ERR! node_modules/react-native-webview
npm ERR<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR!   apps/mobile
npm ERR<EMAIL_ADDRESS>npm ERR!     node_modules/mobile
npm ERR!       workspace apps/mobile from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR! node_modules/@chatwoot/react-native-widget
npm ERR<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR!   apps/mobile
npm ERR<EMAIL_ADDRESS>npm ERR!     node_modules/mobile
npm ERR!       workspace apps/mobile from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!
npm ERR!
npm ERR! For a full report see:

### Tasks
- [ ] https://github.com/chatwoot/chatwoot-react-native-widget/pull/40

@AyoCodess Please check the latest version 0.0.19.


CLIENT: Compensate for block rollback

@hswick – could you provide more detail on what this is referring to?


Update the TCK to 2.0.0-SNAPSHOT

Minor fixes to the doc
https://hibernate.atlassian.net/browse/HV-1090
Update remaining references to BV 1.1

No biggie, but can we try and reduce the number of issue-less commits? E.g. https://github.com/hibernate/hibernate-validator/pull/488/commits/07f8f830368ad3b5b33e8b58f22defdede1133ed could be assigned to HV-1085.

Looks good overall, added some comments.

Rebased and fixed.


Remove upx

Signed-off-by: Zhengyi Lai<EMAIL_ADDRESS>

In some case, run the binary which compresses with upx may get the error response Segment fault


Point html_root_url to docs.rs

fixes https://github.com/seanmonstar/reqwest/issues/114

Thank you!


Testing  refactor + restart command

implements #67
Also proposes some refactoring/better discretion of what is a Command (cobra.Command) and what are Kool*Service implementation (KoolStart, KoolStop, etc) - so we have better experience developing it. This is a proposal!

@danielsuguimoto this is ready for review!


Animation

<Tween>
<Decay>
<Spring>

<Tween> was implemented here: https://github.com/MailOnline/libreact/pull/45

<Controller>
<MultiStepAnimation>


ShowVideoTitle method does not seem to work.

@PierfrancescoSoffritti : I'm not able to make the video name appear in the player.

You should set the title of the video, like I'm doing in the sample app. doc

Hi @PierfrancescoSoffritti
How to hide the video title?
       playerView.getPlayerUiController().showVideoTitle(false);
i am using above line of code to hide the video title but it does not work for me. Please help

It's not possible to remove it from the web player.

@PierfrancescoSoffritti What do you mean by Web Player? Your plaer is not native one like Android Offical player?

To interact with YouTube the library uses the IFrame Player API, inside of a WebView, therefore the YouTube app is not required on the user's device and there are no issues with YouTube Terms of Service.

please read the doc


logo.svg in the website will be too large

Are you going to work on this ?
NO
I am not so familiar with svg formats, so who is familiar please reduce its size in the website

^^^

Can be discussed in #52. Closing this issue.


[FLINK-5488] stop YarnClient before exception is thrown

This looks like something that should be done in a finally block.

In YarnClusterClientV2, I think yarn client should be stopped in finalizeCluster(), which is empty right now

@fanyon could you rebase this PR?

@tzulitai I have make a new PR https://github.com/apache/flink/pull/4022 for this issue and close this PR soon, thanks :)


feat(routing): add pattern matching for current helper

Also adds the functionality to get the current route name, when calling the function without parameters.
The implementation heavily inspired by ziggy and is mainly built around regex matching and will transform the route definitions to regexes which are then used to check against the current URL.
Additionally some test cases are provided, but requires more realworld testing.
Also note that the mode parameter was removed from the current function as it should not be needed anymore.

Another thought also came to my mind, after seeing this implementation, which i would like to discuss and maybe tackle in another PR if feasible:
Since we are much more tightly coupled in Hybridly than Ziggy is with Inertia, we could also remove this frontend guessing and regex matching and if possible replace it with a server-side implementation, which provides the current route name + parameters. Would this be possible or reasonable?
I think it could greatly improve the experience and remove nearly all of the code in this PR :)
Still i think we can evaluate this option later and for now merge this.
I'm happy either way.
Let me know your thoughts!

I'm thinking I'd rather have these helpers on the router interface 👀
router.matches('index') // true
router.current() // index

What do you think? It wouldn't be directly compatible with Ziggy but that's not really something I'm interested in, and a match-and-replace would be enough anyway.
Your second suggestion was actually the first thing I tried, but I ended up not being comfortable transferring the route names over HTTP headers. Happy to revisit in the future though.

In addition to the change suggested above, I added a useRoute composable and documented all utils.
Can you tell me if you can see anything wrong with this? Otherwise I'm ready to merge 👍

Amazing 🤩
That actually makes me tick another todo of my list. If you wouldn't have implemented the composable that would have been the next thing i wanted to add. 🙏
Also im very fine with the changes as discussed in Discord i am open for both override or a distinct behavior of the current and match functions.
I think this is ready to go! Thanks for shaping the final form!


[Candidate 3v3 Tournament C ZH v1] Units cannot drive around south west Supply Piles

Observed behavior
Units cannot drive around south west Supply Piles
Expected behavior
Units can drive around south west Supply Piles.
Screenshots

fixed

Fixed it


frat(anchor): n-anchor supports RTL

ref https://github.com/tusen-ai/naive-ui/issues/97

Codecov Report
Base: 62.49% // Head: 62.50% // Increases project coverage by +0.00% :tada:

Coverage data is based on head (7315588) compared to base (4d51a39).
Patch coverage: 81.81% of modified lines in pull request are covered.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #4392   +/-   ##
=======================================
  Coverage   62.49%   62.50%
=======================================
  Files        1069     1071    +2
  Lines       22420    22427    +7
  Branches     5882     5883    +1
=======================================
+ Hits        14011    14017    +6
  Misses       6881     6881
- Partials     1528     1529    +1

Impacted Files
Coverage Δ

src/anchor/src/AnchorAdapter.tsx
76.92% <60.00%> (-2.25%)
:arrow_down:

src/anchor/src/styles/rtl.cssr.ts
100.00% <100.00%> (ø)

src/anchor/styles/index.ts
100.00% <100.00%> (ø)

src/anchor/styles/rtl.ts
100.00% <100.00%> (ø)

src/styles.ts
100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Dev Ops - Despliegue de frontend

Deploying Frontend
Deploying  frontend at  https://nextep-lab.herokuapp.com


z.union does not work in request params and request query

Hi,
Firstly, I want to express my gratitude for the valuable package you've provided.
Recently, I encountered an issue with zod-to-openapi. It seems that it fails to handle query or params that begin with the z.union while it performs smoothly with body.
Here's a snippet of the schema causing the problem:
const schema = z.union([z.object({ type: z.string() }), z.object({ age: z.number() })])

and the path:
registry.registerPath({
  method: 'post',
  path: '/pets',
  description: 'test',
  request: {
    query: schema, // <-- error
    params: schema, // <-- error
    body: {
      content: {
        'application/json': {
          schema
        },
      }
    },
  },
  responses: {},
});

The error message received is:
MissingParameterDataError {
  message: 'Missing parameter data, please specify `name` and other OpenAPI parameter props using the `param` field of `ZodSchema.openapi`',
  data: { missingField: 'name', location: 'query', route: 'post /pets' }
}

I tried to add .openapi('name') to the schema and it change nothing. thanks in advance!

Hey @fazzabi thank you for the kind words.
There is actually a very similar issue that is open so I will reuse my comment - https://github.com/asteasolutions/zod-to-openapi/issues/198#issuecomment-1874090516
The key part is this:

Overall the idea that we've followed is that query, params and headers are not just any type - they are always an object (or even a key-value entries) because of how HTTP specifications are being followed. And in the OpenAPI realm they are described in a different manner than the body. We chose to use the AnyZodObject instead of a regular Record type from typescript mainly for easier usage. The rest of the types (like just a number) are not compatible with the OpenAPI specification.

In your scenario - I am not sure what we could possibly do to handle a union. In practice I imagine that for your specific scenario the correct documentation is an object with 2 optional properties. However depending on the union - that might not be the case, so I am not sure if we should go down this path. cc: @georgyangelov for a second opinion.
What I can do is to try and help you out with the current @asteasolutions/zod-to-openapi mechanisms:
const schema = z
  .object({ type: z.ostring(), age: z.onumber() })
  // Depending on your usecase this could even be:
  // !!data.age || !!data.type
  .refine(data => data.age !== undefined || data.type !== undefined);

Does that work for you? And do you accept the argumentation above?

@fazzabi after further consideration we decided that handling union of objects is not something that we want to pursue. In general OpenAPI parameters are "a single schema" and as such there is no way to correctly represent a zod tuple into such OpenAPI schema, that would be backwards convertible into a zod schema (and this is generally what we try to achieve).
Any sort of assumptions of combining the underlying items of the tuple would be somewhat hacky and they would never be fully correct.
However as I mentioned - we did add the support for z.object({}).refine as part of the v7.0.0 Release :rocket: .
In your case I think the best solution would be to do:
const baseSchema = z.object({ type: z.ostring(), age: z.onumber() }); // used for documentation
const validationSchema = z.union([
  z.object({ type: z.string() }),
  z.object({ age: z.number() }),
]); // used for further validation

export const schema = baseSchema.transform(data => validationSchema.parse(data)); // the final exported schema

I know it is not ideal but I imagine it gets the job done, it handles both scenarios - valid documentation (controlled by our library with your manual interference) and a complete validation and type safety.


Cowboy to production and live update

Hi,
I need to push my system to production so my first thought is to put "make run" as a service when the machine boots.
I don't know if that sound good. It is my first erlang-cowboy project that goes on production.
Then I need to make updates while the system runs.
Is there a guide for this?
Thanks for your time.

make run is for development. For production, relx provides a script to start the VM with various modes (foreground for example). From there it depends on where you deploy to. There are probably some guides around this for systemd or other but none that I can personally recommend, because I have not done that in a long time and RabbitMQ which I work on now does not use releases and has its own start script.


Fixed captcha_ocr example label mapping #514

This PR fixes the issue #514 (comment about the fix)

You're missing the num_oov_indices=0, no?

@fchollet Yes, :facepalm: , Sorry about that. It's fixed now :)

Thanks for the update. Please format the code using black (check currently failing)

@fchollet I forgot about the auto formmating, sorry!. I've just run the linter and pushed the changes of the 3 files:
$ black --check ./examples
All done! ✨ 🍰 ✨
87 files would be left unchanged.


Drop unneed tasks & Check protoc generated contents

use https://github.com/arduino/setup-protoc

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 53.82%. Comparing base (cdf176a) to head (8dc2d90).
Report is 1 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master      #53   +/-   ##
=======================================
  Coverage   53.82%   53.82%
=======================================
  Files          13       13
  Lines         981      981
=======================================
  Hits          528      528
  Misses        390      390
  Partials       63       63

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


reduce mimetypes for lookup

currently have about 1,000 in plugin's lookup. already defaults to application/octet-stream, should remove majority of what's in there.
MDN list is about 80: https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types

WP also has about 100: https://developer.wordpress.org/reference/functions/wp_get_mime_types/#source


Publish access

It would be great if some more team members from the Standard org could get publish access to the VS Code marketplace. I think that my username is<EMAIL_ADDRESS>there ☺
For now, I've tagged 1.3.0 and made a GitHub release with the .vsix file.

@LinusU
Unfortunately there's a bug existed on vscode marketplace:

Could you please give me your VSID according to https://stackoverflow.com/questions/56032912/vs-marketplace-add-member-displayes-invalid-domain-error so I can contact them to add you as member.

Thanks for the quick response! Didn't see an email in my outlook, but sent you an email with the id from my main address<EMAIL_ADDRESS>

I'm afraid it would take longer because the email address vscode provides won't accept our contact now https://developercommunity.visualstudio.com/content/problem/998386/unable-to-send-email-to-vsmarketplace.html

No stress, thank you for working on it!
Maybe you can publish 1.3.0 in the meantime? I think that you can download the vsix file from the release and upload it to the marketplace web interface ☺

@LinusU Published.

@LinusU They've added you as owner now :) Please verify.

Seems to be working 🙌 thanks!!


[move source language] Check for overlapping targets/deps

Added check for something that bit me a lot in the CLI
Deps and Targets cannot overlap

Motivation

I got very confused and want to prevent others from being confused

Test Plan

A bit hard to test currently, as none of the move testing infra uses specified files
Might add a CLI test

I think it should be pretty easy to write a move CLI expected value test for this

I think it should be pretty easy to write a move CLI expected value test for this

I can't do it yet because the setup for check/build is a bit off in the CLI. If I get around to fixing that, I'll add a test

/land


Add more unit tests for using non-exist key of an object in task step

Changes
Prior to this commit, the validation exists to check if individual keys
of an object param being used in task steps indeed exist, but the test
was missed.
In this PR, we add the unit test for that.
/kind misc

Submitter Checklist
As the author of this PR, please check off the items in this checklist:

[ ] Has Docs included if any changes are user facing
[ ] Has Tests included if any functionality added or changed
[ ] Follows the commit message standard
[ ] Meets the Tekton contributor standards (including
functionality, content, code)
[ ] Has a kind label. You can add one by adding a comment on this PR that contains /kind <type>. Valid types are bug, cleanup, design, documentation, feature, flake, misc, question, tep
[ ] Release notes block below has been updated with any user facing changes (API changes, bug fixes, changes requiring upgrade notices or deprecation warnings)
[ ] Release notes contains the string "action required" if the change requires additional action from users switching to the new release

Release Notes
Add more unit tests to cover the case where non-exist individual keys of an object are used in task step.

/lgtm

/retest


[EOSF-937] Only show tags widget if there are tags for non-contributors

Purpose
Currently quickfiles will show the tags widget to non-contributors even if there aren't any.  On the current OSF, the tags widget will not show up if this is the case.  We should add a conditional to only show the tags widget if there are tags in order to make things more consistent.
Summary of Changes
Added conditional to check if there are tags/if the user can edit to decide if the tags widget should show or not.
If the user is a contributor, the tags widget will show up like normal on the page:

But if they are not the contributor and there aren't any tags, the widget will not show:

Ticket
https://openscience.atlassian.net/browse/EOSF-937
Reviewer Checklist

[ ] meets requirements
[ ] easy to understand
[ ] DRY
[ ] testable and includes test(s)
[ ] changes described in CHANGELOG.md (don't have initial release yet)

Coverage remained the same at 5.645% when pulling d7df3b5fe59982cbfb5d0d5d1c07e9010cf9d9bf on baylee-d:feature/only-show-tags-if-exists into b7e2c7740e84252a6102871c5581c41e15f00f71 on CenterForOpenScience:develop.


Migration script: Choice children order

Describe the bug
The order of choices children are different in prod and poc-qa. This is an issue because some users have written text such as "◀ Yes ▶ No" on the choice card itself and is reliant on the childrens order.
To Reproduce
Go to process 1919 and look at the "Application on life cycle" choice. Compare it in the two environments.

This should be the backend priority for Flyt right now. Great if one of you can take a look at it when you have time.

@anheri I see two possible ways to solve this in the migration script:

we insert a "do nothing" card for each existing choice node with only one option. Not very nice from both a user and a perfectionist perspective.
We migrate all choice verticies to have a "option" property so that the condition is stored on the vertex and not on the textfield on the choice node. This will require manual intervention.

Regarding the second alternative, do we know how many choice nodes are affected by this issue?
One option, in case there are many, is that we tag the problematic choice nodes and require the users to fix the issue themselves. Will require some frontend work as well.

@HaakonSvane I think you're refering to a different problem... the one with 1 choice alternative...
This problem refer to any choice... And I dont think its related to your migrate script... I think (hope) it's because of a bad migration... I'll try to re-import the 1919 process, to see if it is resolved...

My bad. Been on my mind a lot lately 👹

have re-imported process 1919, and it looks good... As I suspected the import of 1919 must at have been faulty.

Tested in qa-graph-poc.
Process 1919 has the same Yes and No branches for choice card 'Application on Life cycle list?' as in Production now.


Remove unneccessary AppsandFeaturesEntries * manifests/o/OpenDesignAlliance/ODAFileConverter/23.10/OpenDesignAlliance.ODAFileConverter.installer.yaml

Microsoft Reviewers: Open in CodeFlow

URL:
Invalid URI: The hostname could not be parsed.
(Automated message - build 899)


Restore Key Vault Functionality Missing Azure SDK .NET C#

Library name and version
Azure.ResourceManager.KeyVault v1.2.0
Query/Question
Once a key vault is deleted, it is now a deletedkeyvault resource and part of that class. I'm trying to access that deletedkeyvault which I'm able to however there isn't any recover deleted key vault. You're able to do this manually in the portal however it isn't an option in the sdk. Other functionalities are available, such as purging the key vault but there is no way to restore it from the documentation DeletedKeyVaultResource Class
I have found documentation that restores a key or a secret but not the entire key vault. As this can be manually done in Azure, I'd assume there should be some way to do this with the Azure SDK for .NET as well. I did find some older documentation however it seems to be outdated and doesn't work anymore: Old Documentation for Recovering Key Vault
Environment
Version .NET SDK: 8.0.202

Hey @khanHasan01, here is the pr https://github.com/Azure-Samples/key-vault-dotnet-recovery/pull/7 which demonstrates the new Trace 2 code, please let me know it answer your inquiry.


Issue-161_fix_assertion : improve test assertion

Fixes issue https://github.com/sosedoff/pgweb/issues/161

this is no longer an issue. closing it.


Closes #50, updated Conquistador text to be more accurate

Conquistadors should convert captured cities to the founded religion of Spain.
However, the DynamicModifier EFFECT_ADJUST_CITY_RELIGION_ON_CAPTURE uses
the Majority religion of the player
NOT the Founded religion.
Not much we can do about that, so we change the text to be more accurate.

"adopt the Conquistador player's Religion (if it is the majority religion in their empire)"
If an other religion is the majority on the spain empire, is this religion apllied to the captured city ? If no, it's the right description, if yes, "adoprt the conquistador player's majority religion" should be a better translate.

Fixed


discriminability of the evaluation metrics

@ziqihuangg Thanks for the great work👏! I noticed that some metrics, e.g. subject consistency, background consistency, motion smoothness, have relatively high score (close to 1) on the Vbench Leaderboard. Is there any method that can increase the discriminability of the evaluation metrics?

Thanks for this question! Indeed, some dimensions have become gradually saturated, and that's largely because recent models have already addressed these aspects quite well (e.g., achieving good frame consistency and smooth motion). We are working on new solutions to increase discriminability and evaluate more challenging aspects in video generation (no promises yet, but stay tuned for updates in our future releases 👀).


New alleles submitted via AFP

Opening a ticket to not forget. We should think of how adding new alleles submitted by the authors. for now I think the only option is to request new names via the name server.
It would be good to talk to Hinxton and see if this can be done 'in batch'

Talk to Hinxton and see if this process can be automated and talk to Karen in the conversation to see if there is an existing textpresso pipeline

Hinxton is using their own pipeline to process the data received from AFP emails and we don't need to communicate directly with the name server.

It seems that this is already covered by Hinxton. Can we close this issue @draciti @vanaukenk ?

good for me to close


Fix tests broken by style changes

Updating page objects and tests affected by the style-a-thon @jennyhavah and @sanjuroj  are having. :heart:

Firefox with Webdriver 3.6:
96 passing (604.20s)
64 skipped
33 failing

Chrome with Webdriver 3.6:
101 passing (308.40s)
64 skipped
28 failing


TypeError: superclass mismatch for class Container

I'm trying out this skeleton to dip my toes in things, having been inspired by Tim's blog series.  I've played with the various components from scratch (dry-compontent, etc), but I'm having trouble with the skeleton.
When I try bin/setup, it errors when it hits the rake tasks for migration
TypeError: superclass mismatch for class Container
/private/tmp/dry/core/dry/container.rb:4:in `<module:Dry>'
/private/tmp/dry/core/dry/container.rb:3:in `<top (required)>'
/private/tmp/dry/Rakefile:13:in `require_relative'
/private/tmp/dry/Rakefile:13:in `<top (required)>'
/Users/bmurphy/.gem/ruby/2.3.1/gems/bundler-1.12.5/lib/bundler/cli/exec.rb:63:in `load'
/Users/bmurphy/.gem/ruby/2.3.1/gems/bundler-1.12.5/lib/bundler/cli/exec.rb:63:in `kernel_load'
/Users/bmurphy/.gem/ruby/2.3.1/gems/bundler-1.12.5/lib/bundler/cli/exec.rb:24:in `run'
/Users/bmurphy/.gem/ruby/2.3.1/gems/bundler-1.12.5/lib/bundler/cli.rb:304:in `exec'
/Users/bmurphy/.gem/ruby/2.3.1/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/Users/bmurphy/.gem/ruby/2.3.1/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/Users/bmurphy/.gem/ruby/2.3.1/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor.rb:359:in `dispatch'
/Users/bmurphy/.gem/ruby/2.3.1/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor/base.rb:440:in `start'
/Users/bmurphy/.gem/ruby/2.3.1/gems/bundler-1.12.5/lib/bundler/cli.rb:11:in `start'
/Users/bmurphy/.gem/ruby/2.3.1/gems/bundler-1.12.5/exe/bundle:27:in `block in <top (required)>'
/Users/bmurphy/.gem/ruby/2.3.1/gems/bundler-1.12.5/lib/bundler/friendly_errors.rb:98:in `with_friendly_errors'
/Users/bmurphy/.gem/ruby/2.3.1/gems/bundler-1.12.5/exe/bundle:19:in `<top (required)>'
/Users/bmurphy/.gem/ruby/2.3.1/bin/bundle:23:in `load'
/Users/bmurphy/.gem/ruby/2.3.1/bin/bundle:23:in `<main>'
(See full trace by running task with --trace)
rake aborted!

I'll dig in a little more to see if I can turn it up.  Any thoughts?
Thanks for your time.

Ahem, please forgive me, it's late/early here.  I just realized, when I setup I made my app name "dry" so I caused a massive namespace conflict.  Oops.


Chore: Give the help information of Makefile to make it more clear

Signed-off-by: Xinwei Xiong<EMAIL_ADDRESS>Description of your changes

Fixes #
I have:

[x] Read and followed KubeVela's contribution process.
[x] Related Docs updated properly. In a new feature or configuration option, an update to the documentation is necessary.
[x] Run make reviewable to ensure this PR is ready for review.
[ ] Added backport release-x.y labels to auto-backport this PR if necessary.

How has this code been tested
Usage:

  make [comment]

Comments:

  test                           Run tests
  test-cli-gen                   Run the unit tests for cli gen
  unit-test-core                 Run the unit tests for core
  build                          Build vela cli binary
  build-cli                      Clean build
  vet                            Run go vet against code
  staticcheck                    Run the staticcheck
  lint                           Run the golangci-lint
  build-swagger                  Build the swagger
  image-cleanup                  Delete Docker images
  image-load                     load docker image to the k3d cluster
  image-load-runtime-cluster     Load the run-time cluster image
  core-test                      Run tests
  manager                        Build vela core manager and apiserver binary
  vela-runtime-rollout-manager   Build vela runtime rollout manager binary
  manifests                      Generate manifests e.g. CRD, RBAC etc.
  check-license-header           Check license header
  def-gen                        Install definitions
  helm-doc-gen                   Generate helm chart README.md
  help                           Display help information

Special notes for your reviewer

Please rebase the code. LGTM after rolling back the comment above.

Please rebase the code. LGTM after rolling back the comment above.

Thanks for the review. I agree with you

Great contribution! Please rebase and fix the conflict. :)

Great contribution! Please rebase and fix the conflict. :)

Thank you for your review.

@cubxxw Sorry for the late reply. Seems the CI breaks and the Makefile has some conflicts. We have just reduced some CI processes to make it easier to pass. Could you try to rebase it again? P.S. We strongly recommend using rebase instead of merge for catching up main branches.

@cubxxw Hi, besides all the suggested changes above. You could use /retest foo in a comment to restart the test that fails. Example: https://github.com/kubevela/kubevela/pull/5950#issuecomment-1530741460

/retest foo

/retest E2E MultiCluster Test
/retest E2E Test

/retest E2E multicluster-test

@cubxxw Note the spell. It should be e2e-multicluster-test. And also I guess you modified the first comment. You can check why it's not restart here: https://github.com/kubevela/kubevela/actions/workflows/issue-commands.yml

/retest e2e-test

/retest e2e-multicluster-test

@chivalryq thanks for ur help


Feature Request: Parse MissionFailed event

Probably already on the list, but wanted to suggest it anyway.  Could you set up an event to parse the MissionFailed journal event?  I use EDDI and VA to track how many missions I currently have while I am mission grinding for Fed rank.  I use a variable called MissionCount to track the number, increasing with the MissionAccepted event, and decreasing with the MissionCompleted event.  I realized when I failed a mission that the MissionFailed event is not parsed by EDDI, so I can't decrease my count automatically and have to manually update the variable.  Just curious when you were gonna throw that one out there.  Thanks!!

Available in 2.2.0


Native was removed with 4.19

Unfortunately in 4.19 Native was removed and FNativeFuncPtr was introduced. This requires some minor changes in SGameMode.cpp and SGameMode.h
408: Func->SetNativeFunc((Native)&ASGameMode::BeginPlayMutatorHack);
Also UObject* Context was added as first parameter, this needs to be adapted in definition and declaration.
BR

how do you fix?

Patched files are attached. Rename and remove '.txt' extension, github doesn't support source files here.
Apparently you can use DECLARE_FUNCTION to fix the H file, but I don't know if there's something similar for the CPP file.
ExtendedRifleMod.uplugin.txt
MyFlashlightMod.uplugin.txt
SGameMode.h.txt
SGameMode.cpp.txt

Still getting an error with Native, maybe some workaround?

Have you ran into this issue ?
https://github.com/tomlooman/EpicSurvivalGameSeries/issues/48

@wrzwicky I basically replaced the SGameMode's file that you gave me copying over the ones i have and i still get errors.. also just to make sure are you using 4.19 ?

@wrzwicky I tried updating the gamemode source using your change for a 4.20 upgrade, but doesn't seem to work quite yet. Ideally I get rid of the UT beginplay hack alltogether. For now having it compile for users is ideal however ;)


Renamed purge to clear

Changes Made:
Renamed PurgeCommand to ClearCommand to align with the naming convention used in the Telescope package.
Context:
This pull request addresses the need for consistency in command naming across packages. The existing command, PurgeCommand, has been renamed to ClearCommand to harmonize with the conventions established in the Telescope package.
Justification:
Maintaining a consistent naming scheme is crucial for code readability and collaboration. Aligning the command names with those in the Telescope package not only improves uniformity within across the codebases but also enhances the overall developer experience.

This is a breaking change unfortunately

@fridzema tests are failing here.

@driesvints fixed now!


Tree views in current branch/workflows/settings is sorted by repo name length

Describe the bug
This is an unexpected behavior. The order of the items in the tree views are sorted by the length of the repository name. This is an unreasonable sorting strategy! 😅
To Reproduce
Steps to reproduce the behavior:

Login
Look at the workflows

Expected behavior
I expect the workflows to be sorted by some reasonable means like a) alphabetically or b) order appearing the workspace. The easiest would be just alphabetically. Finding the correct repository workflow now is hard. I need to think about how long the name of the repository is 🤯
Screenshots
If applicable, add screenshots to help explain your problem.

Extension Version
v0.26.2

Solution suggestion. We can sort the repos once here in the context:
https://github.com/github/vscode-github-actions/blob/02a4f12047a38409abce525e45650235499db371/src/git/repository.ts#L189C5-L214C8
Or we can sort the repos in each treeview:

Workflows
CurrentBranch
Settings


Fix: DO-1513, DO-1550 carousel not displaying wrapping components properly

Motivation and Context

Issue was found where text was not being wrapped when passed as component in Dara.
Also for component prop if it were to overflow it  could overflow onto next component
Implementation Description

The suggested fix was to add some margin and whitespace to CSS of component.
Any new dependencies Introduced

None
How Has This Been Tested?

Locally on storybook with a prop component that overflowed and which had text to wrap.
PR Checklist:

[x] I have implemented all requirements? (see JIRA, project documentation).
[x] I am not affecting someone else's work, If I am, they are included as a reviewer.
[x] I have added relevant tests (unit, integration or regression).
[x] I have added comments to all the bits that are hard to follow.
[x] I have added/updated Documentation.
[x] I have updated the appropriate changelog with a line for my changes.

Screenshots (if appropriate):

I have manually ran the tests and linting locally until we fix the CI issue


Update Croppie.js library and add rotation functionality

Croppie.js: 2.4.0
New functions: add orientation, add rotation
Code refactoring
Update Readme.md

Thanks Orif-jr, I added you to the credits


Update api_server.py

https://github.com/InternLM/lmdeploy/issues/1105#issue-2114368999
Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily receiving feedbacks. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers.
Motivation
Please describe the motivation of this PR and the goal you want to achieve through this PR.
Modification
Please briefly describe what modification is made in this PR.
BC-breaking (Optional)
Does the modification introduce changes that break the backward-compatibility of the downstream repositories?
If so, please describe how it breaks the compatibility and how the downstream projects should modify their code to keep compatibility with this PR.
Use cases (Optional)
If this PR introduces a new feature, it is better to list some use cases here, and update the documentation.
Checklist

Pre-commit or other linting tools are used to fix the potential lint issues.
The modification is covered by complete unit tests. If not, please add more unit tests to ensure the correctness.
If the modification has a dependency on downstream projects of a newer version, this PR should be tested with all supported versions of downstream projects.
The documentation has been modified accordingly, like docstring or example tutorials.

Hi, @909254 thanks very much for your contribution.
一般来说，比较简单的issue，它的相关修改需要在一个PR中完成。否则，不利于review和测试。可以把 #1148 的修改合并到这个PR吗？


Quaterion.getAngleAround returns wrong angle at certain angles

Issue details
Quaterion.getAngleAround returns wrong angle at certain angles (above 239 in this case)
Seems to be the same issue as #2547 but it was incorrectly closed. The issue is not fixed.
Reproduction steps/code
	for(int i=0; i<360; i++) {
		float angle = new Matrix4().rotate(Vector3.Y, i).getRotation(new Quaternion(), true).getAngleAround(Vector3.Y);
		System.out.printf("%.2f -> %.2f \n", (float) i, angle);
	}

You can clearly see that after 239, angles aren't correct.
Quaternion.getYaw seems to return correct values, so it seems that generated quaternion is set correctly, the problem is with Quaternion.getAngleAroundRad method
Version of LibGDX and/or relevant dependencies
libgdx-nightly-20160516

Thanks, should be fixed now. For reference, here's a quick test I wrote to verify the fix (perhaps we can add them to the unit tests).
	public float normalizeAngle (float angle) {
		return angle < 0 ? 360f - (-angle % 360f) : angle % 360f;
	}

	public boolean verifyAxisAngle (Quaternion q, Vector3 axis, float angle) {
		Vector3 ax = new Vector3();
		float an = q.getAxisAngle(ax);
		boolean result = ax.epsilonEquals(axis, 0.1f) && MathUtils.isEqual(normalizeAngle(an), normalizeAngle(angle), 0.1f);
		if (!result)
			Gdx.app.log("verifyAxisAngle", "FAILED! " + ax.toString() + " != " + axis.toString() + " OR " + normalizeAngle(an)
				+ " != " + normalizeAngle(angle));
		return result;
	}

	public boolean verifyTwist (Quaternion q, Vector3 axis, float angle) {
		Quaternion twist = new Quaternion();
		Quaternion swing = new Quaternion();
		q.getSwingTwist(axis, swing, twist);
		boolean result = verifyAxisAngle(twist, axis, angle);
		if (!result) Gdx.app.log("verifyTwist", "FAILED! " + swing.toString());
		return result;
	}

	public boolean verifyAngleAround (Quaternion q, Vector3 axis, float angle) {
		return MathUtils.isEqual(normalizeAngle(q.getAngleAround(axis)), normalizeAngle(angle), 1f);
	}

	public boolean checkRandomRotation () {
		final Vector3 axis = new Vector3().setToRandomDirection();
		final float angle = MathUtils.random(-180f, 180f);
		if (MathUtils.isZero(angle, 0.5f)) return true;
		final Quaternion q = new Quaternion(axis, angle);
		boolean t = verifyTwist(q, axis, angle);
		boolean r = verifyAngleAround(q, axis, angle);
		if (t && r) return true;
		Gdx.app.log("checkRandomRotation", "FAILED! " + angle + " @ " + axis.toString());
		return false;
	}

	public void checkRandomRotations (int idx, int count) {
		int success = 0;
		for (int i = 0; i < count; ++i) {
			if (checkRandomRotation()) ++success;
		}
		Gdx.app.log("" + idx + ". checkRandomRotations", "" + success + " passed, " + (count - success) + " failed");
	}


Document missing environment variables

In addition to adding missing env vars, I alphabetized all the variables and did some very light copy editing.
I came out of this with a few questions:

Does EDGEDB_SERVER_GENERATE_SELF_SIGNED_CERT need to be documented since it is also set as a side-effect of setting EDGEDB_SERVER_TLS_CERT_MODE to generate_self_signed? Is there a use case for setting it alone?
Should EDGEDB_SERVER_UID be documented? If so, what is it?
Should EDGEDB_SERVER_ALLOW_INSECURE_HTTP_CLIENTS be documented? How does it interact with EDGEDB_SERVER_HTTP_ENDPOINT_SECURITY and what's the distinction between the two?
What is the difference between EDGEDB_SERVER_SKIP_MIGRATIONS and EDGEDB_DOCKER_APPLY_MIGRATIONS? How do they interact?

Closes #6113

Does EDGEDB_SERVER_GENERATE_SELF_SIGNED_CERT need to be documented since it is also set as a side-effect of setting EDGEDB_SERVER_TLS_CERT_MODE to generate_self_signed? Is there a use case for setting it alone?

I believe this is deprecated https://github.com/edgedb/edgedb/blob/d0929e95416f6c19e4dd6f690d0b1293a42e80f1/edb/server/args.py#L775

Should EDGEDB_SERVER_UID be documented? If so, what is it?

This is the user id that should run the edgedb-server binary in the docker container. I'm not sure if it should be documented though. @elprans?

Should EDGEDB_SERVER_ALLOW_INSECURE_HTTP_CLIENTS be documented? How does it interact with EDGEDB_SERVER_HTTP_ENDPOINT_SECURITY and what's the distinction between the two?

This one is also deprecated. https://github.com/edgedb/edgedb/blob/d0929e95416f6c19e4dd6f690d0b1293a42e80f1/edb/server/args.py#L1077

What is the difference between EDGEDB_SERVER_SKIP_MIGRATIONS and EDGEDB_DOCKER_APPLY_MIGRATIONS? How do they interact?

EDGEDB_SERVER_SKIP_MIGRATIONS is deprecated. EDGEDB_DOCKER_APPLY_MIGRATIONS should be used instead. https://github.com/edgedb/edgedb-docker/blob/8f42796be51b739ab4438a1826a20c1ae796909f/docker-entrypoint-funcs.sh#L477

@fmoor Should deprecated variables stay in the docs but with a warning, or is it better to delete them altogether?

is it better to delete them altogether?

This is probably not a good option because people reading existing infra code will try to look them up and find nothing. On the other hand, I don't know how long we want to keep deprecated things around. I think databases tend to keep things for a long time :thinking:

I think I have this in shape, @fmoor, if you get a chance to take another look. I think I found all the variables that work only in Docker and got everything sorted into those two categories. Added the missing deprecated variables too, although I don't know how to determine which version they were deprecated in. That might be nice to add if you know or know how I can find out, but I don't think it's necessarily a showstopper given we're going from not having these variables documented at all to having them, albeit without the version they were deprecated in.

I don't know how to determine which version they were deprecated in.

Only thing I can think of is check out each release tag and have a look at each deprecated variable.

Only thing I can think of is check out each release tag and have a look at each deprecated variable.

I couldn't find any tags on the edgedb-docker repo or anything else that appeared to indicate which commits mapped to which version, so I'll go ahead and merge without versions for now. We can circle back later if there's another way. I did find two other deprecated env vars I had missed, so it was worthwhile to revisit before the merge!
Thanks for all your help, @fmoor! 🙏


Specify machine-specific, overridable settings

https://code.visualstudio.com/updates/v1_38#_machinespecific-overridable-settings

Since we don't have any machine settings, I don't think we need this.

@DonJayamanne isn't every file path to an executable a machine setting? Otherwise what is a "machine setting" because that name is very misleading otherwise. 😄

isn't every file path to an executable a machine setting?

No way. You can install executable on a per user install.
Besides this was discussed someone ago and we decided this wasn't for us. That doesn't mean we can't revisit not again. I.e. machine settings was introduced a few releases ago.

Checked the documentation, based on the docs, machine settings was introduced for remote dev scenarios.
I.e. ensure user path defined globally doesn't apply to the remote container.
I change my mind and yes, we should implement this, and as you have pointed out file paths should ideally be supported at machine level. :thumbs


add fastapi for inference

json formatted data transfer
tools/log.py for better logging
server.py for fastapi
add 2 demos, one to run fastapi(fastapi.ipynb), one to use the interface(usage.ipynb)

LGTM. Will merge after polishing the API.


quick initial INTF suggestion

quick suggestion for INTF ABAP defining the INTF metadata
Suggestions/comments welcome

okay to merge, we can move from there


[FR] Default tag to install all extras

What's the problem this feature will solve?
I would like to install all extras by using default tag like [all], or [all_extras].
In many projects, this feature is often implemented like this in setup.py:
from setuptools import setup

extras_require = {
    'dev': ['black', 'isort'],
    'test':  ['pytest']
}
extras_require['all'] = {
    v for v in for vs in extras_require.values()
}

setup(
    ...
    extra_requires=extra_requires,
    ...
)

But this way is not available in setup.cfg.
So, I would like to have a default tag that can install all extras.
Describe the solution you'd like

declare a default tag like [all], or [all_extras] implicitly

Alternative Solutions
No response
Additional context
No response
Code of Conduct

[X] I agree to follow the PSF Code of Conduct

Hi @eggplants, thank you very much for bringing this up.
I think that a better forum for discussing this change would be https://discuss.python.org/c/packaging, since it may involve other parts of the ecosystem and require standardisation.

Personally, I use interpolation in setup.cfg as follows:
[options.extras_require]
dev =
    black
    isort
test =
    pytest
all =
    %(dev)
    %(test)

Note that this (probably, I have not verified this) does not work with the new pyproject.toml-based declarative metadata (PEP 621) as the interpolation is something that is provided by Python's configparser, not setuptools.

@jack1142 Thanks! Your workaround is so useful!

I'd like to add that as I found out few days ago, you can use recursive dependencies since pip 21.2 which allows you to i.e. declare pkg_name[black,isort] as a dependency for the dev extra:
https://hynek.me/articles/python-recursive-optional-dependencies/
This should also work in the PEP 621 scenario which can't use the interpolation I suggested earlier.


datetimepicker("setDate", null) does not clear alt fields

The default behavior (and the correct one IMY) of jQuery UI Datepicker is to clear both the input and the alternate field when the value passed to setDate is null.
Datetimepicker does not clear the alternate field when null is passed.
Please try this jsFiddle : http://jsfiddle.net/5VBHk/5/ by selecting a date and then click on "reset" with both libs : jQuery UI datepicker and Datetimepicker.

+1

Looks fixed now, I close the issue.


Cluster level multiple namespace #62

Added namespace prefix to clusterrolebindings to prevent overriding across a cluster

@tolarewaju3 need to update the prometheus datasource service URL as well.

@etsauer done. I can see data in my dashboard now too


style: add prettier and pretty-quick

:tada: This PR is included in version 2.3.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Bug compiling using Agda when Unicode ⟨⟩ is in file system

Describe the bug
Agda can't compile files their names have Unicode ⟨⟩ on them.
Steps To Reproduce
Just run nix build in this file:
{
  description = "Agda bug";

  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;

  outputs = { self, nixpkgs }:
    let system = "x86_64-linux";
        pkgs = import nixpkgs { inherit system; };
        unicode = "⟨⟩";
    in {
      defaultPackage.x86_64-linux = with pkgs;
        stdenv.mkDerivation {
          name = "Agda-bug";
          src = ./.;
          buildInputs = [ agda ];
          buildPhase = ''
            cat >> Everything.agda <<EOF
            import ${unicode}
            EOF
            touch ${unicode}.agda
            ls
            cat Everything.agda
            agda Everything.agda
          '';
          installPhase = ''touch $out && cat Everything.agda >> $out && ls >> $out'';
        };
    };
}

Expected behavior
It should compile like in this file:
https://github.com/agda/cubical/blob/master/Cubical/Syntax/⟨⟩.agda
Notify maintainers
@abbradar @Ericson2314 @turion @alexarice @neosimsim @Fuuzetsu @zimbatm @AndersonTorres @roberth @TilCreator @globin
[user@system:~]$ nix build
error: builder for '/nix/store/hqqf7c9lkjs0ip9ps1rd86i6xjc1bmxw-Agda-bug.drv' failed with exit code 42;
       last 10 log lines:
       > source root is 0c6bpyd78b0pgy7hm869jwdwk5jhd9si-source
       > patching sources
       > configuring
       > no configure script, doing nothing
       > building
       >  Everything.agda   flake.lock   flake.nix  ''$'\342\237\250\342\237\251''.agda'
       > import ⟨⟩
       > Checking Everything (/build/0c6bpyd78b0pgy7hm869jwdwk5jhd9si-source/Everything.agda).
       > /build/0c6bpyd78b0pgy7hm869jwdwk5jhd9si-source/Everything.agda:1,1-10
       > Failed to find source of module
       For full logs, run 'nix log /nix/store/hqqf7c9lkjs0ip9ps1rd86i6xjc1bmxw-Agda-bug.drv'.

Does this compile on a non nix agda?

Does this compile on a non nix agda?

It compiles like in this file:
https://github.com/agda/cubical/blob/master/Cubical/Syntax/⟨⟩.agda

Workaround: export LANG=C.UTF-8. I wonder if that should be done by default somewhere.

Fix: export LANG=C.UTF-8. I wonder if that should be done by default somewhere.

It worked here, but I will let it open because it is already not fixed in Agda or in something inside nixpkgs (such as mkDerivation).

Out of interest, we already have this flag set for the cubical derivation https://github.com/NixOS/nixpkgs/blob/73feaeda91a9e961b9fb65d6945210e241aaf846/pkgs/development/libraries/agda/cubical/default.nix#L14
Perhaps it should be default for agda, would there be any downside to this?

Opened https://github.com/agda/agda/issues/5903

Related: https://github.com/agda/agda/issues/4678

Perhaps it should be default for agda, would there be any downside to this?

I agree and will prepare a pull request. This comes up when updating to Agda 2.6.3, the stdlib doesn't compile without it.


Added beamZ PS10W fixture

Hi! I Added beamZ PS10W fixture mapping. There is no info about DMX modes in the manual, so manually tested them. Should be all good and tested the mappings, works perfectly.
Manual here: https://www.beamzlighting.com/product/ps10w-led-pin-spot-10w-4-in-1-dmx/

Fixture passes validator ✅
Fixture Manual: https://www.beamzlighting.com/wp-content/uploads/2024/05/151.259-PS10W-LED-Pin-Spot-10W-RGBW-DMX_manual_V1.3.pdf
My observations:
Nice work! I think you need to change the names of the modes from "4ch" to "4 Channel"
The manual also refers to your Color Wheel channel as "Auto." Perhaps you need to change the description to that.

Also within the "Auto" channel, it should state the descriptions found in the manual. E.g. "No Function" and "Colour random, from slow to fast"

coverage: 32.014%. remained the same
when pulling febc5959a7bf5ddae328f2f037e18581118b4bde on YesterKo:master
into cc741dbf5713dd119b95e760aedc072a5b9bd19f on mcallegari:master.

Fixed and added, thanks


error in reading the input file of lidar module

Hello,
I encountered the following error when running the single beam LAC for the NREL 5MW example provided.
"error in reading the input file of lidar module. Check the format of the input
file!"
What could be the reason? I am looking at the lidar input file, but nothing seems to be the problem.
Thank you,

Hi yisehakabreham,
I recently added two new functions to the lidar simulation module:

simulate spinner-mounted lidar (lidar rotates with hub)
choosing the interpolation method when simulating lidar measurement.

But I did not update the input files for the lidar module so you got this error.  I already updated the lidar module input files by the last commit. Please use them and I think you can get rid of the error.
Feng Guo

@fengguoFUAS
Thank you for your prompt response. The updated input file works fine.
Yisehak A.


develop release protocol and tools

Original report by GavinH (Bitbucket: 557058:e40c23e1-e273-4527-a2f8-5de5876e870d, ).

We've decided to stick with vanilla pip based installtion, using some additional tools to facilitate build, upload etc..
Here's an older link describing usage of twine for uploading to pypi.
The main gotcha, as I recall, was if we screwed up somehow in the build/install, redoing the test on the pypi test server was painful (had to bump versions every time).

Investigate how to build wheels for all 3 platforms (azure?)
Investigate how to test on the test server, issues with version number
Make sure we have a process that goes off a cloned version of a repo
gavin needs to write a change list

Create issues off this list, depending on how complex the responses are!

making more explicit issues


Method utils.jwt_payload_handler ignores USERNAME_FIELD

I have seen with #18 the serializers.py got an username access with paying attention to USERNAME_FIELD. But in utils.jwt_payload_handler it is still missing. (;
In my option there should be an implementation like in django-compat, also for compatibility reasons.

@rm-- I agree the django-compat snippet looks good, could you submit a PR with the changes?

@erichonkanen Of course. Give my some days.

thanks!


Stores as web workers?

I haven't dug into the actual codebase itself all that much before posting this, but what would be involved to allow store handler functions to be async? This would allow stores to be handed off to their own threads, as Web Workers, for complex reduce logic.
For example, I have a huge stack of financial data, fetched into a worker thread. I repeatedly ask the worker to reduce this (fixed) data for me depending on various filtering parameters (downsampling that data for a time series graph, for instance). However, I can't pass the data back from the main thread to the worker each time as there is too much transfer overhead, so I need to keep the original unfiltered state in the worker.
Is this something middleware could support, or does that lie further up the chain?

Yeah, I think it's doable, probably via higher-order stores (more powerful than middleware).
Example of HOS for Redux DevTools (soon to be published): https://github.com/gaearon/redux/blob/e019f334ebfda3a99ba8bb7377b8496e059d594a/examples/counter/redux-devtools/index.js
The idea is that HOSs have createStore -> createStore signature. applyMiddleware is a HOS itself.
We'll have more docs later, but in the meantime: https://github.com/gaearon/redux/blob/cdaa3e81ffdf49e25ce39eeed37affc8f0c590f7/docs/higher-order-stores.md

Here's a prototype I was playing around with last week, the web worker is created in the middleware which is probably the wrong spot, since you have no way to terminate it: https://gist.github.com/tappleby/342754c4a3fe02d82ec0
Depending on your stack you might be able to use RxJs + redux-rx

which is probably the wrong spot, since you have no way to terminate it

Yeah as soon as you want some control, HOS is a better fit than middleware.
With HOS, declaration would look like
const composedCreateStore = compose(
  applyMiddleware(
    thunkMiddleware,
    dispatchIdMiddleware,
    () => promiseMiddleware,
    loggerMiddleware
  ),
  webWorker('/build/worker.js'), // higher-order store
  createStore
);

This would allow you to grab something like store.webWorkerStore that processes “lifted” actions like START or STOP, but store would keep looking as a “normal” Store to the app.
I'm sorry I can't explain more right now, but you can read devTools HOS for more information. Here's a smaller persistState HOS (which needs to be a HOS because it may hijack the initial state).

No need to apologise, great to see it's already in the pipeline - HOS look very powerful. As we're just passing messages around as actions, web workers should fit nicely into the pipe.
I guess the additional complexity is figuring out when all "async" stores have finished processing the action, so we can update the components. Shouldn't be too problematic with promises though.
Looking at persistState, looks like you already have that covered. :+1:

Let's continue this discussion in #313.


Revisit Gzip compression support?

Hi,
Sorry for bringing this up again because someone opened https://github.com/rails/propshaft/issues/86 about ~18 months ago but I think the landscape of things may have changed since then, especially after seeing DHH's keynote at RailsWorld 2023.
I'd like to quote my comment in that issue:

NGINX has a cost to do compression since it takes CPU time to do compression on the fly, especially if it's maxed out. This is objectively worse than having your digester compress the files for you beforehand, then you can configure NGINX to say the files are already compressed and serve them as they are without compute time.
Tools like Tailwind and esbuild do not compress files either which leaves performing this action up to the user. That means every user will need to invent their own way to do this and also apply it for every deployment. Would it be fair to say this goes against the grain of what Rails tries to provide? Especially so with Rails pushing hard to use import maps and drop front-end toolchains.

DHH mentioned he likes that Propshaft is much smaller than Sprockets and only really focuses on 2 things but I think given the above having compression support built in aligns well with compressing complexity?
This also aligns with Kamal's philosophy of getting developers deploying their applications. Not everyone is going to be using a CDN where compression sometimes happens. Deploying to a single server with NGINX in front is a really popular use case, personally I've been doing that for around 10 years now (~8 of them with Docker).
I think adding support for Gzip should at least be considered. The zlib module is built into Ruby. I know the feature is more than just the few lines of code to create a compress_file function, but just throwing it out there.
Additionally, adding Brotli is another option, in the keynote DHH mentioned to skate to where the puck is going and Brotli is probably where it'll be. It's well supported by browsers but NGINX doesn't support it out of the box. It's an NGINX Plus feature although you can compile NGINX yourself with the Brotli module. Still, you could create the files with Propshaft and let users take it from there. You could technically support both compression methods.

Thank you for the well reasoned arguments @nickjj. We can revisit this, but here's a bit more of our reasoning to so far not support compression:

Your app should not be constantly serving assets. It's fine for a few requests to hit the app servers (puma, passenger) until a CDN (cloudflare, cloudfront) or reverse proxy (nginx, varnish) can cache them, but that's it. If your nginx is having to on-the-fly compress assets on every request I'd argue you are missing a piece of your infrastructure and would benefit from a free CDN with support for compression since that would reduce the number of requests hitting your app server, therefore reducing the load they are under, improving your response times.

As you mentioned, it's not just compressing the files. To take advantage, either the client needs to intentionally request the compressed file, or the app server has read the accept-encoding header for the normal (.css, .js) request and serve the compressed version .css.gz, .js.gz) instead. The second option is not feasible, since on production it's not propshaft serving the files, it's the app's file server. This means we'd need to modify the asset tags (javascript_include_tag, stylesheet_link_tag, etc) do detect that header and forward it to propshaft, which would require additional changes in Rails itself. And that would only work for entrypoints. If you CSS files are using @import or your js is using dynamic imports we'd have no way to modify those and you'd still get uncompressed files for the majority of your assets.

No problem, thanks for replying.

A single box deploy with nginx wouldn't have a cache as far as I know. Unless I missed something in their docs nginx does not cache gzipped content. There are free CDNs but it means coupling yourself to cloud services such as Cloudflare.
I think this is mostly handled at the nginx level? If nginx is serving your static files, as long as you set long lived cache headers in nginx for your asset path(s) and Rails provides digested static files then those files will be cached by clients without any further application / Rails changes? What you described is only a problem at the Rails / app level if you're not using nginx right?

I've gone over the Nginx documentation again. Couldn't find a way to compress and cache the files at the same time as you've mentioned, so you are right on this point.
Also, I was reminded of gzip_static, which let's nginx request to the upstream for the gzipped version of the static file that was requested. The brotli module has the same feature. This is by the way, what I meant with my point 2 (not anything about caching headers, sorry if my explanation was confusing)
However, I'm not sure if we can combine gzip_static with proxy_cache directives to have nginx ask the upstream for the gzip version once and serve it from now on. Do you know if it's possible? Otherwise we are still overloading the app server with unnecessary asset requests, even if propshaft provided the compressed versions.
I'll also admit I'm a bit resistant to your argument that coupling to CDN is a negative. In my personal experience (which means I'm probably not aware of something that would make my argument invalid), there are so many upsides to having a CDN like Cloudflare in front of your app that I can't see how the few downsides would justify to not having them.
Finally, our arguments are based on nginx (and maybe traefil) supporting those features. Someone who is using a cloud load balancer will not have access to them features and would still need a CDN.
By all this I don't mean "no, we don't want this". Instead it's more "Do we really want to support compression code when it seems it's only going to be used in a single use case (single box, nginx/traefik, no CDN)? Sprockets has a lot of dead code and this was of the reasons behind our rewrite"

Also, I was reminded of gzip_static, which let's nginx request to the upstream for the gzipped version of the static file that was requested

gzip_static  will look for precompressd .gz files without contacting the upstream. It bypasses nginx even attempting to compress files, it will happily serve any matching .gz files it finds. That's where Propshaft would come into play -- it would provide the .gz files. This way nginx doesn't have to compress the files on each request.
Zero requests would be made to the app server in this case, assuming you've configured nginx to serve your assets.

I'll also admit I'm a bit resistant to your argument that coupling to CDN is a negative.

It depends. I think using a CDN is generally a good thing but from a moral perspective Cloudflare controls a lot of the internet and contributing to that is a little dangerous for the sake of the internet.
There are other free CDNs of course but blindly using a CDN is risky because if it has issues then your site has issues. A huge track record is of the utmost importance here. That's why I think there's a decently large class of applications that can get by without a CDN. You can avoid all of that and just have nginx serve your assets for you.
If you get big enough later on you can introduce a CDN. You could make case that if you "only" have a few hundred thousand requests per month you can get by with nginx compressing assets on the fly even with a lower end VPS / VM and I'd generally agree but if you can shave off a few % CPU usage mostly for free that doesn't seem like a bad deal right?

Finally, our arguments are based on nginx (and maybe traefik) supporting those features. Someone who is using a cloud load balancer will not have access to them features and would still need a CDN.

You could do Cloud load balancer -> nginx -> app. A load balancer and web server are solving different problems. I often use them together, although technically nginx is capable of performing load balancing too but that's a separate matter! nginx is pretty much a swiss army knife (load balancer, reverse proxy, redirecting and writing URLs, serving assets, TLS termination, rate limiting, allow / block lists, geo detection, etc.).

By all this I don't mean "no, we don't want this". Instead it's more "Do we really want to support compression code when it seems it's only going to be used in a single use case (single box, nginx/traefik, no CDN)? Sprockets has a lot of dead code and this was of the reasons behind our rewrite"

Yep, completely understood and agreed.
Could it potentially start with generating .gz files in the same directory it dumps the digested files into? I'm honestly not sure if it needs any more than that besides the usual stuff that comes with code (documentation, tests, etc.).

Zero requests would be made to the app server in this case, assuming you've configured nginx to serve your assets.

Just so I'm sure I understood this correctly. If I create a new css file and precompile, we'd have two files colors.css and colors.css.gz.
In your scenario, if user A requests colors.css, nginx (which has never seem this file before) would hit puma to grab colors.css.gz. Then when user B requests colors.css your are saying instead of hitting puma, nginx would serve it from cache?
Or the configuration you are talking about is having nginx pull files directly from public/assets folder from the app servers, instead of making a request to puma

Here's a bare bones example of how nginx could work with your app to handle the use case of wanting nginx to serve static files and also pass traffic to your app backend for everything else:
Let's not worry about gzip yet

/assets/colors-abc123.css exists on disk thanks to Rails digesting the file
nginx is configured to directly serve static files by matching the URL location on /assets/*

nginx is configured to set expires 1y;" within this location block
nginx is configured to set add_header Cache-Control "public"; within this location block

nginx is configured to reverse proxy your app

At this point independent of Propshaft or Sprockets or Puma, nginx will directly serve your static files instead of your app. When it serves that response It will also send a long lived cache header to the client and if your client supports it, your client will cache the static files locally (typically your browser's cache).
We've successfully decoupled serving static files from Puma. That ends up working because nginx does pattern matching on its location blocks and as soon as it finds a match (top to bottom) it will run it. In this case it will look for files on disk within your nginx configured root, find a match (assuming the asset exists) and then serve it.
Puma will only be contacted when it matches your proxy_pass location block. Typically you use / for this and put it near the bottom of your config because it's a catch all for everything that's not already handled ahead of time such as assets, redirects or whatever else you want you want nginx to handle.
gzip option 1: Let nginx gzip files on the fly (current)
You can configure nginx with gzip on; and optionally set a few more options to control things like the compression level and what types of files to compress.
If you combine this config with our basic example from above, now nginx will gzip your digested files on every request. At least that's what I gathered from reading the docs. I didn't find anything that indicates nginx will write these .gz files to disk or store them in memory if they've already been accessed.
I'm speculating here but I'm guessing it will read the file from disk, gzip it and then serve the response. It's possible that assets that have already been served are read from memory but I think the gzip compression aspect happens on every request. The OS may also do some form of disk caching here but I haven't ever gone down that rabbit hole or benchmarked it.
gzip option 2: Provide your own gzipped files (proposed)
You can continue configuring everything we've done so far but make 1 tiny modification at the nginx level. We can keep gzip on; in our main nginx config but within our assets location block that had the cache headers you can also add gzip_static always; and now nginx will attempt to serve the gzipped version of that asset if it exists. If it doesn't exist it will fall back to gzipping it on the fly due to the other config option we set.
This is the behavior that we can't currently do with Propshaft because the gzipped files don't exist ahead of time. Propshaft would need to be modified to create .gz versions of each digested file.

Alright, this looks good enough to me. I'll take this to the other maintainers to see what they think.

This all sounds Nginx-centric.  Maybe here Nginx is just a placeholder for web server, but in case it's not I'd just like to point out that not everybody uses Nginx (I use Caddy).  If it came down to it, I'd rather add a CDN than Nginx to my stack.

You're right in that nginx is being used as a placeholder for web server.
Most popular web servers support this:

Caddy supports the idea of serving precompressed files based on https://caddyserver.com/docs/caddyfile/directives/file_server#file-server if you search for "precompressed":
Apache supports the idea of serving precompressed files based on https://httpd.apache.org/docs/2.4/mod/mod_deflate.html#precompressed
nginx supports the idea of serving precompressed files based on https://nginx.org/en/docs/http/ngx_http_gzip_static_module.html

Nothing about this implementation is specific to nginx. I used it as an example because it's a really popular web server.

Hey @nickjj , we've talked and we are sympathetic to the idea that devs should be being able to run a project on a basic VM without a commercial setup. This is a problem we'd like to solve, however we don't feel that Propshaft is the best place to do this.
That said, I'd like to propose a solution that should solve your use case: enhance the precompile task and add the code needed for compression. For reference, here's a quick and dirty example on how to do it. Place this in an initializer in your app.
require "rake"

Rake::Task["assets:precompile"].enhance do
  assembly    = Rails.application.assets
  output_path = assembly.config.output_path

  assembly.load_path.assets.each do |asset|
    asset_path      = output_path.join(asset.digested_path)
    compressed_path = output_path.join(asset.digested_path.to_s + ".br")

    unless compressed_path.exist?
      Propshaft.logger.info "Compressing #{asset.digested_path}"
      `brotli #{asset_path} -o #{compressed_path}`
    end
  end
end if Rake::Task.task_defined?("assets:precompile")

That feels good.
Do you think something like that could end up being a future Rails default? Maybe to begin with an option that could be true or false which defaults to false until potentially Rails 8 or whenever Propshaft is the default?

IMO this would be better as a infrastructure/tooling solution instead of a Rails thing. Sprockets tried to do everything itself and ended with a lot of dead code as technology moved forward and it couldn't keep up.
I'm closing this issue, but feel free to continue commenting.

@brenogazzola That code example could be a useful addition to the docs - I've opened https://github.com/rails/propshaft/pull/161 (crediting you as coauthor)

@brenogazzola No problem. Please potentially revisit that in the future too. :D, if it ends up not being in Rails or Propshaft but instead Kamal then everyone not using Kamal will need to copy around the same code snippet you've provided. Or were you thinking of a different tool?
The docs are a nice touch to get folks onboarded with Propshaft, good idea!

@brenogazzola Given your example, how do you suggest that cleaning old versions of these files happens? Propshaft deals with cleaning up old versions of uncompressed assets, and by not including compression in Propshaft, it's also necessary to duplicate cleaning routines, right?


Fixed an issue in the lib calling download multiple times.

See: https://github.com/joyent/node/issues/1415

Thanks.


initial commit of proposal 0153 add backslash character as operator head

Don't forget to change feature name (first line).

The core team discussed this proposal and determined that it doesn't meet the goals for Swift 4: it is purely additive (and can be added at any time), has no ABI or standard library impact, and there is a minor concern that \ might be needed as a meta-escaping character somewhere in the future of Swift.


react-native link cause error with AntDesign Font with 0.59.0

$ react-native link react-native-vector-icons

info Linking "react-native-vector-icons" iOS dependency
info iOS module "react-native-vector-icons" has been successfully linked
info Linking "react-native-vector-icons" Android dependency
info Android module "react-native-vector-icons" has been successfully linked
info Linking assets to ios project
warn Group 'Resources' does not exist in your Xcode project. We have created it automatically for you.
info Linking assets to android project

error Something went wrong while linking. Error: ENOENT: no such file or directory, copyfile '/front/node_modules/react-native-vector-icons/Fonts/AntDesign.ttf' -> '/front/android/app/src/main/assets/fonts/AntDesign.ttf'
Please file an issue here: https://github.com/react-native-community/react-native-cli/issues
error ENOENT: no such file or directory, copyfile '/front/node_modules/react-native-vector-icons/Fonts/AntDesign.ttf' -> '/front/android/app/src/main/assets/fonts/AntDesign.ttf'

react-native info
  React Native Environment Info:
    System:
      OS: macOS 10.14.1
      CPU: (8) x64 Intel(R) Core(TM) i5-8259U CPU @ 2.30GHz
      Memory: 159.52 MB / 8.00 GB
      Shell: 3.2.57 - /bin/bash
    Binaries:
      Node: 11.10.0 - /usr/local/bin/node
      Yarn: 1.13.0 - /usr/local/bin/yarn
      npm: 6.7.0 - /usr/local/bin/npm
      Watchman: 4.9.0 - /usr/local/bin/watchman
    SDKs:
      iOS SDK:
        Platforms: iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1
    IDEs:
      Xcode: 10.1/10B61 - /usr/bin/xcodebuild
    npmPackages:
      react: 16.8.3 => 16.8.3
      react-native: 0.59.0 => 0.59.0

Please reinstall react-native package. This was fixed already in a patch release of the CLI

Can you explain why it fails? Do you have a link?

See: https://github.com/react-native-community/react-native-cli/pull/231


Custom Editor and Native notebook aren't possible at the same time

Enable native notebook and custom editor.
Attempt to open using the native notebook
You'll get an exception saying they can't both work.

Plan is to make native editor only available in VS Code insiders (and custom editor is not supported). In stable VS Code only custom editor will be avialable.


Add Media keys support to commands API

These properties:

MediaNextTrack
MediaPlayPause
MediaPrevTrack
MediaStop

are currently only supported with Chrome and Opera:
http://developer.mozilla.org/Add-ons/WebExtensions/manifest.json/commands#Browser_compatibility
That means until Firefox implements them WebExtension keyboard shortcuts will
only work with other keys (Ctrl, Alt, A-Z, F1-F12, etc). Currently Media keys
are supported with whatever WebExtensions are replacing, see this example
Add-on:
http://addons.mozilla.org/firefox/addon/media-keys
So the soon approaching Firefox 57 is going to kill this feature if it is not
implemented soon.

https://github.com/carlin-q-scott/browser-media-keys/issues/150

https://github.com/carlin-q-scott/browser-media-keys/issues/153

Bugs against the Firefox API are tracked in Bugzilla which is mentioned in http://bugzilla.mozilla.org/show_bug.cgi?id=1251795 and http://bugzilla.mozilla.org/show_bug.cgi?id=1411795.

@andymckay it is highly misleading that this page:
http://arewewebextensionsyet.com
says:

Are we WebExtensions yet? Yes.

yet this important API is not implemented, and is in fact going to break some
add-ons.

Firefox 57 is less than a week away, with media keys and
global keys still not implemented. Until this happens, you can stop
Firefox from automatically installing updates:
Services.prefs.setBoolPref('app.update.auto', false);

https://github.com/carlin-q-scott/browser-media-keys/issues/155

Currently the Firefox commands API does not support
media keys nor global keys.
Until these issues are fixed by Mozilla, you can use Chromium with the
Streamkeys extension.

Actually, it appears that media keys are working, just not globally. Example
"manifest.json":
{
  "name": "wh",
  "version": "1.0.0",
  "manifest_version": 2,
  "background": {
    "scripts": ["xr.js"]
  },
  "commands": {
    "ya": {
      "suggested_key": {
        "default": "MediaPlayPause"
      }
    }
  }
}

and "xr.js":
browser.commands.onCommand.addListener(
  zu => console.log(zu)
);

Until global is implemented:
http://bugzilla.mozilla.org/show_bug.cgi?id=1411795
the above will only work if the browser has focus, but it does work. If you
need global, you can use Chromium with the Streamkeys extension:

http://github.com/henrypp/chromium
http://www.streamkeys.com

https://github.com/svnpenn/umber/issues/27


after i updated my phone to android 11 i cannot access ~/storage/shared/Android/data anymore; other apps can do it (es "cx file explorer")

after i updated my phone to android 11 i cannot access ~/storage/shared/Android/data anymore; other apps can do it (es "cx file explorer")
thanks in advance
Originally posted by @KrullBorg in https://github.com/termux/termux-app/issues/1952

updated my phone to android 11 i cannot access ~/storage/shared/Android/data anymore

Android 11 (with Termux storage permission denied):
Both commands work:
mkdir /storage/emulated/0/Android/data/com.termux
mkdir /storage/emulated/0/Android/media/com.termux
The Android/data directory is accessable with this shortcut app: https://play.google.com/store/apps/details?id=com.marc.files (What's the source?)
The Android/media directory is accessable.

u/DutchOfBurdock just shared:

Try issuing an intent; pkg install termux-am and something along the lines of

am start -a android.intent.action.OPEN_DOCUMENT -d /storage/emulated/0 -t '*/*'

Does this command help you out?

I Tryed But Not Do Anything.