Switch to emacs mode in mu4e view mode

Evil masks most of the keybindings that are set by mu4e-view-mode. Since
this is a read-only buffer anyway use Emacs for that mode.

@hlissner Are you happy for this to get merged?  Thanks!  :+1:

Thanks!

In my experience the evil-collection keybindings work good enough - at least so far I did not mind them. This change surprised me, not sure about other mu4e users, but I will revert this in my private config.

@agraul I found that several of my most commonly used key bindings where masked even when in evil mode.  Case in point is mu4e-view-scroll-up-or-next.  Since these bindings didn't work I looked at other email modes to see if there is a convention on how to fix it and took heed from the wanderlust config: https://github.com/hlissner/doom-emacs/blob/576eb40b501213b4707b542b6ab5d13c1538414f/modules/email/wanderlust/config.el#L73
I would also propose that since mu4e-view-mode is a read-only view it makes sense that those bindings should follow what is documented in the mu4e manual.

I see. I personally expect to be able to navigate inside the mail buffer with the same keybindings I use in other buffers, e.g. scrolling up and down with C-f, C-b,  C-d, C-u. In my opinion it would be better to take the missing keybindings (e.g. mu4e-view-scroll-up-or-next) upstream and add them to evil-collection than removing the evil keybindings.

I would also propose that since mu4e-view-mode is a read-only view it makes sense that those bindings should follow what is documented in the mu4e manual.

It is still a buffer of text, just like opening a file read-only. I don't get why it should be handled differently from other read-only files.
In the end, this is a subjective matter. Either way is good as long as the user is happy and I don't mind having this reverted in my personal config. I just wonder if this (breaking) change is necessary in Doom upstream.

@agraul Then how about putting it in motion mode?
(add-hook 'mu4e-view-mode-hook #'evil-motion-state)

Evil's motion mode is meant as a "normal-lite". Evil's motions should be available, without many of the keybinds for extraneous plugins.

Motion mode overrides quite a few of the default mu4e keybindings, but does not provide the evil-collections keybindings. I think this is actually the worst of the three discussed options.
Someone else on Discord asked why this was decided so it seems I am not the only one that got surprised. I still think that using evil-collections' mu4e bindings should be the default for evil users. It can be overridden for evil users who prefer emacs bindings for mu4e in their personal configs and I think this is in more line with expectations than the other way around. Again, for me personally it is not that big of an issue and I just have it reverted, just thinking that the default should be the other way around.

I just mask the few irritating evil bindings I've found, see https://tecosaur.github.io/emacs-config/config.html#viewing-mail,code--5

Understood. I've reverted it in 7a276db.


ADD RADIX SORT

ADD IN SORT FOLDER

assign me

ok

Created PR #82

I would like to implement it in Java. Plz assign me.


Extreme latency on Safari

We are seeing about 1 second latency on Safari trying to play sounds. This issue is not present on Chrome.

 But please see https://github.com/luanpotter/audioplayers/issues/591, I presented a workaround.
Unless it takes 1 second the second time you play as well, then it's something else (not pre-loading).

Our personal opinions about Safari are irrelevant when it is within the 98% of browsers in use.

Closing this due to reports of this being fixed on newer versions. Feel free to open a new issue in case of this still happening


Add Map Vs Stores section and populate with first draft content

Add Map Vs Stores section and populate with first draft content.
Please review this initial draft content and let me know if you see any issues, what changes need to be made, and what needs to be added, andprovide a few bullet points for the map area; look for Need Input 01, etc.

Hey @seanmooretechwriter, I updated the file with a couple of examples for map substreams usage.

@Eduard-Voiculescu Thank you for the input and assistance!
I've made some updates and added a bit more to the document. Would you mind taking another look and letting me know if anything comes to mind that we might be able to add to build it out more? Or do you think we're getting close to providing enough information on maps vs stores?
Thanks again!

LGTM

@Eduard-Voiculescu Thanks again for the review and input. I'll get this merged and integrated into the live documentation next.
@maoueh Please let us know if you would like to add, remove or modify any of this content prior to the merge. Thank you.


io.r2dbc.spi.Result.getRowsUpdated

io.r2dbc.spi.Result.getRowsUpdated  can not  return  a affected num   in  version  1.0.0.RELEASE  no signal was emited like onerror  oncompleted  onnext
version 0.9.2.RELEASE  is ok
			public void onNext(Result t) {
				t.getRowsUpdated().subscribe(new TSubscriber<Long>() {
					@Override
					public void onSubscribe(Subscription s) {
						s.request(1);
					}

					@Override
					public void onNext(Long t) {
						num = t.intValue();
					}
				});
			}

If you would like us to spend some time helping you to diagnose the problem, please spend some time describing it and, ideally, providing a minimal sample that reproduces the problem.


Downloading Youtube's Watch Later playlist repeats actions

Please follow the guide below

You will be asked some questions and requested to provide some information, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your issue (like this: [x])
Use the Preview tab to see what your issue will actually look like

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2019.02.08. If it's not, read this FAQ entry and update. Issues with outdated version will be rejected.

[x] I've verified and I assure that I'm running youtube-dl 2019.02.08

Before submitting an issue make sure you have:

[x] At least skimmed through the README, most notably the FAQ and BUGS sections
[x] Searched the bugtracker for similar issues including closed ones
[x] Checked that provided video/audio/playlist URLs (if any) are alive and playable in a browser

What is the purpose of your issue?

[ ] Bug report (encountered problems with youtube-dl)
[ ] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[x] Question
[ ] Other

The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your issue

