[No QA] Background refresh for Android

HELD on https://github.com/Expensify/App/pull/23516

Details
Adds a call to our App.reconnectApp() action for Android that will refresh the app when the push notification is received in the background
Fixed Issues
$ https://github.com/Expensify/App/issues/15058
Tests
Android and iOS test only

Log into NewDot
Accept notification permission
Kill the app (swipe it away in recent apps view)
Send yourself a message
Verify you see the logs for receiving the push notification in the background and calling ReconnectApp command

[info] [PushNotification] received report comment notification in the background - {"reportID":34,"reportActionID":"6278921743108831865"}

[info] Making API request - {"command":"ReconnectApp"}

Offline tests
None
QA Steps
None
PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
N/A

Mobile Web - Chrome
N/A

Mobile Web - Safari
N/A

Desktop
N/A

iOS

Android

Need to fix
 WARN  Require cycle: src/libs/actions/Session/index.js -> src/libs/Notification/PushNotification/subscribeToReportCommentPushNotifications.js -> src/libs/Notification/PushNotification/backgroundRefresh/index.android.js -> src/libs/actions/App.js -> src/libs/actions/Session/index.js

Alright this is ready to review though held on reconnectApp changes. For now I just hardcoded lastUpdateID to 0 to test.

This is off hold and ready for review @Julesssss @pecanoro

Use the links below to test this build in android and iOS. Happy testing!

:test_tube::test_tube: Use the links below to test this build in android and iOS. Happy testing! :test_tube::test_tube:

android :robot:
iOS :apple:

https://ad-hoc-expensify-cash.s3.amazonaws.com/android/24128/index.html
https://ad-hoc-expensify-cash.s3.amazonaws.com/ios/24128/index.html

desktop :computer:
web :spider_web:

https://ad-hoc-expensify-cash.s3.amazonaws.com/desktop/24128/NewExpensify.dmg
https://24128.pr-testing.expensify.com

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/arosiclair in version: 1.3.53-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/yuwenmemon in version: 1.3.53-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Failing to build on Fedora

Hi,
In the process of trying to make wlc compiling in Fedora packaging system, I'm facing a problem during the compilation of tests.
What I do:
# I get the git repo with submodules in a very hackish way to trick the building system. I'm not going to put here the commands to do so, but the result is the whole git repo of wlc and its submodules
%cmake -DCMAKE_BUILD_TYPE=Upstream .
make -j4

It fails (see build.txt and root.txt)
I've tried to change the make command so it's now:
# I get the git repo with submodules in a very hackish way to trick the building system. I'm not going to put here the commands to do so, but the result is the whole git repo of wlc and its submodules
%cmake -DCMAKE_BUILD_TYPE=Upstream .
make

It fails differently (see build2.txt and root2.txt)
I'm wondering if this it's something I've done wrong or if the guide has something off

Sorry, attching the files
build.txt
build2.txt
root.txt
root2.txt

https://github.com/Cloudef/wlc/issues/69 See this issue. There is problem with your linker.

Curious, can you try appending -fuse-linker-plugin to the CFLAGS, -DCMAKE_C_FLAGS="-fuse-linker-plugin" and see if that works.

Thanks.
With -DCMAKE_C_FLAGS="-fuse-linker-plugin" it fails pretty badly (at cmake can not find any library that is installed on the OS)
With cmake -DCMAKE_INSTALL_PREFIX=/usr/ -DCMAKE_BUILD_TYPE=Release .. it does complain only about chck

You need to compile chck with Release or Debug too.


Remove django debug toolbar completely

Hi this is maybe not the most popular question but how do I disable or remove django debug toolbar completely?. If I remove it from my installed_apps and uninstall it, I still get an error that django cannot find debug_toolbar/base.html

Search for debug_toolbar in your entire project. Alternatively follow the installation instructions backwards.


In-line code doesn't have line break

I recently forked astro-paper for building a personal blog site and man, it's the best thing. I really loved how the code was structured and was able to pull off something cool by tweaking some things. That aside, I just noticed a bug where if you have a long word without a break as in-line code (yes, the one with backticks), it doesn't break naturally to next line in mobile view. This makes the other components wrap under less width making the page look weird.

Some more info:
I ran npm run build and checked the html output for the blog:

import 'package:action_process_text/action_process_text.dart';

So, I went ahead and tried adding hyphenapoly remark plugin with the following css:
.prose p {
    @apply prose-code:hyphens-manual prose-code:text-justify;
  }

which didn't work, so tried this:
  .prose p code {
    @apply hyphens-manual text-justify;
  }

Even that didn't work.
Steps to reproduce
Try pasting the following into a blog markdown file and check that page in mobile view:
import 'package:action_process_text/action_process_text.dart';

Hmm. This might be the case where the inline code is a bit misused. The inline code is intended to be used as just a word or two that you mention mid-sentence. Like a variableName or alpha != omega. In your case it's a whole line of code and therefore I would suggest using a code block instead.

Hello @coder-with-a-bushido,
Just like @Xkonti said above, you should use inline code for only one or two words. If you have a long code block, just like import line in your example, you should use Fenced code blocks.
So, instead of using ` import 'package:something'`, you can use
```
import 'package:something'
```
Here's the result.
Old code
import 'package:action_process_text/action_process_text.dart';
New code
import 'package:action_process_text/action_process_text.dart';

Some more info:
I ran npm run build and checked the html output for the blog:

import 'package:action_process_text/action_process_text.dart';

So, I went ahead and tried adding hyphenapoly remark plugin with the following css:
.prose p {
    @apply prose-code:hyphens-manual prose-code:text-justify;
  }

which didn't work, so tried this:
  .prose p code {
    @apply hyphens-manual text-justify;
  }

Even that didn't work.
Steps to reproduce
Try pasting the following into a blog markdown file and check that page in mobile view: import 'package:action_process_text/action_process_text.dart'; OR Try using this blog markdown file directly.

@coder-with-a-bushido, maybe can use
.prose code {
  @apply break-all;
}

but I'm not sure if there will be any side effects


Use Microsoft.Extensions.Logging for Logging

Networker uses its own ILogger abstraction and doesn't benefit from any of the logger ecosystem provided by Microsoft.Extensions.Logging.

Thank you David, I'll take a look at adding it.


updates duplicity module to latest

There was a trailing space in the sha hash for the duplicity module. I fixed it but still ran into this issue:
DaveOps:govuk-puppet jonauman$ bundle exec rake --trace librarian:install
** Invoke librarian:install (first_time)
** Execute librarian:install
Could not find a local copy of git://github.com/alphagov/puppet-duplicity.git at 99d165aa2a7949e7dee15184cfd4570fe72e965c.
rake aborted!

I had to manually update the module after that:
DaveOps:govuk-puppet jonauman$ rake librarian:update[alphagov/duplicity]
gzip: /Users/jonauman/DevOps/GDS/govuk-puppet/vendor/puppet/source/99d165aa2a7949e7dee15184cfd4570fe72e965c.tar.gz already exists -- skipping

After that, librarian-install started working again:
DaveOps:govuk-puppet jonauman$ bundle exec rake librarian:install
DaveOps:govuk-puppet jonauman$

rake librarian:install              # Install modules from local cache
rake librarian:package              # Install modules and update cache
rake librarian:update[module_name]  # Update a module version and cache
I think we want to use librarian:package, since the local cache can get foo barred

The tests are failing here because the updated module hasn't been cached in the vendor/ directory.

I ran these commands following the README:
bundle exec rake 'librarian:update[alphagov/duplicity]'
git add vendor/puppet/source/99d165aa2a7949e7dee15184cfd4570fe72e965c.tar.gz
git rm vendor/puppet/source/e238b6708c6d0a379d06599b25e6d2b68c3b8852.tar.gz

Merge away.

Might also be worth adding a comment as to why we upgraded this module.


Add LimitPixels and FillArea to MagickGeometry

Added support for the new(ish) LimitPixels and FillArea properties on MagickGeometry, used by the Resize and Thumbnail functions.
I was unable to get things to build because I do not have VS 2012 installed, the pre-built libs you have on dropbox seem to be built in that version so I can't link against them, even if I update the platform version so that I can compile the source.
I saw that you have AppVeyor scripts, so hopefully this PR will kick off a build and we can be sure it works.

Strange, the tests pass in x86 but not AnyCPU. Not sure what's going on there.

You will need to run Tools\GenerateAnyCPU.cmd to update the AnyCPU code. You will need to have VS2012 installed for this. Luckily I have a VM that is set up for this. Are you planning to send any more pull requests or would you want me to publish a new release?

Nothing more planned at the moment, and anything else I come up with will most likely not be urgent. So if you have the time to publish a new release that would be fantastic, thank you!

I just published a new release that includes your patches.


update(libscap): Add a macOS platform directory.

Copy userspace/libscap/linux to userspace/libscap/macos.
Signed-off-by: Gerald Combs<EMAIL_ADDRESS>
What type of PR is this?

Uncomment one (or more) /kind <> lines:

/kind bug

/kind cleanup

/kind design

/kind documentation

/kind failing-test

/kind feature

Any specific area of the project related to this PR?

Uncomment one (or more) /area <> lines:

/area build

/area driver-kmod

/area driver-bpf

/area driver-modern-bpf

/area libscap-engine-bpf

/area libscap-engine-gvisor

/area libscap-engine-kmod

/area libscap-engine-modern-bpf

/area libscap-engine-nodriver

/area libscap-engine-noop

/area libscap-engine-source-plugin

/area libscap-engine-udig

/area libscap

/area libsinsp

/area tests

/area proposals

What this PR does / why we need it:
This reenables building on macOS.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

NONE

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: geraldcombs
To complete the pull request process, please assign ldegio after the PR has been reviewed.
You can assign the PR to them by writing /assign @ldegio in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Hi @geraldcombs. Thanks for your PR.
I'm waiting for a falcosecurity member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

/ok-to-test

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Andreagit97, geraldcombs
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Andreagit97]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

