Fully support xdg shell

Hello,
I'm a Qt developer and am considering the switch to Hyprland recently. For this to happen I need window decorations and some freedesktop.org atoms enabled.
Especially the _NET_WM_MOVERESIZE atom is required for moving around windows natively in Qt6 QML/QtQuick
I'm very unexperienced with wayland so pardon my rookie mistake if these atoms aren't even used. How does hyprland handle those?
Also - is it possible to allow system-decorations for the window?

Umm.... atoms... in Wayland?
Wayland has no atoms sire.

Okay, that was rookie mistake no.1
What do you mean by SSD/CSD?
Ater exploring a bit more I think this is the required part that needs to be enabled for the wayland implementation. Qt checks it here i think.
As for the decorations. I would really love to have xdg-decorations optionally enabled. I would need this when developing gui app (rather then using) just to verify that everything works fine.
Whats the chances of enabling this? Could someone point me to the required locations here maybe?

Whats the chances of enabling this?

wants_to(me);

What do you mean by SSD/CSD?

Servur-Side / Client-Side Decorations

Ater exploring a bit more I think this is the required part that needs to be enabled for the wayland implementation. Qt checks it here i think.

yes, you are correct.

I am new to Hyprland. I cannot resize the floating window by dragging the window border. Is my situation related to this issue?

No. You can enable that in the config.

https://github.com/hyprwm/Hyprland/commit/bc86afea7e177a7ad4335737417fc0e468698dc4 ?

no, this is unrelated


tink-[d]aead: add size checks

Merge upstream commit 7371cede0641 ("Add size checks.") which is
included in v1.5.0.

I thought I'd based everything off upstream v1.5.0 already, but it looks like I was out by a few commits, of which this is the only relevant one. (Maybe the upstream v1.5.0 Git tag got moved along the way?)


Fix double label column bug

Pull Request Description
Fix double label column bug by removing duplicate columns before merging
After creating the pull request: in order to pass the changelog_updated check you will need to update the "Future Release" section of docs/source/changelog.rst to include this pull request.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.EC2 Default User seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

In order to satisfy the CLA check, all the EC2 user commits will need to be updated to be authored by an actual github user.  Alternatively, you could create a new branch and PR with the same code but valid github email for the author

Moved to #1160


Allow selecting multiple roles with multi-party-approval

If MPA is configured, we are only allowed to select only one role at a time.
We have a situation for infrastructure engineers (i.e. terraform) that will require a lot of roles at a time, so clicking daily on multiple roles is cumbersome.
Even when creating Custom IAM roles, we still have limit on number of permissions and etc so we end up having multiple custom roles.

With JIT Groups, you can now bundle any number of roles (across multiple projects, if necessary) and let users request them at once. That should work well for the Terraform use case that you describe.
Note that JIT Groups supersedes the JIT Access project, which has largely outlived its purpose as privileged access management is now available as a platform feature in Google Cloud . JIT Groups addresses an adjacent, but different use case -- self-service access management, or entitlement management, for all types of Google Cloud access, not only privileged access.


Got error when i did run.sh training part

Hi, My name is Nathan and i try to do training part according to "wespeaker/examples/voxceleb/v2".
I got few error.

[Errno 28] No space left on device.
[error] checkpoint is null !

