fix: apply ttl and write_buffer_size options when a table is created via procedure

I hereby agree to the terms of the GreptimeDB CLA
What's changed and what's your intention?
When creating a table using the Procedure framework, ttl and write_buffer_size options were not applied. The current PR improves that
Checklist

[ ]  I have written the necessary rustdoc comments.
[ ]  I have added the necessary unit tests and integration tests.

Refer to a related PR or issue link (optional)
https://github.com/GreptimeTeam/greptimedb/issues/1112

Hi @v0y4g3r
Could you please take a look at the proposed change when you have time?
Also I'm curious if we need asserting ttl and write_buffer_size in a test? If yes - please give me a hint?

Hi @v0y4g3r Could you please take a look at the proposed change when you have time? Also I'm curious if we need asserting ttl and write_buffer_size in a test? If yes - please give me a hint?

I think it would be a separate topic to test table creation procedure to check if it correctly handles all options in CreateTableRequest.


Strip whiteline chars from args in config file

Fixes #396

Codecov Report

Merging #397 (2be9627) into master (d6fc1e8) will decrease coverage by 1.04%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #397      +/-   ##
==========================================
- Coverage   97.81%   96.76%   -1.05%
==========================================
  Files          22       22
  Lines        2101     2101
==========================================
- Hits         2055     2033      -22
- Misses         46       68      +22

Impacted Files
Coverage Δ

robocop/config.py
93.91% <100.00%> (ø)

robocop/version.py
100.00% <100.00%> (ø)

robocop/checkers/misc.py
92.43% <0.00%> (-5.05%)
:arrow_down:

robocop/checkers/documentation.py
96.00% <0.00%> (-4.00%)
:arrow_down:

robocop/checkers/comments.py
96.96% <0.00%> (-3.04%)
:arrow_down:

robocop/checkers/errors.py
95.23% <0.00%> (-2.39%)
:arrow_down:

robocop/checkers/__init__.py
91.01% <0.00%> (-2.25%)
:arrow_down:

robocop/checkers/naming.py
97.25% <0.00%> (-1.65%)
:arrow_down:

robocop/utils/misc.py
97.67% <0.00%> (-1.56%)
:arrow_down:

robocop/checkers/lengths.py
98.75% <0.00%> (-1.25%)
:arrow_down:

... and 1 more

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 d6fc1e8...2be9627. Read the comment docs.


Train with own dataset on Resnet34

Hello Sir! I found your repo to be very helpful and useful.
I'm planning to train a model with my own dataset which consist of person images (mostly selfies) and their ID photos, so currently I'm doing some data cleaning and preparation.
My question is, is face detector included in this repo? Or do I have to crop and extract the face from the ID photos?
Thanks again!

Yes, you have to crop and extract the face from the ID photos before training.
You can use Face_detection from my eval_folder.py. It will download and init a face detector from insightface.
pip install insightface

from eval_folder import Face_detection
dd = Face_detection()  # Init a detector

# Test image
from skimage.data import astronaut
img = astronaut()
bbs, ccs, pps, nimg = dd.detect_in_image(img)

# bbs is the bbox, ccs is the confidence, pps is the key points, nimg is the aligned face images.
print(bbs.shape, ccs.shape, pps.shape, nimg.shape)
# (1, 4) (1,) (1, 5, 2) (1, 112, 112, 3)

plt.imshow(nimg[0])

dd.show_result(img, bbs, ccs, pps)

dd.detect_in_folder will do detection in folder and save results to {DATASET}_aligned_112_112
dd.detect_in_folder(dataset_folder)


gui: Show certificates functionality

Certificate functionality to be added:

use apksig lib for search certificates in apk
allow several entries to be shown under 'Certificate' root
maybe add some icon for indicating verification status
for certificate files under resources root show content in text format (now shows in binary)

Discussion started in  #315

Done in PR #431


Wireplumber: Failed to open media device at /dev/media0: No such file or directory

Describe the bug
I just updated into the latest nixos-unstable and I started having this issue where I would receive a blank screen after login in. When I checked the logs I found out that journalctl is full of this error:
ERROR MediaDevice media_device.cpp:483 /dev/media0[uvcvideo]: Failed to open media device at /dev/media0: No such file or directory

It generates 50k of their errors each second If I'm counting correctly.
Steps To Reproduce
Steps to reproduce the behavior:
I don't know yet. But this is my config: https://github.com/jankaifer/nixos/tree/908ee18b5bb7cfe29ec937e6595a0f0838464ca3
Notify maintainers
@K900
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.3.0, NixOS, 23.05 (Stoat), 23.05.git.1a411f23ba29`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.13.3`
 - nixpkgs: `/persist/home/pearman/dev/jankaifer/nixos/modules/nixpkgs`

I'm using Framework Intel 12th gen
Keywords
pipewire, wireplumber, gnome blank login

That blank login screen is a bit flaky, sometimes I can log in just fine.
I know this issue is not really actionable, but I'll try to investigate a bit more.

This looks like https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/443, which is likely actually caused by your webcam not initializing correctly. Do you have any errors in dmesg?

Something to try would be services.pipewire.package = pkgs.pipewire.override { libcameraSupport = false; };.

Yeah, sometimes I would get 100% from pipewire after playing steam games.
I checked dmesg and grep wire is empty.

It wouldn't be related to wireplumber, it would be related to your camera connecting and disconnecting.

My camera is disabled by a hardware switch. So it shouldn't be connected and I don't see anything related in dmesg.

It may be another device then.

This is my dmesg maybe you can see something interesting there:
https://gist.github.com/jankaifer/7aae764f1d9c71bf710c512ffa4dba14
I'll try that config change you suggested.

Those USB device resets definitely aren't normal. Do you have a USB camera or capture card connected?

I have expansion cards connected. And I believe that camera behaves like a USB device but that hardware switch should disconnect it.
Also with that config change I login works. Let me try multiple times to verify.

If you have an actual hardware switch that cuts the USB link, make sure it's fully on or fully off - it's possible your camera is connected enough to make your device think there's a device, but not connected enough to actually probe successfully.

So even with that config change it's flakey. I worked 2 times and failed once.
Oh, I didn't realize that journalctl shows logs even from previous boots (I never hard to use it since I switched to NixOS half a year ago). It doesn't show that error now.

The dmesg shows that the camera reconnected exactly once. Even though it's disabled.
I'll try rebooting with camera on or off if I can spot a pattern.

Those USB device resets definitely aren't normal. Do you have a USB camera or capture card connected?
Which USB device resets do you mean?  The devices connected are:

usd-c expansion card
usb-c expansion card
usb-a expansion card
hdmi expansion card

These:
[  549.045647] usb 1-9: reset full-speed USB device number 3 using xhci_hcd
[  549.310647] usb 1-9: reset full-speed USB device number 3 using xhci_hcd

Thanks. I still see exactly 2 resets and I've taken out all expansion cards and disabled the camera and microphone.
I'll reboot a few times again and check for those.

So I found what causes the flakiness in the gnome login fails. That seems unrelated.
It fails only when I log in too quickly. When I wait a little before logging in it works fine.
After testing with and without a camera I get 2-5 USB device resets.

I installed the same config into my other framework (same computer but with i7 instead of i5).
I still get USB resets, so either the hardware switch design is wonky, or this is not a hardware issue.

I just looked into which device is resetting, and it's my fingerprint sensor Goodix.
[    1.952382] usb 1-9: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    1.952383] usb 1-9: Product: Goodix USB2.0 MISC
[    1.952384] usb 1-9: Manufacturer: Goodix Technology Co., Ltd.
[    1.952384] usb 1-9: SerialNumber: UIDF9285E55_XXXX_MOC_B0
...
[   14.047056] usb 1-9: reset full-speed USB device number 2 using xhci_hcd
[   15.749491] usb 1-9: reset full-speed USB device number 2 using xhci_hcd

OK, I guess we can disregard that then. Can you check if /dev/media0 exists consistently? If it does, you can find out which device it is with udevadm info /dev/media0.

Anyway, I don't see the original error in journalctl anymore and my login issues seem to be unrelated to wireplumber.
And that USB reset is not great, but it shouldn't cause any issues (I'm using my fingerprint sensor to login after all).

/dev/media0 doesn't exist.

The only issue I have now is that blanch scree after but that is unrelated, so I'll close this now.
Thanks a lot for your help.


Verifying the locale cache is somewhat slow/expensive

It's not a major problem, but it does seem like checking the locale cache is somewhat expensive, and since this is a middleware it can add a few milliseconds to every request.
I've only briefly looked at this method and this project, but is there a specific reason the cache must be implemented this way? Maybe even just making the cache swappable for a different cache store would help.

I am not the author of this middleware
But it seems the middleware is for generating a translations.js which contains translation entries in JS
I personally think this is supposed to be used in development only

This could be a problem when this feature is used in production (like I plan to do).
I thought the generation was running only at server start... In this case what could be a solution for this use case? Should we use the rake task every time we deploy? There is a way to add the execution of the rake task at server start only?


Private AKS is not able to find the path of my local files to do a deployment through Helm

Helm Version: 3
Kubernetes Version: 1.23.12
I'm currently trying to deploy my helm charts through my private aks cluster. However, I'm unable to do anything since it can't find the path of my local directory.
This is the command that I'm running:
az aks command invoke \
--resource-group aharo-aks-appgateway01 \
--name aharo-aks02 \
--command "helm install haro ./haro_files_helm_chart"

This is the error message that I'm getting
command started at 2023-01-06 22:49:46+00:00, finished at 2023-01-06 22:49:46+00:00 with exitcode=1
Error: INSTALLATION FAILED: path "./haro_files_helm_chart" not found

