Best practice for instantiating PrismaClient with Next.js breaks instanceof

If I follow the advice in the Best practice for instantiating PrismaClient with Next.js docs page, it seems to prevent instanceof checks from working when I do error checking as described on the Handling exceptions and errors page.
I suspect what may be happening is that the exceptions created by the cached PrismaClient are a different type (though the same name) as the ones that I import (like Prisma.PrismaClientKnownRequestError). I've tried to figure out some way to cache the namespace as well, but haven't had any success and wanted to see if anyone else had run into this problem.
Specifically, if you set up a project using the example code in those docs, the error won't get caught after a dev refresh:
db.ts
import { PrismaClient } from '@prisma/client'

const globalForPrisma = global as unknown as {
  prisma: PrismaClient | undefined
}

export const client =
  globalForPrisma.prisma ??
  new PrismaClient({
    log: ['query'],
  })

if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma

test.ts
import { Prisma } from '@prisma/client';
import { client } from './db';

try {
  await client.user.create({ data: { email<EMAIL_ADDRESS>} })
} catch (e) {
  if (e instanceof Prisma.PrismaClientKnownRequestError) {
    // The .code property can be accessed in a type-safe manner
    if (e.code === 'P2002') {
      console.log(
        'There is a unique constraint violation, a new user cannot be created with this email'
      )
    }
  }
  throw e
}

Maybe there's a way to access these types directly from a prismaclient instance?

Another option would be to add something like this is function that Drizzle provides.

Hi @Schmavery,
Just wanted to follow up and see if you're still experiencing this issue. We've recently updated our pages, and the suggested code has been revised, so the problem may now be resolved.
Did you manage to find a workaround in the meantime? If not, we encourage you to try the updated code. Please let us know if you continue to face any issues—we're here to help!
Thank you for your patience, and we look forward to your feedback.


Docker agent command fixs

The title is self explanary. To launch the agent, it would be better to delete it after. Also the different parameters are not working for foxy. I guess a working solution would be:
docker run -it --net=host --rm microros/micro-ros-agent:foxy udp4 --port 9999 # for udp4
docker run -it --net=host --rm microros/micro-ros-agent:foxy udp6 --port 9999 # for udp6
Thank you. Best

I think that we should refactor this readme or mark it as deprecated.


feat(Input): enhance input attributes

🔗 Linked issue
part of #731

❓ Type of change

[ ] 📖 Documentation (updates to the documentation or readme)
[ ] 🐞 Bug fix (a non-breaking change that fixes an issue)
[x] 👌 Enhancement (improving an existing functionality)
[ ] ✨ New feature (a non-breaking change that adds functionality)
[ ] 🧹 Chore (updates to the build process or auxiliary tools and libraries)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description
Add some native HTML attributes.
I prefer set autocomplete to off but it will make a breaking change, so set to on for now.

📝 Checklist

[x] I have linked an issue or discussion.
[ ] I have updated the documentation accordingly.

I'm not sure this is the right way to fix this, we shouldn't have to define all of the props of the <input> element as there are too many: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attributes.
Only props used as part of the component's logic should be defined in my opinion.

I'm not sure this is the right way to fix this, we shouldn't have to define all of the props of the <input> element as there are too many: developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attributes.

I agree.  How about keep autocomplete and tabindex these two useful attrs, and update the doc to provide explanations about it ?

I'd agree to define the autocomplete and even to set the default to off as personally I spend more time disabling it and never find myself in a situation where I want autocomplete but that's my opinion.
But tabindex is valid on all HTML elements so I don't see why we'd put it on the Input.

I'd agree to define the autocomplete and even to set the default to off as personally I spend more time disabling it and never find myself in a situation where I want autocomplete but that's my opinion.

Or maybe let community to vote for it ?

I need a min attribute to let users cannot select a moment lower than the min attribute when the input has date type.
e.g.
<UInput type="date" min="2023-10-10" />

I'd love that but how could we setup a poll?

I'd love that but how could we setup a poll?

If I remember correctly github discussion has the poll option, or maybe vote at discord (might be more users).
BTY the discord link at doc is not available .

I'll close this PR first. There might be another solution.


Show custom features in the add modal on top

Show custom features in the add dropdown on top
Overview
This PR makes it so that, in the "Add features" modal, custom features (user uploaded) are shown at the very top of the list. In order to do so, it makes use of the isCustom property added to the respective endpoint in https://github.com/Vizzuality/marxan-cloud/pull/683.
Testing instructions

Open a project
Click to "Edit" a scenario
Click on the "Features" tab
Click the "Add features" button

Verify that any custom features (if none, upload one) are shown at the very top, before all other features

Feature relevant tickets
MARXAN-967

Addressed the suggestions, rebased on develop. Also changed the implementation a little as to preserve the sorting as returned by the api endpoint.


SNP-1581 Bump underscore in backbone

Jira Ticket
https://aclgrc.atlassian.net/browse/SNP-1581

Closed because of wrong target for destination repo


Add documentation

@alessandratrapani Let me know when this is ready for final review

@alessandratrapani Should the power of a row of the PatternedOptogeneticStimulusTable be power_in_W?

Also should pulse_rate be pulse_rate_in_Hz?

Should the power of a row of the PatternedOptogeneticStimulusTable be power_in_W?
Also should pulse_rate be pulse_rate_in_Hz?

I opened a new PR for this, then I will update the documentation as well

Oh I see now, thanks for clarifying

LGTM


Visualisation of CMIP6 data in FOREST

Pull request implemets the reading of cmip6 data through the pangeo cmip6 intake catalogue created by NCAR. (see #189)
This will add new requirements to forest to run , include intake and intake-esm, which can be installed with the following
conda install -c conda-forge intake intake-esm
I have added them to requirements.txt file, so hopefully this should "just work".
I have also included an example yaml file, so you can test the new driver. I suspect this is the wrong place, so let me know where you think this should be and I'll update the branch accordingly.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.0 out of 2 committers have signed the CLA.:x: Stephen Haddad:x: AlexHilsonStephen Haddad seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

I notice the CI stuff is moaning at me. What should I being to resolve that?

This looks great, but we might not have intake in our Docker container. Could we try/except for now?

I have put this in a try/except block at ffd0f6a. This means all the other FOREST drivers should not be affected by the presence/absence of intake. The code will obviously fail if you try to use intake driver without intake being installed.

@stevehadd the conflicts can be resolved by editing the elif blocks to include all "driver" types. A more formal approach as discussed in #186 should eliminate those conflicts but for now hand editing them to be the complete set of imports/elifs should suffice

@stevehadd the conflicts can be resolved by editing the elif blocks to include all "driver" types. A more formal approach as discussed in #186 should eliminate those conflicts but for now hand editing them to be the complete set of imports/elifs should suffice

I just wanted to ask you a question about your comment . I wasn't sure what you meant by "editing the elif blocks to include all "driver" types. " I assume you mean this if/else statement: https://github.com/informatics-lab/forest/blob/f5474999fab0b96cbeb98a23fb288aa3d9dc904e/forest/load.py#L147
Should i be updating this to include the saf loader, which is the cause of the conflict, or doing something else to include all loaders?

@stevehadd at the moment include the conflicting saf loader and I think ghrsstl4 loader. The "all" drivers that I think you are referring to is happening in a different branch.

Essentially for each conflict include both types in the merged version. This has come about from multiple people implementing custom loader/view/navigator modules and constructing them inside else/if blocks

@stevehadd I'm not sure how this pull request has received so much attention but it looks like it is 99% finished. If you need any help feel free to drop by my desk

I think it's time to merge this one in, I'm deploying off a separate branch for the WMO meeting in Nairobi that is happening now. And I feel if we don't merge it future PRs might introduce conflicts


Getting error from socket.js when debugging

What's going on?
I initiated an app with the ignite cli, the initial app runs fine on ios simulator but when I debug remotely I get an error from socket.js

Steps to reproduce
Initiate app normally
run react-native run-ios
debug in chrome

ignite doctor results:
System
platform           darwin
arch               x64
cpu                8 cores                         Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
directory          /Users/gene/test
JavaScript
node               7.9.0        /usr/local/bin/node
npm                4.5.0        /usr/local/bin/npm
yarn               0.22.0       /usr/local/bin/yarn
React Native
react-native-cli   2.0.1
app rn version     0.42.0
Ignite
ignite             2.0.0-beta.8   /usr/local/bin/ignite
Android
java               1.8.0_111    /usr/bin/java
android home       -            undefined
iOS
xcode              8.1

@genesy I missed this one...did you get it figured out yet?

+1. If I use Debug JS Using Chrome, ignite app would just freeze when I press Open Devscreens button.

Does turning off the connect statement in ReactotronConfig.js fix it?

Yeah, I'm experiencing this also. @skellock Do you get this also, or do you need more info from us?

Looks like something in depths of socket.io going bananas while in this mode.  Reactotron uses socket.io.  We're replacing that in 2.0.
Work around for now is to not turn on reactotron while chrome debugging.  Sorry for the troubles.

This should be resolved in our newer boilerplates due to Reactotron moving away from socket.io


add space to admin stats dropdowns

closes mapzen/developer_admin#92

@hanbyul-here is this the right way to do this? or should i include a padding class of some sort or something?

margin seems to be right, :+1:


Create a NuGet packages for modules

The DXA .NET modules from the dxa-modules project do not have NuGet packages.
I would like to have NuGet packages for every DXA .NET module, starting with the widely used Core module.
Combined with using precompiled views form Razor Generator this will make it much easier to use the DXA modules.
Especially for your first-time DXA project it takes a lot of time finding the DXA site in one project and the Core module in the other, then having to check out both, create a solution with them, making the post-build task in the Core module to work, etc. All of this would be almost a single click effort when using NuGet packages.

+1 similar issue recently trying to hunt down a module assembly, in a zip, then VCS and reference it...


Updating instructions for launching kubernets in a local docker installation

I was having issues launching kubernets using a local docker installation on my Gentoo box. Turns out there is an issue #9837 that requires memory and swap accounting to be turned on in the kernel for kubernets to set memory limits on containers.
I am not sure if these instructions are valid for all distros, since some might have them turned on by default, but still thought it should be added as pre-req to make users aware of this restriction.

Signed the CLA !!

@asridharan thanks for the PR!  I added a few comments, address those and we can merge this.
Thanks again!
--brendan

few more small comments (sorry!) after those are done, LGTM.

Not sure why these checks are not passing. I synced to the latest and ran the scripts that these checks are running and it passed on my local machine. A bit confused here??

LGTM.

@k8s-bot ok to test

@k8s-bot ok to test

This could use a squash.

Will sqaush and commit.
On Wed, Aug 5, 2015 at 8:09 AM, Mike Danese<EMAIL_ADDRESS>wrote:

This could use a squash.
—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/pull/12046#issuecomment-128031266
.

I am unable to rebase the and squash the commits !! Whenever I try to rebase using
git rebase -i HEAD~4 I end up picking all the commits in my local git. Very confused, not sure how to do this? Should I be pulling a new fork from the original kubernetes repo??

Ahhh you were working off master. Next time you should work off a branch or at least use git pull --rebase instead of git pull. It's not a big deal.

Thanks Mike,
Learning git collaboration the hard way :(. Looks like I screwed up the repo, by rebasing on the master and in between merging the repo with the main GoogleCloudPlatform/kubernetes. Will keep you advice in mind for the next. Will redo this repo once the merge goes through.
-Avinash

Thanks for pr. merging...

@asridharan checkout https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/devel/development.md#git-setup for a pretty thorough guide

Thanks,
Very helpful.
-Avinash
On Wed, Aug 5, 2015 at 7:07 PM, Mike Danese<EMAIL_ADDRESS>wrote:

@asridharan https://github.com/asridharan checkout
https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/devel/development.md#git-setup
for a pretty thorough guide
—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/pull/12046#issuecomment-128212640
.


virtmanager: connection settings don't persist

After adding a new connection via File -> Add Connection... -> [x] Autoconnect -> Connect, then closing and starting virt-manager again, the previously setup connection(s) is not there.
$ virt-manager --debug
[Sun, 20 Dec 2015 15:23:14 virt-manager 13819] DEBUG (cli:256) Launched with command line: virt-manager --debug
[Sun, 20 Dec 2015 15:23:14 virt-manager 13819] DEBUG (.virt-manager-wrapped:144) virt-manager version: 1.3.1
[Sun, 20 Dec 2015 15:23:14 virt-manager 13819] DEBUG (.virt-manager-wrapped:145) virtManager import: <module 'virtManager' from '/nix/store/ipz4vya2hb0z7vls2vr2pf8ixh327kfh-virt-manager-1.3.1/share/virt-manager/virtManager/__init__.pyc'>

** (virt-manager:13819): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files
[Sun, 20 Dec 2015 15:23:14 virt-manager 13819] DEBUG (.virt-manager-wrapped:204) GTK version: 3.18.5
[Sun, 20 Dec 2015 15:23:14 virt-manager 13819] DEBUG (engine:496) libguestfs inspection support: False
[Sun, 20 Dec 2015 15:23:14 virt-manager 13819] DEBUG (systray:154) Showing systray: False
[Sun, 20 Dec 2015 15:23:14 virt-manager 13819] DEBUG (engine:1028) processing cli command uri= show_window= domain=
[Sun, 20 Dec 2015 15:23:14 virt-manager 13819] DEBUG (engine:1030) No cli action requested, launching default window

(virt-manager:13819): dconf-WARNING **: failed to commit changes to dconf: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name ca.desrt.dconf was not provided by any .service files

(virt-manager:13819): dconf-WARNING **: failed to commit changes to dconf: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name ca.desrt.dconf was not provided by any .service files
[Sun, 20 Dec 2015 15:23:14 virt-manager 13819] DEBUG (manager:203) Showing manager
[Sun, 20 Dec 2015 15:23:14 virt-manager 13819] DEBUG (engine:401) window counter incremented to 1
[Sun, 20 Dec 2015 15:23:14 virt-manager 13819] DEBUG (engine:158) No stored URIs found.
[Sun, 20 Dec 2015 15:23:14 virt-manager 13819] DEBUG (engine:140) Initial gtkapplication activated
[Sun, 20 Dec 2015 15:23:15 virt-manager 13819] DEBUG (engine:225) Determining default libvirt URI
[Sun, 20 Dec 2015 15:23:15 virt-manager 13819] DEBUG (packageutils:39) No PackageKit packages to search for.

Duplicate of https://github.com/NixOS/nixpkgs/issues/2448.


Multi-exec issue on result

most of the times during the start of my node instance, I get this
[ [ null, 'OK' ], [ null, '{"base":[{"base_id":1}]}' ] ]
for this command
redisClient.multi().select(5).get(key).exec()
but for some, I get this
[ [ null, 'O' ], [ null, 'K' ] ]
looks like the result of  select is being broken into 2.
any ideas where this problem might be?

Did your redis server run behind any proxies (SaaS services, codis or something)? Which ioredis and Redis version are you using?

"ioredis": "^2.4.0"
no proxies, just sentinel
redis 3:3.0.6-1chl1~trusty1

Could you please try to reproduce the problem so I can debug locally?

I can reproduce this problem 100%

How can I reproduce it locally?

i am trying to isolate code since project is quite big.
if i isolate, the problem does not exist. but if i run it together with
everything else, problem shows up 100%
I am inclined to think that there might be other stuff causing this but it
is difficult to trace. it only shows up during
startup, where the server tries to do lot of initialization like fetching a
bunch of wsdl for a SOAP feature.
strange enough, when i put a 2seconds timeout before fetching from redis,
it works. this is not ideal as i need
the cache as early as possible during startup. any clue on how to dig
deeper?
Kelvin Chua
On Tue, Nov 1, 2016 at 7:40 PM, Zihua 子骅<EMAIL_ADDRESS>wrote:

How can I reproduce it locally?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/luin/ioredis/issues/389#issuecomment-257546358, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AGxwWCAjpFHwSVW00A3i9yN2Z-IEdyM1ks5q5yUxgaJpZM4KlzPx
.

I'm not sure but it may be related with your codebase. I'm willing to help if you have further information for this issue.

Yes it was indeed related. I was able to find the real reason.
In my code base, initialization is very heavy. so redis takes more than 1 second to emit "ready"
In this situation, somewhere somehow, when I fetch a key from redis, it returns this erroneous response. I have patched my code to wait for "ready" before proceeding and it works.
however, I think this behaviour is incorrect in a way that ioredis should have returned error instead
of providing
[ [ null, 'O' ], [ null, 'K' ] ]

Yes, the result of [ [ null, 'O' ], [ null, 'K' ] ] should not be returned, but I still can't find out where the result comes from. Let me know if you are able to provide a self-contained code to reproduce the problem. I'll keep looking into this issue.


Add the issue note type

Was doing some more testing for https://github.com/MagnusS/okra/pull/78 and encountered a parsing error related to the Notes API.

Thanks!


Errors are not being underlined

If I make a mistake VS code does not underline the problem for me.
I have tried reinstalling the software, but it didn't work.

We closed this issue because it is a question about using VS Code rather than an issue or feature request. Please search for help on StackOverflow, where the community has already answered thousands of similar questions. You may find their guide on asking a new question helpful if your question has not already been asked. See also our issue reporting guidelines.
Happy Coding!


i18n(zh-cn): Update configuration.mdx

Description

#1874
Update configuration.mdx

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

Locale
File
Note

zh-cn
reference/configuration.mdx
Localization changed, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.


Option for content string replacements

Endpoints should allow for regex string replacements.

Don't have a direct use case for this.  Not sure if anyone wants this anymore.


Fix 660

It must fix #660. It's a simple hack, not sure it's the better way to do this.
I also added an option to add a prefix for the Authorization payload in the header, named prefix_token.
I didn't generate the minified JS file because I don't know how to do this. Can someone tell me before merging?

@dilipkhemani Will see later. Don't hesitate to ping me.


Fix | React-toast container width

If screen = mobile,
Notification width = screen width ✅ (this already works in most cases)
If screen > mobile [i.e. Tablet, desktop, ...],
Notification width = ~500px ❌
Reasoning:
The notification content should be displayed on 1 line ideally if character count is <= ~50 characters.
If notification character-count increases 50, wrap the content to next line.
The below notification content should have been displayed in 1 line.

Assing this issue to me, I am interested in fixing this issue.

Sure, please fork the repository, create a branch from master, and raise a PR.
Ensure that you're linking this issue to your PR description.

hey i have fixed this issue , check the PR


Can't add songs

Either there is no message at all when trying to add a song or it says I'm too far away. But I have it equiped

*Problem is because of the Boombox_Sync_Fix mod

*Problem is because of the Boombox_Sync_Fix mod

Спасибо за понимание.


How to delete gridlines in figures

...
Hi Team,
I was wondering how to remove gridlines from each figure.
For example, in scvelo, they provide an option scv.set_figure_params('scvelo') to remove gridlines and make the plot more beautiful, but I was wondering cellrank2 also provides a similar function
Thanks in advance

Hi @ryanhchung, under the hood, CellRank 2 uses scVelo or scanpy for many plotting functions - have you tried setting parameters for scVelo as you described above also for CellRank analysis?

Hi @Marius1311
It works
Thanks!


End Switch

it is possible to integrate limit switches. For example, I can't get all the way to the east.

Your actuators need to have a built in limit switch, you should enter the Max East/West & Min/Max elevations using the android app so the code can more accurately calculate the step increments...


Fbt setup on react-native 0.63

We wish to apply this to react-native 0.63 and continuously use fbt in react-native as well as react followed by the article https://medium.com/dooboolab/localizing-react-app-with-fbt-instead-of-i18n-90822e0cb373.

Closes via #159


remove nodeport from eureka service

What this PR does / why we need it:
Removes NodePort designation from Eureka service. This might cause issues with the automated tests if it is not removed. Fortunately, no Eureka tests have been enabled yet, so it shouldn't be causing issues right now.
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Special notes for your reviewer:
Release note:

@ijsnellf: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/pilot-presubmit.sh
2f6bcda2cfe50189297fee08ea37d42652f8b73b
link
/test pilot-presubmit

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

tests fail because the linters got more strict. not related to this PR. will re-test once that is fixed

@ijsnellf can you please show more detail for why does the NodePort will cause issue here, not quite catch the reason of this PR yet, thanks!

/retest

@kyessenov ptal (doesn't seem like it'd affect k8s or tests so looks safe to me)

/lgtm

tickle


Gemfile: set sorbet version

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.

[ ] Have you successfully run brew tests with your changes locally?

The new Sorbet release introduced 100+ new errors which we'll be dealing with after we have more files transitioned to true in sorbet/files.yaml. Hence, this PR sets Sorbet to the version that we're working on currently.

cc @issyl0 @mistydemeo

Worth noting that the new errors Sorbet brings are in Tapioca's autogenerated gem RBI files, so I'm not sure there's much we can do. I've been keeping an eye out for new Tapioca and Sorbet versions, but 🤷.


Adding a NeurIPS 2021 paper

Thanks for creating this repository! It's a very comprehensive source of information.
Could you please add our NeurIPS 2021 paper, a prototype-oriented framework for unsupervised domain adaptation? The code is provided in this link?
We appreciate your help. Thanks!

Very impressive and interesting work! I have added it into the list.


ion-option-button doesn't work with nested lists

Short description of the problem:
The directive ion-option-button doesn't work with nested lists as it finds the inner buttons first.
What behavior are you expecting?
After swiping the first element you should see the option button.
Steps to reproduce:

Create a nested list
Swipe the first element
The option button for the first element is not shown

Other information: (e.g. stacktraces, related issues, suggestions how to fix, stackoverflow links, forum links, etc)
I already created a fix for that:
https://github.com/styleflashernewmedia/ionic/commit/9fe08ddf25dc398d40607d09ea0294e18b286d1b
Here is the codepen with the fix applied:
http://codepen.io/punknroll/pen/LkQXjW
Which Ionic Version? 1.x
Plunker that shows an example of your issue
For Ionic 1 issues - http://codepen.io/punknroll/pen/YWaKkP

This issue was moved to driftyco/ionic-v1#108


Introduce CHANGELOG to keep track of changes

Following the Keep a Changelog format, introduce a CHANGELOG to keep track of changes to the project. Unfortunately the tagging in GitHub only captures version 2.0.2 and 2.0.0 (and older 1.x versions), so it's a little hard to see what's changed in-between.
Therefore, for now I've added the sections themselves to show how the CHANGELOG works and I hope we can work together to add tagging and flush out high level details to the CHANGELOG that we can communicate to end users on what has changed.
Hope this is useful! Thanks!

@tabladrum LGTM


Enhancement Request: Add File Attachment Size Limits

Can we have a future enhancement for a file attachment size limit in the configruation settings?

If you use microbin behind a reverse proxy like ngninx, you can use that to set request size limit for now. But I agree this should be built in at some point


Customize landing page: News summary

This Google Analytics report gave me a fresh reminder on another important facet of our search-result-as-landing-page approach. I can't quite dope out the reasons, but our news summary page has a 99.7% bounce rate—people who arrive there almost always check out, immediately.
I can't find any anomalies by adding dimensions and think that this shows no one is finding what they want when they land there. Can we put this enhancement on the docket sometime soon? We've discussed several other landing pages, but thus far I think I've only documented ideas for publishers (see #600 ).
We should work through some treatments / guiding concepts / UX stories. My initial thought is that we should leverage the card approach with the features, but we should also allow search and sorting by date or relevance, with the former the default. I don't think the sorting is by date now—look at the out-of-sequence results five pages into the search.
Perhaps @MortenHofft @dnoesgaard @timhirsch and I can take this up in earnest after GB25?

The link to the report shows data from https://www.gbif.org/newsroom/summary a page that is a 404. So that makes sense.
We should probably redirect them to https://www.gbif.org/resource/search?contentType=news

Closing as an instance of #600


joi validation errors are reported

Coverage remained the same at 90.751% when pulling 705fe127474955a42dabfa98f8fba0e3328e765d on joi-validation into e69f20007ff93b271d66b1ae8ac6e5e2d904eaa9 on master.


Idiomatic way to loop tree logic

Hi there,
I've been using forester for the last few days, nice work creating a library that's well documented with a full feature set.
My use case will involve re-running the same tree several times a second, and so it would be excellent for the library to support this in an efficient way. Crucially, I would like to avoid restarting the daemons each time the tree is re-run.
I've outlined a few potential designs for how this might be achieved below, roughly in order of usability I think they'd expose to the user:

Expose API for forester_rs::runtime::forester::Forester to separate ticking the tree from cleaning up the tree, which could be done either by:

Exposing a way to manually tick the tree (and so use forester less as a framework and more as a standalone behavior tree library), e.g.

// Build the tree
let mut forester = fb.build().unwrap();

// Tick until Success or failure is reached
let mut tick_result = forester_rs::runtime::TickResult::Running;
while tick_result == forester_rs::runtime::TickResult::Running {
    tick_result = forester.tick().unwrap();
    // Do other jobs here...
}

// Shutdown the HTTP server and daemons
forester.cleanup().unwrap();

Store a flag in the Forester struct to avoid shutting down the HTTP server and daemons after run() returns (I think this would be the easiest to implement), e.g.

// Disable automatic cleanup
fb.use_manual_cleanup();

// Build the tree
let mut forester = fb.build().unwrap();

// Run until failure is reached
while forester.run().unwrap() == forester_rs::runtime::TickResult::Success {
    // Rerun the tree at 20Hz
    std::thread::sleep(std::time::Duration::from_millis(50));
}

// Shutdown the HTTP server and daemons
forester.cleanup().unwrap();

Implement a KeepRunningUntilFailure decorator, as implemented by BehaviorTree.CPP.

This is my personal least favorite solutions, since the daemons will be terminated without any context of why the tree exited.
This could work if it was combined with manual cleanup of daemons (like above) or perhaps if the result of forester.run() was made available to daemons.

I'm more than happy to contribute this change as a PR myself, I just wanted to collaborate on which method you thought would be most idiomatic for Forester. I'm personally in favour of 1.ii followed by 1.i.
I've also got a handful of minor improvements I've noted while using the library, if you're receptive to it I'm happy to submit these as PRs.

Hi there!
That is great to hear. Thanks.
Sure you can provide any changes as you would find useful.
Regarding the given options I will be able to take a look in the evening.

Yeah, It is hard to estimate the best solution here as I don't know the goal of the task. Can you elaborate on it maybe?
The thing is initially, I thought a pattern like that should be implemented using BT itself:

sequence repeat_until(fn:tree){
  ...
  fn(..)
}

// where x can depend on some logic inside the tree
root main repeat_until(
   main_tree(x=1)
)

Meanwhile, my thoughts:

Expose API for forester_rs::runtime::forester::Forester to separate ticking the tree from cleaning up the tree, which could be done either by:

The idea, in its turn, seems pretty good in general.

Decoupling the functions of running a tree and cleaning up the resources I think need to be provided in general.
The ability to run a tree manually tick by tick also can be provided, although I would consider the cases. My reasoning is simply the logic when the manual tick is needed can be implemented inside the BT itself. But, it does not cost a lot to implement so I would also create it. Here can be a flag, but I would simply provide two methods on run:

fn run_with_cleanup(..)
fn run(..)

But those are just details.

KeepRunningUntilFailure - well, I thought that can be expressed in BT itself if it is needed using hotree,
something like(did not check, probably will require some changes in retry)

impl business_action(a:num);

sequence KeepRunningUntilFailure(tree_to_run:tree){
  retry invertor tree_to_run(..)
}

root main KeepRunningUntilFailure(business_action(a = 1))

If you think, it should be decorator, we can add it as well.
My thoughts regarding decorators were very simple:

if it can be expressed in BT better to do it
but we can also add them as soon as they are needed.

Circling back to this issue as I think it should block part of #65. First some context.
The workaround I found for this issue was simply to not use the daemons at all. Since there were no daemons, clean up is trivial and doesn't take too much time. This actually turned out to be a huge win for me, as it meant I could reuse patterns from the rest of my codebase for the work the daemons would otherwise do. I now have a very strong preference to use Forester as a component of my application (e.g. as a library) rather than the core of my application (e.g. as a framework).
The link to #65 relates to preventing the delay decorator from blocking r_sequence, AKA delay returning running rather than blocking the whole thread with a sleep(). If delay no longer sleeps, then there will be no way to throttle long-running behaviour trees. This means anything that implements a delay decorator will consume 100% of the CPU while waiting for the delay to finish.
Now for the solution.
I'd like to propose we add three new functions to the API of forester_rs::runtime::forester::Forester:

tick() - which would:

Create a TreeContext as a member variable of Forester if one didn't already exist.
Run the while-loop of run_until() until we hit the root (e.g. whole tree errors, returns success or failure, or some node returns running).
restart() the TreeContext if the root node finished (error/success/failure). See below for more on restart().

stop_all_daemons() - which would:

Basically just call self.env.lock()?.stop_all_daemons()

restart() - which would:

Delete and recreate the TreeContext.

run() would become a convenience function that calls tick() until completion, then calls stop_http(), stop_all_daemons() and restart(), while run_until() does the same with a limit on the number of times tick() is called. It would make sense to me for run() to take an Option<Duration> argument to throttle the CPU usage, but since this would break the existing API I'm happy to leave it out. Perhaps a spin duration could be set for run() in the Forester builder?
This design allows for:

Tree execution to be throttled, by reducing the frequency with which the user calls tick().
Forester to be easily run as a component of a larger application, since it will regularly feedback the running/success/failure status of the root node, without compromising its ability to work as a framework.

I'm very interested to get your thoughts on the above.

This actually turned out to be a huge win for me, as it meant I could reuse patterns from the rest of my codebase for the work the daemons would otherwise do. I now have a very strong preference to use Forester as a component of my application (e.g. as a library) rather than the core of my application (e.g. as a framework).

Yeah, the thing was initially to decouple writing bt code from Rust and it is more like a framework approach rather than a library.  In that paradigm, the daemons are vital to provide the background ops. But of course, having it as a library, you can handle all background processes independently as well.

If delay no longer sleeps, then there will be no way to throttle long-running behaviour trees. This means anything that implements a delay decorator will consume 100% of the CPU while waiting for the delay to finish.

Yeah, I agree, it does not look good. But the whole delay decorator is slightly our of the conception of the tree since it does not operate the real time.
The methods:

1 tick() - which would:
I agree, the method will enable to use Forester as a lib.

restart() the TreeContext if the root node finished (error/success/failure). See below for more on restart().
Will the restart lose the information about the current state? For instance, there's a m_sequence or running node, then it will drop the state or I just did not get this part?

stop_all_daemons() - which would
maybe rename to clean() or finalize() operation and stop the HTTP server also?

I recon, the idea is very strong and seems to be super useful.

That's a very good point about restart() handling running nodes, and kind of ironic that I missed it given the amount of work I've just put into how the rest of the tree handles running nodes!
To do it properly I suspect a call to restart() should halt() any running nodes, so they can be in a fresh state for the restarted tree. All I was imagining was literally deleting and restarting the context, with the intention to drop the state for m_sequence etc, as you said.
Since I don't personally have any current need to restart() I'll just leave this out of the implementation. If someone else wants to implement it properly it can be done later. In the meantime, users can just call tick() or run() until the tree stops returning running.
Combined with your other suggestion that leaves two new functions:

tick() - which would:

Create a TreeContext as a member variable of Forester if one didn't already exist.
Run the while-loop of run_until() until we hit the root (e.g. whole tree errors, whole tree returns success or failure, or some node returns running).
Delete the member variable TreeContext if the root node finished (error/success/failure). (No nodes are running so no need to halt())

finalize() - which would:

Call self.env.lock()?.stop_all_daemons()
Call stop_http()

run() and run_until() will be refactored to use tick() and finalize() under the hood but maintain the same external behaviour.

That sounds very good to me.


babel-jest not necessary?

I see a couple of places in the docs where it says to npm install --save-dev babel-jest, but it's unclear to me what this provides, or whether it is even necessary. Without it installed, babel seems to be working transparently. It parses and runs coverage on jsx files just fine. If babel-jest is still necessary, it would be good to have some documentation about what it does.
https://github.com/facebook/jest#babel-integration
https://facebook.github.io/jest/#babel-integration

If you need to pre-transpile ES2015+ syntax, you need babel-jest. If you are using ES5 syntax, I think you will be ok.

As you can see from its package.json babel-jest is mostly responsible for integration with Istanbul (code coverage) and babel-preset-jest having babel-plugin-jest-hoist which will hoist your mocks above imports and requires (that's the magic behind Jest mocking system).
Of course you can set this up yourself pretty easily, but babel-jest is just a helper to reduce the configuration boilerplate.
And here's documentation mentioning babel-jest https://github.com/facebook/jest/blob/master/docs/API.md#jestmockmodulename-factory-options
We could provide some brief description of what it does in the readme though.
@cpojer anything else you'd like to add?

Because babel-jest is now also a dependency of jest-runtime, when using Yarn or npm3+, it implicitly is also available as a top-level node_module because of how the algorithms flatten dependencies. Jest then finds babel-jest. If for some reason the de-duping doesn't work, you may lose babel-jest and it will break. I recommend to always explicitly install babel-jest.

Good to know that it's more of a required dependant and not optional. Thanks for clarifying this!


Default value

I think it would be great if there was an optional  default prop that allows the text to be set to the original text prop in case of no internet or if there is something wrong with the api creds.

@danialkalbasi I made the pull request to have the text default to the original text, my linter reformatted the  a lot of the file, but all I changed was setting the original state to props.text, can't see how this would hurt anyone and would help with anyone who has a slow internet connection

@waltershub thanks for the PR. There are some issues I commented which need to be fixed before it merges into master. Let me if you need help!


what's the purpose of this lib?

What's the purpose of this lib?
Is it used to help in developing or in runtime type check?

From the project title:

Check TypeScript type definitions

By definition, this can only be compile-time, type definitions aren't present at runtime. More specific, this is for testing type definitions correctness, usually paired with a CI setup.

Normally, *.d.ts files are emitted by tsc, is it still need to be tested?

It's for JS libraries that provide hand-written *.d.ts files.

Okay, thanks

It's for JS libraries that provide hand-written *.d.ts files.

Why wouldn't a repo with TS source benefit from tsd? Just because TS generates those definitions it doesn't mean that they match your expectations.


Suggest extending support for aria-expanded to radios

What
Make the case for extending support for aria-expanded to elements with the radio role in the ARIA spec.
Why
The current working draft of ARIA 1.2 extends support for aria-expanded to checkboxes, but not to radios. We think there is a valid case for a radio button revealing additional content, and believe that using aria-expanded is a good way to expose this behaviour to assistive technologies.
If we can make the case for extending support to radios as well, we can then raise bug reports with assistive tech vendors to make sure the expanded state is communicated reliably.
Who needs to know about this
Developers, technical writer
Further detail
Helps resolve the following issues:
#979
#1972
#1988
#1989
Done when

[x] Initial case written up
[x] Raise as an issue in w3c/aria repo
[ ] Any follow-up questions answered

Posted at https://github.com/w3c/aria/issues/1404


Proposal: add sparse (bm25) indexing and search functionality

WHAT
Search using sparse ranking functions like BM25 in Weaviate.
WHY
Because a sparse method like BM25 performs well in keyword-based and out-of-domain search.
HOW

The BM25 score estimates the relevance of documents to a search query based on a probabilistic model.
Add BM25 to GraphQL queries.
This is a proposal for adding BM25 functionality that can be used without any modules attached, and thus can be used outside nearText search.
The BM25 feature should be enabled in the docker-compose setup.
The BM25 score is calculated using the official Okapi BM25 formula.
Some preprocessing needs to be done to the query and documents:

tokenization, removing special characters, removing stopwords, normalization and stemming

The score should be made positive, regardless if IDF returns a negative score.
BM25 score is unbounded. Score normalization or scaling is not a good idea, because you loose information on how good the results are textually. However, when combining BM25 with Dense search, some form of normalization may be handy, so we can choose to offer normalization methods anyways. We can explain strategies in the documentation. Possible strategies are:

minmax - To leave the distribution intact, the best normalization method is a minmax approach, which takes the minimum BM25 score and maximum BM25 score into account. Taking the maximum BM25 score of a particular query as maximum in the formula is not a good idea, because then you're setting this result to the maximum score regardless the actual score. So a (theoretical) maximum needs to be defined, although bm25 is unbounded. This can be achieved by running a number of different queries, and recording the maximum value. Since this is quite complex to implement as feature, we can start by offering a setting with a default value, which the user can change on runtime. An example can be: max((x/10), 1) if the guessed maximum is 10.
Arctangent - An arctan scales values in a logarithmic manner. A function to scale scores <-1, 1> (practically between <0,1> because x will be a positive score) is: 2/pi*arctan(x) (see https://www.mdpi.com/2227-7390/10/8/1335)

Design - Weaviate setup
Requirements:

Enable sparse indexing
Choose which (one or more) space indexing method to enable (e.g. BM25, BM25F, TFIDF, etc).
Set parameters for BM25

b (between 0 and 1, default 0.75)
k1 (between 0 and infinite, usually between 0 and 3, default 1.2)

Option to set a normalization function

Schema
The settings should be configured in the schema, per class:
{
  "class": "string",
  "sparseIndexType": "bm25",                // NEW - can be used next to "vectorIndexType"
  "sparseIndexConfig": {                    // NEW - configuration of the sparse index
    "bm25": {
      "b": 0.75,
      "k1": 1.2
    }
  },
  "properties": [
    {
      "name": "string",
      "description": "string",
      "dataType": [
        "string"
      ],
      "sparseIndexConfig": {                // NEW - overwrites the class specific config settings for this property
        "bm25": {
          "b": 0.75,
          "k1": 1.2,
        }
      },
      "indexInverted": true
    }
  ]
}

Docker-compose
In case we need to let Weaviate know on startup whether to enable sparse search, we can introduce an env var like ENABLE_SPARSE_INDEX:
---
version: '3.4'
services:
  weaviate:
    command:
    - --host
    - <IP_ADDRESS>
    - --port
    - '8080'
    - --scheme
    - http
    image: semitechnologies/weaviate:1.14.1
    ports:
    - 8080:8080
    restart: on-failure:0
    environment:
      QUERY_DEFAULTS_LIMIT: 25
      AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true'
      PERSISTENCE_DATA_PATH: '/var/lib/weaviate'
      DEFAULT_VECTORIZER_MODULE: 'none'
      ENABLE_MODULES: ''
      CLUSTER_HOSTNAME: 'node1'
      ENABLE_SPARSE_INDEX: 'true' # <== NEW. Which method (e.g. bm25) can be specified in the schema. Not sure if this variable is needed in the docker-compose actually.
...

Design - GraphQL Queries
{
  Get {
    Paper (
      sparseSearch: {             # NEW - alternative name: sparse
       function: bm25,            # NEW - `bm25` is the first option to implement. This can be omitted if it is the same as specified in the schema. But if you want to use e.g. bm25+, then this can be specified here.
       query: "test",
       properties: ["abstract"]   # NEW - if not specified, then take all properties into account,
       normalization: {           # NEW - optional, always scales between 0 and 1. Only 1 method can be chosen (minmax OR arctan)
          minmax: {
            active: true          # doesn't need this param, but introducing because otherwise not consistent with design..
            max: 10,              # Optional - If not set, maximum is the maximum of that query.
            min: 0                # Optional - If not set, minumum is 0.
          }
          arctan: {               # doesn't need params, but introducing because otherwise not consistent with design..
            active: true
          }
        }
      }
    ) {
      title
      abstract
      _additional {
        score                     # NEW - because distance is not a good word, it really is a ranking score instead of distance between vectors
      }
    }
  }
}

Notes

In the current experimental BM25 feature, the score returned is always negative. This can happen when IDF is negative which happens if the terms in the query appear in more than half of the documents in the dataset, but this is not the case with some queries in my experiments, so perhaps there is a mistake somewhere in the implemented formula.
In the current experimental BM25 feature, no results are shown if the query contains capitals or special tokens. The query should be preprocessed properly in the final implementation.

For a first MVP we could implement BM25F, which the following minimal UX details:
MVP

BM25F
Multiple fields
Weighting per field in query (boosting)

Indexing

Preprocessing

Remove stopwords
Synonyms

Schema
The settings should be configured in the schema, per class:
{
  "class": "string",
  "sparseIndexType": "bm25f",                // NEW - can be used next to "vectorIndexType". bm25f is the first to support
  "sparseIndexConfig": {                    // NEW - configuration of the sparse index
    "bm25f": {
      "b": 0.75,
      "k1": 1.2
    }
  },
  "properties": [
    {
      "name": "string",
      "description": "string",
      "dataType": [
        "string"
      ],
      "sparseIndexConfig": {                // NEW - overwrites the class specific config settings for this property
        "bm25f": {
          "b": 0.75,
          "k1": 1.2,
        }
      },
      "indexInverted": true
    }
  ]
}

Design - GraphQL Queries
{
  Get {
    Paper (
      matchText: {                         # NEW - alternative name: sparseSearch
       query: "test",
       properties: ["abstract", "title^2"],   # NEW - if not specified, then take all properties into account. Only text and string fields are supported. Boosting per field by multiplying, in this case title is multiplied by 2, which means that the score of this field is calculated as if each term in the title field appears twice. Boosting numbers should be higher or equal to 1.0.
       operator: AND                          # NEW - optional, Boolean logic used to interpret text in the query value, options are OR, AND
      }
    ) {
      title
      abstract
      _additional {
        score                                 # NEW - because distance is not a good word, it really is a ranking score instead of distance between vectors
        explainScore                          # NEW - interpretation of the score, so the values per field and how they add up to the overall score
      }
    }
  }
}

Closing as complete


Data transition animation issue

Description
Looking at the official data transition example: https://echarts.apache.org/handbook/en/how-to/animation/transition
It looks really smooth and fancy, however, within this library, this is broken: https://stackblitz.com/edit/vitejs-vite-bcghqm?file=src%2FApp.tsx
Why invoke .clear() on option change?
https://github.com/hugocxl/react-echarts/blob/ae6bd50f253345edb7efef5936c0c04fd1b20057/src/use-echarts.ts#L179
This line is definitely which breaks this in the first place. If the instance is cleared, there's no way ECharts can diff the options, hence animation won't be applied. And what's even worse, the entry animation will be played everytime option changes.
If it's intend to avoid memory leak, we should just clear it when component unmount by return value of empty-dependency-array useEffect
Maybe, passing down property: undefined is different from not passing that property in ECharts options
Since you are restructuring everything then pass down to setOptions(), this may have some weird behaviour on how ECharts handles data and diff them. At least this is true in some of ESLint rules, that passing undefined is different from not passing.
I've tried to remove .clear() call and remove everything except series when passing to setOptions(), https://github.com/hugocxl/react-echarts/blob/ae6bd50f253345edb7efef5936c0c04fd1b20057/src/use-echarts.ts#L215
then the example above works, but unfortunately I can't edit node_modules folder in stackblitz.
Link to Reproduction
https://stackblitz.com/edit/vitejs-vite-bcghqm?file=src%2FApp.tsx
Steps to reproduce
No response
JS Framework
React TS
Version
latest
Browser
Chrome 121
Operating System

[ ] macOS
[X] Windows
[ ] Linux

Additional Information
No response

@xsjcTony I understand your solution is working? Could you open a PR? It'd be a great contribution. Thanks!

@xsjcTony I was reviewing the reason to include the "clear" call. I see that somehow, when it is not being called, ECharts does not render properly during the first render.
I need to spend some time on this to figure out where the problem is coming from, but I'm currently pretty busy. Sorry for the inconvenience.

Fixed in v1.0.4, thanks to @brandanking-decently contribution.

Hi @hugocxl
I checked link to reproduction from OP
https://stackblitz.com/edit/vitejs-vite-bcghqm?file=src%2FApp.tsx
updated package.json there to have "@kbox-labs/react-echarts": "^1.0.4"
still issue is reproducing.
I already opened new issue #25 but it seems we need to reopen this one instead?

Hi @YuriGor,sorry for the delay. Thanks for the reproduction link. I'm having a pretty busy time lately, I'll try to get into the issue as soon as possible. Thanks again


feat(cli): template when creating LQL queries

Summary
As a Lacework CLI user,
I want to have a boilerplate template when creating new LQL queries,
So I don't have to type the entire query from scratch.
How did you test this change?
I run the command lacework query create without inputs and my default editor opened with:

Issue
N/A - Needed for my Hackathon Project.

I detected a bug in the lacework query show command, when there are special characters like % the CLI was outputting:

(detected it via the new test 💯🙌🏽)
Now it shows the correct query.


query not a function

import express from 'express';
import fs from 'fs';
import path from 'path';
import {RAGApplicationBuilder, RAGApplication,
PdfLoader, YoutubeSearchLoader, SitemapLoader, WebLoader, TextLoader } from '@llm-tools/embedjs';
import {LanceDb} from '@llm-tools/embedjs/vectorDb/lance';
import { OpenAI } from "openai";
let key = process.env.OPENAI_API_KEY; // Replace with your OpenAI API key
const openai = new OpenAI({
apiKey: key
});
router.get('/test', async (req, res) => {
const ragApplication = await new RAGApplicationBuilder()
.addLoader(new WebLoader({ url: 'https://en.wikipedia.org/wiki/Tesla,_Inc.' }))
.setVectorDb(new LanceDb({ path: './db' }));
res.status(200).send(await ragApplication.query('Tell me about the history of Tesla?'));
})

TypeError: ragApplication.query is not a function
Failed to build RAG application: TypeError: Cannot read properties of undefined (reading 'query')
However query is failing what imports do i need to specify for this?
Notice youtube issue's a fetch warning "experimental". I'm using node v18, moving to v20 soon.

Glad it worked. I am a little curious, did you see the error by just referencing / importing from the OpenAI package? Also, do you mind sharing why you are using OpenAI directly with this package - any use case that this library does not cover?

You have to keep your script clear of any openai imports or  openai variable declarations.  So no referencing in the script. I had like an openai import from openai, and i had a openai var declaration passing in the key. You see this a lot in these types of scripts but its not required for your library.  All is needed is the env open ai entry you specify in docs and its key nothing more. Your lib does the rest.  Once i did that everything worked thank you


APEXCORE-781 Update the autometrics only if the number of partitions matches with the size of metric collection

@PramodSSImmaneni @sanjaypujare Please review and merge.

@sanjaypujare @PramodSSImmaneni I incorporated review comments. I added the option for querying latest completed metrics. We can query this as follows:
http://host:port/ws/v2/applications//logicalPlan/operators//metrics?isPartialAggregates=false
Please review the changes and share your comments.

@vrozov I haven't changed the behavior of metrics aggregation. I just added the option to query the latest completed metrics for the logical operator. This option will work when the number of partitions is static/dynamic.

@chaithu14 Please provide the specification of "completed metrics for the logical operator" and method for checking whether metrics are completed or not in case of dynamic partitioning.

@vrozov Completed metrics means that the logical metrics consists of the aggregate of all physical partition metrics of a logical operator.
Verifying the metrics is completed or not as follows:
isCompleteMetrics = (metricPool.size() == physicalOperators.size());

Here, physicalOperators.size() returns the number of partitions(static/dynamic) of logical operator. So, the above condition will work for dynamic as well.
Please let me know, if I missed anything.

@vrozov Why would the partitions number be different? Every physical plan change redeploys affected part of the DAG and dynamic partitioning happens through physical plan change.

@sandeshh because you can't change what happened in the past. The number of physical operators  in the plan reflects the current number, while the actual number deployed in the past may be different. Consider a case where the number of partitions changes from 1 to 2 at window id 10. Are not metrics reported for window id 5 are complete even if it was reported only from 1 partition?

@vrozov when dynamic partitioning happens the partitions will restart from checkpoint so the stats will in effect be recomputed for the affected windows, so in your example window 5 will most likely be recomputed with physical partition count of 2 as the checkpoint will most likely be older than window 5. The reason I say most likely is that there is a very small chance that by the time stram is processing a stat received from a partition the partition has since checkpointed, dynamic partitioning has happened and the new checkpoint is the basis for the new partitions.
In any case, as long as this computation does not block further processing, marking a few stats that are in a transient state as incomplete in unusual scenarios such as this is acceptable. Another scenario is when operators fail and restart the stats for existing windows would be recomputed, so in that case we cannot mark a window as completed till there is a committed window greater than or equal to it. That would introduce a good 30s delay in reporting complete stats. In many scenarios users are fine with seeing latest logical stats and already published stats getting recomputed when there are the occassional failures or changes. Maybe we can have another state for committed stats if needed. If you have a better option please propose it.

@PramodSSImmaneni My take is that it is not OK to fix a bug by introducing another bug.  If this is already handled by the existing code, I expected the contributor (preferably) or any other reviewer to point me to a place where it is handled. It will confirm for me that the newly introduced changes are consistent with the existing code and the contributor spent time to understand how metrics collection works both when a physical plan is static or when there are changes to the physical plan whether they are caused by operator failures or re-partitioning. At this point, I doubt that the homework was properly done.
In my example number of partitions changes at window id 10 (checkpoint). So statistics for that window id would transition from complete to incomplete and then complete again. Will not statistics for window id 5 transition from complete to incomplete? Note that I am not an expert in metrics collection, and possibly concern that I have is already handled, but I do want a confirmation that it is handled before moving forward with the PR.

@vrozov
"In my example number of partitions changes at window id 10 (checkpoint). So statistics for that window id would transition from complete to incomplete and then complete again. Will not statistics for window id 5 transition from complete to incomplete?"
Stats for window 5 should not be recomputed. Stats for 10 and higher would most likely be recomputed and that would be the case in case of recovery from failure as well. The stats would be frozen only after committed window but that has a delay of at least one checkpoint interval. There is a need in many cases to get the latest logical stat computed from all the partitions much sooner, as soon a window is processed by all the patitions, with the understanding that the values can change in case of reprocessing (in some cases like auto metrics they may not change if it is idempotent replay). The reason for an aggregate from all partitions is so that it gives the total value and also it can be consistently compared with other prior readings as opposed to partials which could fluctuate quiet a bit based on number of partitions aggregated. If the word completed is not the most appropriate terminology here, a better term could be used. Additionally, the committed stats could also be published.

@vrozov any comments or are you still -1, even if it is not called completed

@PramodSSImmaneni @sanjaypujare I am still -1 as CI build fails. Additionally, one of my comments was not addressed. I'll dismiss review once the CI build succeeds, but would like the comment to be addressed before the PR is merged.

@vrozov in the discussion I have lost track of which comment was not addressed. Could you restate it?

@PramodSSImmaneni It was in my browser cache. If Apex already makes a distinction between metrics for committed (I assume committed here means that all physical partition committed for the same window id) and uncommitted metrics, is there a need to introduce complete metrics? Additionally, I'd like "should not" and "most likely" be converted to "will not" and "will" with the pointers to the code that accomplishes that.

@vrozov apex does not make that distinction with metrics, it would have to be something new that would have to be added. Like I said there will be an associated cost with it, a delay of more than 30s to receive logical metrics that includes all partitions. That makes having this feature valuable. Regarding the second part, your ask for code pointers sounds to me like you are skeptical, I encourage you to go through the code to clear any doubts you have or once you see how it works you may have some new concerns. I think as committer who is reviewing this PR, it is important you verify the code directly and not go by someone's account of it.

For a feature to be valuable it needs to work according to a design specification. The proposed implementation lacks the definition of "complete" (you name it) metrics or to be precise, the definition provided by the committer does not take into account dynamic nature of a physical plan. In the future, the vague definition will lead to hard for understanding functionality and impossible to fix problems.
I already checked the code and I don't see why statistics for checkpointed windows will not be re-computed. If I miss something, please point where it is excluded from the re-computation. Once the pointer to the code that handles checkpointed window id is provided, as PR reviewer, I'll verify that it clears my concerns.

The stats from the checkpointed window will be recomputed but could be different the next time around so if you want a stat that is guaranteed to not change you have to wait till the window is guaranteed to not be reprocessed again which means to not publish it till the committed window. That is a significant delay and while it might be fine and required in some cases, it isn't in many others. Are you asking for this to be implemented?
What we need in many scenarios are logical stats as soon the entire set of partitions have reported the physical stats for a particular window. It does not have to be called "complete". If there is any sort of replay (including dynamic change) the stats for the window would be recomputed and republished that IMO is acceptable for this feature based on how apex works.
This behavior could be explained in java documentation and if the word "complete" is confusing, it could be changed to something more apt. I am not sure what design specification you are referring to or the exact behavior you are looking for. Also, I would say this behavior is more in line to how stats were designed to work.

There is a difference between statistics that need a restatement like in case of an operator failure (by the way will not it be good to preserve statistics prior to a failure so both can be compared? A failure or dynamic repartitioning may be a result of a physical operator load. I do not request this feature now, but something to be considered in the design) and statistics that did not change, but would be recomputed and incorrectly marked as incomplete. Assuming that complete means received from all physical operators, should not statistics for a window that immediately precedes checkpointed window where re-partitioning is done be returned as the last complete statistics until statistics from new partitions is collected? Consider a case where a  number of partitions is large. It may take a while (way more than 30 sec) for a Yarn cluster to allocate resources and during that time will not a wrong (stale) statistics be returned as the completed statistics?
No, I don't ask for a committed statistics, based on your comments it sounded like the feature is already implemented.
A design specification for this or any other functionality is a detailed description of how the functionality works in different use cases that affect that functionality. It may be in a form of a java doc (in case it describes API, class or an interface) or in JIRA (in this particular case) where functionality spans multiple Java classes.

Closed due to inactivity


[$500] Profile - "No results found" Displayed When Pressing Space Without Entering Character

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: <IP_ADDRESS>
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:

Navigate to Profile > Personal details > Address.
Click on "Address line 1" and press the space button.

Expected Result:
The message "No results found" should not be displayed when pressing the space button without entering any character.
Actual Result:
The message "No results found" is displayed when pressing the space button without entering any character.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence
https://github.com/Expensify/App/assets/93399543/1d79be6c-a3fe-4a30-95da-c952e244399f
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01f381031e1d7bb363
Upwork Job ID:<PHONE_NUMBER>239028736
Last Price Increase: 2023-11-21

Proposal
Please re-state the problem that we are trying to solve in this issue.
Profile - "No results found" Displayed When Pressing Space Without Entering Characte
What is the root cause of that problem?
https://github.com/Expensify/App/blob/0cca90ab9aa7fd9467ef45ca35c4d0ad3c3334ae/src/components/AddressSearch/index.js#L389-L392
In here we only check isTyping and don't check !props.value.trim()
What changes do you think we should make in order to solve the problem?
should update like this
listEmptyComponent={
                            props.network.isOffline || (!isTyping || !props.value.trim()) ? null : (
                                <Text style={[styles.textLabel, styles.colorMuted, styles.pv4, styles.ph3, styles.overflowAuto]}>{props.translate('common.noResultsFound')}</Text>
                            )
                        }

What alternative solutions did you explore? (Optional)

Proposal
Please re-state the problem that we are trying to solve in this issue.
An empty results list is shown when only a space is entered in the Address field
What is the root cause of that problem?
We do not have any specific logic to handle an empty trimmed value in the AddressSearch component.
What changes do you think we should make in order to solve the problem?
We should hide the spinner & the listEmptyComponent:
                        listEmptyComponent={
                            props.network.isOffline || !isTyping || props.value.trim().length === 0 ? null : (
                                <Text style={[styles.textLabel, styles.colorMuted, styles.pv4, styles.ph3, styles.overflowAuto]}>{props.translate('common.noResultsFound')}</Text>
                            )
                        }
                        listLoaderComponent={
                            props.value.trim().length === 0 ? null : (<View style={[styles.pv4]}>
                                <ActivityIndicator
                                    color={theme.spinner}
                                    size="small"
                                />
                            </View>)
                        }

https://github.com/Expensify/App/blob/d521dd6783c382297e06a429701ae1936f808041/src/components/AddressSearch/index.js#L389-L401

What alternative solutions did you explore? (Optional)

Proposal
Please re-state the problem that we are trying to solve in this issue.
No results found" Displayed When Pressing Space Without Entering Character
What is the root cause of that problem?
The root cause is just that don't check that text of Address line1 includes only blank or the text start from blank in listLoaderComponent at src/components/AddressSearch/index.js
What changes do you think we should make in order to solve the problem?

First add or change code as following in onInputChange using regex:
Add:
const regex = /^\s*$/;
const isBlank = regex.test(text);

Change:
setIsTyping(!isBlank);
Then, update the code of listLoaderComponent
listLoaderComponent={
    !isTyping ? null : (
        <View style={[styles.pv4]}>
            <ActivityIndicator
                color={theme.spinner}
                size="small"
            />
        </View>
    )
}

const regex = /^\s*$/;
This regular expression matches any string that consists of zero or more whitespace characters (\s), and no other characters. The ^ and $ anchors ensure that the entire string matches the pattern.
What alternative solutions did you explore? (Optional)

Reviewing today

@paultsimura your proposal looks solid.
I see PR for fixing bug in react-native-google-places-autocomplete is not created yet. Please provide link for the PR once it is created. After fixing bug in upstream we proceed with opening PR for expensify app.
C+ reviewed 🎀 👀 🎀

This doesn't seem like much of a bug to me. I'm asking internally about it


Add text-rendering CSS property

Using text-rendering: optimizeLegibility enables kerning and optional
ligatures, which may affect text metrics.
Here's an example of a pathological case of kerning:
text-rendering: auto (default)

text-rendering: optimizeLegibility

Looks good! Thanks for your contribution.

Nice! Thank you!


required field Question

For e.g., we have a schema as following
{
	"type": "object",
	"properties": {
		"user": {
             "$ref": "/another_schema"
		}
	},
	"required": [
		"user"
	]
}

When validate against following payloads,
{
	"user": {
		"user_id": null
		"user_name": null
	}
}

{
	"user": {}
}

It would throw required user is a required property
Is there any setting to let the payload pass as it is keeping the required structure "user"?

what is "/another schema"? Can you post the whole code please?

The problem is either in "/another_schema" or in the incorrect usage. See https://tonicdev.com/esp/56bdbb503689090c00a52ed8

Thanks, will check our codes.

No problem, let me know if there are any problems


Add initial Context Provider for VM Wizard

📝 Description
Adding a global context provider extension with the following values:
type WizardTemplateContextType = {
  /** the template used for the wizard */
  template?: V1Template;
  /**
   * used to update the context template.
   * @param template V1Template
   */
  updateTemplate?: (template: V1Template) => void;
  /** loading state of the template */
  loaded?: boolean;
  /** error state of the template */
  error?: any;
};

@metalice @vojtechszocs @yaacov plz review

please review @vojtechszocs @metalice @yaacov

/lgtm

/hold

/unhold

I decided to implement session storage only for the current template. The storage is reset after VM creation.
This helps the wizard survive a full page reload.
Also helps us develop the wizard faster as we don't need to fill the customize form each time we update the code.
@metalice @yaacov @vojtechszocs @avivtur
I'm still not sure about processing the template after each change. Processing the template does not give any validation to the VM object. It may be best to just update the template state without processing it (backend call) and build forms with great validation.

It may be best to just update the template state without processing it (backend call) and build forms with great validation.

Our requirements are:
a - no client logic
b - only one source of truth and it is the back-end
requirement a means that we should not implement validation at all (not complicated, anyways)
requirement b means that any validation we do on the UI side is not valid, we will need to validate using the back end each time we want to show the user indication about validity of input (unless it's trivial like missing required field,  integers, positive numbers and names validations)

/lgtm


I have some advice.

Bro, can you give me some examples of single-player non-gun games. I don't understand both gunplay games and code

What do you mean? If you're able to use cheat engine on a single player game then you should be able to use pyMeow by looking into the examples.


OCP Observe > Dashboards UI not showing any data for Kepler Dashboards

I tried installing the Keplar operator on my OCP (OpenShift Container Platform) version - 4.12.42. I followed the steps from the following RedHat blog - Introducing developer preview of Kepler: power monitoring for Red Hat OpenShift.
After installing the operator and creating an instance of the CRD, as per the blog in the 2 dashboards (1) Power Monitoring / Overview and (2) Power Monitoring / Namespace that gets added in the Observe > Dashboards UI, the data should visible but in my case I was seeing no data there:

Using the port-forward command, I validated the availability of the metrics too:

The Grafana Dashboard in the repo here hack/dashboard/assets/kepler/dashboard.json, shows the following error:

Finally on hitting the Prometheus API /api/v1/query_range directly and requsting data for the metric, an empty array was returned indicating there was no data for our query parameter present in prometheus.
{"status":"success","data":{"resultType":"matrix","result":[]}}

My understanding from this is, Prometheus is failing to pull the data from the exporter service. If there's any configuration or step I'm missing out on, do help me out.
Thanks!

Thank you so much @stleerh! The YAML you shared worked perfectly.


Feature: remove gvcf blocks before db creation

Hi Brad,
We configure bcbio to output gvcf files instead of regular vcf's, but this causes the gemini db's to expand significantly. Would it be possible to remove the gvcf blocks from the vcf before creating the db? gvcf entries are also pretty useless to have in a gemini db, and slow down queries.
This can easily be done using gvcftools function extract_variants. I'd implement this myself, but I don't really know where I'd best add this pipe.
Your thoughts?
Thanks
M

Matthias;
Thanks for the suggestion. Are you using tools_on: [gvcf] to force gVCF output? If so, what you do think about using the joint calling approach instead of this flag, which is more meant for debugging and gVCF work:
http://bcbio-nextgen.readthedocs.io/en/latest/contents/pipelines.html#population-calling
For HaplotypeCaller this produces both the sample gVCF and joint called VCF for GEMINI automatically. We'd also like to expand FreeBayes support to do this as well, if you're using that as a caller.
The tricky thing about doing outside of joint calling is that there are many different flavors of gVCF and we'd have to maintain tools to specifically remove reference blocks.
Thanks for the ideas and discussion.

Hi Brad,
We are indeed using tools_on: [gvcf]. I thought this was the best approach, since we're dealing with single samples and not with batches or cohorts.
I'll give it a shot anyways, and keep you posted on the progress!
Thanks for the suggestion!
M

Hi Brad,
I tested the suggestion above and ran into the following error:
Traceback (most recent call last):
  File "/home/galaxy/bcbio-dev/anaconda/bin/bcbio_nextgen.py", line 234, in <module>
    main(**kwargs)
  File "/home/galaxy/bcbio-dev/anaconda/bin/bcbio_nextgen.py", line 43, in main
    run_main(**kwargs)
  File "/home/galaxy/bcbio-dev/anaconda/lib/python2.7/site-packages/bcbio/pipeline/main.py", line 42, in run_main
    fc_dir, run_info_yaml)
  File "/home/galaxy/bcbio-dev/anaconda/lib/python2.7/site-packages/bcbio/pipeline/main.py", line 86, in _run_toplevel
    for xs in pipeline(config, run_info_yaml, parallel, dirs, samples):
  File "/home/galaxy/bcbio-dev/anaconda/lib/python2.7/site-packages/bcbio/pipeline/main.py", line 185, in variant2pipeline
    samples = population.prep_db_parallel(samples, run_parallel)
  File "/home/galaxy/bcbio-dev/anaconda/lib/python2.7/site-packages/bcbio/variation/population.py", line 313, in prep_db_parallel
    output = parallel_fn("prep_gemini_db", to_process)
  File "/home/galaxy/bcbio-dev/anaconda/lib/python2.7/site-packages/bcbio/distributed/multi.py", line 28, in run_parallel
    return run_multicore(fn, items, config, parallel=parallel)
  File "/home/galaxy/bcbio-dev/anaconda/lib/python2.7/site-packages/bcbio/distributed/multi.py", line 86, in run_multicore
    for data in joblib.Parallel(parallel["num_jobs"], batch_size=1)(joblib.delayed(fn)(x) for x in items):
  File "/home/galaxy/bcbio-dev/anaconda/lib/python2.7/site-packages/joblib/parallel.py", line 804, in __call__
    while self.dispatch_one_batch(iterator):
  File "/home/galaxy/bcbio-dev/anaconda/lib/python2.7/site-packages/joblib/parallel.py", line 662, in dispatch_one_batch
    self._dispatch(tasks)
  File "/home/galaxy/bcbio-dev/anaconda/lib/python2.7/site-packages/joblib/parallel.py", line 570, in _dispatch
    job = ImmediateComputeBatch(batch)
  File "/home/galaxy/bcbio-dev/anaconda/lib/python2.7/site-packages/joblib/parallel.py", line 183, in __init__
    self.results = batch()
  File "/home/galaxy/bcbio-dev/anaconda/lib/python2.7/site-packages/joblib/parallel.py", line 72, in __call__
    return [func(*args, **kwargs) for func, args, kwargs in self.items]
  File "/home/galaxy/bcbio-dev/anaconda/lib/python2.7/site-packages/bcbio/utils.py", line 51, in wrapper
    return apply(f, *args, **kwargs)
  File "/home/galaxy/bcbio-dev/anaconda/lib/python2.7/site-packages/bcbio/distributed/multitasks.py", line 268, in prep_gemini_db
    return population.prep_gemini_db(*args)
  File "/home/galaxy/bcbio-dev/anaconda/lib/python2.7/site-packages/bcbio/variation/population.py", line 39, in prep_gemini_db
    gemini_db = create_gemini_db(gemini_vcf, data, gemini_db, ped_file)
  File "/home/galaxy/bcbio-dev/anaconda/lib/python2.7/site-packages/bcbio/variation/population.py", line 67, in create_gemini_db
    cmd = [vcf2db, ann_file, ped_file, tx_gemini_db] + vcf2db_args
NameError: global name 'ann_file' is not defined

I'm on the latest dev version, using the following config:
#bcbio-nextgen v1.0.2a
---
fc_name: bcbio-dev_run
upload:
  dir: ../final
globals:
  analysis_regions: RefSeq_allexons_20bp.sorted.merged.bed
resources:
  tmp:
    dir: /tmp/bcbio
details:
  - analysis: variant2
    genome_build: hg38
    description: GiB
    algorithm:
      aligner: bwa
      save_diskspace: true
      coverage_interval: regional
      mark_duplicates: true
      recalibrate: false
      realign: false
      variantcaller: gatk-haplotype
      jointcaller: gatk-haplotype-joint
      variant_regions: analysis_regions
      effects: snpeff
      effects_transcripts: all
      vcfanno:
        - gemini
        - ../annotations/eog.conf
        - ../jpopgen.conf
    files: [../input/GiB_R1.fastq.gz,..//input/GiB_R2.fastq.gz]

If I understand the explanation you gave me yesterday, this approach creates 2 different vcf files. Could it be there's some confusion which vcf should be handled by vcf2db?
Thanks
M

Matthias;
Sorry about the problem, this was my mistake during the work of generalizing the vcf2db/vcfanno parts. I pushed a fix and things should now work cleanly if you update to the latest development version. Please let us know if you run into any other problems.

Great, thanks! I'll go ahead and try this right away.
M

Hi Brad,
Thanks for the fix works beautifully now. I've encountered another issue regarding snpEff, but I'll open a new issue for that.
Thanks again!
M

Hi Brad,
I'd like to reopen this issue. We ran some validation tests using Hap.py and noticed that using the jointcaller approach yielded much worse results than when using the regular variant calling approach. Do you have any idea why and how to fix it?
There are some more tests running at the moment, but the preliminary results don't look too good.
cheers
M

Matthias -- are you able to share some of the problematic results so we can dig more? Thanks much.

Hi Brad,
I'll post the graph's and resulting vcf's as soon as all the tests have finished.
M

Hi Brad,
to start, here's the vcf
with the problematic calls. The configuration we used is already mentioned above.
I'm re-running the same analysis, but with the built in validation activated. I'll post the results as soon as I have them.
M

Hi Brad,
The built-in validation finished yesterday. I've sent you an e-mail (@fastmail) with a download link. This links to an archive containing the complete "final" dir of our run.
Hope you can make something out of it.
Cheers
M

Matthias;
Thanks for sending along the files and validation reports. Can you provide a bit more detail about what specifically concerns you about the outputs? I don't know a lot about your input dataset and capture regions. Guessing that it's an internal NA12878 and exome like set of regions, the results don't look too far off what we're getting now with standard calling in terms of FNR and FDR for SNPs and indels. Here's a recent set of validations:
http://imgur.com/a/xXyXi
What aspects of it made you conclude it was doing much worse? That would help with understanding how best to improve your calls. Thanks.

Hi Brad,
Sorry for panicking, turns out the fault was entirely ours. We've been comparing the outputs to the wrong files 😇 - I hope we didn't waste too much of your time.
Sorry again and thanks for everything.
M


v1.5 backports 2020-03-04

#10283 -- Use -F flag in git log in check-stable script (@nebril)
#10325 -- test: Wait for Istio POD termination before deleting istio-system or cilium (@jrajahalme)
#10322 -- doc: Fix links to contributing guide  (@CybrPunk)
#10434 -- Envoy: Apply CVE fixes 2020-03-03 (@jrajahalme)

Not backported due to dependencies to non-backported commits:

#10207 -- Fix regression to avoid freeing alive IPs (@tgraf)

Once this PR is merged, you can update the PR labels via:
$ for pr in 10283 10325 10322 10434; do contrib/backporting/set-labels.py $pr done 1.5; done

This change is

never-tell-me-the-odds


Prepare/test for macOS Big Sur release

We need to make sure that ddev works on macOS Big Sur when it comes out, and can succeed running all tests, etc.

[x] Basic functionality of ddev
[x] ddev with NFS, basic functionality
[x] Run full test suite

At this point, I have a recurring docker bug that causes a full system crash, after which Docker can't start.

The crash occurs when using NFS. It has been reported via slack to the Docker desktop team, https://dockercommunity.slack.com/archives/G013121J9RN/p1599748088025500?thread_ts=1599166573.012100&cid=G013121J9RN

Configure NFS as described in https://ddev.readthedocs.io/en/stable/users/performance/ (it's easy, just run the script linked)
Install ddev (brew tap drud/ddev && brew install ddev)
3 mkdir junk && cd junk
ddev config --nfs-mount-enabled
ddev start

Immediate system crash, after which docker won't start, factory defaults reset is required. (Sometimes even that won't do it)
Docker seems to work OK without nfs-mount-enabled.

The crash appears to be a macOS Big Sur bug with NFS, see https://www.reddit.com/r/MacOSBeta/comments/ij84h6/nfs_server_bug_in_macos_11_big_sur_beta_5/

The nfs crash is fixed in beta7, yay!

Most of the test suite is working. I had to move the testdir to within homedir instead of /tmp (/var/folders) in #2516, but that's a good thing. It's better there, and the test runner setup is easier.

TestConfigValidate fails, but not when run by itself, must be interaction with another test
TestShareCmd fails if ngrok was just installed and not right-click opened. It pops up the complaint that it's from an unidentified developer if you brew cask install ngrok and that's it. But just right-clicking and saying open anyway fixes it.

I've had at least one manual full test run, so calling this good for now. I have suspicions about some intermittent trouble with Docker edge.


upgrades to assertion parsing code

better, more robust checking and normalization
output in KBFS-style expressions
consolidate code and use assertion-parsing machinery everywhere
moar tests
only admit Remote() assertions for NormalizeSocialAssertions
test UIDs, and normalize them to lowercase too

@strib do you mind taking a look?  It might need some tweaks. I don't want to break anything. Thanks!

Looks good to me, assuming the Windows test failures are unrelated.  Thanks!


Run ARNPerf7 on Windows 10

GPS Sensor: Roll back GPS Sensor driver;
Handle Hex GPS Sensor data.

Verified at 2017.10.18
Notes:

Python in %PATH%;
GPS Sensor in Hex;
Hex to char;
GPS Sensor search not valid on Win10 64 bit.


Loosen the version constraint of persisting_theory to avoid dependency

Hi, django-dynamic-preferences locked the version constraint of persisting_theory as persisting_theory==0.2.1, which leads to a troubling scenario that its direct downstream project [omaha-server,'socialhome', 'django-danceschool'] has to lock persisting_theory.
Could you please loosen the version constraint of persisting_theory?
Benefit of this is that users using both of [omaha-server,'socialhome', 'django-danceschool'] and persisting_theory can upgrade their third party libraries in a timely manner to reduce technical debts.
Solution
The dependency trees of your project and affected downstream projects are shown as follows.
Taking the version constraints of upstream and downstream projects into comprehensive consideration, you can

Loosen persisting_theory==0.2.1 to be persisting_theory>=0.2.1.
Loosen persisting_theory==0.2.1 to be persisting_theory==*.
Try to add an upper bound for persisting_theory’ version constraint, according to your compatibility.

@EliotBerriot   Please let me know your choice. I can submit a PR to fix this issue.
Thanks for your attention.
Best,
Neolith

Dependency tree-----
django-dynamic-preferences-develop
| +-django(version range:>=1.11)
| +-persisting-theory(version range:==0.2.1)
| +-six(version range:*)

Direct downstream project:
omaha-server-master
.
.
.
| +-django-debug-toolbar(version range:==1.5)
| | +-django(version range:>=1.8)
| | | +-pytz(version range:*)
| | +-sqlparse(version range:>=0.2.0)
| +-django-dynamic-preferences(version range:==1.7.0)
| | +-django(version range:>=1.11)
| | | +-pytz(version range:*)
| | +-persisting-theory(version range:==0.2.1)
| | +-six(version range:*)
| +-persisting-theory(version range:==0.2.1)
.
.
.

Socialhome
.
.
.
| +-django-dynamic-preferences(version range:==1.7.0)
| | +-django(version range:>=1.8)
| | | +-pytz(version range:*)
| | +-persisting-theory(version range:==0.2.1)
| | +-six(version range:*)
| +-persisting-theory(version range:==0.2.1)
.
.
.

django-danceschool 0.8.6
.
.
.
| +-django-dynamic-preferences(version range:==1.7.0)
| | +-django(version range:>=1.11)
| | | +-pytz(version range:*)
| | +-persisting-theory(version range:==0.2.1)
| | +-six(version range:*)
| +-persisting-theory(version range:==0.2.1)
.
.
.

Hey @NeolithEra, thank you for bringing this issue to our attention. We can totaly loosen the requirement, and I tend to think switching to persisting_theory>=0.2.1 is the easiest way to achieve this without breaking anything.
I'd be happy to review and merge a PR for this :)

Closed via #183


Why is vue in the package.json file?

Hi there!
I wonder why Vue-related things are listed as devDependecy in the package.json file?
Cheers

Good question. They’re included in Laravel. https://github.com/laravel/laravel/blob/master/package.json#L15
I guess it could work without.


Infinite loop

Creating a call like this will not return (at least not in the several minutes I tried waiting for it):
RegSeed regExGen = new RegSeed("(prefix://([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}).*$)");
string result = regExGen.Generate();

Taking the .*$ off the end of the pattern makes it run but then not generate any random data after the prefix://GUID portion (obviously).
I can constrain the number of characters generated manually by inserting something like {5} or {1, 50} or {,50} in place of the * but the result will include the $ character and not pass a regex test of the pattern against the result.

I believe that because the pattern says .* which is greedy the generator just never stops generating characters and you can watch memory increase as the string builder keeps doubling.
While it is logical to treat .* as generate forever that isn't practical and should probably be replaced with a random number of characters within a reasonable or configurable limit.


Support for IQueryable in DataLoaders

Hello! I'm working on graphql endpoint over sql database. And I'd like to consolidate queries as much as possible. Right now I use BatchDataLoaders to enrich some classes with properties which don't have relations in db schema. In this way I can only explicitly use Includes inside DataLoader.  So my question is: Is there any ability for dataloaders behave like IQueryable in the QueryObject to avoid explicit Includes and selecting all properties of included objects?
Looks like the same problem was discussed here: https://github.com/ChilliCream/hotchocolate/issues/553

@michaelstaib Any response to this issue?

@rstaib any response to this old issue? I am trying to accomplish the same.
	[ExtendObjectType(typeof(User))]
	public class UserExtensions
	{
		[BindMember(nameof(User.Posts))]
		[UseTemplateDbContext]
		[UsePaging(IncludeTotalCount = true)]
		[UseProjection]
		[UseFiltering]
		[UseSorting]
		public Task<IQueryable<Post>> GetPostsAsync(
			[Parent] User user,
			IResolverContext context,
			[ScopedService] TemplateDbContext dbContext,
			CancellationToken cancellationToken
		)
		{
			return context.GroupDataLoader<int, Post>(
				async (keys, ct) =>
				{
					List<Post> result = await dbContext.Posts
						.Where(x => keys.Contains(x.UserId))
						.ToListAsync(ct);
					return result.ToLookup(x => x.UserId);
				}).LoadAsync(user.Id, cancellationToken);
		}
	}

Any chance to reopen?

Not really as this does not really make sense as outlined here.
We are thinking about projectable DataLoader for database-first scenarios. But we are still in the concept phase on this one.

@michaelstaib I'm working on a project with entity framework, noticed that [UseProjection] didn't apply to the generated queries! I would definitely appreciate the DataLoader/GroupDataLoader to benefit from Projection.


added ADR for the JUnit test engine

This is a draft...

I don't think a complete abandonment of the UI functionalities would be wise.

It's not our top goal, but I don't think we discussed yet how this would affect support for fixture languages other than Java.

True we did'nt.
If we keep those we have to modify them. Like decoupling downloading from execution. Foremost we should decide what the purpose of the plugins is.
Right now every other language which is not JVM will prove a challenge.

@bitterblue should we merge now and you add your additions in a separate PR, or do you want to checkout my branch, add your stuff and create a new MR? I'm good either way.

@slu-it merging now is fine. I tried to yesterday, but the branch is not up-to-date. Could you?


Split langauges on the table of contents

As it has been talked about a number of times, proposing to split the table of contents by language.

The Discord page stays alone as it is not localised
The GitBook docs suggest this nested list format for tables of contents -- I hope I am right on assuming one does not need to make subdirectories for the files if linked correctly

Actually, we have tried this a while ago. Sadly the doc linked is dated. The latest version of gitbook does not support multi-languages. Although, it makes sense as GitBook is used for publication.
I think the next goal (if we are eager to do support multiple languages) is to migrate the document page from gitbook to something else. It could be a next.js / gatsby.js static website for using customized routing.

Actually, we have tried this a while ago. Sadly the doc linked is dated

I see! We can close this PR, then.

It could be a next.js / gatsby.js static website for using customized routing.

I think it would be great to move to something that gives us more freedom while the content can still be managed on GitHub. But I will be happy to help in what I can whatever is finally chosen!


Tooltip should not be triggered for disabled elements

Disallow hover and focus tooltips for disabled elements.
Allow a tooltip to be shown for disabled elements when the tooltip is explicitly shown by calling showTooltip().

Fixed.


credential manifest, type "number"

cannot manage number (not string) in credential manifest output descriptors "type"
https://json-schema.org/understanding-json-schema/reference/numeric.html

test on sandbox
http://<IP_ADDRESS>:3000/sandbox/direct_offer?VC=VerifiableDiploma.jsonld

{
"path": [
"$.credentialSubject.learningSpecification.ectsCreditPoints"
],
"schema": {
"type": "number"
},
"fallback": "Unknown",
"label": "ECTS Points"
},

added boolean and integer tho the scope of this ticket


How to pre-train from scratch?

It seems that converting the model from RoBERTa limits the model's capability (short sequence length, no dilation). I want to reproduce the full model in the paper (specifically, with hyper-parameters in Table 12). It will be appreciated if someone can publish the training scripts.

I could also use some help regarding this.

Table 12 has hyperparameters for the character-lm experiments, while RoBERTa is for the pretraining/finetuning setting. These are two different models with two different configurations and two different datasets.

If you are referring to the pertaining/finetuning setting:

To train from scratch, you can do this by instantiating a randomly initialized LongformerModel, but you will need a huge amount of training data and compute resources.

short sequence length
If you want a pretraining/finetuning model (similar to the released pretrained model) but for longer sequences, you can still start from RoBERTa and build your own model following the instructions in this notebook. I tested it and with gradient checkpointing, fp16, 512 window size, 48GB gpu, you can reach a sequence length of 64K. This is something that we are considering as well.

no dilation
To add dilation to this model, you will have to use the tvm implementation (sliding_chunks and the HF code don't support dilation). You don't need to start from scratch to train this model. We briefly tried this configuration but it didn't outperform the no-dilation case, so we didn't investigate it further. It is possible that training the model for longer and on more training, and maybe on a different objective function can make it work.

If you are referring to the character-lm experiments, we didn't release implementation details for this model. You can follow the model description from the paper, but the implementation of relative position embedding + our sliding window attention is a little tricky. We are hoping to release this code in the near future.

Closing. Please feel free to reopen if needed.

Thanks for that!
Quick comment - in the notebook you reference table 6 in the longformer paper, seems like it should be table 5:


Space-Invaders Contribution - nothing special

demo: https://aloksbd.github.io/Game-Sprint/4-spaceinvaders/index.html

It's wonderful and special! ❤

Thank you very much. I am planning on making a game everyday. My target is 1 hours but they took around two normally. And thank you for all the wonderful contents.