build/orca: migrate ORCA protos to cncf/udpa with skeleton build system.

The build system in this PR is largely derived from a minified variant of https://github.com/envoyproxy/envoy/tree/master/api/bazel.
The dependency management is intended to support a minimal standalone build of the UDPA protos and their tests. Consuming projects (e.g. Envoy) will continue to manage dependencies, e.g. gRPC, protobuf, PGV, independently of the repository macros in this PR; over time we may be able to factor out some common concerns.
Signed-off-by: Harvey Tuch<EMAIL_ADDRESS>

@mattklein123 @lizan for review. At a bare minimum, we need to add CI to this PR (or an immediate followup) and also check/fix_format. We had to do a lot of forking from Envoy to make this work with Nighthawk, if you have any other better ideas (a common utilities repo?) I'm all ears.
I have an Envoy branch with the WiP for integrating at https://github.com/htuch/envoy/tree/cncf-udap.

We had to do a lot of forking from Envoy to make this work with Nighthawk, if you have any other better ideas (a common utilities repo?) I'm all ears.

I think this came up for envoy-mobile also. I think we should definitely look into doing a common utility repo for shared build tools. WDYT?

Basically everything is copied and slimmed down. Maybe an efficient way to do this is to download and just diff individual files against the api/ equivalent in envoyproxy/envoy.
Re: shared repo. Agree. What I can do is work on that as a next step; we can basically do this PR to get a baseline. Then a CI PR to get some basic tests happening and followup with a format PR that introduces the script from a common repo.


Added a check for incorrect username/password

This seems dumb, but a lot of people got confused by this error enough that it became an issue:
https://github.com/li-xinyang/OS_FrontendMaster-dl/issues/75
There was no clear indication if you entered an incorrect username/password, it just proceeded to run the downloader and led to an error that made no sense.
This simply sends a message and closes the program if you entered the wrong username/password.
Should save people hours of frustration in the future.

I use 1Password so i never encounter this issue 🤦♂


Creation of trees.yml

Missing 1 tag for referencing a link to a picture of the tree (which OSM tag can be used ?)

Hi @gleberre ,
normally, we just updated the spec today. The tag "icon" shall be used.
Please take a look at the complete specification in the repository.
Let us know if anything is missing :)

Will close as this PR is now legacy compared to the latest API version.


Improvements and bugs

[x] After Sign Up, clicking on the View Ballot button allows us to see an empty ballot before the rounds start.
[x] There are multiple mentions and links related to “Lists”, MACI RPGF doesn’t support lists so we should remove them.
[x] Project approvals, and adding voters, should be instant not 10 minutes.
[x] Project applications are bugged, take a lot of time, and sometimes appear as approved then a few seconds disappears.
[x] As a voter, am I supposed to see the “Import CSV”, “Export CSV” and “View lists” functions?

[x] As a voter, being asked to connect my wallet, then sign up by connecting my wallet again to view my ballot, and then to sign a message via my wallet - these 3 transactions seem to fall under the same mental category of needing to connect to my wallet and thus feel repetitive. If there is no way we can make this into a 1 or 2-step process, then we could explain why a voter would have to go through these 3 steps.

Another solution is changing the name of the sign up button.

remove import csv / export csv by PR #157

@crisgarner I believe the 10 minutes message is just a warning in case that EAS's graph is not updated straight away, so probably we can just change the copy to inform of that (cc @kittybest )

Also just to note, some of these issues are being solved on the new design

close by #218 and #137


Font issue?

The header of the image is displaying like this for me:

This is in Chrome 46 (the current stable version), although I'm on pretty shitty hotel wifi right now.

Same here on Firefox Nightly (45).

The font is Fira Sans but I would want to embed it in the SVG or at least see if the default could be a sans font.


indexes

How would I go about creating indexes? I naively tried to put a json doc in a dir called "_index", it's not picked up. I tried to pushdocs that dir, but it failed on a missing _rev key while attempting to GET it as a regular doc.

A colleague figured it out. Indexes are stored in a design document. So you can add a design doc just as you would normally in couchapp, in the _design dir. Name it Indexes:
_design\Indexes\language
query

_design\Indexes\views.json
{
  "my-index": {
    "map": {
      "fields": {
        "exampleProperty": "desc"
      },
      "partial_filter_selector": {}
    },
    "reduce": "_count",
    "options": {
      "def": {
        "fields": [
          "exampleProperty"
        ]
      }
    }
  }
}


Remove  tags from table

The <p> tags make the text not centered on each cell, as seen in https://github.com/artsy/eigen/pull/1185#issuecomment-186255794
This was a side effect of https://github.com/danger/danger/pull/65

I agree, but I think we should only do that if it's a single line, complex :D


Write a Dart program to merge two strings

Description
Write a Dart program to merge two strings
Input  : ABC DEF
Output : ABCDEF

How to contribute

Save the solution in merge_two_strings.dart file
Add merge_two_strings.dart file in program/merge-two-strings folder

!assign


SearchQuery Granularity Error

When I use a granularity of minute in my search query, it still returns the data on an hourly granularity.
"granularity": "minute"
That should not be the expected behavior I assume. Is there a solution?

Can you share the ingestion spec and the query. Have you set the queryGranularity in the ingestion spec to be HOUR ?


Something works wrong

It cuts all after svg embed.
Before:

After:

Gulp:

It tries to find closing tag. If i use paired tag (svg or [omg] img as a paired tag), all works fine.

Hi!
Thank you for reporting this issue. The behaviour you observe is indeed the result of feeding the non-closed <img> tag to htmlparser2 with the xmlMode option deployed. We use xmlMode in gulp-embed-svg in order to parse various SVG attributes, tags and properties correctly.
Once you adjust your image tag to close, your code will work, e.g. change line 36 in your source file to
<img src="./img/icons/icon.svg" alt="" /> <!-- NOTICE THE closing slash -->

your code should work fine.
I have, created a pull request introducing unit tests to verify that self-closing and non-closing img tags work.. Please go ahead and check it out.


Write bigwig to BytesIO object

Hi Devon,
I have to write many bigwig files to disk, and I thought it is better to write only one tar.gz file instead of many single bigwigs. My idea to implement this is to write the bigwig data to a BytesIO object and save this to the tar.gz. With text files, I implemented a similar solution successfully.
with tarfile.open(args.outFileName, "w:gz") as tar:
    for i, file_content in enumerate(thread_data):

                for j, file_list in enumerate(file_content):

                    ##### Test if writing a regular bigwig works and it did
                    # bw = pyBigWig.open(file_name_list[i][j], 'w')
                    # # set big wig header
                    # bw.addHeader(file_list[0])
                    # bw.addEntries(file_list[1], file_list[2], ends=file_list[3], values=file_list[4])
                    # bw.close()

                    tar_info = tarfile.TarInfo(name=file_name_list[i][j])
                    tar_info.mtime = time.time()
                    file = io.BytesIO()
                    bw = pyBigWig.open(file, 'w')
                    bw.addHeader(file_list[0])
                    bw.addEntries(file_list[1], file_list[2], ends=file_list[3], values=file_list[4])
                    bw.close()
                    tar_info.size = file.getbuffer().nbytes
                    tar.addfile(tarinfo=tar_info, fileobj=file)

I get now the error that pyBigWig can't open the BytesIO object to write to:
Traceback (most recent call last):
  File "/home/wolffj/miniconda3/envs/hicexplorer_py38/bin/chicExportData", line 7, in <module>
    main()
  File "/home/wolffj/miniconda3/envs/hicexplorer_py38/lib/python3.8/site-packages/hicexplorer/chicExportData.py", line 442, in main
    bw = pyBigWig.open(file, 'w')
RuntimeError: Received an error during file opening!

Is it in general not possible to use BytesIO for this? Or am I doing anything obviously wrong? Any help is appreciated.
Best,
Joachim

Probably pyBigWig needs to be able to seek in the stream to update the header or so. A gzip stream is not seekable during write. It might work with a plain tar file as that one should be seekable.
You could also try a zip file with compression=ZIP_STORED. : https://docs.python.org/3/library/zipfile.html . This should store the bigWig files uncompressed (they have compression of their own, so it does not make sense to try to compress them again). The advantage of a zip file is, that it has a file/dir index, so it should be faster to list files from it than with tar (as you have to read through the whole tar file to find all file names).

Thanks for your reply.

Probably pyBigWig needs to be able to seek in the stream to update the header or so. A gzip stream is not seekable during write. It might work with a plain tar file as that one should be seekable.

I am writing to BytesIO object, the compression or the tar itself matter only in the line tar.addfile(tarinfo=tar_info, fileobj=file). However, the error happens earlier. The problem seems to me that pyBigWig expects a real file, and that is exactly what I try to avoid. I don't want to have thousands of bigwig files written to disk, then merge them together to a tar, and then delete the bigwigs on the disk again.

I see, thanks @dpryan79.
To document my solution: I create a temporary directory, write to it the files, and put the directory to a tar. Afterward, I delete the temporary directory.


here is some usage examples

a general iterator script that takes a url_prefix with asterisk and outputs to an html directory
gist
usage:

python fetch.py 'https://open.spotify.com/*'

a spotify scraper using common crawl as datasource
gist
usage:

python download_spotify.py >> data.json

I will do #12 based on this.

@wumpus thanx for a great repo!


Unable to browse Collection in part registry

When browsing part registry, I am unable to filter Collection. The only option I am given is to browse from All Collections from the iGem SBOL Registry.

The way this works is like a file tree.  Namely, if you select igem_collection, you can then select to go back to All Collections.  If within, igem, you select categories, you then have the option to go back to igem_collection or all collections.  It is just like the directory selection you have in a file browser on a Mac.  So, it is not so much as filter by Collection but indicates which Collection you are looking at.  Does this make sense?
Chris

On Apr 11, 2017, at 5:37 PM, Tramy Nguyen<EMAIL_ADDRESS>wrote:
When browsing part registry, I am unable to filter Collection. The only option I am given is to browse from All Collections from the iGem SBOL Registry.
https://cloud.githubusercontent.com/assets/7537729/24920000/d5074278-1ea2-11e7-8f26-5b58e9e665b9.png
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/SynBioDex/SBOLDesigner/issues/149, or mute the thread https://github.com/notifications/unsubscribe-auth/ADWD9w63mzM-OKAUGWLFor-UrXHlq6doks5ru6w_gaJpZM4M6Wjm.

I am closing the issue.


RabbitMQ Auth

Currently, the auth token has to be prepended to the address by the user. Let's put the pieces together behind the scenes, instead. Easy peasy.

Note to self: Use @briedel's pika.connection.ConnectionParameters example from Slack thread


adding new makefile with saner help, smarter docker usage and prettier colours

try it with make build or make docker build

Ignore this for now, some minor gripes with it, will reopen later


A bucket of issues with OptionButton (Dropdown)