My env is single node A100(80G) X 8 and also enough local  volumes.
Using a Docker container
torch                 1.12.1
torchaudio            0.12.1
torchnet              0.0.4
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Mon_May__3_19:15:13_PDT_2021
Cuda compilation tools, release 11.3, V11.3.109
Build cuda_11.3.r11.3/compiler.29920130_0
Please check My error log as below. Thank you
(wespeaker) [asr@e7bcf3a85e2c v2]$ bash run.sh
Start training ...
/home/asr/miniconda3/envs/wespeaker/lib/python3.9/site-packages/joblib/_multiprocessing_helpers.py:46: UserWarning: [Errno 28] No space left on device.  joblib will operate in serial mode
warnings.warn('%s.  joblib will operate in serial mode' % (e,))
/home/asr/miniconda3/envs/wespeaker/lib/python3.9/site-packages/joblib/_multiprocessing_helpers.py:46: UserWarning: [Errno 28] No space left on device.  joblib will operate in serial mode
warnings.warn('%s.  joblib will operate in serial mode' % (e,))
/home/asr/miniconda3/envs/wespeaker/lib/python3.9/site-packages/joblib/_multiprocessing_helpers.py:46: UserWarning: [Errno 28] No space left on device.  joblib will operate in serial mode
warnings.warn('%s.  joblib will operate in serial mode' % (e,))
/home/asr/miniconda3/envs/wespeaker/lib/python3.9/site-packages/joblib/_multiprocessing_helpers.py:46: UserWarning: [Errno 28] No space left on device.  joblib will operate in serial mode
warnings.warn('%s.  joblib will operate in serial mode' % (e,))
/home/asr/miniconda3/envs/wespeaker/lib/python3.9/site-packages/joblib/_multiprocessing_helpers.py:46: UserWarning: [Errno 28] No space left on device.  joblib will operate in serial mode
warnings.warn('%s.  joblib will operate in serial mode' % (e,))
/home/asr/miniconda3/envs/wespeaker/lib/python3.9/site-packages/joblib/_multiprocessing_helpers.py:46: UserWarning: [Errno 28] No space left on device.  joblib will operate in serial mode
warnings.warn('%s.  joblib will operate in serial mode' % (e,))
/home/asr/miniconda3/envs/wespeaker/lib/python3.9/site-packages/joblib/_multiprocessing_helpers.py:46: UserWarning: [Errno 28] No space left on device.  joblib will operate in serial mode
warnings.warn('%s.  joblib will operate in serial mode' % (e,))
/home/asr/miniconda3/envs/wespeaker/lib/python3.9/site-packages/joblib/_multiprocessing_helpers.py:46: UserWarning: [Errno 28] No space left on device.  joblib will operate in serial mode
warnings.warn('%s.  joblib will operate in serial mode' % (e,))
[warning] exp/CAMPPlus-TSTP-emb512-fbank80-num_frms200-aug0.6-spTrue-saFalse-ArcMargin-SGD-epoch150/models already exists !!!
[error] checkpoint is null !
WARNING:torch.distributed.elastic.multiprocessing.api:Sending process 240349 closing signal SIGTERM
WARNING:torch.distributed.elastic.multiprocessing.api:Sending process 240350 closing signal SIGTERM
WARNING:torch.distributed.elastic.multiprocessing.api:Sending process 240351 closing signal SIGTERM
WARNING:torch.distributed.elastic.multiprocessing.api:Sending process 240352 closing signal SIGTERM
WARNING:torch.distributed.elastic.multiprocessing.api:Sending process 240353 closing signal SIGTERM
WARNING:torch.distributed.elastic.multiprocessing.api:Sending process 240354 closing signal SIGTERM
WARNING:torch.distributed.elastic.multiprocessing.api:Sending process 240355 closing signal SIGTERM
ERROR:torch.distributed.elastic.multiprocessing.api:failed (exitcode: 1) local_rank: 0 (pid: 240348) of binary: /home/asr/miniconda3/envs/wespeaker/bin/python
Traceback (most recent call last):
File "/home/asr/miniconda3/envs/wespeaker/bin/torchrun", line 33, in
sys.exit(load_entry_point('torch==1.12.1', 'console_scripts', 'torchrun')())
File "/home/asr/miniconda3/envs/wespeaker/lib/python3.9/site-packages/torch/distributed/elastic/multiprocessing/errors/init.py", line 345, in wrapper
return f(*args, **kwargs)
File "/home/asr/miniconda3/envs/wespeaker/lib/python3.9/site-packages/torch/distributed/run.py", line 761, in main
run(args)
File "/home/asr/miniconda3/envs/wespeaker/lib/python3.9/site-packages/torch/distributed/run.py", line 752, in run
elastic_launch(
File "/home/asr/miniconda3/envs/wespeaker/lib/python3.9/site-packages/torch/distributed/launcher/api.py", line 131, in call
return launch_agent(self._config, self._entrypoint, list(args))
File "/home/asr/miniconda3/envs/wespeaker/lib/python3.9/site-packages/torch/distributed/launcher/api.py", line 245, in launch_agent
raise ChildFailedError(
torch.distributed.elastic.multiprocessing.errors.ChildFailedError:
wespeaker/bin/train.py FAILED
Failures:
<NO_OTHER_FAILURES>
Root Cause (first observed failure):
[0]:
time      : 2024-02-16_09:42:09
host      : e7bcf3a85e2c
rank      : 0 (local_rank: 0)
exitcode  : 1 (pid: 240348)
error_file: <N/A>
traceback : To enable traceback see: https://pytorch.org/docs/stable/elastic/errors.html

Sorry, I didn't check shm volume.
I solved this error by making new container and add option "--shm-size=100gb".
It works fine. :D

I will close this issue


Consider passing RoborazziOptions to Compose Preview Support

My suggestion is to create a roborazziOptions(): RoborazziOptions function in the tester interface to set up the RoborazziOptions. However, we might want to access the annotations of the Preview function within roborazziOptions(). We could pass a ComposablePreview instance as a parameter, but I'm unsure if there's a more efficient approach.

This would be for default options right?
For options applying to a single Preview, I’d bet the best is to provide a @ RoborazziConfig annotation with params matching the options -and annotate your @ Previews with it.
then you can get that info via
AndroidComposablePreviewScanner()
  …
  .includeAnnotationInfoForAllOf(RoborazziConfig::class.java)

and map them in the tests with
ComposablePreview<AndroidPreview>.getAnnotation<RoborazziConfig>()
You can find some examples here:
https://github.com/sergio-sastre/Android-screenshot-testing-playground/tree/master/lazycolumnscreen-previews/roborazzi/src

I believe we have two main use cases for this:

Users can set up tests using @RoborazziConfig. We should add @RoborazziConfig to allow users to configure tests using a prepared annotation, as you suggested.

(In Roborazzi)
annotation class RoborazziConfig(xxxx)

class AndroidComposePreviewTester : ComposePreviewTester<AndroidPreviewInfo> {
  // This will be a new method of ComposePreviewTester
  override fun roborazziOptions(): RoborazziOptions {
     // How to access the annotation here?
     // options().composablePreview or passing as a parameter
     val someOptions = composablePreview.getAnnotation<RoborazziConfig>().xxxx
     return RoborazziOptions(xxx)
  }

  override fun test(composablePreview) {
      val roborazziOptions = roborazziOptions()
...
  }
}

https://github.com/takahirom/roborazzi/blob/main/roborazzi-compose-preview-scanner-support/src/main/java/com/github/takahirom/roborazzi/RoborazziPreviewScannerSupport.kt#L85C1-L85C34 (The current implementation of AndroidComposePreviewTester)

Users want to set the default diff tolerance or their custom annotations

(In user project)
class MyCustomComposePreviewTester : ComposePreviewTester<AndroidPreviewInfo> {
  override fun roborazziOptions(): RoborazziOptions {
     // How to access the annotation here?
     // options().composablePreview or passing as a parameter
     val someOptions = composablePreview.getAnnotation<UserCustomConfig>().xxxx
     return RoborazziOptions(xxx)
  }
}

I think we need to consider adding a new roborazziOptions() method to the tester interface and determine how we can pass composablePreview to roborazziOptions(), or explore other approaches.

So for me there are 3 use cases then:

Default Roborazzi options, set in the plugin
Per test Roborazzi Options set via a @RoborazziConfig provided by Roborazzi
Per test Roborazzi Options set via a custom annotation

I'd focus first on providing options 1 & 2
3rd is definitely harder to maintain and for more advanced users. I'd add it later, if ever.


[azservicebus] Use the DefaultAzureCredential.

 Looks like there were two issues, both of them just CI config related:

Bicep template wasn't properly formatting the SERVICEBUS_ENDPOINT variable. I'll file a bug that we should catch this kind of obvious incorrect formatting (or simply strip it out ourselves).
I didn't have the "environment var renaming" YAML in my ci.yml.

/azp run go - azservicebus


JWL media window not restored

If main window is not active when media playback ends or image is faded out (e.g. the operator clicked elsewhere in the meantime and didn't click back on OnlyM) JW Library media window stays minimized.

The system restricts which processes can set the foreground window. A process can set the foreground window only if one of the following conditions is true:

The process is the foreground process.
The process was started by the foreground process.
The process received the last input event.
There is no foreground process.
The foreground process is being debugged.
The foreground is not locked (see LockSetForegroundWindow).
The foreground lock time-out has expired (see SPI_GETFOREGROUNDLOCKTIMEOUT in SystemParametersInfo).
No menus are active.


How to use it with Autolayout?

Hi,
I saw the example is using 'setFrame:' to set the layout of the indicator view, but how can I use it with AL?

Hey. What happens if you use it with auto layout now? Does it not display correctly?

It does not seem to work with AutoLayout.

Fixed in 35533f5c0605891f0aee3b32c03b5c9c2872eda1


Add support for SSM Parameter Store parameters

The same underlying lambda extension allows access to AWS System Manager Parameter Store parameters (see docs here), in addition to secrets. However, as far as I can tell, the current version of this crate supports only secrets and not parameters.
This PR patches in support for parameters as well, including SecureString parameters (if the kms:Decrypt permission is available).

@Tom01098 let me know if this is a feature that should be part of aws-parameters-and-secrets-lambda and if so if any changes are needed from our internal patch above :) (Would have opened an issue first, but we already have this implementation for our own needs. We are just proposing to upstream it).

Hi @lazaroclapp, thank you for this PR! (And sorry it took me ages to get to this, GitHub didn't notify me 😢)
I'll review this shortly and get back to you :)

Thanks again for sharing this, it's a great feature to have in this package. This repo needs a little housekeeping which I'll do separately, then I'll release this as 1.0.0 :)
I'll also add a changelog and credit you for this.
Thanks!


Total API call factor-in Extensible / Standard API calls

In the new Apigee pricing (and the Subscription 2024), there's a distinction between Standard vs Extensible call in which 5 x Standard calls are counted as 1 Extensible call?
The result is of this cli https://github.com/apigee/apigeecli/blob/main/docs/apigeecli_organizations_reports.md is
currently combined.
This issue / request is to make the cli has an option to:

define API call types (Standard vs Extensible)
for the total, there needs to be the "effective total" in which 5 standard call is counted as 1

There's a dimension for this "proxy_deployment_type".


Reduce root disk io

Reserve a disk on head node to be used by graphite and carbon, this is to address #374

ubuntu@bcpc-vm1:/disk$ ls -l /opt/graphite
lrwxrwxrwx 1 root root 16 Jan 13 04:44 /opt/graphite -> /disk/3/graphite
drwxr-xr-x 4 hdfs hdfs 24 Jan 13 04:47 dfs
ubuntu@bcpc-vm1:/disk$ ls -l /disk/0
total 0
drwxr-xr-x 4 hdfs hdfs 24 Jan 13 04:47 dfs
ubuntu@bcpc-vm1:/disk$ ls -l /disk/1
total 0
drwxr-xr-x 4 hdfs hdfs 24 Jan 13 04:47 dfs
ubuntu@bcpc-vm1:/disk$ ls -l /disk/2
total 0
drwxr-xr-x 4 hdfs hdfs 24 Jan 13 04:47 dfs
ubuntu@bcpc-vm1:/disk$ ls -l /disk/3
total 0
drwxr-xr-x 9 root root 92 Jan 13 04:44 graphite

Also of note that Worker does use all 4 disks for yarn and hdfs
ubuntu@bcpc-vm3:/$ ls -l /disk/0
total 0
drwx------ 3 hdfs hdfs 15 Jan 13 13:32 dfs
drwxr-xr-x 5 yarn yarn 48 Jan 13 13:32 yarn
ubuntu@bcpc-vm3:/$ ls -l /disk/1
total 0
drwx------ 3 hdfs hdfs 15 Jan 13 13:32 dfs
drwxr-xr-x 5 yarn yarn 48 Jan 13 13:32 yarn
ubuntu@bcpc-vm3:/$ ls -l /disk/2
total 0
drwx------ 3 hdfs hdfs 15 Jan 13 13:32 dfs
drwxr-xr-x 5 yarn yarn 48 Jan 13 13:32 yarn
ubuntu@bcpc-vm3:/$ ls -l /disk/3
total 0
drwx------ 3 hdfs hdfs 15 Jan 13 13:32 dfs
drwxr-xr-x 5 yarn yarn 48 Jan 13 13:32 yarn

It would be nice instead of specifying disks two to three times in an environment file for the default attributes to have some intelligence here; probably as a BCPC wrapper around the now relatively generic Graphite recipes. (A wrapper attribute/cookbook file in BCPC.)
Could head_disks be automatically a subset of disks and could graphite_disk be a single disk automatically; should sufficient disks be present?
However, I appreciate how can we make this explicit and not magical. Regardless, I really don't want to have to specify disks more than once (and really I don't want to do that even) -- human error is too likely.


fix(build): set GO111MODULE=on

This ensures builds that are done within GOPATH use modules and avoids this error message:
"build flag -mod=vendor only valid when using modules"

/retest

/retest

Verify is broken because it requires NOT using go modules...


Updated links

The previous pull request had broken links. Fixed in this PR.

@mokabiru Looks like you have some merge conflicts. Can you rebase and fix those?


Content: New: CSPS's Teams Descriptions

[X] Translated?

Section to the site

[X] About
[ ] Guides

Please add the following to the CSPS in the organization section of the site.
CSPS_Blurb_fr[57].docx
2022.04.29_17-06-44-EDT.docx

Created pages in #180


ImportError: libinterface.so: cannot open shared object file: No such file or directory

While calling python3 callkahipfrompython.py, its strange that I am seeing this error, because I can see the file copied into the deploy folder, any way to fix this error?

This should work if you set the path to the lib correctly. (I think its LD_LIBRARY_PATH).
It should in principle also work if you run it in the deploy folder.
best
Christian

Hi Christian,
I tried running from deploy folder that that's what produced the error. Can you also check on your end?

But I was able to resolve it after setting LD_LIBRARY_PATH.


Support touchscreen input

My laptop has a touch screen but trying to control my phone with it doesn't seem to do anything at all. It would be nice if touch input was also supported.

Hmm, I thought a touch screen just generated mouse events.
Does it work with a mouse?

Works with a mouse. Touchscreen is just flat out ignored. Acts a a mouse elsewhere which is weird.It still shows the cursor going over the scrcpy windows but tapping/dragging does nothing.

I guess you need to catch https://wiki.libsdl.org/SDL_TouchFingerEvent
https://wiki.libsdl.org/SDL_MouseMotionEvent#Remarks does say that mouse motion can have a touch input as source so it seems consistent with the fact that moving works and not clicking.

Hello,
Do you have any idea to do that on the server side (Java application)?
I have tried to call MotionEvent.obtain with an array of coords and an array of properties but that seems to simulate only one click.
This feature would be nice for my laptop too :+1:

just mouse event

Any update on this?

Hi,
I started to implement it, but I have no touch screen, so I cannot test.
If someone want to test (and help to fix if it does not work), I pushed a branch: finger.

It seems to be way too sensitive towards long presses. And I don't think it's matching the location where I'm touching.

@parkerlreed Thank you for your feedbacks. I'm not very surprised :) I really need to get a laptop with a touchscreen.

I got a computer with a touch screen! (thanks @bonrry!).
Here is my current wip: finger.5.
It works in image viewers or OSMAnd, but not in webbrowsers (I can't zoom with multitouch in Firefox, while it works on the real device). I don't know why yet.

Seems to work now: finger.5.
Please give me your feedbacks. I will rewrite the commits properly when I have time.

Here are some binaries, if you can't build it:

a release for Windows: scrcpy-win64-v1.10-31-g783eb95.zip (SHA256: a286f7b4532e0b0a29fd758ba1f32826079eb621b7a2194cbfa3b02e3aa3b517)
the prebuilt server: scrcpy-server-v1.10-31-g783eb95.jar (SHA256: 942878b2eaa93930441865b0520ef1217aba7f8dbfb1a152e4713ec7a093f730)

Figured I'd post here too for good keeping

Merged in dev branch.

Quick question, if I update my files to reflect the changes you've made on the development branch can I expect touchscreen to work, or will I have to rebuild from source/ wait for the snap release? ??

Quick question, if I update my files to reflect the changes

Which files?
You can reflect the changes on the source files, then build from the (modified) sources, but then why not just take the dev branch and build?

I replicated all the changes to all the files you made on Oct 02 & 3rd. Rebooted and reloaded everything. Touchscreen still not recognised by scrcpy

What did you do exactly? What did you "reloaded"? If you edit the source files, you need to build from these new sources…

I noticed the last update to the Snap package was the 5th October so I tried re-installing with Snap using the edge channel. No touchscreen. I removed snap and I am now revisiting building from source (dev branch) but building from source has issues, which I´m looking into. To be more specific I get these errors after running meson x --buildtype release --strip -Db_lto=true
`WARNING: Project targetting '>= 0.37' but tried to use feature introduced in '0.48.0': console arg in custom_target
DEPRECATION: build_always is deprecated. Combine build_by_default and build_always_stale instead.
Build targets in project: 8
WARNING: Project specifies a minimum meson_version '>= 0.37' but uses features which were added in newer versions:

0.48.0: {'console arg in custom_target'}
Found ninja-1.8.2 at /usr/bin/ninja
When I switch to a non-root user to run Ninja, as the guide suggests, I get the error message:\ninja: error: opening build log: Permission denied.  So I try sudo ninjaand get the following[36/39] Generating scrcpy-server with a custom command.
(not invoking gradle, since we are root)
[39/39] Linking target app/scrcpy.
`

If I proceed to do sudo ninja install I get this error [0/2] Generating scrcpy-server with a custom command. (not invoking gradle, since we are root) [1/2] Installing files. Installing app/scrcpy to /usr/local/bin Stripping target 'app/scrcpy' using strip. Traceback (most recent call last):   File "/usr/local/lib/python3.6/dist-packages/mesonbuild/mesonmain.py", line 129, in run     return options.run_func(options)   File "/usr/local/lib/python3.6/dist-packages/mesonbuild/minstall.py", line 521, in run     installer.do_install(datafilename)   File "/usr/local/lib/python3.6/dist-packages/mesonbuild/minstall.py", line 343, in do_install     self.install_targets(d)   File "/usr/local/lib/python3.6/dist-packages/mesonbuild/minstall.py", line 436, in install_targets     raise RuntimeError('File {!r} could not be found'.format(t.fname)) RuntimeError: File 'server/scrcpy-server.jar' could not be found FAILED: meson-install  /usr/local/bin/meson install --no-rebuild ninja: build stopped: subcommand failed.

I ran the command sdkmanager --licenses and in Android-Studio I changed the SDK from Android 10 (Q) to Android 9 (Pie), which eliminated the above error and introduced a new one:
`> Task :server:compileDebugAidl FAILED
/usr/lib/android-sdk/build-tools/28.0.3/aidl: 1: /usr/lib/android-sdk/build-tools/28.0.3/aidl: Syntax error: redirection unexpected
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':server:compileDebugAidl'.

com.android.ide.common.workers.WorkerExecutorException: 1 exception was raised by workers:
java.lang.RuntimeException: java.lang.RuntimeException: java.io.IOException: com.android.ide.common.process.ProcessException: Error while executing process /usr/lib/android-sdk/build-tools/28.0.3/aidl with arguments {-p/usr/lib/android-sdk/platforms/android-29/framework.aidl -o/opt/scrcpy/server/build/generated/aidl_source_output_dir/debug/compileDebugAidl/out -I/opt/scrcpy/server/src/main/aidl -I/opt/scrcpy/server/src/debug/aidl -d/tmp/aidl5784619688143858877.d /opt/scrcpy/server/src/main/aidl/android/view/IRotationWatcher.aidl}
`

@unclehowell, the snap from the edge channnel now is built from the dev branch.

You rock pal. Keep up the great work.

hey @rom1v ! I was trying to get  this to work on my ubuntu touchscreen laptop as my phone display is dead. but i couldnt build this specific branch finger.5. I installed latest branch with install_release.sh and it worked fine. but there is no such script in this branch so i copied it over and ran it but i get error " with open('META-INF/MANIFEST.MF', 'r+', encoding='utf-8') as f:
FileNotFoundError: [Errno 2] No such file or directory: 'META-INF/MANIFEST.MF". can you help me? how can i build this?

but i couldnt build this specific branch finger.5

That's very old. The feature has been merged in the master branch for a long time.

I installed latest branch with install_release.sh and it worked fine.

OK, great! What's the problem then?

but there is no such script

Which script? What are you trying to do?

@rom1v Thanks for replying!

but i couldnt build this specific branch finger.5

That's very old. The feature has been merged in the master branch for a long time.

I installed latest branch with install_release.sh and it worked fine.

OK, great! What's the problem then?
it works fine except the touch feature. so i went searching i found this issue and thought that i should install finger branch. i didnt realize if was merged. sorry I'm a newbie. I have ubuntu 22.04 lts on my laptop and the touch works with even two finger zoom gestures. could this be a problem of ubuntu? do you have any suggestions?

but there is no such script

Which script? What are you trying to do?
i figured out how to run finger.5 branch but i still get following error when i run it with ./run x [server] ERROR: Exception on thread Thread[main,5,main] java.lang.IllegalArgumentException: Expecting 6 parameters 	at com.genymobile.scrcpy.Server.createOptions(Server.java:71) 	at com.genymobile.scrcpy.Server.main(Server.java:132) 	at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) 	at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:339) ERROR: Server connection failed  but i don't think it really matters now that i know that it has been merged into master.

@rom1v Thanks for replying!

That's very old. The feature has been merged in the master branch for a long time.

I installed latest branch with install_release.sh and it worked fine.

OK, great! What's the problem then?

it works fine except the touch feature. so i went searching i found this issue and thought that i should install finger branch. i didnt realize if was merged. sorry I'm a newbie. I have ubuntu 22.04 lts on my laptop and the touch works with even two finger zoom gestures. could this be a problem of ubuntu? do you have any suggestions?

but there is no such script

Which script? What are you trying to do?

i figured out how to run finger.5 branch but i still get following error when i run it with ./run x [server] ERROR: Exception on thread Thread[main,5,main] java.lang.IllegalArgumentException: Expecting 6 parameters 	at com.genymobile.scrcpy.Server.createOptions(Server.java:71) 	at com.genymobile.scrcpy.Server.main(Server.java:132) 	at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) 	at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:339) ERROR: Server connection failed but i don't think it really matters now that i know that it has been merged into master.