LGTM label has been added.  Git tree hash: af77f9247665dc16b055b8849ff8ac2defecd733

Thank you @geraldcombs ! This LGTM!

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Andreagit97, FedeDP, geraldcombs
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Andreagit97,FedeDP]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


fix(Accessibility): Button titles

Adding the missing button attributes to the schema, adding button titles to the docsite.

Warnings

:warning:
There are no updates provided to CHANGELOG. Ensure there are no publicly visible changes introduced by this PR.

:warning:
Package (or peer) dependencies changed. Make sure you have approval before merging!

Changed dependencies are detected.
Changed dependencies in packages/ability-attributes/package.json

package
before
after

ability-attributes
^0.0.5
^0.0.6

  Generated by :no_entry_sign: dangerJS


Upgrade may stuck if app new launched task FINISH before health check passing

Marathon Version: 1.3.6
Step to reproduce:

start a simple web server app with health check, with 1 instance, wait unit running

{
  "id": "/test",
  "cmd": null,
  "cpus": 1,
  "mem": 128,
  "instances": 1,
  "container": {
    "type": "DOCKER",
    "volumes": [],
    "docker": {
      "image": "httpd:2.4",
      "network": "BRIDGE",
      "portMappings": [
        {
          "containerPort": 80,
          "protocol": "tcp"
        }
      ]
    }
  },
  "healthChecks": [
    {
      "path": "/",
      "protocol": "HTTP",
      "portIndex": 0,
      "gracePeriodSeconds": 60,
      "intervalSeconds": 20,
      "timeoutSeconds": 20,
      "maxConsecutiveFailures": 3,
      "ignoreHttp1xx": false
    }
  ]
}

modify app configuration, change app cmd to "sleep 20", and upgrade

Expected result:

Newly launched tasks fail health check
Newly launched task finish
Marathon launch another task after the task finish
repeat step 1

Actual result:

Newly launched tasks fail health check
Newly launched task finish
From now on, marathon deployment get stuck and do not try to launch new task

I think this affects marathon 1.3.x and 1.1.x

Note: This issue has been migrated to https://jira.mesosphere.com/browse/MARATHON-4758. For more information see https://groups.google.com/forum/#!topic/marathon-framework/khtvf-ifnp8.

Note: This issue has been migrated to https://jira.mesosphere.com/browse/MARATHON-4758. For more information see https://groups.google.com/forum/#!topic/marathon-framework/khtvf-ifnp8.


Install problems

Hi Simmesimme, I've just compiled Gnome-Pie from the source in my Arch Linux. It runs fine, except the notification area icon, probably because it can't find the gnome-pie-indicator.svg or gnome-pie.svg icon.
I tried installing it with cd build; sudo make install and then calling gnome-pie from the terminal and got the following message:
[20:26:51:212306 WARNING] Erro ao abrir o diretório "/usr/local/bin/resources/themes": Arquivo ou diretório não encontrado
[20:26:51:212380 WARNING] No theme found!```

Based on the make install output, I know that the themes folder was installed in another location:
```$ sudo make install
[100%] Built target gnome-pie
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/bin/gnome-pie
-- Installing: /usr/local/share/doc/gnome-pie/README
-- Installing: /usr/local/share/locale
-- Installing: /usr/local/share/locale/de
-- Installing: /usr/local/share/locale/de/LC_MESSAGES
-- Installing: /usr/local/share/locale/de/LC_MESSAGES/gnomepie.mo
-- Installing: /usr/local/share/gnome-pie/themes
-- Installing: /usr/local/share/gnome-pie/themes/unity
-- Installing: /usr/local/share/gnome-pie/themes/unity/ring.svg
-- Installing: /usr/local/share/gnome-pie/themes/unity/theme.xml
-- Installing: /usr/local/share/gnome-pie/themes/unity/icon_inactive.svg
-- Installing: /usr/local/share/gnome-pie/themes/unity/gloss.svg
-- Installing: /usr/local/share/gnome-pie/themes/unity/arrow.svg
-- Installing: /usr/local/share/gnome-pie/themes/unity/icon_active.svg
-- Installing: /usr/local/share/gnome-pie/themes/gloss
-- Installing: /usr/local/share/gnome-pie/themes/gloss/icon_bg.svg
-- Installing: /usr/local/share/gnome-pie/themes/gloss/icon_mask.svg
-- Installing: /usr/local/share/gnome-pie/themes/gloss/theme.xml
-- Installing: /usr/local/share/gnome-pie/themes/gloss/glow_bg.svg
-- Installing: /usr/local/share/gnome-pie/themes/gloss/icon_fg.svg
-- Installing: /usr/local/share/gnome-pie/themes/gloss/arrow.svg
-- Installing: /usr/local/share/gnome-pie/themes/gloss/icon_fg_active.svg
-- Installing: /usr/local/share/gnome-pie/themes/funky
-- Installing: /usr/local/share/gnome-pie/themes/funky/icon_bg.svg
-- Installing: /usr/local/share/gnome-pie/themes/funky/caption.svg
-- Installing: /usr/local/share/gnome-pie/themes/funky/theme.xml
-- Installing: /usr/local/share/gnome-pie/themes/funky/bg.svg
-- Installing: /usr/local/share/gnome-pie/themes/funky/star.svg
-- Installing: /usr/local/share/gnome-pie/themes/funky/red.svg
-- Installing: /usr/local/share/gnome-pie/themes/funky/icon_fg.svg
-- Installing: /usr/local/share/gnome-pie/themes/funky/blue.svg
-- Installing: /usr/local/share/gnome-pie/themes/slim
-- Installing: /usr/local/share/gnome-pie/themes/slim/dot.svg
-- Installing: /usr/local/share/gnome-pie/themes/slim/theme.xml
-- Installing: /usr/local/share/gnome-pie/themes/slim/bg.svg
-- Installing: /usr/local/share/gnome-pie/themes/bright
-- Installing: /usr/local/share/gnome-pie/themes/bright/ring.svg
-- Installing: /usr/local/share/gnome-pie/themes/bright/theme.xml
-- Installing: /usr/local/share/gnome-pie/themes/bright/icon_inactive.svg
-- Installing: /usr/local/share/gnome-pie/themes/bright/gloss.svg
-- Installing: /usr/local/share/gnome-pie/themes/bright/arrow.svg
-- Installing: /usr/local/share/gnome-pie/themes/bright/icon_active.svg
-- Installing: /usr/local/share/gnome-pie/themes/adwaita
-- Installing: /usr/local/share/gnome-pie/themes/adwaita/ring.svg
-- Installing: /usr/local/share/gnome-pie/themes/adwaita/theme.xml
-- Installing: /usr/local/share/gnome-pie/themes/adwaita/icon_inactive.svg
-- Installing: /usr/local/share/gnome-pie/themes/adwaita/arrow.svg
-- Installing: /usr/local/share/gnome-pie/themes/adwaita/icon_active.svg
-- Installing: /usr/local/share/gnome-pie/themes/o-pie
-- Installing: /usr/local/share/gnome-pie/themes/o-pie/ring.svg
-- Installing: /usr/local/share/gnome-pie/themes/o-pie/theme.xml
-- Installing: /usr/local/share/gnome-pie/themes/o-pie/arrow.svg
-- Installing: /usr/local/share/icons/hicolor/scalable/apps/gnome-pie.svg
-- Installing: /usr/local/share/icons/hicolor/scalable/apps/gnome-pie-indicator.svg
-- Installing: /usr/local/share/applications/gnome-pie.desktop```

After creating the folder /usr/local/bin/resources and a symbolic link (sudo ln -s /usr/local/share/gnome-pie/themes/ themes) it worked fine. But, again the status icon doesn't show properly.

It would be nice if Gnome-Pie use the same structure created by make install. If not possible, put some instructions on where to move each folder. And the last question (the most intriguing for me), where Gnome-Pie search for the status icon? I tried moving the icons to /usr/share/icons and /usr/share/icons/scalable/apps but none worked.

Thanks in advance!

I'll close this now, we'll use issue #10 instead!


Product Design: A better Leaderboard / Dashboard

Goal
We want to build a better leaderboard.
The overall goal of having a leaderboard is to award honor to most-contributing users and motive future contributions.
Current state
We currently display a simple list of user name list ranked by number of revisions they labelled.
Future state
(Add your comments here and we will consolidate a better leaderboard design and implement them)
Reference: #144

Based on your comment on #144, I think top 50 is quite good. As for the few nearest to users leaderboard, would we display the leaderboard based on the chosen language too?
A good leaderboard usually have these following traits:

Pagination
Filter such as "filter by country"
Information about us such as your are currently in the rank #xxx.
Give a different background color or fore color for showing where they are in the leaderboard.

That is to make everything easier for the user for find theirself.

I think something happened to the leaderboard this evening. I have been steadily working on Wikiloop-Battlefield and was at a much higher number than is appearing right now. I believe I even did more today than the page itself states right now.

I think something happened to the leaderboard this evening. I have been steadily working on Wikiloop-Battlefield and was at a much higher number than is appearing right now. I believe I even did more today than the page itself states right now.

I think the current dashboard assumes all non-login cases, if you have been loggining-in, your result might have not been consolidated yet.
Thank you for letting us know

I just relogged in and am now down to only 1 edit; it seems the leaderboard is no longer including all edits, but only new edits since the last log on! Help, this is now a disincentive to continue with it as it appears to have forgotten all my former contributions!!

What's your Wikipedia username, @jeffreykeefer ?

I rolled out a temporarily solution to solve your problem, @jeffreykeefer, not yet very ideal, but now if you log in you will not lose your rank on leaderboard.

Thank you. It seems to be working now. I ordinarily do not pay attention to these, but I have been using this tool between other tasks I work on throughout the day, and find it an engaging, ongoing process.


Deployed version of Object.values is missing a semicolon

E.g. when using an URL like https://cdn.polyfill.io/v2/polyfill.js?features=Object.values,Promise.prototype.finally this currently throws an error, since Object.values is missing a trailing semicolon:
Uncaught TypeError: (intermediate value)(...) is not a function
I checked the polyfill in the repository and it looks like the semicolon is there.
Is it possible that the latest polyfills aren't deployed at cdn.polyfill.io? Or is something else causing the issue?
Tested with Safari Version 11.0.1 (126<IP_ADDRESS>.1) on macOS
JS Bin reproduction

That's correct, it is fixed in master and will be out in the next release which I am preparing for testing right now 👍

Alright, great – thanks for the quick response!


Problems when installing on Windows

Did a fresh install of windows yesterday(2018-12-06) and were having some issues installing this module.
System info:
Windows 10 Pro 64-bit
Version	10.0.17134 Build 17134 (1803)
I installed nodejs, python2, vscode, git and github desktop on the fresh install. Albeit that i did get other errors before i reinstalled.
There seems to be some unmentioned prerequesites for this module, and im not sure if you are aware of this?
First i had issues because i had python3 and not python2 installed(this was before i reinstalled windows!)
You can see the first error i got here:
`C:\Github\hue-controller>npm install --save naudiodon

