[Monetization flow - Background] Start payment

In background - call monetizationServer.start()
4.1 request incoming payment grant
4.2 create incoming payment - NO AMOUNT
4.3 try to send payment - if received status code is 403, rotate token
4.4 revoke grant after creating incoming payment
4.5 add incoming payment details to a map - (key: tabId, value: {"uuidv4" : { ...incomingPaymentDetails, active: true }, ...})
Create quote with receiveAmount = RATE_OF_PAY / 3600 to incoming payment (active: true)
5.1. We multiply by X times the interval (X - the number of link tags that we have in the page)
5.2. What should happen when the wallet address has a low asset scale (2 for example)?

If the sending wallet address has a low asset scale how are we splitting the amounts? For asset scale 2 it will need to send 4 units ($0.04) - $0.02 for each link tag
If the receiving wallet address has a low asset scale - we will need to ignore the WM user rate of pay and send the minimum amount x number links (two links, with the minimum amount of 2 units - $0.04)

Create outgoing payment with quote identifier (active: true)

Covered:

request incoming payment grant
create incoming payment - NO AMOUNT
try to send payment - if received status code is 403, rotate token
revoke grant after creating incoming payment
Create outgoing payment with quote identifier (active: true)

In progress:

add incoming payment details to a map - (key: tabId, value: {"uuidv4" : { ...incomingPaymentDetails, active: true }, ...})
We multiply by X times the interval (X - the number of link tags that we have in the page)
If the sending wallet address has a low asset scale how are we splitting the amounts? For asset scale 2 it will need to send 4 units ($0.04) - $0.02 for each link tag
If the receiving wallet address has a low asset scale - we will need to ignore the WM user rate of pay and send the minimum amount x number links (two links, with the minimum amount of 2 units - $0.04)

Still need to confirm the following point, but working towards completing and having PR ready for review tomorrow/Friday, 28/29 Mar

add incoming payment details to a map

Functional testing (currently manual):

test with 2 wallet addresses that have different asset scales

Overall, the task has been delayed due to (1) annual leave and (2) more complexity than anticipated.
Peer reviews should be begin on Monday, 1 April


Clarify the use of Solid Code of Conduct for all repositories under the GitHub solid organisation

If not already, clarify somewhere that all repositories under the GitHub solid organisation use the Solid Code of Conduct.

Open consideration: If all repositories under the solid-contrib organisation should or need to also follow the Solid CoC and whether it is strictly under the purview of the Solid Project.

This is mentioned in the project description

I gather that solid-contrib repos are currently done on a case-by-case basis. I propose that we put a similar banner on the solid-contrib org to make the code of conduct apply to the whole org over there.
cc @bourgeoa @jeff-zucker thoughts?

The solid-contrib repos were originally moved out from the solid repo because some members of the team felt the team should not give an official stamp of approval without review and the team did not have resources to review.  I feel the repos should fall under the Solid Code of Conduct but not sure whether ODI should  curate its contents otherwise.  I think it might be a good idea to have curated lists of apps, but perhaps that should be done through something like the catalog rather than the repos.

Also note that there in addition to /solid/ and /solid-contrib/, there are many things critical to Solid not stored in either place - SolidOS, CSS, NSS, etc.


Ilan/permission less reserve

@yaronvel please review but don't pool
@amitkot see changes I made in Orders.sol. IMO they are all mandatory. lets discuss...


Auto generated only cdktf

See initial work here: https://github.com/vellum-ai/vellum-client-node/pull/7
This makes it so that only auto-generated code is merged in this repo.
Blocked on custom packages merging first

Compiling! will need to cut a new release after merging


Using chillaxd on a macbook pro with osx10.10.5

Hello,
When I follow you directions using 'git clone' and 'sudo python setup.py install' I have problems getting 'chillaxd' to run.  First funning 'tox' doesn't work and secondly when I try just 'chillaxd' I get this error.  It seems something is wrong with pyzmq.  I tried a newer version of pyzmq but I then get an error 'pkg_resources.DistributionNotFound: pyzmq>=14.3.1,<14.4.0' from 'chillaxd'.
Bobs-MacBook-Pro:chillaxd Bob$ chillaxd
Traceback (most recent call last):
File "/usr/local/bin/chillaxd", line 9, in
load_entry_point('chillaxd==0.1a2', 'console_scripts', 'chillaxd')()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 357, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2394, in load_entry_point
return ep.load()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2108, in load
entry = import(self.module_name, globals(),globals(), ['name'])
File "build/bdist.macosx-10.10-intel/egg/chillaxd/chillax_server.py", line 18, in
File "build/bdist.macosx-10.10-intel/egg/chillaxd/raft/server.py", line 23, in
File "/Library/Python/2.7/site-packages/pyzmq-14.3.1-py2.7-macosx-10.6-intel.egg/zmq/init.py", line 49, in
File "/Library/Python/2.7/site-packages/pyzmq-14.3.1-py2.7-macosx-10.6-intel.egg/zmq/backend/init.py", line 41, in
File "/Library/Python/2.7/site-packages/pyzmq-14.3.1-py2.7-macosx-10.6-intel.egg/zmq/backend/init.py", line 29, in
File "/Library/Python/2.7/site-packages/pyzmq-14.3.1-py2.7-macosx-10.6-intel.egg/zmq/backend/select.py", line 26, in select_backend
File "/Library/Python/2.7/site-packages/pyzmq-14.3.1-py2.7-macosx-10.6-intel.egg/zmq/backend/cython/init.py", line 6, in
File "/Library/Python/2.7/site-packages/pyzmq-14.3.1-py2.7-macosx-10.6-intel.egg/zmq/backend/cython/error.py", line 7, in
File "/Library/Python/2.7/site-packages/pyzmq-14.3.1-py2.7-macosx-10.6-intel.egg/zmq/backend/cython/error.py", line 6, in bootstrap
ImportError: dlopen(/Users/Bob/.python-eggs/pyzmq-14.3.1-py2.7-macosx-10.6-intel.egg-tmp/zmq/backend/cython/error.so, 2): Symbol not found: _zmq_errno
Referenced from: /Users/Bob/.python-eggs/pyzmq-14.3.1-py2.7-macosx-10.6-intel.egg-tmp/zmq/backend/cython/error.so
Expected in: flat namespace
in /Users/Bob/.python-eggs/pyzmq-14.3.1-py2.7-macosx-10.6-intel.egg-tmp/zmq/backend/cython/error.so
Any ideas on how to fix this?
Thanks!

I'm also on OS X 10.10.5 and the instructions work for me.

tox works without any issue. I'm using tox==1.7.2
python setup.py install in a freshly created virtualenv works as well. It installed pyzmq==14.7.0
I get no error when I launch chillaxd

It does look like you're downloading the wrong version of pyzmq. Can you try installing 14.7.0? It should fit the requirements.txt
Alternatively, can you try launching this in a virtualenv?

Ok, thanks!  I'll give it a try.


Gh 1041 op example tests

Related Issue

Resolve #1041

Codecov Report

Merging #1042 (6a66261) into v2-alpha (f640ae3) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head 6a66261 differs from pull request most recent head 1a5866d. Consider uploading reports for the commit 1a5866d to get more accurate results

@@             Coverage Diff             @@
##             v2-alpha    #1042   +/-   ##
===========================================
  Coverage       45.15%   45.15%
  Complexity        101      101
===========================================
  Files              25       25
  Lines             897      897
  Branches           73       73
===========================================
  Hits              405      405
  Misses            462      462
  Partials           30       30

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 11b97de...1a5866d. Read the comment docs.


Fix incorrect copying of SelectedPointIndex and SelectedShapeIndex wh…

…ile changing shape type
Fixes: #1993332

Looks good, thanks!


Error with palace building of hedge

The game crashes when pressing option 'A' for building the hedge besides the road.

Bug has been fixed with latest commit.


enum values not correctly emitted

Swashbuckle 5.2.1 was the last version to correctly export enum values.
C# enum:
    public enum SeatType
    {
        NoSeat = 0,  // bitfields
        SeatTypeFirst_Seat = 0,
        SeatTypeFirst_Student = 1,
        LeftHanded = 1,
        RightHanded = 2,
        Ambidextrous = 3,
        NoPreference = 3,
        Handicap = 4,
        LastSeatType = 4,
    }

version 5.2.1 exported:
export enum SeatType {
    NoSeat = 0,
    SeatTypeFirst_Seat = 0,
    SeatTypeFirst_Student = 1,
    LeftHanded = 1,
    RightHanded = 2,
    Ambidextrous = 3,
    NoPreference = 3,
    Handicap = 4,
    LastSeatType = 4,
}

current version exported:
export enum SeatType {
    NoSeat = 0,
    SeatTypeFirst_Seat = 1,
    SeatTypeFirst_Student = 2,
    LeftHanded = 3,
    RightHanded = 4,
}

Please fix in next release.   Thank you.

I suspect it's caused by this .Distinct() usage

I'm encountering a conflict between a version that works with Luxon ver 13.12.0 and the non-Distinct() Swashbuckle version 5.2.1
Seems like I'll have to build my own custom Swashbuckle locally sans .Distinct() until a fix is released.
When will a fix be released?

@Perpendere the reason is because it's a requirement of the JSON Schema specification, which is what's being used to describe types, including enum types, in an OpenAPI / Swagger document. See here and the following line specifically:

The value of this keyword MUST be an array. This array SHOULD have at least one element. Elements in the array SHOULD be unique.

With that said though, it looks like a bug has crept in here whereby the dedup is being done on the original C# enum values as but should instead be done on the externally exposed values after serialization/deserialization (I assume you understand why the latter MUST be unique).


purge happens after parent templates render

This is more of a feature request, but I would expect the parent template to not execute any code in it's block if the yield contains a purge of that area. For example, I have some url helpers that work on some pages, but don't exist on others, but the url helper is executed before the purge and so an exception is raised. Is that a feasible request?

Ok, after digging into the code a bit, I've found a solution. Working on tests before creating a pull request.


Following installation instructions just gives errors.

node: v10.15.3
npm: 6.4.1
react-native-cli: 2.0.1
react-native: 0.59.3
Following the instructions gives this when I try to run run-android. I install expo as per the instructions.
This is the same error as I got a month ago or something and trying again today gives the same result. No offence but this is really poor form for something so lauded. None of the suggestions around the web for the build.gradle file changes anything.
$ react-native run-android
info JS server already running.
info Building and installing the app on the device (cd android && gradlew.bat app:installDebug)...
Picked up _JAVA_OPTIONS: -Xmx512M

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'IgniteTest'.
> Could not resolve all artifacts for configuration ':classpath'.
   > Could not resolve com.android.tools.build:gradle:3.2.1.
     Required by:
         project :
      > Could not resolve com.android.tools.build:gradle:3.2.1.
         > Could not get resource 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom'.
            > Could not GET 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom'.
               > dl.google.com:443 failed to respond
      > Could not resolve com.android.tools.build:gradle:3.2.1.
         > Could not get resource 'https://jcenter.bintray.com/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom'.
            > Could not GET 'https://jcenter.bintray.com/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom'.
               > jcenter.bintray.com:443 failed to respond
   > Could not resolve com.google.gms:google-services:3.2.1.
     Required by:
         project :
      > Could not resolve com.google.gms:google-services:3.2.1.
         > Could not get resource 'https://dl.google.com/dl/android/maven2/com/google/gms/google-services/3.2.1/google-services-3.2.1.pom'.
            > Could not GET 'https://dl.google.com/dl/android/maven2/com/google/gms/google-services/3.2.1/google-services-3.2.1.pom'.
               > dl.google.com:443 failed to respond
      > Could not resolve com.google.gms:google-services:3.2.1.
         > Could not get resource 'https://jcenter.bintray.com/com/google/gms/google-services/3.2.1/google-services-3.2.1.pom'.
            > Could not GET 'https://jcenter.bintray.com/com/google/gms/google-services/3.2.1/google-services-3.2.1.pom'.
               > jcenter.bintray.com:443 failed to respond

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s
error Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/getting-started.html
error Command failed: gradlew.bat app:installDebug. Run CLI with --verbose flag for more details.

Hey there, sorry you're running into issues. Which instructions did you follow? As far as I know, none of the instructions mention anything about Expo.
The errors you are seeing may be related to this recent breaking change by Google: https://developers.google.com/android/guides/releases

This works for me:
In package.json
"dependencies": {
...
"react-native-device-info": "2.1.2",
"react-native-gesture-handler": "1.3.0",
...
}


Fix warning about deprecated /etc/apt/trusted.gpg on Ubuntu 22.04

After running this role on Ubuntu 22.04, it correctly installs the speedtest package (thanks for this role btw!), however, it leaves the system in a state where this warning shows upon the next apt update:
W: https://packagecloud.io/ookla/speedtest-cli/ubuntu/dists/jammy/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
This is because the gpg key which is imported is stored by default in /etc/apt/trusted.gpg instead of creating its own file entry in /etc/apt/trusted.gpg.d/
This PR adds a configuration variable which lets the user specify this filename, and defaults to storing in /etc/apt/trusted.gpg.d/speedtest.gpg which should prevent this warning from occuring in the future (the user may have to manually remove the /etc/apt/trusted.gpg file after running this patch though, but it will no longer be created for subsequent runs of the role.

Thanks @compscidr for using the role and contribution.
I ran a local molecule test using the patch-1 branch, and unfortunately got the following error:
fatal: [ubuntu-22.04]: FAILED! => {
    "after": [],
    "before": [],
    "changed": true,
    "fp": "31EB3981E723ACAA",
    "id": "31EB3981E723ACAA",
    "invocation": {
        "module_args": {
            "data": null,
            "file": null,
            "id": null,
            "key": null,
            "keyring": "speedtest.gpg",
            "keyserver": null,
            "state": "present",
            "url": "https://packagecloud.io/ookla/speedtest-cli/gpgkey",
            "validate_certs": true
        }
    },
    "key_id": "31EB3981E723ACAA",
    "msg": "apt-key did not return an error, but failed to add the key (check that the id is correct and *not* a subkey)",
    "short_id": "E723ACAA"
}

Essentially the following error: apt-key did not return an error, but failed to add the key (check that the id is correct and not a subkey)
Let me know if you get some time and chance to look into it, otherwise I can attempt in the over the weekend or so.
FYI - for local testing using molecule, you can install the pip modules in following requirements file and just run molecule test: https://github.com/darkwizard242/ansible-role-speedtest/blob/master/requirements.txt
^ Expects docker being available on the system.
Also, if you rename branch to anything like feature/<whatever-here> , it will auto kick of a Github Action pipeline to run a molecule test associated to the PR.

Hm, alright - I probably messed something up, I'll give it another try and resubmit


if -ofolder is specified, add a yes/no question before removing folder

in case user is in parent folder and has written "-ofolder t1".
This happened.

not relevant. If more users want this feature we can add it.


⚠ Mobitopup has degraded performance

In f471040, Mobitopup (https://napcard.voz.tech) experienced degraded performance:

HTTP code: 200
Response time: 4104 ms

Resolved: Mobitopup performance has improved in 477a210.


Update for recent pycodestyle changes

In particular https://github.com/PyCQA/pycodestyle/pull/536 which landed as part
of 2.1.0 today (https://github.com/PyCQA/pycodestyle/blob/2.2.0/CHANGES.txt#L15)
finds one place where there should have been another newline.

LGTM. Thanks and please merge once the tests pass.


test(mempool): add comments to get_txs test

This change is

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 83.55%. Comparing base (9852d18) to head (fd910a9).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #472   +/-   ##
=======================================
  Coverage   83.55%   83.55%
=======================================
  Files          37       37
  Lines        1770     1770
  Branches     1770     1770
=======================================
  Hits         1479     1479
  Misses        212      212
  Partials       79       79

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Display issues when code is inserted in the user's prompt

Hi team!
Currently we are working on an assistant that accepts code, e.g. Python-Code, from the user in the prompt. For the code highlighting we integrated highlight.js like described on your page and it works perfectly when the LLM returns code.
Unfortunately the highlighting doesn't work very well in the user's prompt:

Somehow the first line is ignored and is not part of the format. I know this might be more related to highlight.js than to DeepChat, but maybe you have an idea or advice for this.
Edit: I forgot to mention, that we are using deep-chat-react-dev: 9.0.183
(I want to thank you for this fantastic component!)

Hi @ki-zeitalter.
Thankyou for razing the issue. I had another look at the DeepChat configuration for remarkable.js and made a change that should fix new line and code rendering issues.
This is available in deep-chat-dev and deep-chat-react-dev packages versions 9.0.185.
So when I insert the following text into the input:

I get the following result:

Let me know if this fixes your issue.

Thank you for your quick reaction! Unfortunately it doesn't seem to help... Maybe the way I'm trying to use it is wrong.
When I simply paste the code into the prompt input field, without any foreword and no triple-ticks ```, then it looks like this:

Otherwise, when I start with the words "Please analyse...." then it is able to recognize the beginning of the code block:

Like I said, maybe this is a case where the automatic code recognition can't work.

I see. remarkable.js appears to be doing its best to automatically identify the code and can unfortunately recognise a portion of it. Using the triple back-tick syntax ``` is a typical way of defining code in Mark Down, hence your users would need to use it if they want to make sure that the code is rendered correctly.
You can experiment more in the remarkable.js playground
Unfortunately any further work is down to the remarkable.js and not Deep Chat. Apologies if this causes issues for you.

Thank you anyway! I was afraid it was such a thing.


Added support for "GET /tools/{id}/versions/{version_id}/containerfile" endpoint.

Description
Added support for GET /tools/{id}/versions/{version_id}/containerfile endpoint.
Fixes #29
Type of change

[x] New feature (non-breaking change which adds functionality)

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] I have not reduced the existing code coverage
[x] I have added docstrings following the Python style guidelines of this project to all new modules, classes, methods and functions are documented with docstrings following; I have updated any previously existing docstrings, if applicable
[ ] I have updated any sections of the app's documentation that are affected by the proposed changes, if applicable

Addressed by #52


Aborted (core dumped)
Please suggest !!

There might be some problems with the C++ gmm. You can remove the compiled binary so that it will use sklearn gmm instead.

Hi, The aforementioned error has been resolved by changing the path of UBM model in interface.py
Please privide me your email address so that I can communicate with you directly in order to successfully execute this project on my machine.
Regards,
Ripundeep Gill


Updates to go.mod needed

Go version
1.22.1
What did you do?
I'm trying to compile a project.
And I want to use github.com/quic-go/quic-go v0.40.1
The compiler tells me that I can't use this version and I have to update it to at least 0.43.0
I don't need that. And I want to use 0.40.1 version.
Why does the program dictate to me what version I should use????

We don't use GitHub for discussions or questions.  Please use a forum instead.  See https://go.dev/wiki/Questions.  Thanks.
If you are absolutely certain that this is a bug, you will need to explain how to reproduce the problem.  We won't be able to do anything without that sort of information.

@ianlancetaylor This is not a discussion. To reproduce the bug install the version:
github.com/quic-go/quic-go v0.40.1
in go.mod
Then try to synchronize the project. Synchronization will automatically update the version to 0.44.0
But I need 0.40.1

I am able to build a project which imports quic-go at version v0.40.1 with no trouble.
We'll need more info.
"the project" = what project, exactly? Something might depend on other entries in your go.mod, or some source file.
"try to synchronize" = what is that, exactly? "go mod tidy", or something else? What exact command did you run?
How do you know the version is updated? Did it change in the go.mod file, or are you seeing this version change some other way?

@randall77 Project - gomobile
Command for synchronization: go mod tidy

How do you know the version is updated?

I see it in go.mod

https://github.com/golang/go/assets/5380115/bcdc0e81-7ad4-4e11-aab7-97d98e8794fc
I literally can't do anything. Even in Goland.

git clone https://github.com/golang/mobile
cd mobile
go mod tidy
grep quic go.mod

Returns no result. What am I missing?

@randall77 Okay. Use the project https://github.com/libp2p/go-libp2p

And I can't not update the version on the command line and in Goland. So the problem is in Go.

go mod graph (https://go.dev/ref/mod#go-mod-graph) reports this edge:
<EMAIL_ADDRESS><EMAIL_ADDRESS>
Sure enough, 0.43.0 is required by that module.
https://github.com/quic-go/webtransport-go/blob/master/go.mod
Which was bumped by that project at https://github.com/quic-go/webtransport-go/pull/150 less than 2 months ago.
Your require line is a minimum version spec. Any of your dependencies can require a later version, and Go will pick the minimum version that satisfies everyone (https://research.swtch.com/vgo-mvs).

If you really want to use an earlier version of quic-go, you'll also need an earlier (or modified) version of webtransport-go.

@randall77 Okay. Thank you! But there has to be some kind of message here, I think. From the programmer's side, it seems that Go dictates the version to be used. And it's very time-consuming.
Something needs to be done about it.

From the programmer's side, it seems that Go dictates the version to be used.

Go is not doing the dictating. Your dependencies are doing the dictating.

Something needs to be done about it.

We're open to suggestions. I think changing the selection algorithm is out of the question, but possibly there could be a tool (maybe a mode of go mod tidy?) that describes why it is picking that version. It was pretty easy for me to do that with go mod graph and grep.

@randall77 It is necessary to display the message in the command:
go mod tidy
If the version of one component has been updated because of another component.

@randall77 Or at least some kind of go mod tidy mode that will display a log of its work.

Otherwise, the programming looks very strange https://github.com/golang/go/issues/68076#issuecomment-2179498413

The go command reports:
$ go build
go: updates to go.mod needed; to update it:
	go mod tidy

For what you're experiencing, I think that should be a bug report to GoLand for better feedback on changing to incompatible versions.

If you actually used the command line to use the lower version, it would have performed all the necessary downgrades for you:
$ go get<EMAIL_ADDRESS>go: downloading github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572
go: downloading github.com/google/pprof v0.0.0-20240207164012-fb44976bdcd5
go: downloading golang.org/x/time v0.0.0-20181108054448-85acf8d2951c
go: downloading github.com/quic-go/webtransport-go v0.6.0
go: downgraded github.com/quic-go/quic-go v0.43.0 => v0.41.0
go: downgraded github.com/quic-go/webtransport-go v0.8.0 => v0.6.0

@seankhliao

If you actually used the command line to use the lower version, it would have performed all the necessary downgrades for you:

This is too complicated for Android programmer. And I use gomobile, which recommends me to use : go get golang.org/x/mobile/bind to synchronize components.
I do that and the version is up.
But how to get the version that was there before the automatic upgrade is not written anywhere. And I didn't know it was even possible to start searching.
There is something that needs to be fixed. Make sure that Goland does not ask for additional fixes later.


Tooling failure error when using bazel workers

Hi.
When I execute:
bazel build ...

with
build --strategy=TypeScriptCompile=worker

in my tools/bazel.rc, I run into a compilation error that has something to do with the way the ts_library works:
$ blaze build ...
INFO: Analysed 17 targets (0 packages loaded).
INFO: Found 17 targets...
ERROR: /Users/applmak/Desktop/social-idea-3/login/client/BUILD:5:1: Compiling TypeScript (devmode) //login/client:client failed (Exit 1)
Compilation failed Error: missing input digest for /private/var/tmp/_bazel_applmak/150e42f18a8e4f38a94670281d9463c9/execroot/social_idea/bazel-out/host/bin/external/build_bazel_rules_typescript/internal/tsc_wrapped/compiler_host.d.ts.

The output goes on for pages, listing the files that the compilation can find.
This also happens when I depend on the .es6.js (prodmode) file.
I have tried blaze clean --expunge, but this doesn't seem to help. My WORKSPACE:
workspace(name = "social_idea")

git_repository(
    name = "build_bazel_rules_nodejs",
    remote = "https://github.com/bazelbuild/rules_nodejs.git",
    tag = "0.12.0", # check for the latest tag when you install
)

load("@build_bazel_rules_nodejs//:package.bzl", "rules_nodejs_dependencies")
rules_nodejs_dependencies()

# Include @bazel/typescript in package.json#devDependencies
local_repository(
    name = "build_bazel_rules_typescript",
    path = "node_modules/@bazel/typescript",
)

# Fetch our Bazel dependencies that aren't distributed on npm
load("@build_bazel_rules_typescript//:package.bzl", "rules_typescript_dependencies")
rules_typescript_dependencies()

# Setup TypeScript toolchain
load("@build_bazel_rules_typescript//:defs.bzl", "ts_setup_workspace")
ts_setup_workspace()

# Point to the package.json file so Bazel can run the package manager for you.
load("@build_bazel_rules_nodejs//:defs.bzl", "node_repositories")
node_repositories(package_json = ["//:package.json"], node_version="9.11.1")

# Setup Go toolchain
load("@io_bazel_rules_go//go:def.bzl", "go_rules_dependencies", "go_register_toolchains")
go_rules_dependencies()
go_register_toolchains()

# Setup web testing, choose browsers we can test on
load("@io_bazel_rules_webtesting//web:repositories.bzl", "browser_repositories", "web_test_repositories")

web_test_repositories()
browser_repositories(
    chromium = True,
)

Hard to tell from that info, but do you see that missing file appear in node_modules/@bazel/typescript? Does it appear in the output of bazel query 'deps(//:node_modules)'? Maybe it's being excluded from the inputs to the ts_library.

Okay, I finally found a way to get this working, but I had to switch to the fine-grained npm deps. I'm still unsure as to what was broken before, but after reverting to a less-custom setup, I'm able to use the worker, and work far more effectively.


[CSRanking] Fix solution filtering not to erase everything when set i…

…s completely ambiguous
Since constraint solver has been improved to diagnose more problems
via "fixes", sometimes applying fixes might lead to producing solutions
which are completely ambiguous when compared to each other, and/or are
incomparable, which leads to findBestSolutions erasing all of them
while trying to compute best "partial" solution, which is incorrect.
Resolves: SR-8396
Resolves: rdar://problem/42678836

@swift-ci please smoke test

/cc @nathawes @rintaro

@swift-ci please test

Build failed
Swift Test OS X Platform
Git Sha - 09bd02f25333e7d36700f0b984b48bd1399b0f8d

Build failed
Swift Test Linux Platform
Git Sha - 09bd02f25333e7d36700f0b984b48bd1399b0f8d

@swift-ci please test source compatibility


Created shims (for GUI apps) don't preserve parent console

This is a problem for GUI applications which connect back to the parent console to, for example, display help on their command-line options when invoked from the command-line. For an example, Mouse Jiggler, a GUI app, when invoked with -h, produces:
114>C:\ProgramData\chocolatey\lib\mouse-jiggler\tools\MouseJiggler.exe -h
115>MouseJiggler:
  Virtually jiggles the mouse, making the computer seem not idle.

Usage:
  MouseJiggler [options]

Options:
  -j, --jiggle               Start with jiggling enabled. [default: False]
  -m, --minimized            Start minimized. [default: False]
  -z, --zen                  Start with zen (invisible) jiggling enabled. [default: False]
  -s, --seconds <seconds>    Set number of seconds for the jiggle interval. [default: 1]
  --version                  Show version information
  -?, -h, --help             Show help and usage information

115>

Which it gets the ability to display by reconnecting to the console of its parent process, usually in this case the CLI, by calling:
Kernel32.AttachConsole (dwProcessId: Helpers.AttachParentProcess);

and detaching from it again once it knows that no display is necessary.
But, of course, when invoked via the shim created by Chocolatey, the shim is the parent process and has no console, as GUI apps do, and so mousejiggler -h exits without displaying anything.
It would be useful, thus, if the generated shim could use the same technique to preserve the console of the parent process, so that GUI apps invoked from the command-line would retain the option of accessing it.

Based on some changes happening to the Chocolatey repositories, this issue has been moved from the chocolatey/shimgen repository to the chocolatey/home repository.


Rewrite semver tests to use pytest's parametrize functionality

via https://github.com/jupyter/repo2docker/pull/613#discussion_r263836315:

In a future refactor, we should use pytest's parameterize capability to feed in versions to get closer to DRY. See example from JupyterHub tests.

This would make a good issue for getting started on contributing to repo2docker and/or someone who wants to learn more about pytest.

Can I work on this issue? I'm still new to this, so a little guidance would be very nice!

The idea is to rewrite the test function that Carol's commented on to have one line of code instead of lots of lines that are the same except for the values that are being tested. We'd pass inn the many different values and the expected answer via this mechanism.

@betatim some code coverage is failing!

Is that related to the code I've changed? Is there anything I should solve?


Add host command framework

If Zephyr is used for an embedded controller (EC) on a notebook or computer, the EC needs to communicate with the host Application Processor AP (or CPU). This PR adds a host communication framework that is based on the open-source, chromium host command framework.
Host command process can be thought of in 4 layers:

Specific host command handler routines

Registered at build time. Many different host command handler routines. One for each Id.

Host command handler framework and router

Only one of these. Runs in its own thread.

Host command peripheral devices

Prepares packets correctly for specify hardware bus device. One per bus type. Has unified API so host command handler framework and use different bus types.

Hardware bus devices

Should already have hardware device interfaces for these like  i2c, spi, eSPI.

This PR implements:

host command handler framework
defines the host command peripheral device API
provides a simulated host command peripheral for unit testing

Future PRs will add the host command peripheral devices for each applicable bus type: SPI, eSPI, and etc.
It will be left up to application code to register host commands at build time and also manage the mapping of host commands to id.

A couple of comments from my side upon first look:

I think this probably belongs in subsys/mgmt/host_cmd.
In general the function (and module) names are overly long when compared to the ones we are used to in Zephyr
Is "Host command" the name of this framework? It's a bit confusing to me coming from Bluetooth, since we have "Host Commands" in there

A couple of comments from my side upon first look:

I think this probably belongs in subsys/mgmt/host_cmd.
In general the function (and module) names are overly long when compared to the ones we are used to in Zephyr
Is "Host command" the name of this framework? It's a bit confusing to me coming from Bluetooth, since we have "Host Commands" in there

Thank you for such quick feedback!
I am completely fine with moving this around; I took my best guess. I could see this going under management, but host commands aren't necessary management related (although some would be). The host processor queries the EC for a bunch of information about battery or USB-C power. Keyboard presses (read in by EC) can also be delivered over this interface to the AP. If that all sounds like management to you, then I will definitely move it.
I will shorted the names :) I tend to be a little more verbose on names ever since I programmed in java land for a couple of years!
I would call this the "host command framework" as it processes host command request and responses. Should we rename to AP host commands instead? What kind of host commands are on the bluetooth stack (or what are they used for)?
After I get your feedback on naming, I will move all of the files and shorted the names.

Looks like my only CI failure now is a known issue #27847 fixed by #27940
I happy to change around naming, just let me know what your thoughts are.

I am completely fine with moving this around; I took my best guess. I could see this going under management, but host commands aren't necessary management related (although some would be). The host processor queries the EC for a bunch of information about battery or USB-C power. Keyboard presses (read in by EC) can also be delivered over this interface to the AP. If that all sounds like management to you, then I will definitely move it.

When we discussed the contents of subsys/mgmt in recent weeks the decision was to use it as a location for all sorts of protocols that are used to "manage" a device, with the definition of "manage" being as wide as possible. This was because we did not want to create a subsys/protocols or have the subsys/ folder cluttered with all sorts of custom protocols. There were several proposals but we ended up with mgmt as the chosen name. @galak, @nashif, @MaureenHelm any additional input?

I will shorted the names :) I tend to be a little more verbose on names ever since I programmed in java land for a couple of years!
OK, thank you 👍

I would call this the "host command framework" as it processes host command request and responses. Should we rename to AP host commands instead? What kind of host commands are on the bluetooth stack (or what are they used for)?

I am thinking that since this is specific to an "EC" or "Embedded Controller" which is something that is in its turn specific to Chromebooks (please do correct me if that is not the case), perhaps we could use that term? Something like subsys/mgmt/ec instead and then inside you could add your references to the "host command framework" in the individual files. I am trying to separate things at a higher level so that if someone else comes up with another "host command" framework in the future it doesn't collide with yours. I think "EC" is less likely to collide than "host commands". In Bluetooth host commands are all those that are sent by the Host to the Controller in order to start broadcasting, connecting, etc.

I am thinking that since this is specific to an "EC" or "Embedded Controller" which is something that is in its turn specific to Chromebooks (please do correct me if that is not the case), perhaps we could use that term? Something like subsys/mgmt/ec or subsys/mgmt/cb_ec (for Chromebook EC) instead and then inside you could add your references to the "host command framework" in the individual files. I am trying to separate things at a higher level so that if someone else comes up with another "host command" framework in the future it doesn't collide with yours. I think "EC" is less likely to collide than "host commands". In Bluetooth host commands are all those that are sent by the Host to the Controller in order to start broadcasting, connecting, etc.

I add the ec_ prefix to both the driver and subsys. The need for an EC host command interface does extend to all notebook and computers (not just Chome OS devices). This implementation is heavily influence by the existing Chrome OS interface, but any EC needing to communicate with a host could leverage this (especially hosts running linux since there is upstream support for parsing this format already).
I also moved subsys/host_command to subsys/mgmt/ec_host_cmd
Please take a look. Thank you!

Would be good to have an emulator for this so we can write a test

What layer of emulation were you hoping for? There is the ec host cmd peripheral device simulator that I used in the unit tests: https://github.com/zephyrproject-rtos/zephyr/pull/27941/commits/ce9117f66e463732c3579e2a16096fb5422d4eb5#diff-94bb0c9df4728d3912ff42e68ab6c69d

Oh I think I missed that. Did I review a different pull request or am I
just blind? :-)
On Thu, 3 Sep 2020 at 13:40, Jett Rink<EMAIL_ADDRESS>wrote:

Would be good to have an emulator for this so we can write a test
What layer of emulation were you hoping for? There is the ec host cmd
peripheral device simulator that I used in the unit tests: ce9117f
#diff-94bb0c9df4728d3912ff42e68ab6c69d
https://github.com/zephyrproject-rtos/zephyr/commit/ce9117f66e463732c3579e2a16096fb5422d4eb5#diff-94bb0c9df4728d3912ff42e68ab6c69d
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
https://github.com/zephyrproject-rtos/zephyr/pull/27941#issuecomment-686715682,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AANBFTHFCCYUMWF5C33HK7DSD7WKDANCNFSM4QSBLNIA
.


Support for Jupyterlite

This is an awesome feature for jupyterlab.
When i try to install it in jupyterlite 0.2.3 (https://jupyterlite.readthedocs.io) i have the following error.
ValueError: Can't find a pure Python 3 wheel for 'tornado>=6.1.0'.
See: https://pyodide.org/en/stable/usage/faq.html#why-can-t-micropip-find-a-pure-python-wheel-for-a-package
You can use `await micropip.install(..., keep_going=True)` to get a list of all packages with missing wheels.

Not sure why, since tornado is used by jupyterlab server.

I think this would be solved with https://github.com/jupyterlab-contrib/jupyterlab-spreadsheet-editor/issues/61. I will add a comment here you once the lab 4.0 upgrade is ready for testing

Can you test with jupyterlab-spreadsheet-editor v0.7.1?

I can't get it to work.
When I try on my server or on https://jupyter.org/try-jupyter/lab/
import micropip await micropip.install("jupyterlab-spreadsheet-editor")
there is no more warning but it seems that nothing happened...

Ah unfortunately you won't be able to install this extension that way. You need to make your own deployment of Jupyterlite and follow this guide for installing external extensions.

Thanks, I had forgotten that.
Works perfectly now.
My docker composes if anyone wants to test.
version: "3.7"
services:
  jupyterlite:
    image: continuumio/miniconda3
    command: bash -c "
      pip install jupyterlite-core==0.2.3 && \
      pip install jupyter_server && \
      pip install jupyterlite-pyodide-kernel && \
      pip install jupyterlite-core[all] && \
      pip install ipywidgets==8.1.1 &&\
      pip install jupyterlab-spreadsheet-editor &&\
      pip install bqplot &&\
      pip install plotly &&\

      jupyter lite build &&\
      jupyter lite serve --port=8087"
    ports:
      - 8087:8087
    container_name: jupyterlite

Works perfectly now.

:tada: Thanks for confirming - I will close this issue now.


Wrong quouting of expression

Environment
Knex version: 1.0.1
Database + version: Postgres 11
OS: macOS
Bug
(I think this is a bug but please redirect me to elsewhere if necessary :) )

Explain what kind of behaviour you are getting and how you think it should do

In one of our queries we want to use an expression that's the concatenation of two columns as a where restricition. Something like the following:
SELECT *
FROM foo
WHERE
   foo.foo || '#' || foo.bar = 'value-foo#value-bar'

After several attempts we haven't been able to get knex to properly quoute the expression which results in an error when executing the resulting SQL. For example:
knex.from('foo').where({'foo.foo || \'#\' || foo.bar': 'value-foo#value-bar'}).toString()

=>

`select * from "foo" where "foo"."foo || '#' || foo"."bar" = 'value-foo#value-bar'

Notice how the qouting of "foo"."foo || '#' || foo"."bar" is incorrect (looks like "foo || '#' || foo" is treated as one field/column). We are aware of the wrapIdentifier option but that'd would a global setting that would require handling of lots of case just for one particular case.
Are we doing something wrong or is this a bug? Is there any workaround?

Error message

There's no error message returned from knex itself but by the db when it attempts to execute the resulting query

Reduced test code, for example in https://npm.runkit.com/knex or if it needs real
database connection to MySQL or PostgreSQL, then single file example which initializes
needed data and demonstrates the problem.

knex.from('foo').where({'foo.foo || \'#\' || foo.bar': 'value-foo#value-bar'}).toString()

Hello!
You can try to do it like this:
knex.from('foo').whereRaw("foo.foo || \'#\' || foo.bar = 'value-foo#value-bar'")

@maximelkin there's another case where things break. We also have to apply the same expression in an out join and there we get the same quotation issue. Example:
knex.from('foo').leftJoin('bar', function () { this.on('foo.id', '=', 'bar.foo_id' ).andOn('"foo.foo" || \'#\' || "foo.bar" ', 'value-foo#value-bar') }).toString()

yields
SELECT
  *
FROM
  "foo"
  LEFT JOIN "bar" ON "foo"."id" = "bar"."foo_id"
    AND """foo"."foo"" || '#' || ""foo"."bar""" = "value-foo#value-bar"

Ah, nevermind, figured it out:
K.from('foo').leftJoin('bar', function () { this.on('foo.id', '=', 'bar.foo_id' ).andOn(K.raw('"foo.foo" || \'#\' || "foo.bar"'), K.raw(`'value-foo#value-bar'`)) }).toString()

yields
select * from "foo" left join "bar" on "foo"."id" = "bar"."foo_id" and "foo.foo" || '#' || "foo.bar" = 'value-foo#value-bar'

K.raw('value-foo#value-bar')

You can actually pass whole string, it will be wrapped anyway.
Also check out: docs about knex.raw. This could help to avoid unsafe string interpolation (i.e. using ??).


TestableExamples

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 98.64%. Comparing base (05225c2) to head (d888a29).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main      #16   +/-   ##
=======================================
  Coverage   98.64%   98.64%
=======================================
  Files          12       12
  Lines         591      591
=======================================
  Hits          583      583
  Misses          8        8

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Error executing

Hello!
I found this project and was very excited to be able to pull in my existing Canvas tasks to todoist. Unfortunately, it doesn't seem to work, and I'd love some help.
Executing it returns the error "AttributeError: 'str' object has no attribute 'get'"
`
user@macbookf Canvas-Assignments-Transfer-For-Todoist-master-1 % python easy_run.py
###################################################
Canvas-Assignments-Transfer-For-Todoist
###################################################
Traceback (most recent call last):
File "/Canvas-Assignments-Transfer-For-Todoist-master-1/easy_run.py", line 162, in
main()
File "/Canvas-Assignments-Transfer-For-Todoist-master-1/easy_run.py", line 22, in main
select_courses(keys)
File “/Canvas-Assignments-Transfer-For-Todoist-master-1/easy_run.py", line 73, in select_courses
courses_id_name_dict[course.get('id', None)] = course.get('name', None)
AttributeError: 'str' object has no attribute 'get'`
I also found and identified a few additional notes/problems:

Many universities appear to have custom domain hosted Canvas URLs - so I needed to change the URL from "https://canvas.instructure.com" to the URL of my university
To obtain an API key, you go to "Account" then "Settings", then "New Access Token"
I've confirmed the canvas API does work and returns my classes successfully (happy to send privately if that would help)

It appears there is some sort of change with API authentication - adding the response or response.status_code returns a 401 for me. Will troubleshoot that further.

Sorry to hear you are having problems, I've graduated from university so I haven't checked on this project in a while but will redownload and check it out. lukew3 also has a great fork of this project that may have more up to date specs https://github.com/lukew3/canvasTodoist

I just gave lukew3's a shot and had same issues, but it does appear more recent.
Manually modifying canvas_token to my API token allows the retrieve_canvas_course_ids.py to function successfully, but then I still get the same errors.

Okay, I found the issue, it appears that the tokens are not being stored in the right order. in api_keys.txt the canvas token should be the second line but is being stored as the first, meaning the Todoist token is being used for the canvas api.

Yeah, I got that far and figured that part out. Still something going on after that point. Here's what I get:user@mbp Canvas-Assignments-Transfer-For-Todoist-master-1 % python3 ./canvas_to_todoist.py BA 140-02 Tableau for Business Analytics:<PHONE_NUMBER>0010544 BA 147-02 Intro to Databases and SQL:<PHONE_NUMBER>0011504 Traceback (most recent call last):   File "/Canvas-Assignments-Transfer-For-Todoist-master-1/./canvas_to_todoist.py", line 105, in <module>     create_todoist_projects()   File "/Canvas-Assignments-Transfer-For-Todoist-master-1/./canvas_to_todoist.py", line 60, in create_todoist_projects     if courses_id_name_dict[course_id] not in todoist_project_dict: KeyError: 10544

Were you able to get to the part where you select your courses and the ids get stored in api_keys.txt? After fixing the API key issues I was able to get it run and add assignments to my Todoist account.

Just re-tested, it works. Huge thanks for the quick response!

Glad it still somewhat works 😅
Feel free to submit a pull request for additional features/tweaks!

Also, it doesn't look like after testing that the custom URL is needed - the regular canvas.instructure.com URL appears to return the necessary data.

I did identify an additional bug issue when dealing with classes which have special characters in the title and started a separate thread for that.
There's also some other features I'd love to add, I'll try to get back to those.


Same score for matches even though Levenshtein distance is different

Example

The following examples returns that the 2 items have the same similarity score;

const needle = "Ildaf Samiev";
const haystack = [
  { name: "Ildaf Rafi Samier" },
  { name: "Ildaf Rafi Saitor" }
];

var fuse = new Fuse(haystack, {
  include: ["score"],
  keys: ["name"]
});

const result = fuse.search(needle);

I get back these results:
  {
    "item": {
      "name": "Ildaf Rafi Samier"
    },
    "score": 0.3333333333333333
  },
  {
    "item": {
      "name": "Ildaf Rafi Saitor"
    },
    "score": 0.3333333333333333
  }

While in reality they have the following Levenshtein distances:
"Ildaf Samiev" - "Ildaf Rafi Samier" has an L-dist of 6
"Ildaf Samiev" - "Ildaf Rafi Saitor" has an L-dist of 9
Shouldn't "Ildaf Rafi Samier" register as more similar than "Ildaf Rafi Saitor"?

Follow up:
Slipping a console.log to get the matchedIndices of each item in the haystack returns the following:
// If a match is found, add the item to <rawResults>, including its score
if ((exists || mainSearchResult.isMatch) && checkTextMatches) {
  // Check if the item already exists in our results
  existingResult = this.resultMap[index]

  console.log(text, mainSearchResult.matchedIndices)

returns:
Ildaf Rafi Samier [ [ 0, 5 ], [ 7, 15 ] ] // shouldn't this have a higher score since it spans more indices?
Ildaf Rafi Saitor [ [ 0, 5 ], [ 7, 13 ] ]


Game plan: EL6 Deprecation (v3.3.0)

Per Roadmap (https://docs.stackstorm.com/roadmap.html#id1), CentOS 6 / RHEL 6 will be fully deprecated and removed in the v3.3.0 release.
This includes a lot of very easy and small tasks related to OS cleanup across the StackStorm repositories and we encourage Community to help there. There are perfect tasks for the new Contributors and will introduce you to the different platform places.
Here are the pointers in different StackStorm org repositories to remove the el6 support:
Plan: https://github.com/orgs/StackStorm/projects/17

[x] st2

[x] stop the EL6 build in CircleCI https://github.com/StackStorm/st2/pull/4984 (@amanda11)
[x] identify/close any EL6 related issues
[x] remove any EL 6-specific code paths

[x] st2-packages

[x] update scripted installer to remove EL6 support https://github.com/StackStorm/st2-packages/pull/654 (@eorochena)
[x] remove EL6 rpm scriptlets and init scripts https://github.com/StackStorm/st2-packages/pull/658 (@armab)
[x] remove st2python package - only actual for EL6 https://github.com/StackStorm/st2-packages/pull/658 (@armab)
[x] stop the EL6 build in CircleCI https://github.com/StackStorm/st2-packages/pull/654 (@eorochena)

[x] st2chatops - stop CircleCI builds and remove EL6 rpm scriptlets https://github.com/StackStorm/st2chatops/pull/153 (@amanda11)
[x] st2web - stop CircleCI builds and remove EL6 rpm scriptlets https://github.com/StackStorm/st2web/pull/768 (@amanda11)
[x] st2-enterprise-auth-backend-ldap - stop CircleCI builds producing EL6 rpm https://github.com/StackStorm/st2-enterprise-auth-backend-ldap (@amanda11)
[x] st2-enterprise-rbac-backend - stop CircleCI builds producing EL6 rpm https://github.com/StackStorm/st2-enterprise-rbac-backend/pull/36 (@amanda11)
[x] st2-enterprise-sso-backend - stop CircleCI builds producing EL6 rpm https://github.com/StackStorm/st2-enterprise-sso-backend/pull/12 (@amanda11)
[x] st2packaging-dockerfiles https://github.com/StackStorm/st2packaging-dockerfiles/pull/89 (@sheshagiri and @amanda11) - remove EL6 Dockerfiles
[x] ansible-st2 https://github.com/StackStorm/ansible-st2/issues/267 (@amanda11)
[x] puppet-st2 https://github.com/StackStorm/puppet-st2/pull/305 (@nmaludy)
[x] chef-stackstorm - repo to be deprecated and archived (@armab)
[x] st2ci https://github.com/StackStorm/st2ci/pull/188 update to stop e2e testing EL6 packages
[x] st2cd https://github.com/StackStorm/st2cd/pull/439 update to stop promoting EL6 packages

[x] sync-up Release Checklist

[x] st2docs https://github.com/StackStorm/st2docs/pull/994 update to remove EL6 installation/support

[x] roadmap update

[ ] Announce full EL6 deprecation in the v3.3.0 blog post

If you have any questions, - feel free to ask here or in #development channel of StackStorm Community Slack: https://stackstorm.com/#community

@armab happy to take a stab at st2-packages, I will check with the community if I get stuck somewhere.

Closing as all items of the EL6 deprecation roadmap are finished.
Thanks @amanda11, @eorochena, @Sheshagiri, @nmaludy for the collective work and everyone who helped with review!


Gurobi::LinExpr::addTerms

Currently, it appears that in order to build complex linear expressions terms must be added one at a time. This is probably not efficient from a runtime perspective. Gurobi provides an add_terms() method which takes coefficients and variables and allows you to build a linear expression more than one term at a time. Can we expose this functionality in the rust api?

The gurobi::LinExpr type does not interact directly with gurobi, and is more of a collection type. Its add_term method is merely a push to a vector. You can use set_coeffs to update many coefficients at once, although you should be aware that #46 has not yet been published.

still wouldn't something like this, be more efficient?
extending a vector is going to be way better than pushing each term on individually.
  /// Add multiple linear terms into the expression.   pub fn add_term(mut self, coeffs: Vec<f64>, vars: Vec<Var>) -> Self {     self.coeff.extend(coeff);     self.vars.extend(var);     self   }

It wont have any real impact on your performance, but if you think it would be more ergonomic to provide a method that takes slices, that's fine with me.

Closed by #49.


Re-use buffers in high-throughput execution paths.

This change attempts to avoid massively wasted one-time use memory by
reusing very commonly recreated buffers.
This issue was found with a test program that runs Ed25519::verify once
per second, which Java Flight Recorder shows will leave ~120MiB of dead
memory lying around after five minutes. This ramps up DRAMATICALLY with
traffic.

Thanks for improving Tink! This looks good to me.
How much memory are we saving with this PR?
@bleichen or @tholenst, any opinions?

I'm not happy that this might be needed. Of course, the Aaron's point is that it is needed :/ However, at the moment I would still somewhat prefer not to merge this.
The problems I see are:
(1) In general, it increases code complexity, and hence likelyhood of error.
(2) It makes things more brittle; if someone decides that it would be useful to call "add" in some uncommonly taken code path in "mult", the buffer will be overwritten and things break
(3) It solves a problem of the JVM which is currently present; however, nothing says that this problem is still present in some unspecified point in the future. In fact, the more cores your machine has, the more memory this wastes.
Would an alternative solution be to allow the offending functions to take a "scratch space" buffer? The advantage would be that then the dependency would be explicit, and we wouldn't need Thread Locals.
Another solution might be to have a non-thread safe executor object which includes a buffer. Then, instead of the something like:
  Field25519.square(u, y);
  Field25519.mult(v, u, D);
  Field25519.sub(u, u, z); // u = y^2 - 1
  Field25519.sum(v, v, z); // v = dy^2 + 1

one would write:
Field25519Calculator calculator = new Field25519Calculator();
calculator.square(u, y);
calculator.mult(v, u, D);
calculator.sub(u, u, z); // u = y^2 - 1
calculator.sum(v, v, z); // v = dy^2 + 1
I think this would also be more intuitive.

I'm even surprised that such changes are actually helpful and not in fact
hurtful.
I.e. the current code looks like a simple case for an escape analysis. E.g.
https://www.cc.gatech.edu/~harrold/6340/cs6340_fall2009/Readings/choi99escape.pdf
My impression is that java compilers generally aim for "write clean code
and let the
compiler take care of the rest".
I don't know whether the author of the Eddsa code was running any
benchmarks.
It would probably make some sense to compare different platforms.
On Thu, Oct 17, 2019 at 11:00 AM Thomas Holenstein<EMAIL_ADDRESS>wrote:

I'm not happy that this might be needed. Of course, the Aaron's point is
that it is needed :/ However, at the moment I would still somewhat prefer
not to merge this.
The problems I see are:
(1) In general, it increases code complexity, and hence likelyhood of
error.
(2) It makes things more brittle; if someone decides that it would be
useful to call "add" in some uncommonly taken code path in "mult", the
buffer will be overwritten and things break
(3) It solves a problem of the JVM which is currently present; however,
nothing says that this problem is still present in some unspecified point
in the future. In fact, the more cores your machine has, the more memory
this wastes.
Would an alternative solution be to allow the offending functions to take
a "scratch space" buffer? The advantage would be that then the dependency
would be explicit, and we wouldn't need Thread Locals.
Another solution might be to have a non-thread safe executor object which
includes a buffer. Then, instead of the something like:
Field25519.square(u, y);
Field25519.mult(v, u, D);
Field25519.sub(u, u, z); // u = y^2 - 1
Field25519.sum(v, v, z); // v = dy^2 + 1
one would write:
Field25519Calculator calculator = new Field25519Calculator();
calculator.square(u, y);
calculator.mult(v, u, D);
calculator.sub(u, u, z); // u = y^2 - 1
calculator.sum(v, v, z); // v = dy^2 + 1
I think this would also be more intuitive.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/google/tink/pull/265?email_source=notifications&email_token=AGGH7XWUHEPPLZCOHBPGFOLQPASTFA5CNFSM4I5PZANKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBPLQBQ#issuecomment-543078406,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGGH7XUMT6THYU3SY2XCWZDQPASTFANCNFSM4I5PZANA
.

How much memory are we saving with this PR?

In production this accounted for 42GiB of allocations every five minutes, which was about 35% of allocations in our very bloated monolith.
I also considered the executor object idea, I just got into the mode of hyper memory efficiency, but that's probably perfectly fine.

Hi.
The
long[] t0 = new long[LIMB_CNT] style lines look they should be covered in Escape Analysis/Scalar Replacement.
https://stackoverflow.com/questions/43002528/when-can-hotspot-allocate-objects-on-the-stack
https://stackoverflow.com/questions/9032519/eligibility-for-escape-analysis-stack-allocation-with-java-7
Make sure that the methods are actually getting inlined and hence eligible for EA.  -XX:-PrintCompilation
Make sure that JFR is not actually disabling escape analysis.  Enabling sampling profilers will disable it for sure. Not sure about JFR agent running in background.
https://bugs.openjdk.java.net/browse/JDK-8227745
For the
XYZ buf = new XYZ();
for (; i >= 0; i--) {	    for (; i >= 0; i--) {
  doubleXYZ(t, new XYZ(t));	      XYZ.fromPartialXYZT(buf, t);
  doubleXYZ(t, buf);

new XYZ() might be eligible for scalar replacement because the default constructor has a final static length so the arrays may be eligible and it looks like the XYZ doesn't escape the function.  Did you try it with just that optimization?
XYZ() {
  this(new long[LIMB_CNT], new long[LIMB_CNT], new long[LIMB_CNT]);
}

We ended up switching to Bouncy

I'm closing this, as I don't think eeSeeGee is interested in doing the changes we wanted. Also, one should check whether escape analysis works, and keep the code if it does.

Reopening this, as I heard from Square that they're also concerned about high memory usage in Tink's Ed25519 implementation.
Thomas, how can we check whether escape analysis works?

Closing this again. It has not been looked at for 2.5 years.


Add merge_gridded_data to tutorials

Add an explanation of merge_gridded_data somewhere in the tutorials, I am not sure at the moment at which place.
Adapt distribute_flowline tutorial:

Add an explanation of new merging functionality for dynamic runs to this tutorial, added in PR https://github.com/OGGM/oggm/pull/1674.
Also need to rename distributed_thickness to simulated_thickness in this notebook.

Hey @pat-schmitt I found another issue with the tutorials ... in distribute_thickness_from_simulation you assume that add_smoothed_glacier_topo and assign_points_to_band have been run before that task but the tutorials do not reflect that.
 # This is to add a new topography to the file (smoothed differently)
workflow.execute_entity_task(distribute_2d.add_smoothed_glacier_topo, gdirs)
# This is to get the bed map at the start of the simulation
workflow.execute_entity_task(tasks.distribute_thickness_per_altitude, gdirs)
# This is to prepare the glacier directory for the interpolation (needs to be done only once)
workflow.execute_entity_task(distribute_2d.assign_points_to_band, gdirs);

Maybe modify the order above in the notebook. Took me a bit to work it out.


Enable Commit to cover new proposal types (#389)

https://github.com/mlswg/mls-protocol/pull/389

Requires rewrite of commits


C# Visual Studio, parameter evaluation time in function dynamically set

for (int i = 0; i < 4; i++){             int lv = i + 1;             GameObject btn = Instantiate(LevelButton);             btn.GetComponent<Button>().onClick.AddListener(() => LoadLevel(lv));  }
for (int i = 0; i < 4; i++){             GameObject btn = Instantiate(LevelButton);             btn.GetComponent<Button>().onClick.AddListener(() => LoadLevel(i + 1));  }
I'm using C# to develop in Unity, but I do not think it's connected to what I think is a bug.
The codes shown have unexpectedly different behaviors: in the first case the parameter of the LoadLevel function when called is correct; in the second case the parameter is always 5, it seems that if the variable passed by the parameter is not temporary it is evaluated at the end of the cycle.

It seems that issue is not related to Collaborate documentation.


Fix link to discussion about helm charts in production

What was changed
The link to a discussion about managing Temporal deployments in production in the README is broken.
Why?
So I can get to the article without hunting for it.
Checklist

How was this tested:

I clicked the link in preview mode.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

This new link is broken FYI - is there any update to date documentation on production configurations?


https://github.com/github/docs-content/issues/new/choose

What article on docs.github.com is affected?

What part(s) of the article would you like to see updated?

Additional information

This issue is blank and appears have been opened accidentally. I'm going to close it now, but feel free to open a new issue or ask any questions in discussions!


What about mysql?

Does this app support postgre only? mysql will be OK?
Or there is plan to fit it with mysql, thx a lot.

@mffan0922 correct, this currently only supports Postgres.
But I don't think it would be too complex to add support for MySQL.
I can have a look at adding this in when I find some free time, so I will leave this ticket open for now

@mffan0922 support for MySQL (and other potential other DB) has now been added from https://github.com/smallwat3r/shhh/pull/428


Two funding rates taker UI

fun fact: https://github.com/itchysats/itchysats/issues/1580 is visible here, see the payout of the short position ;)

The "funding rate" display and behavior will definitely require some more documentation in the UI.
It is not clear how it behaves from just seeing the values. It is also not clear that is actually can be - or + and fluctuates over time. Furthermore, we should somehow explain why there are two different ones for long and short.
With @bonomat we thought about calling it interest rate instead, but that will obviously not explain the details ;)

The "funding rate" display and behavior will definitely require some more documentation in the UI.
It is not clear how it behaves from just seeing the values. It is also not clear that is actually can be - or + and fluctuates over time. Furthermore, we should somehow explain why there are two different ones for long and short.
With @bonomat we thought about calling it interest rate instead, but that will obviously not explain the details ;)

A combined position would give you a natural place to display the funding rate!

The "funding rate" display and behavior will definitely require some more documentation in the UI. It is not clear how it behaves from just seeing the values. It is also not clear that is actually can be - or + and fluctuates over time. Furthermore, we should somehow explain why there are two different ones for long and short. With @bonomat we thought about calling it interest rate instead, but that will obviously not explain the details ;)

I like the name "interest rate", as this would be consistent with bitmex vocabulary. This is something we could write in our glossary or FAQ for the users.

The "funding rate" display and behavior will definitely require some more documentation in the UI. It is not clear how it behaves from just seeing the values. It is also not clear that is actually can be - or + and fluctuates over time. Furthermore, we should somehow explain why there are two different ones for long and short. With @bonomat we thought about calling it interest rate instead, but that will obviously not explain the details ;)

I like the name "interest rate", as this would be consistent with bitmex vocabulary. This is something we could write in our glossary or FAQ for the users (or at least via the tooltip!)

Semantically as far as I understand. CFDs deal with two interest rates: one for the base currency and one for the quote currency. The combination of both yield the "funding rate".
Thus it would not be correct to call it "interest rate" because it would not be clear, which one it is.

bors r+


libsim crash on OSX 10.11 using OpenMPI

From Josef Nilsen on the visitusers list:- Trying to get in-situ visualization working on OS X 10.11 using OpenMPI. I have succeeded in the past, but now I'm failing for some reason. I'm running "build_visit parallel", after which I add the two missing lines in the site config as per my old ticket: http://visitbugs.ornl.gov/issues/1958 Next I run "recmake_visit.sh", "make" and "make install" (I have also tried setting it up manually with "make package", but it made no difference). The mandelbrot example works, and running my simulation on a single process also works. As I run more than one process, the simulation crashes as soon as it reaches the point in the main loop where it detects that VisIt has connected: Caught signal number 10 BUS: Bus Error, possibly illegal memory access...User provided function() line 0 in unknown directory unknown file This exact piece of code has worked in the past. VisIt is already in the path and I am passing dir, which kind of reminded me of this old email conversation (the fix did not work either): https://elist.ornl.gov/pipermail/visitdevelopers/2014-September/014195.html Does anyone have a clue as to what I'm doing wrong? Has there been any breaking changes in libsim (for example the new batch feature) requiring me to update my code? For example this stub I used to keep just so that the simulation wouldn't crash: http://visitbugs.ornl.gov/issues/1928 Greetings,Josef
-----------------------REDMINE MIGRATION-----------------------
This ticket was migrated from Redmine. As such, not all
information was able to be captured in the transition. Below is
a complete record of the original redmine ticket.
Ticket number: 2609
Status: Pending
Project: VisIt
Tracker: Bug
Priority: High
Subject: libsim crash on OSX 10.11 using OpenMPI
Assigned to: -
Category: -
Target version: -
Author: Cyrus Harrison
Start: 04/28/2016
Due date:
% Done: 0%
Estimated time:
Created: 04/28/2016 01:53 pm
Updated: 09/30/2016 08:02 pm
Likelihood: 3 - Occasional
Severity: 4 - Crash / Wrong Results
Found in version: 2.10.0
Impact:
Expected Use:
OS: OSX
Support Group: Any
Description:
From Josef Nilsen on the visitusers list:- Trying to get in-situ visualization working on OS X 10.11 using OpenMPI. I have succeeded in the past, but now I'm failing for some reason. I'm running "build_visit parallel", after which I add the two missing lines in the site config as per my old ticket: http://visitbugs.ornl.gov/issues/1958 Next I run "recmake_visit.sh", "make" and "make install" (I have also tried setting it up manually with "make package", but it made no difference). The mandelbrot example works, and running my simulation on a single process also works. As I run more than one process, the simulation crashes as soon as it reaches the point in the main loop where it detects that VisIt has connected: Caught signal number 10 BUS: Bus Error, possibly illegal memory access...User provided function() line 0 in unknown directory unknown file This exact piece of code has worked in the past. VisIt is already in the path and I am passing dir, which kind of reminded me of this old email conversation (the fix did not work either): https://elist.ornl.gov/pipermail/visitdevelopers/2014-September/014195.html Does anyone have a clue as to what I'm doing wrong? Has there been any breaking changes in libsim (for example the new batch feature) requiring me to update my code? For example this stub I used to keep just so that the simulation wouldn't crash: http://visitbugs.ornl.gov/issues/1928 Greetings,Josef
Comments:
This has been solved now.On 2.9.0b I used to call VisItSetMPICommunicator with the actual communicator (which worked, unless the function changed I don't know why). After a round with Valgrind I noticed there was some weird stuff going on with IceT and the MPI communicator, leading me to notice that I should pass the pointer instead. Hallelujah!

@cyrus ... there is a comment from original redmine import that indicates

This has been solved now...

Can this be closed

yes


Implement Friendly Units Pathfinding Algorithm

Description
Task: Friendly Units Pathfinding Algorithm
Feature: #5
This path-finding algorithm allows optimal unit movement from point A to B, considering the terrain, blocked paths, and enemy attacks. This allows the units to arrive at the allocated destination in an efficient and swift manner to avoid negative impacts on unit stats  (morale, fatigue, health). The A* pathfinding algorithm will be implemented as it is one of the best pathfinding algorithms when we have to find the shortest path between two nodes.
To implement this we need to:

build a path each time a unit is assigned a task
check every next step and if it is impassable (e.g. blocked by a house), recalculate and rebuild the path
check every next step and if it is blocked by another unit - do a quick side-step around it or wait a bit for it to walk away - because units are small and mobile
assign weighting on areas - for example, if you have a series of nodes to get to a destination that involves water which is slower and takes more steps and then crossing a bridge, the AI should opt for the more optimal path in terms of speed and accessibility
maintain areas connectivity map, to quickly discard pathfinding between unconnected areas on the map

Resources:
How to Implement RTS Group Movement:
https://sandruski.github.io/RTS-Group-Movement/
Tutorial on A* Implementation in a game:
https://www.youtube.com/playlist?list=PLFt_AvWsXl0cq5Umv3pMC9SPnKjfp9eGW
SubFeature/component

Unexpected collision avoidance strategy - Upon detection of a moving unit or a new building, recalculate a new path. If there are multiple units on the move, update their paths based on the distance from the new building. The closer the path nodes are to the new building the higher the update priority.
Enemy avoidance strategy - Upon detection of a nearby moving enemy, allow for a retreat or a reasonable distance between the enemy path and the unit path

Examples

If a unit’s straight line path is blocked by multiple buildings, the unit finds a path around them that takes the least steps.
If there is an enemy attack nearby, the unit finds a path that maintains a distance between the enemy. If the enemy is too near and moving fast, the unit should retreat.
If there is a body of water that separates the units from the destination, the algorithm should calculate whether the units should swim or find a nearby bridge and see which path costs less.

Dependencies
Pathfinding will rely on the map layout, and how entities/objects are stored for the map - Team-6 Sprint-1 Map Feature #3
Milestones
List of sub-features you intend to have done and in Master by the end of the sprint.

[ ] Implement Basic Path-finding Algorithm
[ ] Implement Unexpected Collision Handling Strategy
[ ] Implement Enemy Avoidance Strategy
[ ] Final Testing

Completion Deadline: Aug. 29 - Monday, Week 6 (prior to the completion of Sprint 1)
Documentation

Javadoc will be created for this unit pathfinding movement

Members
Thomas (@thomas-keevers) (Thomas Keevers)
Alex (@KungKemi) (Alexander Johnson)
Lorenzo (@lorenzopolicar) (Lorenzo Policar)
Harold (@HaroldHS) (Harold Hotma Sibuea)
Wishnu (@hazlazuardi) (Wishnu Hazmi Lazuardi)

Parts of this task will have to be refactored for shared functionality w/ #8 (basic navigation w/out enemy avoidance)


Fix num_macros for syntax/syntax_ext crate split

I don't even know what syntax extensions num has, but this fixes the build.. :smile:

It allows #[derive(FromPrimitive)].  I have no idea if anyone actually uses this, but as long as the maintenance burden isn't too high, fine. :)
I just pushed a fix needed for the doctest too, so let's see if homu will merge the way I think...
@homu r+ 4d23700

:hourglass: Testing commit 4d23700 with merge 283a2e1...

:sunny: Test successful - status


Deis should send host header with health checks.

Many apps validate the "Host:" header as a security measure (e.g. Django does this by default). As such health check pings using just the IP will return a 400 unless the IP is specifically added to the config. The various health checks should therefore add a host header to the requests with the value being the FQDN for the app (e.g. Host: friendly-dino.example.com) so that apps can continue simply including the expected domains in the configuration.

good thought.

Note that we'll need to add the host header to the publisher health checks in addition to the controller health checks @pmclanahan has modified in #4586.

@jgmize can you confirm if kubernetes health checks perform HTTP health checks as expected? That way we can determine if this is something we need to contribute upstream to fix for v2 or not.

closing as something fixed in v2 with kubernetes' health checks.


Set decline code to PaymentRejectedException from CardException

@artempWix this PR adds the decline code for PaymentRejectedException.
How about adding both code + decline_code for all failures, i.e. also for PaymentErrorException? This could help debug other failures as well.
I would set gatewayInternalCode to something like (code == "card_declined" ? s"$code|$declineCode" : code)

@dleshem
as i can see, code / declineCode exist only in CardException - so they are relevant only for PaymentRejectedException for now
StripeException has only statusCode with HTTP code - libpay-stripe is not receiving any other codes from Stripe SDK (except codes for CardException)
what should we put to PaymentErrorException ?
about code + decline_code: as we can see in a Stripe API Reference, decline_code is enough to identify the error. is it necessary to put code to the gatewayInternalCode  and conditionally (code == "card_declined") parse it later?

IIUC decline_code is only present in the response if code is "card_declined". But there could be other codes, for example "incorrect_zip".

@dleshem
are you sure? i have found no description of this case is a Stripe API Reference and i can't see this codes - we haven't received them before
but i suppose that code == "card_declined" is not only case when we have a decline_code
for example, one of possible values of decline_code and code both is "expired_card"
i can't imagine two different cases when we will receive next:

code == "card_declined", decline_code == "expired_card"
code == "expired_card", decline_code == null

what do you think?

Stripe's actual implementation may differ from what's specified in their API documentation:

code (optional): For card errors, a short string from amongst those listed on the right describing the kind of card error that occurred.
decline_code (optional): For card errors resulting from a bank decline, a short string indicating the bank's reason for the decline if they provide one.

To me, this reads like decline_code is optional, and "by contract" limited to when code equals "card_declined".

@dleshem
ok, actually i don't know what real values we are receiving from Stripe)
let's pass both codes in a format that you have proposed, i will add it to pull request

Cool, looks good to me


[BUG] 'Scrollbars' cannot be used as a JSX component.

Hello I'm creating a component that uses the Scrollbars and adds the style, this is used after like the normal component is, it's only a way to not repeat code.
This is the code:
import React from 'react';
import { Scrollbars } from 'rc-scrollbars';

const renderThumb = ({ style, ...props }: { style: any }) => {
    const thumbStyle = {
        borderRadius: 6,
        backgroundColor: 'gray',
    };
    return <div style={{ ...style, ...thumbStyle }} {...props} />;
};

function CustomScrollbar(props: any) {
    return <Scrollbars /* renderThumbHorizontal={renderThumb} */ renderThumbVertical={renderThumb} children={false} {...props}  />;
}

export default CustomScrollbar;

Any idea?

Why you are importing from rc-scrollbars, this repo is about react-custom-scrollbars-2)

@toteto
I've add below "resolutions" in package.json and it resolved the above issue.
"resolutions": {
    "@types/react": "17.0.40",
    "@types/react-dom": "17.0.13"
  },

any ideas without resolutions ?


Refactor GrpcStatus to implement GrpcExceptionHandlerFunction

Motivation:

Closes #5550

Modifications:

GrpcStatus implements GrpcExceptionHandlerFunction
Rename GrpcStatus to DefaultGrpcExceptionHandlerFunction

Result:

Closes #5550
GrpcClientBuilder uses DefaultGrpcExceptionHandlerFunction as default
GrpcService can use DefaultGrpcExceptionHandlerFunction for its exceptionHandler

Overall looks good. Left minor comments on testing.

Applied feedback, Thanks.
I've checked that test is working fine after change.

@jaeseung-bae, 👍 👍 👍


Rainbow destination tile indicator

It would be cool to have the destination tile as a rainbow. Would it be possible to make? Destination tile can be shown from the plugin called "tile indicators". There is also another one called "better tile indicators".

I think I added this.


Refactor script

Refactor script, separate into 3 parts: main index.js, GithubClient, and RedcapParser
Update Github API and authentication since the methods are deprecated

TODO: Refactor RedcapParser and handle private questionnaires (will add in separate PR)

@mpgxvii  can you please resolve the conflicts and merge?


Listener to handle click/touch on group item

Hi there,
I would like to do some changes with the group item's view when click occured on it.
Because your RecyclerViewExpandableItemManager handle the touch on the RecyclerView I can't attach OnClickListener to my View.
I recommend you do a listener which can set up for the manager class with View and MotionEvent and call it before you return in your onInterceptTouchEvent method.

Hi. Sorry for the poor documentation :disappointed:
Try to implement the onCheckCanExpandOrCollapseGroup() method always return false. It enables OnClickListener work as you expected.
Related issue: #11 Force expand/colapse

Thanks your answer.
I can do it what I wanted with your suggestion.
Thank you for your work! :+1:


Cleaner code and arguments to functions

The main options are passed around a very confused functions setup and it should be less verbose and more compact, also utilize async, await since node-phantomjs supports them.
this will make everything much simple to read and manage.

This enhancement will come when the complete refactoring is made using puppeteer and async/await features


FAQ component to handle questions

Actually, this should work way better using the new tensorflow model. It should be able to better differentiate between questions that are very similar but different.

Any solutions planned for this?

Hi @sibbsnb We are actually very close to releasing a new component which aims at simplifying this. Check out this PR - https://github.com/RasaHQ/rasa/pull/4233


Fix tooltips in the legend editor

Fixes #2168.

@viddo PTAL. thanks!

Frontend tests were OK :+1: (details)

:+1:

Thanks!


💡 Icons support?

Example:
.universal-🎉::before {
    display: inline;
    content: '🎉';
}

<i class="universal-🎉"></i> would show «🎉». Isn't that great? And users could restyle that with any images they want (e.g. «🎉»)! Finally, universal portable icons for everyone.
Bonus: no more unobvious names, you won't have to remember those anymore.

Why not directly :
🍻::before {
    display: inline;
    content: '🍻';
}

@Shnoulle That would be perfect.


Undo more deletions, clear, add, edit

Currently, the Undo command is only capable of undoing the most recently deleted contact.
Now, it is able to undo all deleted contacts in the same session. I.e. deleting a contact, closing and reopening the app will not be able to undo.
It is also able to undo clear, and multiple edit and add commands.

Okay LGTM! Merging now


Add PHP dependency parsing

Add PHP dependency parsing from composer.lock files.
Description
This extracts dependencies from composer.lock (including dev dependencies from packages-dev) and provides names, github urls and descriptions.
Motivation and Context
We want to have a list of suggested repositories to contribute to for Code Triage users.
How Has This Been Tested?
Just a small composer.lock file generated by creating a new Symfony project then removing 90%+ dependencies. Probably needs more testing in real life.
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

Thanks!


Seperate integer/float divison - issue#109

I've introduced an integer division operator,  idiv . I'm using this as div clashed with the libc 'div' external function - trivial to change.
Would uppercase keyword operators be better? e.g. NOT, OR, AND, DIV, (MOD?)

Use </code> and = for integer divide (quotient) operator.

I think that's it now.

Looks good aside from the case change on doIntegerQuotientChecked.


Support Crypto.com DeFi Wallet

I tried connecting from the DeFi Wallet browser and it failed silently. I believe that it worked in the past, and I also noticed that Coinbase Wallet is no longer working. So it seems that something has broken these environments.
Let's also add "DeFi Wallet" as a listed option on the desktop modal.

Coinbase extension and mobile app work for me too for the record


Implement predicate functions: all, any, single, none, isEmpty

Is your feature request related to a problem? Please describe.
While these functions are not present in the Cypher specification, but they are implemented in Neo4j. I found some of them very useful, particularly all and any.
Descriptions of these functions are exactly similar to the ones described here: https://neo4j.com/docs/cypher-manual/current/functions/predicate.
Describe the solution you'd like
N/A
Describe alternatives you've considered
N/A
Additional context
N/A

@rafsun42 These sound like a good idea to add. I would only suggest creating issues for each one.

Yes, there is only one predicate function defined in age yet, exists().
Others should also be implemented.
https://age.apache.org/age-manual/master/functions/predicate_functions.html

This issue is broken down into #552, #553, #554, #555, #556.


Automated Package Upgrade

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Fixed issue with wrong number of variables in function return

_, contours, hierarchy = cv2.findContours(dilation, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
This ^ actually returns two arguments instead of three for me. Version differences?
And please do not treat exceptions like you do - it was very hard to find out what happened
because of crop() silently excepted without any signs, though leaving self.image unset, which lead to error in deskew() 'Page does not have member 'image''
Btw I managed to run the app after this commit

@achikin you are absolutely right, thanks for fixing it. I hope it wasn't too painful to track down :) I'll be more diligent in the future.
As for the tuple that's returned from cv2.findContours(...), i've run into the issue before.  You are right--definitely versioning. My opencv is v3.1.0-dev, what is yours?

I'm running it on my mac on docker with ubuntu 16.04 and installing everything from its packages.
Didn't bother compiling OpenCV, my bad.
root@43fa887f547b:/my# apt-cache policy libopencv-dev
libopencv-dev:
Installed: <IP_ADDRESS>+dfsg-1.5ubuntu1
Check my Dockerfile and sample script here https://gist.github.com/achikin/cb64a80ffe4fbf46da96dc03b7d0996c
You'll need to add image.png to make it work.

I've added one more commit to handle this situation https://github.com/jlsutherland/doc2text/pull/6/commits/368d3abb777f28eed09033dd8998492007f355b7
Could you please update pip package with a working version?

Nice workaround. Will do now.

Merged. Thanks big time. Tagging and disting now

g2g @achikin


Add January 2021 blog post

Fixes: #66

https://deploy-preview-70--fluxcd.netlify.app/blog/

https://deploy-preview-70--fluxcd.netlify.app/blog/

Shall we rename the blog title? What to?
Pinging @bigkevmcd and @somtochiama as well.

Shall we rename the blog title? What to?
Pinging @bigkevmcd and @somtochiama as well.

@staceypotter too

@staceypotter too


Users can use deposit even though bank is full when the argument is "all/max"

When users put the amount as "all" or "max", all-success works even though the bank of the user is full

Code:
const { EmbedBuilder } = require('discord.js');

module.exports = {
   name: "deposit",
   aliases: ['dep'],
   run: async (client, message, args) => {
       let money = args[0];

       let error1 = new EmbedBuilder()
        .setColor(0x36393F)
        .setDescription('Uhm, I cant deposit air!')

       if (!money) return message.reply({ embeds: [error1] })

       let result = await client.cs.deposit({
           user: message.author,
           guild: message.guild,
           amount: money
       })

       if (result.error) {
           let error1 = new EmbedBuilder()
            .setColor(0x36393F)
            .setDescription('Uhm, I cant deposit air!')

           let error2 = new EmbedBuilder()
            .setColor(0x36393F)
            .setDescription('Try wasting money instead as you specified a negative integer!')

           let error3 = new EmbedBuilder()
            .setColor(0x36393F)
            .setDescription('You do not have that much money in your wallet!')

           let error4 = new EmbedBuilder()
            .setColor(0x36393F)
            .setDescription('Your wallet is completely empty!')

           let error5 = new EmbedBuilder()
            .setColor(0x36393F)
            .setDescription('Your bank is currently full!\n`Tip: Buy banknotes and use them to increase your bank storage!`')

           if (result.type === 'money') return message.reply({ embeds: [error1] });
           if (result.type === 'negative-money') return message.reply({ embeds: [error2] });
           if (result.type === 'low-money') return message.reply({ embeds: [error3] });
           if (result.type === 'no-money') return message.reply({ embeds: [error4] });
           if (result.type === 'bank-full') return message.reply({ embeds: [error5] });
       } else {
           let allSuccess = new EmbedBuilder()
            .setColor(0x36393F)
            .setDescription (`You have deposited the maximum amount of money that can be put in your bank!`)

           let success = new EmbedBuilder()
            .setColor(0x36393F)
            .setDescription(`You have deposited **⏣ ${result.amount.toLocaleString('en-US')}** into your bank!\nYou now have **⏣ ${result.rawData.wallet.toLocaleString('en-US')}** remaining in your wallet!`)

           if (result.type === 'all-success') return message.reply({ embeds: [allSuccess] });
           if (result.type === 'success') return message.reply({ embeds: [success] });
       }
   }
}

currency-system@latest
and yes i renamed the function to deposit

https://cdn.discordapp.com/attachments/896277986750386216/1021621206752972840/unknown.png

Ok I'll add new error for it.


Alt text on the screenshots is not very descriptive

The alt text for the two screenshots on the homepage is currently Screenshot. This isn't very descriptive, and isn't useful for visually impaired users.

Thanks @JamieMagee

Fixed in #39


Resolvers: GraphQL via Caliban

GraphQL is a powerful framework for building flexible HTTP clients and servers. Its query representation allows for expressing a wide range of sophisticated access patterns in a straightforward and consistent manner, a notable advantage over traditional REST approaches. For example, a single GraphQL query can retrieve multiple resources, as well as specific fields of those resources, reducing the need for multiple network requests and enabling more efficient data retrieval.
Given the developments in AI, I think the relevance of solutions like GraphQL can increase significantly. It's possible that a large portion of software user interfaces will transition to highly personalized, AI-driven interactions. The flexible and dynamically discoverable nature of GraphQL could make it a great primitive to develop software to be used by AI systems.
Caliban seems a good choice for Kyo's integration for GraphQL. It seems generic and adaptable to different effect systems and its query definition mechanism seems to enable the kind of simple-to-use experience Kyo aims for. Ideally, the new module should integrate with kyo-tapir.

Curious about the API would look like. Would it be just that?
val api: GraphQL[Any] = ??? // call caliban's graphQL function

val a: Unit < Graphqls =
  Graphqls.add(api)

val b: NettyKyoServerBinding < Fibers = // this might require Zios since Caliban is using ZIO internally
  Graphqls.run(a)

In addition to that, we can define a caliban.schema.Schema for T < S so that you can define resolvers using Kyo effects.
Is that what you had in mind?

hey @ghostdogpr! Thanks for following up on this. I'd say a "shallow" integration like you're suggesting would be a good initial step but it'd be nice to eventually evolve the module to avoid exposing ZIO types and encode APIs as Kyo computations instead. For example, it'd be nice to expose Interceptor as based on Kyo instead of ZIO directly. Just wrapping APIs might be enough if the performance overhead doesn't become an issue. We could still use ZIOs internally and declare the effect as:
opaque type Resolvers = ZIOs

(btw, what do you think of Resolvers instead of Graphqls?)
Another angle that would be interesting to explore is allowing arbitrary effects in schemas instead of "pinning" them only to dependency injection and error handling effects. For example, if we introduce an effect similar to ZQuery, it'd be great if we could just use it without having to implement a new schema for it.

hey @ghostdogpr! Thanks for following up on this. I'd say a "shallow" integration like you're suggesting would be a good initial step but it'd be nice to eventually evolve the module to avoid exposing ZIO types and encode APIs as Kyo computations instead. For example, it'd be nice to expose Interceptor as based on Kyo instead of ZIO directly. Just wrapping APIs might be enough if the performance overhead doesn't become an issue. We could still use ZIOs internally and declare the effect as:
opaque type Resolvers = ZIOs

Sounds good. Not sure how feasible it is to wrap ZIO in existing tapir integration but it seems like it would be the best ergonomics for Kyo.

(btw, what do you think of Resolvers instead of Graphqls?)

Resolvers is maybe too generic of a word? The api object you would pass to add(api) is of type GraphQL in Caliban. We also have a type RootResolver but I don't think Kyo should use that one since GraphQL is more powerful (lets you attach middleware, can be combined, etc).

Another angle that would be interesting to explore is allowing arbitrary effects in schemas instead of "pinning" them only to dependency injection and error handling effects. For example, if we introduce an effect similar to ZQuery, it'd be great if we could just use it without having to implement a new schema for it.

If you have an arbitrary effect in your schema, how does Caliban know how to run it?

Resolvers is maybe too generic of a word? The api object you would pass to add(api) is of type GraphQL in Caliban. We also have a type RootResolver but I don't think Kyo should use that one since GraphQL is more powerful (lets you attach middleware, can be combined, etc).

Good point, but I'd like to iterate on other possible names. GraphQLs doesn't match the naming pattern of other Kyo effects.

If you have an arbitrary effect in your schema, how does Caliban know how to run it?

It seems Caliban already supports ZIO environments? I'm not sure how generic the mechanism is but supporting Kyo's pending effects should be similar to handling ZIO environments but with a contravariant type parameter. The user would then have to handle effects similarly to how they handle environments with ZIO.

The thing is Caliban is built on top of ZIO, so if you use the environment on one side (schema), we are able to propagate it all the way to the other side (http layer) because all internal methods in between also take a ZIO. Similarly, Caliban uses ZQuery internally so it's not possible to use a replacement for optimizations (different fields resolvers can only see each other if they share the same ZQuery DataSource).

I see. I thought Caliban was more generic internally since it supports other effect systems as well. I wonder if there'd be a way to encode Kyo computations within ZIO to overcome this limitation. Maybe something like:
trait Runner[+S]:
    def apply[T](v: T < (S & ZIOs)): Task[T]

type KIO[+T, -S] = ZIO[Runner[S], Throwable, T < S]

It'd have a performance penalty, though. I think just providing support for ZIOs, which includes Fibers and IOs, should be enough for an initial integration. We should be able to integrate Envs as well once ZIOs supports it.

/bounty $500

Bounty requirements:

Initial "shallow" integration with Caliban via ZIOs.
Exploration and follow up ticket creation for a "deep" integration where ZIO is hidden from the user in all APIs.

/attempt #216
I'll work on this:

allow Schema derivation when using Kyo (with ZIOs and probably Aborts)
expose Resolvers as a new effect wrapping caliban's GraphQL
turn this into a running API server using kyo's tapir integration
(bonus) experiment the Runner approach above to support arbitrary effects

Great news, thank you @ghostdogpr!!!