problem description: the touch works for laptop for clicking , scrolling or zooming but it is not recognized at all in scrcpy window
when i start a session.

What is the reslut of scrcpy --version?

scrcpy 2.5 https://github.com/Genymobile/scrcpy
Dependencies (compiled / linked):

SDL: 2.0.20 / 2.0.20
libavcodec: 58.134.100 / 58.134.100
libavformat: 58.76.100 / 58.76.100
libavutil: 56.70.100 / 56.70.100
libavdevice: 58.13.100 / 58.13.100
libusb: - / 1.0.25

OK, it's not the latest version (2.6.1), but it should still work.
I just tested on my compter with a touch screen, it works.
Run scrcpy -Vverbose, do some clicks with your touchscreen.

I guess you posted just an excerpt, but in before the move events, you should get a down event, and after the move events, you should get an up event, correct?

Can you test with another device on the same computer?

yeah, i just tested on another phone redmi 10A , android 11 and its the same thing. Also because previously some people have mentioned getting a cursor on touch. On my ubuntu  laptop when i use touch the cursor disappears and the touch is used like mobile phone. and when i use the mouse again the cursor reappears. if that means anything.

do you need any additional information about my computer? i can provide that

If that's the same problem on several devices, the problem is on the client. So maybe the SDL version has a problem with that.
Just to be sure, can you install and test the very last version (2.6.1), there were some changes related to mouse events (even if touch is expected to work also on 2.5).

I'm onto that. I'll let you know

@rom1v Thanks a lot! ('-')7. I just installed latest release and it works, on both devices. I'm sorry I troubled you without first testing on the latest version. There's another issue i want to mention on Samsung when i first connect the cable then the allow file access pop up comes. if I tap allow it instantly kills the session. here are the logs
utton=000000 buttons=000000 VERBOSE: input: touch [id=160] up   position=822,2073 pressure=1.000000 action_button=000000 buttons=000000 DEBUG: Demuxer 'video': end of frames DEBUG: Receiver stopped WARN: Device disconnected DEBUG: quit... DEBUG: Controller stopped DEBUG: Server disconnected DEBUG: Server terminated

There's another issue i want to mention on Samsung when i first connect the cable then the allow file access pop up comes. if I tap allow it instantly kills the session.

That's "expected": when you change between USB modes, the device resets the USB layer, and the adb connection is closed.
This is not specific to scrcpy: if you run separately adb shell or adb logcat, they will also be closed at the exact same moment.

Oh okay. and thanks again!


Raspbian OS randomly shuts down

Raspbian OS will randomly shut down. Following firmware update at the following link does not resolve this issue. I can run the pi-top for hours and not have an issue. Other times, it will do a soft shutdown on me randomly, within 30 seconds of boot, to a couple hours after boot.
This doesn't seem to affect just Raspbian, however, it isn't as frequent in Sirius OS. I've had 2 occasions where it shut me down in Sirius, but too many to count right now on 2 hands for Raspbian.
https://knowledgebase.pi-top.com/en/knowledge/eeprom-update-for-diy-edition

Can you post this on https://forum.pi-top.com/? This is likely not an SDK issue, and we can provide better support for you there. Thanks!


Lib updates

Another batch of library updates. As usual, I've kept it to one library per commit, in case you wish to cherry-pick :)

I'd say that's it for this batch. Please also have a look at my commit notes on:

05d79df: the .dat file just has a single entry for this library. I suspect it misses several, as the existing entry just references org/tukaani/xz/common, and the library has several more modules probably used by apps (e.g. lz and lzma).
5d53765: similarly, no entries for the other two related modules (android/content for Content Sharing and android/content/res for Resource Management)
3a34728: here the .dat file had several entries I could find no match for in the library code. This might very well be due to me not being a Java dev, and thus having missed something ;)

As in the past: If you can accept these changes, please merge. I'll open another batch then as soon as time permits.


Update third-party license information

Docs Build status updates of commit 60efa56:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

licensing-information.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 the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Auto increment number (non primary key) with AppSync and DynamoDB

** Which Category is your question related to? **
API
** What AWS Services are you utilizing? **
AppSync, DynamoDB
** Provide additional details e.g. code snippets **
Let's say I have below schema:
type Item @model {
  category: String!
  name: String!
  tagNumber: String!
}

What I want to implement:

id
category
name
tagNumber

3c174388-054b-431f-a0f4-d835acdd273a
food
cheese cake
1.1

63b189d0-597e-47f3-8dcf-996da87101a8
book
harry porter
2.1

87749278-acae-4de1-b0ff-84d6b86506cc
food
steak
1.2

fd2334a9-ff76-4ae2-9ca5-834d998f91e7
book
bad blood
2.2