Also, I will be getting the same issue if I use a file flag

az aks command invoke \
--resource-group aharo-aks-appgateway01 \
--name aharo-aks02 \
--command "helm install haro ./haro_files_helm_chart"
--file deployment.yaml

OR
az aks command invoke \
  --resource-group aharo-aks-appgateway01  \
  --name  aharo-aks02 \
  --command "helm install aharo ./haro_files_helm_chart" \
  --file .

To prove that this type of command can work, I tried one from Microsoft Documentation. By running this command, I don't have any issues but I don't understand why my local files are not visible in the private AKS.
az aks command invoke \
--resource-group aharo-aks-appgateway01 \
--name aharo-aks02 \
--command "helm repo add bitnami https://charts.bitnami.com/bitnami && helm repo update && helm install my-release bitnami/nginx"

What else can I do to find the path of my directory? Do you know if I could be missing any configuration on my cluster?

route to CXP team

@hvaandres The az aks command invoke command spawns a container on AKS and runs the command there, which is why it doesn't find any local files.
You need to use the --file parameter to send local files and mount them on the spawned container in AKS for it to find them but looks like you already tried this.
Could you confirm you are running the az command from the right folder and run a simple command like ls to make sure the files got copied over correctly?


fix location of favicons so it loads when viewing the examples.

This is the only favicon I found in the project, so I am assuming it is the right one to point to

this might not be correct too. I might have to get a Jekyll instance going to see how this code would be in its final form. I didn't realize that the code in this area is used for another process.


Can't kill fuels:dev process when using pnpm

After creating a new app with:
pnpm create fuels

And running it with:
pnpm fuels:dev

One cannot kill the script with CTRL+C — only with double CTRL+C.
Apparently the above doesn't happen with bun or npm.

It seems it worked on<EMAIL_ADDRESS>and then stopped on<EMAIL_ADDRESS>Thanks to @petertonysmith94 for the investigation.

Potential source #1602 of this issue


FEMInterpolator used to compute the solution

This PR needs first #333
Closes #282
Closes #335

Codecov Report

Merging #336 (08194e4) into main (2721ad2) will increase coverage by 9.24%.
The diff coverage is 53.84%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff             @@
##             main     #336      +/-   ##
==========================================
+ Coverage   79.06%   88.31%   +9.24%
==========================================
  Files          42       42
  Lines        1481     1498      +17
==========================================
+ Hits         1171     1323     +152
+ Misses        310      175     -135

Impacted Files
Coverage Δ

src/StructuralAnalyses/LinearStaticAnalyses.jl
84.84% <0.00%> (-2.66%)
:arrow_down:

src/StructuralSolvers/StructuralSolvers.jl
73.61% <0.00%> (-4.34%)
:arrow_down:

src/StructuralSolvers/Solvers.jl
50.00% <25.00%> (-50.00%)
:arrow_down:

src/StructuralSolvers/Solutions.jl
46.87% <37.14%> (-10.27%)
:arrow_down:

src/Meshes/Handlers.jl
97.05% <100.00%> (+2.46%)
:arrow_up:

src/Meshes/Interpolators.jl
100.00% <100.00%> (+100.00%)
:arrow_up:

src/Meshes/Searches.jl
98.13% <100.00%> (+83.42%)
:arrow_up:

... and 2 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


general features

Attributes for

value
mode

Props for
hsl, rgb, hex
Figure out sizing options
Styling

Just wanna comment here and say this project is super underrated / unnoticed at 37 stars... It's incredibly easy to start using, has lots of features, and looks awesome. Looking forward to using this : )

Also you misspelled "svelte" in all of your pages : )


Script editor not under tools

The script editor is no longer under Tools in Google Sheets, but under Extensions -> App Script

+1


Memory corruption when changing coupling DC > Ground > DC

Observed in Linux Release build of ngscopeclient ecc525e, scopehal 2f49730, using a Rigol DS1054Z connected via LAN.
To reproduce:

Clear preferences and stuff: rm -rf ~/.config/ngscopeclient/
Hook up Rigol DS1054Z chan1 to signal source and press AUTO to reset scope config
Launch ngscopeclient --debug --trace SCPISocketTransport
Add > Oscilloscope > Connect > rigol, lan
Trigger a one-shot capture from ngscopeclient
Double-click yellow CHAN1 marker in top left of waveform group
Change Input > Coupling from DC to Ground
Trigger another one-shot capture from ngscopeclient [bonus: sometimes this produces a SIGFPE, sometimes it doesn't!]
Change Input > Coupling from Ground back to DC
Trigger another one-shot capture from ngscopeclient

Final words on the console:
[SCPISocketTransport::SendCommand]     [<IP_ADDRESS>] Sending WAV:STAR 41
[SCPISocketTransport::SendCommand]     [<IP_ADDRESS>] Sending WAV:STOP 1200
[SCPISocketTransport::SendCommand]     [<IP_ADDRESS>] Sending WAV:DATA?
[SCPISocketTransport::ReadRaw*** stack smashing detected ***: terminated
fish: Process 344989, 'ngscopeclient' from job 1, 'ngscopeclient --debug --trace S…' terminated by signal SIGABRT (Abort)
Done in 52s 970ms
~/scope/ rm -rf ~/.config/ngscopeclient/; ngscopeclient --debug --trace SCPISocketTransport | tee coupling-change-stack-smashing

I expect we'll need more detailed debug information to diagnose this, but I don't know what info to grab or how to grab it.
coupling-change-stack-smashing.txt
couple-gnd-sigfpe.txt

Going DC -> AC -> DC works as expected, but DC -> AC -> DC -> GND -> AC crashes as above, so it seems moving away from GND is important here.

stack-smashing-filtered.pcap.gz
PCAP showing stack smashing traffic

Can you file a separate ticket for the SIGFPE issue and link the FPE log there? I'm starting to think these are two separate bugs so let's track as such.

As of 3a5636c3c56513ea0055add252aa79f059bc04c2, the procedure in the first comment now behaves as desired (no app crashes).


4D5309C9 - Forza Horizon

Validation

[X] I've read the FAQ.
[X] The Xenia build used is from a canary branch. (not MLBS/AlexVS/master/pull requests, etc)
[X] This issue isn't for help (tech support) with Xenia, or a game.
[X] I've checked if this game doesn't already have a compatibility report.

Xbox 360 Marketplace link
https://marketplace.xbox.com/it-it/product/forza-horizon/66acd000-77fe-1000-9115-d8024d5309c9
Xenia version
https://github.com/xenia-canary/xenia-canary/commit/c1d3e35eb97d8ba65eddebfe62d3321442995716/
Issues
The game crashes as soon as, wehn i is necessary to sign up to the 1st event:
https://i.postimg.cc/Z52bHCbP/forza-1.png
https://i.postimg.cc/PxktG98P/forza-2.png
after the sing up, it appears this pop up:
https://i.postimg.cc/wMwHmB4m/forza-3.png
https://i.postimg.cc/8PnNkj68/forza-4.png
https://i.postimg.cc/GmWRYVKq/forza-5.png
https://i.postimg.cc/T13vf62Y/forza-6.png
Log
xenia.zip
Screenshots

Labels
label:state-crash-guest

it shoudl be ok now', is that correct? thanks!


fix script formatting

https://github.com/Isild/ZIWG/runs/701969063?check_suite_focus=true
Look like all is correct


West-Midlands-Community | Matthew Law | Module-User-Focused-Data | WEEK 1

Learners, PR Template
Self checklist

[x] I have committed my files one by one, on purpose, and for a reason
[x] I have titled my PR with COHORT_NAME | FIRST_NAME LAST_NAME | REPO_NAME | WEEK
[x] I have tested my changes
[x] My changes follow the style guide
[x] My changes meet the requirements of this task

Changelist
Added content about wireframes and added a link to the MD file.
Questions
Ask any questions you have for your reviewer.

Hi @matthewlawpixel your PR says you have titled your PR COHORT_NAME | FIRST_NAME LAST_NAME | REPO_NAME | WEEK but this PR has the title Change to content and added links in MD

Thank you for the feedback @SallyMcGrath. I have changed the title to the title you had suggested. Please let me know of any other changes.

Hi @matthewlawpixel. I see you added some HTML about wireframes. Nice job.
Have you tried to style it like the wireframe sketch provided, by adding CSS to it?
Also, try to use some semantic HTML tags like <header>, <article> or <footer> in your HTML.

Thank you for the kind comment. I have added CSS styling and added a footer to it to match the wireframe as you suggested.

Hi @matthewlawpixel, it's looking better 👍
You can see a preview of your page here: https://deploy-preview-118--cyf-ufd.netlify.app/wireframe/
You can still make better use of semantic HTML tags - have a look at this link: https://www.w3schools.com/html/html5_semantic_elements.asp
It has a nice diagram showing how different tags might be used in different parts of a wireframe.

All acceptance criteria are met. Good job!
I suggested some improvements to be made in index.html; they are not part of the acceptance criteria.

Thank you CJ for the feedback!. I have removed both the empty div tag and divider class from my project as you suggested.


ssl ready for plain tcp and ws?

ssl ready for plain tcp and ws? if ready, can u add examples for them?

yeah, that planned soon

thanks a lot. when will be?

SSL is ready


Update http4s-blaze-server, http4s-dsl to 0.21.20

Updates

org.http4s:http4s-blaze-server
org.http4s:http4s-dsl

from 0.21.19 to 0.21.20.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

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

labels: library-update, semver-patch

Superseded by #107.


Change the type for the text field inside the dialog

How I can  change the type for the text field inside the dialog? Or how you can set textCapSentences for him?

See the README or sample project

Sorry, I overlooked


remove partially completed test

test was accidentally committed when removing an unused helm chart as touchup to PR #95
see https://github.com/LD4P/ils-middleware/pull/95#pullrequestreview-802012111 and https://github.com/LD4P/ils-middleware/commit/155f77158eeed76eb795e54b450bf724e682346e

i have a slightly more fleshed out version of this test saved locally, and can push up a branch for a draft PR with that.  but it ran into issues with a lack of initialized airflow database once i started trying to create dag runs.  per standup discussion yesterday, shelving that work for now to concentrate on the functional improvement outlined in #85.  we also decided to write a short wiki entry outlining manual testing that can be done to guard against regressions when making DAG level changes to task dependencies, trigger rules, failure hooks, etc (since DAG level automated integration testing seems like too much work for now, and since we haven't found much in the way of existing patterns for that in the airflow docs or community discussion).


BUG FREMO no - member

The length of the FREMO number need to be (6 or7 digits long, version 1.9.1 are stating that numbers shall be between 1-9999

Aha - found that the page added 046 ( countycode ) automaticly
Sorry, but I think its more intuitively to add the complete FREMO member number

No action required.


Sort GameObjects in TreeViewList (Scene View)

It would be nice if you can sort / move Root-GameObjects in the Scene View.
At the moment, this feature is not possible:

With this feature you could organize / structure your gameobjects in the scene-view much better.

Since the order in which objects are stored and updated in Duality is an implementation detail and (by design) no guarantees between GameObjects are provided, this isn't easily possible. In other words, there is no way to access or change object ordering it. Allowing this in the editor would require some kind of additional editor-only data layer and potentially do more harm than good, since it wouldn't be clear to users whether the ordering of objects does anything logic-wise.
Instead, objects can be organized hierarchically using empty GameObjects as "folders". In the above case, you could for example create an "Enemies" object and put all enemies in there.
Leaving this open for discussion, but am currently not in favor of implementing this.
PS: The animated gif does an excellent job at describing the issue, thumbs up for that :smile:

I mean this feature is only to be nice to look at and shouldn't have any logical influence of the gameobjects.


[json-c] Update to 2023-03-28

[x] Changes comply with the maintainer guide
[x] SHA512s are updated for each updated download
[x] The "supports" clause reflects platforms that may be fixed by this new version
[x] Any fixed CI baseline entries are removed from that file.
[x] Any patches that are no longer applied are deleted from the port's directory.
[x] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
[x] Only one version is added to each modified port's versions file.

@microsoft-github-policy-service agree

@jswillard Due to https://github.com/microsoft/vcpkg/pull/30632, please merge to the master. :)

Closing this PR for now, since there has been no update in several months, please open a new PR if you are still working on this. Thanks!


Tick version to 0.15, rerender

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Allow addition of unreleased INRB data

These changes are to allow addition of private metadata + sequences to be spiked into the build (after filtering but prior to subsampling). They are intended for use by INRB using an excel + fasta file which they maintain. As such, these changes probably shouldn't be merged into our canonical mpox repo, but perhaps we fork the repo into the INRB organisation and maintain these (small) changes there?
If you have access to the test xlsx + fasta (see this internal slack thread) then you can run from within the phylogenetic directory via:

python scripts/curate_private_data.py --sequences <fasta file> --xlsx <xlsx file> --remap-columns 'accession:accession' 'accession:strain' 'collection date:date' 'province:division' 'health zone:location'   --fasta-header-idx 1
nextstrain build . --configfile defaults/clade-i/config.yaml --config private_data=true auspice_config=defaults/clade-i/auspice_config_inrb.json -f results/clade-i/good_metadata_combined.tsv auspice/mpox_clade-I.json

to do

[ ] Metadata values need updating (e.g. they have "Homo-sapiens" we have "Homo sapiens")
[ ] Fork into INRB repo?
[ ] Test from INRB

Superseded by #287

Do you want to allow users to configure those names in the workflow config file?

Done in #287 - thanks for the suggestion


fix: remove github checkout

Description
When this action is run in a workflow where previous steps checkout the repo, the checkout in this action would remove those things that have already been checked out. This removes the checkout step in the action.
Type of change

[X] Bug fix (non-breaking change which fixes an issue)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Chore (cleanup or template)
[ ] Documentation (updates README's or comments)
[ ] New feature (non-breaking change which adds functionality)

Pull Request Checklist

[X] Does your PR title confirm to the Angular JS Format?
[X] Is the Type one of feat, fix, docs, style, refactor, perf, test, chore?
[x] Have all GitHub Checks passed?

I guess my VSCode didn't like it


bug in Bookmark extension not work properly

Describe the bug
it will not bookmark because of small issue i have solved that issue .
Expected behavior
it should bookmark website
Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

please assign issue to as GSSOC'24 contributor i already solved it
Working Video
Uploading Bookmark extension.mp4…

hey @Sulagna-Dutta-Roy  ,please add level


Minor issue in readme docs

just an FYI the create command should actually read npm create deskthing@latest with the capital letters. Not sure if its just newer versions but using any capital letters results in a 404 error.

Thanks for the catch


Allow serializing UDP responses to JSON

Hi, I'm working on a simple UDP client script:
https://github.com/torrust/torrust-tracker/pull/627
I want to have a simple command to make a default request to a UDP tracker. I'm using aquatic. I would like to print the response in JSON format. But UDP responses don't implement the serialize trait. I guess it could be derived automatically.
I've already created another client for HTTP trackers:
https://github.com/torrust/torrust-tracker/blob/develop/src/bin/http_tracker_client.rs

Sure, I could add serde derives!

It turns out that this would not be trivial, since I rewrote the udp protocol crate to use zerocopy types, which do not implement serde traits.
Is the use case just that you want to print JSON? And in that case, what is the advantage compared to just using the Debug implementation?

It turns out that this would not be trivial, since I rewrote the udp protocol crate to use zerocopy types, which do not implement serde traits.
Is the use case just that you want to print JSON? And in that case, what is the advantage compared to just using the Debug implementation?

Hi @greatest-ape yes, I wanted to open the PR and I saw the problem. I want to use JSON because I'm planning to use the response in CI tasks, for example I would like to have a smoke test after automatically deploying the tracker to be sure the deployment was OK. And parsing JSON is a better option.
Anyway I could just implement a custom serialisation or create a new DTO that implements Serialize. For this library if you want to support it I think a custom serializer could be the solution. In fact, I think we could use serde for both Bencode and JSON format.

If you're using this crate to deserialize the response, you're already writing your smoke test in Rust. What is the point in first converting the response to JSON and then parsing it to check for correctness instead of just checking the Rust types? JSON adds new issues, e.g., how to represent plain byte arrays (hex string? array of u8s?) and no differentiation between integers and floating point values.

If you're using this crate to deserialize the response, you're already writing your smoke test in Rust. What is the point in first converting the response to JSON and then parsing it to check for correctness instead of just checking the Rust types? JSON adds new issues, e.g., how to represent plain byte arrays (hex string? array of u8s?) and no differentiation between integers and floating point values.

Hi @greatest-ape I wanted the client to be a kind of "generic" testing client. In fact, I might not even use the JSON in the smoke test, but only the exit code. But I thought it would be nice to have a more human friendly format for the logs. But it's true I can build a custom client for my smoke tests. In fact, in the long-term I would like to build a tester for trackers. I mean, a console app that can check that a tracker follows the BEPS.
Anyway, I think other people could have the need to Serialize the struts for other reasons in the future, and since this is a generic library It would be nice to support it.
For the time being I can build a DTO from the response which is serializable, basically removing the type that's not serializable.
I can also use another library to Serialize directly the Bencode format. Maybe that's a better option for a generic client, because I can support any response even if it's not supported yet by this library.

There might be reasonable use cases for using serde to serialize the udp protocol types, even if it’s a very narrow use case. I am however torn on it because users may be unhappy about specific choices, such as how to represent byte arrays, which means that complexity and maintainance cost of the library is increased without a clear benefit.
Why would you want to encode a UDP BitTorrent response with bencode? And what kind of responses are you thinking of that are not supported by this library?
I get the feeling that you’re trying to use a single structure to represent both http and udp BitTorrent protocol types. If this is the case, my advice is that they are in fact not interchangeable and that you will run into lots of issues if you treat them as such.

There might be reasonable use cases for using serde to serialize the udp protocol types, even if it’s a very narrow use case. I am however torn on it because users may be unhappy about specific choices, such as how to represent byte arrays, which means that complexity and maintainance cost of the library is increased without a clear benefit.
Why would you want to encode a UDP BitTorrent response with bencode? And what kind of responses are you thinking of that are not supported by this library?
I get the feeling that you’re trying to use a single structure to represent both http and udp BitTorrent protocol types. If this is the case, my advice is that they are in fact not interchangeable and that you will run into lots of issues if you treat them as such.

Hi @greatest-ape sorry, I got confused, UDP does not use Bencode, but I meant serde could be used for bytes and JSON serialisation.
Anyway, I agree there is not a strong reason to do it in the library right now. I can build a serializable DTO from the response in this library for my use case, for the time being.
Thank you for your feedback.
At least this issue can be used to track that need in the future.

Ok :-)

Just in case it's useful for someone else what I finally did was this:
https://github.com/torrust/torrust-tracker/blob/develop/src/bin/udp_tracker_client.rs
//! UDP Tracker client:
//!
//! Examples:
//!
//! Announce request:
//!
//! ```text
//! cargo run --bin udp_tracker_client announce <IP_ADDRESS>:6969 9c38422213e30bff212b30c360d26f9a02136422 | jq
//! ```
//!
//! Announce response:
//!
//! ```json
//! {
//!   "transaction_id": -888840697
//!   "announce_interval": 120,
//!   "leechers": 0,
//!   "seeders": 1,
//!   "peers": [
//!     "<IP_ADDRESS>:51289"
//!   ],
//! }
//! ```
//!
//! Scrape request:
//!
//! ```text
//! cargo run --bin udp_tracker_client scrape <IP_ADDRESS>:6969 9c38422213e30bff212b30c360d26f9a02136422 | jq
//! ```
//!
//! Scrape response:
//!
//! ```json
//! {
//!   "transaction_id": -888840697,
//!   "torrent_stats": [
//!     {
//!       "completed": 0,
//!       "leechers": 0,
//!       "seeders": 0
//!     },
//!     {
//!       "completed": 0,
//!       "leechers": 0,
//!       "seeders": 0
//!    }
//!  ]
//! }
//! ```
//!
//! You can use an URL with instead of the socket address. For example:
//!
//! ```text
//! cargo run --bin udp_tracker_client scrape udp://localhost:6969 9c38422213e30bff212b30c360d26f9a02136422 | jq
//! cargo run --bin udp_tracker_client scrape udp://localhost:6969/scrape 9c38422213e30bff212b30c360d26f9a02136422 | jq
//! ```
//!
//! The protocol (`udp://`) in the URL is mandatory. The path (`\scrape`) is optional. It always uses `\scrape`.
use std::net::{Ipv4Addr, SocketAddr, ToSocketAddrs};
use std::str::FromStr;

use anyhow::Context;
use aquatic_udp_protocol::common::InfoHash;
use aquatic_udp_protocol::Response::{AnnounceIpv4, AnnounceIpv6, Scrape};
use aquatic_udp_protocol::{
    AnnounceEvent, AnnounceRequest, ConnectRequest, ConnectionId, NumberOfBytes, NumberOfPeers, PeerId, PeerKey, Port, Response,
    ScrapeRequest, TransactionId,
};
use clap::{Parser, Subcommand};
use log::{debug, LevelFilter};
use serde_json::json;
use torrust_tracker::shared::bit_torrent::info_hash::InfoHash as TorrustInfoHash;
use torrust_tracker::shared::bit_torrent::tracker::udp::client::{UdpClient, UdpTrackerClient};
use url::Url;

const ASSIGNED_BY_OS: i32 = 0;
const RANDOM_TRANSACTION_ID: i32 = -888_840_697;

#[derive(Parser, Debug)]
#[command(author, version, about, long_about = None)]
struct Args {
    #[command(subcommand)]
    command: Command,
}

#[derive(Subcommand, Debug)]
enum Command {
    Announce {
        #[arg(value_parser = parse_socket_addr)]
        tracker_socket_addr: SocketAddr,
        #[arg(value_parser = parse_info_hash)]
        info_hash: TorrustInfoHash,
    },
    Scrape {
        #[arg(value_parser = parse_socket_addr)]
        tracker_socket_addr: SocketAddr,
        #[arg(value_parser = parse_info_hash, num_args = 1..=74, value_delimiter = ' ')]
        info_hashes: Vec<TorrustInfoHash>,
    },
}

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    setup_logging(LevelFilter::Info);

    let args = Args::parse();

    // Configuration
    let local_port = ASSIGNED_BY_OS;
    let local_bind_to = format!("<IP_ADDRESS>:{local_port}");
    let transaction_id = RANDOM_TRANSACTION_ID;

    // Bind to local port
    debug!("Binding to: {local_bind_to}");
    let udp_client = UdpClient::bind(&local_bind_to).await;
    let bound_to = udp_client.socket.local_addr().unwrap();
    debug!("Bound to:   {bound_to}");

    let transaction_id = TransactionId(transaction_id);

    let response = match args.command {
        Command::Announce {
            tracker_socket_addr,
            info_hash,
        } => {
            let (connection_id, udp_tracker_client) = connect(&tracker_socket_addr, udp_client, transaction_id).await;

            send_announce_request(
                connection_id,
                transaction_id,
                info_hash,
                Port(bound_to.port()),
                &udp_tracker_client,
            )
            .await
        }
        Command::Scrape {
            tracker_socket_addr,
            info_hashes,
        } => {
            let (connection_id, udp_tracker_client) = connect(&tracker_socket_addr, udp_client, transaction_id).await;
            send_scrape_request(connection_id, transaction_id, info_hashes, &udp_tracker_client).await
        }
    };

    match response {
        AnnounceIpv4(announce) => {
            let json = json!({
                "transaction_id": announce.transaction_id.0,
                "announce_interval": announce.announce_interval.0,
                "leechers": announce.leechers.0,
                "seeders": announce.seeders.0,
                "peers": announce.peers.iter().map(|peer| format!("{}:{}", peer.ip_address, peer.port.0)).collect::<Vec<_>>(),
            });
            let pretty_json = serde_json::to_string_pretty(&json).unwrap();
            println!("{pretty_json}");
        }
        AnnounceIpv6(announce) => {
            let json = json!({
                "transaction_id": announce.transaction_id.0,
                "announce_interval": announce.announce_interval.0,
                "leechers": announce.leechers.0,
                "seeders": announce.seeders.0,
                "peers6": announce.peers.iter().map(|peer| format!("{}:{}", peer.ip_address, peer.port.0)).collect::<Vec<_>>(),
            });
            let pretty_json = serde_json::to_string_pretty(&json).unwrap();
            println!("{pretty_json}");
        }
        Scrape(scrape) => {
            let json = json!({
                "transaction_id": scrape.transaction_id.0,
                "torrent_stats": scrape.torrent_stats.iter().map(|torrent_scrape_statistics| json!({
                    "seeders": torrent_scrape_statistics.seeders.0,
                    "completed": torrent_scrape_statistics.completed.0,
                    "leechers": torrent_scrape_statistics.leechers.0,
                })).collect::<Vec<_>>(),
            });
            let pretty_json = serde_json::to_string_pretty(&json).unwrap();
            println!("{pretty_json}");
        }
        _ => println!("{response:#?}"), // todo: serialize to JSON all responses.
    }

    Ok(())
}

fn setup_logging(level: LevelFilter) {
    if let Err(_err) = fern::Dispatch::new()
        .format(|out, message, record| {
            out.finish(format_args!(
                "{} [{}][{}] {}",
                chrono::Local::now().format("%+"),
                record.target(),
                record.level(),
                message
            ));
        })
        .level(level)
        .chain(std::io::stdout())
        .apply()
    {
        panic!("Failed to initialize logging.")
    }

    debug!("logging initialized.");
}

fn parse_socket_addr(tracker_socket_addr_str: &str) -> anyhow::Result<SocketAddr> {
    debug!("Tracker socket address: {tracker_socket_addr_str:#?}");

    // Check if the address is a valid URL. If so, extract the host and port.
    let resolved_addr = if let Ok(url) = Url::parse(tracker_socket_addr_str) {
        debug!("Tracker socket address URL: {url:?}");

        let host = url
            .host_str()
            .with_context(|| format!("invalid host in URL: `{tracker_socket_addr_str}`"))?
            .to_owned();

        let port = url
            .port()
            .with_context(|| format!("port not found in URL: `{tracker_socket_addr_str}`"))?
            .to_owned();

        (host, port)
    } else {
        // If not a URL, assume it's a host:port pair.

        let parts: Vec<&str> = tracker_socket_addr_str.split(':').collect();

        if parts.len() != 2 {
            return Err(anyhow::anyhow!(
                "invalid address format: `{}`. Expected format is host:port",
                tracker_socket_addr_str
            ));
        }

        let host = parts[0].to_owned();

        let port = parts[1]
            .parse::<u16>()
            .with_context(|| format!("invalid port: `{}`", parts[1]))?
            .to_owned();

        (host, port)
    };

    debug!("Resolved address: {resolved_addr:#?}");

    // Perform DNS resolution.
    let socket_addrs: Vec<_> = resolved_addr.to_socket_addrs()?.collect();
    if socket_addrs.is_empty() {
        Err(anyhow::anyhow!("DNS resolution failed for `{}`", tracker_socket_addr_str))
    } else {
        Ok(socket_addrs[0])
    }
}

fn parse_info_hash(info_hash_str: &str) -> anyhow::Result<TorrustInfoHash> {
    TorrustInfoHash::from_str(info_hash_str)
        .map_err(|e| anyhow::Error::msg(format!("failed to parse info-hash `{info_hash_str}`: {e:?}")))
}

async fn connect(
    tracker_socket_addr: &SocketAddr,
    udp_client: UdpClient,
    transaction_id: TransactionId,
) -> (ConnectionId, UdpTrackerClient) {
    debug!("Connecting to tracker: udp://{tracker_socket_addr}");

    udp_client.connect(&tracker_socket_addr.to_string()).await;

    let udp_tracker_client = UdpTrackerClient { udp_client };

    let connection_id = send_connection_request(transaction_id, &udp_tracker_client).await;

    (connection_id, udp_tracker_client)
}

async fn send_connection_request(transaction_id: TransactionId, client: &UdpTrackerClient) -> ConnectionId {
    debug!("Sending connection request with transaction id: {transaction_id:#?}");

    let connect_request = ConnectRequest { transaction_id };

    client.send(connect_request.into()).await;

    let response = client.receive().await;

    debug!("connection request response:\n{response:#?}");

    match response {
        Response::Connect(connect_response) => connect_response.connection_id,
        _ => panic!("error connecting to udp server. Unexpected response"),
    }
}

async fn send_announce_request(
    connection_id: ConnectionId,
    transaction_id: TransactionId,
    info_hash: TorrustInfoHash,
    port: Port,
    client: &UdpTrackerClient,
) -> Response {
    debug!("Sending announce request with transaction id: {transaction_id:#?}");

    let announce_request = AnnounceRequest {
        connection_id,
        transaction_id,
        info_hash: InfoHash(info_hash.bytes()),
        peer_id: PeerId(*b"-qB00000000000000001"),
        bytes_downloaded: NumberOfBytes(0i64),
        bytes_uploaded: NumberOfBytes(0i64),
        bytes_left: NumberOfBytes(0i64),
        event: AnnounceEvent::Started,
        ip_address: Some(Ipv4Addr::new(0, 0, 0, 0)),
        key: PeerKey(0u32),
        peers_wanted: NumberOfPeers(1i32),
        port,
    };

    client.send(announce_request.into()).await;

    let response = client.receive().await;

    debug!("announce request response:\n{response:#?}");

    response
}

async fn send_scrape_request(
    connection_id: ConnectionId,
    transaction_id: TransactionId,
    info_hashes: Vec<TorrustInfoHash>,
    client: &UdpTrackerClient,
) -> Response {
    debug!("Sending scrape request with transaction id: {transaction_id:#?}");

    let scrape_request = ScrapeRequest {
        connection_id,
        transaction_id,
        info_hashes: info_hashes
            .iter()
            .map(|torrust_info_hash| InfoHash(torrust_info_hash.bytes()))
            .collect(),
    };

    client.send(scrape_request.into()).await;

    let response = client.receive().await;

    debug!("scrape request response:\n{response:#?}");

    response
}


Add logo

Hi! What is your PR about?
Please,
add logo frogdaogov.eth

[x] Add images for your space
[ ] Add custom domain for your space
[ ] Add alias for migrate your space
[ ] Add or edit a skin
~Edit your space with GitHub?~ (deprecated) Please migrate your space to ENS https://docs.snapshot.page/spaces/migrate
~Create your space with GitHub~ (deprecated) Create your space with ENS instead https://docs.snapshot.page/spaces/create

You need to do the space creation process again and create a new PR. Here is the guide: https://docs.snapshot.page/guides/create-a-space (you can keep your PR for add the images and skin)


jsonGet fails if response is empty

jsonGet fails in an unexpected manner when response from web application is empty.
In specific, logic of the application was to perform get, and if HTTP 200 is returned, operation is considered successful. Otherwise it failed, and may return a response.
Error log follows:
Error using http.jsonGet (line 29)
Java exception occurred:
java.lang.IllegalArgumentException: Entity may not be null

	at net.psexton.ext.org.apache.http.util.Args.notNull(Args.java:48)

	at net.psexton.ext.org.apache.http.util.EntityUtils.toString(EntityUtils.java:213)

	at net.psexton.ext.org.apache.http.util.EntityUtils.toString(EntityUtils.java:288)

	at net.psexton.missinghttp.MatlabShim.jsonGet(MatlabShim.java:172)

Good catch! The same fix probably needs to be added to MatlabShim#filePut, MatlabShim#jsonPost, MatlabShim#jsonPut, and MatlabShim#multipartPost, since those do the same thing with the EntityResponse.

Yes. I've already did it for my purposes, and I've sent you a pull request with the changes.


feat/order: fix order by recently opened, add order by setting

Hello, here is the fix for recent open project sort and order by setting feature.
In my tests this method not worked as expected
M.get_last_accessed_time = function(path)
  local expanded_path = vim.fn.expand(path)
  local fs_stat = vim.loop.fs_stat(expanded_path)
  return fs_stat and fs_stat.atime.sec or 0
end

When project change via plugin the atime of folder not changed so that we always have same time there and projects are not ordered as expected. However if I use GUI (the finder in my PC) and go to the project folder > the atime change.
As a workaround I stored the last accessed time in project string.
In addition added new setting order_by so that we can order projects asc, desc and recent(default)
Please check if it's ok for you
Thanks

This is great @AntoscencoVladimir thanks for your work here


Removes hiveJdbcDriver configuration parameter.

Description of what I changed

Fixes #713
Please note that only the second commit belongs to this PR; the first one is for #806 which this PR is build on top of.
E2E test

TESTED:
Ran the controller locally and verified that it can connect to the [Thrift] Hive server and create tables.
Checklist: I completed these to help reviewers :)

[x] I have read and will follow the review process.

[x] I am familiar with Google Style Guides for the language I have coded in.
No? Please take some time and review Java and Python style guides.

[x] My IDE is configured to follow the Google code styles.
No? Unsure? -> configure your IDE.

[ ] I have added tests to cover my changes. (If you refactored existing code that was well tested you do not have to add tests)

[x] I ran mvn clean package right before creating this pull request and added all formatting changes to my commit.

[x] All new and existing tests passed.

[x] My pull request is based on the latest changes of the master branch.
No? Unsure? -> execute command git pull --rebase upstream master

Forcing the merge as the e2e just passed and the last commit had no code changes.


Armstrong number program

Sir how much time it will take for merging ?

hey @RajkumarSony  review and merge please

Only project will be merge. Thank you.

If Excluded then contribute here.. https://github.com/RajkumarSony/LeetCode-Solutions.


[NextJS] How to apply app wide custom font

I'm seeking guidance on applying a font across my entire app.
Currently, I've defined the app font in my globalTokens.stylex.js file using the following code:

export const fonts = stylex.defineVars({
    appFont: 'Plus Jakarta Sans',
});

Then in my LogInComponent.js file it was referenced as follows:

const styles = stylex.create({
    title: {
        color: colors.primaryText,
        fontFamily: fonts.appFont, //Not working
        fontWeight: 600,
        fontSize: text.spanXs
    }
});

However, it seems that the specified font is not taking effect. I suspect this may be due to the need to download the font from a URL. Could anyone kindly provide guidance on where and how to make provisions for downloading and integrating this font into the project?
Thank you

Try this:
export const fonts = stylex.defineVars({
    appFont: '"Plus Jakarta Sans"',
});
``

And you'd also need to make sure that you've downloaded the font from a URL.

@nmn  Thanks for your response. So, this is currently the content of my global.css file:

@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@100;200;300;400;500;600;700;800&display=swap');
@layer reset {
    * {
      box-sizing: border-box;
      padding: 0;
      margin: 0;
    }
}

Then in my globalTokens.stylex.js file I have this:

export const fonts = stylex.defineVars({
    appFont: '"Plus Jakarta Sans"',
});

Now, I tried applying the font to the whole of my application using the following code:
...
import '../globals.css'

const styles = stylex.create({
  html: {
    colorScheme: 'light dark',
  },
  reset: {
    minHeight: '100%',
    margin: 0,
    padding: 0,
  },
  body: {
    background: colors.background,
    fontFamily: fonts.appFont   //Attempt to apply font to the entire app. Not working
  },
});

export default async function RootLayout({ children, params: { locale } }) {

  return (
    <html {...stylex.props(styles.html, styles.reset)} lang={locale}>
      <body {...stylex.props(styles.reset, styles.body)}>{children}</body>
    </html>
  )
}

Unfortunately, the font is not taking effect at all. Is there another way out of this?
Thank you for response in anticipation.

@ebitogu I just tried to reproduce the issue and it worked fine for me. Here's a stackblitz link where I tried it: https://stackblitz.com/edit/stylex-next-untd91?file=app%2Flayout.tsx
However, there are a few pitfalls that may have caused an issue for you:

Is your global.css file included in your bundle? Can you use the custom font as a style value directly? (without using a variable)
Does adding import '../globalTokens.stylex'; above the other import fix the problem?
Does stopping npm run dev and running it again fix the problem?

@nmn Yes, it's working fine now all of a sudden with no changes made. It seems the stylex plugin didn't parse it after I restarted the server. Weird.
But I will close this now as it's working now. Thank you.

@ebitogu There are some issues in dev mode and variables with StyleX. Restart the dev server whenever you run into such issues for now.


Introduce TreeView

Initial TreeView implementation

I'll merge after completing documentation

amazing, great job

Great!

https://enisn-projects.io/docs/en/uranium/latest/themes/material/components/TreeView


NUTCH-2213 : do not store the headers verbatim if the response was compressed

See discussion on [https://issues.apache.org/jira/browse/NUTCH-2213].

+1 @jnioche

+1, looks great to me!


Guess who Extra version

Hi,
Could you make a version for Gues Who? Extra ?

I'm not sure what this is / don't have this. I assume it has different dimensions?
You can easily change the dimensions / margins in the code, to adjust it to a version with different dimensions.


Add wait feature to the helm integration (equivalent to --wait)

Description of the feature you would like to add / User story

As a Kubeone I would like to have a wait feature in the helm integration in order to install multiple helm charts that can depends on each other (1st chart must be running to install the 2nd chart)
Example

helmReleases:

  - releaseName: tink-stack

    chart: ./charts/tinkerbell/stack

    wait: true   # wait feature can enabled by setting true or false (default value: false)

    namespace: tink-stack

    version: 0.4.3

    values:
      - valuesFile: tink-values.yaml

Seconded! We're running into the same issue when trying to e.g. deploy the aws-lb-controller-manager and afterwards the ingress-nginx-controller. The controller will fail because the webhook pods are not ready yet. We need some solution to introduce a wait for full finished deployment of all the resources in the release.


ci: add cache to pnpm

Current dependencies on/for this PR:

main

PR #23   👈

This stack of pull requests is managed by Graphite.


Assertion `header.magic == 0x67676a74' failed.

ggml_file.cpp:49: ggml_file::ggml_file(const char*): Assertion `header.magic == 0x67676a74' failed.
Aborted
which tag did you use in llama.cpp?  when i use this to run, the model version can't compatible！

Hello !
This error means you are using a v3 version. The current code was written before v3 was out. GGMLv3 is supported on a version I haven't published, I will publish it as soon as I cleaned it.
The performances heavily depend on the GPU used so there is no real way to compare it with CPU.

Hello ! This error means you are using an unsupported version. What model are you using ? The current code was written before v3 was out. GGMLv3 is supported on a version I haven't published, I will publish it as soon as I cleaned it. The performances heavily depend on the GPU used so there is no real way to compare it with CPU.

thank you very much. I change llama.cpp to Brach_76a88492 2023-5-1, it can works now!
I also build it by NDK, and try to inference in Android Edge Device(Qualcomm 8Gen 1). but it's very slow.  Cpu can get 4.2 tokes/s. but this only 1 tokens/s. Mybe need some optimize for ops.

Did you have plan to inference in Android Mobile Devices ?

I have no plan to support Android, but given that only Vulkan is used as an external library, it should work well.
About performance, I did not focus on it much. I tried it on AMD GPUs, I did try it on Intel ones and performances were terrible. I will try it on Android, maybe there is just a bottleneck somewhere


Support closure2surface shader, fix obj. properties, support Substance materials

Support of changes to 3ds max shaders made in appleseed PR 1842
Fixes Object Properties modifier errors when SSS Set Id field is empty
Adds support of Substance maps to "Use Procedural" mode

Thanks!


New task: Schedule Price Changes

https://mechanic.canny.io/task-requests/p/schedule-price-changes

Draft ready for review (of logic and overall approach) #84


task/internal: Add sudo to solve permission denied errors

Add sudo to remove "Permission denied" errors as follow:
2020-02-26T23:13:52.368 INFO:teuthology.orchestra.run.plana004:> test -z $(ls -A /var/lib/ceph)
2020-02-26T23:13:52.371 INFO:teuthology.orchestra.run.plana007:> test -z $(ls -A /var/lib/ceph)
2020-02-26T23:13:52.425 INFO:teuthology.orchestra.run.plana004.stderr:ls: cannot open directory /var/lib/ceph: Permission denied
2020-02-26T23:13:52.464 INFO:teuthology.orchestra.run.plana007.stderr:ls: cannot open directory /var/lib/ceph: Permission denied
Signed-off-by: chuqifang<EMAIL_ADDRESS>

suggestion: add url of issues from ceph tracker


[SPARK-15130][PySpark][ML][DOCS] pyspark expose default params in ml pipeline

What changes were proposed in this pull request?
Add default values to shared params in ML pipeline.
How was this patch tested?
Existing unit tests + built docs.

cc @sethah & @keypointt

Test build #57815 has started for PR 12914 at commit c523674.

Test build #57815 has finished for PR 12914 at commit c523674.

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/57815/
Test PASSed.

Merged build finished. Test PASSed.

cc @yanboliang

@holdenk one potential issue that I've found with including the default value in the param "help" is that it then gets duplicated if users call explainParam/explainParams, e.g.
In [44]: als = ALS().setAlpha(10)
In [45]: print als.explainParams()
alpha: alpha for implicit preference (default: 1.0, current: 10.0)
checkpointInterval: set checkpoint interval (>= 1) or disable checkpoint (-1). E.g. 10 means that the cache will get checkpointed every 10 iterations. (default: 10)
finalStorageLevel: StorageLevel for ALS model factors. Default: 'MEMORY_AND_DISK'. (default: MEMORY_AND_DISK)

I've used ALS as an example here where I put the defaults for storage level params in the param doc, and you can see it gets duplicated and IMO doesn't look great. Though without something like this, the defaults don't go into the HTML doc for the param (well they go into the constructor doc so they are there somewhere, but I agree it would be better if they lived with the param doc).
Not sure if there is an alternative solution.

@MLnick I could change the explainParam call to strip out the existing default so it shows up in both the HTML docs and looks reasonable in explainParam/explainParams

Test build #57910 has started for PR 12914 at commit 3b81799.

Test build #57910 has finished for PR 12914 at commit 3b81799.

This patch fails MiMa tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

I'm not sure what changes went into python docs, but it seems that from 1.6 to now we made a change that does NOT show the constructor for Python classes, and hence does not show the default value anywhere. I like @holdenk's suggestion to remove it from explain param. I don't really see another way.

MiMa failure is clearly unrelated, jenkins retest this please.

Test build #57926 has started for PR 12914 at commit 3b81799.

Test build #57926 has finished for PR 12914 at commit 3b81799.

This patch fails MiMa tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

Test build #57938 has started for PR 12914 at commit 6960997.

Test build #57938 has finished for PR 12914 at commit 6960997.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class GetExternalRowField(

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

Merged build finished. Test PASSed.

Test build #57958 has started for PR 12914 at commit 4fffa65.

Test build #57958 has finished for PR 12914 at commit 4fffa65.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

Test build #57961 has started for PR 12914 at commit 602c5ca.

Test build #57961 has finished for PR 12914 at commit 602c5ca.

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/57961/
Test PASSed.

Merged build finished. Test PASSed.

Any more ideas on if this is something we want (cc @davies ?)? This one only does shared params so I'd like to follow it up for the non-shared params as well. I think having the default values in the API docs is pretty useful (we include them in the Scaladoc for a reason).

@holdenk I'd prefer for us to find a way to document the default value in the API docs without resorting to stripping it out with a regex.
This works for example:
    #: alpha for implicit preference. Default: 10
    alpha = Param(Params._dummy(), "alpha", "alpha for implicit preference",
                  typeConverter=TypeConverters.toFloat)

However I agree the result doesn't look ideal:

But surely there must be a way to get it to look better using something like this approach?

@MLnick - That seems like a good solution without needing any regex. It does look a bit odd in the generated docs but all of the current params look a bit odd in the generated docs anyways.

seems like that doesn't work with inheritance out of the box, I'll do some poking.

@MLnick Turns out thats a sphinx extension since they don't have proper docstrings so it isn't inherited and we can't really do much about that so I don't think that solution is going to work.

We could change these to be properties so they have proper docstrings but technically that would be an API breaking change.

Test build #58154 has started for PR 12914 at commit 5e89a85.

Test build #58154 has finished for PR 12914 at commit 5e89a85.

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/58154/
Test PASSed.

Darn - it would have been a really simple solution.
I'm not against having them as properties - the issue is the duplication you see, e.g.
_maxIter = Param(Params._dummy(), "maxIter", "max number of iterations (>= 0).", typeConverter=TypeConverters.toInt)
maxIter = property(lambda x: x._maxIter, doc="Param maxIter, max number of iterations (>= 0).")

Not sure if @jkbradley / @davies has other thoughts or ideas on the property issue? It just seems like a large-ish change for perhaps not that much benefit.
The other option is just to restore the previous doc behavior we had of including the _init_ doc string in the class doc. I'm not sure if a version change of sphinx changed default behavior, but it appears we can restore it by adding this line to conf.py: autoclass_content = 'both'.
It's not ideal but it takes us back to what we had before, and at least the defaults for each param are fairly clearly documented in that way.

Or we could go back to the first solution I proposed in this PR which
duplicates the values when someone calls explainParam but is otherwise a
small change without any duplication.
On Tuesday, May 10, 2016, Nick Pentreath<EMAIL_ADDRESS>wrote:

Darn - it would have been a really simple solution.
I'm not against having them as properties - the issue is the duplication
you see, e.g.
_maxIter = Param(Params._dummy(), "maxIter", "max number of iterations (>= 0).", typeConverter=TypeConverters.toInt)
maxIter = property(lambda x: x._maxIter, doc="Param maxIter, max number of iterations (>= 0).")
Not sure if @jkbradley https://github.com/jkbradley / @davies
https://github.com/davies has other thoughts or ideas on the property
issue? It just seems like a large-ish change for perhaps not that much
benefit.
The other option is just to restore the previous doc behavior we had of
including the init doc string in the class doc. I'm not sure if a
version change of sphinx changed default behavior, but it appears we can
restore it by adding this line to conf.py: autoclass_content = 'both'.
It's not ideal but it takes us back to what we had before, and at least
the defaults for each param are fairly clearly documented in that way.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/apache/spark/pull/12914#issuecomment-218187728

--
Cell :<PHONE_NUMBER>
Twitter: https://twitter.com/holdenkarau

I gave it some more thought over coffee - I can remove much of the duplication if we want.

Test build #58244 has started for PR 12914 at commit 27d351d.

Test build #58244 has finished for PR 12914 at commit 27d351d.

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/58244/
Test PASSed.

@MLnick what do you think of this approach?

Refer @jkbradley 's comments for #13148 which is related to default value statement in param build-in doc:
No need to state default in built-in doc. Scala doc is OK. Built-in doc is only displayed by explainParams, which reads from the defaultParamMap already.

@yanboliang thanks for pointing that out. I'll continue some discussion over there (tl;dr - imho PyDoc is also a thing that matters).

@jkbradley @yanboliang @holdenk @sethah let's discuss the issue of defaults in param doc (refer https://github.com/apache/spark/pull/13148#discussion_r63600571) on this PR since it is pertinent.
Here, Holden raises 2 issues:

The Scaladoc contains default values for many params (sometimes in shared traits). In addition the Scala Param itself has the self-contained doc field (typically not containing defaults, since the built-in doc shows current and default in explainParam).
The PyDoc only contains the Param doc field.

(By the way, (1) implies that in cases where the default param value in the trait is overridden, the Scaladoc is incorrect, but that is another issue).
The result of (2) is that the HTML API doc doesn't look great, e.g.

Also, nowhere in the PyDoc are the defaults listed, while in the Scaladoc they are.
I agree that it would be nice to have the defaults listed in the PyDoc in some way.

One solution is the original approach here, where defaults are put in the Param doc in a standard way, but stripped out during explainParams. This works but IMO is more prone to breaking in future if people forget to do things in exactly the correct format. It also doesn't directly solve the problem of the API doc looking ugly;
Another solution is the current approach here, where the attributes are turned into properties with a docstring (possibly including the default) - this does solve the problem of nice display in the API doc. The downside here is the potentially fairly large change to make everything a property, and the code duplication introduced (though kept to a minimum) and extra boilerplate when adding new params that could be more error-prone;
A third solution is what I've done here as a PoC, which basically adds the built-in doc as the instance docstring for each Python Param. Then we override the AttributeDocumenter in Sphinx to handle it. The result displays nicely in the API doc (the same as the property approach, but no defaults are added). The other thing that changes is the __init__ docstring is brought back (for some reason the current docs are not showing that), which means that the defaults are essentially documented there for each class. In a way this seems more "Pythonic" to me (i.e. Python users are accustomed to seeing the default arg values in constructer doc, e.g. sciki-learn).
Another option is to do nothing (for now at least), except bring back the __init__ docstring. This keeps the ugly-looking Param doc, but at least shows the default args for each class, and is the current behavior. We can do something like (1) or (3) later (but maybe not (2) during Spark 2.x as it may be too large a change).
A final option is to perhaps document defaults elsewhere (such as the setter for the param which is usually implemented in the class or a model trait in Scala).

Let's decide on an approach and make it consistent across the board.

Personally I'm in favor of #2 or #3 since they would both give us nice looking documentation on par with that of the Scala side.

cc @jkbradley ?

So I'll circle back up with everyone after 2.0 is shipped - I think we should try and one the approaches (either this or @MLnick's solution) for 2.1+ because not having it in the docs just really isn't a good state to be in for users.

Now that 2.0 is truly out the door - any thoughts from anyone?

I still think this is important to address somewhere but I'm going to go ahead and close this PR for now - can re-open and update if this ends up being the approach we want to pursue.


Use Darkvision instead of Basic Vision for tokens that cannot see in the dark

Tokens that cannot see in the dark can enjoy the fog of war in color while tokens with darkvision cannot. To make it fair tokens without darkvision should use the Darkvision mode too. Adequate Vision's Darkvision mode doesn't boost dim to bright light; if it did, we would need to adjust Basic Vision to be desaturated or create a separate vision mode for tokens that cannot see in the dark.

Let know if you want to make this change or not, because I snuck a fix for a bug in here that allows tokens without darkvision to see in darkness, which needs to be fixed.

I'd rather not merge this one since the difference is negligible and is apt to confuse users when they inspect the token config.


Replace UAttributesBuilder with UMessageBuilder

This is for #43

@PLeVasseur @AnotherDaniel WDYT?

Will take a look today :+1:


Using windows-latest in benchmarking results in "Error provisioning ressources"

Describe the bug
When benchmarking in a matrix with windows-latest for some reason the pipeline gets cancelled with the following message:
Benchmark XML serializer / net7.0 windows-latest
An error occurred while provisioning resources (Error Type: Disconnect).

To Reproduce
Steps to reproduce the behavior:

Add windows-latest to the benchmark pipeline matrix
Run in GitHub pipelines
See the error after some time.

Expected behavior
Running the pipeline
Additional context
https://github.com/Marvin-Brouwer/FluentSerializer/actions/runs/3775748865

Fixed in #146

Apparently something is starving the resources.
I made a support request to see if there's something we can do about it:
https://github.com/actions/runner-images/issues/6841#issuecomment-1365772518

Fixed in #8


Remote install - HTTP redirection

Hi,
Could you please enable HTTP redirection following when remotly installing CIAs?

Can you elaborate? Installs over HTTP should already follow redirects.

Ok it seems that's not the problem, I have misread.
I have the following error:
Failed to install from QR code.

Result code: 0xD8A0A046
Level: Permanent (27)
Summary: Invalid state (5)
Module: HTTP (40)
Desc: Network unavailable (70)

It's probably exactly what it sounds like. You don't seem to be connected to a network, or at least it isn't working properly.

My network is properly working but I'll have a try with another app to check if it is has a link with FBI or with my console. Closing for now, I'll reopen (or ask for) if needed


Add GenericName to desktop entry file

Having a generic name in the desktop entry adds some useful context.

good call! thanks for this, merging!


feat: migrate to pydantic v2

Status
READY
Description
Migrate to Pydantic v2
Impacted Areas in Library
All
Which issue(s) does this pull-request fix?
Closes: #67

Checklist

[ ] Automated tests exist
[ ] Updated Package Requirements (if required, and with maintainers' approval)
[ ] Local unit tests performed
[ ] Documentation exists link
[ ] Local pre-commit hooks performed
[ ] Desired commit message set as PR title and description set above
[ ] Link to relevant GitHub issue provided

@Tomas2D , @David-Kristek: ibm-generative-ai could be used in applications for which there could exist dependencies which may not have been transitioned to pydantic>=2.0. I am wondering if this library should take care of such use cases.
It could possibly involve

Removing version qualifiers
Creating some kind of wrapper/class that returns appropriate object based on pydantic version installed

For example, pydantic_utils.py could contain

def get_model(obj):
     if ... :# version < 2.0
         return obj.copy()
     else:
         return obj.model_copy()

By no means proposing a final solution but just starting a discussion if there exists a feasible path which could be taken up based on priorities.

Hey @onkarbhardwaj, thanks for sharing your attitude. I agree that this may break some projects; note that I considered that. We will either do the wrapper class (like you just mentioned) or do a breaking change with other changes once we release the 1.0.0 version (depending on the timespan).


Platform priority not taken into account when newer version is available for one platform

I regularly use the following command :
lgogdownloader --platform linux,windows --language fr,en --download --game all
It does the job very well by downloading linux version of my games when available and otherwise downloading the windows version.
Yet, I recently noticed that the windows version would be downloaded regardless of the priority when it has a  more recent version number (e.g: Trine Enchanted Edition is marked as <IP_ADDRESS> for windows and <IP_ADDRESS> for linux).
As a result, both version are downloaded. Not sure it is the intended behaviour.

This is not intended behaviour.
I haven't been able to replicate this and gameDetails::filterListWithPriorities doesn't have any code for handling version numbers or updates so version number shouldn't be a factor.
Because platform and language priorities are scored in the same pass I'm guessing that Windows installer has French language but Linux installer doesn't and therefore both are getting the same score in gameDetails::filterListWithPriorities
--platform linux,windows --language fr,en would give scores
Linux = 0
Windows = 1
French = 0
English = 1
Linux installer score: Linux + English = 0 + 1 = 1
Windows installer score: Windows + French = 1 + 0 = 1
They have the same score so both are downloaded
Could you try if changing the scoring system helps and doesn't cause any other issues?
Change
fileDetails->score += i;
on line 48 of src/gamedetails.cpp to
fileDetails->score += i*2;
This change makes platform affect the score more and thus the new scores for --platform linux,windows --language fr,en are
Linux = 0
Windows = 2
French = 0
English = 1
Linux installer score: Linux + English = 0 + 1 = 1
Windows installer score: Windows + French = 2 + 0 = 2
Score for Linux installer is less than Windows installer so only the Linux installer should be downloaded.

Indeed, that did the trick ! I've just updated my whole game collection (including "Trine") and the behaviour was as expected. It only downloaded windows version where no linux version was available and took into account my language preference.
Thanks !
Now will you include this change in your next release ?


Jest throwing error at react-native core files's flow code.

Issue
Jest throwing error at react-native core files's flow code.

Expected behavior
Jest shouldn't throw error at react-native core files.

Output from your debug log
[ You can activate the debug logger by setting the environment variable TS_JEST_DEBUG="true" before running yarn test. The output of the logger
will be in <your_project_dir>/node_modules/ts-jest/debug.txt ]

Couldn't find debug.txt file in the above said path.
My Jest config:
"jest": {
    "preset": "react-native",
    "transform": {
      "^.+\\.jsx?$": "<rootDir>/node_modules/babel-jest",
      "^.+\\.tsx?$": "<rootDir>/node_modules/ts-jest/preprocessor.js"
    },
    "testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$",
    "moduleFileExtensions": [
      "ts",
      "tsx",
      "js",
      "jsx",
      "json",
      "node"
    ],
    "testPathIgnorePatterns": [
      "\\.snap$",
      "<rootDir>/node_modules/",
      "<rootDir>/lib/"
    ],
    "transformIgnorePatterns": [
      "/node_modules/(?!react-native-firebase)"
    ],
    "globals": {
      "ts-jest": {
        "useBabelrc": true
      }
    }
  }

@shubhnik Can you please create a minimal repo that reproduces this issue?

seems to me that your transformIgnorePatterns don't ignore react-native core https://facebook.github.io/jest/docs/en/tutorial-react-native.html#transformignorepatterns-customization

seems to me that your transformIgnorePatterns don't ignore react-native core https://facebook.github.io/jest/docs/en/tutorial-react-native.html#transformignorepatterns-customization


Outliers are drawn twice

see original at https://github.com/datavisyn/chartjs-chart-box-and-violin-plot/issues/105

fixed part of v3.0.0:
https://github.com/sgratzl/chartjs-chart-boxplot/blob/f668d22fef92170c1baf609cac825853ca433c28/src/elements/base.ts#L255-L269


unable to change admin password as well as CLI password

Is this a request for help?:

**Is this a BUG REPORT ** (choose one):

Version of Anchore Engine and Anchore CLI if applicable:
Engine Code Version: 0.7.0
What happened:
Tried to change the default_admin_password in config.yaml file, but there is no effect.
default_admin_password :pass123
Further, i also tried to change by executing following commands:
ANCHORE_CLI_PASS = pass123
export ANCHORE_CLI_PASS
What did you expect to happen:
I expected that the command anchore-cli account list would run without giving me unauthorized error
Any relevant log output from /var/log/anchore:
anchore-cli account list
"Unauthorized"
What docker images are you using:
none
How to reproduce the issue:
cd anchore-engine
vi config/config.yaml
default_admin_password :pass123
ANCHORE_CLI_PASS = pass123
export ANCHORE_CLI_PASS
Anything else we need to know:
Kindly ask if you need anything

Hi @swetan27 , the values in the config yaml only affect initial system bootstrap. After the system is initialized you can change credentials with the anchore-cli accout * commands directly.
The ANCHORE_CLI_* env vars are only used for setting the credential that the CLI will use, and have no affect on the engine identities/configuration.

See: https://docs.anchore.com/current/docs/engine/usage/cli_usage/accounts/ for more information on credential management with the CLI

Thanks closing the issue.


Wrong field type for array: object

Hi team,
just updated RapiDoc version from 8.3.0 to 8.4.3.
We use the schema display style: table
Here I see a difference for the displayed field types. For an 'array' now I see 'object'.
8.3.0

8.4.3

Is this a bug?

unless I get a minimal spec i wont be able to comment if the rendering is correct.
If the schema-style=tree does it show it as an array ?

unless I get a minimal spec i wont be able to comment if the rendering is correct.
If the schema-style=tree does it show it as an array ?

Hi, thanks for your fast response.
Yes, schema-style=tree shows it as an array.
I added a minimum spec which causes the problem - Do you need further information?
https://gist.github.com/hgrueneis/08ae520ab9f1e0efcdcda22590ac3b19

Hi, thanks for your fast response.
Yes, schema-style=tree shows it as an array.
I added a minimum spec which causes the problem - Do you need further information?
https://gist.github.com/hgrueneis/08ae520ab9f1e0efcdcda22590ac3b19

thanks for the spec... this should be fixed now. to test you can pick up the latest code from dist/rapidoc-min.js

thanks for the spec... this should be fixed now. to test you can pick up the latest code from dist/rapidoc-min.js


Add loose equals and loose contains functions on ShallowWrapper

This PR add two functions on the ShallowWrapper to perform loose equality and loose contains check on a tree. The functions are named .rightContains() and .rightEquals() because the equality is based on the expected element (the right one) instead of the wrapped element (the left one). The function names are not very good and I'll be happy to change it for something more relevant and meaningful.
I added these functions because it is really really handy to write clean tests that check just the necessary parts of the tree for the test, i.e. "I want to check if that particular node is present in my tree, but I don't care about its style or onClick handler".
It works by checking if at least, all the props (including children) of the expected element are present on the wrapper element and equal to each other. It is based on the Utils.nodeEqual function with a little tweak on the props length comparison.
To use it, you just have to write something like :
const MyComponent = React.createClass({
  handleClick() { ...  },
  render() {
    return (

Hello

    );
  }
});

const wrapper = shallow(<MyComponent />);

// here we don't need to check if onClick is present on the node, so we just skip it
// same for the className
expect(wrapper.rightEquals(

Hello

)).to.equal(true);

// here we don't need to check if onClick is present on the node, so we just skip it
// same for the className
expect(wrapper.rightContains(

Hello

)).to.equal(true);

// here we don't need to check if onClick is present on the node, so we just skip it
expect(wrapper.rightContains(

Hello

)).to.equal(true);

As the contributors guide suggest, I added some documentation and some tests that should pass with all versions of react.
These kind of feature are suggested on some issues like https://github.com/airbnb/enzyme/issues/204 or https://github.com/airbnb/enzyme/issues/273

I like this, with the exception of the API name. Maybe something like looseContains/looseEquals would be more accurate?

I definitely am not a fan of the names.
Does this comparison ignore all props, or just style and onClick? I think we'd need to very explicitly define which things are compared and which are ignored, and ideally the names of the functions took this into account.

@ljharb I believe it ignores all props that aren't present on the expression passed into rightContains/rightEquals. So something like rightContains('')would match any structure that contains a nesteddiv`, is that right @mathieuancelin?

so something like matchesElement, and containsMatchingElement?

@Aweary @ljharb I'm not a fan of the name either, but first I wanted to write something that works, see if you guys are interested in such feature and then discuss the name, I know it can be tricky to agree on public API names ;-)

@ljharb yes, @Aweary is right, these function just check props that are present on the elements passed into rightContains/rightEquals so you can check style or onClick if you want to, or you can just ignore them because it's not relevant for you test

Hey @ljharb and @Aweary,
I've just pushed some new code with the modifications that you suggested.
Let me know if something's wrong.

Nothing immediately jumps out at me. Is this perhaps something we also want exposed on mount? Both mount and shallow's wrappers have contains.

Yeah, I thought exactly the same thing. I will take a look at mount today

@ljharb I just added the contains* function to the ReactWrapper with some tests and the documentation

@ljharb it should be good now :-)

@lelandrichardson @ljharb do you think we can get this merged soon?

@Aweary it needs to be rebased on latest master :-)