(Godot build from 20.09.16)
Deleting Items
If you select an item and delete the same item, OptionButton does not change the selected text visible.
If you use the clear() function, selected id turns to -1 and there won't be any text visible; however, if you delete the last item without using clear(), selected item is still 0.
A possible solution, If you are deleting last item is to set selected id to -1
Another possibility would be to add an extra optional bool in remove_item() where false would be to return to the first item (if any) or -1 if it was the last item. True could be to move to the next item in selection (i.e. you delete ID 3, you select the new ID at 3).
Currently, when there are more items; simply deleting selected item will just

Selecting previously deleted ID
Currently when you try to select another item which have the same ID like the deleted item, it wont allow you to select it.

Delete item#1 with ID 3
Item#2 takes the place if ID3 after item#1 is gone
Attempting to select item#2 does not work.

Adding an Item
After deleting the last item (having selected id at 0, problem with deletion), adding a new item does not automatically select the first item.
If you fix the problem with deletion, the selected_id should by default be -1 (when there are no previous item added) - which should automatically set selected to 0 when the first item is added.
(Of course you should not automatically select the LAST item if there are previous items available)

Cannot set selected to none
You are unable to set selected to -1 (none). You can use .select(id) to choose any existing ID, but we should definitely implement the option to set to -1 (none), which also is the same selected id you get when you use .clear().

OptionButton is a misleading name
Godot would benefit from renaming OptionButton to DropdownButton or something similar that gives you the perfect description of what it is. :)

Here is an OptionButton demo I made that should help you visualize the issues.
optionbutton_demo.zip

Referencing #3188 since this issue is related to the PopupMenu API which is likely to be refactored for 3.0. That issue does not mention your problems though.

Is there a reason why OptionButton.get_selected_id() returns always -1
I have to use OptionButton.selected

Testing with a Godot 3-compatible remake of above demo: 6558_Demo2.zip
Testing on linux mint 18.3 with Godot 3.2.3.beta1
Deleting selected item does not update selection/text: still true
Deleting last item does not set selection=-1: still true
Selecting previously deleted ID: can't reproduce (maybe I misunderstand it)
New item unselected after deleting all (and selection=0): still true
Can't set selected to none (-1): still true
Get_selected_id() returns -1: not true (but returns 0 when selected=-1, though docs suggest this is intentional/known)

Several of these listed issues have been fixed in #57330. It would be good to review the list and see what's left - possibly moving them to dedicated proposals or bug reports.


[WIP] Support ignoring 404s when user is not found in GitHub instance

This PR introduces a new configuration option, ignore_not_found, which allows entitlements to ignore HTTP 404 errors when trying to perform organization and team membership operations on a GitHub instance where the user doesn't exist.
Sometimes this option may be desirable when GitHub instance users are ultimately provisioned by other entitlements plugins and there is a race condition where this plugin may try to add a member before they exist.
For example, users may be provisioned in a GitHub instance via Enterprise Managed Users backed by an IdP which is also fed by entitlements. If the SCIM requests don't complete before this plugin is executed, the member will not exist in the instance and the run will fail.  Since entitlements is designed to be run often, it may be acceptable to allow an "eventually consistent" state where entitlements would add the user the next time it runs once it's provisioned by the IdP.

I think that this is the only choice you have if you are sick and tired of these race conditions causing an entitlements deployment to fail.

Since entitlements is designed to be run often, it may be acceptable to allow an "eventually consistent" state where entitlements would add the user the next time it runs once it's provisioned by the IdP.

Entitlements may not always be designed this way. At our recent offsite, we discussed changing Entitlements to naturally be an eventually consistent system. In which case, this problem you describe would be okay - Entitlements would naturally handle that.
Entitlements isn't like that today.  What will you do in the case where the user gets "stuck" - meaning that it continually does not get created? How would today's Entitlements system notice that since it has no knowledge of prior runs?  It doesn't have the capacity to know "hey: I've tried adding this person like 6 times now, what gives?".
How can we handle that scenario such that a human eventually gets notified?

It's not perfect, but the "stuck" cases should be very rare. I'd expect the user to notice their access isn't working as expected and we'd have this fail condition well documented.

Confirmed that the methods to remove organization membership and remove organization team membership do not raise Oktokit::NotFound when the user is not found.


⚠ Samsung has degraded performance

In dc92fb4, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2436 ms

Resolved: Samsung performance has improved in 3346e73.


ouroboros-consensus-mock test case failrure with chainsync timeouts.

Adding timeouts in the TokNext TokMustReply state in chainsync causes convergence testcases in ouroboros-consensus-mock to fail.
Example output for Praos:
   simple convergence:                             FAIL (3.34s)
     *** Failed! Exception: 'FailureException ExceptionInLinkedThread "ThreadId 3" (MiniProtocolFatalException {mpfeType = ProtocolLimitFailure, mpfeExn = ExceededTimeLimit, mpfeClient = CoreNodeId 0, mpfeServer = CoreNodeId 1})' (after 3 tests and 1 shrink):
     Seed {getSeed =<PHONE_NUMBER>1100352152,3292382709802647816,5962691940951034604,8685987696475692627,13351365639120304573)}
     NodeJoinPlan (fromList [(CoreNodeId 0,SlotNo {unSlotNo = 31}),(CoreNodeId 1,SlotNo {unSlotNo = 33}),(CoreNodeId 2,SlotNo {unSlotNo = 33})])
     NodeTopology (fromList [(CoreNodeId 0,fromList []),(CoreNodeId 1,fromList [CoreNodeId 0]),(CoreNodeId 2,fromList [CoreNodeId 0,CoreNodeId 1])])
     Exception thrown while showing test case: 'FailureException ExceptionInLinkedThread "ThreadId 3" (MiniProtocolFatalException {mpfeType = ProtocolLimitFailure, mpfeExn = ExceededTimeLimit, mpfeClient = CoreNodeId 0, mpfeServer = CoreNodeId 1})'
     Exception thrown while showing test case: 'FailureException ExceptionInLinkedThread "ThreadId 3" (MiniProtocolFatalException {mpfeType = ProtocolLimitFailure, mpfeExn = ExceededTimeLimit, mpfeClient = CoreNodeId 0, mpfeServer = CoreNodeId 1})'
     nodeJoinPlan: [(c0,31),(c1,33),(c2,33)]
     nodeRestarts: []
     nodeTopology: meshNodeTopology (NumCoreNodes 3)
     Exception thrown while showing test case: 'FailureException ExceptionInLinkedThread "ThreadId 3" (MiniProtocolFatalException {mpfeType = ProtocolLimitFailure, mpfeExn = ExceededTimeLimit, mpfeClient = CoreNodeId 0, mpfeServer = CoreNodeId 1})'
     mbSchedule: Nothing
     Exception thrown while showing test case: 'FailureException ExceptionInLinkedThread "ThreadId 3" (MiniProtocolFatalException {mpfeType = ProtocolLimitFailure, mpfeExn = ExceededTimeLimit, mpfeClient = CoreNodeId 0, mpfeServer = CoreNodeId 1})'
     Exception thrown while showing test case: 'FailureException ExceptionInLinkedThread "ThreadId 3" (MiniProtocolFatalException {mpfeType = ProtocolLimitFailure, mpfeExn = ExceededTimeLimit, mpfeClient = CoreNodeId 0, mpfeServer = CoreNodeId 1})'
     Exception thrown while showing test case: 'FailureException ExceptionInLinkedThread "ThreadId 3" (MiniProtocolFatalException {mpfeType = ProtocolLimitFailure, mpfeExn = ExceededTimeLimit, mpfeClient = CoreNodeId 0, mpfeServer = CoreNodeId 1})'
     Exception thrown while showing test case: 'FailureException ExceptionInLinkedThread "ThreadId 3" (MiniProtocolFatalException {mpfeType = ProtocolLimitFailure, mpfeExn = ExceededTimeLimit, mpfeClient = CoreNodeId 0, mpfeServer = CoreNodeId 1})'
     Use --quickcheck-replay=3927 to reproduce.

7 out of 15 tests failed (170.86s)

Presuming we want timeouts to occur during the tests, we'll need to add them to the handler in Test.ThreadNet.Network that recognizes non-fatal exceptions.

That Nothing is there to make sure that the test case doesn't fail during test.

Closing this one as stale. Feel free to open if I'm wrong 🙏


Update Project Templates/Webpack

We should make a simplest possible working Webpack 2 config for Phaser and link to it from README.
https://github.com/photonstorm/phaser-ce/tree/master/resources/Project Templates/Webpack

If you want, you can assign that issue to me, and I'll take care for adding a bare webpack project template. We could might then remove the webpack part from readme and link to webpack project.

I'd like just a simple template with webpack.config.js and no extra loaders or plugins, and with comments in the config to show what it's doing and why.
You can definitely add a Webpack/Typescript template too if you like.

Also here the question: Can I add a package.json for that project template? Then it might be ready to use from start.

Sure.


:bug: Autoreset issues on RPi

tested ubuntu v2.4.0-alpha3 on RPi4

[ ] process seems to finish but it doesn't auto reboot neither returns to a terminal
[ ] GRUB characters are broken afterwards

Maybe related? https://github.com/kairos-io/kairos/issues/1723

I saw broken characters from the start, the issue seems to be the change between gftxterm and normal, which produces 2 alternating outputs via the same terminal.
Autoreset is correct as the kairos-reset service does not have the reboot flag or the unattended flag.

For the autoreset: https://github.com/kairos-io/packages/pull/419

autoreset is now fixed by the patch above.
Grub characters indeed are broken, looks like some files are missing when doing the reset, to be copied, modules maybe as this are the only ones copied over:
https://github.com/kairos-io/kairos-agent/blob/main/pkg/utils/grub.go#L137
I saw some messages about files missing when grub loads, but its impossible to capture the moment as it gets erased...