If I want to add a new item, which is a book called Joke, it should have a tagNumber 2.3, because it belongs to the 2nd category in the table, and it is the 3rd item in that category.
Why do I want to implement this? Because the tagNumber is easiest for people, not computers, to look up items.
Is there a way to implement this with AppSync and DynamoDB? I can think of the hard way to do it: use pipeline resolver. If the category specified exists, find an item with the latest createdAt timestamp in that category with tagNumber x.y, and assign x.<y+1> to the new item. If the category specified doesn't exist, count categories N, and assign <N+1>.1 to the new item.

You can achieve this with a pipeline resolver but DynamoDB does not support auto-incrementing values like this in general. You can use DynamoDB UpdateItem operations along with an expression like "SET myNum = myNum + :val" to atomically increment an integer but this gets more complicated with your setup when using a tag like "1.1", "1.2", etc.

It is suggested by customer support that I maintain a table called "category_count".

category
categoryId
categoryCount

food
1
2

book
2
2

Such that whenever I plan to add a new item with category=x to the backend, I lookup category_count table first.

If exists a row where category=x: row.categoryCount+=1, return {categoryId: row.categoryId, categoryCount: row.categoryCount}.
If not exists a row whether category=x: insert a new row with category=x, categoryId=count(category_count), categoryCount=1, return {categoryId: row.categoryId, categoryCount: row.categoryCount}.

The lookup requires a pipeline resolver. After the backend returns {categoryId, categoryCount} it is easy to construct a tagNumber=${categoryId}.${categoryCount} and write the item with tagNumber to backend.
The solution is out there but it is really painful to deal with pipeline resolver... Let me try :(

@YikSanChan We are working on designs that will make working with pipeline resolvers a lot easier. Please see #1055 and offer feedback. It is going to go through another round of review and design and it would be great to cover this use case.

Isn't the Example 1 supposed to do this? Increment the value by one

Hi,
Maybe it is possible too with @versioned.
But in two steps, first by reading the version and then using it to update item.

Coming back to this, if anyone wants a working example of an atomic counter (increment, decrement) with DynamoDB and AppSync, here's something I'm using:
{
    "version": "2018-05-29",
    "operation": "UpdateItem",
    "key" : {
      "id" : $util.dynamodb.toDynamoDBJson($context.arguments.candidateID)
    },
    "update": {
      "expression" : "set #upvotes = #upvotes + :updateValue",
      "expressionNames" : {
           "#upvotes" : "upvotes"
       },
       "expressionValues" : {
           ":updateValue" : { "N" : 1 }
       }
    }
}

I took the logic that @dabit3 wrote and created a bit more a generic approach. It is documented on #3681.


Add file test3.md

Hi @JHelberg2 ,
please Add another file
cheers
@JensHelberg

Not now, i habe t.o create a release First

Maybe later

No time


i do not know how to deploy plugin service

I not want to extract image features by myself, so i want to deply plugin service, but  i can not find the plugin path after compiling, i can not find bin path, how can i deploy plugin service

close


Bad Results with Example Config

The default example here gives me very bad and mangled results. Replacing the linked sdxl model to this one fixes the issue for me.
Does it need the commented out vae enabled or is the base model this links to bad?
I noticed this when i tried to learn to make a lora and eventually plugged in a different sdxl model because i tried everything else to get a good result and it worked immediately.
Can i also make a more complex and involved example and donate it to this repo? The current examples are very bare bones and i would like to share a more real project to help others learn. And also something anyone can take and just run for training to get a good known working example to work off of. I, of course, will take the images myself of a real world object and base the lora on that to not have any licensing issues.

We would definitely appreciate a contribution to help folks learn and have better examples :)

I finally was able to come back to this after - checks calender - over a month and finishing my custom dataset manager for a better experience.
However in the meantime you made a video about the topic. It seems you actually would have everything required on hand already.
Would you share the config.yaml files the training program generates? I understand that the interface/tool itself is for the enterprise version, but i assume the backend is this training program and we could just use those as a base. This would also save me a lot of time of testing parameters (and gpu thermal paste).
I still have yet to pick out a real world photographed object for an example, but i already got a video game character and style picked out as example. Specifically Saints Row 3 because the character editor allows for different outfits and close up zooms for details which yielded good initial results.


Add core 'ports' functionality to docker context exporter

After merging #432. Part of #383.

Yeah I'm just trying things right now.

@coollog @loosebazooka I think this is review-able, finally.
I got it working with the DockerfileTemplate in this commit, but ended up removing it anyway for efficiency.


Populate history from external source.

@roscom suggested in tty-prompt issue "Secondly, I currently manage the history in a redis cache, outside of rb-readline which is then available to all users. On session start up, the REPL currently populates rb-readline history from the redis cache. That would be a handy feature to be able to do that in your tty-* modules."

I too have a REPL and wish to write a history file and load it back when the user restarts the REPL.  The ability to pre-populate the history with a file or proc would be a nice addition.

Hi Corey,
Thanks for using tty-reader and expressing enthusiasm for this feature. I'm currently working on releasing tty-prompt and pastel gems and have more things on my open-source plate to get done. So I'd love it if you could work on this feature and submit PR.
There is already a history file that saves lines in memory. The way I imagine this working is by having an argument in TTY::Reader::History, let's call it source, that would expose some generic APIs for reading and writing. And then have a specific source like TTY::Reader::Source::File that would know how to deal with files loading and retrieval. This way we would pave the way for future extensions like HTTP, DB and other sources. Any thoughts?


Detect Data Drift Custom Step

Please include answers to these questions as part of your pull request
In the GitHub webUI, use the Write tab to modify the Markdown text that is part of the pull request. For each question simply place an X inside the square brackets, [X], that represents your answer. Make sure there are no blanks inside the brackets, otherwise MarkDown doesn't render properly. Using the Preview tab while editing this form, you can see the formatted/rendered version of the message.

Q1: Confirm that you have the right to submit the code that is being contributed. Please consider the origin of your code and confirm you have the appropriate rights to make the submission subject to the Apache 2.0 license that applies to everything in this repository of custom steps. If so, follow the instructions for the Contributor Agreement (which is based on the industry-standard Developer Certificate of Origin (DCO)).

[X] Yes, I have the right to submit the contributed code on behalf of myself, my company, or any other owner of the code. I have also attached my signed copy of the DCO to this message.
[ ] No

Q2: Confirm that your contribution does not include any personally identifiable information (PII), for example, in any examples used in your README file.

[X] My contribution does NOT include PII data
[ ] My contribution includes PII data

Q3: Confirm your contribution does not include any encryption or other export-controlled technology.

[X] My contribution does NOT contain encryption or other export-controlled technology
[ ] My contribution includes encryption or other export-controlled technology

ContributorAgreement.txt

Note: I am currently working on updating the UI texts to make it easier to understand how the step works

Thanks for adding additional context in the readme to explain use cases and explaining how baseline and current are defined.
When choosing "Visualize the results" I get distribution graphs for the selected variables. But the titles for the proc univariate graphs are missing. Had a quick look at the SAS code and saw that you're defining and clearing title statements for each proc call, except for the proc univariate calls.  Shouldn't this be fixed?
Also would have expected the graphs for baseline and current to show next to each other for easy comparison. It seems that is possible as described in this SAS blog entry: https://blogs.sas.com/content/iml/2016/03/09/comparative-panel-overlay-histograms-sas.html by using a class statement? Btw. you could also overlay baseline and current, but if they're too similar (as to be expected) that might not show well. Any thoughts, perhaps something for a future version and just mention as a possible enhancement in the readme?
Also noticed that you added a checkbox to the UI for tab: Definitions, but didn't update that screenshot. Could you fix this?

@snlwih thank you for the feedback the title has been fixed and screenshots have been updated.
In the README I added a section on possible future enhancements.

SAS Internal Due Diligence Review - COMPLETED on 16AUG2024


Add a validator function on the dropdown menu

Use case
When trying to validate a form where there is a dropdownmenu widget selection it hard to validate because it does not have a option to validate and  you have to do add a manualy check like if statement.
Proposal
Add an onValidate function to the DropdoenMenu class that will work  with the forms validations.

Closing this as a duplicate of https://github.com/flutter/flutter/issues/152131

Shall i implement this by changing the Textfield to textformfeild and add a validator as argument?


Renaming long filenames: scrollbar hides text

Steps:

Select a file to rename in treeview
Press F2
The small dialog to rename file shows up on the top

Here the filepath should be fully visibile. Instead, because the filename is wider than field width, the horizontal scrollbar shows up. But that overlaps and partially hides the filename itself (see screenshot).
HTH
Cheers

I'm seeing the same, possibly related to https://github.com/atom/atom/issues/5542? /cc @nathansobo

Issue still reproduces, ubuntu, Atom 1.2.1


No tty disabled colored output

Love the library. I may implement the colorized output formatter with the colors disabled without a tty for a project of mine . Is this a feature you have considered or planned?

@rphillips What do you mean by that? Currently, if no TTY is attached the formatter automatically switches to uncoloured output of the following format:
time="Mar 13 16:50:44" level=debug msg="Started observing beach" animal=walrus number=8
time="Mar 13 16:50:44" level=info msg="Temperature changes" temperature=-4

or you rather want to retain the original format but without colours?

I am thinking the original format but without colours.

This can be done if you implement the color theme I told you in an other issue.
Just make a color scheme "NoColor", and force tty.
Or am I missing something?

@bastienbc I still think that these are two separate issues. I will add a switch here to disable logfmt output. And depending on TTY availability default output may be coloured or not. And separately there will be support of color schemes based on https://github.com/mgutz/ansi styling rules.

Thank you!


Docker is not running error

Apologies for the somewhat light bug report, I've just setup this fork after finding in the other neotest-pest repo - the setup went quite smoothly though when looking to run tests I'm getting a Docker is not running. error.  I'm a bit new to testing in Neovim so maybe this is outside the bounds of this plugin but any help would be appreciated!
Running tests through the artisan cli seems to work just fine.  Also I see you've added support for Sail, in this particular instance I am running Herd as opposed to Sail for my dev environment.
Anyway, thanks much for taking on the maintenance burden of this plugin!

Ohh, interesting! I do all of my development on Linux and as such have no experience with Herd, though I am aware of it through colleagues.
I'd say it's definitely within the bounds of what I'm trying to achieve with this adapter, so no worries there!
Few questions:

When you run your tests, what command(s) do you run to make that happen?
Does Herd create any special binaries or configuration within the project? sail creates vendor/bin/sail, which makes it pretty easy to detect. Just trying to think about how to detect a Herd project.
If not 2, any other ideas for detecting a project running with Herd?

