rootless container fails: "Setup user: Invalid argument"

/kind bug
Description
rootless podman fails with:
Storing signatures
Error: container create failed: container_linux.go:344: starting container process caused "setup user: invalid argument"
: internal libpod error

Steps to reproduce the issue:

Set up pod, try to launch container, as non-root:

podman pod create -p 10051:10051 -p 6379:6379 -p 8080:80 --name instance
podman run -dt  --pod instance registry.gitlab.com/modioab/modio-api/redis:master
Error: container create failed: container_linux.go:344: starting container process caused "setup user: invalid argument"
: internal libpod error

selinux in permissive mode, running other rootless containers seems to work (

Describe the results you received:
Error message
Describe the results you expected:
Launched redis inside pod
Additional information you deem important (e.g. issue happens only occasionally):
Output of podman version:
Version:            1.1.2
RemoteAPI Version:  1
Go Version:         go1.11.5
Git Commit:         a95a49d3038462d033f84ac314ec8a3064a99cff
Built:              Tue Mar  5 19:10:31 2019
OS/Arch:            linux/amd64

Output of podman info --debug:
debug:
  compiler: gc
  git commit: a95a49d3038462d033f84ac314ec8a3064a99cff
  go version: go1.11.5
  podman version: 1.1.2
host:
  BuildahVersion: 1.7.1
  Conmon:
    package: podman-1.1.2-1.git0ad9b6b.fc29.x86_64
    path: /usr/libexec/podman/conmon
    version: 'conmon version 1.12.0-dev, commit: a95a49d3038462d033f84ac314ec8a3064a99cff'
  Distribution:
    distribution: fedora
    version: "29"
  MemFree:<PHONE_NUMBER>
  MemTotal:<PHONE_NUMBER>2
  OCIRuntime:
    package: runc-1.0.0-68.dev.git6635b4f.fc29.x86_64
    path: /usr/bin/runc
    version: |-
      runc version 1.0.0-rc6+dev
      commit: ef9132178ccc3d2775d4fb51f1e431f30cac1398-dirty
      spec: 1.0.1-dev
  SwapFree:<PHONE_NUMBER>6
  SwapTotal:<PHONE_NUMBER>4
  arch: amd64
  cpus: 16
  hostname: tide
  kernel: 4.20.16-200.fc29.x86_64
  os: linux
  rootless: true
  uptime: 2h 11m 12.87s (Approximately 0.08 days)
insecure registries:
  registries: []
registries:
  registries:
  - docker.io
  - registry.fedoraproject.org
  - quay.io
  - registry.access.redhat.com
  - registry.centos.org
store:
  ConfigFile: /home/spider/.config/containers/storage.conf
  ContainerStore:
    number: 2
  GraphDriverName: overlay
  GraphOptions:
  - overlay.mount_program=/usr/bin/fuse-overlayfs
  GraphRoot: /home/spider/.local/share/containers/storage
  GraphStatus:
    Backing Filesystem: btrfs
    Native Overlay Diff: "false"
    Supports d_type: "true"
    Using metacopy: "false"
  ImageStore:
    number: 4
  RunRoot: /run/user/1000
  VolumePath: /home/spider/.local/share/containers/storage/volumes

Additional environment details (AWS, VirtualBox, physical, etc.):
Physical machine running fedora 29, updated on 2019-03-20

@haircommander @giuseppe Could you guys look into this?

please attach the output you get with --log-level debug

I guess the image is setting an user that is not available in the user namespace

Shouldn't that fail when the image is pulling?

"setup user: invalid argument" looks like an explicity USER, that could be different than UIDs/GIDs used by the image (e.g. files owned by root but readable by anyone)

@Spindel Could you check the image and see what user it is attempting to be run as?

RUN echo redis:x:100004:100:redis:/:/sbin/nologin >> /etc/passwdUSER
100004EXPOSE 6379CMD ["/usr/bin/redis-server", "/etc/redis.conf"]
On Wed, Mar 20, 2019 at 3:04 PM Daniel J Walsh<EMAIL_ADDRESS>wrote:

@Spindel https://github.com/Spindel Could you check the image and see
what user it is attempting to be run as?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/containers/libpod/issues/2714#issuecomment-474843312,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABmI5jXyv8KlV-9gSZ1zcaIy83xH4fgRks5vYj_jgaJpZM4b-5JX
.

100004 is a way too big value, you either change it or allocate more subuids to your user. Via /etc/subuids and /etc/subgids

Right, thank you.
On Wed, Mar 20, 2019 at 5:21 PM Giuseppe Scrivano<EMAIL_ADDRESS>wrote:

100004 is a way too big value, you either change it or allocate more
subuids to your user. Via /etc/subuids and /etc/subgids
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/containers/libpod/issues/2714#issuecomment-474911680,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABmI5nIZL46ft95bOkneJiTDqKmB4oHnks5vYmAjgaJpZM4b-5JX
.

@giuseppe Is the 65000 UID limit documented anywhere? We ought to add it to the manpages.
Also, can we potentially catch this earlier than runc, so we can produce a more sensible error?

It is just what shadow utils allocates by default. Yes we can catch it earlier, we already do that when extracting an image.  I'll work on a patch

@giuseppe Sure, but the run manpage should probably mention the 65k max UID limit will exist for most default installations of rootless Podman, barring nonstandard shadowutils or manual modification

I would not just document 65k, I would tell them to look at the range of UIDs allocated to /etc/subuid.  I am proposing that eventually we want to use much smaller ranges.  If we were running as root it would be nice to handle this situation by seeing if the UID is outside the range and then just adding it to the range.

PR here: https://github.com/containers/libpod/pull/2731


Replace jest with mocha

Description of change
Use mocha instead of jest to execute the Node.js Wasm binding examples as tests.
This replacement was necessary due to problems with async promises and timers when using jest, which became an issue for us after #455 since publishing now uses a timer to delay retry requests.
This only affects the tests; the examples themselves run fine individually using Node.js directly.
Also updates the package-lock.json file to version 2 incidentally, since we're using Node 16 LTS as the minimum-supported version now.
Type of change
Add an x to the boxes that are relevant to your changes.

[x] Bug fix (a non-breaking change which fixes an issue)
[ ] Enhancement (a non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation Fix

How the change has been tested
Node.js and browser examples pass locally.
npm run build && npm run build:examples && npm run test:node && npm run test:browser
Change checklist
Add an x to the boxes that are relevant to your changes.

[x] I have followed the contribution guidelines for this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

Did you find an explanation for the problem in jest?

Not really. I suspect it's something to do with how wasm-timer works: https://github.com/PhilippGackstatter/wasm-timer
But there's no easy way to check since it's compiled to opaque Wasm code.
There are lots of posts online detailing problems with jest when using async and timers. E.g. https://newbedev.com/jest-timer-and-promise-don-t-work-well-settimeout-and-async-function
However, they all presume to be calling useFakeTimers so it could be a red-herring.
A related theory is that something in wasm-timer awaits a promise that never resolves due to it blocking a promise queue or something. Related issue: https://github.com/facebook/jest/issues/2157


git_last_tag returns from any branch!

Hi,
When I was checking change log from the current branch it was giving wrong logs, later found that change log computed based on last tag irrespective branch you are on, say I have branch A and B, on A there is tag 1,2 on B tag is 3,4. Next switch to branch A and ask for git_last_tag which should return 2 but it returns 4 which is wrong.

Hi @pavm035! Great to hear from you. Can you send over the exact repro steps with the commands you are entering. Also, send over the output of the results so I can have a look. Thanks!

Hi @TKBurner  Thank you so much for your quick response, Sorry for not updating reproducible steps before, Please find below of execution phase
SampleXcodeBot kumar.pavan$ fastlane beta
20:33:05: -------------------------------------------------
20:33:05: --- Step: Verifying required fastlane version ---
20:33:05: -------------------------------------------------
20:33:05: fastlane version valid
20:33:05: ------------------------------
20:33:05: --- Step: default_platform ---
20:33:05: ------------------------------
20:33:05: Driving the lane 'ios beta' 🚀
20:33:05: ----------------------------------------
20:33:05: --- Step: changelog_from_git_commits ---
20:33:05: ----------------------------------------
20:33:05: Collecting Git commits between M2 and HEAD
20:33:05: release_notes: -develop -> commit 1
20:33:05: --- Step: last_git_tag ---
20:33:05: --------------------------
20:33:05: last_git_tag: M2
+------+-------------------------------------+-------------+
|                     fastlane summary                     |
+------+-------------------------------------+-------------+
| Step | Action                              | Time (in s) |
+------+-------------------------------------+-------------+
| 1    | Verifying required fastlane version | 0           |
| 2    | default_platform                    | 0           |
| 3    | changelog_from_git_commits          | 0           |
| 4    | last_git_tag                        | 0           |
+------+-------------------------------------+-------------+
20:33:05: fastlane.tools finished successfully 🎉
Here is the link of source tree screenshot, From the above executions steps it prints tag M2 but that tag is on develop branch, What it supposed to print here is M1 which is on master branch
Link:

@pavm035 Thanks for following up. We are going to take a look at this as a team and will follow up on this thread with our findings. Thanks! 👍

Hi @pavm035 - thanks for the report!
This action and its behavior has seen a number of changes due to people's different expectations about how it should work. That may be because the description, "Get the most recent git tag" is pretty broad. Because of that history, we would prefer not to make another change to its behavior right now.
If the current behavior is not working out for your needs, please see if substituting
tag_name = `git describe --tags --abbrev=0`

gives you what you want! 🎯
Once you have that tag name, did you know that changelog_from_git_commits allows you to specify the commit range you'd like to use? Try using this option
between: [tag_name, 'HEAD']

when calling changelog_from_git_commits 📖

@mfurtak @TKBurner  Looks like promising workaround will give a try. 👍


Added spark streaming custom receiver for pulsar

Motivation
Recent years, more and more people are interested in Apache Spark for machine learning or something and there is demand for flowing data from message queue into Apache Spark.
Modifications
Added Spark Streaming Custom Receiver for Pulsar and its test.
Result
Pulsar can be used as a data source for Apache Spark.

I added documentation.


pip install cssbeautifier fails

Pip installing cssbeautifier fails with the following message:
$ python3 -m pip install cssbeautifier --user
Collecting cssbeautifier
  Downloading cssbeautifier-1.11.0.tar.gz (22 kB)
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9m8ry79r/cssbeautifier/setup.py'"'"'; __file__='"'"'/tmp/pip-install-9m8ry79r/cssbeautifier/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-ud0acpi6
         cwd: /tmp/pip-install-9m8ry79r/cssbeautifier/
    Complete output (5 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-9m8ry79r/cssbeautifier/setup.py", line 7, in <module>
        from jsbeautifier.__version__ import __version__
    ModuleNotFoundError: No module named 'jsbeautifier'
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

It does not seem to matter if jsbeautifier is installed or not. I believe this is a packaging issue because if I git clone the repo and run python3 -m pip install -e python/ both cssbeautifier and jsbeautifier are installed successfully (and work great!).
Side note: That led me to wonder if I could install both cssbeautifier and jsbeautifier by running python3 -m pip install jsbeautifier. So I tried and only jsbeautifier is installed (as expected).

Should this be fixed in 1.12.0?
python3 -m pip install cssbeautifier --user
Collecting cssbeautifier
  Using cached https://files.pythonhosted.org/packages/11/01/7bc6c46af8c2281541a4d8adab4648c3c8356e2729418705eb03129a971d/cssbeautifier-1.12.0.tar.gz
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/bin/python3 /usr/lib/python3.8/site-packages/pip/_vendor/pep517/_in_process.py get_requires_for_build_wheel /tmp/tmphdcd99p2
       cwd: /tmp/pip-install-05i411z9/cssbeautifier
  Complete output (18 lines):
  Traceback (most recent call last):
    File "/usr/lib/python3.8/site-packages/pip/_vendor/pep517/_in_process.py", line 257, in <module>
      main()
    File "/usr/lib/python3.8/site-packages/pip/_vendor/pep517/_in_process.py", line 240, in main
      json_out['return_val'] = hook(**hook_input['kwargs'])
    File "/usr/lib/python3.8/site-packages/pip/_vendor/pep517/_in_process.py", line 91, in get_requires_for_build_wheel
      return hook(config_settings)
    File "/tmp/pip-build-env-z4vzjdzx/overlay/lib/python3.8/site-packages/setuptools/build_meta.py", line 162, in get_requires_for_build_wheel
      return self._get_build_requires(
    File "/tmp/pip-build-env-z4vzjdzx/overlay/lib/python3.8/site-packages/setuptools/build_meta.py", line 143, in _get_build_requires
      self.run_setup()
    File "/tmp/pip-build-env-z4vzjdzx/overlay/lib/python3.8/site-packages/setuptools/build_meta.py", line 266, in run_setup
      super(_BuildMetaLegacyBackend,
    File "/tmp/pip-build-env-z4vzjdzx/overlay/lib/python3.8/site-packages/setuptools/build_meta.py", line 158, in run_setup
      exec(compile(code, __file__, 'exec'), locals())
    File "setup.py", line 7, in <module>
      from jsbeautifier.__version__ import __version__
  ModuleNotFoundError: No module named 'jsbeautifier'
  ----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python3 /usr/lib/python3.8/site-packages/pip/_vendor/pep517/_in_process.py get_requires_for_build_wheel /tmp/tmphdcd99p2 Check the logs for full command output.

@returntrip
Yes, I was expecting it to be fixed...

@thp
Was this a mistake on my part when creating release?

The problem is if any __init__.py in cssbeautifier contains reference to jsbeautifier we get this failure.


Add parapgraph about flash memory size in readme

Following #170
Until a better 'fix' is available, this adds a paragraph in the readme to explain how to override the memory configuration.
It is a bit on the long side, I preferred to be complete but if it is too long I can cut down some parts. Let me know if I need to change anything. I did not test this yet, but I copied the memory.x file from here and the build.rs from the one you linked so I expect this to be good. :slightly_smiling_face:

Done :slightly_smiling_face:

Thank you!


Add support for docker cloud

This change is

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

Comments from Reviewable


Weird UI issues when running detox tests agains 0.57.x (0.57.4 included)

Description
Seeing all our text inputs and lots of visual glitches when running our test suite. It adds grey background everywhere.

Test suite is also having a hard time entering text on multiline text fields. Detox seems to be unhappy about keyboard was not shown on screen.
Steps to Reproduce
Upgrade to latest react native version 0.57.4 and build and run test suite with latest detox.
If I kill the app and restart it manually (not using detox). UI is back to normal.
Detox, Node, Device, Xcode and macOS Versions

Detox: latest master
React Native: 0.57.4 (was seeing same issue with 0.57.3)
Node:v8.11.3
Device: iPhone X simularot (12.0)
Xcode: Latest 10
macOS: Latest Mojave

Device and verbose Detox logs
      17) space member and admin can archive a space
actionWithWait - tap matcherForAccessibilityID: PlacesMenu
actionWithWait - tap matcherForAccessibilityID: searchIcon
waitForElementVisible - detoxMatcherForBoth:and: [object Object]
(node:54486) UnhandledPromiseRejectionWarning: Error: Error: An action failed. Please refer to the error trace below.
Exception with Action: {
  "Action Name":  "Type 'denys'",
  "Element Matcher":  "((!(kindOfClass('RCTScrollView')) && (((respondsToSelector(accessibilityIdentifier) && accessibilityID('search')) && kindOfClass('RCTUITextField')) && matcherForSufficientlyVisible(>=0.750000))) || (((kindOfClass('UIView') || respondsToSelector(accessibilityContainer)) && parentThatMatches(kindOfClass('RCTScrollView'))) && ((kindOfClass('UIView') || respondsToSelector(accessibilityContainer)) && parentThatMatches((((respondsToSelector(accessibilityIdentifier) && accessibilityID('search')) && kindOfClass('RCTUITextField')) && matcherForSufficientlyVisible(>=0.750000))))))"
}

Error Trace: [
  {
    "Description":  "Failed to type string 'denys', because keyboard was not shown on screen.",
    "Error Domain":  "com.google.earlgrey.ElementInteractionErrorDomain",
    "Error Code":  "2",
    "File Name":  "GREYKeyboard.m",
    "Function Name":  "+[GREYKeyboard typeString:inFirstResponder:error:]",
    "Line":  "191"
  }
]

Does this reproduce in Detox’ own test suite? If not, can you please attach a small demo project, reproducing the issue?

Created a sample app and was unable to reproduce so will close

If you continue seeing these issues, let us know in a new issue. It is a strange issue as Detox should not be interfering with any view rendering. There is a low chance that EarlGrey does, which is why I asked for a demo project.


Duplicate error occurs when use v7-kotlin, recyclerview-v7-kotlin and mulitDex.

Hello, I use rxbinding-appcompat-v7-kotlin and rxbinding-recyclerview-v7-kotlin.
ZipException occurs when use mulitDex.
It occurs because they have same package com.jakewharton.rxbinding.support.v7.widget.
Error:Execution failed for task ':mobile:packageAllDevDebugClassesForMultiDex'.
> java.util.zip.ZipException: duplicate entry: com/jakewharton/rxbinding/support/v7/widget/WidgetPackage.class

build.gradle is here.
defaultConfig {
   multiDexEnabled true
}
dependencies {
   compile "com.jakewharton.rxbinding:rxbinding-appcompat-v7-kotlin:0.2.0"
   compile "com.jakewharton.rxbinding:rxbinding-recyclerview-v7-kotlin:0.2.0"
}

This will be fixed when we update to M13.
On Wed, Sep 16, 2015 at 7:55 AM Satoru Fujiwara<EMAIL_ADDRESS>wrote:

Hello, I use rxbinding-appcompat-v7-kotlin and
rxbinding-recyclerview-v7-kotlin.
ZipException occurs when use mulitDex.
It occurs because they have same package
com.jakewharton.rxbinding.support.v7.widget.
Error:Execution failed for task ':mobile:packageAllDevDebugClassesForMultiDex'.

java.util.zip.ZipException: duplicate entry: com/jakewharton/rxbinding/support/v7/widget/WidgetPackage.class

build.gradle is here.
defaultConfig {
multiDexEnabled true
}
dependencies {
compile "com.jakewharton.rxbinding:rxbinding-appcompat-v7-kotlin:0.2.0"
compile "com.jakewharton.rxbinding:rxbinding-recyclerview-v7-kotlin:0.2.0"
}
—
Reply to this email directly or view it on GitHub
https://github.com/JakeWharton/RxBinding/issues/143.

Thanks! I look forward to it.

Can you try the latest SNAPSHOT to verify?

Thank you for your update.
I tried it but same error occurred.
RxBinding's version is below.
0.3.0-SNAPSHOT/rxbinding-appcompat-v7-kotlin-0.3.0-20150928.062152-6.aar
0.3.0-SNAPSHOT/rxbinding-recyclerview-v7-kotlin-0.3.0-20150928.062209-6.aar

I tried with this project.
https://github.com/satorufujiwara/kotlin-android-example/tree/kotterknife

Ok I'll take a look!
On Tue, Sep 29, 2015 at 11:41 AM Satoru Fujiwara<EMAIL_ADDRESS>wrote:

Thank you for your update.
I tried it but same error occurred.
RxBinding's version is below.
0.3.0-SNAPSHOT/rxbinding-appcompat-v7-kotlin-0.3.0-20150928.062152-6.aar
0.3.0-SNAPSHOT/rxbinding-recyclerview-v7-kotlin-0.3.0-20150928.062209-6.aar
I tried with this project.
https://github.com/satorufujiwara/kotlin-android-example/tree/kotterknife
—
Reply to this email directly or view it on GitHub
https://github.com/JakeWharton/RxBinding/issues/143#issuecomment-144097945
.

This is fixed post-M14 as they changed the name of the generated classes (and should be fixed on master for the next release). Here's the output of a clean build:

I confirmed that this issue is fixed with rxbinding 0.3.0 and kotlin 1.0.0-beta.
Thank you!


json.Parser should throw an error when useMapping = false and key "default" is encountered

The behavior as-is is very surprising! Check this out:
import "pkl:json"

hidden jsonString = """
  {
    "hello": "world",
    "default": "greeting"
  }
  """

asDynamic = new json.Parser {}.parse(jsonString)
asMapping = new json.Parser { useMapping = true }.parse(jsonString)

Result:
asDynamic {
  hello = "world"
}
asMapping {
  ["hello"] = "world"
  ["default"] = "greeting"
}

I think throwing an error (or at least some kind of warning) here instead of returning unexpected results is desirable. Something like "encountered object key default when parsing JSON, resulting Dynamic will be incomplete or invalid" might make sense.
N.B.: Attempting to access the default yields further surprises:
asDynamicDefault = asDynamic.default

Result:
❯ pkl eval test.pkl
–– Pkl Error ––
Expected value of type `Function1`, but got type `String`.
Value: "greeting"

1741 | hidden default: (unknown) -> Any = (_) -> new Dynamic {}
                       ^^^^^^^^^^^^^^^^
at pkl.base#Dynamic.default (https://github.com/apple/pkl/blob/0.26.0/stdlib/base.pkl#L1741)

1 |
    ^
at generated (source:unavailable)

11 | asDynamicDefault = asDynamic.default
                        ^^^^^^^^^^^^^^^^^
at test#asDynamicDefault (file:///.../test.pkl, line 11)

106 | text = renderer.renderDocument(value)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
at pkl.base#Module.output.text (https://github.com/apple/pkl/blob/0.26.0/stdlib/base.pkl#L106)

Fair issue; seems like a good idea to throw here instead.

Hey, I can take this up.


Prevent returning undefined once for DocHandles that are ready

Reported (and coauthored) by @msakrejda! This should reduce waterfall loading and save us a full frame of wasted rendering for docs that are already loaded.

Thanks for the fixes @msakrejda

Well, apparently they weren't really fixes :sweat_smile:. Taking a look.

Ah, I think these may be other tests that were also failing when a whole bunch of other stuff was failing and then we added the .only and didn't notice they were still failing. I think I can fix them.

Okay, see https://github.com/automerge/automerge-repo/compare/usedocs-avoid-undefined...msakrejda:automerge-repo:usedocs-avoid-undefined -- this passes the full suite locally and fails our new test with the old code. Our change to handleSlow broke some assumptions, but we can get away with a much simpler change.

LGTM, good catch!


Extending a pool should not be hidden behind a new button

If you want to extend an existing pool, the user have to press the new button. This is very intuitive and there is nothing that gives you a hint that you might be able to extend a pool clicking this new button.

Verified
Extend Button is there now


Did I 👍🏻 this?

I would often see an issue with +1 "reaction" (emoji) and I can't tell if it's my reaction or someone else's. So I have to click the icon to see if it goes to 0 or 2...
I propose to show "👍🏻you" or "👍🏻4 and you".

If you have liked a comment, it‘s already highlighted with a light blue background.
Not sure if an additional text is needed.

Thanks I didn't notice that before.


X.H.RescreenHook: New module (custom rescreen and randr event hooks)

Description
Inspired by
https://github.com/fis/dot-xmonad/blob/a8c8e804873f8657fc1f1a0d93ee3f58f7a56e22/zem/src/Zem/AutoRandr.hs
and my own
https://github.com/liskin/dotfiles/blob/43999573d006311292a9fadde02f3b234140d999/.xmonad/xmonad.hs#L308-L339,
this adds a generic hook module that allows attaching a custom hook to
rescreen and randr screen change notify event, hiding the complexity of
suppressing duplicate events (debouncing) and distinguishing actual
xrandr configuration changes from output connects/disconnects.
Commits
Add X.H.RescreenHook module (custom rescreen hooks)
X.H.{EwmhDesktops,ManageDocks}: Improve the usage doc a bit
Don't assume ewmh/docks are the only xmonad config combinator out there.
X.H.RescreenHook: Add randrHook
X.H.RescreenHook: Merge the two hooks together and improve their behaviour
Now that randrChangeHook is only invoked for changes that don't result
in rescreen, it can actually be used for autorandr.
Update CHANGES, X.D.Extending: add X.H.Rescreen
Checklist

[X] I've read CONTRIBUTING.md

[ ] I tested my changes with xmonad-testing

[X] I updated the CHANGES.md file

[X] I updated the XMonad.Doc.Extending file (if appropriate)

Ping @fis

Somewhat related: https://github.com/liskin/xmonad/commit/839d0d94788efaa0287326ca514d42259ec23def
I have no idea if that is actually necessary, though. Probably not, but it could be if someone uses https://hackage.haskell.org/package/X11/docs/Graphics-X11-Xrandr.html to get more information about the situation, like https://github.com/fis/dot-xmonad/blob/a8c8e804873f8657fc1f1a0d93ee3f58f7a56e22/zem/src/Zem/AutoRandr.hs does.

Heh. It may take me a day or three to actually get around to it, but I can definitely try to test my AutoRandr code on top of these hooks.
Regarding the debouncing logic, some context: my setup involves two monitors connected over a single (USB-C) cable with DisplayPort MST. If memory serves, to X plugging in the cable looks like two consecutive (but distinct) configuration changes: first a single monitor appears at the "DP-0" output, and then that changes into a DP "hub", with two monitors connected as "DP-0-1" and "DP-0-8". I think I added the sleep-based debouncing as an initial attempt to work around that. That said, I don't think it really was stable enough (the timing is unpredictable), and I ended up instead just not configuring any action for the "single external monitor" configuration. So it's quite possible just clearing the actually immediate X events would work well enough (for my purposes).

Absolutely no need to rush it! :-)
I also have a DP MST hub here (Lenovo ThinkPad Ultra Dock) and I had all sorts of problems with it in the past, but right now it seems to work rather well. Your setup is probably different, though, as I guess one of your monitors acts as the MST hub, but it really could look like a single monitor for a brief moment. Not sure if this is something we can reliably handle in xmonad. We could probably add some configurable sleep to the event clearing or something to make sure the hook really fires only once it's settled. Or we can leave it up to users to add sleep and some actual debouncing to the hook if they need that.
In my own config, I added flock to my bash layout-auto: https://github.com/liskin/dotfiles/commit/706db34614194d60329435c6457bb895e7467b54#diff-c57c136cf207a3cd44f4fac23bde2146a5f8259c4391333981aec1a8aba66898 and now I can just freely add sleeps if they ever become needed. And my configuration also won't reconfigure xrandr for unknown monitor configuration, I still need to manually press a key for that.

Two things are still missing here:

a check that XineramaScreenInfo actually changed to prevent some unnecessary rescreens: https://github.com/xmonad/xmonad/issues/243#issuecomment-723470599
a check that connected outputs actually changed to prevent some unnecessary invocations of randrChangeHook (e.g. after VT switch)

Even without these, it should be useful for many people and should be good enough to be used by default in X.H.StatusBar, so I'd like to get it merged soon.


doc: automated testing of all docs

Originally opened by @myitcv in https://github.com/cuelang/cue/issues/712
This is an umbrella issue for ensuring that all of our docs are covered by automated tests in some way, including things like the project README.
For this we could well leverage preguide.

Is this issue obsoleted by the new website work? I don't think the README has (nor should have) anything complex enough to need this.

Is this issue obsoleted by the new website work

Yes, it's covered by it. Almost "done" from the perspective of the first version of the preprocessor, at which point this will be closed. I will relabel accordingly to cuelang.org.

Closing this PR. This work is actively in progress and will be a key part of alpha.cuelang.org.


Error Reporting could send reported errors to console when in dev mode

Today, when using the Error Reporting module in development, a warning is printed:
WARN:@google-cloud/error-reporting: Stackdriver error reporting client has not been configured to send errors, please check the NODE_ENV environment variable and make sure it is set to "production" or the ignoreEnvironmentCheck property is set to true in the runtime configuration object
This is very good. However, when an error is reported, it is swallowed.
Suggestion: when NODE_ENV is not set to "production", the module could simply print the reported errors to console.log().
This would allow testing that error reporting is properly setup while developing.

This issue was moved to https://github.com/googleapis/nodejs-error-reporting/issues/15.


Feat: Sync playback between vlc instances on networked devices

Hi,
I've successfully set vlcsync up on a rpi and it works as intended.
I was wondering how trivial it would be to implement the possibility to synchronize playback between VLC instances
running on different computers on the same network.
e.g : server is at <IP_ADDRESS>, computer 1 is at <IP_ADDRESS>, computer 2 is at <IP_ADDRESS>
each computer has the video files on their filesystem.
vlcsync runs on server, vlc instances run on computer 1 and 2.
E.G : On server, run vlcsync
On computer 1, run vlc --rc-host <IP_ADDRESS> SomeMedia1.mkv
On computer 2, run vlc --rc-host <IP_ADDRESS> SomeMedia2.mkv
One of the vlc instances could then be controlled via telnet, and synchronization would occur via vlcsyncon the other instance.

Hi, thanks for proposal,
Yes, I thought about this, even I have roadmap for this. It needs little refactoring for this. Currently, I store all controlled VLC by key (pid + port). It requires refactoring to host + port.
Plus I'm not finally decide how implement remote sync.
Problem 1: Closed random ports. If you start remote vlc's it started on random port. Usually firewall enabled and of course random ports blocked by default. So you require caring about open ports in firewall. Especially on windows. I don't want care about port numbers, it is not handy.
Problem 2: Discovery remote instances. There is a question about discovery remote VLC instances. Currently, I have access to process list and can view listen ports i.e. "Find all VLC processes and show all LISTEN ports". This is how I find all the players for sync. So in this case we should "ping" every port, check output, etc...
My current thought about this it is just run "another" vlcsync on remote as agent. So the agent will local discovery VLC's, then do synchronization "vlcsync ↔ vlcsync". In both direction when some vlc seek, etc.
Something like:

In this case:
We require only one open port. And possible sync more two sources just add it to "network".
Despite this, probably, I will implement both variants. Remote vlc + remote agent style sync. Maybe I will implement just static remote instance at first.
I need to evaluate all the options a bit and lay all the options in my head.
And some free time.

Hi,
I missed that roadmap section, great to hear this is planned !
IMHO, your remote agent solution sounds more simple (one IP:PORT per remote host, and theorically allows you to add an infinite number of remote hosts, with multiple VLC instances each.
Maybe starting with a solution where you have to specify those variables (remote IP:port) manually could be less work at first ?
Some thoughts about this solution ;

You could have an option overriding the port used, e.g: vlcsync --port 9999 (meaning you use vlc --telnet-port 9999 on the remote hosts.
You could have a flag  to specify the remote hosts IPs or IP range,  manually, e.g : vlcsync --remote-host <IP_ADDRESS> --remote-host <IP_ADDRESS>/24. This would prevent from having to scan each IP on the network.
You could have an option to choose to not look for vlc instances running on the same machine as vlcsync, e.g: vlcsync --no-local-discover --remote-host ...
You should be able to choose which network interface should be used, since you could have different subnets for each interface ( eth0 vs wlan0, etc. ) and not want to scan for instances on all of them...

Well these are just ideas, I'm not sure how trivial/possible it would be to do these kind of things, what's more having to make it work on windows too.
Thanks for your reply !

Honestly, you inspire me to do some work 👍.
I've already does refactor. And almost done remote VLC support. Remains add command line parameters. Decide started from this feature, as it is easily to implement. Good start I think.
About your notes:

Static remote, yes, even almost done. Will looks like i.e. for two remotes:
vlcsync --rc-host <ip:port> --rc-host <ip:port>

Disable local discover --no-local-discover, agree, yes, also was thought about it, will implement in this release.

About remote discovery, I will think about again in the future. Just require some protocol for sync events. During working, have decided just little postpone this feature as static covers all possible cases. Just need little more scripting. For starts remote VLC on certain port, open port if required (or tunnel it to local). So remote agent/discovery postpone currently and maybe done in the future.

Static VLC's almost done, just need add command line args. And test it.

Wow, it's great that you found the time to do it ! Thank you for the effort you put into it.
I can beta test for you if you want, let me know if I can be of any help.

Hi @ABelliqueux, I finally finish remote sync feature. You can test it if you want. Working brilliant! At least on first tests.
The main thing I want to share. In process of work I figured out how to make remote discovery (without an agent on the remote machine) and even, what is more important without opening ports. Remote VLC's can continue run on random ports with algorithm:

we connect via ssh to remote
via i.e. netstat -4nlp get all VLC's ports, even VLC on <IP_ADDRESS> or <IP_ADDRESS> and not wide open
then we forward port from remote port to local
and connect to the local (forwarded) port and control VLC instance

Profit!
Think should work. Even TIL windows has built-in OpenSSH server and can to forward ports (I haven’t worked with windows for a long time, I can’t give more precise details)
So in this case we not need distributed vlcsync etcetera. So don't need to code and support complex solution with distributed architecture.
Pros:

All remote port closed
VLC is still can run on random port (even not wide "<IP_ADDRESS>")
Even Windows has builtin ssh and this trick with port forwarding will work even in windows
Simple solution that no need to effort for code and errors so fewer bugs

Thoughts?

Fixed via #4 (vlcsync v0.2.0)


pinned news items are still not handled properly

Describe the bug
Pinned news items still have a chance to cause exceptions in the refresh method (particularly with the maintenance category). Pinned news items that go directly to a pin are not announced by the bot. Additionally, doubly failed execution methods currently throw an exception in refresh.
To Reproduce
Steps to reproduce the behavior:

news item is posted and pinned immediately
bot does not announce news item
that category causes an exception from then on
bot fails to update its latest news item IDs
bot repeatedly posts the same news items over and over

Expected behavior
bot should announce all new news items regardless if they are pinned or not.
Additional context
Add additional exception handling to the refresh function. Investigate how to retrieve pinned news items.

This issue will not be resolved as the News Feature is being completely reworked to utilized the Twitter API rather than web scraping


page blocked

Subject: page blocked
Description:
I can not open the page.
Results:
I log in. Okay. Then ... finish
Backend version: develop-faaca560
Frontend version: develop-1416d148
User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0
Page: https://app.couchers.org/messages
User: msr (1133)

This user has recently logged in so I guess it's fine


LDAP configuration

👋
I would like to setup the LDAP authentification.
I usually have a bind_cn and a password fields to provide but I don't know where to set it in warp configuration.
The bind_cn field looks generally like that: (bind_dn: 'CN=my_Ldap,OU=my_ou,DC=my_domain,DC=com')
Any help would highly be appreciated!
Guillaume

Hi,
set up these environment variables as a bare minimum to make LDAP work:
WARP_AUTH_LDAP = "True"
WARP_LDAP_SERVER_URL = "ldap://your_ldap.example.org:389"
WARP_LDAP_USER_TEMPLATE = "CN={login},OU=my_ou,DC=my_domain,DC=com"
WARP_LDAP_STARTTLS = "True"


Objects with unknown property names

Very often I'll encounter situations where I need to type an object that has unknown property names (e.g. an id or a key) but the shape of its value is known.
e.g.
type Point = { x: number; y: number};
interface PointMap {
  [key: string]: Point;
}

I can't really figure out how to accomplish that with computed-types.

Hi, thanks for bring this up!
I still didn't have the time to look into it, I think the best solution will be to implement some Record<K, V> validator to solve it.
If this urgent, you can always create your own validator like this:
const PointSchema = Schema({ x: number, y: number });

const PointMapSchema = object.test((obj) => Object.values(obj).every(PointSchema));

Thanks for responding!  It's not urgent but good to know about the example you provided!  Having some sort of Record<K, V> seems perfect.

Proposed interface:
import { Record } from 'computed-types';

const PointMap = Record(string, { x: number, y: number });

In a Record<K,V> approach I guess the only valid index types for K would be a string or string union.  The V however could be any valid schema.  The above example is an inline schema definition I'm guessing but it would be nice to be able to also provide schemas defined elsewhere.

The key validator will be any value that can as as an object property (number, string or symbol). You will be able to provide any validator such as: enum(MyKeys), Schema.either('foo', 'bar') etc..

Hi, here is a generic version that I created today, which seems to work well and will also create the correct Record<K, V> TypeScript type when used with Type<>.
type Validator<T> = (value: any) => T;

export const Record = <KeyType extends string | number | symbol, ValueType>(keySchema: Validator<KeyType>, valueSchema: Validator<ValueType>) => {
    return (object
        .test((obj) => Object.values(obj).every(valueSchema) && Object.keys(obj).every(keySchema))
        .transform(obj => obj as Record<KeyType, ValueType>)
    );
}

You will be able to provide any validator such as: Schema.enum(MyKeys), Schema.either('foo', 'bar') etc..

Yep, that is working.

Are there plans to release this?


add license

Add license to pass the travis check job.

/test check-ibm-management-ingress-operator


message address incorrect

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior

Expected Behavior
The person I'm messaging has my own address show up as theirs.
Steps To Reproduce
Message someone on demo.relay.cc

To reproduce you have to message someone that doesn't have an ENS name.


Can't build

Cant build for Linux (UBUNTU). I always build with cuccess, but now it fails. It fails at least for 3 days.

[ 84%] Building CXX object CMakeFiles/OsirisOBJ.dir/Source/InventoryChanger/ItemGenerator/ItemGenerator.cpp.o
/home/rest/proj/Osiris/Source/InventoryChanger/ItemGenerator/ItemGenerator.cpp: In function ‘time_t getStartOfYearTimestamp(uint16_t)’:
/home/rest/proj/Osiris/Source/InventoryChanger/ItemGenerator/ItemGenerator.cpp:852:45: error: unable to find numeric literal operator ‘operator""d’
852 |     return system_clock::to_time_t(sys_days(1d / January / year));
|                                             ^~
compilation terminated due to -Wfatal-errors.
make[2]: *** [CMakeFiles/OsirisOBJ.dir/build.make:709: CMakeFiles/OsirisOBJ.dir/Source/InventoryChanger/ItemGenerator/ItemGenerator.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:347: CMakeFiles/OsirisOBJ.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

Use this make file to build:
https://pastebin.com/QaXTMvpy
cmake --version
cmake version 3.16.3

cuccess

Minimal required g++ version is 11. Ubuntu can default to an older version, so you can specify the compiler with -DCMAKE_CXX_COMPILER=g++-11 option to the cmake command.

His @relativist  case is reproducible at least for me.

Sorry for success word!
Ubuntu G++ version:
g++ (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
and max available 10.
Try compile with lines in Makefile:

export CC=/usr/bin/gcc-10
export CXX=/usr/bin/g++-10
DCMAKE_CXX_COMPILER=g++-10
CMAKE_COMMAND = /usr/bin/cmake

BUT with another error:

[ 84%] Building CXX object CMakeFiles/OsirisOBJ.dir/Source/InventoryChanger/ItemGenerator/ItemGenerator.cpp.o
/home/rest/proj/Osiris/Source/InventoryChanger/ItemGenerator/ItemGenerator.cpp: In function ‘time_t getStartOfYearTimestamp(uint16_t)’:
/home/rest/proj/Osiris/Source/InventoryChanger/ItemGenerator/ItemGenerator.cpp:852:45: error: unable to find numeric literal operator ‘operator""d’
852 |     return system_clock::to_time_t(sys_days(1d / January / year));
|                                             ^~
compilation terminated due to -Wfatal-errors.
make[2]: *** [CMakeFiles/OsirisOBJ.dir/build.make:709: CMakeFiles/OsirisOBJ.dir/Source/InventoryChanger/ItemGenerator/ItemGenerator.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:347: CMakeFiles/OsirisOBJ.dir/all] Error 2
make: *** [Makefile:87: all] Error 2

Execute sudo add-apt-repository ppa:ubuntu-toolchain-r/test command and then g++-11 should be available for installation.

It turns out that this answer solved my problem!

Thank you. installed 11 version and it built with success!
--reinstall commands was not helped me.


Add Modify constructor to State, and handleState function

I've separated this from #44 as it's probably more controversial. Adding a Modify constructor allows users to know that a modification will be atomic. If you look at the example in the diff, I've shown how this can be used to allow users to run stateful computations on mutable shared state, concurrently with other threads, or isolated in the traditional manner, without modification to the computation.
An alternative implementation would be to implement Get and Put in terms of Modify, but then the example I've provided would end up calling atomicModifyIORef many more times than necessary.
Keen to hear feedback on this, I'm not confident that this change is actually worth it, and am sure there are problems I haven't considered.

Uh, looks like I branched from the wrong branch, so the commits from #44 have been included, but I probably wouldn't want this included without those either. I'm happy to make a new PR with the one commit that differs here if you'd prefer, since they don't actually depend on each other.


One single api endpoint to update proposer data

Right now, there seem to be different endpoints to fetch/update/delete fee recipient, I propose there be just a single endpoint to update the proposer information of a validator pubkey, we should also include graffiti and builder info as part of proposer data update
  graffiti: 'default graffiti'
  strict_fee_recipient_check: true
  fee_recipient: '0xcccccccccccccccccccccccccccccccccccccccc'
  builder:
    enabled: true
    gas_limit: "30000000"

cc @james-prysm
If you feel this is a good way to go, I can do a PR to update the api section

thinking about the UX of this some sample cases:

What if only want to customize the gasLimit but not the fee_recipient or the graffiti?
I may want to customize the gasLimit without having to consider the status of builder enabled or not

So to achieve the above all properties should be also, and clients only update what's provided? Also I would prefer to not nest properties.

I agree, it could just be a key,value pairs (all/any optional) that are posted to one endpoint, without constraining/relating to update of other properties  (for e.g. gasLimit update would/should be independent to builder status).
Also agree that a flattened structure would be good for the api update and clients can then internally map to their corresponding structures, so we can have builder.enabled, builder.gas_limit as the properties which are flat and still decorate namespace.
Open to other formats as well.

strict_fee_recipient_check: true

is this something implemented in all clients?

strict_fee_recipient_check: true

is this something implemented in all clients?

I don't think so and I don't feel strongly for including this, but lodestar has this flag for validator.

Graffiti is a whole thing we've not really designed in this way, so from a teku perspective at least that's likely to be a big thing...
I'm not sure why it matters to have a single api endpoint when a UI is calling it anyway, unless it needs to be a single transaction where everything changes....
Is there some context in what you expect from strict_fee_recipient?
Builder configuration has never really leaked into keymanager api before, and it's not going to be appropriate for some implementers, I'm wondering why that's needed?
Builder configuration is also likely to cause issues or have to be ignored if the rest of the builder configuration underlying in the client isn't already setup, so i'm not sure it's quite as simple as allowing it to be turned on here...

My initial suggestion is

decide if we need builder configuration via this mechanism
decide if we need graffiti via this mechanism
add endpoints addressing those specific pieces of functionality if either/both are required...

if an endpoint like this were to exist, i'd probably suggest all fields are mandatory, and if only one was wanting to be updated, that the specific endpoint should be used.  That would allow better overall UX when something fails, rather than 'this update failed, bits may have been applied' kind of responses...
From the teku perspective we currently set graffiti in a very different way to this, and that's likely to be non trivial to implement it if it's actually needed... it'd basically be out of scope to set graffiti if other clients are configured similar to how teku is configured with graffiti...

I think going off paul's responses we had this discussion on discord and felt that even now I'm a bit afraid of committing to a specific spec as custom builder-related things haven't really solidified in my opinion and it'll be bad to coordinate breaking changes a lot all dependent on one api. @g11tech

strict_fee_recipient_check: true

is this something implemented in all clients?

at least for prysm right now we don't have this feature... not sure if we need it yet

Is there some context in what you expect from strict_fee_recipient?

If the flag --strict-fee-recipient is set in the validator client, Lighthouse will refuse to sign any block whose
fee_recipient does not match the suggested_fee_recipient sent by this validator. This applies to both the normal
block proposal flow and block proposals through the builder API.

this is what I saw lighthouse publish @rolfyone
Will continue to watch the thread for further development. My personal opinion is if we want to include builder-related settings I'd like it to be after I see more users using it in the current way to see how much value this API brings.


Support DataStream APIs

Description

Added data stream APIs (CreateDataStream, DeleteDataStream, GetDataStream, DataStreamsStats)
Allowed specifying timestamp_field for dataStream in PutIndexTemplate
Added integration tests for data stream APIs

Issues Resolved
#402
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

The test failures are all because of the following test
org.opensearch.client.opensearch.integTest.restclient.AggregationRequestIT > testDateRangeAggregation FAILED
    org.opensearch.client.opensearch._types.OpenSearchException at AggregationRequestIT.java:94

This is not relevant to the changes in this PR. The same test failure also appeared in previous PRs: link1, link2.
When I try to reproduce the issue in local, it seems to be an intermittent issue which appears once among ten runs. It failed due to exception when search an index:
Request failed: [search_phase_execution_exception] all shards failed

I am not quite sure about the root cause.

I am not quite sure about the root cause.

That's the flaky one sadly, https://github.com/opensearch-project/opensearch-java/issues/407


Implementation of GRAZ, COST-G and SWARM data

I added time computation for GRAZ, COST-G and SWARM in addition to the reading of the spherical harmonics file.
This pull request will be followed by a pull request on the read-GRACE-harmonics repository with the complete implementation for the reading.
Code has been tested and is functional.

Hey @hulecom I'm going to close this PR as I am putting this functionality in the other repo https://github.com/tsutterley/read-GRACE-harmonics/pull/47.  I updated read_GRACE_harmonics.py to be able to read the COST-G harmonics and added read_gfc_harmonics.py for GRAZ and SWARM with your edits.  I haven't merged that PR as I'm going to write some sync scripts to get the data for each of these datasets (which is my plan for tomorrow).  Thanks for putting in this functionality!


[Berkeley] Handle 'unused' non-optional gates correctly in pickles

This PR bumps proof-systems to include the fix in https://github.com/o1-labs/proof-systems/pull/1107. This builds upon https://github.com/MinaProtocol/mina/pull/13530, which makes this fix possible.
Checklist:

[ ] Dependency versions are unchanged

Notify Velocity team if dependencies must change in CI

[ ] Modified the current draft of release notes with details on what is completed or incomplete within this project
[ ] Document code purpose, how to use it

Mention expected invariants, implicit constraints

[ ] Tests were added for the new behavior

Document test purpose, significance of failures
Test names should reflect their purpose

[ ] All tests pass (CI will check this if you didn't)
[ ] Serialized types are in stable-versioned modules
[ ] Does this close issues? List them

!ci-build-me

!ci-build-me

!ci-build-me

!ci-build-me

!ci-build-me

!ci-build0-me

!ci-build-me

!ci-build-me

!ci-build-me

Force-pushed to remove a bunch of rebase junk that crept in.

!ci-build-me

!ci-build-me

!approved-for-mainnet

Merging through script with missing edge-case. The fix is in https://github.com/MinaProtocol/mina/pull/13670, but blocked by requested changes.


Update project policy to allow guests to see project contents

This was fixed with https://github.com/stoplightio/gitlabhq/pull/6


fix: Remove rxjs events to avoid duplicate custom events in Angular

Summary | Résumé
With the v0.22.0 release of the @cdssnc/gcds-components-angular, @Outputs were added to the generated angular components. Unfortunately this was now causing custom events like gcdsClick to be emitted twice.
To fix, I removed Stencil's implementation of events from rxjs to remove the duplicate emitted events.
Example angular component
import {Component} from '@angular/core';

@Component({
  selector: 'app-click-me-gcds',
  template: ` <gcds-button type="button" (gcdsClick)="onClickMe()">Click me!</gcds-button>
    <gcds-pagination type="list" current-page="3" total-pages="20" (gcdsClick)="onClick($event)"></gcds-pagination>
`,
})
export class ClickMeGcdsComponent {
  clickMessage = '';

  onClickMe() {
    console.log('clicked')
  }
  onClick(event: any) {
    event.preventDefault();
    console.log(event.detail)
  }
}

Previously the gcdsClick would be emitted twice when either the button or pagination links were clicked. Now only one event is emitted.

FYI I'm still testing this -- should get to it by tonight :)


How to resolve "Response body object should not be disturbed or locked"?

Describe the bug
Started getting this error when trying to authenticate. I am unsure what's causing it.
> authentication error > TypeError: Response body object should not be disturbed or locked
>     at extractBody (node:internal/deps/undici/undici:5178:17)
>     at new Request (node:internal/deps/undici/undici:6160:48)
>     at Authenticator.authenticate (/Users/adaboese/Developer/adaboese/aimd/node_modules/.pnpm/remix-auth@3.6.0_@remix-run+react@2.4.0_@remix-run+server-runtime@2.4.0/node_modules/remix-auth/build/authenticator.js:68:41)
>     at action (/Users/adaboese/Developer/adaboese/aimd/app/routes/_authentication/sign-in/index.tsx:56:56)
>     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

Code around this is super basic and was working before:
export const action = async ({ request }: ActionFunctionArgs) => {
  const formData = await request.formData();

  const submission = parse(formData, {
    schema: FormDataZodSchema,
  });

  if (submission.value && submission.value.intent === 'sign-in') {
    try {
      return await authenticator.authenticate('user-pass', request, {
        context: {
          formData,
        },
        successRedirect: '/app',
        throwOnError: true,
      });

// ...

Your Example Website or App
N/A
Steps to Reproduce the Bug or Issue
Don't know
Expected behavior
Not get the error
Screenshots or Videos
No response
Platform

OS: [e.g. macOS, Windows, Linux]
Browser: [e.g. Chrome, Safari, Firefox]
Version: [e.g. 91.1]

Additional context
No response

Seems like a bug in Remix https://github.com/remix-run/remix/discussions/8315

This is not a bug in Remix, you can only read the request body once, since you’re calling request.formData() and Remix Auth also do it it fails.
If you want to read the body before calling Remix Auth you need to first clone the request with request.clone().formData().

It was working just fine before migrating remix version:
-    "@remix-run/dev": "^2.3.1",
-    "@remix-run/node": "^2.3.1",
-    "@remix-run/react": "^2.3.1",
-    "@remix-run/serve": "^2.3.1",
+    "@remix-run/dev": "^2.4.0",
+    "@remix-run/node": "^2.4.0",
+    "@remix-run/react": "^2.4.0",
+    "@remix-run/serve": "^2.4.0",

But good to know. Thank you!


Last modified is not shown on Uppercase files

Describe the bug
The problem is already addressed  here : some-of-my-pages-have-january-1-0001-as-the-last-modified-date but the solution does not work.
For example the page CJK + Latex Support page shows "Last updated Unknown".
If yo Uppercase any file name, the last update does not work.
Also emoji in filenames don't render but that might be due to  hugo.

I think this might be a bug with Hugo actually, let me look into this a bit more

Thanks for looking into it.
Uppercase filenames works, I was  managing content separate from quartz repo as a submodule but gitinfo in hugo does not work wit submodules hugo issue.
I had to add file to quartz repository git index to get info, which is problematic as I don't want to make history of files  public by adding them to git index. I would rather serve just the files on the website and keep the content private.
I am a beginner to hugo, I am curious as why not to use quartz as a submodule in themes rather than forking. It would allow to keep content separate from the quartz.
As for emoji, the links don't render if there is emoji in filename or path but that might be due to hugo.
Thank you for quartz and feel free to close this.


ADD MORE DETAILS IN CONTRIBUTING.md

Branch -  Development
File Name - CONTRIBUTING.md
Changes Required - ADD more details like photos on how to fork , so it would be easy for beginner to setup .

Please assign me this


[fix][flaky-test]PersistentSubscriptionTest.testCanAcknowledgeAndCommitForTransaction

Fixes:

#17755

Motivation
Concurrent execution of these two instructions will throw an exception:

Mocked objects are executing methods
Bind the new mock behavior again

In this test, cursorMock triggers this error.
Modifications
make "binding the new mock behavior" always running after "all methods execute finish"
Documentation

[x] doc-not-needed

Matching PR in forked repository
PR in forked repository:

https://github.com/poorbarcode/pulsar/pull/14

After discussion with @congbobo184 , the scenario of this test was covered by PendingAckPersistentTest, so deleted it

/pulsarbot rerun-failure-checks

/pulsarbot rerun-failure-checks


proposal: x/crypto/sm3: new package

SM3 is Shang Mi 3, Commercial Cryptographic hash algorithm 3.
https://tools.ietf.org/html/draft-shen-sm3-hash-01
OpenSSL 1.1.1.pre2
https://github.com/openssl/openssl/tree/master/crypto/sm3
armv8.2 has SM3 hardware instructions.
https://community.arm.com/processors/b/blog/posts/introducing-2017s-extensions-to-the-arm-architecture
Linux kernel
https://github.com/torvalds/linux/blob/master/crypto/sm3_generic.c
https://golang.org/cl/106615 by @mengzhuo

It seems like this is not ready for x/crypto yet: (1) it's still a draft, not an RFC, and (2) it doesn't have widespread use. We are not aiming to collect all possible crypto algorithms in x/crypto, only the ones that have widespread use to justify the Go team maintaining it.
Of course, it would be great to have in the broader Go ecosystem and we encourage you to post it in a different place, perhaps in an appropriate location on GitHub.

That's not true. SM3 is used in current TPM 2.0 devices world wide. It's a chinese crypto algorithm which is allowed to use in China. Multiple crypto libraries implement it.

+1 to let golang support more crypto standards including SM and others.


[SDF-96] Materials and SDF tree integration

The SDFTree is an owner of the materials within the app.
The material may be attached to any node. If the node is a primitive, no material is attached and no material may be derived from parent, then the default material owned by the sdf tree registry is used. This dramatically simplifies the shader generation from the client perspective in case when the materials are stored in the separate array/buffer on the GPU side (I would opt for that solution as it improves the gpu cache usage, especially if we plan to introduce the PBR). At the same time this solution is compatible with one gpu node struct containing material approach.
I haven't updated the gen_shader_code, as it should be a subject of a separate task, in which we put the modules together.
I've assumed that the deletion of materials is rather a rare operation. For that reason it's not optimized. It could be optimized in the similar fashion that the child nodes are -- by using the linked list. But I feel it's not necessary as the user will not change the ordering of materials, so we gain more from the std::vector, which is faster to iterate over.

The material may be attached to any node. If the node is a primitive, no material is attached and no material may be derived from parent, then the default material owned by the sdf tree registry is used.

I've slightly modified the logic here. The default material still exists and should be used in shader generation when no material is attached to the node. However, if no material is attached the primitive node returns std::nullopt instead of the default material id.
The reason is safety. When std::optional is returned the programmer is forced to unpack the value and check if the material is attached by using has_value(). When the unwrapped id is returned instead, in many cases, the programmer must check if the id belongs to default material, but the compiler will be silent if they don't.


Use Queryset.iterator() method when merging querysets

Since iter(qs) loads the whole query into memory before it is paginated this leads to high memory usage and if there are a lot of rows in queryset we will get OutOfMemory error.
Things to consider (not part of this PR, but let's discuss):
Using iterator() method solves this issue. If Django version is higher than 2 this could be optimized even better by passing chunk_size to appropriate value depending on values of _low_mark and _high_mark.
Another idea: slice self._querysets if _high_mark is not None before iterating over them.

I don't believe this change is necessary, if you have a QuerySetSequence and call iterator() on it then it should not cache, just like Django does. Is this not working when using the ordered iterator for some reason?

@clokep Yes I also thought so :)
Here is the source of __iter__ method for django's Queryset:
    def __iter__(self):
        """
        The queryset iterator protocol uses three nested iterators in the
        default case:
            1. sql.compiler.execute_sql()
               - Returns 100 rows at time (constants.GET_ITERATOR_CHUNK_SIZE)
                 using cursor.fetchmany(). This part is responsible for
                 doing some column masking, and returning the rows in chunks.
            2. sql.compiler.results_iter()
               - Returns one row at time. At this point the rows are still just
                 tuples. In some cases the return values are converted to
                 Python values at this location.
            3. self.iterator()
               - Responsible for turning the rows into model objects.
        """
        self._fetch_all()
        return iter(self._result_cache)

So when you iterate over queryset (i.e. calling iter(qs)) it will first fetch all rows from it into memory and then iterate over that list. Yes, this is counterintuitive.
When using QuerysetSequence with pagination, the pagination occurs after all rows for subquerysets are fetched and OutOfMemory occurs.

Please keep in mind that using iterator() affects prefetch_related optimizations. So maybe it will be sufficient to slice subquerysets instead of using iterator() method.

I do not believe that __iter__ method is used when iterator() is called, it should use the __iter__ of one of the iterable models, e.g. https://github.com/django/django/blob/1.11/django/db/models/query.py#L47-L85
There's a bunch of tests to make sure this works in TestIterator, but I actually don't think it covers the code of the ordered iterator. I'm looking into that now.

I looked a bit more at this and I don't see any bugs, whenever I use iterator() it re-evaluates queries and does not set the _results_cache of the underlying QuerySets to anything.
Can you show an example of code that this isn't working for? I'm using things like this:
qs = QuerySetSequence(Article.objects.all(), Book.objects.all())
for m in qs.iterator():
    print(m)

So I looked a bit more at this and can't find anything wrong with when Django is caching a query vs. when it is not being cached. Regardless, I'm fairly certain the fix here isn't correct since it doesn't ever allow for caching of the query, which you actually want sometimes.
Please let me know a bit more about how / when you're using this and we can investigate more.

Imagine we have a lot of Article and Book objects (~10000 rows each)
How would your code behave in case of:
qs = QuerySetSequence(Article.objects.all(), Book.objects.all()).order_by(...)
print(list(qs[:5]))

Will it fetch all 10000 articles and 10000 books and then return only 5 records?

Maybe to avoid fetching whole subquerysets in _ordered_iterator() it's better to first do something like this:
self._querysets = [qs[self._low_mark:self._high_mark] for qs in self._querysets]

and then merge?

Or something like this:
    def _ordered_iterator(self):
        """
        Interleave the values of each QuerySet in order to handle the requested
        ordering. Also adds the '#' property to each returned item.
        """
        # A list of tuples, each with:
        #   * The iterable
        #   * The QuerySet number
        #   * The next value
        #
        # (Remember that each QuerySet is already sorted.)
        iterables = []
        if self._low_mark:
            qslice = slice(None, self._high_mark - self._low_mark)
        else:
            qslice = slice(None, self._high_mark)

        for i, qs in zip(self._queryset_idxs, self._querysets):
            it = qs[qslice]

I'm not sure this makes sense -- isn't this now using the slice of the items to slice the list of QuerySets? I just tweaked the travis config so that it should run on PRs now, so please re-push this so we can see if tests pass.

Slicing queryset before it is evaluated applices limit/offset to query on database level. I believe it optimizes the query

Ah, I mis-read what the code is doing, it is essentially limiting each QuerySet to the maximum number that are possible in the slice. So, if you have even distributions, you would only pull 2x the amount of objects in your example.
This would need tests added before merging it.

Yes N*slice_size for N subquerysets because there is possibility that all records may be from one subqueryset only.

So I'm going to write test that creates 10 items for each model. Then I first query it with .all(), wrap in a list and slice the resulting list.
After that I create another Model and do `.all()[:5], and compare with previous list.
List must be the same and in second case size of each subqueryset's cache must be equal to 5.

So I'm going to write test that creates 10 items for each model. Then I first query it with .all(), wrap in a list and slice the resulting list.
After that I create another Model and do `.all()[:5], and compare with previous list.
List must be the same.

@clokep anything else needed to be tested? What can I do to get this PR merged?

@leotrubach I need to sit down and reason about some edge-cases before merging this. I'll try to take a look at it soon!

Closing due to lack of response.


[Event Request] Table 246 "Purchase Line" – New Event “OnBeforeCalcEndingDate”

Could we please have a new publisher “OnBeforeCalcEndingDate” in Function “CalcEndingDate”, Table 246 "Requisition Line"?

    procedure CalcEndingDate(LeadTime: Code[20])
    begin
*** Start new code ***
        OnBeforeCalcEndingDate(Rec);
*** Stop new code ***
        case "Ref. Order Type" of
            "Ref. Order Type"::Purchase:
                if LeadTime = '' then

*** Start new code ***
    [IntegrationEvent(false, false)]
    local procedure OnBeforeCalcEndingDate(var RequisitionLine: Record "Requisition Line")
    begin
    end;
*** Stop new code ***

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


Bump 0.1.39

Pull Request Test Coverage Report for Build 2162

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 82.482%

Totals

Change from base Build 1836:
0.0%

Covered Lines:
4006

Relevant Lines:
4650

💛  - Coveralls


Make Dark mode default for the website.

We need to make the dark mode default for the website. For now it's light mode that pops up in the first time or when reloaded.
Also when page refresh the mode should not switch.
Here is the website link : First Contribution Website

Hello @Rajdip019 I would like to work on the issue, could you please assign it to me ?

Sure go ahead. @Eyesnatcher-coder

Completed the issue, made default theme as dark, loved contributing to you 💯 .

Hello @Rajdip019 , Just a gentle reminder that I have completed the task please, mark as hactoberfest-accepted, I would greatly appreciated for the same.
Thanks :)

Your PR is not merged yet. Please view the comments in the PR. @Eyesnatcher-coder

This issue is resolved I guess. So closing this issue


Af ensembl

This branch has one function -  it provides a script for reading data from the Ensembl public database (canonical_transcripts.py) and an object for reading that data in (ensembl_flat_file_reader.py), as well as tests for the object.
The next step after this is integration to the RPKM function.

Lets not do this - we'll pull all our changes together to make it coherent. And easier to review!


IDENTITY-6953 Improve the introspection API to handle JWT tokens.

Moved from https://wso2.org/jira/browse/IDENTITY-6953
When the token is JWT, introspection API should return JWT specific parameters, which are optional in other cases.
[1] Ex:

'jti' OPTIONAL: String identifier for the token, as defined in JWT
'aud' OPTIONAL: Service-specific string identifier or list of string identifiers representing the intended audience for this token, as defined in JWT

[1] https://tools.ietf.org/html/rfc7662

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


fix: add drop down for kms endpoint

Description
Issue: https://github.com/terraform-ibm-modules/terraform-ibm-kms-all-inclusive/issues/443

Release required?

[x] No release
[ ] Patch release (x.x.X)
[ ] Minor release (x.X.x)
[ ] Major release (X.x.x)

Release notes content

Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

For mergers

Use a conventional commit message to set the release level. Follow the guidelines.
Include information that users need to know about the PR in the commit message. The commit message becomes part of the GitHub release notes.
Use the Squash and merge option.

/run pipeline

/run pipeline

/run pipeline

:tada: This PR is included in version 4.11.2 :tada:
The release is available on:

GitHub release
v4.11.2

Your semantic-release bot :package::rocket:


Update to 0.13.5

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.0 out of 6 committers have signed the CLA.:x: Yufei Zhu:x: orisano:x: ajt89:x: heyman:x: cyberw:x: test-bai-cpuYufei Zhu seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.0 out of 6 committers have signed the CLA.:x: Yufei Zhu:x: orisano:x: ajt89:x: heyman:x: cyberw:x: test-bai-cpuYufei Zhu seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Use eCAL::Config API in eCAL Apps

Currently eCAL Mon, Play, Rec & Sys use workaround for reading eCAL Config. They either

read the ecal.ini themselfe
or

Parse whatever eCAL::Process::DumConfig() returns

This should be replaced with Calls to eCAL::Config Functions. The eCAL::Config API is here:
https://github.com/eclipse-ecal/ecal/blob/master/ecal/core/include/ecal/ecal_config.h
This also means that probably SimpleIni can be removed as a dependency from a few apps.

Merged with #817


Cut a release/move to jazzband

Filing this ticket here as this was previously discussed in a pull request that has since been merged: https://github.com/grantmcconnaughey/django-avatar/pull/209
If @grantmcconnaughey doesn't have the time to move it to jazzband himself, what can others do to get it there?
I see @jezdez is both a contributor here and also involved in jazzband.
Any idea, @luigi370 @PetrDlouhy @Ali-Aref @jayvdb @ntoll @yatahaze @christianwgd ?

It seems like this project is dead. I have updated to github actions and the testing to modern versions of Django/Python + black in this repository: https://github.com/johanneswilm/django-avatar/ .
I was thinking that in about a day I will rename it to something slightly different and publish a package to pypi. We don't really have any other choice as we cannot requireon dependencies that are not on PyPI and we need to release really now.
Should @grantmcconnaughey or someone else here want to take over and make a release, I'll cancels these plans.

A proposal to move to JazzBand has now been filed: https://github.com/jazzband/help/issues/305 . Please respond if you can @grantmcconnaughey .

Done!


Add screenshots for updating the Wiki

Purpose/implementation Section
What changes are being implemented in this Pull Request?
WIth all the recent changes -- #458 #449, #448, etc, the wiki needs to be updated accordingly.
I'm adding some screenshots in order to do that.

This PR is just screenshots, so I'm going to merge.


Bug in BoundingBox.getLongitudeSpanWithDateLine()

Issue Type
[ ] Question
[X ] Bug
[ ] Improvement
[ ] Build system related
[ ] Performance
[ ] Documentation
Description
Create a BoundingBox from just one GeoPoint. In this case the members mLatNorth and mLatSouth are identical and getLatitudeSpan() is equal to zero. The members mLonEast and mLonWest are identical as well and the deprecated method getLongitudeSpan() is equal to zero as expected. The method getLongitudeSpanWithDateLine() that replaces the deprecated one gives 360 as result instead of zero.
Possible solution:
Replace
public double getLongitudeSpanWithDateLine() {
        if (mLonEast > mLonWest)
            return mLonEast - mLonWest;
        else
            return mLonEast - mLonWest + 360;
    }

with
public double getLongitudeSpanWithDateLine() {
        if (mLonEast >= mLonWest)
            return mLonEast - mLonWest;
        else
            return mLonEast - mLonWest + 360;
    }

This would handle the mLonEast == mLonWest case correctly.
Environment
versions of android this affects:
All
Version of osmdroid the issue relates to:
6.1.14

Hi @eschosc!
I'm not sure it's a bug as you're using BoundingBox in a very peculiar context: "Create a BoundingBox from just one GeoPoint". I would call it rather a side-effect.
Besides, with your suggested modification the bounding box longitude span would never be 360.

It has been reported before https://github.com/osmdroid/osmdroid/issues/1656

The question is the same: how do you deal with 360 degree spans?
And my suggestion is the same: add a boolean parameter to deal with the special cases 0 and 360, to remove the ambiguity.

And my suggestion is the same: add a boolean parameter to deal with the special cases 0 and 360, to remove the ambiguity.

Sounds as a reasonable option to me. Both cases are special and could be probably distinguished by the calling function by setting a boolean.
Btw I ran into this problem by calling BoundingBox.increaseByScale(), same as mentioned by xoif in #1656

@eschosc Feel free to create a new PR.
Could be creating a static boolean or an instance boolean instead of creating the same methods with an extra parameter.


Overall Feedback + ideas

Overall I think this is pretty well laid out and structured! Below are some directions you can expand on existing functionality.
I don't know tooo much about the problem space of FIPS lookups, so this review is restricted to code / technical opinions and review of packages providing similar functionality (for now).
Stylistic Nits:

I like named arguments in my library methods :) Not to say that the method params are unintuitive or anything, it does make semantic sense, but I don't like looking back at docs or code for order / type / nature of the parameters I'm expected to pass in. Named arguments help IDE autocomplete methods for you a bit easier as well (imo)
Might be nicer to restructure lib/ with stricter separation between code and data. For example, adding lib/data/ and moving all data related files there.

Usage / "Marketing"

I think the best generic libraries for a particular task provide the most  "interfaces" / ways with which to interact with the core logic of the package. Also, the "usage" / "demo" section is the only real place you can immediately distinguish your package from others immediately by showing the ease-of-use / number of methods to interact with it.

This preference is definitely a personal opinion, but it is a pattern I see a bunch of other modules implement.
For example, one additional interface that is useful, is to implement a CLI that provides commands for each type of lookup, and nice descriptive in-place --help. This can be useful for quick lookups outside of Ruby itself (for example, in a shell script), for debugging, providing verbose output not relevant in a regular lookup and so on.  Plenty of ways to be creative with it!

This could also do more advanced things like take standard text files as input and output / augment with FIPS lookups - or even something like fuzzy lookups based on a well formatted address string

You can make the package more accessible and showcase the functionality by creating  Rails app that uses this gem for FIPS lookups and deploy it in a free provider like fly.io

@ewbarroso
Couple of thoughts after looking through #1 and #3:

In the README, it might be worth mentioning how you sourced or derived the data in the CSV files and if / how you processed it (I know you mention the census.gov website and it seems pretty obvious to me, but I think it will help to be more specific). I think the main concern around using a package like this would be the accuracy / source of the underlying data so this would give users some confidence about correctness.

Also important to mention how up to date the info is, because the latest data may not be compatible with, say, a historic dataset that has old county names etc.

Might be worth looking into this in general and see what changes over the years. Might even be a nice "special" feature to include multiple years' worth of data (seeing as it is pretty compact anyway) and give the user an option to toggle. Don't see this being a huge feature but it does help be specific, which I assume most users of this package would appreciate..

Also relevant to above (and just a nit / future work / something to think deeper about): Currently spec tests code pretty nicely, but that part is mostly straightforward to prove imo - the hard part is to prove that our data is consistent with the "golden" record from census.gov or some reliable source. Wonder if we can do a "live" test pulls in the latest data from the website, processes it and verifies every entry in our package and ensures it matches. could be a special test that runs only in CI or something. I know this data doesn't change that often, but I think that's probably the absolute best you can do to prove your trustworthiness :)
Reiterating: I think the public / private arg discrepancy is totally fine imo - Looking at it from an outsider's perspective, it's only the public methods that matter.
Data files can be private, don't think those need to be available to the end-user of a package like this
Seeing as you did some memoization - I'm not sure how relevant this is, but might be fun to see how long it takes to process, say, 1 million lookups or something, just so you can give a performance figure in the readme.

also, feel free to close this specific PR whenever!


[SMALLFIX]Supply the variable name to Preconditions.checkNotNull for class FileSystemMasterView

[SMALLFIX]Supply the variable name to Preconditions.checkNotNull for class FileSystemMasterView

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/17646/
Test PASSed.


how to add stack trace to error email send by exception_handler?

(but not to the error page) thanks!

@CrazybutSolid
You can easily achieve this by yourself by just adding below codes at the end of the file: app/views/exception_handler/mailers/new_exception.erb.

<%= @exception.trace %>


Scope include model

Versions

sequelize: 5.6
sequelize-typescript: 1.0.0-alpha.9
typescript: 3.4.3

I'm submitting a ...

[X] bug report
[ ] feature request
Actual behavior:
When setting a scope for a model, typescript shows the below error.
Type '{ model: () => typeof User; as: string; attributes: string[]; include: (() => typeof Image)[]; }' is not assignable to type 'ModelClassGetter'.
              Object literal may only specify known properties, and 'model' does not exist in type 'ModelClassGetter'.

Expected behavior:
Worked fine before updating to canary release, same code now throwing the above error.
I can still include models if I do as follows:
include: [() => MyModel]

but if I need to specify attributes etc, TypeScript will throw error.
Steps to reproduce:
Related code:
@Scopes({
    list: {
        include: [
            {
                model: () => User.scope(null),
                as: 'User',
                attributes: ['firstName', 'lastName', 'id', 'liUserId', 'publicIdentifier'],
                include: [() => Image]
            },
            () => Company
        ]
    },
    worker: {}
})```

Just discovered that this error is only shown if there is an included model that is included directly with a getter function, not as the {model: () => MyModel} object.
E.g. the below does NOT throw a TypeError:
@Scopes({
    list: {
        include: [
            {
                model: () => User.scope(null),
                as: 'User',
                attributes: ['firstName', 'lastName', 'id', 'liUserId', 'publicIdentifier'],
                include: [() => Image]
            },
            {
                model: () => Company
            }
        ]
    },
    worker: {}
})

However, the following fails again if I just add the include key to the included model
@Scopes({
    list: {
        include: [
            {
                model: () => User.scope(null),
                as: 'User',
                attributes: ['firstName', 'lastName', 'id', 'liUserId', 'publicIdentifier'],
                include: [() => Image]
            },
            {
                model: () => Company,
                include: []
            }
        ]
    },
    worker: {}
})

@PatrickGeyer Thanks for bringing this up.

Fix is released<EMAIL_ADDRESS>


err if no environment.py

https://github.com/avanzzzi/behave.vim/blob/fc698f1264710beb7070d9282874ddfc83e64db5/autoload/behave.py#L11
hi, i tried using this plugin in a behave dir which is so minimal that there is no "environment.py" (like the one in test/ , or the official tutorial's first demo), then this exec_file will raise error.
maybe change to if file exist: exec_file(file) ?

Great question, I would love to help you, but I do not remember why I did that change...  As far as I can remember, this code was a copy from behave internal logic.
Would you mind to make a PR with the changes after you check it locally? 🙇♂


Adding "unwindPath" option that enables data transformation prior to …

…writing CSV similar to MongoDB's $unwind operation
I've leveraged Lodash's cloneDeep function to minimize the amount of code change but it's slightly inefficient.  Let me know what you think!

Coverage remained the same at 100.0% when pulling 33045bda6a9f31c78c40d394491069313d79e64a on jonathan-fulton:master into ab3865d375edceef91bca66a3d6eabfe6c033efa on zemirco:master.

Related Issue: #139

I would like to review the PR since I started the conversation, however it won't be possible till next Monday. If this is too much delay feel free to go ahead and continue without me. Otherwise would be good if you can leave it opened so I can also test it.

No problem

Coverage remained the same at 100.0% when pulling 1ae6ae1e53d607bcc834a04666f46175f4c08f4e on jonathan-fulton:master into ab3865d375edceef91bca66a3d6eabfe6c033efa on zemirco:master.

@dciccale, did you have a chance to take a look yet?

I'll be merging this tomorrow, so let me know.

yes, looks good!

Released as v3.7.0

Awesome, thanks guys!

This option is very cool - thank you!
Right now this option supports only one field - any suggestions how I could "unwind" multiple  fields?


Preference window labels can now be clicked to toggle their inputs. Updated GMS2 theme.

Ah, so that's why labels weren't working.


About the auto-deploy.sh -- grpc instalment

Is your feature request related to a problem? Please describe.
When the auto-deploy.sh comes to compile the grpc, it can attend the "third_party/protobuf", but there are no files inside and the following commands will get error;
'''
cd third_party/protobuf
./autogen.sh
./configure --prefix=$dir/third_party
'''
the printout of these three lines command is shown below;
[INSTALL] Installing grpc protoc plugins
[INSTALL] Installing root certificates
third_party/protobufdata/projects/fate/storage-service-cxx/third_party/grpc# cd
d_party/protobuf# ./autogen.shcts/fate/storage-service-cxx/third_party/grpc/third
bash: ./autogen.sh: No such file or directory
d_party/protobuf# ./configure --prefix=/data/projects/fate/third_party/grpc/third
bash: ./configure: No such file or directory
d_party/protobuf# maketa/projects/fate/storage-service-cxx/third_party/grpc/third
make: *** No targets specified and no makefile found.  Stop.
d_party/protobuf# make checkjects/fate/storage-service-cxx/third_party/grpc/third
make: *** No rule to make target 'check'.  Stop.
d_party/protobuf# make installcts/fate/storage-service-cxx/third_party/grpc/third
make: *** No rule to make target 'install'.  Stop.
d_party/protobuf# cd /data/projects/fate/storage-service-cxx/ird_party/grpc/third
cts/fate/third_party/* ./third_party/e/storage-service-cxx# rsync -a /data/proje
(base) root@lxy-PA:/data/projects/fate/storage-service-cxx#
Describe the solution you'd like
Are there some matter with the auto-deploy.sh file? Thanks

Did you execute "git submodule update --init --recursive"?Chek if the folder "third_party/protobuf" is empty first.

Hi, the instruction said that this command can be replaced by download
"the list of glog-0.4.0、grpc-1.19.1、boost-1.68.0、lmdb-0.9.22、protobuf-3.6.1 yourself if conditions permit."
By downloading this git respositories, the protobuf directory also have many files.

@paulbaogang
Hi, the instruction said that this command can be replaced by download
"the list of glog-0.4.0、grpc-1.19.1、boost-1.68.0、lmdb-0.9.22、protobuf-3.6.1 yourself if conditions permit."
By downloading this git respositories, the protobuf directory also have many files.

Hello,I hava know your problem,when you download these modules,they also have many sub-modules.So the solution is execute "git submodule update --init --recursive" angin.You can try it.

Ok, I get it. Thank you very much!!
@paulbaogang
And I have observed that the "auto-deploy.sh" will deploy both the  and . In that case, is that correct that I can just run the "auto-deploy.sh" just unilaterally?
What's the exact difference between the unilateral deployment and bilateral deployment?

Hi @paulbaogang
When I am running to install the git submodule in "grpc" the submodule
'third_party/libFuzzer'
is failed due to the timeout. And I find that it is due to the "Proxy" as shown below
"fatal: unable to access 'https://chromium.googlesource.com/chromium/llvm-project/llvm/lib/Fuzzer/': Failed to connect to chromium.googlesource.com port 443: Connection timed out"
I am not sure if I can download the 'https://chromium.googlesource.com/chromium/llvm-project/llvm/lib/Fuzzer/' and move it to the "third_party/libFuzzer". Do you guys also meet this problem before?
Thank you very much

Ok, I get it. Thank you very much!!
@paulbaogang
And I have observed that the "auto-deploy.sh" will deploy both the and . In that case, is that correct that I can just run the "auto-deploy.sh" just unilaterally?
What's the exact difference between the unilateral deployment and bilateral deployment?

Hello@YangjieZhou
Thank you for your question.
You can think of both sides of FATE as servers and clients. When you need to cooperate with servers, you can use one-sided deployment on both sides respectively. When you can deploy both servers and clients at the same time, you can use bilateral deployment.

Hi @paulbaogang
When I am running to install the git submodule in "grpc" the submodule
'third_party/libFuzzer'
is failed due to the timeout. And I find that it is due to the "Proxy" as shown below
"fatal: unable to access 'https://chromium.googlesource.com/chromium/llvm-project/llvm/lib/Fuzzer/': Failed to connect to chromium.googlesource.com port 443: Connection timed out"
I am not sure if I can download the 'https://chromium.googlesource.com/chromium/llvm-project/llvm/lib/Fuzzer/' and move it to the "third_party/libFuzzer". Do you guys also meet this problem before?
Thank you very much
I think there may be some problems with your download source. I suggest that you download it and execute "git submodule update -- init -- recursive" directly under the FATE directory.

Hi @paulbaogang
When I am running to install the git submodule in "grpc" the submodule
'third_party/libFuzzer'
is failed due to the timeout. And I find that it is due to the "Proxy" as shown below
"fatal: unable to access 'https://chromium.googlesource.com/chromium/llvm-project/llvm/lib/Fuzzer/': Failed to connect to chromium.googlesource.com port 443: Connection timed out"
I am not sure if I can download the 'https://chromium.googlesource.com/chromium/llvm-project/llvm/lib/Fuzzer/' and move it to the "third_party/libFuzzer". Do you guys also meet this problem before?
Thank you very much

Hi @YangjieZhou
This download source may have problems. You can try to download and put it in the corresponding directory by yourself, or I have downloaded packages that can be sent to you.

@paulbaogang
Thank you for the detailed answer. As for the one-sided deployment on both sides respectively.

Should the configuration file in /data/projects/FATE/cluster-deploy/scripts/configurations.sh be the same in both sides?
And If it shouldn't, this file in two sides should be reversed and which "IP address" should be regarded as the PartyA?
should each sides both run the "auto-deploy.sh" for the unilateral deployment?

It is really kind of you thanks.

@paulbaogang
Thank you for the detailed answer. As for the one-sided deployment on both sides respectively.

Should the configuration file in /data/projects/FATE/cluster-deploy/scripts/configurations.sh be the same in both sides?
And If it shouldn't, this file in two sides should be reversed and which "IP address" should be regarded as the PartyA?
should each sides both run the "auto-deploy.sh" for the unilateral deployment?
0
It is really kind of you thanks.

Hello @YangjieZhou
If you deploy only one side, the configuration file  in /data/projects/FATE/cluster-deploy/scripts/configurations.sh should have only one configuration, not two, just like Federation 0, without Federation 1. Similarly, if you need to deploy two parties, there should be Federation 0, Federation 1;if you need to deploy three parties, there should be Federation 0, Federation 1 and Federation 2. Like this.
Thank for you question.

@YangjieZhou
您好，我和你一样在研究，微众的在线学习，怎么运行，
测试了下
sh run_logistic_regression_cluster.sh guest $jobid $guestpartyid $hostpartyid $arbiterpartyid 方式
也是失败了的，失败原因也是数据交互的服务没运行起来，我仔细的查看了代码，也没有找到运行服务的程序。
看了下您问的问题，感觉您应该也在测同样的流程，想问问您，您成功了吗？
测试版的没成功的话，后来测试的auto-deploy 成功了吗？
非常期待您的回复！


Bug/wildcard in variants

Codecov Report
Patch coverage: 100.00% and project coverage change: +0.01 :tada:

Comparison is base (917e6a2) 96.89% compared to head (d311604) 96.90%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #57      +/-   ##
==========================================
+ Coverage   96.89%   96.90%   +0.01%
==========================================
  Files          58       58
  Lines        2353     2361       +8
==========================================
+ Hits         2280     2288       +8
  Misses         73       73

Impacted Files
Coverage Δ

src/dynamicprompts/__init__.py
100.00% <100.00%> (ø)

src/dynamicprompts/commands/variant_command.py
98.11% <100.00%> (+0.15%)
:arrow_up:

src/dynamicprompts/samplers/combinatorial.py
98.79% <100.00%> (-0.02%)
:arrow_down:

src/dynamicprompts/samplers/cycle.py
96.29% <100.00%> (-0.07%)
:arrow_down:

src/dynamicprompts/samplers/random.py
97.67% <100.00%> (-0.06%)
:arrow_down:

tests/test_sd_issues.py
100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


⚠ RbxVeri has degraded performance

In 086c2e1, RbxVeri (https://verify.triza.dev) experienced degraded performance:

HTTP code: 200
Response time: 1047 ms

Resolved: RbxVeri performance has improved in 077763f.


[Bug]  SPARQL access to queryid header leads failed search

Description
Attempting to run graph-explorer on a sparql endpoint specifically https://beta.sparql.swisslipids.org fails in firefox due to an
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://beta.sparql.swisslipids.org/sparql. (Reason: header ‘queryid’ is not allowed according to header ‘Access-Control-Allow-Headers’ from CORS preflight response)

queryid is not a standard header and the code should expect that no access is possible.
Environment

OS: Rocky Linux 9+
Browser:firefox 115.10
Graph Explorer Version: git commit 4f740ecb41387fc60bbf047397f5db6d6a954048
Graph Database & Version: RDF4j native, with a custom frontend

Steps to Reproduce
Add a database https://beta.sparql.swisslipds.org sync, and then open the explorer for the dataset /explorer/#/graph-explorer
search for "15-methylhexadecasphinganine" see failure message red box and CORS failures in the firefox console.
Expected Behavior
A successful  search

[!IMPORTANT]
If you are interested in working on this issue or have submitted a pull request, please leave a comment.
The queryid is an interesting header to add, so I will add this to our endpoints and reproducing this in the future might be hard.

I am trying to have a look at the code to see if I can suggest a patch.

I am trying to have a look at the code to see if I can suggest a patch.

Possibly related to #364

@JervenBolleman Can you try using Graph Explorer with the proxy server?
You can refer to the notes in this comment for some basic instructions:
https://github.com/aws/graph-explorer/issues/364#issuecomment-2107936217

ok, I was able to get https://beta.sparql.swisslipids.org/ working locally with the proxy server. It did require some code changes around how the proxy server is constructing the request. The big one was adding the Accept: 'application/json' to the header.

@JervenBolleman Can you try my branch and configuration settings to see if it works for you?

https://github.com/aws/graph-explorer/pull/395

I'm sorry, I closed this prematurely.

@kmcginnes thank you. This works nicely with the proxy. I am still going to make this work without the proxy out of the box by adding the expected required headers to our endpoints.


promptHelp does nothing

I'm using default everything and when doing some thing like this promptHelp is not replaced by the default prompt text :
this.$dialog
.prompt({
    title: "some title",
    body: "some body link",
    promptHelp: "No matter what i put here it is not displayed"
},{ html: true })
.then((dialog)=>{console.log(dialog.data)})
.catch(()=>{})

Here is a workaround option
this.$dialog.globalOptions.promptHelp = 'Your text'

it work if you put it in second arguments

Could you write it in docs?

+1 please update the documentation. This was frustrating to figure out since the documentation has the promptHelp listed in the first argument.

promptHelp passed as options in the second argument doesn't even work for me in 1.4.0 or 1.4.1.