New WhiteSpace.PrecisionAlignment sniff for Core

This sniff complements the upstream Generic.WhiteSpace.DisallowSpaceIndent sniff.
The Generic.WhiteSpace.DisallowSpaceIndent sniff makes sure that tabs are used for indentation instead of spaces.
However, the sniff allows for precision alignment of # spaces < tab_width.
In WP it is not customary to use precision alignment, though there are a few exceptions where it is used intentionally.
This means that precision alignment can not be auto-fixed.
We can, however, throw a warning when precision alignment is detected which is what this sniff implements.
Notes:

This sniff will detect precision alignment in PHP, JS as well as CSS files.
The sniff adds a new precision alignment whitelist comment.
The sniff will handle the "space before star"precision alignment for comments without issue.
The sniff adds a new custom property which allows users to pass an array of tokens to ignore for the purposes of this sniff. By default nothing is ignored.

Includes unit tests.
I've added the sniff to the Core ruleset as this is one of the issues which came out of the initial review of auto-fixed core files.
A run of the sniff over the /src/ directory of core (using the current phpcs.xml.5.dist basis) results in 281 infractions in 68 files. See the attachment for details:
20170809-precision-alignment.txt
A visual inspection shows no false positives and that nearly all of the infractions found should be corrected. There are only very few, where by the looks of it, the precision alignment was actually intended as such.
/cc @pento
Fixes #983

To do once the sniff is merged:

[ ] Add the new whitelist flag to the wiki page.
[ ] Add the new property to the wiki page.

Out of interest would code like this be affected by this sniff?
add_action( 'script_loader_src', array( $this, 'block_script_load'   ),  100 );
add_action( 'admin_init',        array( $this, 'remove_update_crons' )       );

@grappler No, I don't think so. It only checks alignment at the start of the line, i.e., after any indentation, but before any other code.

Out of interest would code like this be affected by this sniff?

@grappler What @JDGrimes said :wink:

Just checking: this one is waiting on @pento's opinion before merge ?

👍🏻 on throwing the warning, I'll trust y'all on the quality of the PR. 🙂


node.js v12 not compiling

$ uname -a
Darwin Brandons-MacBook-Pro-2.local 19.3.0 Darwin Kernel Version 19.3.0: Thu Jan  9 20:58:23 PST 2020; root:xnu-6153.81.5~1/RELEASE_X86_64 x86_64

$ node -v
v12.16.0

Brandons-MacBook-Pro-2:bluetooth-can brandonros$ npm add noble

><EMAIL_ADDRESS>install /Users/brandonros/Desktop/bluetooth-can/node_modules/xpc-connection
> node-gyp rebuild

  CXX(target) Release/obj.target/binding/src/XpcConnection.o
../src/XpcConnection.cpp:26:77: error: too few arguments to function call, single argument 'context' was not specified
  target->Set(Nan::New("XpcConnection").ToLocalChecked(), tmpl->GetFunction());
                                                          ~~~~~~~~~~~~~~~~~ ^