Yeah, I meant more in terms of whether you guys will be accepting it. If that's the case then @mathieuancelin it'd be great if you could rebase 😄

@Aweary it's rebased, just waiting on CI :-)

Maybe it's just me, but it says it's still out-of-date with master 😬

@Aweary it seems good now, but travis seems a bit overloaded at the moment

I believe @ljharb is going to want that last merge commit (3394025) to be squashed as well

@Aweary It should be okay now. I don't even where does this merge come from. And that's why I should never try to update a PR before going to sleep :-)

I had considered a similar API before, but never ended up writing it. I think this is quite useful in practice, though it always feels a little messy to me in my head.  I think it's a reasonable addition though.
What do we think about the names fuzzyContains and fuzzyEquals? cc @ljharb

I like the methods but I don't like the name "fuzzy" - the current names were my suggestion and atm I still find them to be the clearest.

The problem I have with the current names is that they don't seem to indicate to me that they are not "strict".  using the "fuzzy" prefix makes it obvious that this is not strict equality.

To me, "matching" is a non-strict thing - since in every test framework, "to match" generally means "is kind of the same as". Another common word to describe non-strict-equality is "loose equality". "Fuzzy" might imply that { foo: 3 } and { Foo: 3 } are the same - because you don't know to what depth "fuzzy" refers to.