grub> loadfont unicode
error: ../../grub-core/fs/fshelp.c:257:file `/grub2/fonts/unicode.pf2' not
found.
grub>

we missing copying that into the fonts dir (fonts dir doesnt even exist)

Needs confirmation

I built an image from master (commit sha: 91b652b3)
I run kairos-agent --debug reset and I got this error:

INFO[2023-09-14T09:37:02Z] Unmounting disk partitions
DEBU[2023-09-14T09:37:02Z] Not unmounting partition, /run/cos/state doesn't look like mountpoint
DEBU[2023-09-14T09:37:02Z] Not unmounting partition, /run/cos/persistent doesn't look like mountpoint
DEBU[2023-09-14T09:37:02Z] Not unmounting partition, /run/cos/oem doesn't look like mountpoint
DEBU[2023-09-14T09:37:02Z] Not unmounting partition, /run/cos/efi doesn't look like mountpoint
INFO[2023-09-14T09:37:02Z] Formatting 'state' partition
DEBU[2023-09-14T09:37:02Z] Running cmd: 'mkfs.ext4 -L COS_STATE /dev/mmcblk0p2'
1 error occurred:
        * exit status 1

I run the failed command manually and it seems that there is prompt that makes it fail:

root@cos-recovery:/home/kairos# mkfs.ext4 -L COS_STATE /dev/mmcblk0p2
mke2fs 1.47.0 (5-Feb-2023)
/dev/mmcblk0p2 contains a ext4 file system labelled 'COS_STATE'
        last mounted on /run/initramfs/cos-state on Fri Aug 18 18:15:41 2023
Proceed anyway? (y,N)

I answered y and let it finish
I run kairos-agent --debug reset again and this time it went through
I rebooted

fonts in grub looks fine.
So the font issue is gone but we have another issue with mkfs. We probably need to pass some flag to avoid prompts.

There is the -F flag for mkfs.ext4 that skips prompts. We should probably use it.

That is kind of weird... it should affect x86 as well unless state is somehow
different on RPI....

Looks like it's mounted on s different place to what reset tries to unmount...

output:
INFO[2023-09-14T10:07:29Z] Unmounting disk partitions
DEBU[2023-09-14T10:07:29Z] Not unmounting partition, /run/cos/state doesn't look like mountpoint
DEBU[2023-09-14T10:07:29Z] Not unmounting partition, /run/cos/persistent doesn't look like mountpoint
DEBU[2023-09-14T10:07:29Z] Not unmounting partition, /run/cos/oem doesn't look like mountpoint
DEBU[2023-09-14T10:07:29Z] Not unmounting partition, /run/cos/efi doesn't look like mountpoint
INFO[2023-09-14T10:07:29Z] Formatting 'state' partition
DEBU[2023-09-14T10:07:29Z] Running cmd: 'mkfs.ext4 -L COS_STATE /dev/mmcblk0p2'
1 error occurred:
        * exit status 1

mounts:
kairos@cos-recovery:~$ lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
loop0         7:0    0  2.6G  1 loop /
mmcblk0     179:0    0 59.7G  0 disk
├─mmcblk0p1 179:1    0   96M  0 part
├─mmcblk0p2 179:2    0  7.9G  0 part
├─mmcblk0p3 179:3    0  5.3G  0 part /run/initramfs/cos-state
├─mmcblk0p4 179:4    0   64M  0 part /oem
└─mmcblk0p5 179:5    0   64M  0 part

Running sudo su before kairos-agent reset makes it work. I'll try once with just sudo . I think that one failed once but I need to re-try to be sure.

sudo kairos-agent reset also works. It was simple after all. I just needed permissions. It would be nice if we showed a better message though. I will check if that's possible.

SO I guess this is a closed issue, yay!

For better error messages: https://github.com/kairos-io/kairos-agent/pull/145


DX questions

I'm familiar with React/Vue and tried to develop a fullstack app using Dioxus recently. idk if the following blocker I've met is general enough but I'd like to bring them out here:

fullstack app conflicts: SSR + Router can conflict with static resources (e.g., public/some.js) in some cases
insufficient hooks documentation: I tried to find sth. like useCallback and component lifecycle, but after successfully finding them (usecallback & onload), there's no doc about their usage and possible gotchas
starter/boilerplate template inconsistency: I tried to run the fullstack/ssr examples under the corresponding workspaces but some of them cannot compile on my m2 mac
DX(dev experience): IMHO the point of fullstack is to make seamless FE and BE integrations, but rn there's no watch cmd to spontaneously build web and server sides, and the socket sometimes close unexpectedly causing the browser tab to hang, so I have to 0) compile Tailwind 1) build the web 2) build the server 3) open a new tab each time when I make a subtle change in the UI

disclaimer: I'm not a professional FE engineer -- specialized at database...I want to get some advice on how to ramp up with Dioxus and may be contributing to it in the future, but rn there are so many blockers.

I'm familiar with React/Vue and tried to develop a fullstack app using Dioxus recently. idk if the following blocker I've met is general enough but I'd like to bring them out here:

fullstack app conflicts: SSR + Router can conflict with static resources (e.g., public/some.js) in some cases

I haven't encountered that issue before. If you are serving two resources on the exact same route they may conflict. There isn't much dioxus can do about that other than log a warning. If you are getting conflicts with different routes like a page at /hello conflicting with a resource at /public/script.js that sounds like a bug. More details in a separate issue would be helpful to track down the source of the problem.
If you are linking to an asset in your cargo.toml, you might be running into https://github.com/DioxusLabs/dioxus/issues/1171. The git version of dioxus provides a better way to link to local assets with a macro that will automatically be picked up and optimized by the CLI without that issue. Here is an example

insufficient hooks documentation: I tried to find sth. like useCallback and component lifecycle, but after successfully finding them (usecallback & onload), there's no doc about their usage and possible gotchas

There are some areas that should be documented more. If you notice specific functions/structs that are not documented or are missing examples, an issue for those specific functions/structs would be very helpful for tracking. Some docs are documented in the doc.rs/inline documentation that are not included in the guide (like the on_destroy hook).

starter/boilerplate template inconsistency: I tried to run the fullstack/ssr examples under the corresponding workspaces but some of them cannot compile on my m2 mac

If you are trying to run the examples that currently exist in the fullstack folder with dioxus 0.4 they may not work because they are checked against the git version of dioxus. We also recently switched to checking all features in examples to make sure the ssr and web features are working

DX(dev experience): IMHO the point of fullstack is to make seamless FE and BE integrations, but rn there's no watch cmd to spontaneously build web and server sides, and the socket sometimes close unexpectedly causing the browser tab to hang, so I have to 0) compile Tailwind 1) build the web 2) build the server 3) open a new tab each time when I make a subtle change in the UI

The first issue was addressed in #1334 and is supported in the git version of the CLI (note the ssr feature has been renamed to server so some other changes may be needed with the new CLI)
The second issue was fixed in #1925


Drop support for EOL Pythons

Python 2.4, 2.5, 2.6, 3.2 and 3.3 are end of life. They are no longer receiving bug fixes, including for security issues. These Pythons went EOL on:
Python 2.6: 2013-10-29
Python 3.2: 2016-02-20
Python 3.3: 2017-09-29
For additional details on supported Python versions, see:
https://devguide.python.org/#status-of-python-branches
Removing support for EOL Pythons will reduce testing and maintenance resources.
Using pypinfo, here are the download statistics of the project for the last 30 days, showing limited downloads from EOL Pythons:

python_version
percent
download_count

2.7
90.33%
7,975,885

3.6
4.95%
437,261

3.5
2.99%
263,637

3.4
1.02%
89,723

2.6
0.69%
60,511

3.7
0.02%
2,024

3.3
0.00%
441

3.2
0.00%
38

3.8
0.00%
9

None
0.00%
2

By removing support for older Pythons, can remove or update the following workarounds and code:

Built-in function bin() is always available.
Built-in function callable() is always available.
Built-in function all() is always available.
The collections.OrderedDict class is always available.
The datetime.strptime() method is always available.
The platform module is always available.
The string.partition() method is always available.
The NullHandler class is always available.
The method __trunc__ is always available.
Can use set literals.
Updated unittest is always available. The unittest2 module is unnecessary.

Users on older versions of Python can continue to download, install, and use older versions of the library that continue to have support for older Pythons.

Codecov Report

Merging #131 into master will increase coverage by 0.63%.
The diff coverage is 88.23%.

@@            Coverage Diff             @@
##           master     #131      +/-   ##
==========================================
+ Coverage   85.77%   86.41%   +0.63%
==========================================
  Files          29       25       -4
  Lines        3985     3915      -70
==========================================
- Hits         3418     3383      -35
+ Misses        567      532      -35

Impacted Files
Coverage Δ

pyasn1/debug.py
93.05% <ø> (-0.46%)
:arrow_down:

pyasn1/type/base.py
87.93% <100%> (-0.06%)
:arrow_down:

pyasn1/type/univ.py
83.83% <100%> (+0.35%)
:arrow_up:

pyasn1/codec/native/encoder.py
91.11% <100%> (-0.29%)
:arrow_down:

pyasn1/compat/integer.py
96.92% <100%> (+2.8%)
:arrow_up:

pyasn1/__init__.py
75% <50%> (ø)
:arrow_up:

pyasn1/type/useful.py
83.15% <80%> (-0.35%)
:arrow_down:

Continue to review full report at Codecov.

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

I have rebased to resolve merge conflicts.

Thank you for the patch!
I generally agree with your proposal to drop legacy stuff from master and probably keep supporting
current code to some degree in a branch.
My only concern is if we should drop 2.6 support right away? Would it burden us and clog the code if we keep master compatible with 2.6 at the time being?
WDYT?

Python 2.6 has been EOL since 2013-10-29, nearly five years. IMO, that is sufficient time for projects to migrate to a newer Python that plan to. Those projects that do not wish to migrate migrate, they can continue to pip install an older version of pyasn1. Or, assuming they're using a distro supplied Python, they can also use a distro supplied pyasn1.
Keeping Python 2.6 support will mean that some workarounds will need to be restored, For example, OrderedDict, NullHandler, set literals, and unittest2. So, my preference would be to continue with only currently supported Python versions.
That said, you're the maintainer of the project and am happy to comply with your wishes. If you still prefer to keep 2.6 support, please let me know and I'll restore the necessary workarounds. If that is your decision, I still think dropping all but 2.6 is a worthwhile improvement.
Cheers.

Sounds fine to me. Thanks!

I have rebased and resolved merge conflicts :slightly_smiling_face:

Thank you and sorry again for long delay!

Please see https://github.com/etingof/pyasn1/pull/182 to add 3.8 and remove EOL 3.4.


[Runtime] Use malloc_type_posix_memalign().

We can't use malloc_type_aligned_alloc() because aligned_alloc() requires that size be a multiple of alignment, which isn't something we expect here.
rdar://119137861

@swift-ci Please smoke test

@swift-ci Please smoke test macOS platform

@swift-ci Please smoke test

@swift-ci Please smoke test linux platform

@swift-ci Please smoke test Linux platform

@swift-ci Please smoke test Linux platform

This looks fine to me, but I'm not a swift reviewer so I won't click any of the review buttons :D

@swift-ci Please smoke test linux platform


@azure/storage-blob isn't aborting timer on beginCopyFromURL

Package Name: @azure/storage-blob
Package Version: ^12.8.0
Operating system: Win 10 internal
[ ] nodejs v14.17.1

version:

[ ] browser

name/version:

[ ] typescript

version:

Is the bug related to documentation in

[ ] README.md
[ ] source code documentation
[ ] SDK API docs on https://docs.microsoft.com

Describe the bug
Code should complete instead of waiting from 15 second detail in HTTP core.
To Reproduce
Steps to reproduce the behavior:

Create storage resource, get connection string
Run code

const { BlobServiceClient } = require("@azure/storage-blob");

const blobAccountConnectionString = "";
const blobAccountDirectoryName = "test";
const publicUrlForImageOrFile = "https://github.com/Azure/azure-sdk-for-js/blob/main/README.md";
const fileName = "readme.md";

async function copy(url) {

  // get container client
  const blobServiceClient = BlobServiceClient.fromConnectionString(blobAccountConnectionString);

  // get container's directory client
  const containerClient = blobServiceClient.getContainerClient(blobAccountDirectoryName);

  // create container if it doesn't already exist
  await containerClient.createIfNotExists();

  await (

    await containerClient
      .getBlobClient(fileName)
      .beginCopyFromURL(url)

  ).pollUntilDone();
}

copy(publicUrlForImageOrFile)
  .then(() =>
    console.log("done")
  ).catch((ex) =>
    console.log(ex)
  );

Expected behavior
Delay timer is aborted.
Screenshots
Additional context
@chradek used https://www.npmjs.com/package/wtfnode and setLogLevel to debug.

I looked into this some more, and the delay is coming from core-lro/BlobBeginCopyFromUrlPoller.
core-lro calls startPolling when pollUntilDone is called:
https://github.com/Azure/azure-sdk-for-js/blob/ff2f53c82274b42b5d2a0e1d66b87e9d1866b53d/sdk/core/core-lro/src/poller.ts#L293-L301
Note that it calls this.poll() and then this.delay(). Since we aren't checking the state of the poller between these 2 method calls, we always end up calling this.delay() even if the poller is completed.
I did a crude test where I added the state check between these 2 calls and in the above sample this allows the process to exit immediately after printing "done".
while (!this.isStopped() && !this.isDone()) {
  await this.poll();
  if (!this.isDone() && !this.isStopped()) {
    await this.delay();
  }
}

I believe this should change should be made to @azure/core-lro to check the state of the poller before calling delay.

@chradek Thank you for figuring this out.


Create UI and UX plans for the webshop browser and authentication related functionalities

The second release new features are the authentication related functionalities (login, register) and the webshop browsing functionalities(search page, recommended articles page). To ensure that these functionalities have good UI and UX, with Figma proper design should be made.
The application's UI and UX should follow the principles of material 3 design.
The application's icon should also be designed.

Closing, because I broke this up into smaller issues (38, 39, 40).


rpng_chunk_remove_from_memory corruipts png sometimes

if (exclusive)
		{
			newbuf = rpng_chunk_remove_from_memory(buffer, "tEXt", &fsize);
			free(buffer);
			buffer = rpng_chunk_write_from_memory(newbuf, chunk, &newfsize);
			free(newbuf);
			fwrite(buffer, sizeof(char), newfsize, output);
			free(buffer);
		}

here is a snippet from my program that will remove all tEXt chunks from the png and writes a new one to it. I tested it with a png file that has a single tEXt chunk in it and it worked fine. However, if the png file has multiple tEXt chunks in it, it seems to corrupt the png file (but still viewable).
I use tweakpng to inspect the png individually.
the png files
Perhaps I did something wrong with it. If so, feel free to point it out.
Thanks.

@takase1121 thanks for reporting! I'll review it as soon as possible.

Sorry but I found the problem. It was due to my incorrect use of fopen and not related to rpng. Sorry for wasting your time, and have a good day!

@takase1121 Glad to know it was not a rpng issue! 👍😄


Install the .NET Core Hosting Bundle Link Not Working

When I visited this site for the first time, I selected my version ASP.NET Core 2.1 on the options at the left hand side. Then when I click the link: Install the .NET Core Hosting Bundle, nothing happens? So what is the link or is this the same link with ASP.NET Core 3.1 version since when ASP.NET Core 3.1 version is selected, the link is working.

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

ID: ec484002-18c1-6a0d-00de-820d56f038d3
Version Independent ID: 7903ce53-2cbb-f083-7479-c8abc30211a0
Content: Host ASP.NET Core on Windows with IIS
Content Source: aspnetcore/host-and-deploy/iis/index.md
Product: aspnet-core
Technology: aspnetcore-hostdeploy
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

Hello @willydavidjr ... Good point. Both versions of the doc use the same "permalink," and they both download the latest version of the Hosting Bundle ...
https://dotnet.microsoft.com/permalink/dotnetcore-current-windows-runtime-bundle-installer
Since (IIRC) the 3.x runtime isn't backwards compat for 2.x, that's not a good cross-link user experience. However, we don't really want to use ...
https://dotnet.microsoft.com/download/dotnet-core/thank-you/runtime-aspnetcore-2.2.8-windows-hosting-bundle-installer
... because the team will rev the version of 2.x and then the link will become stale. They might release a 2.2.9 version.
Let's go with ...
https://dotnet.microsoft.com/download/dotnet-core
... and text that says download the Hosting Bundle for the version of .NET Core in use. I'll put up a PR for something along those lines.
You can get the exact 2.1 installer here ...
https://dotnet.microsoft.com/download/dotnet-core/2.1
In the right column, you'll see the link there for "Hosting Bundle, and it goes to ...
https://dotnet.microsoft.com/download/dotnet-core/thank-you/runtime-aspnetcore-2.1.17-windows-hosting-bundle-installer
Leave this issue open. It will automatically close when the PR merges. Thanks for writing in on this.

Actually, good news. There's already an "earlier version" section. I need to fix the text tho just a hair.
https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.1#earlier-versions-of-the-installer-2

Actually, good news. There's already an "earlier version" section. I need to fix the text tho just a hair.
https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.1#earlier-versions-of-the-installer-2

Thanks for the assistance. I was able to download it now. :thumbsup:


Remove "Migrate redux to flow" page and add "Migrate webapp to typescript" page

Summary
This PR explains:

the purpose of this campaign
relevant channels on community
how to find and claim a ticket
advice on how to migrate an existing React component to Typescript

I used the "Migrate to Flow" page as a template for this new page.
Ticket Link
Fixes https://github.com/mattermost/mattermost-developer-documentation/issues/633

Looks good @mickmister.
I'm wondering if we should add a couple notes for things I've noticed in recent TS conversion PRs, for example:

Avoid use of the any type except in test files. The components themselves should be as well-defined as possible.
Most objects we used are typed in the mattermost-redux library if you can't find a type you're looking for.

If I think of any more I'll comment here.

@justinegeffen Thanks for the proofreading the PR :+1: I agree with mostly all of the suggestions, and have answered all of your questions for discussion.


data: Mark release descriptions as untranslatable

GNOME automatically excludes release descriptions on Damned Lies (GNOME Translation Platform). It's a good practice to follow the GNOME way.
This can streamline the translation process, allowing translators to focus their efforts on more critical and user-facing aspects of the application.
Also update the POT file.

Hey @sabriunal! Thank you for mentioning that. My experience comes from other stores like mobile and Windows which provide a way to supply translated release notes.
While I do not fully agree with GNOME's way in every case, it's not a place to discuss it.
Thanks for your contribution!


BungeeCord 0.1.3 {uuid} placeholder not working

Hi,
we are running 0.1.3 on our BungeeCord.
online-mode: true
We wanna use this bungeeplugin to set BungeePerms groups.
This is our buycraft command:
bp user {uuid} group set vip
`[BuycraftX] Fetching all due players...
05:12:34 [INFORMATION] [BuycraftX] Fetched due players (1 found).
05:12:34 [INFORMATION] [BuycraftX] Executing commands for 1 online players...
05:12:35 [INFORMATION] [BuycraftX] Fetched 1 commands for player 'HexagonMC'.
05:12:35 [INFORMATION] [BuycraftX] Dispatching command 'bp user {uuid} group set vip' for player 'HexagonMC'.
05:12:35 [INFORMATION] CONSOLE executed command: /bp user {uuid} group set vip
05:12:35 [INFORMATION] The player {uuid} does not exist!
`
Clearly BungeePerms is saying that the user {uuid} is does not exist. So the plugin is not parsing the uuid correctly.
{name} does workj correctly
If using the command manually in the bungee console it is working:
`bp user 12af1a97-36df-4bb6-b6ba-03205d0a867e group set vip
05:19:00 [INFORMATION] CONSOLE executed command: /bp user 12af1a97-36df-4bb6-b6ba-03205d0a867e group set vip
05:19:00 [INFORMATION] Set group vip for player HexagonMC.
`
Tried both, isBungeeCord=true and =false in Buycraft config. Both didn't work
But this config setting was broken and misnamed in the old plugin aswell.

Please post the results of /buycraft report

http://pastebin.com/gprsRggA
Hm, shop is not in onlinemode.
Never saw this before and it worked before.(Old buycraft bukkit plugin with {uuid}
Maybe I should change this and try again. This might be it.

Your shop and server online_mode settings are mismatched. BuycraftX will not be able to use UUIDs in that scenario.

I forgot the online-mode setting in the webstore itself. That explains some issues with name changes in the past, where packets are not applied when the players changed their names after buying.
Anyway, contacted the support. I think they can change it.
Thanks for the important hint:)


added possible data type conversion to timestamp array.

e.g. select cast(['2017-01-01','2017-12-31'] as array(timestamp))

@mfussenegger However, maybe there is a reason why this was not enabled.

Codecov Report

Merging #5178 into master will increase coverage by 0.06%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##             master    #5178      +/-   ##
============================================
+ Coverage      82.5%   82.56%   +0.06%
- Complexity    11038    11042       +4
============================================
  Files          1331     1331
  Lines         45100    45101       +1
  Branches       5675     5675
============================================
+ Hits          37208    37237      +29
+ Misses         5252     5221      -31
- Partials       2640     2643       +3

Impacted Files
Coverage Δ
Complexity Δ

...te/operation/scalar/cast/CastFunctionResolver.java
96.77% <100%> (+0.05%)
8 <0> (ø)
:arrow_down:

...a/io/crate/operation/join/NestedLoopOperation.java
82.85% <0%> (-11.43%)
14% <0%> (-1%)

...peration/collect/BatchIteratorCollectorBridge.java
65.78% <0%> (-10.53%)
2% <0%> (ø)

...src/main/java/io/crate/jobs/NestedLoopContext.java
57.14% <0%> (-4.77%)
6% <0%> (-1%)

...o/crate/planner/node/dql/join/NestedLoopPhase.java
74.69% <0%> (-3.62%)
20% <0%> (-2%)

...ort/executionphases/InterceptingBatchConsumer.java
78.78% <0%> (-3.04%)
10% <0%> (-1%)

...ql/src/main/java/io/crate/metadata/TableIdent.java
89.28% <0%> (-1.79%)
28% <0%> (-1%)

.../io/crate/operation/merge/BatchPagingIterator.java
74.57% <0%> (-1.7%)
18% <0%> (-1%)

...java/io/crate/protocols/postgres/SimplePortal.java
88.57% <0%> (-0.96%)
23% <0%> (ø)

.../main/java/io/crate/metadata/doc/DocTableInfo.java
83.23% <0%> (+0.57%)
55% <0%> (ø)
:arrow_down:

... and 15 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 44a2364...a456620. Read the comment docs.


Odd disconnect after reconnect?

I've been using Stanza.io and it's been great, and lately I've been working on setting up reconnection management.
I have this almost working, but there's a slight hiccup that I can seem to pin down. After disconnecting, and then reconnecting, my user is then timed out after almost exactly 60s. On disconnect, I reuse the same client instance, and just call .connect() again.
Reconnection kicks in again, and sometimes they're good to go, and sometimes they're disconnected again in 60s. This doesn't happen if I don't ever trigger a disconnect (just disabling/re-enabling wifi on my machine). All the while, I see successful acks from the server.
I'm using transport: 'websocket', and useStreamManagement:true, I'm also setting enableKeepAlive like this:
    this.client.enableKeepAlive({
      interval: 30
    });

I'm using an ejabberd backend, and I see logs like this that seem to correspond with the following disconnects:
Timed out waiting for resumption of stream for<EMAIL_ADDRESS>
Am I missing something about how to reconnect with Stanza, or is this possibly an issue with my ejabberd configuration?

@MattFoley I may have this issue but what do you mean connecting multiple time? do you need to call connect() at all?

I start out with client.connect() for setting up the socket connection, and there were cases where I was calling client.connect() twice without calling client.disconnect()


Various changes

These changes are broken out from the result of some long running tinkering I started a couple of years ago.  To help keep the review process reasonable, I am trying to strike a balance of not creating too many small PRs while also not creating overly large PRs.  Along those lines I am willing to break out or combine change sets in whatever manner is most comfortable for review, just let me know.
Changes in this PR:

Improve some error messages by including the string value of the path so it is clear what failed.
Refactored __new__, extracting a method for creating paths from other path objects to improve readability and clarity.
Cleaned up notebook for clarity and brevity, also added table of fsspec supported filesystems.
Added custom warning to make it easier to filter, also added simple function to do so.
Fixed bug causing incorrect rglob results (top level glob matches were not included).
GitHub Actions

Only run on PRs and pushes to main, to fix duplicate runs.
Don't fail fast, so that multiple failures can be reviewed after each run.
Run on "3.11" rather than "3.11-dev".

Changes split out for later:

Refactor tests and fixtures for improved isolation.

Make it easier and safer to allow for tests to be run live.
Reduce inadvertent test interaction and flakiness.
Eventually try to use UPath's great test suite directly from other fsspec filesystem projects to improve coverage.

Migrate to hatch, stop using legacy setup metadata format.
Update and consolidate dev tools and test dependencies.
New nox tasks and minor changes for convenience.
Add, configure, and apply pre-commit for consistent code formatting.

I'd be eager for any feedback or suggestions.  Thanks!

Hi @brl0,
I opened two new issues for the remaining items you mentioned in the PR text.
Cheers,
Andreas :smiley:

Hey @ap--,
Thanks so much for your timely and thorough review, I enjoy learning from feedback and really appreciate your time.
I made some changes and responded to some of your comments and would love to hear any more of your thoughts.

@ap--,
I thought I'd follow up to see if my changes were acceptable, and to see if you had any more feedback on this PR.

Thank you @brl0 ❤
This is a great improvement. I'll merge this now and will prepare a new release over the weekend.
Also thank you so much for your patience 🙇  It's been a few busy weeks over here...
When we move forward with the other improvements let's break them up into individual pieces when it makes sense to speed up the process as much as possible.


debug: clear prompt if a terminal is reused betwen debug sessions

Fixes #106743

People are wondering why this is happening now:

(canonical) VS Code 1.88 inserts ^C before running a debug configuration again. Why?
(duplicate) why does my python Debug console always print ^C before printing the actual result on pressing F5

The answer posted on the first question is good 👍


Fix readme hyper links

What this PR does / why we need it:
I just fixed links in the main readme file and also in the python jdk readme file.
Which issue(s) this PR fixes:

Fixes #211
Does this PR introduce a user-facing change?:

NONE

Checklist

[ ] Added unit test, integration, and/or e2e tests
[ ] Tested locally
[ ] Updated documentation
[ ] Update Swagger spec if the PR introduce API changes
[ ] Regenerated Golang and Python client if the PR introduce API changes

Hi @aemzayn Thanks for your contribution!


Added functionality to retry in Invoke-RestMethod and Invoke-WebRequest.

Fixes #5582
PR Summary
The change added two parameters, RetryCount and RetryIntervalSec to enable retry functionality.
When retrying a verbose message is sent out to inform the user.
PR Checklist
Note: Please mark anything not applicable to this PR NA.

[X] PR has a meaningful title

[X] Use the present tense and imperative mood when describing your changes

[X] Summarized changes
[X] User facing Documentation needed

[X] Issue filed - Issue link: https://github.com/PowerShell/PowerShell-Docs/issues/1991

[X] Change is not breaking
[X] Make sure you've added a new test if existing tests do not effectively test the code changed

[X] Add [feature] if the change is significant or affectes feature tests

[X] This PR is ready to merge and is not Work in Progress.

If the PR is work in progress, please add the prefix WIP: to the beginning of the title and remove the prefix when the PR is ready.

@adityapatwardhan Could you please continue?

@adityapatwardhan Please resolve conflicts.

I plan to resume work on this next week.

Did you consider implementing Exponential Backof or different retry strategies? AWS SDKs for instance use an Exponential Backof and it is good practice for many other web services.

@ffeldhaus Please open new Issue for your great suggestion - we shouldn't lost this.

I thought about this feature some more and I don't think it should be included in the current form without further discussion to prevent retries to cause issues or unwanted behavior and I don't think a Pull Request is the right place to discuss the design of this feature. As issue #5582 was already created for this feature, we should first discuss the design there and then continue with the Pull Request.
I will add my concerns and design ideas to issue #5582.

@iSazonov Retry and Resume are separate features. Resume continues downloading a partially downloaded file. Retry tries the URI again if a non-susccess status code was received. This PR is for the Retry feature, #6447 is for the Resume feature.

I wouldn't want to lose this.

@iSazonov @markekraus @SteveL-MSFT  I have addressed all the feedback. Please have another look.

@iSazonov code review comments addressed.

@markekraus Added documentation and fixed more CodeFactor issues.

@SteveL-MSFT  Can you have another look?

Restarted Travis CI Linux - seems temporary failed.

@SteveL-MSFT  @markekraus  Please update your reviews.

@adityapatwardhan I may not have time until this weekend to give this the attention it deserves. I do want to review it for edge cases before it's pulled.

Is it really ok to do the retry for Status Code 304 and 400 to 599? There are several Status Codes were a retry just does not make sense and will just increase the load/error counters on the server. 400, 409, 410, 429, 431, 505 would be some were I don't think a retry should be done. 413 would require special retry handling.

@ffeldhaus I have plenty of use cases for retries just about every status code. For example, the status code is server side bug, a fix is being released to prod, and I want the script to retry until x amount of time passes or the fix is live.

@markekraus Added a test for POST, please have another look. Thanks!

@adityapatwardhan That test doesn't provide a body payload nor does it test the response. The WebListener endpoint would need to echo back the body payload and then the pester test would need to check the response from WebListener to ensure the echoed payload matches the sent payload.

@markekraus Updated test and controller with echo for sessionId.

@adityapatwardhan Two more things and I think this will be done. I just realized there are only tests for Invoke-Webrequest. Please add the same tests for Invoke-RestMethod. Also, instead of wrapping the tests in #region Retry tests, please use a Context block.

@markekraus Since the code path is same, I believe adding all the tests will be duplication. I will add one test for Invoke-RestMethod to cover the scenario.

@adityapatwardhan The convention for the web cmdlets is to test all features on both, even common features. There is always the possibility that the common features clash with the implementation features.

@markekraus Please review again. I have added tests for Invoke-RestMethod. I moved them to a new describe block so they can be grouped together. The describes for other Invoke-RestMethod and Invoke-WebRequest tests were separate. Thanks for the feedback, very much appreciated.

@adityapatwardhan there is a Describe "Invoke-WebRequest tests" -Tags "Feature" block and a Describe "Invoke-RestMethod tests" -Tags "Feature" and in those are various context blocks
for example,
https://github.com/PowerShell/PowerShell/blob/e8d2a6b27827dd366f638468f96487ddf2de1db4/test/powershell/Modules/Microsoft.PowerShell.Utility/WebCmdlets.Tests.ps1#L827
and
https://github.com/PowerShell/PowerShell/blob/e8d2a6b27827dd366f638468f96487ddf2de1db4/test/powershell/Modules/Microsoft.PowerShell.Utility/WebCmdlets.Tests.ps1#L2119

@markekraus I decided to go with a separate Describe block so that we can use TestCase for It and re-use most of the test code. If we have tests for Invoke-RestMethod and Invoke-WebRequest in separate Describe blocks then there will be test code duplication. I prefer a separate Describe but since there is precedence I am not completely against adding them to existing Describe blocks.
Let me know your thoughts?

@adityapatwardhan For all new features they have been separate context blocks in the top level describe blocks for each cmdlet. I'd prefer to stick to this pattern for now and look at changing things up in one of the open issues I have on refactoring the code and tests.

@markekraus Ok, agreed. I will send an update in a few minutes.

@markekraus Made the changes to the tests as discussed above.

@markekraus  Good catch! Fixed.

@markekraus  Fixed documentation.

Reopen to restart CIs.

@iSazonov  Thanks for restarting CIs. All tests passed, ready to merge?

@adityapatwardhan Thanks for great contribution!


Connection error with pusher7

I receive following error on local-host. I haven't seen the reason on internet I think it has some problems with docker maybe. I am using laravel sail.
The connection to ws://<IP_ADDRESS>:6001/app/local?protocol=7&client=js&version=4.3.1&flash=false was interrupted while the page was loading.

I have following settings for my project:
  'pusher' => [
            'driver' => 'pusher',
            'key' => env('PUSHER_APP_KEY'),
            'secret' => env('PUSHER_APP_SECRET'),
            'app_id' => env('PUSHER_APP_ID'),
            'options' => [
                'cluster'   => env('PUSHER_APP_CLUSTER'),
                'encrypted' => false,
                'host'      => '<IP_ADDRESS>',
                'port'      => 6001,
                'scheme'    => 'http'
//                'useTLS' => true,
            ],
        ],

import Echo from 'laravel-echo';

window.Pusher = require('pusher-js');

window.Echo = new Echo({
    broadcaster: 'pusher',
    key: process.env.MIX_PUSHER_APP_KEY,
    wsHost: window.location.hostname,
    wsPort: 6001,
    cluster: 'mt1',
    wssPort: 6001,
    disableStats: true,
    forceTLS: false,
    enabledTransports: ["ws", "wss"]
});

I use these versions :
"pusher/pusher-php-server": "^5.0"
"pusher-js": "^7.0.3",
"laravel-echo": "^1.10.0",

use these versions:
"pusher-js": "^6.0",
no support ^7.0


Resolves #2074

Updates examples to match parameters
https://github.com/MicrosoftDocs/windows-powershell-docs/issues/2074

Docs Build status updates of commit a39a468:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docset/windows/storage/Enable-PhysicalDiskIdentification.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
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.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 3b5718a:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docset/windows/storage/Enable-PhysicalDiskIdentification.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
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.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

@dariomws @get-itips @tseward
Peer review needed for this PR.
cc @JohanFreelancer9 for copy editing.
Thank you.

Docs Build status updates of commit 83c1935:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docset/windows/storage/Enable-PhysicalDiskIdentification.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
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.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


:bug: fixed --pac-proxy mode of service crashes

--pac-proxy模式下，期望部分打到线上的请求失败。hiproxy服务奔溃，报错信息显示获取证书失败，修改做判空处理。

Codecov Report

Merging #21 into master will decrease coverage by 0.07%.
The diff coverage is 83.33%.

@@            Coverage Diff             @@
##           master      #21      +/-   ##
==========================================
- Coverage   92.03%   91.96%   -0.08%
==========================================
  Files          30       30
  Lines        1130     1132       +2
==========================================
+ Hits         1040     1041       +1
- Misses         90       91       +1

Impacted Files
Coverage Δ

src/cert/index.js
97.56% <100%> (ø)
:arrow_up:

src/helpers/getProxyInfo.js
99.2% <80%> (-0.8%)
:arrow_down:

Continue to review full report at Codecov.

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


Scan in lua script doesn't iterate all keys

I'm running the following lua script and it seems the scan command doesn't iterate on all the keys. I've run it with redis-py and it worked as expected
import fakeredis

r = fakeredis.FakeStrictRedis()
for i in range(100):
    r.set(f'key-{i}', i)

script = """
    local cursor = 0
    local seen = {}
    repeat
        local result = redis.call('SCAN', cursor)
        for _,key in ipairs(result[2]) do
            seen[#seen+1] = key
            redis.call('DEL', key)
        end
        cursor = tonumber(result[1])
    until cursor == 0
    return seen
"""

print(len(r.register_script(script)()))  # Expecting here 100, getting 50
print(len(r.keys()))  # Expecting here 0, getting 50

Desktop (please complete the following information):

OS:  Mac
python version: 3.8
redis-py version: 4.3.4

The issue is that you are modifying the DB within the script in my opinion.
Check out the note in _scan(..) method:

It also doesn't adhere to the guarantee that every key will be iterated
at least once even if the database is modified during the scan.
However, provided the database is not modified, every key will be
returned exactly once.

Is that note from redis-py?
It contradicts the guarantees in redis documentation:

A full iteration always retrieves all the elements that were present in the collection from the start to the end of a full iteration. This means that if a given element is inside the collection when an iteration is started, and is still there when an iteration terminates, then at some point SCAN returned it to the user.

No, that's fakeredis implementation of SCAN.
https://github.com/cunla/fakeredis-py/blob/0ef7d4f0fb58c867742b792e25979c31fbdd2c47/fakeredis/_basefakesocket.py#L257-L265

Got it... I wonder if it's possible to take a snapshot of the db when calling scan with cursor = 0
https://github.com/cunla/fakeredis-py/blob/927dcbc4fe49b8cf39809308a9df262dfafe7c9c/fakeredis/commands_mixins/generic_mixin.py#L204-L206

concurrency in python? :)
I think your suggestion can work, though I would probably put this login in _scan(..)  so it will support  the various scan commands (HSCAN, SSCAN, ...) as well.
I added your test to the lua-error branch, do you mind implementing it and creating a PR for it?

I was thinking of weird use cases like doing a scan inside a scan... but maybe it's too unique to support

Based on the scan documentation:

...
An iteration starts when the cursor is set to 0, and terminates when the cursor returned by the server is 0. The following is an example of SCAN iteration:
...
Multiple parallel iterations
It is possible for an infinite number of clients to iterate the same collection at the same time, as the full state of the iterator is in the cursor, that is obtained and returned to the client at every call. No server side state is taken at all.
Terminating iterations in the middle
Since there is no state server side, but the full state is captured by the cursor, the caller is free to terminate an iteration half-way without signaling this to the server in any way. An infinite number of iterations can be started and never terminated without any issue.

So basically the command should create a snapshot of the list of keys per connection when getting from the connection cursor 0.
Since the FakeSocket is created per FakeConnection then your suggestion should comply with the Redis standards.

The FakeSocket per connection does solves the parallelism but what do you think should happen in the following case, should it be supported?
local cursor = 0
repeat
    local result = redis.call('SCAN', cursor)
    for _,key in ipairs(result[2]) do
        local innerCursor = 0
        repeat
            local setResult = redis.call('SSCAN', key, innerCursor)
            ...
            innerCursor = tonumber(setResult[1])
        until innerCursor == 0
    end
    cursor = tonumber(result[1])
until cursor == 0

Not sure if I get the issue, if cursor is 0 -> create a new keys snapshot.

I solved the example above by saving the keys snapshot per scan type, but still it won't work for a scan inside a scan

Catched the same issue as well without lua:  if I have 2 sets with keys A and B the code below will remove only A key:
async for key in redis_client.scan_iter(match='*', count=1):
    await redis_client.zremrangebyscore(key, min_score='-inf', max_score='+inf')

@matanper would you want to finish your PR?

@matanper would you want to finish your PR?

Hey, sorry I don't have time right now, better close and maybe I'll open again when I can

No worries - I will take over if it is ok with you.

No worries - I will take over if it is ok with you.

Of course.
I've also seen this blog about how redis implements the scan, thought it might be interesting to try do it in python

Hi, I wrote tests demonstrating that keys deleted in the middle of scan do not appear on scan.
I am closing this issue as it looks like all tests pass.

redis updated the documentation as well :smile:

Elements that were not constantly present in the collection during a full iteration, may be returned or not: it is undefined.


Add support for XML-based solution file format (slnx)

Add support for XML-based solution file format (slnx)
Should be an opt-in as the slnx feature itself is still in the preview phase

dotnet new winforms-blazor -o MyApp -slnx

dotnet new wpf-blazor -o MyApp -slnx

This feature is now available as part of the below releases.

VijayAnand.BlazorTemplates - v4.3.0 (Unified package)
VijayAnand.WindowsForms.Blazor - v4.3.0
VijayAnand.Wpf.Blazor - v4.3.0
Blazor Desktop Templates - v<IP_ADDRESS>


Add 104 Addresses to existing DOI/DAI (CDC = ENS)

Is your feature request related to a problem? Please describe.
As a 104 Engineer, I aim to incorporate Address Elements into an existing DOI/DAI that currently lacks these elements. Presently, CoMPAS does not support some critical CDCs, and we must establish their configurations within the tool. Below, the procedure for configuring CDC=ENS has been outlined.
Describe the solution you'd like
The "Add 104 Address" button will appear below/right of the screen. If the user wants to add a 104 address, the user should simply click on the "Add 104 Address" button.

A new window will open, allowing you to select the DOI. This window is designed similarly to the dataset selection window. Below, you can see an example of how to select a Data Object (DO) with its Logical Node (LN), Access Point (AP), and Intelligent Electronic Device (IED). In the case of CDC=ENS, it's necessary to choose the DO=Beh. However, currently, this specific option is not visible or selectable within IEC 104 module of CoMPAS.

After this step, it's crucial to choose the suitable Monitoring Type Identifier (Ti) for the selected Data Object (DO). It's important to note that certain CDCs can be mapped to different Ti values within the IEC 104 standard. As depicted below, the dialog box should provide options for selecting both 30 and 35 in the "Monitor Ti" section, reflecting the flexibility of the protocol. Additionally, given that this CDC can be mapped to multiple 104 addresses, the "Created Inverted Addresses (Monitor)" feature should be enabled. This ensures that the configuration aligns with the specific requirements of the CDC and facilitates comprehensive data mapping.

Upon adding the point, a new dialog box with various parameters will be presented. At this stage, it is essential to input both the CASDU number and  IOA number. In some cases, specific DOs within particular CDCs may encompass more than one DA. For the specific CDC=ENS, there is only one Data Attribute DA=stVal that require the assignment of CASDU number and IOA addresse.
It's worth noting that the CASDU number serves to address a specific entity within the communication network, which could range from an entire substation down to a bay within a substation or even a single Remote Terminal Unit (RTU). Consequently, the combination of the CASDU number and IOA necessitates careful management to ensure accurate and conflict-free addressing.
For additional details on defining CASDU and IOA addresses, please refer to the following issue:
https://github.com/openscd/open-scd/issues/1348

Suggestions for a specific user interaction
In scenarios where the same IOA address is employed for different DAs within the same CASDU number, the system should ideally generate an error message to alert the user. Examples of such error messages could be:
"IOA Address Already in Use"
"Duplicate IOA Detected"
"Cannot Use the Same IOA for Multiple DAs"
"IOA Address Conflict"
These messages would effectively communicate the issue and prompt the user to select a unique IOA address to ensure proper data mapping and avoid potential conflicts.

@Sander3003 @pascalwilbrink @Stef3st @juancho0202
FYI, the “Created Inverted Addresses (Monitor)“ feature is not applicable for the following ASDU/Ti numbers:
<20> := Packed single-point information with status change detection
<38> := Event of protection equipment with time tag CP56Time2a
<39> := Packed start events of protection equipment with time tag CP56Time2a
<40> := Packed output circuit information of protection equipment with time tag CP56Time2a

@Stef3st I tested the CDC=ENS. It works very well.


docs: add async api code snippet

Here is the summary of possible violations 😱
There are 3 possible violations for not having product prefix.
The end of the violation section. All the stuff below is FYI purposes only.
Here is the summary of changes.
You are about to add 3 region tags.
This comment is generated by snippet-bot. If you find problems with this result, please file an issue at: https://github.com/googleapis/repo-automation-bots/issues. To update this comment, add snippet-bot:force-run label or use the checkbox below:

[ ]  Refresh this comment

snippet-bot is flagging that the product is not yet public.
https://github.com/googleapis/repo-automation-bots/issues/3182
Optimization AI is in restricted GA (GA with allowlist). The region tag prefix can be found here: https://devrel.corp.google.com/admin/products/463?t=snippets


CI: add element bot

Please makes sure these boxes are checked before submitting your PR, thank you!

[ ] Make sure you follow Element's Contributing Guide.
[ ] Make sure you are merging your commits to dev branch.
[ ] Rebase before creating a PR to keep commit history clear.
[ ] Add some descriptions and refer relative issues for you PR.

https://github.com/element-bot


Plugin incompatibility: This plugin seems to modify ItemStacks of villager trades

I haven't looked into this too deeply myself, however, a user of one of my plugins ran into the issue that items retrieved from a villager trade (in this case a merchant that has been setup by the plugin "Shopkeepers") did not merge with regular variants of that item.
In this particular case, the user got an (apparantely) regular emerald from a villager trade, and could not merge it with other regular emeralds inside of his inventory. Inspecting the nbt data of these emeralds yielded that the emerald item retrieved from the villager trade contained the additional data tag: {PublicBukkitValues: {"eco:finalized":1}}, which causes it to no longer stack with plain emeralds.
According to the reports of that user this issue affects all items retrieved from villager trades.
It seems like this plugin is injecting this data into the items of merchant recipes when it processes outgoing OpenMerchant packets. See:

https://github.com/Auxilor/eco/blob/master/eco-core/core-plugin/src/main/java/com/willfp/eco/spigot/display/packets/PacketOpenWindowMerchant.java#L31
https://github.com/Auxilor/eco/blob/master/eco-core/core-nms/v1_16_R3/src/main/java/com/willfp/eco/proxy/v1_16_R3/VillagerTrade.java#L21
https://github.com/Auxilor/eco/blob/master/eco-util/src/main/java/com/willfp/eco/util/display/Display.java#L138

I haven't looked into the purpose of this, but it apparantely modifies the result item of the trade in a way that is incompatible with non-modified items on the server (i.e. can result in the items to not merge occasionally).
If it is really necessary to modify the ItemStacks sent to clients for display purposes, maybe consider copying the MerchantRecipes before you modify them in the outgoing OpenMerchant packet. Maybe this resolves the issue (untested).
There is another reference to that method that modifies ItemStacks in this way:

https://github.com/Auxilor/eco/blob/master/eco-core/core-nms/v1_16_R3/src/main/java/com/willfp/eco/proxy/v1_16_R3/ChatComponent.java#L62
But that seems to at least only affect ItemStacks internal of hover events. So as long as no other plugin retrieves the ItemStack from a hover event, this seems to be a comparatively minor risk.

Fixed in latest version

I assume this commit is supposed to fix it? https://github.com/Auxilor/eco/commit/bce1dd9fee85401db8f1e6886d763c6fc377c354
I am not sure how this is supposed to fix it for any items that actually have a max stack size of 1, succh as books, tools, weapons, etc.

A user of my plugin reported having this issue again. I suppose you reverted what I previously assumed might have fixed this in https://github.com/Auxilor/eco/commit/e9e39345edc9157d38fc9c521a868b6aa080ab80
Is there any way you can avoid modifying the result item involved in villager trades? Maybe an option could be to not actually modify the item on the server, but only the copy that is being sent to clients.

I only modify the object being sent to the client - however, I have to modify the NMS handle or the trade is cancelled altogether. It could be that the NMS handle is the server-side object? I could experiment with cancelling the OpenWindowMerchant packet and sending off a new one with modified recipes?

It seems like the MerchantRecipes you get from ProtocolLib (https://github.com/Auxilor/eco/blob/8fbcf485b3dd7284072ef23cd25cf99cc053f19f/eco-core/core-plugin/src/main/java/com/willfp/eco/spigot/display/PacketOpenWindowMerchant.java#L29) are CraftMerchantRecipes, i.e. they are backed by the underlying Minecraft nms.MerchantRecipe of the original nms.MerchantRecipeList (via their 'handle').

It could be that the NMS handle is the server-side object?

I think so, yes.
You then retrieve this underlying nms.MerchantRecipe via the handle and modify its result item ('sellingItem') (https://github.com/Auxilor/eco/blob/master/eco-core/core-nms/v1_16_R3/src/main/java/com/willfp/eco/proxy/v1_16_R3/VillagerTrade.java). This will modify the original nms.MerchantRecipes of the villager on the server.
(Offtopic: By the way, you also modify the result item of the bukkit MerchantRecipe portion of CraftMerchantRecipe ('result'). I don't think that this has any effect: That item is a copy, and changes to it are never applied to the underlying nms.MerchantRecipe or nms.ItemStack.)
Afterwards you then create a new MerchantRecipeList (https://github.com/Auxilor/eco/blob/8fbcf485b3dd7284072ef23cd25cf99cc053f19f/eco-core/core-plugin/src/main/java/com/willfp/eco/spigot/display/PacketOpenWindowMerchant.java#L33) of these modified MerchantRecipes. However, the original MerchantRecipes of the original MerchantRecipeList were already modified as well at that point.

however, I have to modify the NMS handle or the trade is cancelled altogether.

Trades are usually cancelled if there is some mismatch between items in the slots and of the merchant recipe. However, without having looked into this deeper, I don't know whether the cancelling of the trade in your case happens on the client or the server (the mismatch of these items could be checked for on either side).
But since the server updates the item of the merchant result slot when the player inserts items or selects a trading recipe in the list, you may also have to intercept that slot update packet an modify the sent item there (for the client, not the server).
The goal would be to not modify any recipes or items on the server, but only the copies that are transferred to the client. So on the client, the recipe result item and result slot item would match your modified version, and on the server they would still be the originals (and match there as well).

I could experiment with cancelling the OpenWindowMerchant packet and sending off a new one with modified recipes

I don't think this will resolve your trade cancelling issue if this is caused by the server modifying the result slot item to the non-modified server variant whenever something in the merchant inventory changes (input items, merchant recipe selection, etc.).

Fixed in eco 5.3.0 + ecoenchants 7.2.8

Thanks! I tested this briefly and was not able to reproduce the compatibility issue between Eco and Shopkeepers anymore. And the previously affected items also no longer needlessly gain the additional 'finalized' tag on the client side either.

I see you partially reverted your changes again in https://github.com/Auxilor/eco/commit/d65c04aaa75fe08bdcd116f5f75eb0f7dddbbef1 , modifying the original villager trades on the server (the handle) again.
May I ask what issue you ran into? If you ran into the "trade is cancelled altogether" issue you mentioned above: Your original change did not yet account for the slot items changing I mentioned above. So maybe try intercepting the relevant packet for that (https://wiki.vg/Protocol#Set_Slot) and modify the ItemStack being sent to clients to match the modified merchant recipe items.


typo

For example, should the interface emphasize what the network recognizes, prioritize how its understanding develops, or focus on making thing human-scale.  --> For example, should the interface emphasize what the network recognizes, prioritize how its understanding develops, or focus on making things human-scale.

Thanks for catching that, @geoffwoollard ! :-) (Note that this fix may not yet be deployed—it will be within the next week or so.)


Datetime fields are returned in non readable format

I have a DBF file, and when looping trough records when outputting value of DATETIME field in DBF I get following value �m%x([ or By%��\ as two examples.
I am not sure how can I convert this to some meaningful date time format.

May you say version of DBF-file?
And, maybe, dbf-file (or part of dbf-file)?

According to Header info, the version is 48.
Column info is this:
array:9 [
    "name" => "tcreated"
    "type" => "T"
    "length" => 8
    "decimal" => 0
    "flag" => 4
    "system" => false
    "has_null" => false
    "binary" => true
    "auto_increment" => false
  ]

Data is binary. I could manually unpack it, but I don't know what kind of format could it be. If I use unpack('L', $record) then I get interger, for example 2458600 which is too short to be Unix Timestamp. So I don't know how to convert it to date...

This will be fixed soon - about 2-3 days

Fixed. You may check

Hi. Your latest commit did partially solve the issue, but there is still a problem which produces exception. I have run it on test DB, it parses some dates and then it throws en error: ErrorException  : unpack(): Type L: not enough input, need 4, have 3
Error is at line 122 of Records.php
$timeData = unpack("L", substr($data, 4, 4))[1];

I have solved it by wrapping the line in try catch for now...

May you give me your test DB? On my test DBs DateTime fields was encoded correctly
I'm now on holidays, will be back in 2 weeks.

It's not really test DB, it contains private info so I can't send it. There is a problem with time part of dates in some cases, with try and catch and setting time to 000000 is fine for my use case. I can create pull request for this if you wish.
Thank you and enjoy your holiday. :-)

May you paste here description of this field? It it return size of field - 8?
By standard of Visula FoxPro DateTime field is always 8 bytes. (4 bytes date and 4 bytes time)

There is still a bug in the code somewhere, as mentioned before I am getting only 7 bytes of data for date somehow. So when it is split in 2 parts with substr, where first part is date part and second part is time part - second part has sometimes only length equal to 3, not 4, so unpack throws error.
I have tried parsing same file (VisualFoxPro) with some other libs and dates come out fine. Also here they do in like 95% but remaining 5% throws error. I am guessing bug is not in function where binary string is converted to datetime, but before where row is split to chunks and this field is somehow 1 byte too short.

May you give me dbf-file with error (maybe part of file) ?

There is still a bug in the code somewhere, as mentioned before I am getting only 7 bytes of data for DateTime somehow. So when it is split in 2 parts with substr, where first part is date part and second part is time part - second part has sometimes only length equal to 3, not 4, so unpack throws error.
I have tried parsing same file (VisualFoxPro) with some other libs and dates come out fine. Also here they do in like 95% but remaining 5% throws error. I am guessing bug is not in function where binary string is converted to DateTime, but before where row is split to chunks and this field is somehow 1 byte too short.

May you give me dbf-file with error (maybe part of file) ? And version of dbf-file

It is big file with personal information, so I can not share it. I tried to fix it myself but couldn't find a bug so I ended up using another library instead of this one.
I will try to obfuscate the personal data and extract only problematic rows and send it to you.

You can download test file here
It reads couple of records and then throws an error:

In Records.php line 122:
unpack(): Type L: not enough input, need 4, have 3

As encoding for iconv you have to set 'utf-8//IGNORE', else there are also encoding related errors.

You can download test file here
It reads couple of records and then throws an error:

In Records.php line 122:
unpack(): Type L: not enough input, need 4, have 3

As encoding for iconv you have to set 'utf-8//IGNORE', else there are also encoding related errors.

Thank you for sample file.
I found bug in my code and fixed it. Please check with new version.


[BUG] Misjudgement in IsPrivateNetwork() causes trouble using reverse proxies

summary

call to bool NetIPAddress::IsPrivateNetwork() from a NetIPAddress whose address is <IP_ADDRESS> should get false instead of true

details
I have a server at home which has no public IP and a VPS(both running Ubuntu). A reverse proxy(from fatedier/frp) is set up for port forwarding(TCP 50050, TCP 50000, UDP 50010 will work) so that server can be accessed globally. However, IP addresses of connections through the reverse proxy are always <IP_ADDRESS>, which are classified as "appears to be on private subnet" by function bool NetIPAddress::IsPrivateNetwork() and the connections are redirected to the private IP of the server, which is inaccessible from other subnets. Thus, connections between the game client from other subnets and the server cannot be established.
fix

Simply make <IP_ADDRESS> an exception in IsPrivateNetwork() to prevent redirections, as the function is only called to judge whether redirections should take place.

modification

https://github.com/TLeonardUK/ds3os/blob/4f3c12e7dc21faebcaaebe680b3b48b2247943ea/Source/Server/Core/Network/NetIPAddress.h#L36
bool IsPrivateNetwork()
{
    if (Bytes[0] == 127 && Bytes[1] == 0 && Bytes[2] == 0 && Bytes[3] == 1)     // ! <IP_ADDRESS>
        return false;
    return
        Bytes[0] == 127 ||                                                      // 127.*.*.*
        Bytes[0] == 10 ||                                                       // 10.*.*.*
        (Bytes[0] == 172 && Bytes[1] >= 16 && Bytes[1] <= 31) ||                // 172.16.*.* -> 172.31.*.*
        (Bytes[0] == 192 && Bytes[1] == 168);                                   // 192.168.*.*
}

This will break people trying to connect from the local machine as it will redirect them to external IP rather than the internal IP that would be expected.
I would suggest if this causes an issue for your setup, that a flag to opt-in to this behaviour in the config file is a better solution.

Yes, indeed.
After the modification, connections from the local machine won't be directed to the internal IP, which increases the latency.
However, I noted that others who also use port forwarding seem not to have this problem. Is it because their port forwarding was through the router instead of a reverse proxy running on the local machine? I thought either way would have caused external connections to be redirected to internal IP and lose connection.
Will it work if the client loses connection after redirecting and undoes the redirection?
And I cannot locate where the "Directing auth client to our private IP" stuff is implemented. How is the internal IP returned?
MasterServerPort(==50020 by default) doesn't have to be forwarded, I suppose.

After the modification, connections from the local machine won't be directed to the internal IP, which increases the latency.
It won't just increase latency, it flat out just won't work in the majority of consumer networks and will result in a connection failure.

However, I noted that others who also use port forwarding seem not to have this problem.
Yes because they aren't recieving connections coming from <IP_ADDRESS>, so they won't encounter this.

Will it work if the client loses connection after redirecting and undoes the redirection?
If the client loses connection they will have to go through the entire connection process again, which will result in the same result.

And I cannot locate where the "Directing auth client to our private IP" stuff is implemented. How is the internal IP returned?

The LAN and WAN IP's are retrieved using the functions in this file:
https://github.com/TLeonardUK/ds3os/blob/main/Source/Server/Core/Network/NetUtils.cpp
Redirection happens in two places:
Line ~88
https://github.com/TLeonardUK/ds3os/blob/main/Source/Server/Server/LoginService/LoginClient.cpp
Line ~256
https://github.com/TLeonardUK/ds3os/blob/main/Source/Server/Server/AuthService/AuthClient.cpp

MasterServerPort(==50020 by default) doesn't have to be forwarded, I suppose.
Correct, the master server is an outgoing connection. I don't expect anyone to be running their own master servers so nobody needs to forward the ports it requires.


61 add support for custom browser path

Fixes #61
Summary

Added a 'BuildOption' to supply 'binaryPath' of the browser to be used.
Added unit tests for checking this feature

Other Notes
This pull request addresses the feature of using a chromium/gecko engine based browser, alternative to the currently prevalent Chrome/Firefox. The feature works as long as the browser engines are the same as the Original (Chrome/Firefox) browsers.

2 things:
1. Have you tested this with your Brave browser? I'm not confident we should say we support other chromium based browsers because we don't actually test them (yet), so it's unsure if they will actually work - though I might do this in a separate PR to avoid the headache for you (unless you want to), i think it's just a matter of installing brave on the CI workflow and in the dockerfile, then an extra integration test that checks it works when passing in the path to brave

Though, saying that, maybe it isn't needed, maybe the fact we offer the option to use a different path is enough?
1. Ill need to write the docs for this before we can release this feature, or you can as well if you feel like it and are familiar with the frontend/vue :)

Yes I have tested this with Brave Browser. It works seamlessly. Yes we could add Brave browser in the CI flow, but that is going to pile up as and when a new chromium browser comes out. Maybe if someone faces specific issues pertaining their chromiums, then can log an issue (which they most likely won't as they won't be modifying the engine so much that it isn't chromium anymore.)

I am not really familiar with vue. But I would surely like to try, if it is ok with all. I will definitely put it down if really cant get it.

Yes I have tested this with Brave Browser. It works seamlessly.

That is perfect :D That is really great news that it just works, i know you mentioned it should just work anyway, but it's nice to see it has done :)
I do see your your point bout point 1 though, I think us saying "We also support other browsers like Brave, you can set the path to do this" is enough

I am not really familiar with vue. But I would surely like to try, if it is ok with all. I will definitely put it down if really cant get it.

Feel free :) It's not a problem if not, we can discuss it on the discord


Sandbox build broken because django-widget-tweaks doesn't get installed

To reproduce:
$ mkvirtualenv oscar
(oscar) $ make sandbox
...
sites/sandbox/manage.py syncdb --noinput
Traceback (most recent call last):
  File "sites/sandbox/manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/markus/.virtualenvs/oscar/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "/home/markus/.virtualenvs/oscar/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute
    django.setup()
  File "/home/markus/.virtualenvs/oscar/local/lib/python2.7/site-packages/django/__init__.py", line 21, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/markus/.virtualenvs/oscar/local/lib/python2.7/site-packages/django/apps/registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
  File "/home/markus/.virtualenvs/oscar/local/lib/python2.7/site-packages/django/apps/config.py", line 87, in create
    module = import_module(entry)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
ImportError: No module named widget_tweaks
make: *** [build_sandbox] Error 1

django-widget-tweaks is listed in https://github.com/django-oscar/django-oscar/blob/cd5bb8f741ec68a7f29b3c7379defd56d4774068/setup.py#L70 so it's not immediately obvious to me why make install doesn't install it.

Yes, I ran into that and thought it's me because my virtualenv got stale or
something. We did change what make install does; it now uses pip to both
install Oscar dependencies and dev dependencies. I wonder if I
misunderstood how that works.
On 6 Feb 2015 15:20, "Markus Bertheau"<EMAIL_ADDRESS>wrote:

To reproduce:
$ mkvirtualenv oscar
$ make sandbox
...
sites/sandbox/manage.py syncdb --noinput
Traceback (most recent call last):
File "sites/sandbox/manage.py", line 10, in
execute_from_command_line(sys.argv)
File "/home/markus/.virtualenvs/oscar/local/lib/python2.7/site-packages/django/core/management/init.py", line 385, in execute_from_command_line
utility.execute()
File "/home/markus/.virtualenvs/oscar/local/lib/python2.7/site-packages/django/core/management/init.py", line 354, in execute
django.setup()
File "/home/markus/.virtualenvs/oscar/local/lib/python2.7/site-packages/django/init.py", line 21, in setup
apps.populate(settings.INSTALLED_APPS)
File "/home/markus/.virtualenvs/oscar/local/lib/python2.7/site-packages/django/apps/registry.py", line 85, in populate
app_config = AppConfig.create(entry)
File "/home/markus/.virtualenvs/oscar/local/lib/python2.7/site-packages/django/apps/config.py", line 87, in create
module = import_module(entry)
File "/usr/lib/python2.7/importlib/init.py", line 37, in import_module
import(name)
ImportError: No module named widget_tweaks
make: *** [build_sandbox] Error 1
django-widget-tweaks is listed in
https://github.com/django-oscar/django-oscar/blob/cd5bb8f741ec68a7f29b3c7379defd56d4774068/setup.py#L70
so it's not immediately obvious to me why make install doesn't install it.
—
Reply to this email directly or view it on GitHub
https://github.com/django-oscar/django-oscar/issues/1658.

I think the problem package is simply missing from the requirements.txt files. I had the same problem trying to build the US Site using the current repo, so I went in to the requirements_us.txt file and added the line:

django-widget-tweaks==1.3

I then re-ran the "make us_site" command and it worked...at least to a point. I think there's some other problems with it too when using manage.py runserver (had to manually copy the image_not_found.jpg file into my MEDIA_ROOT and then got a PIL error with the same jpg once it was copied, after creating a fresh virtualenv to work in). At least with this workaround you can build the sandboxes and inspect the structure and contents of the files.

@rayrrr Oscar core dependencies should be specified in setup.py. We use requirements.txt only for Oscar development related requirements. And django-tweaks is specified in setup.py, so that's why we're surprised to not see it being installed. Any pointers welcome!

@maikhoepfel I think you're confused–otherwise I'm missing something. First of all, we're talking about the settings.py file, right? "setup.py" is not a Django convention I know of.
In Django, the INSTALLED_APPS entry in settings.py is where you specify which Python modules you want your app to use, but it expects those modules to already be available in your virtualenv.
requirements.txt is what you use to make the modules available in your virtualenv! You need to specify `django-tweaks