/Users/brandonros/Library/Caches/node-gyp/12.16.0/include/node/v8.h:6126:3: note: 'GetFunction' declared here
  V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction(
  ^
/Users/brandonros/Library/Caches/node-gyp/12.16.0/include/node/v8config.h:368:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
#define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
                              ^

$ npm add noble 2>&1 | grep error
../src/XpcConnection.cpp:26:77: error: too few arguments to function call, single argument 'context' was not specified
../src/XpcConnection.cpp:103:54: error: too few arguments to function call, single argument 'context' was not specified
../src/XpcConnection.cpp:113:40: error: no matching member function for call to 'ToObject'
../src/XpcConnection.cpp:115:78: error: too few arguments to function call, expected 2, have 1
../src/XpcConnection.cpp:123:40: error: no matching member function for call to 'ToObject'
../src/XpcConnection.cpp:135:40: error: no matching member function for call to 'GetPropertyNames'
../src/XpcConnection.cpp:143:79: error: no matching member function for call to 'ToString'

"dependencies": {
    "noble": "^1.9.1",
    "xpc-connection": "sandeepmistry/node-xpc-connection#pull/26/head"
  },
  "resolutions": {
    "xpc-connection": "sandeepmistry/node-xpc-connection#pull/26/head"
  }


Enable Vercel CI tests

We have Vercel CI tests, but they have been disabled because something broke. Let's work on re-enabing them.

@giovannibenussi do you mind sharing a bit of context why you disabled them?
Unfortunately the CI logs are not available anymore, and it will be kinda hard to debug as a non-contributor (CI run needs approve).


Avoid use after free on kept-alive views

save all nodes related to each view in a set
set to null the instance of every node when releasing the underlying view
add dispose() on the node object, to avoid keeping them alive forever if the view is never released

<EMAIL_ADDRESS>


possible to use a local model file?

Hi,
I would like to give this library a try but w/o to use any cloud services for the time being. What do I need to do to use it with local model files? Thanks in advance, Henrik

⚠ Do not edit this section. It is required for imodeljs.github.io ➟ GitHub issue linking

LINK: Developing-a-web-viewer---iTwin.js-link-to-docs
TAG: imodeljs-docs-question
SOURCE: https://www.itwinjs.org/learning/tutorials/develop-web-viewer/

If you go back to the tutorials page you'' find tutorials for creating a local iModel and building a desktop (offline) viewer.


ControllerName validation helper

What would you like to be added:
The GatewayClass ControllerName validation is enforced at the CRD level through the following regex:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*\/[A-Za-z0-9\/\-._~%!$&'()*+,;=:]+$
Since the controllerName is a field that may be used by the implementations to check that the GatewayClass has to be reconciled by the controller itself, it would be beneficial to provide a helper for checking its validity. This helper could be added under apis/v1beta1/validation or apis/v1beta1/util/validation
Why this is needed:
This is needed to provide a helper to check the ControllerName validity by the various implementations.

/assign


[Backport 2.14] [Tiered Caching] Adds stats implementation for TieredSpilloverCache

Original PR: https://github.com/opensearch-project/OpenSearch/pull/13236
2.x backport PR: https://github.com/opensearch-project/OpenSearch/pull/13520
Description
As part of tiered caching stats, integrates stats with TieredSpilloverCache. This TieredSpilloverCacheStatsHolder implementation is aware of the tier concept and will support aggregating the TSC's stats by tier as well as any other dimension values that are passed into it. It overrides some incrementing logic from DefaultCacheStatsHolder so it can properly combine heap and disk tier stats into stats for the cache as a whole.
TieredSpilloverCache tracks its own stats, rather than pulling stats from its tiers, because its getOrCompute() implementation can cause double-counting of a single hit or miss. To avoid redundancy, the individual tiers do not track their stats when they're part of TieredSpilloverCache.
Related Issues
Followup to https://github.com/opensearch-project/OpenSearch/pull/12531.
Check List

[x] New functionality includes testing.

[x] All tests pass

[x] New functionality has been documented.

[x] New functionality has javadoc added

[x] Failing checks are inspected and point to the corresponding known issue(s) (See: Troubleshooting Failing Builds)
[x] Commits are signed per the DCO using --signoff
[x] Commit changes are listed out in CHANGELOG.md file (See: Changelog)
~- [N/A] Public documentation issue/PR created~

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.

@dblock @VachaShah @msfroh @andrross @reta Would any of you be able to approve this backport PR?


JBPM-5387: Stunner integration into KIE and Drools Workbenches.

Some minor things to achieve a better integration into KIE and Drools workbenches.
See https://issues.jboss.org/browse/JBPM-5387

Tested together with https://github.com/droolsjbpm/kie-wb-distributions/pull/386  and looks good
+1

Hi @csadilek , thanks for the review! Good point on the callbacks, I have changed the behavior, the callbacl instance should never be null, that's really better, thanks! :)

Jenkins please retest this.

+1


Implement parameter defaults and slurpy parameters in 007 itself

The original idea was that we'd be able to do this complete from the "outside", in userland, by providing a custom binder. (See #112.) That's still a possibility... but as a stepping stone we can simply model things in the implementation without exposing them in the language syntax, and then switching on the proper syntax in a 007-level module (which we can also fake as a pragma/flag initially).
I didn't include optional parameters in the list of things we should model, because when I think about it, an optional parameter is simply a parameter with a default None.
Also, worth keeping in mind that in the general case, a parameter default is a closure, not a value. The closure should close over the parameters declared so far.
Among the builtins,

prompt could benefit from having its msg parameter default to ""
substr could benefit from having its chars parameter default to self.chars

(showing that the parameter default ought to be a closure that closes on self)
obviating prefix and suffix on Str — see #113 — though we might decide to keep them around

say could benefit — aw, that'd be nice! — from having a slurpy parameter

As part of this, we might want to finally separate a Parameter type from Q::Parameter, which is a bit misplaced in Sub, to be honest. (Cf #253.)
(I almost labeled this one "low-hanging fruit", but it might have unintended consequences, who knows.)

I realize I would also like concat to be a builtin function (again), rather than a method on Array. The main reason is that I would prefer it to take a variable number of arrays (or rather iterables), and then it looks kind of lopsided to have it as a method on the first array.
Kthx.


I'm trying to build raylib simple demo using Archlinux I got this message

make PLATFORM=PLATFORM_ANDROID
make -f Makefile.Android
make[1]: Entering directory '/home/gerardo/repos/raylib/templates/simple_game'
Makefile.Android:144: *** missing separator.  Stop.
make[1]: Leaving directory '/home/gerardo/repos/raylib/templates/simple_game'
make: *** [Makefile:360: all] Error 2

https://stackoverflow.com/questions/16931770/makefile4-missing-separator-stop
This might help you?
Is this your own makefile?

It happens on this directory /home/gerardo/repos/raylib/templates/simple_game
simple_game $ tree
.
├── Makefile
├── Makefile.Android
├── Makefile.Android.linux
└── simple_game.c
It's not my own makefile
OUTPUT:
simple_game $ make PLATFORM=PLATFORM_ANDROID
make -f Makefile.Android
make[1]: Entering directory '/home/gerardo/repos/raylib/templates/simple_game'
if not exist android.simple_game mkdir android.simple_game
/bin/sh: -c: line 1: syntax error: unexpected end of file
make[1]: *** [Makefile.Android:144: create_temp_project_dirs] Error 1
make[1]: Leaving directory '/home/gerardo/repos/raylib/templates/simple_game'
make: *** [Makefile:361: all] Error 2
Makefile.Android content line 144:
create_temp_project_dirs:
if not exist $(PROJECT_BUILD_PATH) mkdir $(PROJECT_BUILD_PATH)
if not exist $(PROJECT_BUILD_PATH)\obj mkdir $(PROJECT_BUILD_PATH)\obj
if not exist $(PROJECT_BUILD_PATH)\src mkdir $(PROJECT_BUILD_PATH)\src
if not exist $(PROJECT_BUILD_PATH)\src\com mkdir $(PROJECT_BUILD_PATH)\src\com
if not exist $(PROJECT_BUILD_PATH)\src\com$(APP_COMPANY_NAME) mkdir $(PROJECT_BUILD_PATH)\src\com$(APP_COMPANY_NAME)
if not exist $(PROJECT_BUILD_PATH)\src\com$(APP_COMPANY_NAME)$(APP_PRODUCT_NAME) mkdir $(PROJECT_BUILD_PATH)\src\com$(APP_COMPANY_NAME)$(APP_PRODUCT_NAME)
if not exist $(PROJECT_BUILD_PATH)\lib mkdir $(PROJECT_BUILD_PATH)\lib
if not exist $(PROJECT_BUILD_PATH)\lib$(ANDROID_ARCH_NAME) mkdir $(PROJECT_BUILD_PATH)\lib$(ANDROID_ARCH_NAME)
if not exist $(PROJECT_BUILD_PATH)\bin mkdir $(PROJECT_BUILD_PATH)\bin
if not exist $(PROJECT_BUILD_PATH)\res mkdir $(PROJECT_BUILD_PATH)\res
if not exist $(PROJECT_BUILD_PATH)\res\drawable-ldpi mkdir $(PROJECT_BUILD_PATH)\res\drawable-ldpi
if not exist $(PROJECT_BUILD_PATH)\res\drawable-mdpi mkdir $(PROJECT_BUILD_PATH)\res\drawable-mdpi
if not exist $(PROJECT_BUILD_PATH)\res\drawable-hdpi mkdir $(PROJECT_BUILD_PATH)\res\drawable-hdpi
if not exist $(PROJECT_BUILD_PATH)\res\values mkdir $(PROJECT_BUILD_PATH)\res\values
if not exist $(PROJECT_BUILD_PATH)\assets mkdir $(PROJECT_BUILD_PATH)\assets
if not exist $(PROJECT_BUILD_PATH)\assets$(PROJECT_RESOURCES_PATH) mkdir $(PROJECT_BUILD_PATH)\assets$(PROJECT_RESOURCES_PATH)
if not exist $(PROJECT_BUILD_PATH)\obj\screens mkdir $(PROJECT_BUILD_PATH)\obj\screens
$(foreach dir, $(PROJECT_SOURCE_DIRS), $(call create_dir, $(dir)))
What is wrong here

Here the files
files.zip

Hi @gerardogc2378! Unfortunately at this moment Android Makefile only works on Windows host, some of the command-line functions called are Windows-only.
Supporting Linux requires rewriting some parts of that Makefile.

Hey @raysan5 I am trying to understand this output:
/home/gerardo/android_home/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64//bin/aarch64-linux-android29-clang -o android.simple_game/lib/arm64-v8a/libmain.so  android.simple_game/obj/simple_game.o -shared -I. -I/home/gerardo/repos/raylib/src -I/home/gerardo/repos/raylib/src/external/android/native_app_glue -Wl,-soname,libmain.so -Wl,--exclude-libs,libatomic.a -Wl,--build-id -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--warn-shared-textrel -Wl,--fatal-warnings -u ANativeActivity_onCreate -L. -Landroid.simple_game/obj -Landroid.simple_game/lib/arm64-v8a -L/home/gerardo/android_home/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64//sysroot/usr/lib/aarch64-linux-android -lm -lc -lraylib -llog -landroid -lEGL -lGLESv2 -lOpenSLES -ldl
/home/gerardo/android_home/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64//bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: skipping incompatible android.simple_game/lib/arm64-v8a/libraylib.so when searching for -lraylib
/home/gerardo/android_home/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64//bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: android.simple_game/lib/arm64-v8a/libraylib.a(core.c.o): unable to initialize decompress status for section .debug_info
/home/gerardo/android_home/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64//bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: android.simple_game/lib/arm64-v8a/libraylib.a(core.c.o): unable to initialize decompress status for section .debug_info
android.simple_game/lib/arm64-v8a/libraylib.a: error adding symbols: File format not recognized
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [Makefile.Android:347: compile_project_code] Error 1
make[1]: Leaving directory '/home/gerardo/repos/raylib/templates/simple_game'
make: *** [Makefile:360: all] Error 2
The issue is with this line:
/home/gerardo/android_home/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64//bin/aarch64-linux-android29-clang -o android.simple_game/lib/arm64-v8a/libmain.so  android.simple_game/obj/simple_game.o -shared -I. -I/home/gerardo/repos/raylib/src -I/home/gerardo/repos/raylib/src/external/android/native_app_glue -Wl,-soname,libmain.so -Wl,--exclude-libs,libatomic.a -Wl,--build-id -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--warn-shared-textrel -Wl,--fatal-warnings -u ANativeActivity_onCreate -L. -Landroid.simple_game/obj -Landroid.simple_game/lib/arm64-v8a -L/home/gerardo/android_home/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64//sysroot/usr/lib/aarch64-linux-android -lm -lc -lraylib -llog -landroid -lEGL -lGLESv2 -lOpenSLES -ldl

@raysan5 I am using:

Path
Version
Description
Location

build-tools;29.0.0
29.0.0
Android SDK Build-Tools 29
build-tools/29.0.0/

ndk-bundle
20.1.5948944
NDK
ndk-bundle/

patcher;v4
1
SDK Patch Applier v4
patcher/v4/

platform-tools
29.0.5
Android SDK Platform-Tools
platform-tools/

platforms;android-29
4
Android SDK Platform 29
platforms/android-29/

tools
26.1.1
Android SDK Tools 26.1.1
tools/

android.simple_game/lib/arm64-v8a/libraylib.a: error adding symbols: File format not recognized

It seems you are trying to link with a wrong version of libraylib.a, maybe it's not x64.

So happy that Arch users always mention that they use arch in the issue title ;p

@raysan5 Is there any plan to switch to CMake or extend the Makefile to work on Linux?

@ha11owed I use Linux almost exclusively, the Makefile supplied works really well !
no need to automagically create Makefiles 1,000's of lines (what could possibly go wrong....), but the CmakeList.txt file is already there, if you must!
most of my projects on bedroomcoders.co.uk use a boiler plate Makefile to compile the project, you just have to modify the Makefile to point at your pre-compiled raylib.... (it automatically detects sources in the src folder and compiles them into your application...)

@chriscamacho I agree that compiling raylib to android works well. Only the 3 projects from the templates folder have issues compiling on android from Linux due to the use of windows only commands or command parameters (copy \Y, xcopy, if not exist, del /f /s /q, rmdir /s /q)
But I guess you are right, its easier to create an Android project in Android Studio and create a makefile from scratch.


Product Validation

As a developer
I need to verify the product information
So that the product information is valid and will not cause error to the database
Details and Assumptions

Product details(ID, Name, Price, Description, Picture)

Acceptance Criteria
Given a product information
When a new product is created or edited and before the information is written into the database
Then check if it has a unique ID, a valid name, a valid price, a valid description, and a valid picture.

The details and assumptions section could be more specific like what's the invalid input format.


Add vcpkg.exe to system path when running .\bootstrap-vcpkg.bat

Can't access vcpkg cmdlet unless I'm inside the repo folder.
Steps to reproduce:

set up vcpkg up to the use-wide integration (included)
change directory run vcpkg install any_library

Bug:
Command not found. (see error message below)(this was with powershell)
vcpkg : The term 'vcpkg' is not recognized as the name of a cmdlet, function, script file, or operable program. Check
the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ vcpkg install devil enet glew sdl2
+ ~~~~~
    + CategoryInfo          : ObjectNotFound: (vcpkg:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Expected:
The installation of the library should succeed.

And what happens if you have two repositories with vcpkg?
At the moment I've cloned this vcpkg repository, and I've another one that's my fork. Since I run bootstrap often in order to check issues, what should it do? Add the path every time? Check every path in %PATH% see if vcpkg is in them and update it? How it manages more repositories?
And more, what's the scope of using vcpkg outside its folder?
I don't like to pollute %PATH%, so in my opinion  it shouldn't be added automatically. You can change %PATH% environment variable by yourself. In my opinion is the simplest solution.

Well it should only do it for production code and not for development code, but that restricts a lot the use of vcpkg to people that like to handle things in details not for the others that don't want to bother with those.

@jepessen I think it is good when we call integrate command, I think in integration command we need to add vcpkg to global system path.

Add vcpkg.exe to system path when running .\bootstrap-vcpkg.bat

Or you know, you could just use the full path...

Alternatively, an alias can be written in the profile file. Like what the Integrate command does. This is how I "fixed" it.

Duplicated to https://github.com/microsoft/vcpkg/issues/16445.


Version 2.0

Currently working on a larger release of Parchment that will include the following features:

[x] Remove the need for generics  (#285)
Removing the generic type on PagingViewController will clean up the API quite a lot. The delegate and data sources are currently a bit awkward because of the generic types. You still need to force cast the type, so the benefit of using generic is mostly for the internal implementation.

[x] Remove FixedPagingViewController (#304, #305)
One benefit of removing generics is that we can replace FixedPagingViewController with a init(viewControllers:) directly on PagingViewController.

[x] Allow menu to be used as a standalone component (#379)
Having the menu as a separate component allows you to use it without having to use a PageViewController for your content. For instance, this allows you to use menu alongside a UITableView (like Fantastical), or use your own custom page view controller implementation.

[x] Add support for multiple cells types (#390)
Without generics, we are no longer tied to a specific PagingItem type. This mean we can add support for registering different cell types for different PagingItem types. This would make it much cleaner to add buttons, loading indicators etc. to the menu collection view.

[x] Documentation
Document breaking changes and create upgrade guide.

Hi @rechsteiner
For 2.0, I found a bug whereas when there are two few paging items, there is no animation when changing pages. I dug in and found out it's because of
if collectionView.contentSize.width >= collectionView.bounds.width && state.progress != 0 {
I was thinking of fixing by always having the content offset be .zero if the content size width is less than the width of the collection view.
What are your thoughts?
Cheers,
Tosin

Hi @TosinAF! Thanks for the feedback. I've been a bit busy lately so I haven't had time to focus on the 2.0 refactor, but I'm planning on finishing it up soon. Need to look a bit more into your suggestion, bit it seems like that should work 🙂

@TosinAF could you provide some more details on how I can reproduce this? I was looking into this now, but it seems to work fine for me.

Version 2.0 is now available as a beta release 🥳
https://github.com/rechsteiner/Parchment/releases/tag/v2.0.0-beta

Version 2.0 is now released! Let me know if you find any issues.


Extend the support of the exponential distribution to include 0

The support of the Exponential Distribution includes 0. However in tensorflow (v1.8 compiled from source on ubuntu 16.04 using the cpu) it does not. Example:
import tensorflow as tf
exp = tf.distributions.Exponential(rate=1./2.)
llh = exp.log_prob(value=0.)

with tf.Session() as sess:
    print(sess.run(llh))

Result:
nan
In that case Tensorflow differs to scipy's behaviour:
import scipy as sp
sp.stats.expon(scale=2.).logpdf(0.)

Result:
-0.6931471805599453
Would be great to adopt scipy's behaviour. Thank you
EDIT:
Have I written custom code: No
OS Platform and Distribution: Ubuntu 16.04
TensorFlow installed from: source
TensorFlow version: 1.8.0
Bazel version: Build label: 0.11.1
CUDA/cuDNN version: -/- (using CPU)
GPU model and memory: - (using CPU)
Exact command to reproduce: see above
Python:  3.6.3

Thank you for your post. We noticed you have not filled out the following field in the issue template. Could you update them if they are relevant in your case, or leave them as N/A? Thanks.
Have I written custom code
OS Platform and Distribution
TensorFlow installed from
TensorFlow version
Bazel version
CUDA/cuDNN version
GPU model and memory
Exact command to reproduce

It has been 15 days with no activity and the awaiting response label was assigned. Is this still an issue?

It has been 15 days with no activity and the awaiting response label was assigned. Is this still an issue?

Nagging Assignee @jvdillon: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @jvdillon: It has been 29 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @jvdillon: It has been 44 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

+bayesflow-team<EMAIL_ADDRESS>On Sat, Sep 15, 2018, 11:49 AM Alfred Sorten Wolf<EMAIL_ADDRESS>wrote:

Nagging Assignee @jvdillon https://github.com/jvdillon: It has been 44
days with no activity and this issue has an assignee. Please update the
label and/or status accordingly.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/20737#issuecomment-421615391,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABtim8uJqSI1B9uPj0e53bip0xbxsXbbks5ubUu-gaJpZM4VM1KH
.

Nagging Assignee @jvdillon: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @jvdillon: It has been 29 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @jvdillon: It has been 44 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @jvdillon: It has been 59 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @jvdillon: It has been 74 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

@aboettcher,
Your code works fine using Tensorflow Probability (tfp) . Please find the Gist of the Working Code. Thanks!


chore(authenticator): Require screenshot verification as a check task

[x] PR conforms to Pull Request guidelines.

Issue #, if available:
Description of changes:
Noticed that our stored screenshots are somewhat out of date - they weren't being updated when changed - so made the following changes:

Screenshots are now verified as part of the check task.
Stored screenshots are updated to match the current codebase.

How did you test these changes?

Verified that running ./gradlew build verifies that screenshots match

Documentation update required?

[x] No
[ ] Yes (Please include a PR link for the documentation update)

General Checklist

[ ] Added Unit Tests
[ ] Added Integration Tests
[ ] Security oriented best practices and standards are followed (e.g. using input sanitization, principle of least privilege, etc)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Are the spacing changes from the screenshot due to a default theme change, or had we modified those margins from the previous screenshots?

This changed with updating to Material3 1.1.0 - so back before our 1.0.0 release.


Add support for ppc64le and s390 archtectures.

This is a feature request to start providing binaries for ppc64le and s390x. This can be either a cross-compilation OR a Travis-CI integration, given that Travis supports all available architectures natively.

The cross-compile looks like it's working for these in container images in my local environment. I'll update the CI later on to get some edge builds out and cut a release in another day or two.

@rpsene have a look at the artifacts included in the latest GHA run: https://github.com/regclient/regclient/actions/runs/1118022705
Assuming those look good, I'll cut a new release in the next few days so they're easier to download.

Release v0.3.6 just went out with #74 which should resolve this. Thanks for the request!


Add example shaders_shapes_outline

@GoldenThumbs thank you very much! This exampke is a nice addition! 👍

what does it mean when an example is copyrighted by the submitter ?

@jamesl-github that the submitter is the original creator of the example.

that the submitter is the original creator of the example.

what I meant was how does that affect licensing
are all examples released under the same license as raylib ?
is it explicitly stated somewhere that any example you submit to raylib automatically acquires and falls under the raylib license ?
most licenses I see say "attribution required" or "attribution appreciated, but not required"
they also say things like "can be used in both commercial and non-commercial code with or without modification"
so I was wondering if the submitter retains all rights to the code or if the code acquires raylib's license

@jamesl-github Afaik, all contributed examples fall under the same license as raylib: zlib/libpng if nothing different is specified


Service gridboxconnector exited with code 1 (by signal 0)

Describe the bug what do have
addon stops to work basicly direct after start. happens since update to 2.5.7
wait time seems not to affect that.
happens on HAOS
Core 2024.5.5
Supervisor 2024.05.1
Operating System 12.3
Frontend 20240501.1
Log details
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service gridboxconnector: starting
s6-rc: info: service gridboxconnector successfully started
s6-rc: info: service legacy-services: starting
[12:08:25] INFO: Starting GridboxConnector...
s6-rc: info: service legacy-services successfully started
total 12K
     4 drwxr-xr-x    2 root     root        4.0K Jun  2 12:08 .
     4 drwxr-xr-x    1 root     root        4.0K Jun  2 12:08 ..
     4 -rw-------    1 root     root          94 Jun  2 12:08 options.json
{
  "username"<EMAIL_ADDRESS>  "password": "pw",
  "wait_time": 60
}total 16K
     4 drwxr-xr-x    1 root     root        4.0K Jun  1 05:32 .
     4 drwxr-xr-x    1 root     root        4.0K Jun  2 12:08 ..
     4 drwxr-xr-x    3 root     root        4.0K Jun  1 05:31 GridboxConnector
     4 -rw-r--r--    1 root     root         494 Jun  1 05:31 cloudSettings.json
/build
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/local/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/build/GridboxConnector/__main__.py", line 12, in <module>
    logger.setLevel(logging.getLevelName(os.getenv('LOG_LEVEL', 'INFO')))
  File "/usr/local/lib/python3.10/logging/__init__.py", line 1452, in setLevel
    self.level = _checkLevel(level)
  File "/usr/local/lib/python3.10/logging/__init__.py", line 198, in _checkLevel
    raise ValueError("Unknown level: %r" % level)
ValueError: Unknown level: 'Level null'
[12:08:25] INFO: Service gridboxconnector exited with code 1 (by signal 0)
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service gridboxconnector: stopping
s6-rc: info: service gridboxconnector successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service gridboxconnector: starting
s6-rc: info: service gridboxconnector successfully started
s6-rc: info: service legacy-services: starting
[12:13:46] INFO: Starting GridboxConnector...
s6-rc: info: service legacy-services successfully started
total 12K
     4 drwxr-xr-x    2 root     root        4.0K Jun  2 12:13 .
     4 drwxr-xr-x    1 root     root        4.0K Jun  2 12:13 ..
     4 -rw-------    1 root     root          95 Jun  2 12:13 options.json
{
  "username"<EMAIL_ADDRESS>  "password": "pw",
  "wait_time": 180
}total 16K
     4 drwxr-xr-x    1 root     root        4.0K Jun  1 05:32 .
     4 drwxr-xr-x    1 root     root        4.0K Jun  2 12:13 ..
     4 drwxr-xr-x    3 root     root        4.0K Jun  1 05:31 GridboxConnector
     4 -rw-r--r--    1 root     root         494 Jun  1 05:31 cloudSettings.json
/build
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/local/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/build/GridboxConnector/__main__.py", line 12, in <module>
    logger.setLevel(logging.getLevelName(os.getenv('LOG_LEVEL', 'INFO')))
  File "/usr/local/lib/python3.10/logging/__init__.py", line 1452, in setLevel
    self.level = _checkLevel(level)
  File "/usr/local/lib/python3.10/logging/__init__.py", line 198, in _checkLevel
    raise ValueError("Unknown level: %r" % level)
ValueError: Unknown level: 'Level null'
[12:13:47] INFO: Service gridboxconnector exited with code 1 (by signal 0)
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service gridboxconnector: stopping
s6-rc: info: service gridboxconnector successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped

Version
2.5.7

should fixed in 2.5.8


feat(): update to v4

By using next tag, This plugin can try to test on Capacitor 4.
% npm install @capacitor-community/screen-brightness@next

https://github.com/capacitor-community/screen-brightness/releases/tag/v2.0.0-0
However, this update was done automatically by @rdlabo/capacitor-plugin-to-v4  ,and has not been confirmed to work.
https://github.com/rdlabo-team/capacitor-plugin-to-v4
If you have any problems using it, please comment on this thread.
@maintainer Released with next tag to make the world compatible with Capacitor v4. Please check out this pull request and decide if you want to merge or not. Thanks for all your great work, and we look forward to working with you in the future.

any update on this?


LSP client that doesn't support any workspace capabilities will cause an error if the server is using workspace/workspaceFolders

If you create your server with let connection = createConnection(ProposedFeatures.all); and use a client that connects to it with only very rudimentary capabilities, an error will be thrown.
function initialize(id: number) {
  send(id, "initialize", {
    rootPath: process.cwd(),
    processId: process.pid,
    capabilities: {
      textDocument: {
        completion: {
          completionItem: {
            snippetSupport: true
          }
        }
      }
    }
  });
}

{
  jsonrpc: '2.0',
  id: 1,
  error: {
    code: -32603,
    message: 'Request initialize failed with message: Cannot read property \'workspaceFolders\' of undefined'
  }
}

This is because workspaceFolders.proposed.ts incorrectly assumes that clientCapabilities.workspace is set.
https://github.com/Microsoft/vscode-languageserver-node/blob/9059f83cd8fb25b4a0fe5429540c562aa899dc6e/server/src/workspaceFolders.proposed.ts#L23-L24
However, according to the protocol, that capability is optional as it is flagged with a ?.
interface ClientCapabilities {
	/**
	 * Workspace specific client capabilities.
	 */
	workspace?: WorkspaceClientCapabilities;

	/**
	 * Text document specific client capabilities.
	 */
	textDocument?: TextDocumentClientCapabilities;

	/**
	 * Experimental client capabilities.
	 */
	experimental?: any;
}

You can reproduce the problem with the following two files.
$ node bug.js
{ jsonrpc: '2.0',
  id: 1,
  error:
   { code: -32603,
     message: 'Request initialize failed with message: Cannot read property \'workspaceFolders\' of undefined' } }

server.js
var langserv = require(".");
let connection = langserv.createConnection(langserv.ProposedFeatures.all);
connection.listen();

bug.js
var langserv = require(".");
var cp = require("child_process");

let lspProcess = cp.fork("server.js", ["--node-ipc"]);
function send(method, params) {
    let message = {
        jsonrpc: "2.0",
        id: 1,
        method: method,
        params: params
    };
    lspProcess.send(message);
}
function initialize() {
    send("initialize", {
        rootPath: process.cwd(),
        processId: process.pid,
        capabilities: {}
    });
}
lspProcess.on('message', function (json) {
    console.log(json);
});
initialize();


bug: Inheritance breaks when intermediate class doesn't declare member

Description of the bug
During the inheriting of docstrings for a member, a direct parent class that doesn't have the member (e.g. meth) prevents a correct docstring inheritance from A.meth -> B.meth.
To Reproduce

Run inside this module's environment:
from griffe import Extensions, temporary_visited_package

from griffe_inherited_docstrings.extension import InheritDocstringsExtension

code = """
# Base docstrings.
class A:
    def meth(self):
        '''A.'''

class AB(A):
    # This shouldn't break the inherting of docstrings.
    pass

class B(AB):
    def meth(self):
        ...

"""
with temporary_visited_package(
        "package",
        modules={"__init__.py": code},
        extensions=Extensions(InheritDocstringsExtension(merge=True)),
    ) as package:
        assert package["B.meth"].docstring # already fails here
        assert package["B.meth"].docstring.value == package["A.meth"].docstring.value

Expected behavior

I expect the inheritance to work.
Environment information

Python: cpython 3.9.18 (/Users/XXXX/griffe-inherited-docstrings/.venv/bin/python)
Environment variables:
Installed packages:

griffe-inherited-docstrings v1.1.0+d20241029

I can work on a solution, if you want :)

Sure, that'd be great!


Fix focus on the Import Modal

Issue:
When a user opens the Import modal, uploads a file and exits out of the modal/closes it - then the focus is lost
Resolution:
Once a user exists out of the Import modal or closes it, then the focus should not be lost and should be retained on the Import button/option

-focus is retained on "Import Data" button after closing at any point in the import process
-fixed "setUpdateRelatedTables is not a function" after closing success modal from importing There should be no error when closing with either the "x" button or the "Ok" button

Testing complete, focus is now placed on import in all scenarios


Update README.md

cc @denhamparry

LGTM-M(obile)On May 3, 2023, at 6:29 AM, Lewis Denham-Parry @.***> wrote:
@denhamparry approved this pull request.
LGTM 👁 🦅 🥇
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because your review was requested.Message ID: @.***>


Make PEP517 the default on Python 3

Closes: #32

I just noticed I broke the ability to demand non-pep517 packages, and in particular broke split packages. Rather, my patch ended up setting the pep517 choice by the interpreter running the script.
Sorry for the breakage, I'm currently writing a fix.

BTW, note that PEP517 still means we need the build backend as a makedepend, but that was already true in the old method. Adding it to the patch as well.

Just realized split packages cannot have differing makedepends, so it is impossible to make the python 3 package be PEP517 while the python 2 package uses the old version.

Hrm. Ideally we'd want:

-p python3 implies --pep517, but can be overridden with --no-pep517
IS_PY2 implies --no-pep517, but can be overridden with --pep517
-p python2 and -p multi implie --no-pep517, and either warn+ignore --pep517, or error out.

Pretty complex logic, but seems doable. It does make my trick a little useless, though.


Add clamav

#23

sorry I dont know how to submit single PRs, they just stack on top of each other when I create them in Github.
The whitespaces are not by me, they are removed by me. I have no idea why they are there, but this gone after merging

sorry I dont know how to submit single PRs, they just stack on top of each other when I create them in Github.

Please review the git documentation.

The whitespaces are not by me, they are removed by me. I have no idea why they are there, but this gone after merging. I didnt actively remove anything, it was just like that and I dont really see adding random blanks or tabs to make it fit exactly

I am aware that the whitespaces are already there. Changes that modify whitespace unnecessarily will not be merged. Please remove them before submitting a pull request.

I will look into this.
Okay let me elaborate: I opened the config files in my editor and that was the result, I didnt even touch these lines often. Adding random whitespaces is weird, my version has no extra whitespaces so it should be just fine

so it should be just fine

No, it is not fine. Please do not keep arguing about this.

Apologies for the closure, I am rebasing the repo on top of startingpoint to get rid of the awful commit history. Better to do this now than after the project gains more traction


backstage: Init backstage plugin

Adds backstage plugin for headlamp, In the details view of a resource if the resource has labels related to backstage an Icon Button is added to open the corresponding backstage service. The plugin also provides a way to configure the backstage url for each cluster. If headlamp with this plugin is used as an iframe it sends a message to the parent window with the path to redirect to for the parent to handle and redirect.
Steps to test (Without running backstage):

Run the following command to create resources with backstage related labels

kubectl apply -f https://raw.githubusercontent.com/backstage/backstage/refs/heads/master/plugins/kubernetes-backend/examples/dice-roller/dice-roller-manifests.yaml

Run the backend,frontend and the backstage plugin.
Navigate to the plugin settings and configure URL and configure the value for the cluster to say http://google.com

Navigate to the detail view of any of the dice-roller resource, Click on the backstage button.

Click on the backstage button a new window should be opened with the following url
http://google.com/catalog/default/component/dice-roller

@yolossn , PTAL at my changes. I added the Backstage official logo too, but I am not entire sure. If we keep it, then please add it locally, for air-gapped envs: https://icon-sets.iconify.design/simple-icons/backstage/
Ashu can help if you need.

@yolossn , PTAL at my changes.

Looks good to me, there were a couple of lint errors, I have fixed them.

I added the Backstage official logo too, but I am not entire sure. If we keep it, then please add it locally, for air-gapped envs: https://icon-sets.iconify.design/simple-icons/backstage/ Ashu can help if you need.

Sorry I didn't get why this will be an issue for simple-icons? We use mdi icons in a similar fashion right.


♻(standalone_site) replace grommet Box component

Purpose
On standalone site only
In order to do the transition to the cunningham design system, we replace the grommet Box component.
Proposal

[x] create custom Box component
[x] replace occurrences of Box in standalone site

I see a problem with the menu (probably related to the fact that the boxes are not replaced in packages for now)
https://github.com/openfun/marsha/assets/720491/d938e775-c60e-4998-a939-608acc2c80d8

I see a problem with the menu (probably related to the fact that the boxes are not replaced in packages for now)
menu_overflow.mp4

I don't reproduce (Firefox / Chrome).

I have a white block at the top of the document as you can see on this screenshot

The footer color is not the same between master and your branch

I don't reproduce the white block when I am totally on the top.
About the color footer:  https://github.com/openfun/marsha/pull/2479/commits/4f8a6728031ea15093e15ffc4c01136890d50fd2


test with multiple libzmq repos

Allows verification that we are working with the maintenance branches. This would have caught bugs backported to 4.0.6.


Implementing logging best practices in the project

This PR is for implementing logging in the project using best practices.
Code should contain new feature to enable the verbose logging from the run script.

Release notes:

Implementing logging into the project
Using dynamic GitHub logging
Upgrading the logs with best practices


RangeError: Maximum call stack size exceeded

Angular version: 1.4.7
angular-bind-notifier version: 1.1.4 (also on 1.1.3 and master)

I'm currently optimizing a huge table with many nested ng-repeats which means the number of watchers grows exponentially with amount of data. Recently I changed all bindings to bind once, and used your cool little library to be able to refresh data in table and rebind one-time bindings when necessary (e.g. sorting).
Everything works fine unless the table is really huge (i.e. hundreds of rows), then I get this error:
RangeError: Maximum call stack size exceeded
    at wrap (http://localhost:5000/static/js/vendors/angular/angular-bind-notifier.js:20:46)
    at wrap (http://localhost:5000/static/js/vendors/angular/angular-bind-notifier.js:24:13)
    at wrap (http://localhost:5000/static/js/vendors/angular/angular-bind-notifier.js:24:13)
    at wrap (http://localhost:5000/static/js/vendors/angular/angular-bind-notifier.js:24:13)
    at wrap (http://localhost:5000/static/js/vendors/angular/angular-bind-notifier.js:24:13)
    at wrap (http://localhost:5000/static/js/vendors/angular/angular-bind-notifier.js:24:13)
    at wrap (http://localhost:5000/static/js/vendors/angular/angular-bind-notifier.js:24:13)
    at wrap (http://localhost:5000/static/js/vendors/angular/angular-bind-notifier.js:24:13)
    at wrap (http://localhost:5000/static/js/vendors/angular/angular-bind-notifier.js:24:13)
    at wrap (http://localhost:5000/static/js/vendors/angular/angular-bind-notifier.js:24:13) <span ng-bind=":refreshTable:data | niceNumber" class="ng-binding">

The table still contains several watchers per row, which I'm going to further optimize, so it's possible this issue won't appear when the watcher number will drop to 1-2 per row.

Hey! I'm away for a couple of days so I won't be able to do a deep investigation into the issue until Wednesday I'm afraid.
Would you mind killing the piped filter in your ng-repeat binding to see if that's what causing the overflow?
I'd really appreciate a plunker or something similar as well.
Hang in there! Will look into this to the best of my possibility on Wednesday.

Thanks for the quick response!
Nope, killing the piped filter didn't help the problem.
I will try to replicate it in a plunker and post it here.

Hi, sorry, I just managed to create the plunker now.
Here it is: http://plnkr.co/edit/796YnA6G0WRgbzv2lV7C?p=info
Warning, running the plunker as-is will cause the browser to freeze, and will cause the error this issue is about. If you reduce the numbers in data generation method (eg. just one table), it will work just fine. Hope this helps to re-create and fix the issue!
Thanks

Hey!
Sorry for being away, got home and instantly got a man-cold. So I've been pretty much dead in the water for a couple of days.
Cheers for the plunker - I'll have to dig deep here to try and figure out what the exact issue is. Any and all help in that regard would be greatly appreciated.
For now, I do not have a workaround that would solve your issue I'm afraid.

Switching out ng-bind for a regular {{:refresh:column}} appears to have fixed the issue on my end.
new plunker
It's really really slow - but I think if you used a documentFragment or something of the sort you could reduce the performance loss of rendering all of these elements.
Oh and I bumped up the number of elements on the Plunker to 250.000. :smile:
@teo-sk

Thank you very much for your suggestion, for now it's an acceptable workaround in my project. However, let's keep this issue open for you or some other contributor to track progress about the ng-bind usage, shall we?

However, let's keep this issue open for you or some other contributor to track progress about the ng-bind usage

Sounds like a plan! Perhaps even reword the issue description and/or edit the main post to reflect that it has to do with ng-bind (among others I fear)?

I'm having the same exact issue, when I have loads of data on a page.  I was delving deeply into the code of AngularJS and bind-notifier to try to see what is happening.  The issues seems to be from when AngularJS caches parsed expressions, and the same expression is called twice.
In angular-bind-notifier (bindNotifier.js:128-129) you have the below code:
 expression = parse.call(this, '::' + rawExpression, interceptor);
 expression.$$watchDelegate = dynamicWatcher(expression, notifiers);

This calls the '$parse()' function of AngularJS, method copied below:
return function $parse(exp, interceptorFn, expensiveChecks) {
  var parsedExpression, oneTime, cacheKey;

  switch (typeof exp) {
    case 'string':
      exp = exp.trim();
      cacheKey = exp;

      var cache = (expensiveChecks ? cacheExpensive : cacheDefault);
      parsedExpression = cache[cacheKey]; // ### THIS IS THE ISSUE  ###

      if (!parsedExpression) {
        if (exp.charAt(0) === ':' && exp.charAt(1) === ':') {
          oneTime = true;
          exp = exp.substring(2);
        }
        var parseOptions = expensiveChecks ? $parseOptionsExpensive : $parseOptions;
        var lexer = new Lexer(parseOptions);
        var parser = new Parser(lexer, $filter, parseOptions);
        parsedExpression = parser.parse(exp);
        if (parsedExpression.constant) {
          parsedExpression.$$watchDelegate = constantWatchDelegate;
        } else if (oneTime) {
          parsedExpression.$$watchDelegate = parsedExpression.literal ?
              oneTimeLiteralWatchDelegate : oneTimeWatchDelegate;
        } else if (parsedExpression.inputs) {
          parsedExpression.$$watchDelegate = inputsWatchDelegate;
        }
        cache[cacheKey] = parsedExpression;   // ### THIS IS THE ISSUE  ###
      }
      return addInterceptor(parsedExpression, interceptorFn);

    case 'function':
      return addInterceptor(exp, interceptorFn);

    default:
      return noop;
  }
};

The angular code uses a cache mechanism, which will return the same expression as before when it encounters the same exact cacheKey.  I could not determine why only in this instance is it meeting the same cacheKey.  However, I temporarily disabled the cache in angularJS by commenting out the lines.  I've marked them in the above code by  the comment // ### THIS IS THE ISSUE  ###.  When this happens, the returned expression.$$watchDelegate will already include a reference to your wrap().  Then, the dynamicWatcher() will we-wrap into into another wrap() call, resulting in the maximum call stack size being reached when you have loads of elements.
I think a solution would be such that you should detect when parse.call() returns a cached expression, and do not we-wrap such an expression.

@karlcassar is right. The wrapper is wrapped again and again. The solution would be to flag the wrapper and return the watchDelegate if it is a wrapper.
  function dynamicWatcher (expr, notifierKeys) {
    function setupListeners (scope, cb) {
      notifierKeys.forEach(function (nk) {
        scope.$on('$$rebind::' + nk, cb);
      });
    }

    if (expr.$$watchDelegate.isWrapper)
      return expr.$$watchDelegate;

    function wrap (watchDelegate, scope, listener, objectEquality, parsedExpression) {
      var delegateCall = watchDelegate.bind(this, scope, listener, objectEquality, parsedExpression);

      /**
       * - Ensure that the watchDelegate has a prototype.
       * - Ensure that said prototype has a constructor property (in a cumbersome way).
       *
       * In doing so, we are certain that we do not increase the listener count exponentially. Black magic.
       */
      if (watchDelegate.prototype && Object.getOwnPropertyNames(watchDelegate.prototype).indexOf('constructor') > -1) {
        setupListeners(scope, delegateCall);
      }

      delegateCall();
    }

    var wrapper = wrap.bind(this, expr.$$watchDelegate);
    wrapper.isWrapper = true;
    return wrapper;
  }

Thanks a lot for the assistance here @karlcassar @AntoineEsteve!
I'll get on this sometime tomorrow during my 5 hour layover at Heathrow (yuck). Unless of course you would like to post a PR with some accompanying unit tests. If you need any help with that, let me know :smile:.

@teo-sk @karlcassar @AntoineEsteve
I just pushed , https://github.com/kasperlewau/angular-bind-notifier/commit/143bb5a1367141ce3f26896f5d6db7ab18350273 which implements what Antoine suggested and it appears to working just fine™ on my end.
Would love to get some feedback from you guys (as I don't have all the test cases in front of me) before pushing the next release.

Hi @kasperlewau . Unfortunately I was super busy and missed out on this comment.  Currently as a quick-workaround, I had removed the bind-notifier where it was giving issues.  I've tried the update on my code and the watch count still exploded significantly when hiding/showing elements, so the issue is not completely resovled.  Also, from that time, another component started giving the 'call stack size exceeded' issue as well. I'll try to create a failing unit test and let you know about it.

@karlcassar Do note that the pushed code has not been released yet. If you would like to try it out, scrap any bower install and simply inject the following into your application;
<script src="https://rawgit.com/kasperlewau/angular-bind-notifier/master/dist/angular-bind-notifier.js"></script>

If you've already done that, then this needs some further investigation - though I cannot replicate it with the current master code in place :cry:

@kasperlewau Yes, i had downloaded the latest update by specifying the version guid in bower - and I ensured that the .js had the updated code - so I definitely had your latest update.  It's difficult to replicate it, but I'll try to create a failing unit test for it.

@kasperlewau , I managed to create a "failing test". However this is for the exploding watch count rather than the actually maximum call stack exceeded.  I strongly believe though that this issue is related to the maximum call stack error as this will keep on increasing the watch count, until at one point the browser might throw the call stack exception.
Plunkr: http://plnkr.co/edit/WAHdlIyiog1gdiEwqHa4
Read the README.md of the Plunkr as I tried to explain better what is happening, and how to check it.  I discovered this issue when I was trying to reduce greatly the watch count in an application, and I discovered that rather than decreasing, bind-notifier was increasing them.

I have yet to be able to replicate either of the following (in a unit test environment, mind you);
a) Exploding watch count.
b) Call stack exceeded.
Having toyed around with the given plunker, I do see the watch count increasing when coupling a notifierExpression with ng-if. That's about as far as I've come in investigating the issue(s) at hand.
I sorely need to teach my body to survive on <6hrs of sleep :neutral_face:

Hi Kasper,
Yeah I know it's not that simple to just replicate in a unit test
environment. However, maybe one way to start would be to look into how
angular actually stores the watches, and see what are the duplicate /
exploding watches are, and when they are created? It definitely is related
to an ng-if.
Thanks for this!  And goodluck on surviving on less than 6 hours sleep, I
tried and don't suggest it though! :)
Regards,
Karl

*mob: *+356 7979 2211
On 27 January 2016 at 10:14, Kasper Lewau<EMAIL_ADDRESS>wrote:

I have yet to be able to replicate either of the following (in a unit test
environment, mind you);
a) Exploding watch count.
b) Call stack exceeded.
Having toyed around with the given plunker, I do see the watch count
increasing when coupling a notifierExpression with ng-if. That's about as
far as I've come in investigating the issue(s) at hand.
I sorely need to teach my body to survive on <6hrs of sleep [image:
:neutral_face:]
—
Reply to this email directly or view it on GitHub
https://github.com/kasperlewau/angular-bind-notifier/issues/23#issuecomment-175500809
.


Feature to skip the dot notation

My keys are stored like so
{
    "account.email.title": "Email",
    "account.familyName.title": "Last name",
    "account.givenName.title": "First name",
    "account.pushNotifications": "Enable push notifications",
    "account.removeFromDevice.logout": "Logout",

Would love to use this lib but can't without an option to skip dot notation. Could that be on the horizon?

You can use array notation, which is slightly more annoying, but it will leave each segment as is.
Rosetta uses dlv directly for access, and so inherits its usage/conditions.
i18n.t(['account.email.title']);

Had a project like this in the past, and eventually everyone agreed to use : instead of . within the dictionary keys

thanks


cmd/go/internal/load: better error message for "error obtaining VCS status"

What version of Go are you using (go version)?

$ go version
go version go1.22-20230908-RC04 cl/563875016 +2fe2f08542 X:fieldtrack,boringcrypto linux/amd64

Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE=''
GOARCH='amd64'
GOBIN=''
GOCACHE='/usr/local/google/home/jingyuanliang/.cache/go-build'
GOENV='/usr/local/google/home/jingyuanliang/.config/go/env'
GOEXE=''
GOEXPERIMENT='fieldtrack,boringcrypto'
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOINSECURE=''
GOMODCACHE='/usr/local/google/home/jingyuanliang/go/pkg/mod'
GONOPROXY='*.googlesource.com,*.git.corp.google.com'
GONOSUMDB='*.googlesource.com,*.git.corp.google.com'
GOOS='linux'
GOPATH='/usr/local/google/home/jingyuanliang/go'
GOPRIVATE='*.googlesource.com,*.git.corp.google.com'
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/usr/lib/google-golang'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/usr/lib/google-golang/pkg/tool/linux_amd64'
GOVCS=''
GOVERSION='go1.22-20230908-RC04 cl/563875016 +2fe2f08542 X:fieldtrack,boringcrypto'
GCCGO='gccgo'
GOAMD64='v1'
AR='ar'
CC='clang'
CXX='clang++'
CGO_ENABLED='1'
GOMOD='/usr/local/google/home/jingyuanliang/go128/go.mod'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build1980328498=/tmp/go-build -gno-record-gcc-switches'

What did you do?

[hi on] jingyuanliang@jingyuanliang:~$ mkdir go128
[hi on] jingyuanliang@jingyuanliang:~$ cd go128
[hi on] jingyuanliang@jingyuanliang:~/go128$ git init
Initialized empty Git repository in /usr/local/google/home/jingyuanliang/go128/.git/
[hi on] jingyuanliang@jingyuanliang:~/go128:main$ go mod init go128
go: creating new go.mod: module go128
[hi on] jingyuanliang@jingyuanliang:~/go128:main$ sudo chown -R root:root .
[sudo] password for jingyuanliang:
[hi on] jingyuanliang@jingyuanliang:~/go128$ sudo chmod -R 777 .
Skippy Security Tip: Setting global read/write/execute permissions will give all users on this machine full access to these files/programs and may provide access they shouldn't otherwise have.
Suggestion:
More info:
Do you still want to execute this command? [y/n]y
[hi on] jingyuanliang@jingyuanliang:~/go128$ cat>main.go
package main
func main(){}
[hi on] jingyuanliang@jingyuanliang:~/go128$ go build
error obtaining VCS status: exit status 128
	Use -buildvcs=false to disable VCS stamping.
[hi on] jingyuanliang@jingyuanliang:~/go128$

What did you expect to see?
A clear error message, by relaying git's error message (fatal: detected dubious ownership..., probably by letting it inherit stderr stream fd=2) to user for better visibility.
Or at least it should say it's git failing, preferably print the command line used to invoke git, so users can reproduce it themselves.
What did you see instead?
error obtaining VCS status: exit status 128
	Use -buildvcs=false to disable VCS stamping.

It looks like you are encountering an issue with Git while trying to build your Go project. The error message indicates that there's a problem obtaining the VCS (Version Control System) status, and it provides a suggestion to use -buildvcs=false to disable VCS stamping.
The most likely cause of this issue is related to the ownership and permissions you set on your project directory. You changed the ownership to root and granted read/write/execute permissions to everyone, which might have caused problems when Go is interacting with Git.

Duplicate of #53532


Inbox-> The 'Online' status of the user is not showing the real time status

Open 'FP' application and login as valid user
Navigate to Inbox, and for testing have another online user to communicate with (both as Individual and ORG)

Issue: You will observe that when user switch between Individual user and Org user the online status is not showing the real time update.

@rabbi08 - little confused. the active status is turning off when user switch from indiv to org or it's staying on when it should turn off?
i believe it is only active when user is actually in inbox- correct @Zaydme
cc @tejasm2

Yes, it should only be inactive for selected user.


Add prop for toolbar title style

Coverage remained the same at 86.909% when pulling 716ae857fad760cf6bdf89d2e8abc8074e38f55a on toolbar-title-style into 3fb075a1f7167f0116bf6d95bfaf176041481cc6 on master.


disjoint multiple choice questions: "sum to 100" options not available, forecasts summing to 100 not enforced

Current behavior
https://www.metaculus.com/questions/11245
https://www.metaculus.com/questions/19716/power-in-gaza-strip-on-january-1-2025/

I can submit forecasts that sum to greater than or less than 100%;
I can no longer see an "automatic sum to 100%" button;

Expected/desired behavior

I should not be able to submit a group of forecasts that sums to anything other than 100%;
I should be able to hit a button to automatically adjust forecasts to sum to 100, as once existed

@draaglom although in those two cases the options are mutually exclusive and ~exhaustive (though not strictly), they're both "group" questions. We use group questions instead of multiple choice for cases like these where a new candidate or country could enter the field, so that we can add more.
So although you're right that your forecasts shouldn't sum to more than 100%, we don't enforce this on group questions like we do on multiple-choice questions (we do still have that feature! like this question).

@hickman-santini whoops, sorry, my mistake! I could've sworn that the election one was multiple choice before, but I guess I remembered wrong.


Upgrading Workbox to v6 and above

Use Case: I want to define a custom import { Strategy } from "workbox-strategies"; (that fetches data from IndexedDB, so I can use the registerRoute syntax of Workbox).
https://developers.google.com/web/tools/workbox/modules/workbox-strategies#custom_strategies
https://github.com/GoogleChrome/workbox/pull/2455
Strategy.ts was only introduced in v6.
Will there be any adverse effects if I simply npm i<EMAIL_ADDRESS>along with all the other related packages?
I'll update this issue after I try shortly.

@Transfusion Did you find any adverse effects?

You could check the "breaking changes" section in the v6 release note for details.
I did the upgrade, and found no adverse effect.

@ZYinMD You mean, No need to change the code to update?
@jeffposnick can you please take a look?

@ZYinMD
How did you upgrade? The<EMAIL_ADDRESS>dependes on<EMAIL_ADDRESS>which depends on<EMAIL_ADDRESS>npm ls workbox-build

`--<EMAIL_ADDRESS>  `--<EMAIL_ADDRESS>    `--<EMAIL_ADDRESS>


Archive data through the API

Hello 👋
The API documentation says that data previously published in the dashboard (currently on the archive: https://coronavirus.data.gov.uk/archive ) is available for download through the API as well. But I haven't been able to figure out how to do structure the query to get this. Is there an example of what such a query looks like?
For example, I want to know the number of cases in Leicester for the date 2020-06-01 as reported on 2020-06-02, 2020-06-03, .....
Any help with this would be much appreciated, thank you!

Hi @radka-j
Thanks for getting in touch.
So what you are looking for is previous states of the data (previous reports). We do have the data in the database and are planning to provide the means to retrieve them via the API in the future. However, there is very little demand for it, and we have some high-priority works in our development pipeline.
We will get it done as soon as possible. Keep an eye out for the feature in the API docs and our SDKs.

Hi @xenatisch,
Just hoping to clarify  - could you confirm that the API does not currently support provision of data for previous dates - so as an example the number of positive tests in a geography is only available as at the most recent data release?
If this is the case it causes us some difficulties - the daily positive tests data is frequently retrospectively amended, so a day to day record of positive cases will not provide the full picture. Specifically users will not be able to track the final tally positive tests over time series. To be clear: I'd like to have access to a day-to-day total of positive tests at all geographies, which when combined would be equal to the cumulative total currently available on the front end of your site.
If this is the case please could this be escalated in terms of priority? If I'm misinterpreting somehow apologies in advance.

Hi @xenatisch,
We are also very eager to regain access to the time series data for UTLA positive tests. As it stands the newCasesByPublishDate field from this API returns the latest numbers only which is difficult to interpret for the reasons described by @lewissmit.
We used to have access to this data via this link: https://coronavirus.data.gov.uk/downloads/data/data_latest.json but it doesn't seem to have been updated since the 3rd.

Hi @xenatisch,
We are also very eager to regain access to the time series data for UTLA positive tests. As it stands the newCasesByPublishDate field from this API returns the latest numbers only which is difficult to interpret for the reasons described by @lewissmit.
We used to have access to this data via this link: https://coronavirus.data.gov.uk/downloads/data/data_latest.json but it doesn't seem to have been updated since the 3rd.

I am able to find workaround for this issue.
    ltla_filter = ['areaType=ltla']
    cases_and_deaths = {
                        "areaType":"areaType"
                        ,"areaName":"areaName"
                        ,"areaCode":"areaCode"
                        ,"specimenDate":"date"
                        ,"dailyLabConfirmedCases":"newCasesBySpecimenDate"
                        ,"totalLabConfirmedCases":"cumCasesBySpecimenDate"
                        }
    api = Cov19API(filters=ltla_filter, structure=cases_and_deaths)
    data = api.get_json()  # Returns a dictionary
    lastUpdate = data['lastUpdate']

above code gives historical information for LTLA. I don't know how but probably due to some changes in the structure.

Hi @xenatisch,
We are also very eager to regain access to the time series data for UTLA positive tests. As it stands the newCasesByPublishDate field from this API returns the latest numbers only which is difficult to interpret for the reasons described by @lewissmit.
We used to have access to this data via this link: https://coronavirus.data.gov.uk/downloads/data/data_latest.json but it doesn't seem to have been updated since the 3rd.

I am able to find workaround for this issue.
    ltla_filter = ['areaType=ltla']
    cases_and_deaths = {
                        "areaType":"areaType"
                        ,"areaName":"areaName"
                        ,"areaCode":"areaCode"
                        ,"specimenDate":"date"
                        ,"dailyLabConfirmedCases":"newCasesBySpecimenDate"
                        ,"totalLabConfirmedCases":"cumCasesBySpecimenDate"
                        }
    api = Cov19API(filters=ltla_filter, structure=cases_and_deaths)
    data = api.get_json()  # Returns a dictionary
    lastUpdate = data['lastUpdate']

above code gives historical information for LTLA. I don't know how but probably due to some changes in the structure.

thanks! This works for me using UTLAs too e.g. link. The Python SDK retrieves all the pages which is handy.

Hi everyone... sorry for my late response. It's been a long day.
This issue was addressed in #1 (which I have now pinned to the issues page). I see that @bhavesh0009 has kindly shared his solution with you too.
Let me know if you need more info, or are still experiencing any difficulties.

@xenatisch I hope you are well! 🙂 Is there any update on this (e.g., when might we expect for the archive to be available through the API)? Or do you know if there is another way to access this data?

For anyone stumbling upon this -- this data for cases is (unofficially) available for recent days here


On install current voice is not set

In the voice select, current voice is not set on Install

reverting the pr untill someone wants to fix


Explore adding Pyroscope to Grafana

This was attempted here: https://github.com/linera-io/linera-protocol/pull/1503 we should try again

Do we want this for Docker compose as well?

We should probably have it for all the validator types we support, I think


BuerliGeometry interaction fix

Jira task: https://awv-informatik.atlassian.net/browse/CAD-3673
buerli PR: https://github.com/awv-informatik/buerli/pull/455

@STINGNAILS could you please provide a short description or video of the use case, where the buerli raycastfilter is not enough for buerligons? I would like to understand exactly why these changes are necessary.


Update cloudwatch, sdk-core, ses, sns, sqs, ssm to 2.20.125

About this PR
📦 Updates

software.amazon.awssdk:cloudwatch
software.amazon.awssdk:sdk-core
software.amazon.awssdk:ses
software.amazon.awssdk:sns
software.amazon.awssdk:sqs
software.amazon.awssdk:ssm

from 2.20.120 to 2.20.125
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "software.amazon.awssdk" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "software.amazon.awssdk" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #2842.


Provide a way for templates to rename files

For example if generating a C# project you would ideally like the .csproj file to be named for the component/application.

Had an explore of this by allowing a rename field with a Liquid template as its value (e.g. rename = "{{ project-name }}.csproj", and that worked okay.
However, that approach doesn't extend to non-string values, or where something other than simple substitution is needed.  Consider a setting to conditionally skip a file.  You might hope that {{ foo == "bar" }} would do it, but it doesn't.  First the {{}} syntax allows only variables and filters as far as I can tell, not comparisons.  Second, template rendering can only result in a string, not a boolean.  Which makes sense: it's a templating engine, not a general purpose expression engine.
Now I think you can work around this.  E.g. skip_if = "{% if foo == \"bar\" %} true {% else %} false {% endif %}" parses and would produce a true/false string.  But eww.
A possible alternative is to use Rhai expressions for metadata expressions and Liquid templates for content bodies.  But having two different syntaxes in the same system feels confusing as heck.  Another possibility is to provide filters (and recognise strings for true/false/number/etc.), e.g. {{ foo | eq: \"bar\" }}.  That doesn't feel very natural either.
I don't want to push ahead on the rename feature until I'm confident we have a framework for other non-substitutive expressions and operations.

Might be worth having a look at cargo generate and how they do templated file names, https://github.com/cargo-generate/cargo-generate/blob/main/src/filenames.rs

Thanks!  Unfortunately, the trouble I'm hitting is not how to do file names in itself; it's extending that to other behaviour overrides.  That said, it's cool to see CG doing it this way - I toyed with this idea but then decided to pursue a more extensible system - maybe I should forget trying to unify everything ever and settle for a collection of simple point solutions like this.  Great pointer and food for thought - thanks again!


Add randomization to constant time swap in ECC (updated)  (PR 15702)

Re-creation of #15702; see that for comments, discussion, etc.

@richsalz has stepped away from OpenSSL development, so I'll be updating these PRs from the akamai/openssl repository.

This PR is in a state where it requires action by @openssl/otc but the last update was 175 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 206 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 237 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 268 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 299 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 330 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 361 days ago

This PR is waiting for the creator to make requested changes but it has not been updated for 30 days.  If you have made changes or commented to the reviewer please make sure you re-request a review (see icon in the 'reviewers' section).

This PR is waiting for the creator to make requested changes but it has not been updated for 61 days.  If you have made changes or commented to the reviewer please make sure you re-request a review (see icon in the 'reviewers' section).

This PR has been closed.  It was waiting for the creator to make requested changes but it has not been updated for 90 days.


Incorrect Error Code Mapping for HTTP Status Code 429

Is your feature request related to a problem? Please describe.
It seems that the error code mapping for HTTP status code 429 is incorrect.
Why is it returning Unavailable instead of ResourceExhausted?
Describe the solution you'd like
I would like you to fix the mapping process in the codeFromHttpsStatus function.
When the HTTP status code is 429, it should return Code.ResourceExhausted.
Specifically, the following two files:

https://github.com/connectrpc/connect-es/blob/main/packages/connect/src/protocol-grpc/http-status.ts#L33
https://github.com/connectrpc/connect-es/blob/main/packages/connect/src/protocol-connect/http-status.ts#L34

Hey @EringiV3 👋
We agree that mapping the HTTP status code 429 to the RPC error code "unavailable" is not ideal.
If you take a look at the JSDoc for the function in protocol-grpc/http-status.ts, you'll see that it links to a document that specifies the mapping for gRPC clients. We have to use this mapping for compatibility with other gRPC (-Web) clients.
And because the Connect protocol is designed for interoperability with gRPC, we can't change the mapping for Connect clients either. You can find more details in the specification for the protocol.


Xgboost error with GPU on Ubuntu16.04

I installed xgboost with GPU on Ubuntu16.04 according to https://xgboost.readthedocs.io/en/latest/build.html, but when I run the code, I get an error:
terminate called after throwing an instance of 'thrust::system :: xgboost with GPU on Ubuntu16.04
What(): function_attributes(): after cudaFuncGetAttributes: invalid device function
When I only use xgboost with CPU on Ubuntu16.04, the program works fine.
I want to know how to solve the problem. Thank you.
lspci | grep -i nvidia
01:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GT 630 OEM] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GK107 HDMI Audio Controller (rev a1)
sudo dpkg --list | grep nvidia-*
ii  nvidia-384                                  384.130-0ubuntu<IP_ADDRESS>                     amd64        NVIDIA binary driver - version 384.130
ii  nvidia-opencl-icd-384                       384.130-0ubuntu<IP_ADDRESS>                     amd64        NVIDIA OpenCL ICD
ii  nvidia-prime                                0.8.2                                        amd64        Tools to enable NVIDIA's Prime
ii  nvidia-settings                             361.42-0ubuntu1                              amd64        Tool for configuring the NVIDIA graphics driver
nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Tue_Jan_10_13:22:03_CST_2017
Cuda compilation tools, release 8.0, V8.0.61
cuDNN :V5.1

Did you compile XGBoost yourself, or did you run pip install xgboost?

I installed xgboost with GPU on Ubuntu16.04 according to https://xgboost.readthedocs.io/en/latest/build.html.
I don not use pip install xgboost.

I think the problem is that your card is relatively old. You should change the line
https://github.com/dmlc/xgboost/blob/4ed8a882405dc5bbfb6cb099a075b8dcdeedecc2/cmake/Utils.cmake#L65
to
      set(flags "21;35;50;52;60;61")

and re-compile XGBoost. Let me know how it goes.

@hcho3
Re-compile means I run again:
cmake .. -DUSE_CUDA=ON
make -j
cd python-package
sudo python setup.py install

@hcho3
qiujiedong@qiujiedong:~/anaconda3/lib/python3.6/site-packages/xgboost/build$ make -j
[  7%] Built target rabit
[ 23%] Built target dmlc
[ 25%] Building NVCC (Device) object CMakeFiles/gpuxgboost.dir/src/tree/gpuxgboost_generated_updater_gpu_hist.cu.o
[ 26%] Building NVCC (Device) object CMakeFiles/gpuxgboost.dir/src/common/gpuxgboost_generated_hist_util.cu.o
[ 27%] Building NVCC (Device) object CMakeFiles/gpuxgboost.dir/src/common/gpuxgboost_generated_host_device_vector.cu.o
[ 29%] Building NVCC (Device) object CMakeFiles/gpuxgboost.dir/src/linear/gpuxgboost_generated_updater_gpu_coordinate.cu.o
[ 30%] Building NVCC (Device) object CMakeFiles/gpuxgboost.dir/src/objective/gpuxgboost_generated_regression_obj_gpu.cu.o
[ 32%] Building NVCC (Device) object CMakeFiles/gpuxgboost.dir/src/predictor/gpuxgboost_generated_gpu_predictor.cu.o
[ 33%] Building NVCC (Device) object CMakeFiles/gpuxgboost.dir/src/tree/gpuxgboost_generated_updater_gpu.cu.o
nvcc fatal   : Unsupported gpu architecture 'compute_21'
CMake Error at gpuxgboost_generated_hist_util.cu.o.Release.cmake:219 (message):
Error generating
/home/qiujiedong/anaconda3/lib/python3.6/site-packages/xgboost/build/CMakeFiles/gpuxgboost.dir/src/common/./gpuxgboost_generated_hist_util.cu.o
nvcc fatal   : Unsupported gpu architecture 'compute_21'
nvcc fatal   : Unsupported gpu architecture 'compute_21'
CMake Error at gpuxgboost_generated_host_device_vector.cu.o.Release.cmake:219 (message):
Error generating
/home/qiujiedong/anaconda3/lib/python3.6/site-packages/xgboost/build/CMakeFiles/gpuxgboost.dir/src/common/./gpuxgboost_generated_host_device_vector.cu.o
CMake Error at gpuxgboost_generated_updater_gpu_hist.cu.o.Release.cmake:219 (message):
Error generating
/home/qiujiedong/anaconda3/lib/python3.6/site-packages/xgboost/build/CMakeFiles/gpuxgboost.dir/src/tree/./gpuxgboost_generated_updater_gpu_hist.cu.o
[ 94%] Built target objxgboost
CMakeFiles/gpuxgboost.dir/build.make:6247: recipe for target 'CMakeFiles/gpuxgboost.dir/src/tree/gpuxgboost_generated_updater_gpu_hist.cu.o' failed
make[2]: *** [CMakeFiles/gpuxgboost.dir/src/tree/gpuxgboost_generated_updater_gpu_hist.cu.o] Error 1
make[2]: *** 正在等待未完成的任务....
CMakeFiles/gpuxgboost.dir/build.make:922: recipe for target 'CMakeFiles/gpuxgboost.dir/src/common/gpuxgboost_generated_hist_util.cu.o' failed
make[2]: *** [CMakeFiles/gpuxgboost.dir/src/common/gpuxgboost_generated_hist_util.cu.o] Error 1
CMakeFiles/gpuxgboost.dir/build.make:1720: recipe for target 'CMakeFiles/gpuxgboost.dir/src/common/gpuxgboost_generated_host_device_vector.cu.o' failed
make[2]: *** [CMakeFiles/gpuxgboost.dir/src/common/gpuxgboost_generated_host_device_vector.cu.o] Error 1
nvcc fatal   : Unsupported gpu architecture 'compute_21'
CMake Error at gpuxgboost_generated_updater_gpu_coordinate.cu.o.Release.cmake:219 (message):
Error generating
/home/qiujiedong/anaconda3/lib/python3.6/site-packages/xgboost/build/CMakeFiles/gpuxgboost.dir/src/linear/./gpuxgboost_generated_updater_gpu_coordinate.cu.o
nvcc fatal   : Unsupported gpu architecture 'compute_21'
CMake Error at gpuxgboost_generated_regression_obj_gpu.cu.o.Release.cmake:219 (message):
Error generating
/home/qiujiedong/anaconda3/lib/python3.6/site-packages/xgboost/build/CMakeFiles/gpuxgboost.dir/src/objective/./gpuxgboost_generated_regression_obj_gpu.cu.o
CMakeFiles/gpuxgboost.dir/build.make:2786: recipe for target 'CMakeFiles/gpuxgboost.dir/src/linear/gpuxgboost_generated_updater_gpu_coordinate.cu.o' failed
make[2]: *** [CMakeFiles/gpuxgboost.dir/src/linear/gpuxgboost_generated_updater_gpu_coordinate.cu.o] Error 1
CMakeFiles/gpuxgboost.dir/build.make:3639: recipe for target 'CMakeFiles/gpuxgboost.dir/src/objective/gpuxgboost_generated_regression_obj_gpu.cu.o' failed
make[2]: *** [CMakeFiles/gpuxgboost.dir/src/objective/gpuxgboost_generated_regression_obj_gpu.cu.o] Error 1
nvcc fatal   : Unsupported gpu architecture 'compute_21'
CMake Error at gpuxgboost_generated_gpu_predictor.cu.o.Release.cmake:219 (message):
Error generating
/home/qiujiedong/anaconda3/lib/python3.6/site-packages/xgboost/build/CMakeFiles/gpuxgboost.dir/src/predictor/./gpuxgboost_generated_gpu_predictor.cu.o
CMakeFiles/gpuxgboost.dir/build.make:4493: recipe for target 'CMakeFiles/gpuxgboost.dir/src/predictor/gpuxgboost_generated_gpu_predictor.cu.o' failed
make[2]: *** [CMakeFiles/gpuxgboost.dir/src/predictor/gpuxgboost_generated_gpu_predictor.cu.o] Error 1
nvcc fatal   : Unsupported gpu architecture 'compute_21'
CMake Error at gpuxgboost_generated_updater_gpu.cu.o.Release.cmake:219 (message):
Error generating
/home/qiujiedong/anaconda3/lib/python3.6/site-packages/xgboost/build/CMakeFiles/gpuxgboost.dir/src/tree/./gpuxgboost_generated_updater_gpu.cu.o
CMakeFiles/gpuxgboost.dir/build.make:5347: recipe for target 'CMakeFiles/gpuxgboost.dir/src/tree/gpuxgboost_generated_updater_gpu.cu.o' failed
make[2]: *** [CMakeFiles/gpuxgboost.dir/src/tree/gpuxgboost_generated_updater_gpu.cu.o] Error 1
CMakeFiles/Makefile2:72: recipe for target 'CMakeFiles/gpuxgboost.dir/all' failed
make[1]: *** [CMakeFiles/gpuxgboost.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2

Can you change the line
https://github.com/dmlc/xgboost/blob/4ed8a882405dc5bbfb6cb099a075b8dcdeedecc2/cmake/Utils.cmake#L65
to
      set(flags "20;35;50;52;60;61")

(replacing 21 with 20)

@hcho3
Yes . I have changed  ,then re-compile xgboost.
function(format_gencode_flags flags out)
Set up architecture flags
if(NOT flags)
if((CUDA_VERSION_MAJOR EQUAL 9) OR (CUDA_VERSION_MAJOR GREATER 9))
set(flags "35;50;52;60;61;70")
else()
set(flags "21;35;50;52;60;61")
endif()
endif()

The problem occurs when I run ：make -j

@QiujieDong It appears that the XGBoost code does not work with your GPU. Consider upgrading your GPU to compute capability 3.5 or higher. Alternatively, you can use cloud providers (e.g. AWS) that provide GPU-capable instances.

I will go ahead and document the compute capability requirement.


github.com/bytedance/sonic/ast not support ARM32 "_blankCharsMask overflows int"

GOOS=linux GOARCH=arm go build -ldflags "-s -w" -o linux_arm32 .
github.com/bytedance/sonic/ast
vendor/github.com/bytedance/sonic/ast/decode.go:40:25: _blankCharsMask (untyped int constant<PHONE_NUMBER>) overflows int
make: *** [build_linux] Error 1

sorry, sonic cannot suport 32-bit arch at present

sorry, sonic cannot suport 32-bit arch at present

32-bit is usually used extensively in edge computing. It is recommended to support it


Tests to show issue #580 is solved already

Fixes #580

Adds tests to show that 580 is already solved

Review Checklist

Tests were added to cover all code changes
Documentation was added / updated
Code and tests follow standards in CONTRIBUTING.md

LGTM, thanks @hkethi002 !


Fix README credit link

Hey mate, appreciate this 🙏
Looks like the newer version of husky wasn't catching pre-commit hooks (which would've caught your format error). I'll just go ahead and fix this and mark you as a co-author on the commit
Thanks again!

Change added 🚢

No problem! I made the change from my phone, that's why husky probably didn't get it 😆


ImageClassifier Predict Label

🚀 Feature
Prediction Currently Returns the class index based on the folder position in train. It would be great to be able to able to see the targets.
Motivation
It's hard to interpret class id numbers when you have more than a few classes.
model.predict(["cat.png"], target=true)
output -> 1
What does one mean?
Pitch
model.predict(["cat.png"], target=true)
output ->cat
Alternatives
Open to discussion
Additional context

Another alternative can be to have an easy API to convert between ID and class label. The ID is important if you want your output to be numerical.

Adding to this,a way to get the prediction class distribution.

Fixed by #229 - can now use model.serializer = Labels() or model.serializer = Probabilities(), for other options see the predictions docs.


Site freezing when submitting answer

I noticed an issue when submitting answers for challenges on certain browsers the site freezes and becomes unresponsive, forcing the browser to terminate.
This happens in:
Chrome 78.0.3904.108 on Windows 10
MS Edge 42.17134.1098.0
Tried fixing it but got lost in the recursion, seems like in _tryProofOfWork the params variable is never defined under Chrome, the execution never reaches testbits and gets stuck a loop. Also debugged with Burp the api call is not issued before the freeze.

Okay after a few hours of debugging I managed to find a workaround. If you set PROOF_OF_WORK_BITS to zero in the config.py file it basically turns off the proofofwork token feature and the browser doesn't get stuck in a loop. You do have to restart the server and hit a few Crtl-F5s in the browser after setting it because the js gets cached.
So add this to config.py: PROOF_OF_WORK_BITS = 0


Pausing KOReader results in the screen staying at the wrong resolution

Describe the bug
When you pause out of KOReader and go back to oxide the screen resolution stays at the smaller size set by KOReader. This needs to be handled somehow. Likely just force reset the screen every time you pause any app.
Expected behavior
Screen resets resolution properly.
Version Information:

Device:  reMarkable 1
OS: <IP_ADDRESS>
Version: Unreleased v2.0-beta

Yeah, we switch the fb to 8bpp in KOReader ;).
You should be able to toggle back and forth without KOReader imploding, FWIW.
(You can either handle the ioctl yourself, or there's a small C tool, fbdepth, shipped with KOReader).

@NiLuJe I'll likely go the fbdepth route, what would be the call I'd need to make to flip between the modes? And is there anything I'd have to be aware of instead of just blindly flipping?
Do you also have any insight as to why the SIGSTOP signal isn't being passed by koreader.sh to the underlying processes?

On my local koreader.sh, I commented out the fbdepth call (you can look at koreader.sh to see how fbdepth is invoked).
@NiLuJe : But I don't get it: how do we know when koreader has launched so we can reset the bpp back? (do i just do a "launch koreader; sleep 1; reset to 8bpp"). I'd prefer to just be able to tell koreader not to set to 8bpp (via env variable parsed in koreader.sh?)

On my local koreader.sh, I commented out the fbdepth call (you can look at koreader.sh to see how fbdepth is invoked).
@NiLuJe : But I don't get it: how do we know when koreader has launched so we can reset the bpp back? (do i just do a "launch koreader; sleep 1; reset to 8bpp"). I'd prefer to just be able to tell koreader not to set to 8bpp (via env variable parsed in koreader.sh?)

@Eeems: Yeah, you'll want to SIGSTOP (both) luajit processes, not the wrapper script ;).
fbdepth -d 8 / fbdepth -d 16 should essentially do the job. As was mentioned, you can check the KOReader startup script for more details (even if it's doing things a bit more conservatively because it's very defensive because based on the Kobo script, where things are... weird, as I said earlier ^^).

@raisjnn: Not doing the switch is toggleable in KOReader's Dev options, and already handled by the rM startup script.
That's of course a performance hit involved in the process, because RGB565 is the worst ;).

It might make more sense to ship our own script for launching KOReader that plays nicer with the Oxide environment and doesn't force us to have to add code specific to handle KOReader. I'd rather keep a consistent interface for how Oxide interacts with other applications so that developers know what to expect. Thanks for the information @NiLuJe!

yes, I saw the dev settings. This isn't a good solution because even if we auto toggle it on for people, they might accidentally turn it off and not realize what it did. I think we will distribute our own startup script (like eeems says), but still would like a way to tell koreader.sh not to mess with bpp from the outside

Speaking of the signals, you might be able to get away by sending a signal to the process group (PGRP in htop, PGID in ps) instead of the individual PIDs.
But there's a high chance that the actual thing that launched KOreader will be in the same process group, which would be counter-intuitive here ^^.

The thing that launched KOReader would be the one sending the signals, and yes it's in the same proces group. Although I guess I could tweak it so that it's launching them detached. We'd lose things like stdout/stderr capture with that method I believe.

Depending on how custom it is, it might be trickier in the long run, because while starting KOReader is essentially as easy as ./luajit reader.lua, the startup script does a lot of fancy crap to handle OTAs, restarts, crash handling, etc.

(That's a subtle hint that if you just need to shortcut bits of it, I'm wholeheartedly open to merging an env var check upstream ^^).

Depending on how custom it is, it might be trickier in the long run, because while starting KOReader is essentially as easy as ./luajit reader.lua, the startup script does a lot of fancy crap to handle OTA updates, restarts, crash handling, etc.
(That's a subtle hint that if you just need to shortcut bits of it, I'm wholeheartedly open to merging an env var check upstream if that's easier for you guys ^^).

Sounds like it might make more sense to enhance the script to handle SIGSTOP and SIGCONT signals for us. I wouldn't be opposed to setting an environment variable as well to let applications detect that they are running under Oxide.

Sounds like it might make more sense to enhance the script to handle SIGSTOP and SIGCONT signals for us. I wouldn't be opposed to setting an environment variable as well to let applications detect that they are running under Oxide.

i'm fine with just adding an env variable to koreader.sh to tell it not to do the bpp check (minimal intrusion). I see it already uses some variables in that respect anyways

actually, related to this is: what about telling koreader not to grab button inputs using EVIOCGRAB? i know this is further in the stack (because the grab happens in the koreader base code), so it would be harder to do. my current plan was to just be greedy and grab the exclusive lock before launching koreader and don't let koreader get a chance to get it back.

Quite honestly, we shouldn't really be grabbing.
It's quite probably a remnant of the Kindle history, where it possibly maybe made sense to avoid upsetting the native system.
So, yeah, I don't recall when/where we do that, but it probably makes sense on platforms where we know there's no longer a native app to coexist with.

Yeah, adding an env check is perfectly fine (if you need scary examples, check the Kobo script, it's... colorful because of the long and varied history of crappy launchers ^^).

At a quick glance, I don't see how moving the signal handling in the script would be any better though: even from a trap, it'd probably have to do much of the same work to device which PIDs to signal, because we'd want both the main luajit process, but also the fork that handles udev events.
But if you have something that does work on that front, that's fine by me ^^.

The general TL;DR being: If you need to do stuff slightly differently and you can implement it in not horribly intrusive ways and it doesn't break the stock behavior, feel free to send PRs ;).

At a quick glance, I don't see how moving the signal handling in the script would be any better though: even from a trap, it'd probably have to do much of the same work to devise which PIDs to signal, because we'd want both the main luajit process, but also the fork that handles udev events.
But if you have something that does work on that front, that'd be fine by me ^^.

It should be fairly simple for the script to reference its "jobs". And since one of those processes is a fork, signalling the parent should be enough to stop it as well.

actually, related to this is: what about telling koreader not to grab button inputs using EVIOCGRAB? i know this is further in the stack (because the grab happens in the koreader base code), so it would be harder to do. my current plan was to just be greedy and grab the exclusive lock before launching koreader and don't let koreader get a chance to get it back.

Oxide expects to run first, so I'm grabbing those inputs and "forwarding" button presses when they aren't being used for something. It's not perfect since you need to ungrab to send the events before grabbing again. So timing-wise someone could send extra button presses though.

The general TL;DR being: If you need to do stuff slightly differently and you can implement it in not horribly intrusive ways and it doesn't break the stock behavior, feel free to send PRs ;).

Thanks for all the help!

Alright, I've messed around with trapping signals, and I forgot that SIGSTOP can't be trapped. So I've decided to add a mechanism to run something on pause, resume, and stop of an application. So we'll just need to register the calls to fbdepth on pause or resume.

Oh, :facepalm:. That had also completely skipped my mind ^^.

The good news is that it works!

I'll have to write a script that registers KOReader application properly and send a PR.

The thing that launched KOReader would be the one sending the signals, and yes it's in the same proces group. Although I guess I could tweak it so that it's launching them detached. We'd lose things like stdout/stderr capture with that method I believe.

unsure if its true that you lose stdout/stderr on detached programs. i'm using setsid to launch programs in new session and still see their output in my logs. i need to verify setsid is really doing what i think, but i bring it up so we can investigate it

unsure if its true that you lose stdout/stderr on detached programs. i'm using setsid to launch programs in new session and still see their output in my logs. i need to verify setsid is really doing what i think, but i bring it up so we can investigate it

Hmme, you seem to be right https://doc.qt.io/qt-5/qprocess.html#startDetached I think I'm starting to misremember things due to lack of sleep.

I think all I'm waiting for at this point on this is for the KOReader release where it doesn't grab the touchscreen.
@NiLuJe do you know when that will be released?

It's in current nightlies ;).
On Sat, Sep 26, 2020, 08:22 Nathaniel van Diepen<EMAIL_ADDRESS>wrote:

I think all I'm waiting for at this point on this is for the KOReader
release where it doesn't grab the touchscreen.
@NiLuJe https://github.com/NiLuJe do you know when that will be
released?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Eeems/oxide/issues/69#issuecomment-699437480, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAA3KZT23SIM7TILWVON4F3SHWCA7ANCNFSM4RRI25DA
.

https://github.com/toltec-dev/toltec/pull/102 solves the grabbing problem, which will be merged into stable as part of this week's merge window.
Still outstanding is properly setting onPause and onResume automatically.

Working on adding the properties this by default here: https://github.com/toltec-dev/toltec/pull/159

Now that I've allowed for applications to be registered with a custom environment, we could also pass KO_DONT_SET_DEPTH through to KOReader. That'll have to wait for v2.1 to be released first though, and for a better mechanism to register applications.

I've implemented a better way to register applications in v2.1 that will allow for either of the following solutions:

Passing the KO_DONT_SET_DEPTH environment variable to the application
Running code on pause/stop/resume to call fbdepth

It also now handles process groups properly.

Well, you know my stance: I'd strongly favor option 2 for better performance ;).

Okay, v2.1 is merged. This can be solved in multiple ways. I'm closing the issue, and I'll make sure that toltec is updated to properly handle it when oxide 2.1 drops.

Okay, v2.1 is merged. This can be solved in multiple ways. I'm closing the issue, and I'll make sure that toltec is updated to properly handle it when oxide 2.1 drops.