Oh, I see! To me that sounds like it might be wrongly thinking sail exists - Curious to hear, are you able to run vendor/bin/pest directly?

Hey!  Yep, I can run the pest binary directly.

Hmm, that sounds super strange - though I did just make a bunch of changes yesterday (with a bunch of configurability!) that may have fixed it. Can you try with the latest version of the adapter?

Okay!  We're getting somewhere, aha!
The Docker error is no longer showing up but I'm getting this when I try to run a test function/file.  Any thoughts?
Also thank you for all the help so far, it's very appreciated!

Hmm, "No test output file found!" typically means the test process crashed midway and wasn't able to create the XML output file that the adapter parses to determine test results. The junit bit is expected[^1]
That said, the relative path you have there (storage/app/...) gets set when the adapter detects the presence of sail. I'm tinkering with detecting whether sail is actually running, but for now it's just enabled by default if the file vendor/bin/sail is present. It sounds to me like your project has sail installed, but you don't use it? If that's the case, you'll just need to override sail_enabled to false in your config:
require('neotest').setup({
    adapters = {
        require('neotest-pest')({
            sail_enabled = false
        }),
    }
})

If it's still crashing after that, here's how you can nail that down:

Add log_level = vim.log.levels.DEBUG to your require('neotest').setup({})
Try running your test(s) again
Check the neotest log (I don't know where that will be on mac, but mine is at ~/.local/state/nvim/neotest.log), looking for a debug log entry of Command: and it should show you the exact command being run. Here's an example of mine when running with sail:

{ "vendor/bin/sail", "bin", "pest", "/var/www/html/tests/Feature/LocationAgnosticJobListTest.php", "--log-junit=storage/app/junit-20240222-091915", "--filter", "can change departments quickly" }

versus without:
{ "vendor/bin/pest", "/home/axel/Git/neotest-pest/tests/Feature/UserTest.php", "--log-junit=/tmp/nvim.axel/isXpIm/3", "--filter", "class constructor" }

If it's not sail, try running that command directly, see what happens? ... if it is still sail with sail_enabled = false, let me know! Would be a weird edge case I think.

[^1]: Pest uses PHPUnit under the hood, which involves junit somewhere along the line. The flag for setting that filename is --log-junit, which is why it's named that, but honestly I should probably change the default filename format to pest-[date] instead.

Wow!  Thanks for the detailed response - so after doing some testing here's what I've come to:

You were right sail was installed in the repo, in fact it seems like sail is automatically installed when using the Laravel installer.
I set sail_enabled to false and the plugin still seemed to look for the sail binary:
a. my command output: { "vendor/bin/sail", "bin", "pest", "/var/www/html/tests/Unit/UserTest.php", "--log-junit=storage/app/junit-20240222-115735", "--filter", "a designer sees their projects" }
Removing sail from my project and unsetting sail_enabled = false in my config seems to have done the trick and now I am able to run tests.

Maybe this is just a comedy of errors on my part...or like you say, perhaps a weird edge case.  Regardless things are working on my end, and quite well, thank you!  I'm happy to do anymore debugging if you need it!

I have encountered similar issues when testing a Laravel project since Sail is automatically installed with a new installation. Setting the sail_enabled config to false does not turn the feature off. Instead, configuring it with a function resolves the issue. As a newcomer to Lua, I am not familiar with the problem. Perhaps the issue relates to type conversion since one is a function and the other is a boolean value?
require('neotest-pest')({
  sail_enabled = function ()
    return False
  end
})

Well, the way I've written the config should support either callable or non-callable values. I'll tinker with that, but glad to hear setting it to a function solved it for you =]


Add keccak-*

Keccak-256 is required for ethereum canonical hash support.
Keccak and SHA3 are related. SHA3 is built on top of Keccak.
see https://en.wikipedia.org/wiki/SHA-3#Instances for how SHA3 parameterizes Keccak.
keccak-256:  0x1A
keccak-448:  0x1B
keccak-512:  0x1C
keccak-768:  0x1D
keccak-1024: 0x1E

@jbenet this PR is targeting the standing "The unified multicodecs theory" PR's branch (multiformats:spec/update), so you can merge it into that PR.

The instances should be the same as for SHA3 (224, 256, 384, 512).

Not really, numbers next to keccak describe internal core size. The length of hash defines output length.
See: https://en.wikipedia.org/wiki/SHA-3#Instances

@Kubuxu it seems a bit backwards using the internal state size in your naming as opposed to the output size, which what everyone refers to usually?

Even sha3 is referred to with its output size:
 sha3-224,           ,                         0x17
 sha3-256,           ,                         0x16
 sha3-384,           ,                         0x15
 sha3-512,           ,                         0x14
 shake-128,          ,                         0x18
 shake-256,          ,                         0x19
+keccak-256,         ,                         0x1A
+keccak-448,         ,                         0x1B
+keccak-512,         ,                         0x1C
+keccak-768,         ,                         0x1D
+keccak-1024,        ,                         0x1E

keccak-X can have arbitrary length, sha-X has constant length.
The closest function we have in set currently is shake-X where X is number of bits defining overall security, in which case keccak's numbers should be divided by two.

But from the other side, it is not how the function is defined.

Thanks @axic @Kubuxu
Names are now:
keccak-224,         ,                         0x1A
keccak-256,         ,                         0x1B
keccak-384,         ,                         0x1C
keccak-512,         ,                         0x1D

re-pinging @jbenet 😸  https://github.com/multiformats/multicodec/pull/19#issuecomment-255801510

hey-- sorry for delay. this LGTM, but i haven't looked at it deeply enough to know if there's any conflict or issue. +1 to keccak-* in general. @diasdavid is the one controlling the multicodec table, he's the best one to merge this.

LGTM. Going to merge this one and add a note in the table that the numbers represent the core size. Will also open issue to reference the need for them to be implemented in multihash

On the keccak naming-- i think @Kubuxu is right here-- we should name it along what the creators name them (which i believe is the internal state size). Multihash already takes care of handling output size, so that shouldn't be too much of a concern. The bigger thing with the fn code is making sure people are super clear on which function they're using (internal size)

From: http://keccak.noekeon.org/specs_summary.html

Keccak is a family of hash functions that is based on the sponge construction, and hence is a sponge function family. In Keccak, the underlying function is a permutation chosen in a set of seven Keccak-f permutations, denoted Keccak-f[b], where b ∈ {25, 50, 100, 200, 400, 800, 1600} is the width of the permutation. The width of the permutation is also the width of the state in the sponge construction.

I think none of us were entirely correct. The state width is defined as r + c:

We obtain the Keccak[r,c] sponge function, with parameters capacity c and bitrate r, if we apply the sponge construction to Keccak-f[r+c] and by applying a specific padding to the message input.

The previous naming proposal used keccak-<c>. Naming it with keccak-<b> seems like a reasonable idea.
The reference implemention has these combinations:
        case 0: // Default parameters, arbitrary length output
            InitSponge((spongeState*)state, 1024, 576);
            break;
        case 224:
            InitSponge((spongeState*)state, 1152, 448);
            break;
        case 256:
            InitSponge((spongeState*)state, 1088, 512);
            break;
        case 384:
            InitSponge((spongeState*)state, 832, 768);
            break;
        case 512:
            InitSponge((spongeState*)state, 576, 1024);
            break;

This matches the current naming merged by @jbenet.

@axic thank you for the very clear explanation!


Update dependencies

Coverage: 87.569%. Remained the same when pulling 58e1c905c72bb3d4707c1aa57a14bccce28aa04c on update-deps into 4474d774f34a323871d1a4208e868052bd89886f on main.


devicetree: sam0 gclk

@galak @nzmichaelh I have been looking at the changes to the sam0 gclk framework.  I am curious if you plan to add some additional clock-cells or otherwise expand the configuration?  At the moment, the atmel,samd2x-gclk.yaml compat defines one clock cell for the clkctrl_id.
How do you propose to handle the other components of the gclk module (genctrl and gendiv)?  I have noticed that a few compatibles allow for assignment of a "clock-generator" (the sam0-rtc compat) or "gclk" (sam0-adc compat).  However, other elements of the gclk config are missing.
I created a compatible for the sam0 gclk configuration a while ago.  Here is a copy of that compatible.  This compatible lets you define the configuration of a particular gclk.  Please let me know if you think this would be useful and I should submit this as a PR.
/*
 * Copyright (c) 2020 Scanimetrics Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

description: ATMEL GCLK (Generic Clock Controller)

compatible: "atmel,sam0-gclk"

include: [clock-controller.yaml, base.yaml]

child-binding:
    description:  GCLK child node
    properties:
        clock-generator:
            type: int
            required: false
            description: generic clock generator

        clock-source:
            type: int
            required: false
            description: generic clock generator source oscillator

        clock-standby:
            type: int
            required: false
            description: generic clock generator run in standby

        clock-divsel:
            type: int
            required: false
            description: generic clock generator divide selection

        clock-div:
            type: int
            required: false
            description: generic clock generator division factor

        clock-frequency:
            type: int
            description: output clock frequency (Hz)
            required: true

        label:
            required: true
            type: string
            description: Human readable string describing the device (used by Zephyr for API name)

Hi @sslupsky I haven't thought about this area.  You need a gclk in DeviceTree so that other peripherals can reference it, which (I assume) is why that was added.  Apart from that the clocks are all configured explicitly in the common soc_samd2x.c code.
If you want, prototype up what a DeviceTree driven version of soc_samd2x.c looks like.  You'll also need to address constants like SOC_ATMEL_SAM0_MCK_FREQ_HZ in soc.h.

Yeah, this is the problem with the way the clocks are currently configured, all the clocks are hard coded.  I think it is preferred if they were configurable to some degree in the devicetree.
In my use case, to minimize power consumption I need to use the OSC8M for certain peripherals and the XOSC32K for others and the OSCULP32K for yet others.  Further, some clocks need to turn off during sleep, others need to continue to run during sleep (RUNSTDBY) and yet others need to only run when being used (ONDEMAND).  What I am finding is that you have to go and modify every device driver you use to ensure the clocks are configured properly ... which creates a large amount of overhead because now you need to maintain the changes to the drivers.
The most important things I see at the moment that cannot be done with devicetree are:

setting the correct clock generator connected to the peripheral
setting the correct divider for the clock generator (and hence the frequency)
setting the source oscillator for the generator
setting the RUNSTDBY and ONDEMAND bits for the generator
setting the RUNSTDBY and ONDEMAND bits for the source oscillator


Add New Feature

Hello and thanks for this amazing software, It really is
I wanted to request a new feature but unfortunately I didn't know how to explain it right
1. Adding an ability to search a list of proxy toward a specific target URL like "google.com" for example
2. Also if possible, Adding a Success key box which can have the value of e.i: "Google" (which is google's title value after loading) in order to tell you if that IP is banned by targeted website (in this case "Google.com") or not

an Image for second request:

Thanks for all your efforts

A "Success key" wouldn't be necessary. If we use a proxy, we cannot use the Google website, as it's banning some proxies. We shall use a website that isn't banning them.

For new features use issues with "new feature" label.


[EPIC] Knuu release v0.15.0

### Tasks
- [ ] https://github.com/celestiaorg/knuu/issues/123
- [ ] https://github.com/celestiaorg/knuu/issues/38
- [ ] https://github.com/celestiaorg/knuu/issues/484
- [ ] https://github.com/celestiaorg/knuu/issues/511
- [ ] https://github.com/celestiaorg/knuu/issues/386
- [ ] https://github.com/celestiaorg/knuu/issues/431

Migrated to milestone: https://github.com/celestiaorg/knuu/milestone/1


Use importlib.metadata.version instead of deprecated pkg_resources call

pkg_resources is now deprecated and we see a warning in our CI for its use with mongomock for Python 3.8+.
/opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/site-packages/mongomock/__init__.py:79: in <module>
    from mongomock.__version__ import __version__
/opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/site-packages/mongomock/__version__.py:1: in <module>
    import pkg_resources
/opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/site-packages/pkg_resources/__init__.py:121: in <module>
    warnings.warn("pkg_resources is deprecated as an API", DeprecationWarning)
E   DeprecationWarning: pkg_resources is deprecated as an API

This PR uses the importlib.metadata.version when the Python version is 3.8+.

Looks like this closes #848 and #850, perhaps it could be merged?

Could this change be released?


Simpler package layout for natvis files

I don't think we need the wordier file paths.

Seems reasonable.
I initially renamed the .natvis files expecting them to carry over into the PDBs and showing up in .nvlist. For some reason that didn't happen. (I'll sink some more time into investigating this when I can.)
The rationale behind moving them into a folder was to declutter the crate root. Doing that felt naive and I think leaving them in the crate root and marking them "hidden" (by convention) does a better job at that.
The only concern I have is whether this affects publishing. "Hidden" files (i.e., files starting with a .) follow special rules. Can you --dry-run a cargo publish to make sure they aren't getting lost? Not that the visualizers are stable enough to be of much help at this time, but things are moving.

I just published an update:
https://github.com/microsoft/windows-rs/releases/tag/0.53.0
Please do kick the tires and let me know if you find any issues. Thanks again for the help!

Running .nvlist (WinDbg Preview) on a re-targeted binary displays both .natvis files (named <crate>-<index>.natvis), dumping the contents produces the expected files, and dx-ing the respective expressions delivers the desired results. (VS 2022 Preview still fails to expand the expressions.)
LGTM.


One missing translation causes global language change to en in genText()

Replace global(!) change of language (language=en) with return(tab["en"])

Done

Wow that was a bad bug! Glad that it got corrected.


Env var for verbose logging

It would be nice to have an option to see more verbose logging for troubleshooting

closing. this can be done in the config.json:
...
"argsTransport": {
        "level": "warn",


ENH: add visualisation capabilities to new Alignment class

includes other methods (filtered, trim_stop_codons,  omit_gap_pos, etc) required by the drawing methods
Summary by Sourcery
Enhance the new Alignment class with drawing capabilities and additional sequence handling methods. Implement tests to verify the new functionalities, including drawing, filtering, and trimming sequences.
New Features:

Introduce drawing capabilities to the new Alignment class, allowing for the creation of visual representations such as sequence logos, coevolution plots, and information plots.

Enhancements:

Add methods to the Alignment class for filtering and trimming sequences based on specific criteria, such as gap fractions and stop codons.
Implement new methods for handling sequence positions, including take_positions and take_positions_if, to facilitate selective sequence analysis.

Tests:

Add new tests for the drawing capabilities of the Alignment class, including tests for dotplot functionality and coevolution drawables.
Introduce tests for the new filtering and trimming methods, ensuring correct behavior when handling gaps and stop codons.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>3
Details

211 of 244 (86.48%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.05%) to 92.083%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/cogent3/init.py
4
5
80.0%

src/cogent3/core/new_alignment.py
203
235
86.38%

Totals

Change from base Build<PHONE_NUMBER>6:
0.05%

Covered Lines:
33476

Relevant Lines:
36354

💛  - Coveralls


Add Healthcheck Endpoint to Eventgen

Adding a healthcheck endpoint to determine controller and server connections to Redis
The controller will periodically (every 30 minutes) hit the endpoint and evaluate the connection statuses.

The CI seems failed.


Add not-in-publishing-api-fix-segments-mode.csv

This is a subset of the redirects in
router-data-import/not-in-publishing-api.csv, where the route type is
prefix, and the segments mode is unspecified. These should have a
segments_mode of preserve, but due to the import rake task not
computing the default, are incorrectly set to exact.
This file is being added so that these redirects can be re-imported
once the import rake task is fixed, to fix the data in the Publishing API.

Can you give a little more context on this? I'm having trouble following what's going on here.

Can you give a little more context on this? I'm having trouble following what's going on here.

During the firebreak, I generated this file router-data-import/not-in-publishing-api.csv and ran the redirects:import rake task (in the Short URL Manager) with it, creating some redirects in the Short URL Manager, and Publishing API.
The Short URL Manager always sends an explicit value for the segments_mode of a redirect, so the segments mode was set to ignore where it wasn't specified in the router-data-import/not-in-publishing-api.csv file. Some of the prefix type redirects in the router-data-import/not-in-publishing-api.csv file don't specify a segments mode, and when router-data sets these up through the router-api, the default will be preserve. Because the redirects:import rake task didn't account for this, some redirects were created with the incorrect segments mode.
These redirects haven't been removed from router-data yet, as due to this issue, the Publishing API does not have the correctly matching data. To get to that point, my plan is to fix the rake task to explicitly set a default value following the same logic in the router-api (#93) and then update the existing redirects by re-running the redirects:import rake task (#94).
This specific commit adds the CSV file to the repository, just to keep a record of what is happening. After the migration is finished, this whole directory can probably be deleted.
Does this help? If so, it would be useful to know what clarifications could be made to the commit message.


Feature request: move mod input, mod runner, mod output into sage_core

Hello Michael,
I've been experimenting with running sage using a rust API built on tower/tokio/axum.  I am in a good place with a fork, but to get things semi-working, I had to move some code around as a proof-of-concept that I could get this library running in a web app environment.
I wanted to get your thoughts on moving some of the building blocks of the CLI into core, or alternatively publishing a lib target for the sage-cli crate (the path I took on my fork, as it was a little less work than refactoring the codebase).

All of the IO stuff was purposefully moved out of sage_core to enable compiling it for targets that don't support tokio (like WASM, https://github.com/lazear/sage/issues/77) - this has the side benefit of making the sage_core library pure from an IO perspective, but does complicate things.
In light of this, publishing a lib target for the cli crate is the best path forward. I would caution that this might not be the best way to interface with axum - sage_core is fully synchronous and blocking, and designed to use as much compute resources as possible (maximizing RAM and CPU usage).

Thanks for your reply.  I did notice that it is blocking, and had to wrap it in a tokio task to get it working with axum.  I spent about 3 days just hacking something together as a proof of concept.
I appreciate the information with regards to memory and cpu usage.  If you are open to contributions, my team would be interested in implementing quality-of-life features for a web based environment.
Let me know if you have any thoughts about that -- maybe just maintaining a fork on our end is okay but we would like to give back, since this is such a cool and impressive library.  Just not sure in what capacity you'd accept those kinds of contributions.

From that linked ticket #77

We could either put tokio behind a feature flag, or just lift the mzML parsing and fasta parsing out of the sage_core crate entirely - I think this might be the cleanest/most ideologically pure way to do it. I will play around with this when I get some free time and see how it feels - please reach out when you are ready and we can have a quick chat to figure out any other internal API changes that might need to be made.

I think it makes sense to add a feature flag for tokio support.  I would be interested in helping implement that if you're open to something like that.

If you are open to contributions, my team would be interested in implementing quality-of-life features for a web based environment. Let me know if you have any thoughts about that -- maybe just maintaining a fork on our end is okay but we would like to give back, since this is such a cool and impressive library. Just not sure in what capacity you'd accept those kinds of contributions.

What kind of QoL features do you have in mind? I have to imagine that wanting to directly interface with the rust codebase (as opposed to say, spinning off a background job) from a web-based environment is somewhat niche, but I am open to accepting contributions if they make sense! For instance, building the main executable as a library and just providing a bin\main.rs seems like a straightforward move that doesn't make the codebase harder to work with for the majority use case.

I think it makes sense to add a feature flag for tokio support. I would be interested in helping implement that if you're open to something like that.

At this point, all of the mzML parsing and IO stuff has already been lifting out - it's somewhat more painful to work with now, but it does give a clear separation of concerns. I'm not sure if it's worth the hassle to move that code back into the sage_core library

Hey, apologies for the late reply.  Working on this proof-of-concept is a side project I pick up and put down every few days.  I need to ramp back up on what I was doing before I posted this and see if I can give you a good answer to your first question.
On the second part, that makes sense.  I'm very new to Rust, so a lot of this is new to me, especially how Rust supports async operations.
Will post back soon.  Thanks for your reply, Michael!

No rush on my part :)

I was able to jump back in today, and remembered that you mentioned that Sage is thirsty for RAM and CPU.  So I cranked the settings on my Docker container to use 60gb of ram and 8 cpus and I started to get output from Sage on smaller MZML files and FASTA files.
I am going to close this for now, because I think this is a successful POC for what we wanted to achieve.
This is an awesome tool, and I want to thank you for your time and effort.  I am sure I will be back with more questions/potential contributions.  For now we are going to put a pin in our POC since we are prioritizing other features with what we are building.

Ah, one last thing @lazear ...
I ended up having to add a couple of things to our fork to support the API proof of concept.
First, I  added  a from_json to the impl of the Input struct to support setup using JSON, since our API is taking the CLI's JSON format over the network rather than reading it from a file.  We might be able to write to a temp file or something to get around that, but it might be useful to be able to just generate the Input using a JSON string.  If you're open to that idea, I would be more than happy to open a PR to add this function.
And lastly, I published the CLI crate so that it could be added to the Cargo.toml.  If you're open to adding this, we could move off our fork.
Here's the changes I made:
/// crates/sage-cli/src/input.rs

pub fn from_json(json_content: String) -> anyhow::Result<Self> {
        return Ok(
            serde_json::from_str(&json_content).with_context(|| "Failed to parse input JSON")?
        );
    }

and

/// crates/sage-cli/Cargo.toml

[lib]
name = "sage"
path = "src/lib.rs"

[[bin]]
name = "sage"
path = "src/bin/sage.rs"

I'm very new to Rust, so there are likely better ways to implement these things.  Let me know what you think!


Enhanced control when creating structs

I ran into some trouble when trying to import structs that were common
across services. This is my attempt to fix that problem. I added some
syntax so you can control the destination module for your models.
@jparise @jyang15

r+


@Model console warning

Component emitted event but it is neither declared in the emits option

It has been set in the latest verson.


Add Pageable, Link.

issue
Support Link Header #33
Change detail
TODO

Codecov Report

Merging #35 into master will increase coverage by 3.94%.
The diff coverage is 84.37%.

@@             Coverage Diff              @@
##             master      #35      +/-   ##
============================================
+ Coverage     24.44%   28.39%   +3.94%
- Complexity       54       60       +6
============================================
  Files            36       39       +3
  Lines           454      486      +32
  Branches         58       60       +2
============================================
+ Hits            111      138      +27
- Misses          338      343       +5
  Partials          5        5

Impacted Files
Coverage Δ
Complexity Δ

...om/sys1yagi/mastodon4j/extension/ListExtensions.kt
100% <100%> (ø)
0 <0> (?)

.../main/java/com/sys1yagi/mastodon4j/api/Pageable.kt
25% <25%> (ø)
1 <1> (?)

...va/com/sys1yagi/mastodon4j/api/method/Timelines.kt
47.82% <66.66%> (+2.82%)
5 <0> (ø)
:arrow_down:

.../src/main/java/com/sys1yagi/mastodon4j/api/Link.kt
95.45% <95.45%> (ø)
5 <5> (?)

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 6be86ca...0bc2946. Read the comment docs.


Log in/ Register

Allow users to login/register

@Cancy0605 when users try to register an account, they shouldn't be asked to input the 'id'. I think this attribute can be deleted.

Sounds resonable and I‘v finished it.

Finished


docs: Update documentation styling guide with new guidelines.

Summary:

Revised http://zulip.readthedocs.io/en/latest/README.html to include guidelines for using macros and FontAwesome text icons.
Minor fixes (missing FontAwesome file icon, improper grammar in Stream actions macro)

Automated message from Dropbox CLA bot
@synicalsyntax, it looks like you've already signed the Dropbox CLA. Thanks!

Merged, thanks @synicalsyntax!  I added b513e63f5e5e82e887d9503e9da98f080fb9a862 on top to make the whitespace consistent; we should probably put some commentary on having blank lines adjacent to headings in our style guide (or ideally a lint rule if we can figure out how to do that) since it makes markdown more readable.
Thanks @synicalsyntax!


NDIS_SIZEOF_PCI_DEVICE_CUSTOM_PROPERTIES_REVISION_1

If you specify NDIS_OBJECT_TYPE_PCI_DEVICE_CUSTOM_PROPERTIES_REVISION_1 as directed in the description of the Header.Revision field, you may want to use the defined NDIS_SIZEOF_PCI_DEVICE_CUSTOM_PROPERTIES_REVISION_1 in the Header.Size. Depending on Windows version and supported NDIS version defines, the actual size of the NDIS_PCI_DEVICE_CUSTOM_PROPERTIES may be larger than expected for a revision 1 structure.

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

ID: 4cb005a4-2051-6f0b-089e-de4657130213
Version Independent ID: b098c7c2-03e6-8f2c-003a-46298bd2d164
Content: _NDIS_PCI_DEVICE_CUSTOM_PROPERTIES (ntddndis.h) - Windows drivers
Content Source: wdk-ddi-src/content/ntddndis/ns-ntddndis-_ndis_pci_device_custom_properties.md
Product: windows-hardware
Technology: windows-devices
GitHub Login: @duncanmacmichael
Microsoft Alias: dumacmic

Hi @druske, thanks for the insightful comment. I do understand what you're saying and most NDIS structures do use that pattern for the Header.Size, but this is not the case with this structure. For NDIS_PCI_DEVICE_CUSTOM_PROPERTIES, NDIS is the one who provides this information to the miniport driver, and the Header field description reflects that by saying "NDIS sets the … Size member to sizeof(NDIS_PCI_DEVICE_CUSTOM_PROPERTIES)". I have confirmed that this is correct by examining internal source code, so here we are merely stating what the system does, not any sort of recommendation for that field. Hope this helps.


How to process data streams using Kafka Streams

Topic Suggestion
How to process data streams using Kafka Streams
Writing sample(s):
Include any links or writing samples - to help our team better gauge your writing quality.

https://airbyte.com/tutorials/postgresql-database-to-snowflake
https://cube.dev/blog/building-an-apache-echarts-dashboard-with-react-and-cube
https://blog.replit.com/getting-started-with-solidity-on-replit

Proposal Submission
Proposed title of the article
How to process data streams using Kafka Streams
Proposed article introduction
[Languages] How to process event streams using Kafka Streams
In a distributed application system, different parts will need to communicate to ensure the system remains fast and scalable. One way of achieving such communication is through a message broker like Apache Kafka. Kafka allows for sending of messages from producer to consumer application. However, consumer applications may need to transform the data they receive into a more suitable form. In order to simplify this data processing, Kafka Streams was developed.
Kafka Streams is a tool that is used to process event streams from topics in a Kafka cluster. It eliminates the difficulties associated with processing data streams in individual Kafka consumers and provides a functional way to perform stream processing. Kafka Streams is packaged as a Java dependency and will typically be deployed with a Spring boot application. It also has support for other languages in the JVM ecosystem like Scala and  Kotlin. In this article, you will learn how to aggregate, join and window data using Kafka Streams.
Key takeaways

How stream processing works
How to aggregate and join data using Kafka Streams
How to perform windowing on data using Kafka Streams

Article quality
I follow the approach of introducing Kafka Streams API and its importance in distributed application architecture. I also go over how to perform windowing on data which is not common in other tutorials.
References

https://kafka.apache.org/25/documentation/streams/core-concepts
https://kafka.apache.org/documentation/streams/
https://www.confluent.io/blog/introducing-kafka-streams-stream-processing-made-simple/

@vicradon
Closing due to inactivity - if you'd like to continue working on the topic. Please let us know.


All web page links to docs are rendered in forums as FlowForge | Run Node-RED in Production

Current Behavior
Dropping a link to a place in the docs on a forum (or anywhere they render the title) results in showing FlowForge | Run Node-RED in Production
Expected Behavior
If possible, a title conducive to the page and section would be better
Steps To Reproduce
Visit node-red forum and paste a link in a reply (e.g. https://flowforge.com/docs/user/concepts/#flowforge-concepts ) - you will see in the preview...

Environment

FlowForge version: 1.2.0
Node.js version: 16
npm version: NA
Platform/OS: Windows
Browser: Chrome latest as of writing

We should generalize for all the web pages not just docs.  This will help with SEO too.
In addition, we need to have unique meta-descriptions too.

To get started, I would suggest the following titles:
flowforge.com  - FlowForge: DevOps for Node-RED
flowforge.com/features - FlowForge features to improve Node-RED development
flowforge.com/pricing - FlowForge pricing makes it easy to get started
flowforge.com/blog - Ideas, hints and tips for Node-RED and FlowForge
flowforge.com/docs - Technical documentation for FlowForge users

@iskerrett you're listing descriptions here, right? Not page titles?

I was listing page titles.

The "FlowForge: DevOps for Node-RED" is fine, but the others are descriptions of what you'll find on the page. The titles would be "Features", "Pricing", "Blog", etc.?
e.g:


[Relay] fix error in ANF (too agressively inline atomic expression and create free variable).

Thanks for contributing to TVM!   Please refer to guideline https://docs.tvm.ai/contribute/ for useful information and tips. After the pull request is submitted, please request code reviews from Reviewers.

@tqchen can you merge?

Thanks @MarisaKirisame , this is now merged, please request more reviewers from the reviewer list next time :)


Adde writesonic website to free-hit

Related Issue
Closes #1168

dd screenshots to preview the changes  -->
Checklist

[x] My code adheres to the established style guidelines of the project.
[ ] I have included comments in areas that may be difficult to understand.
[x] My changes have not introduced any new warnings.
[x] I have conducted a self-review of my code.

@Prajwal0225 Json file error as well as PR title error


Utilise 'username' instead of 'user' in configuration

https://github.com/servicebinding/spec#well-known-secret-entries

Integrated into main, thanks @ryanemerson !


Browser tab does not close after authentication in some cases

I am using WinUiEx.WebAuthenticator with OidcClient library for authentication in my MAUI app.
Here, the web browser does not close after a redirect to the app (on clicking "Open in MAUI app") if the user was not already logged in on that browser.
On the other hand, if I log in on the browser manually beforehand and then try logging in using the desktop app, then the browser opens but you don't have to re-enter your credentials and closes after you click "Open in MAUI app" button in the browser.
This issue occurs in both Chrome and Edge.
The relevant piece of code which calls the method of this class is here:-
internal class WebAuthenticatorBrowser : IdentityModel.OidcClient.Browser.IBrowser
    {
        private readonly string _callbackUrl;

        public WebAuthenticatorBrowser(string callbackUrl = null)
        {
            _callbackUrl = callbackUrl ?? null;
        }
        public async Task<BrowserResult> InvokeAsync(BrowserOptions options, CancellationToken cancellationToken = default)
        {
            try
            {
                var callbackUrl = string.IsNullOrEmpty(_callbackUrl) ? options.EndUrl : _callbackUrl;

                var authResult =
                    await WinUIEx.WebAuthenticator.AuthenticateAsync(new Uri(options.StartUrl), new Uri(callbackUrl));
                var authorizeResponse = ToRawIdentityUrl(options.EndUrl, authResult);

                return new BrowserResult
                {
                    Response = authorizeResponse
                };
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
                return new BrowserResult()
                {
                    ResultType = BrowserResultType.UnknownError,
                    Error = ex.ToString()
                };
            }
        }

This is just how oauth works when using the users preferred browser. All apps using this workflow have this happen


[Feature request] git only commit changes done by versions

Thanks for this useful tool :)
Current behavour
If I want to bump the version of my project I use versions patch. But it does not only create a commit with increased version, it also commits all changes.
Expected behavour
It would be usefull if my default only the version changes by this tool are commited.
Workaround
My current workaround is to temporarly stash changes, bump version and restore stashed changes.
git stash
versions patch
git stash apply

Indeed, the tool does git commit -a which picks up all modified files. Should probably omit the -a and git add the files modified explicitely. Thought I do think that -a might be useful in some situations like when -c modifies additional files, so I guess it should be made an options. Will have a look later.

Fixed in 8.0.0 which will only git add files modified by the program. There is a new --all option to restore previous behaviour of adding all modified files.


Add Lexer#stream()

The reason we shouldn't just make Lexer a transform stream is so you can reuse a single lexer on multiple input streams.
However: with this implementation, horrible things will happen if you call stream() again before the first one is closed; specifically, the two streams will be interleaved based on which input stream is readable first. If you don't use states, you might not notice this unless you look at the offset/line/column information.
Should stream() automatically clone the lexer to avoid this behavior? Should we make Lexer a transform stream so you can just call clone() to get a new, independent stream?
stream() automatically calls reset() because switching to streaming halfway through your input doesn't sound like a good idea.
Closes #20.

switching to streaming halfway through your input doesn't sound like a good idea.

Agreed!
This doesn't do anything about token boundaries, does it? I recall you raised some concerns about a stream API from #18.

This doesn't do anything about token boundaries, does it?

Correct. It is up to the user to push data at token boundaries.

As for

Should stream() automatically clone the lexer to avoid this behavior?

Probably, yes. We haven't needed to you yet, but it probably would make sense for Lexers to keep track of lastIndex themselves; then clone() is cheap since we won't have to re-compile the RegExp.

Probably, yes.

Done.

Are streams compelling? Would you use them? :-)

Streams are harder than they should be for various reasons. It is quite useful to be able to do this:
fs.createReadStream(wherever)
.pipe(split(/(\n)/))
.pipe(lexer.clone())
.pipe(new Parser())
.on('data', console.log)

(module disgusting Node .on('error', reject)s everywhere because the stream API is broken)
But it's somewhat more difficult—or perhaps just not conventional—to write parser() like this than it is to write a recursive descent parser.
Here's a non-trivial example, one that parses s-expression-like sequences such as foo ((bar) baz) qux, and emits the result of each line as it is parsed.
class Parser extends Transform {
  constructor() {
    super({objectMode: true})
    this.stack = []
    this.result = []
  }
  process(tok) {
    switch (tok.type) {
      case 'lpar':
        const inner = []
        this.result.push(inner)
        this.stack.push(this.result)
        this.result = inner
        break
      case 'rpar':
        if (!this.stack.length) {
          throw new Error("I'm not gonna match your parentheses for you")
        }
        this.result = this.stack.pop()
        break
      case 'word':
        this.result.push(tok.value)
        break
      case 'nl':
        this.flush()
        break
      case 'space': break
    }
  }
  flush() {
    if (this.stack.length) {
      throw new Error("Aren't you forgetting something?")
    }
    if (this.result.length) {
      this.push(this.result)
      this.result = []
    }
  }
  _transform(chunk, _, cb) {
    try {
      this.process(chunk)
      cb()
    } catch(e) {cb(e)}
  }
  _flush(cb) {
    try {
      this.flush()
      cb()
    } catch(e) {cb(e)}
  }
}

Another option for the stream API is to buffer input until we get a regex match that doesn't extend to the end of the buffer—with an optional maximum buffer size like 1MB—and have a method that signals no more input, or perhaps simply a flag to feed() like TextDecoder#decode.
lexer.feed('some inp', {stream: true})
lexer.feed('ut some more input', {stream: true}
lexer.feed('the last of the input')

buffer input until we get a regex match that doesn't extend to the end of the buffer

I thought you said that still isn't correct? https://github.com/tjvr/moo/issues/18#issuecomment-286163965

I thought you said that still isn't correct?

It's not correct, though it would give the correct result in the example I gave. Where it wouldn't give the correct result is if you had regexes like /[a-z]+/ and /\d+(?:[Ee]\d+)?/ and fed the input as 103e followed by 23, because the latter regex would match 103, which stops before the end of the buffer.
The rule here is that for every valid token, all non-empty prefixes of that token must also parse as a single token. As long as that's true, the buffering method works fine.

for every valid token, all non-empty prefixes of that token must also parse as a single token

Okay. That seems like a good way to do this. :-)

The rule here is that for every valid token, all non-empty prefixes of that token must also parse as a single token. As long as that's true, the buffering method works fine.

Actually, this is less reasonable than I first thought :(
Doesn't that mean that given the language foo | foobar, we wouldn't correctly lex foob, ar?

Doesn't that mean that given the language foo | foobar, we wouldn't correctly lex foob, ar?

Correct.


[AKS] Honor addon names defined in Azure CLI

Description

AKS server treats addon names and addon config keys as case insensitive, and store them in DB as it is in input. For example, we have both logAnalyticsWorkspaceResourceID and loganalyticsworkspaceresourceid in our DB and both are valid. However, in the public document we're only giving examples of logAnalyticsWorkspaceResourceID.
This change makes Azure CLI always convert the keys to the name defined in Azure CLI. (The name defined in Azure CLI is the same as public document), so that customer get the right name back.
Testing Guide

Create a AKS cluster.
Run az aks enable-addons -a kube-dashboard -g testrg -n testcluster
The name of kube-dashboard addon name should be change from "KubeDashboard" to "kubeDashboard"

History Notes

This checklist is used to make sure that common guidelines for a pull request are followed.

[x] The PR title and description has followed the guideline in Submitting Pull Requests.

[x] I adhere to the Command Guidelines.

@robbiezhang

AKS

hi @KaiqiZhang would you pls address comments? today is Code complete date, would you like to catch this release?

hi @KaiqiZhang would you pls address comments? today is Code complete date, would you like to catch this release?

Oh, sorry for late. Will do it soon.

hi @KaiqiZhang just want to double confirm, this change will not cause existing users' breaking change right?

hi @KaiqiZhang just want to double confirm, this change will not cause existing users' breaking change right? little concern because it changed existing output

It's a long story. 2 months ago, we did a breaking change on the server side. All the keys are converted to lower cases. Based on the IcM at that time and discussion in the team, we reverted the change. Some customer cares about the case because they're using json query in their script. With this change in Azure CLI, customers can change the case back if it's necessary for them. (customer can still use different case in Terraform, Postman, etc.)
Back to this question, it's possible that customer see different addon key if disable, re-enable a specific addon. But it aligns to our public document. I suggest we can mention this change in the change log.


Storage Explorer is throwing error for Azure Stack

Storage Explorer Version: January 2020 (Version 1.12.0)
Build Number: 20200116.10
Platform/OS: Windows Server 2016 & Windows 10
Architecture: x64
Regression From:  No idea
Bug Description
Following this documentation to configure Azure Storage explorer for Azure Stack
https://docs.microsoft.com/en-us/azure-stack/user/azure-stack-storage-connect-se?view=azs-1910#export-and-then-import-the-azure-stack-hub-certificate
and getting this error

Steps to Reproduce
Tried all the steps using SAS URI or connectionstring
Expected Experience
Unable to access any contains, table and queue under it
Actual Experience
Additional Context

Issue got resolved as I was missing Azure Stack APIs. thanks

Glad you had it figured it out.
The screenshot in step 8 of the article referenced above is incorrect.  It should be:

I'll contact the Azure Stack PM to have that corrected.


Implement minimal accessibility snapshots

I am leaving the feature undocumented until it is no longer experimental

cc @gerardo-rodriguez or @spaceninja do you mind taking a look as well?

cc @gerardo-rodriguez or @spaceninja do you mind taking a look as well?

I can help review as well! I probably won't be able to get to this until late today or Monday, FYI.

@gerardo-rodriguez @Paul-Hebert I think I've gotten to all the feedback, except for the role="presentation" conversation which can be a follow up PR

@gerardo-rodriguez @Paul-Hebert I think I've gotten to all the feedback, except for the role="presentation" conversation which can be a follow up PR

Cool, my approval still stands. This is looking great 🙂


[0.29][IOS 7] Can't find variable: Uint8Array

Test on real device(4s) with IOS 7.0.4.

Please provide a stack trace - we can't tell if the issue is within React Native or some other code.

Can\'t find variable: Uint8Array

<unknown>
    index.ios.js:12
loadModuleImplementation
    require.js:122
guardedLoadModule
    require.js:58
_require
    require.js:49
global code
    require-0.js:1

Here is my code in line 12:
let a = new Uint8Array(1);

I'm not sure if iOS 7 supports Uint8Array. Does this code work in Safari on iOS 7?

It's ok in safari.
I'm using socket.io-client in react native, and in react native 0.26, there is no this problem

Strange, I just test the Uint8Array in rn 0.26, it has the same problem. But I was using the socket.io with no problem. I'll try to dig more about this.

Have someone fixed it?

Same problem here
2016-09-09 22:52:41:133 Courier[821:60b] LocationManager didChangeAuthorizationStatus 0
2016-09-09 22:52:42.540 [error][tid:com.facebook.react.JavaScript] Can't find variable: Uint8Array
2016-09-09 22:52:42.601 [fatal][tid:com.facebook.react.RCTExceptionsManagerQueue] Unhandled JS Exception: Can't find variable: Uint8Array
2016-09-09 22:52:42.777 [warn][tid:com.facebook.react.JavaScript] Unable to symbolicate stack trace: Bundle was not loaded from the packager
2016-09-09 22:52:43.092 [error][tid:com.facebook.react.JavaScript] Module AppRegistry is not a registered callable module (calling runApplication)
2016-09-09 22:52:43.102 [warn][tid:com.facebook.react.JavaScript] Unable to symbolicate stack trace: Bundle was not loaded from the packager
2016-09-09 22:52:43.134 [fatal][tid:com.facebook.react.RCTExceptionsManagerQueue] Unhandled JS Exception: Module AppRegistry is not a registered callable module (calling runApplication)

As of RN 0.34, React Native only supports iOS 8+ which supports TypedArrays so this issue is unlikely to be fixed since only the latest version of React Native is supported.

I've solved this problem by add global.Uint8Array = require('typedarray').Uint8Array at top of index.ios.js. Remember to install typedarray module. Hope this help!