<EMAIL_ADDRESS>install C:\Github\hue-controller\node_modules\naudiodon
node-gyp rebuild
gyp ERR! configure error
gyp ERR! stack Error: Command failed: C:\Program Files (x86)\Python37-32\python.EXE -c import sys; print "%s.%s.%s" % sys.version_info[:3];%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack   File "", line 1
gyp ERR! stack     import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack                                ^
gyp ERR! stack SyntaxError: invalid syntax
gyp ERR! stack
gyp ERR! stack     at ChildProcess.exithandler (child_process.js:276:12)
gyp ERR! stack     at emitTwo (events.js:126:13)
gyp ERR! stack     at ChildProcess.emit (events.js:214:7)
gyp ERR! stack     at maybeClose (internal/child_process.js:915:16)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
gyp ERR! System Windows_NT 10.0.17134
gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Users\knerl\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "rebuild"gyp ERR! cwd C:\Github\hue-controller\node_modules\naudiodon
gyp ERR! node -v v8.12.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
npm WARN<EMAIL_ADDRESS>No description
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR!      C:\Users\knerl\AppData\Roaming\npm-cache_logs\2018-12-06T17_36_43_427Z-debug.log`

This should be fixed by installing python2 and having it in your PATH. I am not sure if you need to remove python3 from PATH before this will work.
The second error goes something like this:
MSBUILD : error MSB4132: The tools version "2.0" is unrecognized. Available tools versions are "4.0".
The solution for this seems to be that you either have to install a redist that supports the mentioned version. Or you can download and install Visual Studio Community 2017 and add atleast one of or both these Workloads: .NET Desktop Development and Desktop Development with C++.
I added both.
After that the installation worked perfectly with no issues.

This looks like an issue with your system setup for building native addons ... and the fact that our instructions are not clear about this. We have done better with other modules.
See https://github.com/nodejs/node-gyp for details of setting up a system for building native modules.
I will improve the instructions before closing this issue.

Yea, i see now that i should have been able to find that with a little more research.
Thanks for taking your time and answering :)!

Instructions improved.


Snackbar sample code not working - onTap

I dropped the sample code for the Snackbar service into my project to see what it would look like and get an error at runtime initialization with onTap:
[ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: type '() => Null' is not a subtype of type '(GetBar<Object>) => void'
Sample code:
await _snackbarService.showSnackbar(
  /// REQUIRED
  message: 'Wow, My Regular Snackbar',

  ////////////////////////////
  /// Optional Parameters ///
  //////////////////////////
  title: 'My Regular Snackbar Title',
  iconData: Icons.hello,
  /// logic for when the snackbar is tapped!
  onTap: () {},  // <---- causes the problems
  /// defaults to `false`; accepts `bool`
  shouldIconPulse: false,
  /// defaults to `0`; accepts `double`
  barBlur: 0,
  /// defaults to `true`; accepts `bool`
  isDissmissible: true,
  /// defaults to a `Duration` of `3 seconds`; accepts `Duration()`
  duration: const Duration(seconds: 3),
);

@manafire I'll check it out and get back to you.

@manafire onTap requires you to provide a function of type (GetBar<Object>) => void. Thus it has an input variable which you do not declare in your dummy function. Just replace your () {} witch (_) {} and you're fine. This is usual the convention if you are required to provide an input variable but you have no intention of using it in the actual function.
AFAIK, the empty function () {} is interpreted as null and can also be just replaced by null  itself.

@manafire I've completely reworked the snackbar service to remove all UI requirements from the public interface. I've upated the sample as well. Checkout v 0.5.0 along with the updated readme for snackbar service to see how it works.


When returning an HTML error, make sure it's safe

When calling into an API specifying a crafted format that is HTML,
the returned error renders the HTML back to the user, causing a potential XSS
issue.  For example:
http://example.com/api/endpoint?format=<script>alert(document.cookie)</script>
Renders as html:
The requested format '' is not supported.
When an error generates html back to the user, make sure it's properly escaped.
Fixes issue #1762

I had to fix six specs to be "compliant", which really surprised me.  The ones that return json in particular seem like maybe they're not setting their content-type appropriately to json and as such are returning a json blob in html code.  Is this ok/correct?

The ones that expect JSON should indeed set the correct content type, thanks for taking care of it.
Looks like Rails 3 may be a problem. If it gets complicated we can discuss dropping support.

Better, but not 🍏  :(

@dblock ok specs passing now

:wave:  I am a member of the GitHub team that sends security alerts.  This issue was assigned CVE-2018-3769 which is now disclosed publicly therefore therefore we would like to send security alerts for it.
However, in our curation process it was noticed that the latest version of grape, 1.0.3, does not appear to include this fix.  Will a new version of grape be published soon with this fix?
Thank you for any information!  🙇

I've released 1.1.0.


Cannot open './snowflake_log_file.log' and no stats.

I installed Snowflake according to this documentation.
First of all, there is either http:// or https:// missing in the git clone command. Without it the repo can't be found.
When starting piconyx using piconyx ./snowflake_log_file.log I get the following error:
Loading...tail: cannot open './snowflake_log_file.log' for reading: No such file or directory
tail: no files remaining

Then it simply displays the CPU load and memory usage, but no statistics.

Your issues have nothing to do with piconyx.

you have to give the snowflake proxy directions where exactly to put its log file, so instead of
nohup ./proxy
run something like
nohup ./proxy -log /tmp/snowflake_log_file.log
now you should be able to execute piconyx /tmp/snowflake_log_file.log

Ahhh, I see, that was completely unclear from the Getting started section, tbh.
I stil get a lot of rubbish output, that repeats itself with some useful log in between. And it's just what's also in the logfile.
Linux raspberrypi unknown
%Cpu(s):  2.3 us,  5.7 sy,  0.0 ni, 92.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :    923.2 total,     79.6 free,    118.2 used,    725.5 buff/cache
MiB Swap:   1254.0 total,   1202.0 free,     52.0 used.    732.4 avail Mem
-e
-e
  LOG
  2022/03/12 10:38:42 In the last 1h0m0s, there were 0 connections. Traffic Relayed ↑ 0 B, ↓ 0 B.
  2022/03/12 10:38:42 starting
  2022/03/12 10:38:42 WebRTC: Created offer
  2022/03/12 10:38:42 WebRTC: Set local description
  2022/03/12 10:38:42 Offer: {"type":"offer","sdp":"v=0\r\no=-<PHONE_NUMBER>252019274<PHONE_NUMBER> IN IP4 [scrubbed]\r\ns=-\r\nt=0 0\r\na=fingerprint:sha-256 C7:<censored>\r\na=group:BUNDLE 0\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 [scrubbed]\r\na=setup:actpass\r\na=mid:0\r\na=sendrecv\r\na=sctp-port:5000\r\na=ice-ufrag:EAYMTYJRRVJcjZtm\r\na=ice-pwd:vmpnlwuMIRLeqtjRnrApsrdsFHTFaRuR\r\na=candidate:1193159937 1 udp<PHONE_NUMBER> [scrubbed] 33762 typ host\r\na=candidate:1193159937 2 udp<PHONE_NUMBER> [scrubbed] 33762 typ host\r\na=candidate:233762139 1 udp<PHONE_NUMBER> [scrubbed] 37907 typ host\r\na=candidate:233762139 2 udp<PHONE_NUMBER> [scrubbed] 37907 typ host\r\na=candidate:569126388 1 udp<PHONE_NUMBER> [scrubbed] 26109 typ srflx raddr [scrubbed] rport 56920\r\na=candidate:569126388 2 udp<PHONE_NUMBER> [scrubbed] 26109 typ srflx raddr [scrubbed] rport 56920\r\na=candidate:2011994373 1 udp<PHONE_NUMBER> [scrubbed] 34444 typ host\r\na=candidate:2011994373 2 udp<PHONE_NUMBER> [scrubbed] 34444 typ host\r\na=candidate:116395708 1 udp<PHONE_NUMBER> [scrubbed] 45993 typ host\r\na=candidate:116395708 2 udp<PHONE_NUMBER> [scrubbed] 45993 typ host\r\na=candidate:1249844580 1 udp<PHONE_NUMBER> [scrubbed] 41148 typ host\r\na=candidate:1249844580 2 udp<PHONE_NUMBER> [scrubbed] 41148 typ host\r\na=candidate:401647934 1 udp<PHONE_NUMBER> [scrubbed] 58905 typ host\r\na=candidate:401647934 2 udp<PHONE_NUMBER> [scrubbed] 58905 typ host\r\na=candidate:2057679795 1 udp<PHONE_NUMBER> [scrubbed] 49209 typ srflx raddr [scrubbed] rport 49209\r\na=candidate:2057679795 2 udp<PHONE_NUMBER> [scrubbed] 49209 typ srflx raddr [scrubbed] rport 49209\r\na=end-of-candidates\r\n"}
  2022/03/12 10:39:08 NAT Type measurement: unknown -> restricted = restricted
  2022/03/12 10:39:08 NAT type: restricted
  2022/03/12 10:39:08 WebRTC: Created offer

@hbrns pull request should solve your issues I think. I will also update the getting started section as I agree it's not entirely clear if you're not familiar with the proxy.

You should archive this repository if you are unable to correct a single line in the README.md file.


rules: rollback recording rules in case of tsdb error

Something that I have seen while reading the code.
I will think about a way to test this.
Signed-off-by: Julien Pivotto<EMAIL_ADDRESS>

Hello from the Bug Scrub!
Sounds like it's open for a while and we didn't have time to complete this (undraft). Let's close for now any reopen later if needed. Thanks!


Microsoft PowerToys

Is your feature request related to a problem? Please describe.
I want to remap some keys on many machines, it would be nice to have the Keyboard Manager from the PowerToys available via this utility.
Describe the solution you'd like
One-Click installation of https://github.com/microsoft/PowerToys
Describe alternatives you've considered
Running winget myself, but this tool could incoorperate it.

Powertoys is already in the install tab under Microsoft tools

@TakenMC I'm blind, thanks!!


Switch to 3D VIR

From @orta on December 15, 2014 17:30
SceneKit now means that we can build a VIR that can work neatly across Folio / Eigen, and iPad/iPhone.
This also makes it way easier to support VIR collection.
Copied from original issue: artsy/eigen-private#2069

I built a Mac implementation of this as an experiment, but its really hard to have a sense of the amount of polish it will take.

http://cl.ly/0B0S2W33141b/VIR3D.zip

someone could take a second look now that we're is only


Repeated Warning on RMOT cooling limit

Hi,
in my logs, I'm seeing repeated messages like this:
[homie.node.property.property_base]  [WARNING]  Invalid Value: Device ZehnderQ350 Node Controls Property Cooling Limit RMOT Value 16.0
The corresponding value homie/zehnderq350/controls/cooling-rmot is reported incorrectly as 20.0 (ComfoControl App shows 16.0)
Any hints?
Anyway, thanks a lot for this great piece of software!
Stefan

Hi Stefan,
In my ComfoControl App (iOS) it is not possible  to set this value lower than 20 degrees, so I assumed that it cannot be lower.  It is limited in this line.  https://github.com/klaudiusz223/ComfoAirQ-Homie/blob/09ec1e01059361797c5f9a3d88889137d0b817a3/comfoairq_homie/homie_device/device_comfoairq.py#L320
Changing data_format='20:40' to e.g data_format='10:40' should fix this  problem.  Could You check if it works for You?
Klaudiusz

Yes, indeed, works for me with the extended range.
That was quick, thanks a lot!

OK.
What is the minimum value for Your App?
Klaudiusz

The Android App allows a range of 15-40°C.
Heating limit range is 0 - 15°C, so your choice with 0-20 should be ok.


Enable Arcadia Science in Docmaps

To test: http://localhost:8080/docmaps/v1/index?publisheraccount=https://sciety.org/groups/arcadia-science


[linux, compact profile] ICE: Assertion '!is_equal' failed at jerry-core/ecma/operations/ecma-lex-env.cpp(ecma_op_set_mutable_binding):219

When executing tests/jerry-test-suite/13/13-011.js with a debug compact profile build of jerry on linux, the engine crashes with status code 120 and error message as follows:
ICE: Assertion '!is_equal' failed at ../../../jerry-core/ecma/operations/ecma-lex-env.cpp(ecma_op_set_mutable_binding):219.
Error: ERR_FAILED_INTERNAL_ASSERTION

The release compact profile build does not report any error on the same input.

I checked this and the assert must be a leftover. I'll propose a PR for removing it.

The merge of #882 makes the original assert disappear (of course) but the same test now triggers another error:
[737/766] ./build/bin/debug.linux-cp/jerry  ./tests/jerry-test-suite/13/13-011.js: FAIL (120)
ICE: Assertion 'ecma_is_completion_value_empty (completion)' failed at /home/akiss/devel/jerry/jerryscript/jerry-core/ecma/operations/ecma-objects-arguments.c(ecma_op_create_arguments_object):265.
Error: ERR_FAILED_INTERNAL_ASSERTION

@akiss77, let me check.


NAudio will not install.

Could not install package 'NAudio 2.0.1'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.5', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.
Time Elapsed: 00:00:01.0816701
========== Finished ==========

NAudio 2 requires netstandard2.0 compatibility, which means you should ideally be targeting at least .NET Framework 4.7. Is there any reason you can't?
Otherwise you still need to use NAudio 1.10


Possible way to get what the player is looking at?

I'm not sure how to go about getting what the player is looking at, but I assume it has something to do with the World.Raycast() command.
Any help on this would be appreciated.

Game.Player.GetTargetedEntity()

Thanks!


Add Zurich Instruments drivers

This PR add support for Zurich Instruments devices as drivers inside of QCodes.
The actual implementation is in https://github.com/zhinst/zhinst-qcodes/ as described in
https://blogs.zhinst.com/andrea/2020/05/24/control-your-measurements-with-qcodes-and-labber/
Here we propose to add stubs in Qcodes to help user to find and install such drivers.
We propose deprecation of the existing ZIUHF, since its functionality is replaced by this PR.
A new optional installation option, 'ZurichInstruments' is introduced. That add the package zhinst-qcodes as optional dependency of Qcodes, if the user wish so.
@jenshnielsen

@astafan8 Please have a look

thank you!


Make DefaultSerializerSettings non-readonly

As I understand the idea of DefaultSerializerSettings is to override JSON settings. But in the current implementation it's impossible to assign it. Changing the pre-created object is also not possible because JsonSerializerOptions uses caching and immutable state after creation (at least in .NET 7, see ConfigurationList.IsImmutable & JsonSerializerOptions.IsImmutable).
Proposal: remove "readonly" modifier, so the field could be re-assigned before a logger creation. Alternately, JsonSerializerOptions may be added as a parameter to configuration.

@antgraf you should not change DefaultSerializerSettings. I'm not sure that the configuration system will be able to correctly read the settings for JsonSerializer. If you want to change json serializer settings then you should make GraylogSinkOptions like this
            var loggerConfig = new LoggerConfiguration();
            loggerConfig.WriteTo.Graylog(new GraylogSinkOptions
            {
                ShortMessageMaxLength = 50,
                MinimumLogEventLevel = LogEventLevel.Information,
                Facility = "GELF",
                HostnameOrAddress = "localhost",
                Port = 12209,
                UseGzip = false,
                JsonSerializerOptions = new JsonSerializerOptions
                {
                    WriteIndented = true,

                    Encoder = new JavaScriptTestEncoder()
                },
                TransportType = TransportType.Udp
            });

@whir1 Is it possible with configuration file?

no it's not possible with config files. But i think you can use combination with configuration and startup code to make SinkOptions

@whir1 is there an example of mixing config and runtime options? I have an impression that after instantiating it with a config there is no way to apply more changes programmatically. Thanks.


Automatically detect if dev server is running

I maintain an open source project utilising django and vue. Currently on vue2 I use webpack with webpack bundle tracker. While migrating to Vue3 I am thinking about switching to vite and django-vite as it seems to work a lot better. I just have one inconvenience.
I would be happy to contribute a fix/improvement if that is wanted.
Problem
Switching between testing on with dev server / HMR is cumbersome because you need to change settings/environments
Solution
add an app specific setting autodetect_dev_server (or similar)
in asset_load.py when generating the ws_client check if the setting is enabled and detect if the dev server is running
    def generate_vite_ws_client(self, **kwargs: Dict[str, str]) -> str:

        if self.autodetect_dev_mode:
            with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
                s.settimeout(0.001)
                try:
                    # check if a service is running on the dev server host/port
                    s.connect((self.dev_server_host, self.dev_server_port))
                    self.dev_mode = True
                except:
                    pass

        if not self.dev_mode:
            return ""

        url = self._get_dev_server_url(self.ws_client_url)

        return TagGenerator.script(
            url,
            attrs={"type": "module", **kwargs},
        )

This code is just a rough first idea, you know your codebase best so if a different method (e.g. maybe the constructor) is more fitting for running this check and deciding if dev mode should be enabled or not is better feel free to give feedback.
Considerations
This will add a minor delay (in my tests 20-30ms) into the page load but only while DEBUG and autodetect is enabled. Since you don't reload often when using HMR the impact will be insignificant. The setting can be enabled on all dev workspaces and disabled by default, this way you don't have to change it all the time
Other options

right now I have a small script in settings.py that checks if the dev server is running and changes the setting accordingly. The problem here is that if you start django before starting vite it wont detect the server at load time.
you could configure different environments, but that is additional setup work for each workstation

Invalid options

just using DEBUG because every now and then you might want to turn on debug on production to generate a quick report or investigate an issue and that would break the page if no dev server is present

Thank you for the great project, I already use it for a smaller project and really like how well it works

Thank you for your interest in the project and your thoughtful proposal. I took some time to consider it and here are my thoughts.

Switching between testing on with dev server / HMR is cumbersome because you need to change settings/environments

Yes, toggling the "dev_mode" setting is an required step to switch between dev_mode being on and off. I'll get into why this added step can be beneficial, but right off the bat you might be served by setting it to an environment variable that you can quickly change in your own .env file. It can be it's own explicit variable -- is doesn't necessarily need to be bound to DEBUG:
DJANGO_VITE = {
    "default": {
        "dev_mode": os.environ.get("DJANGO_VITE_DEV_MODE", False),
        "static_url_prefix": os.environ.get("DEFAULT_STATIC_URL_PREFIX"),
        "dev_server_port": os.environ.get("DEFAULT_DEV_SERVER_PORT"),
    },

Toggling dev_modes via environment variables in settings is a best practice. I could only see this step being cumbersome if someone were theoretically switching between dev_mode and production_mode very frequently, and even then you'd still have to manually run vite build between switches to run your app in production mode.
dev_mode is not something that I would want to automate. Yes, it is an additional configuration step to define. But following the Zen of Python principle "Explicit is better than implicit," I want developers to have complete control and understanding of when their application is engaged in dev_mode or not. If their vite dev server is not running and they've set dev_mode=True, I want the library to let them know, not silently fallback to an old compiled production build. If a vite server (or any other service using the same port) happens to be running at the same time, I don't to silently force applications to run with dev_mode=True every time. I think introducing this feature would add more complexity than it solves.

just using DEBUG because every now and then you might want to turn on debug on production to generate a quick report or investigate an issue and that would break the page if no dev server is present

I would not recommend turning on django debug mode in production. There are other ways to generate error stack traces that are more secure and efficient.
Thank you for your suggestion and support. I'm happy to hear out any other suggestions you'd have to share.

Hi, thank you @vabene1111 for your proposal.
I agree with @Niicck, it's very not recommended to turn on DEBUG on production as the Django framework rely on it to be more secure on production an turn off some development tools to be more efficient.
If what you need is stack-traces of errors, in my projects we send 500 errors as emails to the dev team. You could also take a look at tools like Sentry ?

Hi, thanks for your feedback. I absolutely agree with your feedback.
I still like the ability to switch automatically, maybe because I am used to this behavior from many years of working with Django webpack plug-in.
Another use case for example is quickly firing up just Django to fix something on the backend without starting vite. So I thought an additional setting that does not change any of the others when not used might be useful.
But all of these things are minor, your reasons and design decisions make perfect sense so feel free to just leave it as is.


Fix root volume resizing on EC2 KVM instances (M5, C5, etc)

Fixes:
https://github.com/NixOS/nixpkgs/issues/33417
https://github.com/NixOS/nixpkgs/issues/33092
Root volume resizing was broken on new KVM instances because of the way partition name was computed
rootDevice="$(readlink -f "$rootDevice")"
        parentDevice="$(lsblk -npo PKNAME "$rootDevice")"
        TMPDIR=/run sh $(type -P growpart) "$parentDevice" "''${rootDevice#$parentDevice}"

"''${rootDevice#$parentDevice}" results in p1 instead of 1 when root device is nvme disk
resulting in small root partition
# lsblk
NAME        MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1     259:0    0  32G  0 disk
└─nvme0n1p1 259:2    0  2G  0 part /

Suggested solution borrowed from here:
https://git.launchpad.net/cloud-initramfs-tools/tree/growroot/scripts/local-bottom/growroot
(lines 38 - 49)
Performed testing on m4 and m5 instances and confirmed that fix works

cc @greglearns @polynomial @hakujin who have also expressed interest in the related tickets

@copumpkin @edolstra how can I help get this fix into new AMIs? New to nix but happy to contribute if someone will point me in the correct direction.

We've discovered one remaining bug that makes the new instance types fail if you use large root EBS volumes with NixOS. Hoping to get a fix to that in today, then whenever @edolstra has time to make the AMIs, I think we'll be set.

New AMIs are up!

Thanks 👍

Thank you @edolstra

I found the solution https://stackoverflow.com/a/52563443/637623
TLDR: if your partition name is nvme0n1p1, then your growpart command should be like this
sudo growpart /dev/nvme0n1 1 (without the letterp)

@cristiam86 sorry, the solution to what? is this not working for you?

I mean that I wasn't able to understand the solution given by @ngortheone. So I looked a little bit further and found that StackOverflow post were the problem was explained in a more simple way.

Oh, if you have a simpler one that still works a PR would be very nice!

Oh no, sorry my problem wasn't linked with this project was resizing the partition manually, but looking for solutions I stumble across this repo and helped me to reach the final solution.
Thanks


Search editor can show invalid values for context lines

See several duplicate lines below:

It might have something to do with having the file opened?

I've recently noticed this too, and I can confirm that it corresponds with having the file open.
You can test by closing any of the files that you notice duplicate lines for and refreshing the search editor. The duplicate lines will disappear. Reopen the file, refresh the search, and the duplicate lines with reappear.
If you increase the number of context lines, the behavior of exactly what's duplicated becomes clearer. The duplicated lines are always:

The line above the match
The last line of the match "chunk"

If either or both of those don't exist (because the matched line is the first/last in the file), then you won't get the corresponding duplicates. Duplicates never occur when the context lines are disabled/set to 0.

/duplicate https://github.com/microsoft/vscode/issues/192113


Remove old Website development documentation

Noticed whilst reviewing #8730.
We now use Readthedocs for the documentation, so the scripts and documentation relating to building and pushing docs to the Github pages is obsolete.
In addition, the website is now served from a new repository.
See also numba/numba-webpage#10.

See also numba/numba-webpage#10.

@seibert has archived this repo.


Make a full copy of the parser and apply our modifications to it

To enable easier access to enhance the parser - instead of copying parts of it this PR proposes to keep a full copy with our modifications in the repo. This makes:

a more easier to understand build
the build will unpack the "base" version of the parser to sql/target/calcite-base-parser ; so its relatively easy to see what have changed
more freedom on what could be modified later
upgrade is "different":

this PR contains a script which could help during upgrades (dev/updgrade-calcite-parser)
it restores the parse into the original state and apply our modifications and the updated ones and then merge it - this process should more or less finish successfully

@rohangarg @gianm @clintropolis: I wonder if you could take a look?


ImportError: no module named 'PCAL6416A' - Soldered Inkplate 10

Hello! I have a new Soldered Inkplate 10. I followed the instructions in the README to install micropython on the inkplate:

python3 esptool.py --chip esp32 --port /dev/ttyUSB0 write_flash -z 0x1000 esp32spiram-20220117-v1.18.bin
python3 pyboard.py --device /dev/ttyUSB0 -f cp mcp23017.py soldered_inkplate10.py image.py shapes.py gfx.py gfx_standard_font_01.py :

When I try to run the example, however, I get the following error:
$ python3 pyboard.py --device /dev/ttyUSB0 "Examples/Soldered_Inkplate10/basicBW.py"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "soldered_inkplate10.py", line 8, in <module>
ImportError: no module named 'PCAL6416A'

Any suggestions?

Aaaand upon closer inspection, of course I just needed to also copy the PCAL6416A.py file from this repo onto the device. All set now!

Hi @SMores
Great to hear you got it working, we have recently updated the README to make this more clear.
-Rob


QAR-200 ArLocationDataSource

https://devtopia.esri.com/runtime/queen-annes-revenge/issues/200

Assigning to @gunt0001 for first review. Thanks.

Thanks for the review @alan-edi . Assigning to @gunt0001 for re-review.

Thanks for the reviews @alan-edi @gunt0001 . Merging.


[BUG] beehive_v0.0.5_pt/model.pt removed in 2.10.0? It's not compatible with existing code.

Thanks for your excellent work, but the latest huggingface update seems to have removed a model file that is needed for the latest code. How is it compatible with this modification?
beehive_v0.0.5_pt/model.pt was removed from the huggingface repository in version 2.10.0, but it is required to run a 2.10.0 program. （Use safetensors (#2)）
my code
pipeline_options = PdfPipelineOptions(artifacts_path="/root/models/ds4sd/docling-models/")
converter = DocumentConverter(
    format_options={
        InputFormat.PDF: PdfFormatOption(pipeline_options=pipeline_options)
    }
)
# converter = DocumentConverter()
result = converter.convert(source)
print(result.document.export_to_markdown())

error log:
FileNotFoundError: Missing torch file: /root/models/ds4sd/docling-models/model_artifacts/layout/beehive_v0.0.5_pt/model.pt

How do I use the new model? Or do I need to download the previous model manually?

How did you download the model weights?
Each Docling version will pin a specific tag in HuggingFace, we don't advise anybody to pull from the main branch there.
The following function is taking care of pinning the correct version
from docling.pipeline.standard_pdf_pipeline import StandardPdfPipeline
StandardPdfPipeline.download_models_hf()

Thank you for your answer.
My machine is deployed on a LAN and I moved it to the machine after downloading the models via huggingface_cli, so I referred to documentation for the way I downloaded the models and had the problem of this issue.
I looked at the download_models_hf code and found that it downloads models from the v2.0.1 branch, which works fine after I download this version.
Although the problem was resolved, the inconsistency between the versions on huggingface and github did confuse me, perhaps there should be a reminder of the version difference in the FAQ question in the documentation?
Thanks again for your answers!

Yes, the documentation could be more explicit about it. Happy you could quickly resolve your issue.


:bug: Event failure should not lead to process failure

Whilst we don't want either to have npe on event, those kind of npe should not lead to process failure

Just need to pass the all the event to async event


Error when executing findMany query

I created a minimal sample showing the error: https://github.com/esistgut/prisma-issue
To run the sample first execute npm i && npm run prismation. There are two functions: populate to create the required data and test to show the error. Please comment/uncomment as required (populate should only be run once).
The test should show the following error:
(MariaDB)
PrismaClientUnknownRequestError:
Invalid `prisma.services.findMany()` invocation in
/home/esistgut/coding/typescript/prisma-test/index.ts:92:57

→  88 Error occurred during query execution:
ConnectorError(ConnectorError { user_facing_error: None, kind: QueryError(Server(ServerError { code: 1241, message: "Operand should contain 1 column(s)", state: "21000" })) })
    at PrismaClientFetcher.request (/home/esistgut/coding/typescript/prisma-test/node_modules/@prisma/client/index.js:89:17)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)

(Sqlite)
PrismaClientUnknownRequestError:
Invalid `prisma.services.findMany()` invocation in
/home/esistgut/coding/typescript/prisma-test/index.ts:92:57

→  88 Error occurred during query execution:
ConnectorError(ConnectorError { user_facing_error: None, kind: QueryError(SqliteFailure(Error { code: Unknown, extended_code: 1 }, Some("sub-select returns 4 columns - expected 1"))) })
    at PrismaClientFetcher.request (/home/esistgut/coding/typescript/prisma-test/node_modules/@prisma/client/index.js:89:17)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)

This looks like a bug but I'm not really sure about it.

I simplified my test after receiving some input on Slack. The error is still there.

Thanks for the reproduction. That was really helpful. I can also confirm this happens with preview023 as well.
Laying out reproduction steps here so that we can quickly go through them:

Clone https://github.com/esistgut/prisma-issue
Run npm install
Run npm run prismation (This will run prisma2 migrate)
Open index.ts and execute the populate method in main
Run ts-node index.ts
Now execute the test method in main function
Run ts-node index.ts to reproduce.


fix(docker): serialport bindings issue

Fixes #2349

Let's hope this actually works

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 26.944%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
3642

Relevant Lines:
14247

💛  - Coveralls


www.tele5.de has been updated and does not work anymore

Checklist

[x] I'm reporting a broken site support
[x] I've verified that I'm running youtube-dl version 2019.04.30
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar issues including closed ones

Verbose log

youtube-dl -v 'https://www.tele5.de/star-trek/raumschiff-voyager/ganze-folge/das-vinculum/'
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v', 'https://www.tele5.de/star-trek/raumschiff-voyager/ganze-folge/das-vinculum/']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2019.04.30
[debug] Python version 3.6.5 (CPython) - Linux-4.14.65-gentoo-x86_64-AMD_Phenom-tm-_II_X4_925_Processor-with-gentoo-2.6
[debug] exe versions: ffmpeg 3.4.5, ffprobe 3.4.5, rtmpdump 2.4
[debug] Proxy map: {}
[generic] das-vinculum: Requesting header
WARNING: Falling back on generic information extractor.
[generic] das-vinculum: Downloading webpage
[generic] das-vinculum: Extracting information
ERROR: Unsupported URL: https://www.tele5.de/star-trek/raumschiff-voyager/ganze-folge/das-vinculum/
Traceback (most recent call last):
File "/usr/lib64/python3.6/site-packages/youtube_dl/YoutubeDL.py", line 796, in extract_info
ie_result = ie.extract(url)
File "/usr/lib64/python3.6/site-packages/youtube_dl/extractor/common.py", line 529, in extract
ie_result = self._real_extract(url)
File "/usr/lib64/python3.6/site-packages/youtube_dl/extractor/generic.py", line 3320, in _real_extract
raise UnsupportedError(url)
youtube_dl.utils.UnsupportedError: Unsupported URL: https://www.tele5.de/star-trek/raumschiff-voyager/ganze-folge/das-vinculum/
Description

Site www.tele5.de has been redesigned and does not work anymore. Last successful try was on May 6th 2019.
New overview Url for a series the worked before (containes links to single episodes):
https://www.tele5.de/star-trek/raumschiff-voyager/
Url to a single episode:
https://www.tele5.de/star-trek/raumschiff-voyager/ganze-folge/das-vinculum/
https://www.tele5.de/star-trek/raumschiff-voyager/ganze-folge/inhumane-praktiken/
Each of this episodes is valid for seven days.
Best regards
Bitdigger42

confirmed for
https://www.tele5.de/filme/schlefaz-dragon-crusaders/
or any other video linked on
https://www.tele5.de/filme/online/
I am only a regex/python noob, but from what I see all that needs to be updated is _VALID_URL as their url format changed for both types of videos, so adding /ganze-folge/ and /filme/ to the regex should do the trick.
maybe @dstftw could look into it?
thanks


Fix problem with js strict mode.

We're using this library by requiring it with Webpack. It seems that webpack enables javascript strict mode, which does not like iterators defined without var, leading to this error:
Uncaught ReferenceError: key is not defined
More info about why to use var for iterators here.
This PR just changes that to make sure you can use the card registration kit with strict mode enabled.

Great, thanks very much @javiercr for your contribution :-)


Remove copyright date

FYI... On new files, I've been using:
(c) Copright NetFoundry, Inc.

I think the little (c) in front of the message makes it a touch snazzier.


Add BBS2Leer Niedersachsen domain

@Nicktrovert I have to close this request without merging, because you requested to add a non-existent domain to this repository: Host bbs2leer.ni.de not found: 3(NXDOMAIN) Please ensure that you are familiar with this repository rules located at the bottom of this page and submit a new request with the correct information. Thank you for your understanding!


attr default based on other attributes

Hi!
I have unsucessfully tried to define a default value by referencing other attributes. I'm sure the code below doesnt' work for some obvious or fundamental reason, but I would be grateful for comments on how to do something like it:
import attr
from attr.validators import instance_of
import datetime

@attr.s
class Something:
    some_date = attr.ib(validator=instance_of(datetime.date))
    some_number = attr.ib(convert=float)
    name = attr.ib(validator=instance_of(str),
                   default="Generic Name {0} - {1}%".format(
                       some_date.strftime("%d-%b-%Y"),
                       some_number * 100)
                   )

s = Something(some_date=datetime.date.today(), some_number=0.375)

I included the .strftime() conversion to highlight that name doesn't see a float and a date, but a _CountingAttr object, hence I get an AttributeError (and a TypeError for some_number * 100). Since I can't reference self either, what would be the correct way to do this?

Hi,
for now I suggest using attrs_post_init (http://attrs.readthedocs.io/en/stable/examples.html?highlight=attr_post_init#other-goodies). The linked example is basically what you want.

I have wanted to do this several times. For example, you have a test of a function which takes many inputs. You want to test this function with many different cases. So (of course) you create a quick e.g. @attr.s class TestInput:... for that. In many cases you want some attribute to have a default depending on other attributes, but still be able to override it. The existing options are not so good for this:

I think you can use these for this but it's cumbersome.
__attrs_post_init__ is not good because you can't override it.

What I'd want, following the ad-hoc validators example, is something like this:
@attr.s
class C:
    x = attr.ib()
    y = attr.ib()
    z = attr.ib()

    @z.default
    def z_default(self, attribute):
        return self.x + self.y

This is sensitive to the initialization order. However, if you have a stateful factory, the order is already important, so this is not new. And the natural order is the definition order which is intuitive.
Another issue is that this makes it possible to specify multiple defaults. I would just raise an error if this is detected.
Final issue I can think of is that an occasional user might confuse this with a property, while it does not behave like a property:

The value is persisted.
In mutable objects, the value doesn't change if the dependencies change, unlike a dynamically-computed property.

But I think "default" is clear on the behavior it has.

At first glance I like the API :)

I guess we could have a lot fun with decorators based on _CountingAttr.

I think I want this in 17.1 but it entirely depends on the goodwill of reviewers (most likely @Tinche – I gotta shanghai some innocent souls at PyCon).


 I attach the mixcr report which looks quite normal.
> library("immunarch")
> results <- "mixcr"
> rep <- repLoad(results, .format = "mixcr")
== Step 1/3: loading repertoire files... ==
Processing "mixcr" ...
  -- Parsing "mixcr/99753.clna" -- mixcr
Error: can't find a column with V genes
Error: can't find a column with J genes
Error: can't find a column with D genes
|=================================================================| 100%  481 MB
Warning: 14752614 parsing failures.
row            col  expected        actual                                                                        file
  1 NA             2 columns 1 columns     'mixcr/99753.clna'
  2 NA             2 columns 1 columns     'mixcr/99753.clna'
  3 MiXCR.CLNA.V04           embedded null 'mixcr/99753.clna'
  3 NA             2 columns 1 columns     'mixcr/99753.clna'
  4 MiXCR.CLNA.V04           embedded null 'mixcr/99753.clna'
... .............. ......... ............. ...........................................................................
See problems(...) for more details.

Error in `[[.tbl_df`(head(df), .vgenes) : object '.vgenes' not found
In addition: Warning messages:
1: In read.table(.filename, sep = .sep, skip = 0, nrows = 1, stringsAsFactors = F,  :
  line 1 appears to contain embedded nulls
2: Missing column names filled in: 'X2' [2]

99753.report.txt

Ok, it seems like  repLoad(results, .format = "mixcr") tries to load every file in the folder not only the suitable ones. It works when I only have the "*clonotype.txt" output files from the analysis in the folder


SwiftLint version

Which version of SwiftLint is hound using?  I'm not getting the same violations from hound that I do locally.

It was using 0.2.0 which is outdated, I've just updated it to 0.4.0. Let me know if you're still seeing inconsistencies.

I'm still not seeing colon, trailing whitespace, and line length violations.
Here's a test PR I created:
https://github.com/sjturley/swift-serializer/pull/5

It could be because there's already many violations reported. I believe Hound actually stops at a certain point to limit how many API requests it does. In the GH status bar you can see it found 55 violations so it's possible it's cut the ones you're missing off. cc @salbertson to confirm that's the case

Closing since no response. Happy to reopen if you're seeing issues. It's on 0.7.x now I believe and will be updated to 0.8.x soon.


Upgraded library to support most features of WM8960 I2C protocol

I was eager to use SparkFun's WM8960 breakout board with a CircuitPython project, and found this unfinished library to provide a starting point to communicate with this device but otherwise lacking.
To ameliorate this problem, I've ported over the Arduino library and examples provided by SparkFun for this board (https://github.com/sparkfun/SparkFun_WM8960_Arduino_Library) with a few minor modifications:

setSampleRate to automatically configure PLL, system clock, etc for most supported frequencies (8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000)
quick configuration methods of key features: configureI2S, configureDAC, configureHeadphones, configureSpeakers
Register reset and general setup on object initialization
Stereo paired methods for most Left/Right methods to simplify operation
setPPLK uses a single integer value rather than 3 separate bytes

All examples have been tested with an RP2040 and WM8960 breakout module successfully. That is except for those involving I2S input (examples 08, 09, 11, and 15) because I2SIn/I2SInOut is not yet a feature of CircuitPython (as of 9.1.1; more info: https://github.com/adafruit/circuitpython/issues/2676).
I look forward to seeing this library added to the community bundle after review (https://github.com/adafruit/CircuitPython_Community_Bundle) as I think this is a very powerful codec with a large feature set for the price and is already being used in 1 Adafruit product, https://www.adafruit.com/product/4757.
I did my best to give attribution to Pete Lewis of SparkFun, the original author of the Arduino library, under the MIT license, but there may be room for improvement.
Thank you for your consideration!

Hey Tanner! Thanks for looking over this library. I think all of your suggestions so far are on the right track and I will be following your updates shortly.
The only note I'll make is that I did manually convert this library (with extensive use of find and replace, of course), which is why there might be some mistakes here and there. Though I think there is some benefit to maintaining a some compatibility with the original library, I also think it's a great idea to implement the CircuitPython methodology where possible.
However, if a tool does exist to automatically convert Arduino libraries to be compatible with CircuitPython, that would be really great!

However, if a tool does exist to automatically convert Arduino libraries to be compatible with CircuitPython, that would be really great!

An LLM like ChatGPT or GitHub Copilot can do this conversion pretty well. Give it the source arduino and ask it to generate python. It may even be able to convert to properties. You'll still need to check and refine it but it makes the initial conversion much quicker.

@tannewt What is your take on the examples included here?
I'm planning to remove the examples which require I2S (08, 11, & 15). They both require I2S input. I've tested a PIO-based example for I2S passthrough, but the performance is inadequate without DMA (though it does technically work).
Example #09 requires bluetooth audio communication. I'm not sure if this is possible within CircuitPython, but it seems out of scope. I plan on removing that example as well.
Though I personally like todbot's eighties dystopia, it may also be unnecessary and out of scope.
I think I might just clean house here and only keep what I think is valuable information. The simplification of the API from the original clears things up. I think most use-cases could be expanded upon within the future documentation itself.

I'll begin documentation in the near future, but it might take some time since the functionality of this codec can be convoluted in some aspects.

I've gotten around to revisiting the examples provided and narrowed them down to only 4 which I felt demonstrated unique features. If I2SInOut ever reaches the light in CircuitPython, I'll make sure to add an example which features ADC to MCU functionality. https://adafruit-circuitpython-wm8960.readthedocs.io/en/latest/examples.html

@tannewt Here's the updated library. All the documentation has been populated as far as I'm aware. It may get a bit lackadaisical here and there, but I'll leave it up to your scrutiny.

I think you need to change this to fix the build issue:
https://github.com/adafruit/Adafruit_CircuitPython_WM8960/blob/cf3620d8ec51535c74e7870ab970a2591f6b8054/pyproject.toml#L41-L44

I think that finally does it! Let me know if there's anything else I need to check up on.

@tannewt Likewise! I'm excited to start using this in my next project.

awesome, thank you @dcooperdalrymple :)
@TheKitty newsy


Use in Blender?

Hi I'm part of the Blender project's sculpt and painting module.  I'm redoing the indexed drawing mode for sculpt mode.  This is a bit complicated as we now support custom face corner attributes in our dynamic topology mode, which means splitting UV islands.  I'm investigating if meshoptimizer would be a good fit for us.
Blender's sculpt tools use a special coarse BVH tree we call PBVH.  We store drawing buffers in the leaves, and also index buffers.   The idea is to dynamically generate new index buffers when the topology inside a given leaf node changes.  This means splitting by UV islands (of which their may be more then one) and vertex normal "smooth groups."  Right now the code just falls back on unindexed drawing if it detects UV islands.
Any advice would be appreciated, thanks.

Yeah unindexed rendering is pretty inefficient for modern GPUs. If the adjustment is not very frequent (that is, if you don't need to rebuild these buffers every frame), meshopt could be used to make these more efficient to render by using it as a postprocess.
For example, a reasonable and cheap sequence of steps would be:

meshopt_generateVertexRemap, meshopt_remapIndexBuffer and meshopt_remapVertexBuffer to generate hardware-ready vertex/index buffers
meshopt_optimizeVertexCacheFifo with cache_size=16 to optimize the index buffer for hardware render efficiency
meshopt_optimizeVertexFetch to optimize the vertex/index buffer for data reference locality

These steps come in decreased importance for vertex-heavy workloads, so if perf. requirements for rebuild are very strict you could skip step 3 and/or 2 (although I suspect running at least step 2 is worthwhile).
To run these you'd need to first prepare an unindexed vertex buffer with all relevant data in the vertex struct; if it's more convenient to use multiple streams (you'd still need one index buffer), you will need to slightly change steps 1 & 3, see https://github.com/zeux/meshoptimizer#deinterleaved-geometry.


[HUDI-2815] add partial overwrite payload to support partial overwrit…

…e case
Tips

Thank you very much for contributing to Apache Hudi.
Please review https://hudi.apache.org/contribute/how-to-contribute before opening a pull request.

What is the purpose of the pull request
Add a customized payload PartialOverwriteWithLatestAvroPayload to support partial overwrite records fields.
For example, two incoming record batch A(1, null, 1, 1) and B(2, 2, null, 2) will be combined as the result (2, 2, 1, 2)
(For example: This pull request adds quick-start document.)
Brief change log

Add a PartialOverwriteWithLatestAvroPayload to support partial overwrite records
Add a config partial.overwrite.enabled to control if enable partial overwrite
Change the ValueState of BucketAssignFunction from HoodieRecordGlobalLocation to HoodieRecord
Support partition path changed case

Merge HoodieRecord before storing the record in ValueSate
Copy and sink a new record from state to downstream operator while the record partition is changed

Add compareTo to compare two HoodieRecords to chose their sequence, because cannot get the sequence from #preCombine method if merge two records in #preCombine method
Add schema filed(String) in new AvroPayload, which will be used to #preCombine two records
Change BootstrapOperator to load HoodieRecord with data instead of only HoddieKey
Change RowDataToHoodieFunction to create payload with schema

Verify this pull request

Added PartialOverwriteWithLatestAvroPayloadTest to verify the change.
Manually verified the change by running a job locally with both preCombine and combineAndGetUpdateValue methods

Committer checklist

[ ] Has a corresponding JIRA in PR title & commit

[ ] Commit message is descriptive of the change

[ ] CI is green

[ ] Necessary doc changes done or have another open PR

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

@hudi-bot run azure

Thanks for the contribution ~ I kind of think we better do this after id-based schema evolution is supported, only after that, we have more light-wright solution to support per-record schema.
Generally, take schema with record seems not a good solution.

Yeah, agree with taking schema with record is not a good solution, it couple the byte data with schema and hard to evolute schema later, but it seems that we cannot merge two Payload without schema. I also tired if we can pass the schema to #preCombine method, just similar with #combineAndGetUpdateValue. But we only can get the schema info from flink configuration, the FlinkWriteHelper doesn't(and should not) support flink configuration to support retrieve schema from configuration, so I have to inject schema via constructor.

CC @xushiyan @alexeykudinkin : who might be working on refactoring payload interfaces. and @xiarixiaoyao who might be working on schema evolution story. can you folks take a look at the patch.

CC @xushiyan @alexeykudinkin : who might be working on refactoring payload interfaces. and @xiarixiaoyao who might be working on schema evolution story. can you folks take a look at the patch.

Thanks @nsivabalan to follow up. Take a summary, the current implementation has two drawbacks:

embedding schema in payload might hard to do schema evolution later.
using flink state to store full HoodieRecord instead of location, will increase the state size.

And there are two challenges need to be solved for supporting partial update.

how combine/merge two payload in  #preCombine if without schema.
how to lookup the record from base/log file during the record partition patch changed, and then combine/merge with the incoming record later.

Any thoughts on these two challenges?

Hi @danny0405 , regarding the two changes:

embedding schema in payload might hard to do schema evolution later.
using flink state to store full HoodieRecord instead of location, will increase the state size.

for first one, I remove the schema filed from payload class, instead, by passing the schema to preCombine method, it should be easy to do schema evolution if need.
for second one, I revert my changes about store whole HoodieRecord back to store location, it still has the problem that once the record partition path changed, but i think it should enough for supporting the case that the table don't have partition, or the partition path of record won't changed.
BTW, do you think is it worthy to implement a new bucket assign function(can be controlled by feature toggle/configuration ) which store the full record to support partial update totally ?

Do I need to modify the preCombine in the HoodieMergedLogRecordScanner.processNextRecord method? What I understand is that when we read a log file, we need to do deduplication and also call preCombine.

HoodieMergedLogRecordScanner

As I know, if we also want to achieve partial update purpose, we just need to pass the Schema here.(Assume this pull request has been approved).

Just FYI for all interested folks.
Precombine is not just used to dedup two records within same incoming batch, but also to deduce the winner when we merge records in LogRecordReader.

yeah, @LinMingQiang has mentioned this one above.
From my understanding, if we want to enable "partial update" feature by defining customized payload class, it should running "partial update" in these three cases:

merged the incoming batch records before write to disk
read records from the log file(read from MOR table)
read records from log file and compact into base file

So I also update the HoodieMergedLogRecordScanner.processNextRecord () by passing Schema info, if the use case is not using "partial update" with other payload class, it will use the default preCombine() logic to choose "recent" one.
The current situation is that will we treat preCombine return one of two records, or we can merged them to a new record.

Just FYI for all interested folks. Precombine is not just used to dedup two records within same incoming batch, but also to deduce the winner when we merge records in LogRecordReader.

@hudi-bot run azure

@hudi-bot run azure

@stayrascal : We landed a partial payload support via https://github.com/apache/hudi/pull/4676.
Let us know if we can close this patch or if its possible to enhance the 4676 or if this patch is addressing something different.


[1314] Add apprenticeship information to courses

Context
We need to expose additional fields for use in the frontend.
Changes proposed in this pull request

Add program_type field
Add fee_or_salary derived field

Guidance to review
Test coverage could be improved because not all if branches are covered, but, I don't feel the code is complex enough to warrant it. If you disagree, I'm happy to add.

 Course basic details: apprenticeship + fee or salary

Alternative approach could be a fee AND salary attribute that return a boolean

And perhaps the program_type could be an enum to display more helpful data like we done in a few other places

Feel free to ignore the above comments. You’ve got my approval 💪


Pytests fail with mamba_ssm_ssoflex, and questions

Hi, thank you for this wonderful repo. I'm playing with the latest mamba_ssm_ssoflex option, but the pytests all failed (the mamba_ssm_sscore can all pass). How can I make the ssoflex version match the sscore version?
E           TypeError: fwd(): incompatible function arguments. The following argument types are supported:
E               1. (arg0: torch.Tensor, arg1: torch.Tensor, arg2: torch.Tensor, arg3: torch.Tensor, arg4: torch.Tensor, arg5: Optional[torch.Tensor], arg6: Optional[torch.Tensor], arg7: bool, arg8: int) -> List[torch.Tensor]

While the speedup looks very appealing, I'm also wondering what performance you get with mamba_ssm_ssoflex, and if it hurts the performance or training stability - since the readme is updated with only memory & FPS. I'd appreciate any suggestions in using this ssoflex version.

Thank you for pointing that out.
You can change the code in line 348 and 350 from selective_scan_cuda_core to selective_scan_cuda_oflex to fix that.
Here is the example.


we'd like a feature in DDC to create AMD modules with module names

In DartPad, we're using DDC to create AMD modules. We load these in the front end using require.js. We get errors when trying to load in anonymous modules, so we're currently post-processing the DDC output in insert names for the compiled modules.
It would be great if there was a command-line flag in DDC to do this in a first class way; the regex replace is likely pretty fragile.
The output we get from DDC:
define(['dart_sdk'] ...

and we convert that to:
define("dartpad_main", ['dart_sdk'] ...

We're using the --module-name flag to DDC, which does add the name to a dart.trackLibraries() section in the compiled module, but doesn't seem to actually name the module.
cc @jmesserly @vsmenon @jakemac53

--single-out-file will do this for you. Perhaps it should be renamed. IIRC @jacob314 added it so we could concat the files. LMK if that works, and we can close this?

Awesome! I'll give that a try, and update (or close) this bug.

Ah, interesting, it converts the whole thing into an eval:
eval("define('dartpad_main', ['dart_sdk'], function(dart_sdk) {\n  'use strict';\n  const core = dart_sdk.core;\n  const dart = dart_sdk.dart;\n  const dartx = dart_sdk.dartx;\n  const _root = Object.create(null);\n  const main = Object.create(_root);\n  main.main = function() {\n    for (let i = 0; i < 5; i++) {\n      core.print(\"hello \" + dart.str(i + 1));\n    }\n  };\n  dart.trackLibraries(\"dartpad_main\", {\n    \"main.dart\": main\n  }, null);\n  // Exports:\n  return {\n    main: main\n  };\n});\n\n//# sourceMappingURL=main.dart.js.map\n\n//# sourceURL=dartpad_main.js\n");

Seems to work for what we're doing however...

Strange. According to a comment:
      // In single-out-file mode we wrap each module in an eval statement to
      // leverage sourceURL to improve the debugging experience when source maps
      // are not enabled.
      //
      // Note: We replace all `/` with `.` so that we don't break relative urls
      // to sources in the original sourcemap. The name of this file is bogus
      // anyways, so it has very little effect on things.

I don't entirely follow that, but it sounds like it helped something related to debugging?

LMK if it becomes an issue, we could split those two features.

The eval is slightly concerning, but things are working as is. If you do separate out the behavior, we'd definitely opt-into the one w/o eval.

https://github.com/dart-lang/dart-services/pull/383 for context

The eval is only there because it gives a better JS debugging experience as
each of the eval calls will look like a separate JS script as far as Chrome
devtools is concerned. This let's each JS file have its own sourcemap, etc.
For this use case I expect none of that matters and you could strip out the
evals with no user visible impact.
On Mon, Apr 1, 2019, 4:45 PM Devon Carew<EMAIL_ADDRESS>wrote:

dart-lang/dart-services#383
https://github.com/dart-lang/dart-services/pull/383 for context
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dart-lang/sdk/issues/36423#issuecomment-478787882,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABK4PBdwjzWr41lqGt0VFqTUGdL9uG-kks5vcpoAgaJpZM4cWy5W
.

The eval is also there is to enable further concatenation.  DartPad shouldn't need that - there is only the one output file.

I.e., if you concat two files without the eval, the source maps are screwed up.  With the eval, the source maps are still valid within the eval.

it sounds like maybe we should add a separate option to control the AMD named-module behavior without the concat (i.e. eval) behavior? Or: we could add the module name unconditionally. It's not going to hurt anything.
BTW Devon, I don't think the module name is supposed to matter according to require.js docs:
https://requirejs.org/docs/whyamd.html#namedmodules

Notice that the above module does not declare a name for itself. This is what makes the module very portable. It allows a developer to place the module in a different path to give it a different ID/name. The AMD loader will give the module an ID based on how it is referenced by other scripts.
[...]
You should avoid naming modules yourself, and only place one module in a file while developing. However, for tooling and performance, a module solution needs a way to identify modules in built resources.

In other words, naming modules is supposed to only be for concatenation purposes, otherwise the file name is used. But the DartPad use case might be an advanced one, compared to what the requirejs docs are talking about?

But the DartPad use case might be an advanced one, compared to what the requirejs docs are talking about?

I suspect we're pretty specialized - we can load the pre-determined modules by name, from compiled JS modules we've put in google storage (things like the dart sdk js file). The actual compiled JS for the input dart source we're loading by adding it as a script tag directly into the page - I don't think the module-name-is-a-file-path will work for us.
Obviously, we're pretty happy to explore alternatives; right now, a single named AMD module seems to be working for us.

That makes sense! LMK if the eval ever causes problems, we can add a flag pretty easily for you. (Or even change the default way we generate AMD code, so the name is always included.)


Question: V3/V4 interop

Looking for formal confirmation of

v2 and V3 SDKs can be used in the same process; they have different names/impls and don't clash (but you're using extra expensive resources such as connections)

(obv, but for avoidance of doubt) V2 and V3 have some API differences

v3 and v4 will have minimal API differences brought about by CosmosDb (are there transitive deps exposed that vary though ?)

it will not be possible to run a v3 and v4 client in the same process; they'll have the same names

v4 won't even reference Newtonsoft.Json (V3 provides a way to avoid using it, but it does reference it)

(this is my question, assuming I have not said too much in the previous statements!) you can simply swap in v4 Azure.Comos binaries to replace V3 ones ? with binding redirects?

Is there a statement about this stuff anywhere?

Is there a preview sdk available somewhere?

eta: I see this in the changelog is what I'd been hallucinating about - it all but answers my question

@kirankumarkolli is there a statement anywhere about this?
v4 code is currently in the v4 branch
v4 changelog and preview nuget

Yes, but it's not recommended as you pointed out about the extra resource cost. Some of the classes have the same names, but are in different namespaces.
V2 and V3 have different APIs
v3 (Microsoft.Azure.Cosmos) and v4 (Azure.Cosmos) have different namespaces.
v4 aligns with the Azure Core SDK team and their guidelines which state all Newtonsoft.Json dependencies need to be removed.

@ealsur can you answer 3 and 6?

We are still in preview, but there are already API changes that are breaking changes. Leaving aside the type renames (CosmosContainer), we are completely removing Newtonsoft.Json, and we are still under review for further changes.
No, these are different DLLs with different namespaces, no binding redirects will apply.

Thanks everyone, I believe that answers all my questions and more
In case anyone missed it, https://github.com/Azure/azure-cosmos-dotnet-v3/blob/v4/changelog.md#key-differences-with-v3 summarizes all these API changes very well in more detail, and likely will continue to


Wrap "pecl install" in "travis_retry" because it fails often

@tomaszdurka @dlondero @vogdb please review

This magic looks good. How many times it tries?

It's hard for me to judge whether it is ok or not =) Lgtm!
Btw why did we need the --dev param?

--dev: composer changed this in recent versions, it's now default and actually shows a deprecation warning if passed...
How many times it tries?: 3

@njam lgtm!


React 13.1 dynamically created routes won't show up

Hey,
I've used the following pattern with success to create routes dynamically from a json data-store: After upgrading to 13.1 i've got the Warning: Any use of a keyed object should be wrapped in React.addons.createFragment(object) before being passed as a child. and changed my pageRoutes object to pageRoutes = [] accordingly to fix the warning. After my changes the dynamically created routes didn't show up in the router and in the root-routes childroute-array anymore.
Is this a react-router bug or should i just use an array and create a new fragment for the pageRoutes variable? What do you think?
var pageRoutes = {}; // this could be an array now!

// setting up routes
for (var i = 0, l = pages.length; i < l; i++) {
	…
	var slug = page.slug;

	pageRoutes[slug] = (
			<Route
				name={pageName}
				path={permalink}
				handler={page.handler} />
		)
}

// adding routes to the router
return (
	<Route name="index" path="/" handler={layoutHandler}>
		{pageRoutes} {/* could be replaced with React.addons.createFragment(pageRoutes) */}

		<NotFoundRoute name="notfound" handler={notFoundHandler)} />
	</Route>
);

I've also logged the children variable at https://github.com/rackt/react-router/blob/master/modules/createRoutesFromReactChildren.js#L78 to the console and got the following results when using the pageRoutes as an array:
[Array[0], ReactElement] the first item is the above mentioned pageRoutes array and the ReactElement represents the manually created notfound route…

Might be similar, I've created something like this as well using json as route definition:
https://github.com/WRidder/react-spa/blob/9af1da2bd43eb9409b394d37b416d93cb7b16e82/client/src/routes/routes.jsx
I'm using an array there as well.

This is just JSX, not the router. But yes, just use an array.

all right! thanks for looking into this issue :)