If the purpose of this issue is a bug report, site support request or you are not completely sure provide the full verbose output as follows:
Add the -v flag to your command line you run youtube-dl with (youtube-dl -v <your command line>), copy the whole output and insert it here. It should look similar to one below (replace it with your log inserted between triple ```):
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'-v', u'http://www.youtube.com/watch?v=BaW_jenozKcj']
[debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251
[debug] youtube-dl version 2019.02.08
[debug] Python version 2.7.11 - Windows-2003Server-5.2.3790-SP2
[debug] exe versions: ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4
[debug] Proxy map: {}
...
<end of log>

If the purpose of this issue is a site support request please provide all kinds of example URLs support for which should be included (replace following example URLs by yours):

Single video: https://www.youtube.com/watch?v=BaW_jenozKc
Single video: https://youtu.be/BaW_jenozKc
Playlist: https://www.youtube.com/playlist?list=PL4lCao7KL_QFVb7Iudeipvc2BCavECqzc

Note that youtube-dl does not support sites dedicated to copyright infringement. In order for site support request to be accepted all provided example URLs should not violate any copyrights.

Description of your issue, suggested solution and other information
Good day. In order to avoid copying and pasting of URLs, I simply add them to Watch Later and wrote a config file which downloads the playlist. The download log is the following:
C:\Users\Casa\Documents>youtube-dl --config-location C:\Users\Casa\AppData\Roaming\youtube-dl\config2.txt
Removing cache dir C:\Users\Casa/.cache\youtube-dl ..
[youtube:watchlater] Downloading login page
[youtube:watchlater] Looking up account info
[youtube:watchlater] Logging in
[youtube:watchlater] Checking cookie
[youtube:watchlater] WL: Downloading webpage
[download] Downloading playlist: Watch later
[youtube:watchlater] playlist Watch later: Downloading 2 videos
[download] Downloading video 1 of 2
[youtube] Downloading login page
[youtube] Looking up account info
[youtube] Logging in
[youtube] Checking cookie
It works, but there are repeated actions, like "Downloading the login page". Is there any way to avoid repeating those actions?
The config file is as follows:
--rm-cache-dir
-u "username" -p "password"
-o C:/Users/Casa/Documents/Youtube-dl/%(title)s.%(ext)s
https://www.youtube.com/playlist?list=WL
--mark-watched
I apologize in advance if this is not the right place to post this question, and thanks for any help.

+1


Can't set default browser in Plasma 5 (possible general problem with mimetypes)

Describe the bug
It's been brought to me attention that in the plasma graphical iso, the nixos-manual desktop file opens in Kate by default https://github.com/NixOS/nixpkgs/issues/86095.
Manually going to the application settings and setting Firefox as the default doesn't change this. The nixos-manual script does the following to open it in the proper application in any DE
https://github.com/NixOS/nixpkgs/blob/98481cfdfa4259be55afbb469fea5a171cd5a083/nixos/modules/misc/documentation.nix#L54
Running xdg-open $the_manual_html_file on any html file default opens it in Kate.
I examined the mimeinfo.cache in /run/current-system/sw/share/mimeinfo.cache, and it is associated to open html files in Firefox.
Other issues that I believe are duplicates https://github.com/NixOS/nixpkgs/issues/66965 https://github.com/NixOS/nixpkgs/issues/85484
To Reproduce
Steps to reproduce the behavior:

Get an html and a system with firefox installed
xdg-open the file
Watch it open in kate

Expected behavior
The html file would open in Firefox, the correctly associated app.
Notify maintainers
cc @ttuegel

Manually going to the application settings and setting Firefox as the default doesn't change this. The nixos-manual script does the following to open it in the proper application in any DE

It looks like the "Default Applications" section only effects http/https schema. For html files, you need to select "File Associations" -> "text/html" -> "Application Preference Order".

It looks like the relevant value here is "InitialPreference" in the desktop file. This is InitialPreference=9 in kate but InitialPreference=1 by default. We could patch Firefox to increase this value or patch kate and kwrite to decrease their values. Relevant values:
mbauer@dellbook:~ $ grep -nRH '^InitialPreference=' /run/current-system/sw/share/applications
/run/current-system/sw/share/applications/okularApplication_mobi.desktop:166:InitialPreference=1
/run/current-system/sw/share/applications/org.kde.dolphin.desktop:102:InitialPreference=10
/run/current-system/sw/share/applications/okularApplication_ghostview.desktop:165:InitialPreference=7
/run/current-system/sw/share/applications/org.kde.k3b.desktop:189:InitialPreference=5
/run/current-system/sw/share/applications/org.kde.okular.desktop:165:InitialPreference=7
/run/current-system/sw/share/applications/kfmclient_dir.desktop:9:InitialPreference=9
/run/current-system/sw/share/applications/org.kde.mobile.okular_dvi.desktop:157:InitialPreference=2
/run/current-system/sw/share/applications/org.kde.mobile.okular_xps.desktop:157:InitialPreference=2
/run/current-system/sw/share/applications/org.kde.knetattach.desktop:177:InitialPreference=6
/run/current-system/sw/share/applications/org.kde.kwalletmanager5.desktop:156:InitialPreference=6
/run/current-system/sw/share/applications/org.kde.mobile.okular_plucker.desktop:157:InitialPreference=2
/run/current-system/sw/share/applications/kfmclient_war.desktop:7:InitialPreference=9
/run/current-system/sw/share/applications/org.kde.mobile.okular_pdf.desktop:157:InitialPreference=2
/run/current-system/sw/share/applications/org.kde.mobile.okular_md.desktop:156:InitialPreference=2
/run/current-system/sw/share/applications/org.kde.mobile.okular_fb.desktop:157:InitialPreference=2
/run/current-system/sw/share/applications/okularApplication_fax.desktop:165:InitialPreference=1
/run/current-system/sw/share/applications/okularApplication_ooo.desktop:165:InitialPreference=2
/run/current-system/sw/share/applications/okularApplication_txt.desktop:165:InitialPreference=3
/run/current-system/sw/share/applications/org.kde.mobile.okular_tiff.desktop:157:InitialPreference=2
/run/current-system/sw/share/applications/okularApplication_xps.desktop:165:InitialPreference=7
/run/current-system/sw/share/applications/okularApplication_dvi.desktop:165:InitialPreference=7
/run/current-system/sw/share/applications/okularApplication_comicbook.desktop:165:InitialPreference=7
/run/current-system/sw/share/applications/okularApplication_fb.desktop:165:InitialPreference=7
/run/current-system/sw/share/applications/org.kde.mobile.okular_chm.desktop:156:InitialPreference=2
/run/current-system/sw/share/applications/org.kde.mobile.okular_comicbook.desktop:157:InitialPreference=2
/run/current-system/sw/share/applications/org.kde.mobile.okular_fax.desktop:157:InitialPreference=2
/run/current-system/sw/share/applications/okularApplication_chm.desktop:165:InitialPreference=3
/run/current-system/sw/share/applications/okularApplication_pdf.desktop:165:InitialPreference=8
/run/current-system/sw/share/applications/okularApplication_tiff.desktop:165:InitialPreference=1
/run/current-system/sw/share/applications/org.kde.kmail2.desktop:196:InitialPreference=10
/run/current-system/sw/share/applications/plasma-windowed.desktop:94:InitialPreference=1
/run/current-system/sw/share/applications/kfmclient_html.desktop:7:InitialPreference=9
/run/current-system/sw/share/applications/org.kde.mobile.okular_ghostview.desktop:157:InitialPreference=2
/run/current-system/sw/share/applications/org.kde.kate.desktop:176:InitialPreference=9
/run/current-system/sw/share/applications/okularApplication_djvu.desktop:165:InitialPreference=7
/run/current-system/sw/share/applications/org.kde.ark.desktop:156:InitialPreference=3
/run/current-system/sw/share/applications/org.kde.mobile.okular_epub.desktop:157:InitialPreference=2
/run/current-system/sw/share/applications/org.kde.kwrite.desktop:169:InitialPreference=8
/run/current-system/sw/share/applications/kfmclient.desktop:7:InitialPreference=9
/run/current-system/sw/share/applications/okularApplication_epub.desktop:165:InitialPreference=1
/run/current-system/sw/share/applications/org.kde.mobile.okular_txt.desktop:157:InitialPreference=2
/run/current-system/sw/share/applications/org.kde.gwenview.desktop:195:InitialPreference=8
/run/current-system/sw/share/applications/org.kde.mobile.okular_djvu.desktop:157:InitialPreference=2
/run/current-system/sw/share/applications/okularApplication_kimgio.desktop:165:InitialPreference=1
/run/current-system/sw/share/applications/okularApplication_md.desktop:165:InitialPreference=7
/run/current-system/sw/share/applications/okularApplication_plucker.desktop:165:InitialPreference=7
/run/current-system/sw/share/applications/org.kde.kmail-refresh-settings.desktop:80:InitialPreference=10
/run/current-system/sw/share/applications/org.kde.mobile.okular_mobi.desktop:157:InitialPreference=2
/run/current-system/sw/share/applications/org.kde.mobile.okular_kimgio.desktop:157:InitialPreference=2
/run/current-system/sw/share/applications/org.kde.kfontview.desktop:186:InitialPreference=1
/run/current-system/sw/share/applications/org.kde.mobile.okular_ooo.desktop:157:InitialPreference=2

Should be addressed by https://github.com/NixOS/nixpkgs/pull/86147


style: fix no support of clip-path on img on edge

Checklist

[x] Resolve issue/feat. n° #40
[ ] tests are included
[ ] documentation is changed or added
[ ] existing message properties have been updated with new phrases
[ ] new (i18n) language set have been added
[ ] improvement to make view conforms with WCAG 2.1 AA

Description of change

resolve #40


Run successful, Release and tag created, but Missing Files

Runner: self-hosted runner hosted on Crave.io Devspace CLI(Ubuntu 22.04)
Code: https://github.com/sounddrill31/crave_aosp_builder/blob/6e3f6abdae92e93d1d0fd42e7a797c0c48195669/.github/workflows/selfhosted.yml#L251
Example: https://github.com/sounddrill31/crave_aosp_builder/releases/tag/8108809684
(It was working before I switched to selfhosted)
Any help is appreciated

I tried xresloader's runner, same thing except: It uploaded two smaller (boot.img recovery.img) files to the release

Same problem, have you solve this yet?

Same problem, have you solve this yet?

Nope, still facing it. If you come across anything, let me know please 😄

Any help/insight is appreciated

@sounddrill31 I use actions/create-release and actions/upload-release-asset as an alternative, old but gold, and they work for me (until now). You could try
jobs:
  build:
    runs-on: windows-latest
    steps:
    - name: Setup .NET
      uses: actions/setup-dotnet@v1
      with:
        dotnet-version: '8.0'
        include-prerelease: true

    - name: Checkout code
      uses: actions/checkout@v2
      with:
        submodules: true
        token: ${{ secrets.GH_TOKEN }}

    - name: Update submodules
      run: git submodule update --init --recursive

    - name: Setup MSBuild path
      uses<EMAIL_ADDRESS>
    - name: Build and Publish
      run: msbuild /t:restore /t:publish /p:Configuration=Debug /p:PublishDir=${{ github.workspace }}/publish/
    - name: Zip publish
      run: Compress-Archive -Path "${{ github.workspace }}/publish/*" -DestinationPath "${{ github.workspace }}/publish.zip"
    - name: Create Release
      id: create_release
      uses: actions/create-release@v1
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      with:
        tag_name: ${{ github.ref }}
        release_name: Release ${{ github.ref }}
        draft: false
        prerelease: false
    - name: Upload Release Asset
      id: upload-release-asset
      uses: actions/upload-release-asset@v1
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      with:
        upload_url: ${{ steps.create_release.outputs.upload_url }}
        asset_path: ${{ github.workspace }}/publish.zip
        asset_name: publish.zip
        asset_content_type: application/zip

Doesn't seem to play well with variables

Okay so I personally gave up and uploaded directly through gh release create.
Here's my script, tailored towards my needs: https://github.com/accupara/docker-images/blob/master/aosp/common/upload.sh
# Upload '.zip's and '.img's directly from 'crave' ssh.
- name: Upload build artifact(s)
      continue-on-error: true
      run: |
        cd $PROJECTFOLDER
        echo "${{ secrets.GITHUB_TOKEN }}" > token.txt
        crave push token.txt -d $(crave ssh -- pwd | grep -v Select | sed -s 's/\r//g')/
        crave ssh -- "bash /opt/crave/github-actions/upload.sh '${{ github.run_id }}' '${{ github.event.inputs.DEVICE_NAME }}'  '${{ github.repository }}' '${{ github.event.inputs.PRODUCT_NAME }}-${{ github.run_id }}'"

Non Crave.io Environment:
bash upload.sh 'tag' 'device codename' 'repository' 'release title'

for folks that are seeing this issue I'm looking to try and reproduce the issue
in particular I'm curious which errors if any you are observing these logs.
https://github.com/softprops/action-gh-release/blob/9d7c94cfd0a1f3ed45544c887983e9fa900f0564/src/github.ts#L162
https://github.com/softprops/action-gh-release/blob/9d7c94cfd0a1f3ed45544c887983e9fa900f0564/src/github.ts#L178
A notable change recently was dropping node-fetch in preference for github.request https://github.com/softprops/action-gh-release/pull/386 which was to address https://github.com/softprops/action-gh-release/issues/206


Alpine Linux

Excuse me, did anyone install Alpine Linux?
python install.py alpine:latest
... OK ...
But, Bash cant't run.

Alpine Linux uses musl libc, which is not compatible with WSL for some reason. This is a WSL issue, but since none of the officially supported distributions use musl libc, I'm not sure if Microsoft will look at it.
Progress is being kept in another issue on this.

https://github.com/Microsoft/BashOnWindows/issues/2372


CICD Reducing costs

Our current AWS CICD server costs approximately $122.4 plus tax to run a month just on EC2 costs (other costs such as EBS not included). This is a c5.xlarge server running 24x7 (cost above based on 30 day month).
The actual CI/CD runs currently are:

unstable Tuesday 3pm UTC - for approx 40 mins
stable Wednesday 1pm UTC - for approx 40 mins
unstable Friday 3pm UTC - for approx 40 mins
Each day at 1am UTC it also runs a check to see if any of the instances created to run the CI jobs need deleting.

We have a number of ways we could reduce this cost, some of these can be combined:

Change date/time of runs and then keep servers down for part of week, but up enough to allow debugging
Change date/time of runs and get the logs from CI runs onto a S3 bucket, and then keep server down for longer
Move to cheaper costing image size e.g. c5a.xlarge
Rebuild new server with latest ST2 and then downsize further

Once we loose credits, and by time we add in tax costs it would be good to reduce this cost.
Interested in people's preferences and thoughts.

One possible reduction which would amount to reducing pre-tax EC2 CI/CD server to $81 or $74 would be following:

Switch off the CI/CD server from Friday 4pm UTC to Monday 4am UTC
Move the CI runs so that Unstable runs Monday + Thursday, Keep Stable on Wednesday. This means we still have the 2am runs the following days to delete servers, and servers are up for most of week to enable troubleshooting.
This reduces to $81.6 + tax for c5.xlarge, and $74 for c5a.xlarge

However if we use the AWS Instance Scheduler that probably costs us $10 a month to achieve that (https://docs.aws.amazon.com/solutions/latest/instance-scheduler-on-aws/cost.html).
Or perhaps we can achieve the same for less just with Lambda functions, eg. https://docs.aws.amazon.com/solutions/latest/instance-scheduler-on-aws/cost.html as we don't really need those lambda functions running every 5 mins every day which the instance scheduler is doing.
This might be an easy win to reduce the costs quickly but then move onto a solution where we get the logs off the boxes so don't need the CI servers for debugging.

A solution that is a bit less flexible compared to the AWS Instance Scheduler is to use Scheduled scaling for EC2 Auto Scaling: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-scheduled-scaling.html
It allows you to configure any ASG capacity (min, max and desired) to be applied at any time with a cron-like syntax.
Let me just share a screenshot to show the capabilities:

So, when we say
`The actual CI/CD runs currently are:
unstable Tuesday 3pm UTC - for approx 40 mins
stable Wednesday 1pm UTC - for approx 40 mins
unstable Friday 3pm UTC - for approx 40 mins
Each day at 1am UTC it also runs a check to see if any of the instances created to run the CI jobs need deleting.

`
We could have a config like

start every Tuesday 2:30 pm UTC
start every Wednesday 12:30 pm UTC
start every Friday 2:30 pm UTC

The shutdown would be scheduled to a later point of time which depends on whether we want to keep the instances alive for debugging or export relevant logs to S3 for example.
Each day at 1am UTC it also runs a check to see if any of the instances created to run the CI jobs need deleting.
may be moved to Lambda triggered once a day if it's running on an instance that is not needed otherwise.
Terraform documentation: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/autoscaling_schedule
An example to start an instance every Tuesday at 1 pm and shut it down at 3 pm again:
resource "aws_autoscaling_schedule" "unstable-start" {
  scheduled_action_name  = "unstable_start"
  min_size                           = 1
  max_size                          = 1
  desired_capacity              = 1
  recurrence                        = "0 1 * * Tue"
  autoscaling_group_name = ...
}

# here we just reduce the capacity to 0 to make sure that AWS shuts down all EC2 resources
resource "aws_autoscaling_schedule" "unstable-stop" {
  scheduled_action_name  = "unstable_stop"
  min_size                           = 0
  max_size                          = 0
  desired_capacity              = 0
  recurrence                        = "0 3 * * Tue"
  autoscaling_group_name = ...
}

@winem Doesn't the above terminate rather than just shutdown the instance? https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-groups.html - "and launches or terminates the instances as needed".
I think in our case we just want to start/stop it rather than create and terminate.

I think it's a great idea with the lambda function to start/stop the instance on a schedule :+1:

Agreed in TSC meeting for go-ahead to start/stop via lambda and keep CI server up for just a few days a week.

Lambda functions and rules setup. Monitoring changed to just Weds. Awaiting stop on Friday 2am UTC, and start at Tues midnight UTC.


Visit specific page after click on push notification.

Is it ability to open specific url in application after clicking on new push notification?
iOS

That is not in the hands of this plugin. What you need to do is read the notification event at the startup of your app on the main page (index.html, most probably), and then redirect it to whatever page you want (via javascript routing or via window.open, depending on how your app is structured).

This will not work for multiple push notifications and when app minimized.

@KirillSuhodolov sure it will. Clarifying question, is it always the same url or are you sending the url you want to open in your push payload?

@macdonst there are many different urls and I send them in push payload.

@KirillSuhodolov
We send multiple notifications down to our iOS app. Each notification has a unique piece of information in it. When the user clicks a specific notification from the shade, our javaScript looks at the JSON data passed in and opens up a specific 'window' (I know its not really a window).
This works fine in the background. We handle things differently in the foreground as we don't want the user app to jump around.
I'm not clear if you are saying there are lots of different url's in the same notification or across multiple notifications. However Simon is correct and I can confirm that technique works as we use it.
Rob

@rwillett what do you do until the 'notification' event is triggered? waiting for it causes us a race-condition :/

The notification event is triggered. You should not be waiting for it. You run your code and a notification event may occur at some point.
I'm unclear how you can wait for it. I'm assuming you are not polling for it.
Rob

That's my point - If you want to jump to a certain page due to a click on a push notification, then this scenario is possible:

the user clicked the PushNotification
the app starts
the app loads the homescreen
the notification event is triggered - the app jumps to another screen

I'm wondering how to get over it

@yossale
I'm unclear as to the problem. I'm doing this from memory now as now near my main machine.

Your use-case is that the app is not running.
A notification comes in.
You click on the notification.
The app starts up.
The plugin function onNotification (or whatever it is called) should be fired as the app starts up.
Some data attached to the Notification event shows the app which page to go to.
Your app goes to the right page based on $state.go (or whatever). I know we don't really have pages.

Thats how we wrote the code for using a separate commercial plugin, we're transitioning to a new Notification plugin which may or may not be this one, so we haven't figured out all the details here.
So whats the issue?  I am still unclear.
Rob

@rwillett
There are 2 cases: a user clicked the app to open it, or clicked a push notification.
In the 1st case, you want to show her you "Hello Page"
In the 2nd case, you want to show her the page concerning the push she clicked.
We don't know until the notification-event which case we're at...

@yossale
Ok I think I understand.
We are still working out how to use this specific plugin after coming from a previous commercial plugin and have not implemented the logic you are talking about with this specific plugin. However with the previous plugin we had a race condition that occurred in a similar situation.
We handled that by having each notification handler NOT actually handle a notification. Each notification handler would simply push the event to be handled onto a very small queue (an array really), each notification handler would then set a simple timeout which would call a function to work out the order of events that were pushed onto the queue.
This simple timeout would happen at the end of ALL the events in the Javascript run cycle, the queue manager would walk down the list and would work out the priority of the events to be run, it would then execute the events and if necessary would remove other events from the queue as they were not needed as other events would take precedence.  There was an explicit notion of precedence in the events and an explicit idea that one event could delete another event if it needed to (or could push another event onto the queue to be executed).
This was quite simple to implement (took us an hour or so) and meant that no matter how many events would come in at startup (or at resume from background) we had a mechanism for managing the order and the priority of notification events. Its a simple queue which we would walk down one event at a time as we knew there would never be more than 2-3 events on it (we never saw more than 2).
Since each notification handler sets the same timeout to run exactly the same function, it doesn't matter which gets priority as they have the same effect on the queue. The second timeout that ran would simply find the queue to be empty as the first timeout had done all the work.
Does that help?
Rob

Hello,
I have implemented the app using laravel and ember.js and I have implemented push notification successfully, but somehow I am not able to figure out how to link / redirect push notification to specified route?
Thanks!

Sorry, you need to explain yourself more clearly.
If all you are doing is trying to trigger a specific action based on selecting a notification, e.g. go to a page, then simply provide a payload to your notification with more information in about what to do, in the notification handler function that is called, work out where to go based on the payload and do something like $state.go. Your method of jumping to wherever is dependent on your app.
Rob

Thanks for your reply.
One more doubt - How to use $state.go with route, e.g. on click of push notification i want app to load specified route.
Thanks!

Since I have no idea how your app is set up, or the details of your framework, you need to investigate that. Google is your friend.
Rob

Thanks for your help !!

Hi i have single page JQM model for cordova iOS app. On click of the notification, inside notifcation handler, i am trying to change page using $.mobile.changePage("#pageid");
This works fine in android, but in ios, it always shows the page from which the app was closed and changePage doesnt work.

This appears to be nothing to do with this thread. This thread was also closed some months ago.
I would suggest you raise a new issue on a new thread and reference this one.
Rob

Well, it could be some timing issue on the iOS implementation of the plugin, or a bug in JQM.
Does $.mobile.changePage("#pageid"); works fine if you use it elsewhere?
But agree with @rwillett, if you are sure that the problem is the plugins fault you should create a new issue.

I am using phonegap-plugin-push plugin for FCM push notification,
Here I am able to get notification when app is running in background or app is in active status notification is working fine in this state.
But when app is in background state and any notificaiton came in that condition if any user click on the notificaiotn he must be redirect on any spacific page, for this I try so many way but its not working .
I am using following code to initialize notification
var push = PushNotification.init({
android: {
senderID: '436009364694',
alert: true,
badge: true,
icon: 'icon',
sound: true,
vibrate: true
},
ios: {
alert: "true",
badge: "true",
sound: "true",
vibrate: true,
clearBadge: true
},
windows: {}
});
And I am using following code to trigger the notification
push.on('notification', function(data) {
});
above code is only working when app is in running state but its not working when app is in background,
Any one know how to trigger click event if app in background state

This thread was closed 18 months ago. I'd suggest you open a new thread and start again as things have moved on.


Segmentation fault with conda installed 0.3-r063.2 (hifiasm code base 0.13-r308)

Hello,
I am trying to assemble metagenomic reads from public SRA accessions using conda installed hifiasm_meta 0.3-r063.2 and I am often receiving a segmentation fault.
For example, I tried to assemble accession SRR13392911 - "human gut metagenome sequencing" - and received this fault after the majority of the program ran, generating 5 ha_hist_line plots and 1 hist_readlength plot. It is able to write the .bin files but seems to fail at writing the .gfa files.
Writing reads to disk...
wrote cmd of length 254: hamt version=0.3-r063.2, ha base version=0.13-r308, CMD= hifiasm_meta -o SRR13392911.v1.hifiasm_meta/SRR13392911.v1.hifiasm_meta -t 64 D1181.fastq.gz
Bin file was created on Tue Feb  7 23:26:52 2023
Hifiasm_meta 0.3-r063.2 (hifiasm code base 0.13-r308).
Reads has been written.
[hamt::write_All_reads] Writing per-read coverage info...
[hamt::write_All_reads] Finished writing.
Writing ma_hit_ts to disk...
ma_hit_ts has been written.
Writing ma_hit_ts to disk...
ma_hit_ts has been written.
bin files have been written.
[M::hamt_clean_graph] no debug gfa
[debug::hamt_normalize_ma_hit_t_single_side_advance] nb_batch: 2093
[M::hamt_normalize_ma_hit_t_single_side_advance] typeA 335 B 339, used 370.1s

[debug::hamt_normalize_ma_hit_t_single_side_advance] nb_batch: 2093
[M::hamt_normalize_ma_hit_t_single_side_advance] typeA 0 B 25, used 334.7s

[M::clean_weak_ma_hit_t] treated 0, used 0.1s
[M::ma_hit_sub] remained 8572776, deleted 0, used 0.1s
[M::detect_chimeric_reads_conservative] n_simple_remove: 0, n_complex_remove: 0/0, used 0.1
[M::ma_hit_cut] typeA 0 , typeB 8572488, used 0.0
[M::ma_hit_flt] typeA 0 , typeB 8572488, used 0.0s
[M::hamt_hit_contained_multi] treated roughly 0 spots, used 0.2s
[M::hamt_hit_contained_drop_singleton_multi] treated roughly 4 spots, used 0.1s
[debug::ma_hit_contained_advance] ret0: 32, used 0.02 s
[M::ma_hit_contained_advance] dropped 8572680 reads, used total of 0.15 s

[M::asg_arc_del_trans] reduced 0 arcs, used 0.1s
[M::asg_cut_tip] cut 65 tips, used 0.1 s
[M::hamt_clean_graph] ====== initial clean ======

**********0-th round drop: drop_ratio = 0.200000**********
[M::asg_arc_del_simple_circle_untig] removed 0 self-circles, used 0.1s
[M::asg_cut_tip] cut 0 tips, used 0.1 s
[M::hamt_asgarc_drop_tips_and_bubbles] did 0 rounds, dropped 0 spots, used 0.2 s

[M::asg_arc_identify_simple_bubbles_multi] dropped total of 0, used 0.1s
[M::asg_arc_del_false_node_meta] removed 0 single nodes, used 0.1
[M::asg_cut_tip] cut 0 tips, used 0.1 s
[M::asg_arc_identify_simple_bubbles_multi] dropped total of 0, used 0.1s
[M::asg_arc_del_short_diploid_by_exact] removed 0 inexact overlaps, used 0.1s
[M::asg_cut_tip] cut 0 tips, used 0.1 s
[M::asg_arc_identify_simple_bubbles_multi] dropped total of 0, used 0.1s
[M::asg_arc_del_short_diploid_by_length] removed 0 short overlaps, used 0.1
[M::asg_cut_tip] cut 0 tips, used 0.1 s
[M::asg_arc_identify_simple_bubbles_multi] dropped total of 0, used 0.1s
[M::asg_arc_del_short_false_link] removed 0 false overlaps, used 1.7s
[M::asg_arc_identify_simple_bubbles_multi] dropped total of 0, used 0.1s
[M::asg_arc_del_complex_false_link] removed 0 false overlaps, used 1.5s
[M::asg_cut_tip] cut 0 tips, used 0.1 s

**********1-th round drop: drop_ratio = 0.400000**********
[M::asg_arc_del_simple_circle_untig] removed 0 self-circles, used 0.1s
[M::asg_cut_tip] cut 0 tips, used 0.1 s
[M::hamt_asgarc_drop_tips_and_bubbles] did 0 rounds, dropped 0 spots, used 0.2 s

[M::asg_arc_identify_simple_bubbles_multi] dropped total of 0, used 0.1s
[M::asg_arc_del_false_node_meta] removed 0 single nodes, used 0.1
[M::asg_cut_tip] cut 0 tips, used 0.1 s
[M::asg_arc_identify_simple_bubbles_multi] dropped total of 0, used 0.1s
[M::asg_arc_del_short_diploid_by_exact] removed 0 inexact overlaps, used 0.1s
[M::asg_cut_tip] cut 0 tips, used 0.1 s
[M::asg_arc_identify_simple_bubbles_multi] dropped total of 0, used 0.1s
[M::asg_arc_del_short_diploid_by_length] removed 0 short overlaps, used 0.1
[M::asg_cut_tip] cut 0 tips, used 0.1 s
[M::asg_arc_identify_simple_bubbles_multi] dropped total of 0, used 0.1s
[M::asg_arc_del_short_false_link] removed 0 false overlaps, used 1.5s
[M::asg_arc_identify_simple_bubbles_multi] dropped total of 0, used 0.1s
[M::asg_arc_del_complex_false_link] removed 0 false overlaps, used 1.5s
[M::asg_cut_tip] cut 0 tips, used 0.1 s

**********2-th round drop: drop_ratio = 0.600000**********
[M::asg_arc_del_simple_circle_untig] removed 0 self-circles, used 0.1s
[M::asg_cut_tip] cut 0 tips, used 0.1 s
[M::hamt_asgarc_drop_tips_and_bubbles] did 0 rounds, dropped 0 spots, used 0.2 s

[M::asg_arc_identify_simple_bubbles_multi] dropped total of 0, used 0.1s
[M::asg_arc_del_false_node_meta] removed 0 single nodes, used 0.1
[M::asg_cut_tip] cut 0 tips, used 0.1 s
[M::asg_arc_identify_simple_bubbles_multi] dropped total of 0, used 0.1s
[M::asg_arc_del_short_diploid_by_exact] removed 0 inexact overlaps, used 0.1s
[M::asg_cut_tip] cut 0 tips, used 0.1 s
[M::asg_arc_identify_simple_bubbles_multi] dropped total of 0, used 0.1s
[M::asg_arc_del_short_diploid_by_length] removed 0 short overlaps, used 0.1
[M::asg_cut_tip] cut 0 tips, used 0.1 s
[M::asg_arc_identify_simple_bubbles_multi] dropped total of 0, used 0.1s
[M::asg_arc_del_short_false_link] removed 0 false overlaps, used 1.5s
[M::asg_arc_identify_simple_bubbles_multi] dropped total of 0, used 0.1s
[M::asg_arc_del_complex_false_link] removed 0 false overlaps, used 1.5s
[M::asg_cut_tip] cut 0 tips, used 0.1 s

**********3-th round drop: drop_ratio = 0.800000**********
[M::asg_arc_del_simple_circle_untig] removed 0 self-circles, used 0.1s
[M::asg_cut_tip] cut 0 tips, used 0.1 s
[M::hamt_asgarc_drop_tips_and_bubbles] did 0 rounds, dropped 0 spots, used 0.2 s

[M::asg_arc_identify_simple_bubbles_multi] dropped total of 0, used 0.1s
[M::asg_arc_del_false_node_meta] removed 0 single nodes, used 0.1
[M::asg_cut_tip] cut 0 tips, used 0.1 s
[M::asg_arc_identify_simple_bubbles_multi] dropped total of 0, used 0.1s
[M::asg_arc_del_short_diploid_by_exact] removed 0 inexact overlaps, used 0.1s
[M::asg_cut_tip] cut 0 tips, used 0.1 s
[M::asg_arc_identify_simple_bubbles_multi] dropped total of 0, used 0.1s
[M::asg_arc_del_short_diploid_by_length] removed 0 short overlaps, used 0.1
[M::asg_cut_tip] cut 0 tips, used 0.1 s
[M::asg_arc_identify_simple_bubbles_multi] dropped total of 0, used 0.1s
[M::asg_arc_del_short_false_link] removed 0 false overlaps, used 1.5s
[M::asg_arc_identify_simple_bubbles_multi] dropped total of 0, used 0.1s
[M::asg_arc_del_complex_false_link] removed 0 false overlaps, used 1.5s
[M::asg_cut_tip] cut 0 tips, used 0.1 s

********** last round **********
[M::asg_arc_del_simple_circle_untig] removed 0 self-circles, used 0.2s
[M::asg_cut_tip] cut 0 tips, used 0.1 s
[M::hamt_asgarc_drop_tips_and_bubbles] did 0 rounds, dropped 0 spots, used 0.3 s

[M::asg_arc_del_short_diploi_by_suspect_edge] removed 0 suspect overlaps, used 0.1s
[M::asg_cut_tip] cut 0 tips, used 0.1 s
[M::asg_arc_del_triangular_directly] removed 0 triangular overlaps, used 0.1s
[M::asg_arc_identify_simple_bubbles_multi] dropped total of 0, used 0.1s
[M::asg_cut_tip] cut 0 tips, used 0.1 s
[M::asg_arc_identify_simple_bubbles_multi] dropped total of 0, used 0.1s
[M::asg_arc_del_too_short_overlaps] removed 0 short overlaps, used 0.1s
[M::asg_cut_tip] cut 0 tips, used 0.1 s
[M::asg_arc_del_simple_circle_untig] removed 0 self-circles, used 0.1s

********** checkpoint: r_utg **********
Writing raw unitig GFA to disk...
[M::hamt_clean_graph] ======= preclean =======
[M::hamt_ug_pop_simpleInvertBubble] popped 0 locations
[M::hamt_ug_oneutgCircleCut] treated 0 spots
[M::hamt_clean_graph] round 0, dropped 0, used 0.9s

********** checkpoint: p_utg **********

[M::hamt_output_unitig_graph_advance] Writing GFA...
[M::hamt_ug_drop_shorter_ovlp] cut 0
[M::hamt_asgarc_ugCovCutDFSCircle_aggressive] cut 0.

[M::hamt_clean_graph] time check #1, 1.2s
[M::hamt_ug_oneutgCircleCut] treated 0 spots
[M::hamt_ug_basic_topoclean_simple] total cut: 0
/bin/bash: line 3:    61 Segmentation fault      (core dumped) hifiasm_meta -o $BD/$BD -t 64 D1181.fastq.gz

Thanks for your help.

generating 5 ha_hist_line plots and 1 hist_readlength plot.

Do you see total of 5 lines containing "ha_hist_line"...?  If so, the input might not be HiFi reads. The SRR13392911 seems to be sequel II data or subreads, hifiasm(-meta) cannot handle them. If not, could you paste the full log? Thanks.

Thank you very much for your response. I have discovered that some of the accessions, SRR13392911 included, do not have quality values in the fastq file (all values are "!"), so it is not being considered HiFi. I will try some workarounds or only use accessions with quality scores.


Error in node_modules folder

Im trying to use  your lib in the version 15 of Angular, but when i start the project explode this error in the node_modules:
error TS2688: Cannot find type definition file for 'unlayer-types/embed'.
///
Cannot find module 'embed/index' or its corresponding type declarations.
import Embed from 'embed/index';
Cannot find module 'embed/Editor' or its corresponding type declarations.
3 import { Editor as EditorClass } from 'embed/Editor';
Cannot find module 'state/types/types' or its corresponding type declarations.
4 import { JSONTemplate as JSONTemplateType, ToolsConfig as ToolsConfigInterface } from 'state/types/types';
It includes everything needed and what the documentation wants, I import the module and script in index.html:

please try with "skipLibCheck": true flag under tsconfig.json->compilerOptions, we are working on a fix for our typescript support lib

Its works! Thanks


Sp seach crawl mapping

Added a Resource to enable management of SPEntepriseSearchCrawlMapping

[X] Change details added to Unreleased section of changelog.md?
[X] Added/updated documentation and descriptions in .schema.mof files where appropriate?
[x] Examples updated for both the single server and small farm templates in the examples folder?
[X] New/changed code adheres to Style Guidelines?
[x] Unit and Integration tests created/updated where possible?

This change is

@mrpullen,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by Microsoft. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot

Codecov Report

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

@@          Coverage Diff           @@
##             dev     #516   +/-   ##
======================================
  Coverage       ?   87.39%
======================================
  Files          ?       80
  Lines          ?     7473
  Branches       ?        3
======================================
  Hits           ?     6531
  Misses         ?      939
  Partials       ?        3

Impacted Files
Coverage Δ

...PSearchCrawlMapping/MSFT_SPSearchCrawlMapping.psm1
1.29% <ø> (ø)

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 4be40ad...410d7ee. Read the comment docs.

@mrpullen Two of your files are marked as Binary by Github and therefore cannot be reviewed. Not sure what is causing this, but can you check these files:
MSFT_SPSearchCrawlMapping.psm1 and MSFT_SPSearchCrawlMapping.schema.mof

@ykuijs @mrpullen The "binary" bit happens when the file encoding isn't right. If you look at the test output it tells you they both need to be converted to UTF-8. It has details of the other failures as well

There are still test failures and the schema file is still not UTF8 - details at https://ci.appveyor.com/project/PowerShell/sharepointdsc/build/<IP_ADDRESS>9#L5701

I've reviewed everything but the tests here, which I'll do once we clean up the rest of it. Let me know if you have any questions, and thanks for the work on this new resource! :)

Reviewed 1 of 2 files at r3, 3 of 4 files at r4.
Review status: 4 of 5 files reviewed at latest revision, 22 unresolved discussions, some commit checks failed.

CHANGELOG.md, line 5 at r4 (raw file):

## Unreleased

* Added MSFT_SPSearchCrawlMapping Resource to manage Crawl Mappings for

The trailing space on the end of this line is failing the markdown validation unit test, take it off and that one will go green

Modules/SharePointDsc/DSCResources/MSFT_SPSearchCrawlMapping/MSFT_SPSearchCrawlMapping.psm1, line 1 at r4 (raw file):

function Get-TargetResource

The encoding on this file is causing issues with the testing of the schema files - please convert this file to UTF-8 formatting

Modules/SharePointDsc/DSCResources/MSFT_SPSearchCrawlMapping/MSFT_SPSearchCrawlMapping.psm1, line 3 at r4 (raw file):

function Get-TargetResource
{
	[CmdletBinding()]

This whole file appears to have used tabs instead of 4 space characters (as per our style guidelines) so it's throwing a test failure. Can you do a find/replace on the file to ditch the tabs and use spaces instead?

Modules/SharePointDsc/DSCResources/MSFT_SPSearchCrawlMapping/MSFT_SPSearchCrawlMapping.psm1, line 27 at r4 (raw file):

	)

	#Write-Verbose "Use this cmdlet to deliver information about command processing."

Can we please take out these comment lines, but also at the start of the method put a Write-Verbose that says it is starting the "get" method for that specific item (have a look at other resources for examples of what I mean here)

Modules/SharePointDsc/DSCResources/MSFT_SPSearchCrawlMapping/MSFT_SPSearchCrawlMapping.psm1, line 36 at r4 (raw file):

		$params = $args[0]
		$searchApp = Get-SPEnterpriseSearchServiceApplication "$($params.ServiceAppName)"

You don't need to wrap this in a string, you can just use $params.ServiceAppName. There are a bunch of other instances of this in this file so we need to clean them up

Modules/SharePointDsc/DSCResources/MSFT_SPSearchCrawlMapping/MSFT_SPSearchCrawlMapping.psm1, line 43 at r4 (raw file):

				ServiceAppName = ""
				Url = "$($params.Url)"
				Target = "$($params.Target)"

I believe the target should be blank in the case of an absent result, as there is no mapping at this point. Consider the scenario where you call the get method on its own to determine the current state of the configuration - if there is no mapping then this shouldn't show that there is by saying "yes this is the current value of the target" if that makes sense? Same again for the other return points here that have absent as the ensure value

Modules/SharePointDsc/DSCResources/MSFT_SPSearchCrawlMapping/MSFT_SPSearchCrawlMapping.psm1, line 130 at r4 (raw file):

	if($result.Ensure -eq "Absent" -and $Ensure -eq "Present")
	{
		## Add the Crawl Mapping..

No need for a comment when the verbose statement says the same thing below it

Modules/SharePointDsc/DSCResources/MSFT_SPSearchCrawlMapping/MSFT_SPSearchCrawlMapping.psm1, line 137 at r4 (raw file):

			$params = $args[0]

			$searchApp = Get-SPEnterpriseSearchServiceApplication "$($params.ServiceAppName)"

We can't use positional parameters (as per style guidelines) - you need to put the full parameter name in front of this one

Modules/SharePointDsc/DSCResources/MSFT_SPSearchCrawlMapping/MSFT_SPSearchCrawlMapping.psm1, line 141 at r4 (raw file):

			{
				Write-Verbose -Message "Search Service Application $($params.ServiceAppName) not found"
				throw ("When ServiceAppName does not reference a Search Application which exists, we cannot add mappings")

There is no need for the verbose message right before the error - we should put the full message and any important info in to the error so that when someone looks at the event viewer logs they get the full details. So I would make sure you mention the service app name it was looking for in the throw message and then remove the verbose output

Modules/SharePointDsc/DSCResources/MSFT_SPSearchCrawlMapping/MSFT_SPSearchCrawlMapping.psm1, line 141 at r4 (raw file):

			{
				Write-Verbose -Message "Search Service Application $($params.ServiceAppName) not found"
				throw ("When ServiceAppName does not reference a Search Application which exists, we cannot add mappings")

There are a few lines here that look long to me - the character limit per line should be 100 characters (unless there's a good reason for a longer line) so can you please do a check here and make sure you wrap things to keep them within that if you can. If you are using VS Code to edit it shows the character number in the bottom corner of the screen which makes it easier to check.

Modules/SharePointDsc/DSCResources/MSFT_SPSearchCrawlMapping/MSFT_SPSearchCrawlMapping.psm1, line 151 at r4 (raw file):

	if($result.Ensure -eq "Present" -and $Ensure -eq "Present")
	{
		##Update the Crawl Rule..

Remove this comment please

Modules/SharePointDsc/DSCResources/MSFT_SPSearchCrawlMapping/MSFT_SPSearchCrawlMapping.psm1, line 158 at r4 (raw file):

			$params = $args[0]

			$searchApp = Get-SPEnterpriseSearchServiceApplication "$($params.ServiceAppName)"

Positional parameters again

Modules/SharePointDsc/DSCResources/MSFT_SPSearchCrawlMapping/MSFT_SPSearchCrawlMapping.psm1, line 160 at r4 (raw file):

			$searchApp = Get-SPEnterpriseSearchServiceApplication "$($params.ServiceAppName)"
			$mappings = $searchApp | Get-SPEnterpriseSearchCrawlMapping
			$mapping = $mappings | Where-Object { $_.Source -eq "$($params.Url)" } | Select-Object -First 1

Where-Object is technical using a position parameter here - it should be like this:
Where-Object -FilterScript { ... }

Modules/SharePointDsc/DSCResources/MSFT_SPSearchCrawlMapping/MSFT_SPSearchCrawlMapping.psm1, line 175 at r4 (raw file):

			$params = $args[0]

			$searchapp = Get-SPEnterpriseSearchServiceApplication "$($params.ServiceAppName)"

Positional parameter again

Modules/SharePointDsc/DSCResources/MSFT_SPSearchCrawlMapping/MSFT_SPSearchCrawlMapping.psm1, line 177 at r4 (raw file):

			$searchapp = Get-SPEnterpriseSearchServiceApplication "$($params.ServiceAppName)"
			$mappings = $searchApp | Get-SPEnterpriseSearchCrawlMapping
			$mapping = $mappings | Where-Object { $_.Source -eq "$($params.Url)" } | Select-Object -First 1

Positional parameter on where-object

Modules/SharePointDsc/DSCResources/MSFT_SPSearchCrawlMapping/MSFT_SPSearchCrawlMapping.schema.mof, line 1 at r4 (raw file):

The encoding on this file is causing issues with the testing of the schema files - please convert this file to UTF-8 formatting

Modules/SharePointDsc/DSCResources/MSFT_SPSearchCrawlMapping/MSFT_SPSearchCrawlMapping.schema.mof, line 5 at r4 (raw file):

class MSFT_SPSearchCrawlMapping : OMI_BaseResource
{
	[Key, Description("Search Service Application Name")] String ServiceAppName;

This whole file appears to have used tabs instead of 4 space characters (as per our style guidelines) so it's throwing a test failure. Can you do a find/replace on the file to ditch the tabs and use spaces instead?

Modules/SharePointDsc/DSCResources/MSFT_SPSearchCrawlMapping/MSFT_SPSearchCrawlMapping.schema.mof, line 6 at r4 (raw file):

{
	[Key, Description("Search Service Application Name")] String ServiceAppName;
	[Required, Description("Source URI for the crawl mapping")] String Url;

I feel like this URL property should also be a Key attribute (not required). With the key only being the service app name you wont be able to add more than one of these to a configuration as it will fail to build stating that there is already an instance of that key in the config. Now since you can't have more than one mapping per URL per search service application, making both of these properties part of the key should resolve this.

Modules/SharePointDsc/DSCResources/MSFT_SPSearchCrawlMapping/MSFT_SPSearchCrawlMapping.schema.mof, line 8 at r4 (raw file):

	[Required, Description("Source URI for the crawl mapping")] String Url;
	[Required, Description("Target URI for the crawl mapping")] String Target;
	[Write, Description("Ensure the crawl rule is Present or Absent"), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] String Ensure;

The description here still talks about "Crawl rules" so can this please be updated.

Modules/SharePointDsc/Examples/Resources/SPSearchCrawlMapping/1-Example.ps1, line 3 at r4 (raw file):

<#
.EXAMPLE
    This example shows how to apply settings to a sepcific URL in search

Can we update this to say something specific to "search crawl mapping" and not just 'settings'

Modules/SharePointDsc/Examples/Resources/SPSearchCrawlMapping/1-Example.ps1, line 23 at r4 (raw file):

                Target = "http://site.sharepoint.com"
                Ensure = "Present"
                InstallAccount = $SetupAccount

In examples we should use PsDScRunAsCredential instead of InstallAccount as this is the preferred approach

Tests/Unit/SharePointDsc/SharePointDsc.SPSearchCrawlMapping.Tests.ps1, line 11 at r4 (raw file):

Import-Module -Name (Join-Path -Path $PSScriptRoot `
                                -ChildPath "..\SharePointDsc.TestHarness.psm1" `

A recent change to the test approach means you need to change this path to "..\UnitTestHelper.psm1"

Comments from Reviewable

@mrpullen Looks like the tests have gone south on the latest changes. Wanna have a look at those and when they are green I'll continue the review. Reach out if you need help though.

Looks like my Get-EnterpriseSearchCrawlMapping mock was returning objects { Url, Target }, but the actual cmdlet returns { Source, Target } so I've updated..

Reviewed 4 of 5 files at r5, 1 of 1 files at r7.
Review status: 3 of 5 files reviewed at latest revision, 9 unresolved discussions.

Modules/SharePointDsc/DSCResources/MSFT_SPSearchCrawlMapping/MSFT_SPSearchCrawlMapping.psm1, line 21 at r7 (raw file):

        [ValidateSet("Present","Absent")]
        [System.String]
        $Ensure,

Ensure should have a default of "Present" on it
$Ensure = "Present"

Modules/SharePointDsc/DSCResources/MSFT_SPSearchCrawlMapping/MSFT_SPSearchCrawlMapping.psm1, line 72 at r7 (raw file):

                Url = $params.Url
                Target = ""
                Ensure = "Absent"

In this scenario where the mapping doesn't exist, I think what needs to happen here is we need to return "present" and what the current value is. That way the get method can always determine what the mapping is, and in the test method we can test on the target and ensure properties to validate if the set method needs to be called. So I think what we can do here is actually ditch this last if statement and return whatever the mapping is regardless of whether or not it matches - does that make sense?

Modules/SharePointDsc/DSCResources/MSFT_SPSearchCrawlMapping/MSFT_SPSearchCrawlMapping.psm1, line 117 at r7 (raw file):

        [ValidateSet("Present","Absent")]
        [System.String]
        $Ensure,

Same comment about default for Ensure

Modules/SharePointDsc/Examples/Resources/SPSearchCrawlMapping/1-Example.ps1, line 3 at r7 (raw file):

<#
.EXAMPLE
    This example shows how to apply a Search Crawl Mapping rule to a search application. The

We can keep this to just the first sentence. This text gets combined with the description from the readme.md file for the resource as well as the descriptions of properties from the schema.mof file before we publish the doco so by the time we put it here as well it gets a little redundant :)

Tests/Unit/SharePointDsc/SharePointDsc.SPSearchCrawlMapping.Tests.ps1, line 152 at r7 (raw file):

                return @(
                    @{
                        Source = "http:other.sharepoint.com"

This should be a valid URL

Tests/Unit/SharePointDsc/SharePointDsc.SPSearchCrawlMapping.Tests.ps1, line 201 at r7 (raw file):

                return @(
                    @{
                        Source = "http:other.sharepoint.com"

Not a valid URL

Tests/Unit/SharePointDsc/SharePointDsc.SPSearchCrawlMapping.Tests.ps1, line 249 at r7 (raw file):

                return @(
                    @{
                        Source = "http:other.sharepoint.com"

Valid URL again

Comments from Reviewable

Reviewed 2 of 2 files at r8.
Review status: all files reviewed at latest revision, 8 unresolved discussions.

Comments from Reviewable

Review status: 1 of 5 files reviewed at latest revision, 10 unresolved discussions.

CHANGELOG.md, line 4 at r2 (raw file):

## Unreleased
* Added MSFT_SPSearchCrawlMapping Resource to manage Crawl Mappings for

Make sure you add an empty line in between Unreleased and the first item. Also check for trailing spaces at the end of this line.

Modules/SharePointDsc/DSCResources/MSFT_SPSearchCrawlMapping/MSFT_SPSearchCrawlMapping.psm1, line 21 at r7 (raw file):
Previously, BrianFarnhill (Brian Farnhill) wrote…
Ensure should have a default of "Present" on it
$Ensure = "Present"

OK

Modules/SharePointDsc/DSCResources/MSFT_SPSearchCrawlMapping/MSFT_SPSearchCrawlMapping.psm1, line 72 at r7 (raw file):
Previously, BrianFarnhill (Brian Farnhill) wrote…
In this scenario where the mapping doesn't exist, I think what needs to happen here is we need to return "present" and what the current value is. That way the get method can always determine what the mapping is, and in the test method we can test on the target and ensure properties to validate if the set method needs to be called. So I think what we can do here is actually ditch this last if statement and return whatever the mapping is regardless of whether or not it matches - does that make sense?

Are you sure? If the mapping doesn't exist, how can you return the current value?

Modules/SharePointDsc/DSCResources/MSFT_SPSearchCrawlMapping/MSFT_SPSearchCrawlMapping.psm1, line 117 at r7 (raw file):
Previously, BrianFarnhill (Brian Farnhill) wrote…
Same comment about default for Ensure

OK

Comments from Reviewable

Review status: 1 of 5 files reviewed at latest revision, 9 unresolved discussions.

CHANGELOG.md, line 5 at r9 (raw file):
Previously, mrpullen (Michael Rees Pullen) wrote…
Add Changelog Comment

OK

Comments from Reviewable

Reviewed 3 of 4 files at r9, 1 of 1 files at r10.
Review status: all files reviewed at latest revision, 1 unresolved discussion.

CHANGELOG.md, line 3 at r10 (raw file):

# Change log for SharePointDsc

## Unreleased

You need to create a new unreleased heading now that we shipped 1.6 and move this to there

Modules/SharePointDsc/DSCResources/MSFT_SPSearchCrawlMapping/MSFT_SPSearchCrawlMapping.psm1, line 72 at r7 (raw file):
Previously, ykuijs (Yorick Kuijs) wrote…
Are you sure? If the mapping doesn't exist, how can you return the current value?

Ignore me - i honestly had a shocker doing code reviews yesterday, yes what you have here is fine - sorry!

Comments from Reviewable

Reviewed 1 of 1 files at r11.
Review status: all files reviewed at latest revision, 1 unresolved discussion.

CHANGELOG.md, line 30 at r11 (raw file):

* Fixed bug with SPSearchServiceApp that would throw an error about SDDL string
* Improved output of test results for AppVeyor and VS Code based test runs
* Fixed issue with SPWebAppPolicy if OS language is not En-Us

Can you have a look at your merge again here, looks like you've taken out 2 valid lines from under the 1.6 heading?

Comments from Reviewable

Reviewed 1 of 1 files at r12.
Review status: all files reviewed at latest revision, 1 unresolved discussion.

CHANGELOG.md, line 30 at r11 (raw file):
Previously, BrianFarnhill (Brian Farnhill) wrote…
Can you have a look at your merge again here, looks like you've taken out 2 valid lines from under the 1.6 heading?

You've still removed 2 lines from the bottom of the 1.6 heading
* Fixed issue with SPWebAppPolicy if OS language is not En-Us
* Added SPFarm resource, set SPCreateFarm and SPJoinFarm as deprecated to be
 removed in version 2.0

Comments from Reviewable

Reviewed 1 of 1 files at r13.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


Disable test-lb-octavia openlab job

What this PR does / why we need it:
Test environment is flaky. details at https://github.com/theopenlab/openlab/issues/54
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Special notes for your reviewer:
Release note:

/approve
/lgtm


Execution failed for task ':app:checkDebugAarMetadata'.

I followed all the instructions but still got this message when building

I need more info, please provide your project dir tree or demo


[Loans] Change debt value & collateral value into USD rather than loop

This will make it easier when we add other collateral types and in order to calculate amount of rewards owed in real-time

Upon initial requirement analysis, we have found that this task requires changes  on snapshot which is complicated to implment as it deals with historical data storage. Continuous Rewards remove the need of snapshots reducing the scope and complexity of this task.
Commited all the work done so far in new branch "dev_loop_to_usd".
Any changes that needs to be reviewed in the future after the blocker has been cleared out have been marked with a todo: Bigya tag in the code.


Adds weird password requirements for Wageworks

I always forget my login to this site. I was surprised that when I went to reset my password, that I was greeted with the memo that my current password could not be the same as any of my twenty previous passwords. Yikes. So much for resetting it to whatever I thought my password was.
🤷🏽♀

That’s a funny one.
“Don’t use your previous 20 passwords, because we care about security! Oh, also you password can’t be over 20 characters.”
Thanks for the PR.


@asyncConnect - does not work when changing the route

Hi guys!
During startup of my application, "@asyncConnect" works and receives data from the api server, but when i change current route(changing to another page), there "@asyncConnect" not working, why?
update:
After server side rendering is happening with correct redux state tree(when switching to a different page), client side is again making the API call and re rendering of react component is happening. Any idea how to avoid this?

Hi @arman-mukatov,
I have issue like you when change to another page, asyncConnect does not call again on client side. Do you have any ideas?


Gitlab: Add support for the Release entity.

Summary
This adds preliminary support for the Release entity within the gitlab provider.
Note that it requires https://github.com/stacklok/minder/pull/4704 to merge beforehand.
Change Type
Mark the type of change your PR introduces:

[ ] Bug fix (resolves an issue without affecting existing features)
[x] Feature (adds new functionality without breaking changes)
[ ] Breaking change (may impact existing functionalities or require documentation updates)
[ ] Documentation (updates or additions to documentation)
[ ] Refactoring or test improvements (no bug fixes or new functionality)

Testing
Outline how the changes were tested, including steps to reproduce and any relevant configurations.
Attach screenshots if helpful.
Review Checklist:

[x] Reviewed my own code for quality and clarity.
[ ] Added comments to complex or tricky code sections.
[ ] Updated any affected documentation.
[ ] Included tests that validate the fix or feature.
[ ] Checked that related changes are merged.

coverage: 52.837% (-0.5%) from 53.315%
when pulling 81a01df854f6f309cd2fd4a1966d083362497887 on JAORMX:gitlab-releases
into ae5c149978ea309b6202faffe0a3eaed363ee16c on stacklok:main.


New ATTACH very slow compared to postgres_attach

What happens?
When connecting to our production database, which has hundreds of schemas, each with over a hundred tables, using the new ATTACH command takes much longer than the now deprecated postgres_attach function.
We've even tried passing in --search_path=my_schema as an option to the connection string, but didn't see any real improvement.
Having the pg_debug_show_queries=true and running the initial queries on a separate connection, we see that this query
SELECT pg_namespace.oid AS namespace_id, relname, relpages, attname,
    pg_type.typname type_name, atttypmod type_modifier, pg_attribute.attndims ndim,
    attnum, pg_attribute.attnotnull AS notnull, NULL constraint_id,
    NULL constraint_type, NULL constraint_key
FROM pg_class
JOIN pg_namespace ON relnamespace = pg_namespace.oid
JOIN pg_attribute ON pg_class.oid=pg_attribute.attrelid
JOIN pg_type ON atttypid=pg_type.oid
WHERE attnum > 0 AND relkind IN ('r', 'v', 'm', 'f', 'p')
UNION ALL
SELECT pg_namespace.oid AS namespace_id, relname, NULL relpages, NULL attname, NULL type_name,
    NULL type_modifier, NULL ndim, NULL attnum, NULL AS notnull,
    pg_constraint.oid AS constraint_id, contype AS constraint_type,
    conkey AS constraint_key
FROM pg_class
JOIN pg_namespace ON relnamespace = pg_namespace.oid
JOIN pg_constraint ON (pg_class.oid=pg_constraint.conrelid)
WHERE relkind IN ('r', 'v', 'm', 'f', 'p') AND contype IN ('p', 'u')
ORDER BY namespace_id, relname, attnum, constraint_id;

in particular takes the longest to run when attaching the database. Is there any way to optimize this query? Perhaps allowing a parameter to specify only some schemas to load?
To Reproduce
INSTALL postgres;
LOAD postgres;
SET pg_debug_show_queries = true;
ATTACH '{self._psql_string}' AS postgres_db (TYPE POSTGRES, READ_ONLY);

The ATTACH statement takes about 6 minutes on average every time, compared to the previous method
INSTALL postgres;
LOAD postgres;
CALL postgres_attach(
    '{self._psql_string}',
    source_schema='{schema}',
    filter_pushdown=1,
    overwrite=1
);

which takes about 1 minute on average
OS:
macOS
PostgreSQL Version:
15.5
DuckDB Version:
0.10.2
DuckDB Client:
Python
Full Name:
Mauricio Novelo
Affiliation:
CampusESP
Have you tried this on the latest main branch?

[X] I agree

Have you tried the steps to reproduce? Do they include all relevant data and configuration? Does the issue you report still appear there?

[X] I agree

Not disputing your report at all, but I've had exactly the opposite experience. The new query takes ~1sec compared to multiple minutes for the old approach.
I think my db is much smaller. Tough to find a one-size solution for all the different setups out there.

I hear ya @davidgovea
My current hypothesis is that the bottleneck for us is this query
SELECT pg_namespace.oid AS namespace_id, relname, relpages, attname,
    pg_type.typname type_name, atttypmod type_modifier, pg_attribute.attndims ndim,
    attnum, pg_attribute.attnotnull AS notnull, NULL constraint_id,
    NULL constraint_type, NULL constraint_key
FROM pg_class
JOIN pg_namespace ON relnamespace = pg_namespace.oid
JOIN pg_attribute ON pg_class.oid=pg_attribute.attrelid
JOIN pg_type ON atttypid=pg_type.oid
WHERE attnum > 0 AND relkind IN ('r', 'v', 'm', 'f', 'p')
UNION ALL
SELECT pg_namespace.oid AS namespace_id, relname, NULL relpages, NULL attname, NULL type_name,
    NULL type_modifier, NULL ndim, NULL attnum, NULL AS notnull,
    pg_constraint.oid AS constraint_id, contype AS constraint_type,
    conkey AS constraint_key
FROM pg_class
JOIN pg_namespace ON relnamespace = pg_namespace.oid
JOIN pg_constraint ON (pg_class.oid=pg_constraint.conrelid)
WHERE relkind IN ('r', 'v', 'm', 'f', 'p') AND contype IN ('p', 'u')
ORDER BY namespace_id, relname, attnum, constraint_id;

I suspect that it executes in < 1 second for you, while for us it loads about a million records, so having a way to specify specific schemas and tables would be really helpful for us. I'm inclined to try to make a PR to that effect if this is reasonable.

Thanks for reporting! That makes sense - perhaps adding a SCHEMA option to ATTACH would make sense? Happy to review a PR.

+1 I've encountered the same issue.


Add whitelisted version of swaps contract

A contract where the permitted set of used FA2 contracts is limited.

[ ] Cover this contract with tests on basic functionality? :thinking:
This seems to complicate the tests quite decently.

This is ready for merge, I'll do it once CI allows me to.

:heavy_check_mark:  All my comments have been addresses (a rebase is needed however).


Add MAINTAINERS and update CODEOWNERS

Description
This PR adds a MAINTAINERS file listing the current maintainers for the project, this should allow people interacting with the project to know who is maintaining the project
This also adds @syscll and @steakunderscore as CODEOWNERS, which means that once they have approved a PR, it can be merged even without a Pusher approval (which is currently required)
Motivation and Context
It should be easy to get a review and know who maintains the project
Checklist:

[ ] My change requires a change to the documentation or CHANGELOG.
[ ] I have updated the documentation/CHANGELOG accordingly.
[x] I have created a feature (non-master) branch for my PR.

@syscll @steakunderscore Are you happy with being listed like this?

Yup :+1:

Yes, happy with this :)


Adding Source Generator

Description of Bug
This PR adds a Source Generator in our project and nuget, with this we can call an Init method and hopefully avoid that fake XAML error.
I didn't test on Mac, so please try it on Mac before merging.
Issues Fixed

Fixes #1311

Behavioral Changes
This shouldn't change anything in the lib.
PR Checklist

[x] Has a linked Issue, and the Issue has been approved
[ ] Has tests (if omitted, state reason in description)
[ ] Has samples (if omitted, state reason in description)
[x] Rebased on top of main at time of PR
[x] Changes adhere to coding standard

[ ] Updated documentation

How come it's in its own csproj, Xamarin.CommunityToolkit.SourceGenerator.csproj?

Not sure if I follow this question. But for Source Generators (SG) we need to have a separate project that targets netstandard2.0. Nuget handles SGs the same way as an analyzer.

Do we need to commit Xamarin.CommunityToolkit.SourceGenerator.dll to the repo? Or is that auto-generated at build time?

We can do both since we will not touch in SG too much (I believe that we will never change anything in there) I added the .dll to our repo and reference it. Now if we don't want to do that, we need to build the Xamarin.CommunityToolkit.SourceGenerator.csproj and then reference the result to Xamarin.CommunityToolkit.csproj.
Here's a sample of how that would be

@brminnick

How come it's in its own csproj, Xamarin.CommunityToolkit.SourceGenerator.csproj?

Not sure if I follow this question. But for Source Generators (SG) we need to have a separate project that targets netstandard2.0. Nuget handles SGs the same way as an analyzer.

Do we need to commit Xamarin.CommunityToolkit.SourceGenerator.dll to the repo? Or is that auto-generated at build time?

We can do both since we will not touch in SG too much (I believe that we will never change anything in there) I added the .dll to our repo and reference it. Now if we don't want to do that, we need to build the Xamarin.CommunityToolkit.SourceGenerator.csproj and then reference the result to Xamarin.CommunityToolkit.csproj.
Here's a sample of how that would be

Sounds good to me!
Is there anyway to make a Unit Test for the error fixed by this?

I'll investigate that.
In advance, I'm not sure if it's possible because we will need to have access to the VS errors and see if the  XamlC error XFC0000 is on the list

Agreed. The only thing I can think of is to make a second sample app that doesn't reference any toolkit stuff in C# (only using XAML). Then we build that sample in our CI/CD pipeline to confirm there's no build errors.
It's not exactly a "Unit Test", but it'd accomplish the sample thing.

@VladislavAntonyuk IMHO is better to use the dll instead of binding this project every time. This SG is just generating that code all the time, so we don't need to include it on our build process. Referencing the dll in release mode will be the best approach

I'm having a small issue with this change. The type Xamarin.CommunityToolkit.Initializer.XCTInitCaller is now present in each assembly of my app. This results in a 'duplicate type' warning when I merge these assemblies (obfuscation step during the release process of my app).
I think it would have been better to generate this class in a namespace that depends on the assembly (for example, XCT.[assembly name]). This would avoid potential conflicts when merging assemblies.
Do you think it's possible to modify this SG in the next version of XCT?

@pictos FYI 👆
Thanks @tranb3r! Could you report this bug in a new Issue and add a reproduction sample?

@tranb3r please open an issue and mark me. IF possible provide a small sample that I can use as reference


Masthead picture changes

Lulz no. I'll convert brb

Might need a more high-quality about page picture but what do you think of the selections though (@ all)

All of the pictures look great!

Yeah the MLH thing was annoying me when I tested it

Don't think the masthead should be bigger on mobile. Maybe desktop tho

@domfarolino @kurtlewis Is there any way we can request images without watermarks?

Doubt it. But worth looking at

Yes I've got all the pics without watermarks. I'll look at this PR tomorrow
On Sun, Jan 8, 2017, 11:42 PM Dominic Farolino<EMAIL_ADDRESS>wrote:

Doubt it. But worth looking at
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/RevolutionUC/revolutionuc-website/pull/20#issuecomment-271210517,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AD2xT1aC1WN2-vX59_2xVtJKUNg5gfBZks5rQbqvgaJpZM4Ld6zr
.

--
Kurt Lewis

In addition to this PR, the text 'Photos courtesy of Major League Hacking powered by Dell and Windows' needs to be in the footer


🚀[Release v3.11.1] Merge into Develop

What's New?

Fixed the Segwit (ltc1) addresses which fixes the regression
Removed Litecoin Card
Updated Unstoppable Domains to latest versions
Re-added the gitignored partner-keys file
Minor improvements

Terima Kasih banyak  @josikie


feat(snapshot): Write and store snapshot sequence numbers.

I'm trying to dive dipper into the internals, so bare with me with these changes. I'm trying to solve https://github.com/slatedb/slatedb/issues/349 here. The changes add a last_seq number to the database state that's then written for every RowEntry. This last_seq is stored in the Manifest so it can be loaded once the database is restarted.
This probably needs some tests, but I'm opening the PR already to get feedback in the implementation so I know I'm going in the right direction.
/cc @flaneur2020

thank you for the contribution!
sorry that my issue description was too vague.
if I understand correctly, in SlateDB's storage layout, the manifest file is not updated with every key-value insertion/update. it only tracks a 'last-WAL' position in the manifest, while new modifications to key-values are being written, the manifest file remains unchanged until compaction. on startup, it replays the WAL by using S3's ordered LIST operation.
therefore, in addition to the sequence number in the manifest, we need to recover the sequence number from WAL replays.
leveldb's code on WAL recovery is a good reference for this: https://github.com/google/leveldb/blob/main/db/db_impl.cc#L451

btw, i'm a bit afraid of storing seqnum in memtable might be a precondition to store the non-zero seqnum in WALs. would you mind taking this issue https://github.com/slatedb/slatedb/issues/274 as well?
this may require a refactor of the memtable about making the keys from BtreeMap<Key, Value> to BtreeMap<InternalKey, Value> (in which InternalKey is a key encoded with seqnum and tombstone). i am not very sure about how much work is needed about this change, but it'd be nice to be put inside a standalone PR, as it's expected to be a self-contained change inside the memtable.
i suppose that it's also possible to work on this PR on persisting & replay seqnum first while left seqnum still be zeros, then put the seqnum generation & memtable in the next PRs.

sorry after working on #389, I found that these two changes are tightly coupled with each other. #389 would be difficult to get tested without having the sequence number persisted, and sequence number is also difficult to persisted without having the memtable support multiple versions. 😢
would you mind to reduce the scope of this PR to only include adding last_seq in the CoreDbState and manifest, while keeping the memtable unchanged? this would allow us to merge this PR more quickly.

@flaneur2020 no worries. Let me close this PR so you can make progress with your changes. I'm busy with other things and I don't have a lot of time to spend here.


Too many active destinations: 101 Error on Rolling File appender

With a RollingFile Appender configured as per

I get the error
[textWriter] FATAL: Too many active destinations: 101
multiple times. This is on all streams processed by the pipeline.
No errors occur if using a simple fileAppender.
I am using the example Event Data pipeline found in
./stroom/stroom-core-server/src/test/resources/samples/config/Standard Pipelines/Event Data.Pipeline.data.xml
with the fileAppender manually replaced with a rollingFileAppender

Remove the uuid from the fileName portion, and replace with ${node} and it will be fine.
You are making a new destination for every stream otherwise.

For completeness, the configuration change that works appears below. Perhaps it can be considered to either

provided a warning if a user attempts a ${uuid} variable expansion in the fileName property of a rollingFileAppender, or
ensure the documentation warns of it's use

For more completeness should one need to emit one stream at a time (ie one stream to one file) then the combination limiting the number of process filters on the pipeline (see #3966) and the use of a FileAppender (not rolling) achieves this.


Only display active pipelines by default

This PR is an attempt to fix https://github.com/tarides/tezos-ci/issues/38
It has an API change to reflect in Tezos CI that is addressed in another PR. The downstream libraries have to use
val set_active_sources : t -> R.Pipeline.Source.t list Current.t -> unit Current.t

to inform current-web-pipelines of which sources are active.
It looks like this:

and has a button to list all pipelines if wanted:

@TheLortex Is this worth fixing up and merging?

Yes it's still useful for mirage ci


Intl-ICU: implement Intl.NumberFormat under ICU

Closes #3661 (platform.currencyDigits)
Closes #3664 (platform.formatNumber)
Closes #3716 (platform.cacheNumberFormat)
Closes #3670 (Intl.NumberFormat ctor)
Closes #3671 (Intl.NumberFormat.prototype.format)
Includes some of @jackhorton's changes from PR #3781:

Windows ICU dependency updates
GUID update (Fixes #3773)

@jackhorton I'd imagine the way things are going that IcuIntlAdapter will go away in a refactoring (which TBH now is a good time to do). PlatformAgnostic::Intl now exists to hold everything which is ICU-specific. IntlEngineInterfaceExtensionObject.cpp is where all non-ICU (i.e. Runtime) logic should go, which includes getting JS values from the arguments passed into the entry points and as well as extracting the values stored on their properties, and any logic involving JS values. JS values should not be passed into PlatformAgnostic::Intl to keep the separation of ICU and Runtime logic.
Basically, there's no reason for IcuIntlAdapter now except that it used to exist.
I had a vague notion that it would be a good place to keep long logic that doesn't cleanly fit into PlatformAgnostic::Intl but can be abstracted out of IntlEngineInterfaceExtensionObject.cpp to keep that file shorter. However, this is not a useful abstraction anymore.

I'm not going to make this change until both of our PRs are merged so that we don't disrupt each other here.

In reply to: 332697924 [](ancestors = 332697924)


What the license for this code

Thank you for your and congratulations on being selected for the spotlight of NeurIPS 2023.
I would like to ask what the license is for this code?
Thanks a lot

We have released the license (Apache-2.0 license).

Thanks for your reply


perf: add arg max-concurrent-reconciles and reconstruct the func crea…

…teVolumes

What type of PR is this?

/kind feature
What does this PR do?

Which issue(s) does this PR fix?

Fixes #
Special notes for your reviewer:

Does this PR introduce a user-facing change?

NONE

/cc @hanweisen @xyz2277  @wangyizhi1 @duanmengkk

/lgtm


How to enable warnings?

I want warnings to be enabled on Travis but I don't to impose -Werror upon all my users – only Travis. How should I modify the generated travis.yml? I tried modifying the last invocation of cabal new-build, but it enabled warnings for all dependencies too, not just for my library (build log):
  # build & run tests, build benchmarks
- - cabal new-build -w ${HC} ${TEST} ${BENCH} all
+ - cabal new-build --ghc-options=-Werror -w ${HC} ${TEST} ${BENCH} all

you can do something like
echo "package $PKGNAME" >> cabal.project
echo "  ghc-options: -Wall -Werror" >> cabal.project

There is local-ghc-options configuration, this package itself uses it.


Avoid direct use of tokio interval in rtc video source

Follow-up to https://github.com/livekit/rust-sdks/pull/310
That PR added the ability to use async runtimes other than Tokio, via the livekit-runtime adapter crate. But this one direct usage of tokio::time::interval got left behind.

Nice, thank you, we also have plan to remove any async runtime into our SDK. To make everything sync. The reason is that the advantages of async in this SDK is very little


audit use of %% prefix operator in standard library

e.g. https://github.com/zig-lang/zig/blob/5e6fc94b7f43dda028de779a874f12591fa0a50d/std/build.zig#L89
The %% prefix operator is supposed to mean that something is impossible, not that it's an error to happen. The above link is possible at runtime if the user passes in long build_root and cache_root parameters, and then the allocator runs out of memory while concatenating them. That's not impossible; that's an error.
I'm generally uneasy about %%foo() being easier to type than %return foo(). It seems that %return foo() should be more commonly used than %%foo(), so why is it harder to type? If the author isn't certain whether an error is possible or not, then use %return (or do more research and become certain). Only when the author is certain despite the Zig type system that an error is not possible is it appropriate to use the %% prefix operator.
Should we remove %%foo() and just let the user type foo() %% unreachable instead?

Here's hello world with this proposal:
const io = @import("std").io;

pub fn main() -> %void {
    io.stdout.printf("Hello, world!\n") %% unreachable;
}

The code in std/build.zig is a proof of concept. The bug of a long build_root and cache_root parameter  is fundamentally present until this TODO is fixed:
https://github.com/zig-lang/zig/blob/5e6fc94b7f43dda028de779a874f12591fa0a50d/std/special/build_runner.zig#L45-L47
See #511 which I just opened.
Until that is done, %%os.path.relative(allocator, build_root, cache_root) can't really be improved.
I think that your proposal of removing the operator is interesting, can you file a separate issue for that which is labeled "proposal" and not "bug"?

I don't understand how printf is unable to fail in hello world. Wouldn't the following be better:
const io = @import("std").io;

pub fn main() -> %void {
    %return io.stdout.printf("Hello, world!\n");
}

Hmm, maybe that is better.

The bug of a long build_root and cache_root parameter is fundamentally present until this TODO is fixed

Are you saying the solution to allocation failure is to ensure memory allocation will always succeed? And that means effectively assuming we have infinite memory, which I'm pretty sure is one of the antipatterns Zig was designed to combat.

The other reason I used %% in std/build.zig is that, at the end of the day, if we run out of memory, we're going to abort the build and crash. Crashing earlier with %% is easier to debug when it happens.
Related, I think it might be interesting to explore if we can have the ability to collect a stack trace very quickly, and at least in debug mode and maybe also in release-safe mode, collect stack traces when an error is returned from a function, and attach them to the error. Then if you had to debug an error when it was passed around via %return you'd have a stack trace for why the error was originally returned.

I remember one reason     %return io.stdout.printf("Hello, world!\n"); isn't better.
In release fast mode, whereas in C you'd have a straightforward series of calls to printf, in zig you'd have a branch for each one. Maybe you kind of want undefined behavior or a crash if printf fails.
Maybe.
In practice I think printing to stdout or stderr is not a bottleneck, and the branches would be fine, especially with #84.
Also, maybe we don't aim the shotgun at one's feet automatically. Users can always make their own shotgun with:
pub fn out(comptime format: []const u8, args: ...) {
    io.stdout.printf(format, args) %% unreachable;
}

One more reason %% is useful, maybe we can solve this problem:
test "aoeu" {
    %%foo();
}

error ItBroke;

fn foo() -> %void {
    return error.ItBroke;
}

Test 1/1 aoeu...attempt to unwrap error: ItBroke
/home/andy/dev/zig/build/test.zig:2:5: 0x000000000020346b in ??? (test)
    %%foo();
    ^

vs
test "aoeu" {
    foo() %% unreachable;
}

Test 1/1 aoeu...reached unreachable code
/home/andy/dev/zig/build/test.zig:2:14: 0x000000000020346c in ??? (test)
    foo() %% unreachable;
             ^

The former has a better debugging experience because you get the error string printed. Maybe we can look for this pattern and codegen it the same way.

The other reason I used %% in std/build.zig is that, at the end of the day, if we run out of memory, we're going to abort the build and crash. Crashing earlier with %% is easier to debug when it happens.

But %% isn't a crash; it's undefined behavior. In safety mode, it's a crash, but does that mean that build.zig is designed to only work in safety mode? Does it rely on debugging facilities in normal operation? If so, it's not setting a very good example of how to write idiomatic Zig code.

Maybe you kind of want undefined behavior or a crash if printf fails.

I'll bring this up again. git log | less vs svn log | less. In both cases, git or svn can have a failure when doing a printf, because less closed the stdio stream when the user finished reading the history. git simply exits in this case, and svn prints a stacktrace assuming that something has gone wrong.
Even printf failures are something the user should think about. I don't like recommending %% for printf when it really is possible for it to fail in realistic circumstances.

does that mean that build.zig is designed to only work in safety mode

Actually yes. This is a bit of a special case. build.zig is built when someone does zig build and therefore needs to build quickly more than it needs to execute quickly. So debug mode is the best fit for it.

Ok, so what this means is that we've got two different ways of writing Zig code.

Runtime-appropriate, which assumes that undefined behavior is unacceptable.
Safety-reliant, which assumes that undefined behavior is a crash.

The latter category includes build scripts and tests, where the %% prefix operator is used extensively, and where assert() calls and unreachable statements are supposed to trigger errors instead of just informing the optimizer.
Are we comfortable with this dichotomy? Isn't this a pretty big violation of one-obvious-way?
What if we change tests to return errors to signal failure instead of hitting unreachable statements? And yes, I think attaching stacktraces to errors in safety or debugging mode is a good idea too, regardless of this discussion. Would that unify the two worlds?

zig test still has --release-fast where %% is actually undefined behavior. The only difference in test mode is the implementation of std.debug.assert calls @panic instead of using unreachable.

So we want 2 ways to write zig code? Like a project can specify in it's readme that it relies on safety, so you gotta build with safety enabled to use the library properly?
Wouldn't it make a lot more sense for there to only be one way to write zig code?

There are not 2 ways to write zig code. The %% usage as pointed out in this issue is problematic.

Incremental improvements.

I got it working at all, and now it can be improved.

I updated the hello world examples, and I made the C version do the same error checking so that the comparison is fair.

If I understand the solution correctly, tests must always use assert instead of %%, because the latter will invoke UB instead of crashing in release-fast mode?

That is correct.
Although maybe this ok, because presumably you already tested in debug mode, and you have actual assertions you want to test as well.
As an alternative to %%foo(), tests can use foo() %% |err| @panic("fail: {}", err).
One could implement a helper in userland:
fn ok(x: var) -> @typeOf(x).ChildType {
    return x %% |err| @panic("test failed: {}", err);
}
test "foo" {
    const cwd = ok(os.getCwd(&debug.global_allocator));
    assert(cwd[0] == '/');
}

or we change the implicit return type of test "" {} functions to %void, and returning an error signals test failure. then you use %return instead of %%, and it's both a working test and a demonstration of responsible error handling.
and then we remove the special case from assert for test mode and add another function:
fn assertOrError(b: bool) -> %void {
    if (b) return error.AssertionFailure;
}

then tests call %return assertOrError(x == 5); instead of assert(x == 5);.
now there's no special cases for test mode, and tests look like production code wrt undefined behavior.
there is a functional improvement in this change i'm proposing, which is that it is no longer appropriate for tests to get coverage on assertion failures in the production code. In my opinion assertion failures should be impossible to hit from the api, and so it doesn't make sense to test them.

Getting rid of the special case in assert I agree is the right thing to do here, so that ReleaseFast tests are testing the same code as would be run in a non-test build.
The only problem I have with %return assertOrError(x == 5) is that you don't get a nice stack trace as you would from a panic. So maybe a smaller first step until we figure out how errors can (sometimes?) have stack traces would be to have assertOrPanic.

Stack traces are generally useful things, especially in error situations. I'm a little bit nervous going in the direction of attaching stack traces to errors, because it's a slippery slope. What's next? Error messages? How about transplanting the stack trace when an error handler returns a different error?
Seems like an opportunity for innovation, but I don't have any good ideas at the moment.

My two cents is that writing to a file descriptor can fail at runtime so %% should terminate execution and not be undefined or not be encouraged in the documentation for this use case.
I can see two things being mixed, wanting to fail early, and wanting to get performance from truly impossible situations.


Remove the unused "GetIsPureXfa" message handler; and avoid unnecessary parsing when no structTree is available (PR 13069 follow-up, PR 13221 follow-up)

Remove the unused "GetIsPureXfa" message handler in the worker (PR 13069 follow-up)
Looking at the API, there's no code which actually sends this message. Most likely it's a left-over from a previous version of PR 13069, since the isPureXfa parameter is being included in the "GetDoc" message.

Avoid unnecessary parsing, in Page.GetStructTree, when no structTree is available (PR 13221 follow-up)
It's obviously (a bit) more efficient to return early in Page.getStructTree, rather than trying to first "parse" an empty structTree-root.
Somehow I didn't think of this yesterday, but this feels like a much better solution overall; sorry about the churn here!

/botio test

Hi Team,
I am implementing PDFJS in salesforce. Using version 2.7.5. and I am passing base64 to it as shown in example of pdfJS. I am getting error "cannot read property document of undefined" which is globalThis.document. I need a urgent help

/botio integrationtest

Thanks!


weave launch takes ages after removing all containers

$ weave launch
$ docker rm -f $(docker ps -aq)
737d7e6b0146
74b6ffbdf2f9
e0616b22752d
8683748d26a6
8a9bcfe85377
$ time weave launch

real	1m1.315s
user	0m0.020s
sys	0m0.004s

The docker daemon logs says
May 11 09:05:54 xps docker[1009]: time="2016-05-11T09:05:54.962452385+01:00" level=error msg="Post http://%2Frun%2Fdocker%2Fplugins%2Fweave.sock/Plugin.Activate: dial unix /run/docker/plugins/weave.sock: connect: connection refused"
May 11 09:05:54 xps docker[1009]: time="2016-05-11T09:05:54.966588377+01:00" level=warning msg="Unable to connect to plugin: /run/docker/plugins/weave.sock:/Plugin.Activate, retrying in 1s"
(repeats)

Tom says "If I remove the sockets in /run/docker/plugins it unblocks".

Don't do that then.
We provide weave stop and weave reset to shut down cleanly.
Note that Docker may try to talk to the socket even if you don't intend to use it, eg to find out if it's a volume plugin.
We may be able to improve that with a manifest.

This is roughly the same problem described in #1934

The JSON files described at https://docs.docker.com/engine/extend/plugin_api/ do not appear to qualify the type of plugin.

Raised https://github.com/docker/docker/issues/22653

Closed by #2292.


Dynamically create Variables classes to avoid shared state

Sharing a single class for all Variables instances caused issues because when dynamically adding parameters to an instance this would mess with other instances. Therefore we now dynamically create new Variables classes for each instance.

Codecov Report

Merging #413 (bbe3efe) into main (eaef7bf) will decrease coverage by 0.19%.
The diff coverage is 84.74%.

@@            Coverage Diff             @@
##             main     #413      +/-   ##
==========================================
- Coverage   68.51%   68.32%   -0.20%
==========================================
  Files          73       73
  Lines        8251     8419     +168
==========================================
+ Hits         5653     5752      +99
- Misses       2598     2667      +69

Impacted Files
Coverage Δ

lumen/validation.py
87.50% <ø> (ø)

lumen/rest.py
24.34% <50.00%> (ø)

lumen/sources/intake_dremio.py
57.14% <50.00%> (ø)

lumen/ui/fast.py
73.33% <50.00%> (-3.53%)
:arrow_down:

lumen/schema.py
57.41% <66.66%> (-0.20%)
:arrow_down:

lumen/sources/base.py
63.20% <72.22%> (-0.04%)
:arrow_down:

lumen/ui/state.py
70.83% <75.00%> (-4.78%)
:arrow_down:

lumen/ui/views.py
41.08% <75.00%> (+0.58%)
:arrow_up:

lumen/state.py
64.61% <77.04%> (-1.92%)
:arrow_down:

lumen/dashboard.py
76.51% <81.57%> (-1.13%)
:arrow_down:

... and 45 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Update Guzzle dependency to require 4.x, 5.x or 6.x

+1

Why is Guzzle 4 still being used on this project?

@ek9 any chance of getting this one in? would really help..

@ek9 any news on this?

Hello,
First, thank you for the PR and contribution. I could not accept this PR as it required updates to RemoteXDebug Driver that depends on guzzle, which were missing. Today I released 2 new versions of this extension:

v3.1.0 - uses guzzlehttp/guzzle ~4.0||~5.0. This is legacy support release, mostly for those still stuck with 4.0 or 5.0 for whatever reason. This version will not likely to receive further updates, but can be used for transition period. It is temporarily maintained on v3.1 branch.
v3.2.0 - uses guzzlehttp/guzzle ~6.0. This will be maintained and will receive any updates (master branch).

Additionally, as majority seem to not use RemoteXDebug, I am considering making guzzlehttp/guzzle dependency more optional. It would be nice if you could provide any feedback on #15
Closing this as this has been sorted when updating guzzle.
Thank you for feedback and PR.


Add --count to list operations

Is your feature request related to a problem? Please describe.
Allow action list and similar operations to return the asset count.
Describe the solution you'd like
... action list --count should show the action count. Similarly for all other assets.
Prototype in https://github.com/adobe/aio-cli-plugin-runtime/commit/da56545728145f67d357cc839d11b332cdf53cb2.

Thanks for the feature request, @rabbah !
@sarahxxu @purplecabbage for consideration: this could be a global flag available for all the list operations of any installed plugins, not only for Runtime-related assets.
WDYT?

so  aio rt action ls --json | jq length ?

The openwhisk api offers a ?count query parameter. In the linked commit I added —count which perform the api query with ?count=true and then formats the response.