@maikhoepfel upon further inspection of your Makefile, I think what's going on here is that you have one "global" requirements.txt for Oscar dev dependencies, and another requirements_XX.txt per XX build for the demo, and us site. However, the sandbox has no requirements file of its own.
I was trying to check out the US site, I put the missing mention of django-widget-tweaks in the requirements_us.txt file (see my original comment for exact syntax). So @mbertheau for trying out the basic sandbox, you can just add the mention to the "global" requirements.txt file.

@rayrrr I'm afraid you're missing something. As we're publishing Oscar on PyPi, we're following the Python packaging guidelines.
I would expect that the requirements specified in setup.py get installed here. And they do, otherwise we e.g. wouldn't have Django in the virtualenv as it's not specified in any requirements.txt.

@mbertheau Can you still reproduce this? The sandbox builds fine for me now, with a fresh venv.

It seems that is still broken, because the online sandbox is definitely not up-to-date with master branch (Bootstrap 2.3.1), nor the demo site...

@maikhoepfel sandbox builds fine for me too.
@zuck please suggest how to reproduce the issue. Thanks.

Maybe I was wrong and it isn't strictly related to django-widget-tweaks but something wrong is happening with online sandbox generation (http://latest.oscarcommerce.com) because it is definitely not up-to-date to the latest version (nor the demo).

Seems to be fixed in the meantime


licencia

{esta licencia es para el uso del sofweart de recoleccion de docs como moneda de encriptacion del systema operatibo docs bincular con la bolsa de valores para un rendimiento perfecto

Why:
Closes [issue link]

What's being changed:

Check off the following:

[ ] I have reviewed my changes in staging (look for "Automatically generated comment" and click Modified to view your latest changes).
[ ] For content changes, I have completed the self-review checklist.

Writer impact (This section is for GitHub staff members only):

[ ] This pull request impacts the contribution experience

[ ] I have added the 'writer impact' label
[ ] I have added a description and/or a video demo of the changes below (e.g. a "before and after video")

https://github.com/github/docs/pull/17049#issue-1202752703

extraer archibos docs metadatos a mi sistema operatibo a mi sofwert  para usar como a el ouner JOSE ANDRES MIRANDA ORTEGA  crea que esta bien


Greenkeeper/@types/node 11.13.4

Coverage remained the same at 100.0% when pulling e4def55ba7600e7fa98f52ed8e8dfb5f0f9b22cb on<EMAIL_ADDRESS>into 5670ffaf40a4a6e0b46cd25a503563fc605f4e9b on master.