Considering test libraries use the match nomenclature, i'll go ahead and agree with the current naming :)
OK. Let's do this! We've got some fresh conflicts. Mind rebasing and fixing? Thanks!

@lelandrichardson it should be good now :-)

Thanks @lelandrichardson :-)


return value as an array in Single item select field

I have a use case where the same select field will be used as both single and multiple selection. I mean i have a field called client_name and role.  Role can be admin, client etc. If the user selects the role as admin, he/she can select multiple client_name thus in this case i need multiple selection Select component but if user selects client as a role then the Select component should be single one for selecting the client_name because user can only select one client. Now here is the problem, when user role is client then the client_name will be a string because this is a single item Select component and now if i select the role as admin, i will get an error because client_name is in string form and Multiple Select field will expect value to be an array not string. So if i can able to pass value as an array for single Select field too then there wont be any problem. For single select field the value will be like
client_name: [2] if i select third client then it will be client_name: [3] not client_name: [2, 3] but if it was multiple then it would be client_name: [2, 3].
How can i make my value array even in Single multiple Select component?

How can i make my value array even in Single multiple Select component?

You can't. You can dynamically convert it to a single value and set the multiple property based on the input typr you have.


tests(migrate): fix use of new syntax

Just need to resolve the following and then #18 can be rebased and merged.
Rector\Core\Exception\ShouldNotHappenException: Class "" in "getRectorClass()" method must be type of "Rector\Core\Contract\Rector\PhpRectorInterface"

Now we are back to having a test suite that runs, but fails because of a bug which we haven't fixed yet 👍
Thanks @owenvoke


Pass options to tmux through an enviroment variable

This PR enable passing option parameters to tmux with a TMUX_OPTS environment variable.
Motivation
When you're running a linux machine if you use vim with a fancy color scheme like molokai, it's a known problem that you need to tell tmux to assume that the terminal it's running in supports 256 colors. I solve this passing the -2 flag when tmux creates or attach a session.

@alfredormz good catch. The PR looks great! Thanks :)


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-target_859c369a-13d9-422a-a92e-845c7986f5c4/pull/1 is merged into live branch.
Auto archive content to https://github.com/opstest2/docs-archive-test-target_859c369a-13d9-422a-a92e-845c7986f5c4.git

Docs Build status updates of commit d62eba4:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error-RuningBuildFailed] Some unexpected errors happened when running build, please open a ticket in https://aka.ms/SiteHelp and include the error report for our team to troubleshoot

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel