Performance issues and console debugs

This makes the chart very slow, and if there is an interaction with the chart, it makes the chart not responsive for couple seconds.
Also I keep seeing these logs in the console, whenever the chart loads, or there is an interaction with the chart (zooming, using brush,...)
See the screenshot for the console debugs here

Same issue, very slow due to direct rendering instead of on demand and console logs

Thanks for the feedback. I need to find time to look into this, just been busy with the day job. Do either of you have a reproduction you can share?

Apparently html2canvas has the logger turned on by default.
The logger will be on if no options are passed:
const [png, ref] = useRechartToPng();

The logger will be off if any option is passed:
const [png, ref] = useRechartToPng({ backgroundColor: '#000' });

Or you can explicitly disable it:
const [png, ref] = useRechartToPng({ logger: false });

I'll push out a patch later this week that will disable the logger by default unless the user explicitly enables it. In the meantime, you can turn it off and see if that helps the performance.
The issue I'm running into with the Brush component is that moving the brush doesn't seem to trigger the png to update.
If you have any examples of using the Brush or implementing zoom that you can share, I would appreciate it.

Hi man!
I was fiddling around with this repo and found out the same!
Besides that, I saw that the png gets calculated every rerender. I don't know if this is a wrong on my side, or on the lib side, i'm not that into React.
What i did was this:
...
            if (node !== null && node?.container) {
                console.log(node.container)
                const data = await html2canvas(node.container as HTMLElement, options).then((canvas) =>
...

My output in the console was this on intial load:

As you can see, it loaded 4 times! This makes a huge impact on performance. I think this is were something goes wrong.
For the app side i used the default example:
...
const [png, ref] = useRechartToPng();

    const handleDownload = React.useCallback(async () => {
        console.log("png :: ", png)

    }, [png]);
....
<Button onClick={handleDownload}>download</Button>
<ResponsiveContainer height={300} minHeight={200}>
                        <BarChart
                            ref={ref}
                            data={data}
...

I think it is due to that the useCallback already gets called a couple of times, don't know why.
What I did to fix it myself: Made an util function out of it:
import html2canvas from 'html2canvas';

export default async (ref) => {
    if (ref !== null && ref?.current?.container) {
        return await html2canvas(ref.current.container as HTMLElement, {
            backgroundColor: '#efefef',
            foreignObjectRendering: false,
            logging: false,
            removeContainer: false
        }).then((canvas) =>
            canvas.toDataURL('image/png', 1.0)
        )
    }
}

called with:
...
    const ref = React.createRef<any>()
    const handleDownload = () => {

        refToPng(ref).then(window.open)
    }
...
<Button onClick={handleDownload}>download</Button>
                    <ResponsiveContainer height={300} minHeight={200}>
                        <BarChart
                            ref={ref}
...

As you can see, my function currently lags the functionality of passing options, but it works for me and only renders the image when i actually hit the download button

@HarmNullix Thanks for that fantastic response! I think the way you handled the ref is much better. Unless you want to do a PR, I'll go ahead and start working on implementing this fix.


Gratipay account closed

I think you can remove the [Gratipay button] (https://gratipay.com/~myano/) there as you obviously closed your account there.

Good point, that has been removed along with the flattr button.


turbolinks page:load issues

It appears rails turbolinks doesn't work correctly with poltergeist, has anyone experienced issues?  The page:load event is never triggered after doing Turbolinks.visit(url), but testing it in a regular browser everything works as expected and page:load is triggered.

Can somebody confirm this?  I had some errors on a site using turbolinks and tried to make a test first before fixing the problems.  Strange thing was, the test never failed even though I'm 100% sure it wasn't working correctly with Turbolinks.  I fixed the issue on the site and tests remained green so I think this also confirms that turbolinks isn't used?
Any reason why this is the case?

Turbolinks disables itself on some browsers that don't support the features it uses -- https://github.com/rails/turbolinks/blob/master/lib/assets/javascripts/turbolinks.coffee#L700  -- I'm guessing that the phantomjs version used didn't support some of the features Turbolinks needs so it's not enabling itself.  If more info is provided and a minimal test case we can reopen and look at this.

Because we found this issue through Google:
We're on the "new" Turbolinks (not turbolinks-classic) and we had similar issues. We're not currently able to upgrade to latest phantomjs, so we don't know if that would fix things.
Anyway, we worked around it by running this JS early on:
if (navigator.userAgent.indexOf("PhantomJS") !== -1) {
  window.requestAnimationFrame = window.requestAnimationFrame || function(cb) { return setTimeout(function() { cb(0) }, 0); }
}

So basically, we're doing a simplistic polyfill for the function if it's missing, but only for PhantomJS. (Not for actual users with old browsers.)


[W5.11][T09-A2] Goh Keng Seng

Enhancement 2: Allows user to sort the list of people in address book in alphabetically ascending order (case insensitive)

Why isnt your enhancement for both combined together?


Unbounded Ripple will not resize to parent unless clicked

Describe the bug
When an unbounded ripple exists inside of a container that resizes, the ripple will not resize unless the click is activated. This makes the size for focus and hover wrong
To Reproduce
https://jsbin.com/leyolirexa/4/edit?html,output

go to link above
hover over box
observe ripple size (right)
click resize button
hover over box
observe ripple size (wrong)
click box
observe ripple size (right)

Expected behavior
The unbounded ripple should resize along with the hover and focus
Browser Version (please complete the following information):

OS: All
Browser: All
Version: All

Additional context
Chrome team

looks like --mdc-ripple-fg-size is not being updated to the correct value

looks like --mdc-ripple-fg-size is not being updated to the correct value


'GeocoderRequest.Options' initializer is inaccessible due to 'internal' protection level

here I am not able to access 'GeocoderRequest.Options', I had added a core location framework and all, it's not working with the latest version. I had the same as like given example.
Please help me with this.

@erpankajpatel
I'm also getting the same error, I follow as per demo. Kindly do needfully

@erpankajpatel
I'm also getting the same error, I follow as per demo. Kindly do needfully

I have resolved this by my self with an edit in pods
`class Options {
/// Additional custom paramters. It may override default service params
public var params = String: String
    /// Result's locale, by defualt is not set.
    ///
    /// Apple Service:
    /// The locale to use when returning the address information. You might specify a value for this parameter
    /// when you want the address returned in a locale that differs from the user's current language settings.
    /// Specify nil to use the user's default locale information. It's valid only if you are using apple services.
    public var locale: String?

    /// Return all the servicer params as query items.
    ///
    /// - Returns: [URLQueryItem]
    func serverParams() -> [URLQueryItem] {
        return params.map({ (key,value) in
            URLQueryItem(name: key, value: value)
        })
    }
    public init() {

    }
}`

Go to Pods -> SwiftLocation -> Geocoder+Support.swift -> find class name "class Options "
i have added only in existing code, public init() {}, you can directly paste my code as well, clear derived data and build and reopen your project, then it will resolve your problem.
let me if it will be resolved or not.


linting failures

@ringods or @vavsab there are some linting failures being reported in the registry, are yall able to fix these up?
/home/runner/work/registry/registry/themes/default/content/registry/packages/astra/_index.md:
Line 31: Trailing spaces [Expected: 0 or 2; Actual: 1].
Line 94: Files should end with a single newline character.
/home/runner/work/registry/registry/themes/default/content/registry/packages/astra/installation-configuration.md:
Line File Header: Meta description is too short. Must be at least 50 characters.

@ringods pls review


editor becomes unresponsive all the time since last update

VSCode Version:1.2.0
OS Version:Windows 10

Steps to Reproduce:

Open Visual Studio Code
Update to latest version

I just updated my Visual Studio Code to the latest version. Congratulations, since then it is unresponsive all the time. I can work for a few seconds, then I hit a key, it freezes and can only be solved by killing the process through task manager...
It was running nice and smooth before the latest update, which I got today. Sadly I can't work like this and need a reliable editor, so I have to go back to use something else now.
Good luck.

duplicate


Error: Module version mismatch. Expected 48, got 46.

I did an update of the software today, and got this error:
/root/pogo-optimizer/node_modules/pokemon-go-mitm/node_modules/pokemongo-protobuf/node_modules/node-protobuf/node_modules/bindings/bindings.js:83
        throw e
        ^

Error: Module version mismatch. Expected 48, got 46.

I recently tweaked with my nodejs/npm for another package I was working on, but they should be the latest.
Any help is appreciated.

Delete the node_modules folder and do another npm install

perfect, works. thanks!


disable clean-css restructuring

this is a buggy optimization that breaks some css

Interesting, I wonder if this was the root cause of the problem @jasongrout saw earlier with display: webkit-box .

Quite possible. It seems to be super buggy for nontrivial CSS.


Change function/class/method icons

These icons are quite ugly right now, as can be seen in the screenshot below

but now that we have access to Material design icons, we can use much better icons instead:

@juanis2112, please replace our current icons with the Material design ones. These icons are defined here:
https://github.com/spyder-ide/spyder/blob/master/spyder/utils/icon_manager.py#L212
and you can use the Material icons by calling them like mdi.alpha-a-box, as it's done in this line:
https://github.com/spyder-ide/spyder/blob/master/spyder/utils/icon_manager.py#L33
You can get the file switcher (the one in the first screenshot, where most of these icons are displayed) by pressing Ctrl+Alt+P.

And for the icons, use the ones inside a box (like mdi.alpha-a-box, like mdi.alpha-c-box, etc).


login popup not show if chome browser install Adblock Plus

Login popup not show if  browser (chome) install Adblock Plus

chrome browser install Adblock Plus extension
run satellizer app from real-host (not local)
click login
new tab show, expected : popup window -> Cannot login

Not sure if it is Adblock Plus related, but I don't have any issues like that with uBlock Origin extension.

sorry for my mistake
extension is : SBRO Safe Browsing
url https://chrome.google.com/webstore/detail/sbro-safe-browsing/nlmaeipddicgfdbdfhffnocgohodcaig

Ok I am closing this issue since this looks like a problem with Chrome extension designed for blocking all popups, not just ads.


Small improvements

Added ASP Optimization package to dependencies to fix the build
joined the Home and Product Controller
Button alignment on Index
Producing chocolate redirects to Index

You are a rockstar


Love the simplicity... but can we get even more.

Maybe some command line arguments....
bash ./openvpn-install.sh iface=eth0  client=client1
and the script does all of the defaults and uses these options.  No prompting from the user for anything at all.

Yes, an unattended mode is requested from time to time and is something which I have in mind, but there are currently other priorities like preparing for the new RHEL-based distros and OpenVPN v2.5.


"change" event fired asynchronously?

When setRange continuously inside a handler, the change events seemed to be aggregated and fired asynchronously.
Could someone clarify if it's by design?
The code
editor.on('change', function(){ console.log('change'); });

editor.on('cursorActivity', function(){
  console.log('setRange');
  editor.setRange('0', {line:0});
  console.log('setRange');
  editor.setRange('1', {line:0});
});

Outputs
setRange
setRange
change
change

Which was expected to be:
setRange
change
setRange
change

"change" events (as well as "cursorActivity" and a number of other events) are fired at the end of the current operation. That means that if you have a 'naked' call to setRange, which will start its own operation, you'll get your "change" handler called before the call to setRange returns. But if you are already in an operation (as in the case of the "cursorActivity" event in your example) the events are batched to the end of the operation. This is by design -- it is a way to ensure the editor is in a consistent state when event handlers are called.

Thanks @marijnh for explaining the internal.
The "changes" event seems to be my rescue.


Impossible to login

Expected behavior
After login, loggged in successfully
Actual behavior
Login page remains hanging after login
Information about the Issue
Once you click login button, login page remains hanging with the spinning.
Steps to reproduce the behavior

...
...

I have the same problem on mac os

win7 the same problem

I'm getting it as well. I'm able to login via the CLI, and the system tray app, but Kitematic hangs after attemping a login.

I'm with the same problem, in Windows 10. I have installed right now, and trying to login get this error, but the login data, and still loading forever.

Same here, Windows 10 Pro

same here, ubuntu 18.04.01 LTS, kitematic 0.17.03

Same issue, Ubuntu 16.04

I have the same issue on ubuntu 16.04 .....

Same in Win10

Same here as well, windows 7 enterprise

No solution is provided anywhere except duplicate duplicate.

A year old issue with something as important as logging in and there is no solution or update anywhere. Fantastic.

@alexwasner I feel ya. same issue

Same issue

same issue with Kitematic-0.17.8-Windows.zip on windows 10

Same issue with Kitematic 0.17.6 on OSX

Same issue

Kitematic 0.17.6
macOS 10.14.6

Same issue for me too:

Docker Desktop <IP_ADDRESS>
Kitematic 0.17.8
macOS 10

14.6

Same issue for me:
Was annoying because Docker insisted I upgrade to the latest version of Kitematic.

Docker Desktop <IP_ADDRESS>
Kitematic 0.17.8
macOS 10.14.6

Same here, Windows 10 Pro

This is still an issue but there is a fix you can get here: https://github.com/docker/kitematic/issues/5308

same problem on MacOs 10.14.6

Same issue too on win 10 pro.

Same issue with:

macOS 10.14.6
Kitematic 0.17.8
Docker <IP_ADDRESS>

But I can confirm that this fix works perfectly:

(https://github.com/docker/kitematic/issues/4094#issuecomment-535612310) This is still an issue but there is a fix you can get here: #5308

Thanks for the report. There was a change in the Hub login API code a few days ago, and we accidentally lost a backward compatibility fix. (In fact the one that we put in place when this ticket was first opened in September 2018). If possible, we're looking to re-fix it in Hub, rather than get everyone to download a new Kitematic.

@stephen-turner Can you provide a time estimate for when this might be fixed on Docker Hub?

Issue fixed, Kitematic can login to the hub now.
Thank you for your feedback.

I can confirm it is working for me now and it logged in fast.


duplicate_count vs number of rearrangements (ADC API query)

@schristley we ran into a somewhat interesting problem... As far as I can tell, in the ADC API there is no way to ask a repository to count the number of total sequences in a Repertoire if the identical sequences have been collapsed using duplicate_count. So currently we can get one of two things:

We can facet on repertoire_id and get the total number of rearrangements (when there is no collapsing identical sequences - ie. no duplictate_count).
We can facet on repertoire_id and get the total number of unique sequences (when unique sequences have been collapsed using duplicate_count).

In the case of data that has unique sequences collapsed with duplicate_count, there is no way with the ADC API to get the total number of rearrangements that produced the collapsed counts (essentially the sum of the duplicate_counts). Am I missing something? From a UI perspective, we would ideally be able to show both, but we can't...

Note the same will hold true for clone and clone_count as well...

As far as I can tell, in the ADC API there is no way to ask a repository to count the number of total sequences in a Repertoire if the identical sequences have been collapsed using duplicate_count.

That's correct. I think CWRG has had some old discussions about this. I seem to remember that using duplicate_count is on the borderline between being a query versus being an analysis.

@bcorrie Shall we consider extending the facets capability to also provide sums? I'm skeptical with the size of VDJServer that this could be done quick enough for interactivity. Also, I'm unclear of the utility except for a few fields. Or should we consider making the Stats API an ADC extension? It offers the count and sums that you want.

I like the Stats API as an ADC extension. We have discussed this at CRWG in passing, but I think it would be worth agreeing that this would be useful.

Moving this to ADC API v2.0

Closing this issue - superseded by #753


Compilation error

I am using Ubuntu 16.04 and did the following:
git clone https://github.com/shogun-toolbox/shogun.git
cd shogun
git submodule update --init
mkdir build; cd build; cmake ..; make -j 8 ; make install
I got the following error:
[ 71%] Building CXX object src/shogun/CMakeFiles/libshogun.dir/base/class_list.cpp.o
In file included from /shogun/src/shogun/kernel/normalizer/KernelNormalizer.h:12:0,
from /shogun/src/shogun/transfer/multitask/MultitaskKernelMaskPairNormalizer.h:12,
from /shogun/build/src/shogun/base/class_list.cpp:62:
/shogun/src/shogun/kernel/Kernel.h: In member function 'float64_t shogun::CKernel::kernel(int32_t, int32_t)':
/shogun/src/shogun/kernel/Kernel.h:213:21: error: invalid use of incomplete type 'class shogun::CKernelNormalizer'
return normalizer->normalize(compute(idx_a, idx_b), idx_a, idx_b);
^
In file included from /shogun/src/shogun/kernel/normalizer/KernelNormalizer.h:12:0,
from /shogun/src/shogun/transfer/multitask/MultitaskKernelMaskPairNormalizer.h:12,
from /shogun/build/src/shogun/base/class_list.cpp:62:
/shogun/src/shogun/kernel/Kernel.h:35:8: note: forward declaration of 'class shogun::CKernelNormalizer'
class CKernelNormalizer;
^
src/shogun/CMakeFiles/libshogun.dir/build.make:17409: recipe for target 'src/shogun/CMakeFiles/libshogun.dir/base/class_list.cpp.o' failed
make[2]: *** [src/shogun/CMakeFiles/libshogun.dir/base/class_list.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:126: recipe for target 'src/shogun/CMakeFiles/libshogun.dir/all' failed
make[1]: *** [src/shogun/CMakeFiles/libshogun.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
What should I do?
Michael.

@goldturtle in case you just want to use shogun out of box you can simply use the conda-forge package or the ppa from here: https://launchpad.net/~shogun-toolbox/+archive/ubuntu/stable
otherwise i'll try to reproduce this error but based on our buildbot 16.04 build should be working:
http://buildbot.shogun-toolbox.org:8080/#/builders/16

Looks like this happened to other people too:
https://github.com/shogun-toolbox/shogun/issues/2841
Reading the last comment, though, I wouldn't know how to change the include path in a proper way.

Do you have somewhere else shogun already installed?

On 20 Feb 2018, at 12:18, goldturtle<EMAIL_ADDRESS>wrote:
Looks like this happened to other people too:
#2841
Reading the last comment, though, I wouldn't know how to change the include path in a proper way.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

No. I'd like to compile it from scratch because I want to play around.

I'm guessing this can be closed


Bug bash - Refactor RBM-related utils

Description
Merge numpy_splitters into python_splitters
Refactor AffinityMatrix class
Motivation and Context
Some clean ups.
Checklist:

[x] My code follows the code style of this project, as detailed in our contribution guidelines.
[x] I have added tests.
[ ] I have updated the documentation accordingly.

Thanks for the clean up and improvements. It makes sense to move the "numpy" splitter together with the other python splitters. Just one thing, in this way I do not figure as a contributor to the splitter anymore. Is there a way to add me back?

@WessZumino github only shows which files have been modified by a person on the top, however you will still appear in the statistics of the whole repo


many CI failures related to pkg_resources

At first I thought it was just nilearn so I opened this: https://github.com/nilearn/nilearn/pull/3512 but it's also happening with pybtex.
The meat of it is:

DeprecationWarning: Implementing implicit namespace packages (as specified in PEP 420) is preferred to pkg_resources.declare_namespace. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages

it happens on the line import pkg_resources. Here's a full traceback for the pybtex case:

Traceback (most recent call last):
  File "/home/circleci/python_env/lib/python3.10/site-packages/sphinx/cmd/build.py", line 276, in build_main
    app = Sphinx(args.sourcedir, args.confdir, args.outputdir,
  File "/home/circleci/python_env/lib/python3.10/site-packages/sphinx/application.py", line 223, in __init__
    self.setup_extension(extension)
  File "/home/circleci/python_env/lib/python3.10/site-packages/sphinx/application.py", line 398, in setup_extension
    self.registry.load_extension(self, extname)
  File "/home/circleci/python_env/lib/python3.10/site-packages/sphinx/registry.py", line 459, in load_extension
    mod = import_module(extname)
  File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/home/circleci/python_env/lib/python3.10/site-packages/sphinxcontrib/bibtex/__init__.py", line 9, in <module>
    from .domain import BibtexDomain
  File "/home/circleci/python_env/lib/python3.10/site-packages/sphinxcontrib/bibtex/domain.py", line 20, in <module>
    import pybtex_docutils
  File "/home/circleci/python_env/lib/python3.10/site-packages/pybtex_docutils/__init__.py", line 34, in <module>
    from pybtex.backends import BaseBackend
  File "/home/circleci/python_env/lib/python3.10/site-packages/pybtex/backends/__init__.py", line 26, in <module>
    from pybtex.plugin import Plugin
  File "/home/circleci/python_env/lib/python3.10/site-packages/pybtex/plugin/__init__.py", line 26, in <module>
    import pkg_resources
  File "/home/circleci/python_env/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3257, in <module>
    def _initialize_master_working_set():
  File "/home/circleci/python_env/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3231, in _call_aside
    f(*args, **kwargs)
  File "/home/circleci/python_env/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3282, in _initialize_master_working_set
    tuple(dist.activate(replace=False) for dist in working_set)
  File "/home/circleci/python_env/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3282, in <genexpr>
    tuple(dist.activate(replace=False) for dist in working_set)
  File "/home/circleci/python_env/lib/python3.10/site-packages/pkg_resources/__init__.py", line 2803, in activate
    declare_namespace(pkg)
  File "/home/circleci/python_env/lib/python3.10/site-packages/pkg_resources/__init__.py", line 2297, in declare_namespace
    warnings.warn(msg, DeprecationWarning, stacklevel=2)
DeprecationWarning: Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages

How difficult would it be to solve by removing pkg_resources? It should be easy for bcidata.

It needs to be done in our dependencies. For the nilearn PR above it's a one-line fix. I've just opened https://bitbucket.org/pybtex-devs/pybtex/issues/169/replace-pkg_resources-with for pybtex. IDK how many other ones we'll hit though once those two are cleared up.

Ah OK! I thought we could also remove it in MNE, because maybe we can work around it (which is definitely possible in bcidata, but I don't know about the other occurrence).

Ah OK! I thought we could also remove it in MNE

We could catch / ignore the warnings but AFAICT this isn't something we can properly fix within our own codebase.

Workaround for us in #11478, thanks @drammock for doing the harder work of opening upstream bug reports


Type error with lr_scheduler

After several epochs running, an error will raise as following:
/hfta/optim/lr_scheduler.py", line 247, in _update_lr
    res = this_lr * multiplier
TypeError: unsupported operand type(s) for *: 'Coefficient' and 'float'

it seems that the type of this_lr is 'Coefficient' and it can not do * with 'float'

It seems that there is something wrong with 'step size'. if I set '[5]', the error will appear at the end of 5th epoch.


♻ refactor(gentest): Migrate transaction test to state_test

🗒 Description
This PR migrates the transaction gentest  from blockchain_test to state_test. It also documents the rationale under "Writing Tests" .
🔗 Related Issues
Closes #864
✅ Checklist

[x] All: Set appropriate labels for the changes.
[x] All: Considered squashing commits to improve commit history.
[ ] All: Added an entry to CHANGELOG.md.
[x] All: Considered updating the online docs in the ./docs/ directory.
[ ] Tests: All converted JSON/YML tests from ethereum/tests have been added to converted-ethereum-tests.txt.
[ ] Tests: A PR with removal of converted JSON/YML tests from ethereum/tests have been opened.
[ ] Tests: Included the type and version of evm t8n tool used to locally execute test cases:  e.g., ref with commit hash or geth 1.13.1-stable-3f40e65.
[x] Tests: Ran mkdocs serve locally and verified the auto-generated docs for new tests in the Test Case Reference are correctly formatted.

I have rebaed on main and addressed all comments.


Support eager joining on many-to-many "extra" fields

Hi there, got a feature request for you!
I have the following scenario:
Users
Teams
Users-Teams (join table)

The join table has a roleId field and I've added this to the extra mapping in the many-to-many relation. Now, when I query team.$relatedQuery('users') I get the roleId joined in. Nice!
One thing that would make this better is if I could go ahead and eager load that role in while it is being joined in.
My current workaround, which is totally fine:
const users = queryUsers();
const roles = queryRoles();
return users.map(/* Manually set the role on each user */)

Thanks in advance!

This is not exactly the same thing, but pretty close:
class User extends Model {
  static relationMappings = {
    // Relation to the join table items.
    userTeams: {
      relation: Model.HasManyRelation,
      modelClass: UserTeam,
      join: {
        from: 'User.id',
        to: 'UsersTeams.userId'
      }
    },

    teams: {
      relation: Model.ManyToManyRelation,
      modelClass: Team,
      join: {
        from: 'User.id',
        through: {
          from: 'UserTeam.userId',
          to: 'UserTeam.teamId'
        },
        to: 'Team.id'
      }
    }
  }
}

// Model for the join table.
class UserTeam extends Model {
  static relationMappings = {
    user: {
      relation: Model.BelongsToOneRelation,
      modelClass: User,
      join: {
        from: 'UserTeam.userId',
        to: 'User.id'
      }
    },
    team: {
      relation: Model.BelongsToOneRelation,
      modelClass: Team,
      join: {
        from: 'UserTeam.teamId',
        to: 'Team.id'
      }
    },
    role: {
      relation: Model.BelongsToOneRelation,
      modelClass: Role,
      join: {
        from: 'UserTeam.roleId',
        to: 'Role.id'
      }
    }
  }
}

class Team extends Model { ... }
class Role extends Model { ... }

Now you can do things like this:
await User
  .query()
  .eager('userTeams.[role, team]')

And actually, you can probably simply define the relationMapping for Role through roleId even though it is not the team's own property. This should work (without any of the stuff I wrote in the previous post):
class Team extends Model {
  static relationMappings = {
    role: {
      relation: Model.BelongsToOneRelation,
      modelClass: Role,
      join: {
       from: 'Team.roleId',
       to: 'Role.id'
      }
    }
  }
}

team.$relatedQuery('users').eager('role')

And actually, you can probably simply define the relationMapping for Role through roleId even though it is not the team's own property. This should work (without any of the stuff I wrote in the previous post):
class User extends Model {
  static relationMappings = {
    role: {
      relation: Model.BelongsToOneRelation,
      modelClass: Role,
      join: {
       from: 'User.roleId',
       to: 'Role.id'
      }
    }
  }
}

team.$relatedQuery('users').eager('role')

As an answer to the feature request, I don't think that would make sense. extra fields can be any fields, not just foreign keys. A feature that allows them to be eager loaded would be pretty arbitrary. I'm closing this now, but feel free to comment on my suggestions. I can help you find an alternative way to eager load the role.

In need of this feature too. Currently, have a junction table which references some user ids. These users need to get eagerly loaded.
Is there a way of getting this working without modifying the current database design?

@danmo I would suggest creating a specific model for the pivot table itself, and then defining a RelationMapping for the models that you would like to be eager loaded.

You could potentially do something like this:
myFirstModel.$loadRelated({
  myPivotModel: {
    myModelReferencedInPivotTable: true
  }
})

..IF your relations are set up correctly, it COULD work, but I haven't tried it myself. This sort of nesting though may point at a larger issue, that the tables could be architected differently. I'm just shooting from the hip, though, because I have no knowledge of your application or its requirements.

Yeah, what I wrote is exactly what @koskimas suggested, but his example lays it all out for you. I don't think this should be clouded into an additional feature, since what is desired is already supported.

Here is a more specific example: clients and books in a many to many relations. The junction/pivot table will also hold an extra rejected_by column which will reference users that have rejected the book.
export default class Reject extends Model {
  static get relationMappings() {
    const User = require('../User');
    return {
      rejectedBy: {
        relation: Schwifty.Model.BelongsToOneRelation,
        modelClass: User,
        join: {
          from: 'rel_clients_books.rejected_by',
          to: 'users.id',
        },
      },
    };
  }
}

export default class Client extends Model {
  static get relationMappings() {
    const Book = require('books').Model;
    const Like = require('likes').Model;

    return {
      books: {
        relation: Schwifty.Model.ManyToManyRelation,
        modelClass: Book,
        join: {
          from: 'clients.id',
          through: {
            modelClass: Reject,
            from: 'rel_clients_books.client_id',
            to: 'rel_clients_books.book_id',
            extra: ['rejected_by'],
          },
          to: 'books.id',
        },
      },
    };
  }
}

The question is how can I get a hold of  client.books[0].rejectedBy.{data}, where rejectedBy would be the extra eagerly loaded relation on the Reject model.

Client.query().eager([books.*]) won't do the trick.

Why won't Client.query().eager('books.rejectedBy') do?

If you add the rejectedBy relation for Book I mean...

You should be able to do this, even though Book doesn't have the rejected_by column. It gets joined to it while eager loading:
export default class Book extends Model {
  static get relationMappings() {
    const User = require('../User');
    return {
      rejectedBy: {
        relation: Schwifty.Model.BelongsToOneRelation,
        modelClass: User,
        join: {
          from: 'books.rejected_by',
          to: 'users.id',
        },
      },
    };
  }
}

@danmo :arrow_up:

@koskimas that's an awesome solution, worked. thank you!


Design a Portfolio website

Description
Follow the contribution guidelines and code of conduct
Design Portfolio website.
Screenshots
No response
Additional information
No response

Please assign me this issue.

@Gaurav4code  I have assigned this design to you.

Thanks a lot.


introduce empty service discovery impl for redis registry

What is the purpose of the change

introduce empty service discovery impl for redis registry
fix NPE in DynamicConfigurationServiceNameMapping

fix #7434

Codecov Report

Merging #7450 (5414b8f) into master (4d5158f) will decrease coverage by 0.36%.
The diff coverage is 0.00%.

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


chilkatsoft.com - download issue

@adguard-bot commented on Thu Aug 29 2019
Issue URL (Incorrect Blocking)
https://www.chilkatsoft.com/downloads_vcpp.asp
Comment
Username: @docontrol

The issue is simply that while downloading the file https://chilkatdownload.com/<IP_ADDRESS>/chilkat-9.5.0-x86-vc2019.zip or any of the other files on the listed website, the download gets corrupted in many cases. It starts out by indicating that it will download the full content length, but then suddenly stops downloading. Even if I disable the ad blocker or stealth mode, it keeps failing. If however I add chilkatdownload.com to the https exceptions list, it works fine. It also works fine if I disable ad guard altogether.
The images do not show much. The downloads are public, so you should be able to tests this.
--
The information below is automatically generated. Do not delete it.
Referrer:
https://www.chilkatsoft.com/downloads_vcpp.asp
Custom userscripts:
https://userscripts.adtidy.org/release/popup-blocker/2.5/popupblocker.user.js
https://userscripts.adtidy.org/release/assistant/4.3/assistant.user.js
https://userscripts.adtidy.org/release/adguard-extra/1.0/adguard-extra.user.js

Screenshots

Screenshot 1

Screenshot 2

System configuration

Information
value

Platform:
Win

AdGuard version:
7.1.2817.0

Browser:
Chrome

AdGuard driver:
WFP

Stealth mode options:
Hide your search queries, Send Do-Not-Track header, Remove X-Client-Data header from HTTP requests, Strip URLs from tracking parameters, Self-destructing third-party cookies (180), Block Location API

Filters:
AdGuard Russian,Filter unblocking search ads and self-promotion,EasyList Hebrew,EasyList Italy,Liste AR,Fanboy's Annoyances,AdGuard Annoyances,AdGuard Base,Web Annoyances Ultralist,Adblock Warning Removal List,AdGuard Tracking Protection,AdGuard Social Media,AdGuard German,AdGuard Dutch,AdGuard Spanish/Portuguese

Other extensions used:
None that are relevant here

@docontrol commented on Thu Aug 29 2019
Perhaps I should add to the issue that I am located on a 1 Gbps Internet connection so the download is extremely fast. If I route the traffic through Fiddler while having AdGuard enabled it also seems to work.

@Alex-302 commented on Thu Aug 29 2019
Is Fiddler added to filtered apps in AdGuard?

@Alex-302 commented on Thu Aug 29 2019
Could you please check with the latest nightly build?

@docontrol commented on Thu Aug 29 2019

Is Fiddler added to filtered apps in AdGuard?

I do not see the point of the question. I only launched Fiddler for a moment to see if it would behave differently. I do not generally have Fiddler running.

@Alex-302 commented on Thu Aug 29 2019
As I remember, HTTPS filtering is not enabled by default in Fiddler, and AdGuard does not filter Fiddler's traffic by default.

@docontrol commented on Thu Aug 29 2019

As I remember, HTTPS filtering is not enabled by default in Fiddler, and AdGuard does not filter Fiddler's traffic by default.

Please ignore my comments about Fiddler. It only helps to clutter the matter further. The issue is between Chrome, AdGuard and perhaps the cloud service used for streaming the file. To begin with I only want to know if others have the same issue?
The HTTPS filter that I mentioned is the one that is in AdGuard's Network settings under HTTPS filtering. I experimented with adding the download server to the exclusions and that solved the problem, but I prefer to find out what is causing it in the first place.

@docontrol commented on Thu Aug 29 2019

Could you please check with the latest nightly build?

I just tried with 7.2.2903 NIGHTLY (CL 1.4.155) and the issue is still there. I also updated all filters and scripts. Notice however that even when I disable the ad blocker or the stealth mode, the issue is also still there. It only goes away once I add chilkatdownload.com to the HTTPS exclusions or disable AdGuard entirely.

@Alex-302 commented on Thu Aug 29 2019
It seems this is a bug, and cannot be resolved by filters.
Do you use download apps or default browser's downloader?
On my end this issue is not reproduced.

I use the default browser implementation (Chrome Version 76.0.3809.132 (Official Build) (64-bit)). I just ran the same test in Firefox 68.0.2 (64-bit) with the same result, but it only failed once or twice and after that I could not get it to fail the download. In Chrome I can easily reproduce the error however. Finally I tried Microsoft Edge 44.18362.267.0 today and I cannot reproduce the issue there at all.

By the way I also tried Chrome in incognito mode and it still fails without all the extensions (LastPass, Tampermonkey, Adobe PDF, etc.).

I could keep adding results (I guess):
Opera 63.0.3368.53 (Chromium based, clean install):
AG enabled = FAIL
AG disabled = SUCCESS
Internet Explorer 11.295.18362.0:
AG enabled = FAIL (and realizes it, see image, clicking retry works)
AG disabled = SUCCESS

@docontrol could you please try one more thing -- try switching AdGuard's driver to "redirect mode", you can do it in the advanced settings.

@docontrol could you please try one more thing -- try switching AdGuard's driver to "redirect mode", you can do it in the advanced settings.
Settings -> General -> Scroll down -> Advanced -> Find "Use driver in redirect mode" there

No difference. Tried both Opera and Chrome.

@docontrol hmm, this is so weird.
Well, the good news is that it proves that the driver is not a problem, it is somewhere in AdGuard's HTTP/2 filter.
We might have to wait for @sfionov to get back so that he could take a look. Meanwhile, I'll try to diagnose it as good as possible.
Since I cannot reproduce this issue on our side, I have to ask you for one more thing:

Close all unrelated tabs and disable all extensions
Open chrome://net-export/
Start logging just before reproducing the issue
Reproduce it
Export the log and send it to<EMAIL_ADDRESS>mention this issue in the email

Since I cannot reproduce this issue on our side, I have to ask you for one more thing:

Close all unrelated tabs and disable all extensions
Open chrome://net-export/
Start logging just before reproducing the issue
Reproduce it
Export the log and send it to<EMAIL_ADDRESS>mention this issue in the email

@ameshkov: I have sent it now.

@docontrol got it, thank you!
@sfionov logs are in the private NextCloud. I've also attached my own logs there. The only difference I see is that the flow control behaves differently.
In my case there many HTTP2_STREAM_UPDATE_RECV_WINDOW frames and the window size is always around 6MB.
In the problematic log, there are also many HTTP2_STREAM_UPDATE_RECV_WINDOW frames in the beginning, and the window size starts at 6MB as well. However, it then quickly drops to about 2MB, and there are no HTTP2_STREAM_UPDATE_RECV_WINDOW frames in the last 50ms of the log.

@ameshkov I noticed that I have the same problem downloading the Postman app from https://www.getpostman.com/downloads/ or more accurately from https://dl.pstmn.io/download/latest/win64. Once I added dl.pstmn.io to the exclusions list it worked fine.

@docontrol yeah, looks exactly the same. @sfionov is back so I guess we'll be able to look into it soon

Also, we have a few ideas about what could be the root cause of this issue, we just need to prepare a test build.

@ameshkov I can't help but wonder if this is the reason why e.g. dl.dropboxusercontent.com is default added to the HTTPS Exclusions?

@docontrol tbh, this is due to some old issue which is no more relevant.

core/pull-requests/1536


Merge VS Code 1.31.1

This PR merges VS Code 1.31.1.
Unfortunately I committed in the wrong order so all my build/regression fixes show up in this PR in the same commit as the merge itself but if you want to do any reviewing spot checks are appreciated especially on things marked with SQL CARBON EDIT

When I was messing around with this I was having typings conflictions between node v10 and the html parser stuff we have. Did you find a solution to that?

Yes the htmlparser type problem was fixed by setting the "@types/node" resolution in package.json to "10.12.12". I'll double check that I can build successfully using node 10 though since I've mostly been using 8.

Fixed everything that was pointed out and got the builds succeeding. Thanks for reviewing Anthony

@MattIrv let's hold off on merging this until after we create the release/1.5 branch later this week.

This PR is ready to go whenever that branch is created. It will probably have some more merge conflicts once more changes come in to master

Could you put a short comment in the original comment about what the major changes that impact us are? It would help identify where to look in the PR.


Use logzero for logging, instead of wonky builtin

Because pretty colours.

Lazy, can't be bothered. Will reopen if can be bothered.
Not sure if it can even handle multiple files anyway...


Bot has no way of reconnecting after it fails to connect to Discord.

This is usually caused by a command being sent to the bot when Discord has a hiccup. The problem lies in not handling the promise generated by whatever event is triggered when this happens.


Display more useful info than just NO PANDA when a panda is blocked from flashing due to the IGN being on.

Users typically get into this situation when switching codebases that change out the panda firmware but for some reason do not turn their car off when changing the codebases.
NO PANDA is a bit of a blunt message when a panda isn't available. In the background, the panda may be flashing or there might be some other issue in the environment blocking flashing like IGN being on. The widget or UI should reflect some of this activity to provide clarity and steps to remediate.

Haven't seen this be an issue recently and it's fixed in HW on the comma 3X. so gonna close.


update peace-of-posters to 0.4.1

Sorry to bother again. I recently added the peace-of-posters package #627 and was informed about a naming error I made and a resulting bug. It is fixed now but I have updated the version to 0.4.1 from 0.4.0 to signify that. I would also be fine with removing 0.4.0 entirely.

Thanks, sorry to have missed this mistake in the previous review.

No worries. It was my mistake in the first place ;-)


docs(book-&-examples): modify book and examples with new prelude module

Checklist

[x] Confirmed that run-checks all script has been executed.
[x] Made sure the book is up to date with changes in this PR.

Related Issues/PRs
Related to #1335

The tensor types Int, Float and Bool should also be included in the prelude. Please allow me some additional time to complete it.


Update Java 11 experimental image

Same as #694 , but for Java 11.

Add support of experimentals from #693
Add support of Debugging
Bump to the 2.128 baseline

jdk-11-ea+18 has not been pushed to Docker yet, so I cannot verify the theory in JENKINS-51871.
According to http://jdk.java.net/11/release-notes the build just adds GoDaddy certificates so there should be no relation. CC @dwnusbaum

Tested locally. Works well. Merging to the upstream


Rename SOCCER to FOOTBALL or FOOTBALL (SOCCER).

I believe the vast majority of the world uses the term football to refer to the game Americans commonly call soccer.  The templates currently are using the term soccer which I believe most people in the world will find either confusing, or offensive (Americans trying to force their silly nomenclature globally).  Recommend instead calling it something like Football (soccer) or just Football for these games.

For reference: Betfair calls it "Football" (no mention of soccer anywhere on their page from what I can see).


increase waitForFile test utility timeout

motivation: on busy systems (such as CI) this could take a while
changte: set timeout to 30s which should be plenty enough

@swift-ci please test


Paging example

I have data outputting fine into a rendered table. I would like to add paging to the table/data and cannot seem to find an example of this. Is it possible?

If you are just using JsRender, then you can page your data using your own code, and simply pass the paged arrays to the render method. But if you are using JsViews, you can leverage JsViews, use custom tags etc. as in the following sample (three variants using the same basic design):
http://jsfiddle.net/BorisMoore/zgr90L3s/
http://jsfiddle.net/BorisMoore/dg7x8mrc/
http://jsfiddle.net/BorisMoore/uu7opr3z/
The sample is not yet on jsviews.com - but I hope to add it there at some point.


Streaming write for PrivateFile

Closes #152
This is a minimal effort PR for importing big data into WNFS without insane memory requirements by streaming it in during file creation.
The incoming stream is split into private file chunks and encrypted & serialized one-by-one. Each chunk gets written before the next chunk gets fetched, thus this should take only roughly constant memory.
In the future we should look two more things:

We want to provide better APIs in PrivateDirectory::write, where currently that only takes a Vec<u8> of bytes. We probably need to figure out something akin to PrivateDirectory::open which returns a PrivateFile, which can later be used in PrivateDirectory::write (perhaps keeping the old version, too, because it's a nice shortcut for small files).
The most flexible API will be something like a PrivateFile that implements AsyncRead + AsyncWrite + AsyncSeek. However, to make that performant on big files we need content-defined chunking.

Flipping this to ready for review.
That said, the merge order should be:
#148
#159
Then this.

For the file to test in the fixture, I went with a (public domain) recording of Clara Schumann's Scherzo No. 2. It's a classical music piece and Clara Schumann rocks (even though we've forgotten about her nowadays and her husband took the spotlight in today's history books).
Honestly, I'm up for other ideas though! If anyone knows some cool fixture file to use that is >1MB and <10MB, let me know.


Add Site Imports and Exports

Add Site Exports and Imports
Adds ability to export and import sites for classic deployments.
This PR should be merged in prior to the PR named "Update Full Config Export with new Imports and Exports" that updates the full config export/import since that PR will rely on the changes from this PR.

@phalestrivir this PR has conflicts and I don't have access to the trivir repo. Could you maybe rebase this PR and update it or create a new one?

@vscheuber Merge conflict is resolved now


Hot Corners

Description of the new feature / enhancement
Like Mac, the ability to choose certain functions when the mouse pointer is moved to comers of the screen. Currently there doesn't seem to be the option to turn screen off, or start screen saver etc. without a whole lot of messing about.
Scenario when this would be used?
To save power or securing your laptop with functions like turning the screen off instantly by moving the pointer to the top right, or start the screen saver when moving the pointer to the bottom right, or lock the screen when moving to the top left etc.
Supporting information
No response

/dup #1305


Explicit Loading sometimes not working

I have entities like these.
    public class ZoneGroup
    {
        [StringLength(3)]
        public string DestinationCode { get; set; }

        [ForeignKey("DestinationCode")]
        public virtual Destination Destination { get; set; }

        [Key]
        [StringLength(50)]
        public string Code { get; set; }

        public virtual ICollection<ZoneGroupName> Names { get; set; }

        public virtual ICollection<Zone> Zones { get; set; }
    }

    public class ZoneGroupName : MultiLangEntity
    {
        [ForeignKey("ZoneGroupCode")]
        public virtual ZoneGroup ZoneGroup { get; set; }

        [StringLength(50)]
        public string ZoneGroupCode { get; set; }
    }

    public class Zone
    {
        [StringLength(3)]
        public string DestinationCode { get; set; }

        [ForeignKey("DestinationCode")]
        public virtual Destination Destination { get; set; }

        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public int Code { get; set; }

        public string Name { get; set; }

        [StringLength(50)]
        public string ZoneGroupCode { get; set; }

        [ForeignKey("ZoneGroupCode")]
        public virtual ZoneGroup ZoneGroup { get; set; }
    }

When I use explicit loading to load related data
    _Db.Entry(zoneGroup).Collection(x => x.Names).Load();
    _Db.Entry(zoneGroup).Collection(x => x.Zones).Load();

The "Names" is loaded but the "Zones" is empty. But my database do have "zone" of the "zoneGroup".
No Exception.
EF Core version: 2.0
Database Provider:  Microsoft.EntityFrameworkCore.SqlServer
Operating system: vs 2017

The 'Zone' has composite key of 'DestinationCode' and 'Code'. Does it matter?
My project is company's project. I cannot share it with you.

@Bo-Yee-Woods I understand that you can't share your company code. Instead, can you please create separate code listing (like I posted above) or runnable project/solution that reproduces the behavior you are seeing. Otherwise we're guessing trying to reproduce what you are doing, which makes it very difficult to figure out what bug you are hitting if we cannot reproduce it.

I found that explicit loading work well for me everywhere except in this code block.
    public async Task<(bool, Task<T>)> UpdateDestinationsAsync<T>(int from, int batchSize, Task<T> getResponse = null) where T : DestinationResponse
    {
        var to = from + batchSize - 1;
        var responseGetter = new ContentResponseGetter<T>(_ContentClient, _Db);
        var response = getResponse == null ?
                       await responseGetter.GetNewUpdatesAsync(Resources.Destinations, from, to) :
                       await getResponse;

        var hasMoreResult = response.Total > to;
        var getNextBatch = hasMoreResult ?
                           responseGetter.GetNewUpdatesAsync(Resources.Destinations, from + batchSize, to + batchSize) :
                           null;

        foreach (var destinationModel in response.Destinations)
        {
            var destination = _Mapper.Map<DestinationModel, Destination>(destinationModel);
            var country = _Db.Countries.Find(destinationModel.CountryCode);
            destination.Country = country ?? throw new Exception("Country Not Found");

            var exists = _Db.Destinations.Any(x => x.Code == destinationModel.Code);
            _Db.Entry(destination).State = exists ? EntityState.Modified : EntityState.Added;

            if (destinationModel.Name != null)
            {
                var name = _Mapper.Map<MultiLangContent, DestinationName>(destinationModel.Name);
                name.DestinationCode = destination.Code;
                name.LanguageCode = English.Code;
                _Db.Entry(name).State = exists ? EntityState.Modified : EntityState.Added;
            }

            foreach (var zoneModel in destinationModel.ZoneModels)
            {
                var zoneExists = _Db.Zones.Any(x => x.Code == zoneModel.Code && x.DestinationCode == destinationModel.Code);

                var zone = _Mapper.Map<ZoneModel, Zone>(zoneModel);
                zone.DestinationCode = destination.Code;
                zone.Destination = destination;
                _Db.Entry(zone).State = zoneExists ? EntityState.Modified : EntityState.Added;

                var zoneDescription = _Mapper.Map<MultiLangContent, ZoneDescription>(zoneModel.Description);
                zoneDescription.DestinationCode = destination.Code;
                zoneDescription.ZoneCode = zone.Code;
                zoneDescription.LanguageCode = English.Code;
                _Db.Entry(zoneDescription).State = zoneExists ? EntityState.Modified : EntityState.Added;
            }

            foreach (var zoneGroupModel in destinationModel.GroupZoneModels)
            {
                var zoneGroup = _Db.ZoneGroups.FirstOrDefault(x => x.Code == zoneGroupModel.Code);

                if (zoneGroup == null)
                {
                    zoneGroup = _Mapper.Map<GroupZoneModel, ZoneGroup>(zoneGroupModel);
                    zoneGroup.Destination = destination;

                    var zoneGroupName = _Mapper.Map<MultiLangContent, ZoneGroupName>(zoneGroupModel.Name);
                    zoneGroupName.ZoneGroup = zoneGroup;
                    zoneGroupName.Language = English;
                    _Db.Add(zoneGroupName);
                }
                **_Db.Entry(zoneGroup).Collection(x => x.Zones).Load();**
                foreach (var zoneCode in zoneGroupModel.ZoneCodes)
                {
                    var zone = _Db.Zones.Find(destination.Code, zoneCode);
                    zone.ZoneGroup = zoneGroup;
                }
            }
        }
        if(!hasMoreResult) AddUpdateHistory(Resources.Destinations, English);
        await _Db.SaveChangesAsync();
        return (hasMoreResult, getNextBatch);
    }

@Bo-Yee-Woods I still can't reproduce the issue from the code provided. Can you try to put it into some running application (maybe just a console application) that actually hits the issue such that we can then run it here and reproduce what you are seeing?

I cannot share my current project, but I try to reproduce the behavior in a test project.

EF Team Triage: Closing this issue as the requested additional details have not been provided and we have been unable to reproduce it.
BTW this is a canned response and may have info or details that do not directly apply to this particular issue. While we'd like to spend the time to uniquely address every incoming issue, we get a lot traffic on the EF projects and that is not practical. To ensure we maximize the time we have to work on fixing bugs, implementing new features, etc. we use canned responses for common triage decisions.


Support aggregation arguments being objects

For aggregations like histogram, where some arguments are objects [1] the form needs to show a label corrrespondent to the argument (e.g. extended_bounds) and then indented inputs corresponding to that argument fields (e.g. min and max).
[1] pseudo-code
histogram (
    field: string,
    interval: number
    [, min_doc_count: integer]
    [, extended_bounds: {
      min: number,
      max: number
    }]
    [, keyed: boolean]
    [, missing: number]
    [, order: {
      [_count: string = 'asc'|'desc'],
      [_key: string = 'asc'|'desc'],
      [<subaggr_key>: string = 'asc'|'desc'],
      [<subaggr_key>.<key>: string = 'asc'|'desc'],
    }]
)

There're are some regularities in the formats suggesting that a common editor could be implented for them. For example ranges have a from and to field, but they might accept different formats and semantics in their values dependeng on the aggregation (range, date_range, ip_range)
Besides ranges, some aggrregations also support filtering, which are specified using most of the ES querying DSL besides aggregations, so supporting that in Dapsboard might be quite a bit of work.
Other object formats that are used in some aggregation parameters are subsets of the aggregation DSL itself (sources parameter in composite) and sorting parameters.
In conclusion, it might be convenient to provide specialized components for at least a few of these parameters (sorting, ranges and perhaps also filtering and parameters that accept aggregation queries) instead of a more generic recursive property editor.
Bucket Aggregations

filter and filters: Seems to require understanding of most ES querying capabilities such as match and term

adjacency_matrix

filters: Seems to use the same querying capabilities used in the above aggreation type

composite

sources: List of objects that are themselves a limited form of aggregation queries

date_range

ranges: multi prop object {to:'...', from: '...'} specifying ranges

geo_distance

ranges: list of range objects specifying distances  {to: number, from: number}

ip_ranges: list of range objects specifying distances  {to:'<IP_ADDRESS>', from: '<IP_ADDRESS>'}

range: list of range objects specifying distances  {to: number, from: number}

significant_terms:

background_filter: object with single property term (type ???)
jlh: An empty object {} (presumably reserved for future parameters?)
chi_square: An empty object {} (presumably reserved for future parameters?)
gnd: An empty object {} (presumably reserved for future parameters?)
percentage: An empty object {} (presumably reserved for future parameters?)
mutual_information: object with single boolean property include_negatives
background_filter: Custom background context. Filter object format (as in non aggregation queries)

significant_text:

background_filter: object with single property term (type ???)
source_fields: array of field names

Type unions of explicit strings not included above.

Waiting for #103 before proceeding


Driver: Serial STM32: Fix use of TXE IRQ

uart_stm32_irq_tx_enable/disable() functions use TC IRQ.
But uart_stm32_irq_tx_ready() function use TXE IRQ.
So uart_stm32_irq_tx_ready() function alway return 0, because TXE flag is never enabled by uart_stm32_irq_tx_enable.

As you say, the issue is in function uart_stm32_irq_is_pending, which is checking TXE by calling LL_USART_IsEnabledIT_TXE(). This function is used by the bluetooth H4 driver, in bt_uart_isr() function.
This issue causes an infinite loop in the H4 driver.

@Benichou34 ,
Ok, I wasn't aware of any use of this function on STM32, but this is indeed a bad math from my side.
Can you check if fixing LL_USART_IsEnabledIT_TXE() to LL_USART_IsEnabledIT_TC() fixes your issue?

@erwango
Sorry for my slow answer.
I have changed LL_USART_IsEnabledIT_TXE() to LL_USART_IsEnabledIT_TC(), and that seems to fixes the issue. Do you want that I update the commit?

@Benichou34, yes, let's go with that fix, thanks.

@erwango
I have updated the commit.


How to reference services after migration from .bot file to appsettings?

We use a master-child bot pattern. Until now we registered the childbots as generic services in the .bot file. The Bot Configuration handled parsing of services very well.
What is the best way to register childbots (or services in general) with the new approach?

Try taking a look at this article: https://docs.microsoft.com/en-us/azure/bot-service/bot-file-basics?view=azure-bot-service-4.0&tabs=csharp. Should cover what you're interested in?

Thanks for this hint, but I know this page. It doesn't cover my question. We used the services in the bot file to register childbots at a masterbot.
The Bot Framework parsed the entries under services and put it into a collection, where we can easily loop over child bot registrations. This approach is very dynamic. I don´t have to parse by hand and don't have to use fix config keys.
This is what I miss in approach with appsettings. Appsettings could do this in the same way, but I miss framework helpers to handle dynamic configs.

I am not aware of any other solution that's similar to what bot file offered.


Print explicit import for using CEnum

With the print_using_CEnum option equal true, an implicit import for CEnum is produced by printing using CEnum. However, then https://github.com/ericphanson/ExplicitImports.jl complains about the implicit import. It would be nice if @cenum (and probably also CEnum) would be imported explicitly. Since @cenum is the only exported name by CEnum.jl this approach should not break anything. Correct me if I am wrong.

Thanks!


Add follower layer delegate

Description
This adds a delegate class that can override the transform used by a CompositedTransformFollower so that it can incorporate additional information other than the alignments and leader/follower sizes at the time of the transform.
I needed this in order to do cascading menus properly so that they wouldn't be delayed by a frame when their connected menu button moved.
Tests

Added a test to make sure that the delegate gets used and gets passed the correct information.

Closing this, since we decided that we can't use this for my use case anyhow, since I need to do layout when the menus change location, and this won't allow that.
We're going to wait to add API for when there's a use case for it.
That said, this could be a useful thing to add if someone needs something similar in the future where positioning is all that is needed.


Bug: Inconsistency for configuration inheritance

🐛 Bug Report
I want to deploy a specific folder for my site depending on the environment using wrangler 1.11.0:
# wrangler.toml
[env.production.site]
bucket = "../app/dist-production"
entry-point = "."

However this configuration is ignored and the top-level site is always deployed.

According to the documentation, the site key is  not herited (which is different from Top level only).

Not inherited: Must be defined for every environment individually.

I took a look at the source code, and it seems that the code is not in sync with the doc (or the other way around :-), and treating this key as top level only (which does not help me either).
https://github.com/cloudflare/wrangler/blob/c76aab4b8fcf217b37e41313f136bab49bf1f016/src/settings/toml/manifest.rs#L228-L242
target is the top-level configuration, and only name, account_id, webpack_config, kv_namespaces and vars gets inherited (site is missing)
I guess it is just a matter of adding
     if let Some(site) = &environment.site {
         target.site = Some(site.clone());
     }

Do you mind considering adding a PR supporting this?

Background information:
I want to deploy another site depending on the environment since the generation of my site depends on the environment as well (some config differs). As-is, there is a very high risk, that I deploy the staging code to my production URL (which would be avoided if I could specify another folder and generate my site in dist-staging and dist-production)

this does seem like a relatively easy addition that wouldn't break people. i'd welcome a PR!


Problem when converting main.py to exe file

Images are not getting converted properly when converting python -m PyInstaller main.py --onefile -w

I would recommend you to use absolute path when it comes to select a file from your application (e.g.  os.path.abspath("folder/file_you_need.txt")).

fixed using
@staticmethod
def resource_path(relative_path):
""" Get absolute path to resource, works for dev and for PyInstaller """
try:
# PyInstaller creates a temp folder and stores path in _MEIPASS
base_path = sys._MEIPASS
except Exception:
base_path = os.path.abspath(".")
return os.path.join(base_path, relative_path)

fixed using
@staticmethod
def resource_path(relative_path):
""" Get absolute path to resource, works for dev and for PyInstaller """
try:
# PyInstaller creates a temp folder and stores path in _MEIPASS
base_path = sys._MEIPASS
except Exception:
base_path = os.path.abspath(".")
return os.path.join(base_path, relative_path)


Cross entropy for packing

Hi thanks for the lib! The https://huggingface.co/blog/packing-with-FA2 new feature looks great and can further speed up training using this repo. However, it has some problem: if I understand correctly, the cross entropy loss will be different.
For example, suppose we have two sequences [a,b,c,d,e,f,g] and [x,y]. Then, the original way will give:
loss = 1/2( 1/7(loss(a) + loss(b) + ... + loss(g)) + 1/2(loss(x) + loss(y)) )

while the new one - [a,b,c,d,e,f,g,x,y] will be
loss = 1/9(loss(a) + ... + loss(y))

As can be seen, for example, the "z" is originally weighted 1/4, but now weighted 1/9.
Thus, the proposal is to add support for this (correctly weight every token). Then, we can happily enable this feature (by default), and unsloth can be even faster by wasting less tokens!

Oh the CE Loss weighting is now fixed in the gradient accumulation bug fix! Ie there are no more weighting factors at all! Ie the correct loss is actually number 2 - we sum and not divide by the length of the sequence.
The FA2 packing method does need changes - specifically the RoPE kernel must accept indices

I see, thank you!


fix missing extra args in ConformerLayer

Before submitting

[V] Was this discussed/approved via a Github issue? (no need for typos, doc improvements)
[V] Did you read the contributor guideline?
[V] Did you make sure to update the docs?
[V] Did you write any new necessary tests?

What does this PR do?
Fixes #5174.
PR review
Anyone in the community is free to review the PR once the tests have passed.
If we didn't discuss your PR in Github issues there's a high chance it will not be merged.
Did you have fun?
Make sure you had fun coding 🙃

@androstj Thanks for looking into it, I did the same yesterday and the issue is fixed now.


ionic2 - bug(backdrop?) - on iOS, components with a backdrop (alert, modal, etc.) do not prevent user from scrolling content behind them.

Short description of the problem:
If an alert, etc is visible on iOS, I can attempt to slide the content behind the backdrop and will be able to do so. When this happens and the keyboard is open, I can no longer scroll the entire view any more. In other words, some of modal/select content is under the keyboard and I can't scroll it up.
What behavior are you expecting?
I expect to not be able to scroll or interact with anything that is  under a modal-like component.
Steps to reproduce:

Create a view with enough content to make it scrollable
Create an ion-select with options. Open it and try to scroll the content behind it. OR
Create a popover with an input on it. Open it, select the input (make the keyboard appear), and then try to scroll the content behind it.

Other information: (e.g. stacktraces, related issues, suggestions how to fix, stackoverflow links, forum links, etc)
I would create a plunker, so I can only reproduce it on iOS.
Not sure if it matters, but I am seeing this within an ion-slide. (haven't tried it anywhere else)
Which Ionic Version?  2.x
Run ionic info from terminal/cmd prompt: (paste output below)
Cordova CLI: 6.2.0
Gulp version:  CLI version 3.9.1
Gulp local:   Local version 3.9.1
Ionic Framework Version: 2.0.0-beta.9
Ionic CLI Version: 2.0.0-beta.25
Ionic App Lib Version: 2.0.0-beta.15
ios-deploy version: 1.8.4
ios-sim version: 5.0.6
OS: Mac OS X El Capitan
Node Version: v4.4.4
Xcode version: Xcode 7.3 Build version 7D175

I confirm the same problem on modals with transparent background.
I can scroll the content of the page behind the modal, but only on iOS devices.
Using ionic-angular 2.0.0-beta.10

It looks like the disablescroll="false" in ionic/src/components/modal/modal-component.ts is hardcoded to false. When I changed it to true, I was no longer able to scroll items behind the backdrop.

If we add disableScroll as an option when creating a modal, we could modify this behavior.

Same happens for me on Beta-10. do you have any fix/work around for this issue?
On android things work as expected.

Any updates?

This is still happening in Beta 11. Not sure about the best way to work around this. Anyone tried anything short of fully custom implementation?

is there a way to change backdrop disableScroll to true when loading with transparent background?

As a workaround, I added this to my app.scss that disables overflow scrolling on all scroll-content when disable-scroll is applied to the app.
ion-app.disable-scroll {
    ion-content>.scroll-content {
        overflow: hidden;
    }
}

@longzheng Thank you so much! This workaround worked like a charm for me!

Hello all! Thanks for using Ionic. We have tried multiple solutions in UIWebView to disable scrolling when an overlay component is active but unfortunately, there is not a good way to do this that does not cause either flickering or bad performance. Because of this, we made the decision a while ago to fix the issue with some native side code in our WKWebView plugin. If you use that plugin (which is gonna be our standard webview for iOS very soon) this issue is fixed.

@jgw96  The WKWebView plugin needs cordova to be installed, if you plan to make this as the standard webview for iOS does that mean that all ionic iOS apps absolutely need to use cordova?

@jgw96 I tried upgrading to WKWebView as suggested by this doc and it seems to do the trick for AlertController, but unfortunately does nothing for ModalController, i.e. vertical swipes on a modal scroll content underneath it.
Do you have any recommendations how that could be fixed? Otherwise I think it would be valid to reopen this issue.


Add sqldb fixture in UT

Description

Related Issues

Checklist

[ ] Is this code covered by new or existing unit tests or integration tests?
[ ] Did you run make test successfully?
[ ] Do new classes, functions, methods and parameters all have docstrings?
[ ] Were existing docstrings updated, if necessary?
[ ] Was external documentation updated, if necessary?

Additional Notes or Comments

Codecov Report
Attention: 1 lines in your changes are missing coverage. Please review.

Comparison is base (34830a7) 80.33% compared to head (e8b91df) 68.08%.
Report is 127 commits behind head on main.

Files
Patch %
Lines

superduperdb/backends/base/artifact.py
66.66%
1 Missing :warning:

Additional details and impacted files
@@             Coverage Diff             @@
##             main    #1270       +/-   ##
===========================================
- Coverage   80.33%   68.08%   -12.26%
===========================================
  Files          95      102        +7
  Lines        6602     7272      +670
===========================================
- Hits         5304     4951      -353
- Misses       1298     2321     +1023

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


[Windows install ScreenPipe didn't work] nvcc error while compiling "src\affine.cu"

Hello, I am experiencing the same issue described in this post: https://github.com/mediar-ai/screenpipe/issues/398#issuecomment-2393992763.
The previous issue was marked as resolved, but the CUDA flag still causes the same error for me.
I run the following command: cargo build --release --features cuda --target x86_64-pc-windows-msvc
I see a long green list of successful compilations.
However, at the end, I get:
error: failed to run custom build command for `candle-kernels v0.7.2`

Caused by:
  process didn't exit successfully: `J:\ScreenPipe\projects\screenpipe\target\release\build\candle-kernels-d6f54d410ef1df66\build-script-build` (exit code: 101)
  --- stdout
  cargo:rerun-if-changed=build.rs
  cargo:rerun-if-changed=src/compatibility.cuh
  cargo:rerun-if-changed=src/cuda_utils.cuh
  cargo:rerun-if-changed=src/binary_op_macros.cuh
  cargo:info=["/usr", "/usr/local/cuda", "/opt/cuda", "/usr/lib/cuda", "C:/Program Files/NVIDIA GPU Computing Toolkit", "C:/CUDA"]
  cargo:rerun-if-env-changed=CUDA_COMPUTE_CAP
  cargo:rustc-env=CUDA_COMPUTE_CAP=86
  cargo:info=Builder { cuda_root: Some("C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.2"), kernel_paths: ["src\\affine.cu", "src\\binary.cu", "src\\cast.cu", "src\\conv.cu", "src\\fill.cu", "src\\indexing.cu", "src\\quantized.cu", "src\\reduce.cu", "src\\sort.cu", "src\\ternary.cu", "src\\unary.cu"], watch: [], include_paths: ["src\\binary_op_macros.cuh", "src\\compatibility.cuh", "src\\cuda_utils.cuh"], compute_cap: Some(86), out_dir: "J:\\ScreenPipe\\projects\\screenpipe\\target\\x86_64-pc-windows-msvc\\release\\build\\candle-kernels-cf49e1a1fd5c373d\\out", extra_args: [] }
  cargo:rustc-env=CUDA_INCLUDE_DIR=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2\include
  cargo:rerun-if-changed=src\binary_op_macros.cuh
  cargo:rerun-if-changed=src\compatibility.cuh
  cargo:rerun-if-changed=src\cuda_utils.cuh
  cargo:rerun-if-env-changed=NVCC_CCBIN
  cargo:rerun-if-changed=src\affine.cu
  cargo:rerun-if-changed=src\cast.cu
  cargo:rerun-if-changed=src\ternary.cu
  cargo:rerun-if-changed=src\quantized.cu
  cargo:rerun-if-changed=src\binary.cu
  cargo:rerun-if-changed=src\sort.cu
  cargo:rerun-if-changed=src\conv.cu
  cargo:rerun-if-changed=src\indexing.cu
  nvcc fatal   : Cannot find compiler 'cl.exe' in PATH
  nvcc fatal   : Cannot find compiler 'cl.exe' in PATH
  cargo:rerun-if-changed=src\reduce.cu
  cargo:rerun-if-changed=src\unary.cu
  cargo:rerun-if-changed=src\fill.cu
  nvcc fatal   : Cannot find compiler 'cl.exe' in PATH
  nvcc fatal   : Cannot find compiler 'cl.exe' in PATH
  nvcc fatal   : Cannot find compiler 'cl.exe' in PATH
  nvcc fatal   : Cannot find compiler 'cl.exe' in PATH
  nvcc fatal   : Cannot find compiler 'cl.exe' in PATH
  nvcc fatal   : Cannot find compiler 'cl.exe' in PATH
  nvcc fatal   : Cannot find compiler 'cl.exe' in PATH
  nvcc fatal   : Cannot find compiler 'cl.exe' in PATH
  nvcc fatal   : Cannot find compiler 'cl.exe' in PATH

  --- stderr
  thread 'main' panicked at C:\Users\admin\.cargo\registry\src\index.crates.io-6f17d22bba15001f\bindgen_cuda-0.1.5\src\lib.rs:391:13:
  nvcc error while compiling "src\\affine.cu":

  # CLI "nvcc" "--gpu-architecture=sm_86" "--ptx" "--default-stream" "per-thread" "--output-directory" "J:\\ScreenPipe\\projects\\screenpipe\\target\\x86_64-pc-windows-msvc\\release\\build\\candle-kernels-cf49e1a1fd5c373d\\out" "-Isrc" "-IC:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.2\\include" "src\\affine.cu"

  # stdout

  # stderr

  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Could I be using an incorrect version of CUDA? Additionally, I am unsure if the missing cl.exe in my PATH might be related.

@AytoMaximo i actually have the same issue on windows rtx4060 and no idea how to fix, if you figured something out


⚠ Fortnite has degraded performance

In 606f3bf, Fortnite (https://fortnite.com) experienced degraded performance:

HTTP code: 200
Response time: 1613 ms

Resolved: Fortnite performance has improved in 9d58831.


Google hosted domain support

See #959 - Google's OIDC implementation supports limiting access to a certain Google Apps / G Suite domain. This lets dex users ensure that only people in their organization can log in, and not just anyone with a Google account.

Tests fail because of a lint suggestion:
/home/travis/gopath/src/github.com/coreos/dex/connector/oidc/oidc.go:147:9: if block ends with a return statement, so drop this else and outdent its block

Please also add an explanation of the new field here. If possible please do include unit tests in oidc tests. You can refer the ldap or saml tests for reference.

I added a test for LoginURL, but HandleCallback makes a request to the issuer and I couldn't find a way to mock that.

Is there anything I can do to help this get merged? I am really in need of this functionality.


0-turn duration skills

from u/Hyperion
Hi Lyrgard. On the unit pages you have 0-turn skills as 'for this fight' rather than 'for this turn'. Example below of Freya (VP)

not lyrgard's fault.

https://ffbeequip.com/unitSearch.html#eyJzZWFyY2hUZXh0IjoiXCJhZXJpYWwgYnVyc3RcIiIsImZ1bGx5RGlzcGxheWVkVW5pdHMiOltdfQ==
this should be fixed now.


Make application fail when SQLite hits a fatal error

This change is to avoid corrupt changeset being pushed to Hub. Currently, we have undefined behavior where the application after hitting critical error continues to run and push an invalid changeset to the hub.

throw std::runtime exception when SQLite hits a fatal error.

We do not need this as is. I am implementing an alternative solution.


add archive command

well the command is already made but I thought of just adding it here so it's in the repo for people to copy it if needed :/

you can maybe use
with open("archived.md") as file:

rather than
f = open("file.md")

\n\n seems a bit large of a gap considering i use \n

well from what I've tested the file looks like it has a double \n which is why I used it. also the first option sounds quite better I don't know if I can use the async with or just with

LGTM


[COMPUTE-5061] Enable option for disabling node operations

We want the ability to use fleetlock as a distributed lock
for another service, imagepatchpull. This service does not
require the node to be cordoned. However, the fleetlock server
will always attempt to cordon on lock, uncordon on unlock.
Therefore, this change provides an optional parameter to allow
disabling node operations. By using this option, imagepatchpull
can use fleetlock to get distributed locks without any node
operations.

PTAL @lucaburak

also @MHBauer


Will the generated training data be published?

Hi all,
Thank you for sharing the great work!
May I know if the generated training data (i.e., generated claims from CLAIMGEN-ENTITY and CLAIMGEN-BART for the Zero-shot setting) will be published?

Also wondering.


Require all Boxed types to be Send

This enables snow::Session to be sent across threads, for example when spawning
a Future in tokio that uses a Session.

Sorry for the delay in merging it, I wanted to add a quick test to make sure we don't break Send capability in the future.


XAMLIL:  "Avalonia.Styling.Setter is only valid inside Avalonia.Styling.Style"

Avalonia.Styling.Setter is only valid inside Avalonia.Styling.Style

I am trying to construct some complex animation from XAML. The Animation is not embedded in a <Style> and XAMIL apparently doesn't like that. Is there any reason for this restriction? Seems perfectly fine to construct Animation etc. outside of <Style> context.

Duplicate of https://github.com/AvaloniaUI/Avalonia/issues/6960
We need a type information.

Ah, I see. It needs the type to resolve the property name. In theory I could bind {x:Static Control.BackgroundProperty} right? In that case it wouldn't need the type.


Fixed search options on search page

This PR changes the search options on the home page to not move around or hide when autocomplete list shows up.
Also made autocomplete list scroll y when it gets too long.

Codecov Report

Merging #198 into mudrod-117 will decrease coverage by 1.68%.
The diff coverage is n/a.

@@              Coverage Diff               @@
##             mudrod-117   #198      +/-   ##
==============================================
- Coverage          1.68%     0%   -1.69%
==============================================
  Files                79     79
  Lines              5163   5039     -124
  Branches            688    647      -41
==============================================
- Hits                 87      0      -87
+ Misses             5064   5039      -25
+ Partials             12      0      -12

Hi @fgreg I pulled this locally and tested, LGTM +1


add the ability to "set" the cached value

It would be nice if there were an extra render prop that allowed you to "set" the cached value to a new value, in the case of updating the cache for a mutation. This way you could nest a patch inside a get and use the update method to update the cache without having to re-request. (Same goes for post/delete as well.)

:wave: Hi again @ianstormtaylor !
I've thought about this, but I have intentionally omitted a feature like this from the lib. Your other issue mentioned Apollo, so you are possibly accustomed to Apollo's system of writing updates to the store that works sort of like this?
If that is not the case, then the rest of this reply will not make any sense, and you can probably stop reading now and just start leaving a new reply 😉 .
But if that is the case, then I'm going to go ahead and write out why this feature is omitted here. It may be useful for future visitors, and also myself 😛 . The tl;dr is that React Request alone is not a full replacement for Apollo's Query component and InMemoryCache, so not all of the patterns that you use there apply if you are just using React Request.
The reason for this is that updating a cached response based on another response requires that there exists a relationship between the two requests. This is something that Apollo has, but React Request does not have.
When you are working with GraphQL, there are object types, unique identifiers for objects, and a well-defined response structures, which allows for you to build a normalized data store (InMemoryCache). When you update a normalized store over HTTP, all of the requests have a natural relationship, as they represent CRUD operations on the same collection of data. Naturally, then, providing something like update after a query to change another cached response makes some sense.
React Request does not have any notion of types, so there cannot be a normalized store, and consequently no relationships between requests. Each request is independent from one another by design.
Once you do have a normalized store where operations on the store occur over HTTP, the question then becomes: how do you manage a situation where one request effects the result of the other? There are different approaches to that, and I came up with an approach that is different than Apollo's, but one that solves some of the problems people get with update. It also does not require updating the store directly. Because I think this pattern is preferable to Apollo's, I didn't provide the ability to modify the store so as not to encourage someone to go down the same path Apollo did, but maybe I should.
Also, I know that I was a little vague there; it has been some time since I've thought about it, but I can dig up my notes if you are curious to hear more about that topic.
Anyway, in a diagram, my understanding of the relevant pieces of Apollo is that it is kind of like this:
apollo-link-http  + <Query/>   => InMemoryCache

The description for what these do looks like this:
ApolloLinkHTTP: a wrapper around fetch that with other links gives you caching and deduplication
<Query/>: a nice way to use ApolloLinkHTTP in React
InMemoryCache: a normalized data store that introduces notions such as relationships between requests

The analogous React Request stack looks like this:
fetch-dedupe  + <Fetch/>   => ?

fetch-dedupe: a wrapper around fetch that gives you caching and deduplication
<Query/>: a nice way to use fetch-dedupe in React
?: A doesn't-yet-exist generic data store that introduces new problems such as relationships between requests

I am still working on my own version of ?, and the plan was that it would not need a cache update feature like this, because I think there are better ways to do it. Although I have the concern that by adding it I may encourage Apollo's system of updates, but maybe it is better to provide the functionality and add docs?
Also, I admit that I may be completely wrong about the need for this feature. Maybe it is necessary for all types of normalized stores, and that it is the best way to manage updates. That's totally possible, and I'd love to chat more with ya if you are interested!
If you have made it this far, thanks for reading this giant tome 📖

More abstractly, what I'm arguing for is that the cache be able to...

[x] get(key) (already supported)
[ ] set(key, value)
[ ] remove(key)

And then each <Fetch> just creates a sort of "closured binding" to cache for a specific key, and exposes a set of get, set, delete operations for it. The get is implicit, since it's just the data value of the response. But the set/remove would be exposed as arguments to the children function.
This doesn't actually increase the "magic" of the library, since it's still only dealing with caching with unknown-to-it keys. But it does allow people to have full control to build more complex behaviors themselves.

Do you have an idea (or just a quick sketch) or what you think your API would look like?

Sure, I'll do my best! The use cases I can think of always involve a list of resources, such as a list of favorite books. Let's say that this list was returned by a network request.
When the user creates a new book, you typically want to display this new favorite book in the existing list of favorite books. Of course, you can always make another request to get the latest favorite books from the server, but frequently developers want to do it synchronously. In Apollo, you would use update to modify the query for fetching favorite books to now include the new favorite book.
Likewise, for deletes, you update the query for fetching favorite books to remove that favorite book.
The component that renders the list is then subscribed to updates to the fetching-favorite-books query. And because you are modifying the response of that query, the changes from the updates and deletes are always displayed to the user.
This API couples the the list itself (favorite books) with the HTTP request to retrieve the list (which is not an inherently bad thing; that is intended to just be a neutral description of the design of the API).
The alternative approach that I prefer is to introduce a first-order notion of "lists" in your store. Using lists, you can solve this situation and a number of other situations where users want lists of resources on the client (such as "selecting" resources) in a way that I find to be elegant.
So, in addition to the normalized section of the store where resources live, you also have a section with lists. Lists can be polymorphic, and you get a similar API for modifying lists.
With lists, the above situation looks like this:

user fetches the array of resources with a network request, and sets them on a list (lets call it favoriteBooks
when the user adds a new favorite book, you add it to the list
when the user deletes the book, you remove it from the list

The UI is subscribed to changes to the list rather than from the initial request to get the lists.
There are some changes to how you structure your network requests to account for this, but we have been doing this pattern on a number of apps at Netflix for over a year now, and it has worked out really well for us.
I recognize that naming things can be difficult, and when you use lists, you need to come up with a name for the list. In my experience, the lists of resources that folks work with in apps usually have a natural name that the developer is already using in their head (favorite books, new books, user's books, "search results," and so on).
And the benefits to this approach (which I have been light on in this response, but I can elaborate on further if you are interested) outweigh the cost in my opinion.

More abstractly, what I'm arguing for is that the cache be able to...

I get where you are coming from, and I'm open to adding this API for completeness. With that said, I would want to add some best practices docs around using it. I don't think that most users need those APIs, and I wouldn't want newcomers to think that they need to be writing some crazy cache management solution to get value out of this library 🙂

By the way, the normalized store that I am building, Standard Resource, is still a WIP, but the docs are basically ready for the first release. The store includes a separate section for lists, which is why I am mentioning it. You can see the docs here if you are interested.
My intention is ultimately to get an Apollo-like developer experience that lets you work with any data format. In my opinion, very few of Apollo's most useful features require GraphQL, and I think it is a shame that they didn't make it more generic!

The alternative approach that I prefer is to introduce a first-order notion of "lists" in your store. Using lists, you can solve this situation and a number of other situations where users want lists of resources on the client (such as "selecting" resources) in a way that I find to be elegant.

This sounds very interesting. You could even have the lists be able to define a sort comparator at creation time that would be insanely helpful for automating the adding aspect. This does sound promising, and like it could be the start of the better abstraction that solves lots of the Apollo issues around adding/removing.

In my opinion, very few of Apollo's most useful features require GraphQL, and I think it is a shame that they didn't make it more generic!

I agree with this over 100%. After doing another round of research into GraphQL I kind of feel like this about a majority of the ecosystems benefits, not even just Apollo.

Oh, and I should note that React Request is being developed separately from Standard Resource. I never want to merge the two, or make them dependent on one another, or anything like that 😅

My intention is ultimately to get an Apollo-like developer experience that lets you work with any data transmission format.

Very fair. It sounds like it will be interesting. I guess maybe what I'm looking for is too opinionated for react-request, and almost not opinionated enough for standard-resource, so maybe it needs to be its own new thing instead. Although maybe I can just keep using Apollo, but heavily restrict how it's used to get some of the benefits.

This sounds very interesting. You could even have the lists be able to define a sort comparator at creation time that would be insanely helpful for automating the adding aspect. This does sound promising, and like it could be the start of the better abstraction that solves lots of the Apollo issues around adding/removing.

I agree that this would be useful. For now, to keep the API simple, I opted for users needing to sort manually at the moment, which has been working fine for us (we are using something similar to Standard Resource on some teams at Netflix).

I agree with this over 100%. After doing another round of research into GraphQL I kind of feel like this about a majority of the ecosystem's benefits, not even just Apollo.

:+1:

I guess maybe what I'm looking for is too opinionated for react-request, and almost not opinionated enough for standard-resource, so maybe it needs to be its own new thing instead.

That may be true. With that said, I am totally open to adding the additional cache methods to this library. I know that I've written a lot of words in this issue that are a little tangential to your original question, so I just want to make sure that I communicated that 😅
So if you think that would give you the API that you need to build the application you want to build (or at least to be a building block for it), then that is another option. If you have the time to open up a PR, I'd be happy to review it.
And if you decide to stick with Apollo, then no worries! I appreciate you stopping by this project and sharing your thoughts!

An example could be very helpful in this situation:

With lists, the above situation looks like this:
user fetches the array of resources with a network request, and sets them on a list (lets call it favoriteBooks
when the user adds a new favorite book, you add it to the list
when the user deletes the book, you remove it from the list
The UI is subscribed to changes to the list rather than from the initial request to get the lists.
There are some changes to how you structure your network requests to account for this, but we have been doing this pattern on a number of apps at Netflix for over a year now, and it has worked out really well for us.

As far I understood, you mean to have your own internal store, whenever you fetch new data, insert that data to the store and when you mutating it, manually updating it?
I wonder how @jamesplease inserting the initial data to the store after the requests has been made since  there is no way to know if data comes from the cache or internet.

Hi @Rusfighter , thanks for the reaching out! I'm happy to help, but I don't think this issue is the right place for this conversation. Would you mind opening another issue here, or on the Redux Resource issue tracker?
Thanks!


Feature/master/interface implementation creator

Description
Completed avro to ts class generator so existing tests pass. After that I moved around logic to enable usage of the compiler in terminal. This breaks existing usage as package and should instead be used as global (?). Not sure how npm works with this. Updated readme to reflect changes

@Dvorsky can you see why travis builds are failing?

@krukru types finally added and tests check out

Great success! I will try to run the compiler and if it produces the same output we can merge this

@krukru can you elaborate on default values in class declarations ?

@bonzzy Can you review again so we can merge if everything is alright


Fix u64 and i64 in Safari 14

This PR removes the use of BigUint64Array and BigInt64Array as Safari 14 does not support them.
I have also run all the u64 and i64 tests and they work as expected.

Thanks for the PR here on this, but I think that much of this can be simplified. It looks like this is having numbers travel through the u32 array but I don't think that's necessary if the numbers are already manually split. Additionally I don't think the u64 conversion "shims" should really be necessary any more.

Sorry for the late response, life gets in the way sometimes.
I think you're right about the U32 Array, I can remove those.
In regards to the u64 conversion shims, I can remove those too, just need to do some testing.
Thanks for the feedback.

Hi all - this PR looks very close to be doing done, is there anything I can help with here to get it over the line?

This got fixed in #3037.


Update readme remote

@doneill Please review the changes made in README files

@mani8177 Updates look good, will merge


The debugger not working on client side file (Firefox)

Describe the bug
This is only a bug on Firefox and not Chrome
When creating a launch.json file in vscode we can set configurations to attach vscode debugger to node and the browser.
this can be achieved by this
{
    "configurations": [
        {
            "name": "Launch Server",
            "request": "launch",
            "type": "node",
            "runtimeArgs": ["run","dev"],
            "runtimeExecutable": "npm",
            "skipFiles": ["<node_internals>/**"],
            "console": "integratedTerminal"
        },
        {
            "type": "firefox",
            "request": "launch",
            "name": "Launch Firefox",
            "url": "http://localhost:3000",
            "webRoot": "${workspaceFolder}",
        }
    ],
    "compounds": [
        {
            "name": "Compound",
            "configurations": ["Launch Server","Launch Firefox"]
        }
    ]
}

now by running the Compound runner, we can see vscode and Firefox working together on the breakpoints, but unfortunately, the break points don't work on client-side code in files like +layout.ts
-- test 1
Browser => Firefox 122.0.1 (64-bit)
OS => Windows 11 build 22621 WSL2
-- test 2
Browser => Firefox 123.0b8 (64-bit)
OS => MacOS Sonoma 14.2.1

Reproduction
use this lunch config
{
    "configurations": [
        {
            "name": "Launch Server",
            "request": "launch",
            "type": "node",
            "runtimeArgs": ["run","dev"],
            "runtimeExecutable": "npm",
            "skipFiles": ["<node_internals>/**"],
            "console": "integratedTerminal"
        },
        {
            "type": "firefox",
            "request": "launch",
            "name": "Launch Firefox",
            "url": "http://localhost:3000",
            "webRoot": "${workspaceFolder}",
        }
    ],
    "compounds": [
        {
            "name": "Compound",
            "configurations": ["Launch Server","Launch Firefox"]
        }
    ]
}

Logs
No response
System Info
System:
    OS: Linux 5.15 Ubuntu 22.04.3 LTS 22.04.3 LTS (Jammy Jellyfish)
    CPU: (20) x64 12th Gen Intel(R) Core(TM) i7-12700KF
    Memory: 10.24 GB / 15.55 GB
    Container: Yes
    Shell: 5.8.1 - /usr/bin/zsh
  Binaries:
    Node: 20.10.0 - ~/.volta/tools/image/node/20.10.0/bin/node
    npm: 10.2.3 - ~/.volta/tools/image/node/20.10.0/bin/npm
    pnpm: 8.14.0 - ~/.volta/bin/pnpm
    bun: 1.0.14 - ~/.volta/bin/bun
  npmPackages:
    @sveltejs/adapter-auto: ^3.0.1 => 3.0.1
    @sveltejs/adapter-node: ^2.0.2 => 2.0.2
    @sveltejs/adapter-static: ^3.0.1 => 3.0.1
    @sveltejs/kit: ^2.0.6 => 2.0.6
    @sveltejs/vite-plugin-svelte: ^3.0.1 => 3.0.1
    svelte: ^4.2.8 => 4.2.8
    vite: ^5.0.12 => 5.0.12
-------------------------------------------------------
System:
    OS: macOS 14.2.1
    CPU: (8) arm64 Apple M2
    Memory: 74.22 MB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 20.9.0 - ~/.nvm/versions/node/v20.9.0/bin/node
    npm: 10.1.0 - ~/.nvm/versions/node/v20.9.0/bin/npm
  Browsers:
    Chrome: 121.0.6167.160
    Safari: 17.2.1
  npmPackages:
    @sveltejs/adapter-auto: ^3.0.1 => 3.0.0
    @sveltejs/adapter-node: ^2.0.2 => 2.0.0
    @sveltejs/adapter-static: ^3.0.1 => 3.0.0
    @sveltejs/kit: ^2.0.6 => 2.0.3
    @sveltejs/vite-plugin-svelte: ^3.0.1 => 3.0.1
    svelte: ^4.2.8 => 4.2.8
    vite: ^5.0.12 => 5.0.10

Severity
serious, but I can work around it
Additional Information
No response

+1