Bug: authorization using asterisk (*) only works one level

PHP Version
8.3.13
CodeIgniter4 Version
4.5.5
Shield Version
1.1
Which operating systems have you tested for this bug?
Linux
Which server did you use?
fpm-fcgi
Database
SQLite3, MariaDB, Postgres
Did you customize Shield?
No
What happened?
Assigning permissions to a group using asterisk (*) does not work with multiple level properties (I suspect this limitation is related to settings library Known Limitations. But it works with one level only, but, unfortunately, shield documentation does not mentions that):
    public array $permissions = [
        'admin.access'        => 'Can access the sites admin area',
        'admin.settings'      => 'Can access the main site settings',
        ...
        'test.permissions.one' => 'Can access permission one',
        'test.permissions.two' => 'Can access permission two',
    ];

        'user' => [
            'test.*', // does not work
        ],

OR even:
        'user' => [
            'test.permissions.*', // also does'n work
        ],

Steps to Reproduce
Add the above config AuthGroups config class. try to check for authorization withing a controller:
if (auth()->user()->can('test.permissions.one')) {
    return "You CAN test.permissions.one!";
} else {
    return "You CAN'T test.permissions.one!";
}

Expected Output
"You CAN test.permissions.one!"
Anything else?
IMHO, this limitation in settings library is very counterproductive for shield users.

Hello, I tried to fix the issue
This is what I did:
Modified the can method in the Authorizable trait to handle multi-level permissions with wildcards. This change allows for more flexible permission checks, including nested permissions like 'test.permissions.*'.
I also created pull request: https://github.com/codeigniter4/shield/pull/1225

[!CAUTION]
Disclaimer: This fix was created by Latta AI and you should never merge before you check the correctness of generated code!
The fix provided by Latta AI might not be complete and it can serve as an inspiration.

This bug was fixed for free by Latta AI - https://latta.ai/ourmission
If you no longer want Latta AI to attempt fixing issues on your repository, you can block this account.

Did you add the test group to the $groups array? I'm asking because you don't mention it on your post.

 'user' => [
           'test.permissions.*', // also does'n work
       ],

This snippet seems from the $matrix array. The 'superadmin' group also uses the asterisk as a wildcard. If assigning an user as SA works, it probably is a config problem.

Did you add the test group to the $groups array? I'm asking because you don't mention it on your post.

No need. I'm not creating a new group, just new permissions...

This snippet seems from the $matrix array. The 'superadmin' group also uses the asterisk as a wildcard. If assigning an user as SA works, it probably is a config problem.

The superadmin uses * for one level only, you can try with more levels (like 'admin.settings.theme') and it won't work:
    public array $permissions = [
        'admin.access'                => 'Can access the sites admin area',
        'admin.settings'              => 'Can access the main site settings',
        'admin.settings.theme'   => 'Can access the main site settings',

Hey!

No need. I'm not creating a new (user) group, just new permissions...

You're right, I misunderstood it. Sorry!
So, I spent a little bit of time on this issue, testing some examples and from what I gathered looking at the can() method, it checks if the provided can() permission is an exact match with $permissions array, if it isn't then, looks for the same permission a level up with a wildcard, however it would ignore any further levels like you mention.
$permissions with 'foo.bar.baz' and 'foo.biz.buz' and $matrix 'user' with 'foo.bar.*'  and 'foo.biz.buz'
$this->user->addPermission('foo.bar.baz');
$this->user->addPermission('foo.biz.buz');

// Searches for exact match on 'foo.buz' but since it doesn't find, searches for foo.* as you may have full access (*)
$this->user->can('foo.biz'); // False

// Searches for exact match on 'foo.biz.bus' but since it doesn't find, searches again for foo.* instead of foo.biz.*
$this->user->can('foo.biz.bus'); // False

I came up with a solution for this issue, if you want to test it on your side, you can find it here.
After the patch, it should be fine.
$permissions with 'foo.bar.baz' and 'foo.biz.buz' and $matrix 'user' with 'foo.bar.*'  and 'foo.biz.buz'
$this->user->addPermission('foo.bar.baz');
$this->user->addPermission('foo.biz.buz');

$group->can('foo.bar') // false, searches foo.bar, then foo.*
$group->can('foo.bar.baz') // true, searches foo.bar.baz, then foo.bar.*
$group->can('foo.bar.*') // true, searches foo.bar.*, then foo.bar.*

$group->can('foo.biz.buz') // true, searches foo.bar.baz, then foo.bar.*
$group->can('foo.bar') // false, searches foo.bar, then foo.*
$group->can('foo.biz.*') // false, searches foo.biz.*
$group->can('foo.bar.buz') // true, searches foo.bar.buz

Just keep in mind that can() only matches exact permission or the parent level with full access (*), say that you add test.permissions.item1, test.permissions.item2, test.permissions.item3, checking $user.can('test.permissions.*') will fail.

I came up with a solution for this issue, if you want to test it on your side, you can find it here.

Hello @CosDiabos
I've tried your proposed solution but it fails in some cases.
Let's consider the following settings in AuthGroups.php:
    public array $permissions = [
        'perm.lvl1a'          => '',
        'perm.lvl1a.p1'       => '',
        'perm.lvl1a.p2'       => '',
        'perm.lvl1b.p1'       => '',
        'perm.lvl1b.p2'       => '',
        'perm.lvl1c.lvl2a'    => '',
        'perm.lvl1c.lvl2b'    => '',
        'perm.lvl1c.lvl2a.p1' => '',
        'perm.lvl1c.lvl2a.p2' => '',
        'perm.lvl1c.lvl2b.p3' => '',
    ];
    ...
    public array $matrix = [
        'user' => [
            'perm.lvl1c.*',
        ],
    ];

Now the following controller (for authenticated users):
<?php

namespace App\Controllers;

class Home extends BaseController
{
    public function authorizationTest(string $perm): string
    {
        return auth()->user()->can($perm) ? "You have permission $perm" : "You do <b>NOT</b> have permission $perm";
    }
}

Will return:

You have permission perm.lvl1c.lvl2b (OK)
You do NOT have permission perm.lvl1c.lvl2b.p3 (not OK)
You do NOT have permission perm.lvl1c.lvl2b.p2 (not OK)
You do NOT have permission perm.lvl1c.lvl2b.p1 (not OK)

Also, setting
'user' => [
            'perm.*',
        ],

gives, (one example only):

You do NOT have permission perm.lvl1a.p1 (not OK)

Hello!
Yes, my initial patch didn't took in consideration those higher permissions like 'perm.*', I failed to mention that.
But it seems like you solved it yourself, hehe. I just updated my prev patch to handle all these type of cases and it's a basically the same approach as you had.


Incorrect styles of tooltip on dark theme

Bug
There is a white border and odd spacing around the claim preview tooltip when dark theme is active.
To Reproduce
Steps to reproduce the behavior:

Select dark theme.
Go to 'Any claim'.
Hover a any channel link / mention to see the tooltip.

Expected behavior
Consistency of styles on all themes.
Screenshots

Would like to take this up.
Thanks.

It's already fixed, see referenced PR

Sorry I missed that because of no discussion on this. I will look for others with no PRs. :)


Using your model on another project

Hello,
I have a speech recognition project (written in tensorflow), and I would like to know how could I be able to use your trained model inside my project. My initial idea is to use the layer before the last one of your model as a feature vector (that will work as a speaker identification).
Unfortunately, I am not quite familiar with tensorpack, and I am having trouble to do a simple task as: (1) load your trained model in tensorflow; (2) remove the last layer; and (3) use it as a feature extractor. Is it possible to do that? or your model needs the tensorpack to work?

me too XD


offline build option?

I found new version of SDK has introduced fri_vendor to auto download fri package when build. However, this leads to the PC must link to internet when build. But it's hard when PC link to the kuka.
So is there a method to check fri_vendor already download fri so cancel network connection.

oh thank you for raising this issue. We did introduce this to have a single source for the FRI, see https://github.com/lbr-stack/lbr_fri_ros2_stack/pull/85#issuecomment-1540553910
we will try to add this asap, sorry for the inconvenience

I use humble branch, version 1.2.3. Now use topics mainly.

do you run through python or cpp?

Yes, I use both of python and cpp. About this I have some thinking.
The FRI interface use the fixed frequency. If the interval is comed but ROS driver doesn't receive the further instructions, the FRI will make robot stop to prevent uncommanded movement just like emergency stop.
However, if the controller thread slower than commanding thread, the commanding thread will receive command with interval. Just like emergency stop and motion switch regularly. At the high frequency, this lead to noise. The most notable example is ROS driver(lbr_bringup) run with 100Hz and command topic publish topic with 50Hz. The motion state will change every 10ms (move->stop->move->stop...).
At the same time, the frequency fluctuation also lead to a tick noise. Because they are not synchronized precisely. Maybe some small motion buffer would be useful.
Besides, I'm looking for end-effort control method using this package. Do you have some good demo? I tried using kinpy but it's a bit slow to solve (about 10Hz).

oh thank you for raising this issue. We did introduce this to have a single source for the FRI for python bindings https://github.com/lbr-stack/pyFRI, see #85 (comment)
we will try to add this ASAP, sorry for the inconvenience.
Maybe in the meantime build via colcon build --packages-select name_of_the_package_you_want_to_re_compile, so only your package gets compiled.
May I ask:

what branch you are on @CarlDegio ?
are you using this stack through MoveIt, ros2_control, or topics?

Actually I also used moveit2 (servo) and want to accomplish an end-effort realtime control. But I found the slowly solution and some bug on foxy moveit2 servo so I give up it. It also has some frequency problem.
But the trajectory planning motion on moveit2 works well. Only hard to move in real time.

).

yes exactly the problem, this will be fixed tomorrow!

The motion state will change every 10ms (move->stop->move->stop...).

This will be fixed tomorrow

okay if you pull the latest changes you will notice smooth robot behavior even for an asynchronous control loop.
The joint names are now A1,... A7, there used to be a robot name prefix
There are some other changes which shouldn't affect you. I'll try to fix the build issue but might take some time.

okay if you pull the latest changes you will notice smooth robot behavior even for an asynchronous control loop.
The joint names are now A1,... A7, there used to be a robot name prefix
There are some other changes which shouldn't affect you. I'll try to fix the build issue but might take some time.

Thanks for your contribution! I believe lbr_fri_ros2_stack is expected to be the best choice for kuka robots. Now many students in our laboratory are using this package!

Besides, I'm looking for end-effort control method using this package. Do you have some good demo? I tried using kinpy but it's a bit slow to solve (about 10Hz).

I write a end control node with reference to demo advance c++, link here:https://github.com/CarlDegio/lbr_end_control.git

Very cool, what does it do? Happy to add this to the demos if you think this could be of general interest

this problem is fixed with #147. The FRI source is now downloaded before building from https://github.com/lbr-stack/fri.


Project opening with errors

System information
-OS: MacOS Big Sur 11.4

Target: android arm64
Bazel version: 4.2.1
Python version: 3.9.7
Unity version:2020.3.14

Describe the problem
Hello People I am trying to run example. I have cloned the project and also installed all the perquisites. but still after opening the project I am getting number of errors. specifically 77 issues every time I import it . I am adding screenshot for errors. can someone help me out?

I believe that's because you have the wrong Unity version.
You're supposed to run the project on 2020.3.8f1.

See https://github.com/homuler/MediaPipeUnityPlugin/issues/186#issuecomment-851170261

See #186 (comment)

Thank you so much. Its solved it.

Its not working for android build

See https://github.com/google/mediapipe/issues/54#issuecomment-705064578

See google/mediapipe#54 (comment)

I have tried with this also.  getting the same error.

Will you try bazel 3.7.2?
In any case, build for iOS will fail with bazel 4.2.1.
https://github.com/homuler/MediaPipeUnityPlugin#prerequisites

I am building for android only

python build.py build --desktop cpu --android arm64 --ios arm64 -v

It looks like you're building for iOS too, but even if you don't, just try it anyway.
If the problem continues, please file an issue to bazel.

Thanks build successfully after bazel version 3.7.2. but getting this error in unity editor.
Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Timestamp.cs(23,26): error CS0115: 'Timestamp.Equals(Object)': no suitable method found to override
can you tell me about this?

I'm not sure, but are you using a different branch or a different repository?
In fact, MediaPipe has a class called Object, the name of which conflicts with System.Object.
However, since this class does not exist in the master branch, I believe that this error does not occur usually.


Leave doc team and nixdoc maintainers

Thanks for all the fish :)

@infinisil yes please, go ahead on the nixdoc side as well.


Shorter stacktrace

Now the stacktrace looks like this instead of the whole type printing with
bytes.
julia> f1(du,u,p,t)
ERROR:
Stacktrace:
 [1] error() at ./error.jl:42
 [2] macro expansion at ./REPL[36]:2 [inlined]
 [3] macro expansion at /Users/scheme/.julia/packages/RuntimeGeneratedFunctions/fIcZp/src/RuntimeGeneratedFunctions.jl:80 [inlined]
 [4] macro expansion at ./none:0 [inlined]
 [5] generated_callfunc at ./none:0 [inlined]
 [6] (::RuntimeGeneratedFunction{(:_du, :_u, :_p, :_t)})(::Array{Float64,1}, ::Array{Float64,1}, ::Nothing, ::Nothing) at /Users/scheme/.julia/dev/RuntimeGeneratedFunctions/src/RuntimeGeneratedFunctions.jl:77
 [7] top-level scope at REPL[42]:1

julia> typeof(f1)
RuntimeGeneratedFunction{var"#_RuntimeGeneratedFunctions_ModTag", (0x47, 0x4a, 0x02, 0xf7, 0xc0, 0xd0, 0xdf, 0x8d, 0x8c, 0xac, 0x18, 0x52, 0x0f, 0x01, 0xbf, 0x94, 0xc0, 0xf6, 0xf1, 0x73, 0x89, 0x1b, 0xe5, 0x1d, 0x94, 0x75, 0xa9, 0xbf, 0x06, 0xa0, 0x96, 0xd5, 0xbb, 0xd3, 0xfa, 0x0d, 0xfd, 0xb4, 0x1f, 0xec, 0xfd, 0xb3, 0x6a, 0x05, 0x53, 0x92, 0x3a, 0x59, 0x0e, 0x35, 0x51, 0x05, 0xe8, 0xd4, 0x28, 0xec, 0x95, 0x97, 0x9b, 0x78, 0xe0, 0x1b, 0xc9, 0x9c), (:_du, :_u, :_p, :_t)}

Thank god.

Note that overriding show(::IO, ::Type{SomeType}) has a bit of a bad reputation of causing instability. See for example: https://github.com/PainterQubits/Unitful.jl/issues/321
Unfortunately I don't know exactly what's wrong with doing this, I just remember it being discussed on a few occasions.

Interesting :+1: Maybe it would be helpful to change the order of the type parameters such that the argnames are displayed more prominently in stacktraces, instead of implementing show(::IO, ::Type)?

Could be done. Or I thought sha512 seems like overkill anyway and we could just use sha1.  And also shorten the tag name to get something like
julia> typeof(@RuntimeGeneratedFunction(:((x,)->x+1)))
RuntimeGeneratedFunctions.RuntimeGeneratedFunction{var"#_RGF_ModTag",(0x19cc2a7a, 0xeba7d29f, 0x2c764791, 0x3c9e5a40, 0xfadc08ad),(:x,)}

change the order of the type parameters such that the argnames are displayed more prominently in stacktraces

I tried this in #16, along with the other ideas to make the types a bit less horrible.


Clarify JSON message separator

Hey all -
We were working on the Rust LS and there were some questions about possibly using a \n between the JSON messages.  I took a peak at http://www.jsonrpc.org/specification but nothing jumped out at me as this being allowed or disallowed.
Can you help clarify whether or not a carriage return between JSON messages is allowed?

@jonathandturner JSON-rpc doesn't specify how messages are transported. The transport is currently speced in the LSP but discussions in other issues showed that this has to me moved out of the LSP specification. Nevertheless it must be specified since client and server must speak the same transport. Currently the transport is specified using a header and a content part with a length encoding. This is documented here: https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#base-protocol
What is the reason that you want to use \n between the messages.

I wouldn't say this is a big issue, but some people working with the Rust LS thought it would help readability when you're trying to build the tools.
That said, what we really weren't sure about was what the spec said about it.  Like you say, both server and client have to agree.  We want the RLS to ultimately follow the spec as closely as we can, so we work with as many tools as possible.

@jonathandturner I think can be made strictly compliant if you include the '\r\n' as part of the content, for example:
Content-Length: 5\r\n
\r\n
{ }\r\n

The content will then be { }\r\n which should be fine in terms of JSON parsing since it's just extra whitespace.
If on the hand, you specify the content to just be { } , the \r\n will be left hanging, and will be included in the Header Part. The header part is made of header fields though, and it requires at least one header field. So if an  \r\n line is encountered straight away, that would be an error, even if an easily recoverable one (ignore the line). Either way no need to be confusing the client.

To paraphrase this a bit more formally, what are whitespace requirements for the content part? Are trailing/leading whitespace allowed? Are internal \n allowed? I would say that the whitespace does not matter, because LSP uses JSON-RPC, which uses JSON, which says that whitespace is insignificant.
There is an orthogonal option to require (or recommend, or forbid, or not specify) that server messages always include trailing \n and never uses internal \n (while not restricting client messages). This may make client implementation easier, because than you can frame messages based on new lines, and not on the content lengths, and it might be the case that newline framing is easier or build in for a particular client.

Whoa, restricting the content part to not include \n?... That seems like a step too far.
@matklad What language/context do you have in mind, out of curiosity? Parsing the Content-Length headers and the content-part in a conformant way seems like a trivial task in any language... just a few lines of code.

I will close this one in favor of https://github.com/Microsoft/language-server-protocol/issues/86#issuecomment-257272415. I agree that the actual transport should not be part of the LSP specification and that we instead should specify n different transports where one or two are mandatory.


Feature/warcraftclient interface

Created an IWarcraftClient interface to allow support for mocking the client in unit tests. I also updated the unit tests to explicitly use the IWarcraftClient interface to verify that none of the original methods were missed.
Closes #50

This looks great, @Bwolfing!  Don't worry about the failed AppVeyor build.  That's not your fault.


Provide features of Eclipse Open Type

Finder currently only shows resources the same as the open resources Eclipse Command.
We should either combine into Finder or provide another dialog for the equivalent open type

Types are now included in the same view with resources.
Note, for now including only types for which there is a source attachment.


Add getLastName() method to Member.php

Add getLastName() method to Silverstripe\Security\Member.php to allow use of $LastName instead of $Surname in templates as it is a common mistake made
this is for issue #9219
as discussed in Slack on 04-Sep-2019
Fixes #9219

I have been requested to re-open this by people on Slack (05-Sep-2019) but cannot because I already deleted the fork it was made from.
Instead I have re-created it in PR #9222


Get Build logs when build is complete

Issue: #709
Probably want to make this a part of the websocket in the future. This PR should give us basic functionality to switch over to the web app in all situations 😄
Screenshot

- [x] I have run `rspec` and corrected all errors
- [x] I have run `rubocop` and corrected all errors
- [x] I have run `npm run test` and corrected all errors
- [x] I have tested this change locally and tried to launch the server as well as access a project, and with that at least one build
- [x] If there is an existing issue, make sure to add `Fixes ...` as part of the PR body to reference the issue you're solving

Just a comment: can we force logs to be displayed using monospace font? That would make it more readable because many command line apps assume that.

@powerivq Yeah i'm sure we'll use something like that. I think there is a discussion to be had on how we styling the logs in general.


Support Module Federation + React SSR

🐛 Bug Report
There are problems when trying to integrate the loadable with a React application that uses Module Federation, especially if the application performs SSR with federated components.
Sample to reproduce
I created a repository that exemplifies the issues in two use cases, one with React 16 and the other with React 18. Here is the repo link
https://github.com/brunos3d/loadable-module-federation-react-ssr
How to run it
To make it work just clone it, navigate with the terminal to one of the example folders, install the dependencies with yarn, and then run yarn start, here are the commands to run quickly:
cd samples/loadable-react-16
yarn install
yarn start

About the sample repo
The project has a readme file that explains how to use it, but basically, there are two workspaces in the samples folder, two applications in each workspace.
Expected behavior
In both samples the expected result is the same: render the app1 on the server side consuming the Content component that is federated by app2 application using Module Federation and importing it using loadable. The component must be delivered to the client side statically and must be hydrated so that it can be reactive whenever the user changes the text input.
Workarounds and hacks
I worked alongside @ScriptedAlchemy so that we could identify a way to make this work and we created some workarounds in the examples to make this work. They are described/listed here, I hope that these applied hacks can be useful to solve the problem natively. The places that have the application of these workarounds are marked with the following comment // ================ WORKAROUND ================.

@theKashey So the issue here is that loadable is using require.resolveWeak, we need a way server-side to "flush chunks" in such a manner that the federated require call still exists.
If we do if(notbrowser) {require('app2/thing')} and loadable(import(app2/thing)), then loadable works server side since webpack sees the require call as an eager import and will hold startup till those additional chunks are loaded.
Would it be possible to add a federated: true flag to loadable which in turn injects a require() instead of require.resolveWeak on a case-by-case basis?

To clarify - there is no need to change existing code, only add extra explicit require into server bundle. I am correct?

To get us unblocked, through the least path of resistance - that's the idea.
ResolveWeak tells webpack "chunk is already in the graph" - in the case of a federated import, webpack is aware that it cannot boot the application without first having the sync import already resolved (the federated module) but since loadable was primarily designed for inter-graph module calling - require.resolveWeak doesn't have the module ID since nobody has 'require()' it to begin with.
While Id like to keep the discussion going, perhaps on another thread about better integration of chunk flushing between host remote pairs - we can make it functional by explicitly requiring the federated module and let webpack internally handle all the preloading that we normally have to make lodable and limitChunkCount plugin do.
So if babel did something like this, just for server builds.
// samples/loadable-react-16/app1/src/client/components/App.tsx

const LoadableContent = loadable(() => import('app2/Content'), {
  fallback:
loading content...
,
});

if (typeof window === 'undefined') {
  require('app2/Content');
}

More precisely:
import loadable from '@loadable/component'
const OtherComponent = loadable({
  chunkName() {
    return 'App1-Content' // need a solve to map this to remove federated chunk stats, but out of scope
  },
  isReady(props) {
    if (typeof __webpack_modules__ !== 'undefined') {
      return !!__webpack_modules__[this.resolve(props)]
    }
    return false
  },
  requireAsync: () =>
    import(/* webpackChunkName: "OtherComponent" */
    './OtherComponent'),
  requireSync(props) {
    const id = this.resolve(props)
    if (typeof __webpack_require__ !== 'undefined') {
      return __webpack_require__(id)
    }
    return eval('module.require')(id)
  },
  resolve(isFederated) {
if(isFederated) {
  return require('App2/Content') // the original import requested, webpack now "sees" it and will delay startup till chunk is ready In host.
}
    if (require.resolveWeak) {
      return require.resolveWeak('./OtherComponent')
    }
    return require('path').resolve(__dirname, './OtherComponent')
  },
})

Perhaps a magic comment marker could be used if you need a way to parse and know the difference between a internal normal module and a remote imported module.
but the idea i had for users would be

loadable(import('App2/Content'), {federated: true});

Which would produce a transpiled loadable function that uses require instead of require ResolveWeak.
Im not sure if requireSync also needs to be adjusted, but we should be able to test and fiddle with it quite quickly if it does require any additional adjustment. I do believe that given I can just require() it manually in the file - as long as we put require somewhere, webpack will pick it up and ensure that App2/Content is already preloaded before the host entry point is allowed to call its entry point module.

Its been a while since my universal days, but do you have a way to know if loadable is processing common.js or browserjs builds during transform? This works for the server, but the reason we even used resolveWeak was to prevent webpack from un-splitting the client bundle.
We could do dead code elimination if we need it, so babel transforms and if(!LOADABLE_SERVER) could be transformed by DefinePlugin to false so webpack removes the reference - so we still get async loading in browser but front/preloading of federated modules on server where Suspense is not yet possible

Ok, I’ve got the idea - Webpack should have remotes loaded before it can handle stuff contained in them.
Would an explicit command to load all known loadables be enough, the same way clientside is waiting for stuff to be loaded?
Ie ‘ chunkExtractor.requireEntrypoint({federated:true})’
question:

why you talk about sync requires. Should it be dynamic import I have to await for?

if you can wait for the dynamic import then yeah that will work - if it needs to be "sync" like resolveWeak does - then it can be require. But if you can await that dynamic import then we can absolutely use it.
Yes webpack will or should load its remotes required upfront or as needed as long as it is aware of them (sees import or require) in the tree.
The issue I ran into with loadable was there's technically two parts, the remoteEntry.js file and the remote chunk you want, so webpack can hold for both but in how loadable works right now we would have to ensure there's some location where federated imports are required in some way, not weak resolved. If loadable can wait on a promise then we can just return import() otherwise we would make a sync require instead of a resolveWeak

Would using a sync require() have implications on runtime performance?
e.g. a require() would mean that all this must be done up-front (at app bootup), but a import() would mean that we'd be able to resolve federated imports at any point during runtime with no impact on the running app's process (via the non-blocking import)

Yeah a sync require would mean a blocking import - however, this has often been the case for non suspense react render tools. ResolveWeak is sync because we force the chunks back into the main chunk in order to ensure everything is there that needs to be before attempting a single render pass. We can await a async import like Kashey suggested but this is still a blocking operation because no element can be a promise once the render begins.
With that said, we can mitigate concerns around the overhead of pulling federated code over the network, depending on your setup.
At lululemon we are going to use EFS like a mounted volume in the VPC so MF can read a "disk" instead of fetch a string from S3, since s3 is way slower and efs has tested to take like 5ms to pull a 1mb chunk.
If you're on persistent servers like docker, there's more options to tamp down this delaying response times.
If we do a pre-pass render to flush out used imports, that's also an option but I'd suggest benchmarking to validate that in effort to pull modules a bit lazier, we don't end up adding more execution overhead.
This is the problem with sync renders. Before we can walk the tree at all, anything that might be in the tree has to be ready.
However, how I designed node federation is to behave like an async file read when require is called. So if we can use import(), the upfront cost would be reduced and when the file is actually needed - the webpack runtime can read the file on demand.
There is still the potential for some block time somewhere tho because eventually we must return a sync module graph, at least as far as react is concerned.
At the webpack runtime level we can be lazier.
We can also strike a balance on the chunking algorithms. So if preload is required, we are not loading like 50 little files - but can tell webpack to join small chunks together so there's less to pull.
I'd rather pull 10 10kb files than 100 1kb files. Server side we are not as limited on network and bandwidth, so pulling say 1mb - the http handshake probably is the majority of the delay and the download is extremely fast.
I'd also weigh up the longevity of sync renders at your company.
Could some block time if need be be acceptable for a shorter period of time if the general idea is to unlock more powerful architectures that are not possible without a solution right now. Is it a years long mission to move the important apps to v18 if the host is v18 then it's nonblocking even with v17 remotes since the apis match up.
Lastly, I do think wall time can be reduced quite a bit if we were to handle multiple async parts at once. Like fetch data + preload modules + some other async. Then promise all it.
I've done this with nested render passes in the past and most the time it was my api calls and secrets manager that took longer. So by the time all the other parts were done, MF was already ready.
Still you'd only be as fast as the slowest promise, but you could do as much work as possible in parallel so it's not a waterfall

Kashey came up with the concept of preheating, the idea being you promise all some deps then on next tick, kick start the render.
Which reduces hammering memory pressure all at once.
All this said, if we can use import() and await it in loadable, we can optimize or at least allow the application to kickstart, just not start rendering.
For things like data loading that would be perfect, webpack can warm up while the application is busy fetching route level data since data must resolve before render can begin

Not sure if I follow as the following code is equal
// https://github.com/gregberge/loadable-components/blob/3ec9b6400972c5a8bcd860ffbb9199dabaa2186d/packages/server/src/ChunkExtractor.js#L380
  collectChunks(app) {
    return <ChunkExtractorManager extractor={this}>{app}</ChunkExtractorManager>
  }

// https://github.com/brunos3d/loadable-module-federation-react-ssr/blob/3826ae58aae70fe63314d1f3163b68b8009d76f0/samples/loadable-react-16/app1/src/server/renderAndExtractContext.tsx#L31-L41
  const markup = renderToString(
    <ChunkExtractorManager {...{ extractor: chunkExtractor }}>
      <App />,
    </ChunkExtractorManager>,
  );

PS: watch for line ending in your case, there is some unexpected stuff (,)

Hello, folks. I just created a PR that adds a new option to babel-plugin called moduleFederation, it makes Module Federation compatible with loadable.
Here is a branch with the changes to test this fix.


[WIP] JSON_JQ inside DO_WHILE task

Hi @apanicker-nflx  @aravindanr , There is a bug in do-while task when json_jq task is being used as loopOver task.
The reason being, json_jq has written task execution logic as a part of start method only. So if that is used as one of the loopOver tasks then do-while task wont wait for any task after the json-jq task and schedule a next iteration.
Consider a scenario where loopOver task has three task
HTTP--> JSON_JQ--> SIMPLE
Here the do-while task does not wait for SIMPLE task to get scheduled since JSON_JQ start method has execution logic and it immediately completes.  Now there can be two ways to fix this that I can think of,

Rename the start method with the execute method.
Write logic in do-while for this kind of scenario. I have written a comment that I will put into the code once we finalize the approach.

HTTP task also does same thing but do-while works in that case because http task goes into the queue before even calling the start method. If we make HTTP task sync then this issue we can reproduce with http task also.
cc @v1r3n @evgvain

@manan164 I believe this is fixed in this PR, https://github.com/Netflix/conductor/pull/3072


Typings for Cache.Createoption

In the typings, the cache  is expecting an object that not includes a Create method. It's correct? What's the right way to use it with Typescript?
export interface Cache<K, V> {
  get(key: K): V;
  set(key: K, value: V): void;
  has(key: K): boolean;
}

export type Serializer = (args: any[]) => string;

export interface Options<F extends Func> {
  cache?: Cache<string, ReturnType<F>>;
  serializer?: Serializer;
  strategy?: MemoizeFunc;
}

The tslint error output:
Argument of type '{ cache: { create(): { has(key: any): boolean; get(key: any): any; set(key: any, value: any): void; }; }; }' is not assignable to parameter of type 'Options<() => string>'.
  Types of property 'cache' are incompatible.
    Type '{ create(): { has(key: any): boolean; get(key: any): any; set(key: any, value: any): void; }; }' is not assignable to type 'Cache<string, string>'.
      Object literal may only specify known properties, and 'create' does not exist in type 'Cache<string, string>'.ts(2345)

Looks like there is the same bug for Flowtype either (see flow-typed repo, maybe automatic conversion from TS?). Documentation and source code use create.

I've created this PR: #80 which will fix it.

I guess it should be closed because https://github.com/caiogondim/fast-memoize.js/pull/80 has fixed it.


Difficulty installing BAB

Dear Shriver,
For a project I want to use DNNV, and specifically BaB. I follow your installation guide, namely creating a python3.7 env and then use pip to install dnnv.
Everything goes right and I can install reluplex for instance without issues. When I try to install bab however, I get the error pasted bellow.
It seems to be an issue with the dependency on the gurobi installer.
Do you know how I can solve this?
Thanks in advance!
A

cd /home/bosmanaw/NAS-NNV/.venv/verifier_virtualenvs
rm -rf bab
python -m venv bab
Error: Command '['/home/bosmanaw/NAS-NNV/.venv/verifier_virtualenvs/bab/bin/python', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
Traceback (most recent call last):
File "/home/bosmanaw/NAS-NNV/.venv/bin/dnnv_manage", line 8, in
sys.exit(_main())
File "/home/bosmanaw/NAS-NNV/.venv/lib/python3.7/site-packages/dnnv/_manage/main.py", line 95, in _main
return args.command(**params)
File "/home/bosmanaw/NAS-NNV/.venv/lib/python3.7/site-packages/dnnv/_manage/linux/init.py", line 18, in install
import_verifier_module(verifier).install(environment)
File "/home/bosmanaw/NAS-NNV/.venv/lib/python3.7/site-packages/dnnv/_manage/linux/verifiers/bab.py", line 163, in install
ProgramDependency("grbgetkey", installer=gurobi_installer),
File "/home/bosmanaw/NAS-NNV/.venv/lib/python3.7/site-packages/dnnv/_manage/linux/environment/base.py", line 94, in ensure_dependencies
self.ensure_dependency(dependency)
File "/home/bosmanaw/NAS-NNV/.venv/lib/python3.7/site-packages/dnnv/_manage/linux/environment/base.py", line 87, in ensure_dependency
dependency.install(self)
File "/home/bosmanaw/NAS-NNV/.venv/lib/python3.7/site-packages/dnnv/_manage/linux/environment/dependencies/base.py", line 39, in install
self.installer.run(env, self)
File "/home/bosmanaw/NAS-NNV/.venv/lib/python3.7/site-packages/dnnv/_manage/linux/verifiers/bab.py", line 137, in run
raise InstallError("Installation of bab failed")
dnnv._manage.errors.InstallError: Installation of bab failed

How did you create the virtual environment? When installing a verifier, we create new verifier specific environments, but that seems to fail here due to the absence of ensurepip. I'm surprised that this is missing, since I assumed it is required to build the virtual environment in which you installed dnnv, so could you describe the steps you took to create the environment and install dnnv?

I tried two ways.
Using my alias:
python3.7-env='python3.7 -m venv .venv && source .venv/bin/activate && pip install --upgrade pip && pip install --upgrade setuptools wheel'
And using your installation guide:
python3.7 -m venv .venv
. .venv/bin/activate
pip install --upgrade pip flit
flit install -s
It did give an error saying it did not recognise -s in flit install.

Very interesting. The flit error suggests to be that it doesn't like something about the install. Maybe using python3 -m pip ... instead of just pip could fix it?
Could you send some more information about your system? OS, python version, and maybe how you installed python? And the output of python -c "import sys;print(sys.version)"?

Weirdly enough, I upgraded ensurepip after creating a new enivironment and the issue went away. I say weirdly, because the output said all requirements were met, yet when I make a new environment the same error occurs.
Anyway, thank you for your help! Its very much appreciated.


Minor fix (proposal)

It seemed like one of those Markdown links was still broken even with this PR since I made a big parenthesis mess initially. Thanks for bringing my attention to it, i think it's fixed now.


resolve warnings about casing in Dockerfiles

I've been seeing this build warning in logs here:
 2 warnings found (use --debug to expand):
 - FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 37)
 - FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 70)

(example build link)
That comes from BuildKit's build checks (https://docs.docker.com/reference/build-checks/). Details on that specific warning: https://docs.docker.com/reference/build-checks/from-as-casing/.
This fixes it, to remove a source of noise in logs (and because I agree with the suggestion that capitalizing keywords approves readability a bit).

The notebook builds should hopefully be fixed once https://github.com/rapidsai/cuspatial/pull/1404 is merged

/ok to test

A couple of cuspatial notebooks are still failing. I've documented those in https://github.com/rapidsai/cuspatial/issues/1406

Tests are passing here... looks like the fixes from #690 helped!

/merge

Thanks James and Kyle! 🙏


Syntax error with v2.0.1

I just updated from v2.0.0 to v2.0.1 and my code breaks with the following error:
client.ts:33 SyntaxError: The requested module '/node_modules/.vite/svelte-previous.js?v=46a34aac' does not provide an export named 'withPrevious'
I was using usePrevious before and switched to withPrevious. When switching back to deprecated usePrevious, the code works as expected.

Can you help me check if it's a caching issue? Try removing node_modules and re-installing your dependencies again.
I'm not able to reproduce the issue, even with the REPL.

Seems to be a caching issue indeed, cannot reproduce it anymore either. Thank you!


[Loc] added updatedtosdkstyleerror

This PR fixes #

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 42.39%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
27557

Relevant Lines:
60777

💛  - Coveralls


Overhaul insert.rst

Specifically:

Correct use of RST labels

Restructure to make better sense

Parameters now appears under Synopsis

The caution about dynamic selects has been moved to an admonition further up the page (where it is more relevant)

Copyedits for text to improve correctness, clarity, and style (e.g., referring to things as "statements", switches to active voice, resolving indeterminate references)

Fix ambiguous use of WITH in ON CONFLICT DO UPDATE SET section (closes https://github.com/crate/crate/issues/11387)

Improve use of SQL examples

Consistent use of uppercase for SQL reserved words

Better (more descriptive) use of table names, column names, and so on

@mfussenegger can you verify this PR fixes https://github.com/crate/crate/issues/11387, please?

I pushed a fixup commit. I am copying the commit message here so it is easier to read and so that it will be easy to find after I eventually rebase to squash

Details:

Added RST labels to compatibility.rst so that I could add a cross-reference to this document.

Added RST labels to dml.rst for the same reason.
While I was in that file, I corrected the SQL examples to use upper-case for reserved keywords.
I also added a cross-reference back to insert.rst syntax doc.

Reworked my changes to insert.rst.
As suggested, I took the time to test my understanding of this feature through direct experimentation.
The ability to specify columns in the ON CONFLICT clause implied (to me) that there is some choice available, which is incorrect. With CrateDB, theON CONFLICT columns must always exactly match the primary key.
This apparent redundancy confused me, so I conducted the same experiment with PostgreSQL to better understand how PostgreSQL implements ON CONFLICT and how this feature is used.
Eventually, I realized that PostgreSQL allows you to specify columns in the ON CONFLICT clause because PostgreSQL supports a range of different constraints that CrateDB does not support.
Because CrateDB does not support these constraints, the ability to specify columns in the ON CONFLICT clause is redundant but also necessary for syntax compatibility.
The only mention of this I could find in the existing docs was a brief list in compatibility.rst.
To address this issue, I have added a NOTE admonition to insert.rst which makes it explicit that CrateDB only supports ON CONFLICT with primary key constraints and that the conflict_target must always exactly match the primary key.
Additionally, I realized the existing explanation of the ON CONFLICT clause does a poor job of explaining its purpose and operation. To address this, I made the following changes:

Reworded the intro to the ON CONFLICT section for clarity

Adjusted the first example so that it is a syntax example only. Previously, it mixed example SQL with syntax grammar.

Added an example query that demonstrates how to use ON CONFLICT to perform an operation on the existing record. In this case, incrementing visits by one.
I took this example query from the existing upserts documentation in dml.rst. However, I found the query in dml.rst confusing because it specifies two values for last_visit (one in the INSERT and one in the DO UPDATE), both different. This makes no sense in practice.
I fixed this by modifying the query in both places so that the first example only increments visits (demonstrating the ability to reference the existing value).
I then modified the second example in insert.rst so that it demonstrates the proper use of excluded to overwrite last_visits (mirroring the examples in the upserts doc).

I added an explicit description of what each query does to better guide the reader.

Added a cross-reference to the upserts doc.

Rewrote ON CONFLICT DO NOTHING to correct my previous mistake.
I added a NOTE admonition to explain that the conflict target is optional, but must match the primary key if specified.

squashed and updated commit message to reflect sum changes


change pgrep to fix issue for kube-apiserver

Related to https://github.com/rancher/rancher/issues/32935

Can we run some tests based on this ticket rancher/rancher#26598 to ensure we dont hit problems?

I created dummy processes on worker node with arguments --kube-apiserver. This was causing failures in existing setup.
The fix ensured that such arguments will not interfere with cis scans.
The only scenario in which it will fail is if there are binaries named kube-apiserver running on the worker node, which normally would not be the case.

ok, can we please verify CIS scan tests for all the cluster types rke1/rk2/k3s are passing with the change

yes, i verified for all rke1/rke2/k3s as part of the test..

For some reason the drone check is not getting triggered and the merging is blocked on that. I tried updating the PR again to trigger the check, but did not help.
@prachidamle Can you please advise? If you have permission, maybe you can merge it as well.


Fix path to meilisearch_sdk in Document derive proc macro

See https://github.com/meilisearch/meilisearch-rust/pull/358#pullrequestreview-1182295596 for an explanation of the change.
Additionally, a couple of references to crate were left in the proc macro, which were also changed to ::meilisearch_sdk.

bors merge


Enable SourceLink

This PR enable SourceLink support for the Sutil project.
This helps as I can go to definition on any symbol inside my IDE (Rider) and see the code definition.

Thank you!

@PierreYvesR I'm going to merge this today. I would like to know if you're aware of the Dotnet.ReproducibleBuilds package, as mentioned here:
https://github.com/fsprojects/FSharp.Formatting/issues/788#issuecomment-1382869478
My understanding it "just" sets the same project settings that you've submitted here, but there may be more to it that's useful to us.

@davedawkins Yes, I am aware. However, the last time I checked it did not behave well with F# projects (something to do with the ContinuousIntegrationBuild flag breaking it when running it on Azure DevOps/GitHub).

@davedawkins There are more details at https://github.com/Zaid-Ajaj/Npgsql.FSharp/pull/101.
I've got to admit I haven't checked whether those issues have been fixed since.

I think it means we should just go with your patch - thanks for feeding back


feat: extend breadcrumb for custom divider and crumb

SUMMARY:

extend Breadcrumb to have custom divider and custom crumbs

GITHUB ISSUE (Open Source Contributors)
N/A
JIRA TASK (Eightfold Employees Only):
https://eightfoldai.atlassian.net/browse/ENG-68572
CHANGE TYPE:

[ ] Bugfix Pull Request
[x] Feature Pull Request

TEST COVERAGE:

[x] Tests for this change already exist
[ ] I have added unittests for this change

TEST PLAN:
Pull the PR branch and run yarn and yarn storybook. Verify the Breadcrumb component has the following story:

please run yarn test:update


gpt 4o amd mini?

.

What's the issue?  Both should be available when you have your OPENAI_API_KEY set...


Add hotupdatechunktemplateplugin tests

What kind of change does this PR introduce?

Add tests for two HotUpdateChunkTemplate plugins
Did you add tests for your changes?

This PR is only tests
If relevant, link to documentation update:

N/A
Summary

Based on the coveralls report, the JsonpHotUpdateChunkTemplatePlugin file has 75% test coverage.
https://coveralls.io/builds/9498055/source?filename=lib%2FJsonpHotUpdateChunkTemplatePlugin.js
Based on the coveralls report, the NodeHotUpdateChunkTemplatePlugin file has 73% test coverage.
https://coveralls.io/builds/9498425/source?filename=lib%2Fnode%2FNodeHotUpdateChunkTemplatePlugin.js
There are no JsonpHotUpdateChunkTemplatePlugin or NodeHotUpdateChunkTemplatePlugin specific test files - these are added in this PR and aim to achieve 100% test coverage.
Does this PR introduce a breaking change?

No
Other information
These tests are similar in structure to the test added for WebWorkerHotUpdateChunkTemplatePlugin in PR #3685

Thank you so much!


[stable/kapacitor] Add deprecation notice.

cc @scottrigby @Aisuko
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/mychartname])

/lgtm

@naseemkullah / @Aisuko Please follow https://github.com/helm/charts/blob/master/PROCESSES.md to deprecate charts.


2021.8 Changed VOLT const

with the new energy features in version 2021.8 VOLT has been renamed to ELECTRIC_POTENTIAL_VOLT

Thanks for catching that. I've staged the change in v0.5.0 and will release once I test on my setup. I'll setup a nightly pytest run against the latest home assistant release to try and catch things like this.

Hey can you create a pre-release for v0.5.0 that way I can have it update via hacs nice an easy as a beta test ;)

Done

Ok looks good. Opened new issue for additional 0.5.0


perf: track empty domains separately in topology

Fixes #N/A
Description
Tracking empty domains separately allows for more efficient anti-affinity checks when there are no empty domains.  This is a frequent operation when doing a large scale up of a deployment with self anti-affinity.
Using benchmarks with anti-affinity pods only, scheduling performance increases greatly:
name               old pods/sec  new pods/sec  delta
Scheduling1-12        71.4 ±62%    304.0 ±13%  +326.11%  (p=0.008 n=5+5)
Scheduling50-12       49.2 ±12%    295.2 ± 3%  +499.63%  (p=0.008 n=5+5)
Scheduling250-12       236 ± 4%      455 ± 3%   +92.83%  (p=0.008 n=5+5)
Scheduling500-12       226 ± 7%      364 ± 1%   +61.51%  (p=0.008 n=5+5)
Scheduling1000-12     74.4 ± 4%    349.6 ± 1%  +370.05%  (p=0.008 n=5+5)
Scheduling2000-12     21.7 ± 1%    186.8 ± 1%  +759.80%  (p=0.016 n=5+4)

How was this change tested?
Unit tests
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 80.37%

Totals

Change from base Build<PHONE_NUMBER>:
0.02%

Covered Lines:
7738

Relevant Lines:
9628

💛  - Coveralls


Add link to documentation

I struggeled to find the documentation, eventually finding a link in this PR: https://github.com/groveco/django-sql-explorer/pull/410#issuecomment-710662949
I think it would be helpful to put a link in the readme.

Fair point. I'm used to looking at the status icons in the readme for docs.


Type assertion for union types within iterators when returning functions

Bug Report
🔎 Search Terms
error 2345
type assertion in returned function
union type within iterator
🕗 Version & Regression Information
our typescript version 4.2.4
does also appear in "nightly"

This is the behavior in every version I tried, and I reviewed the FAQ for entries about union/iterator/return functions

⏯ Playground Link
type Animal = Spider | Dog

enum AnimalType  {
    'spider',
    'dog'
    }
interface AnimalBase {
    animalType: AnimalType
}

interface Spider extends AnimalBase{
    animalType: AnimalType.spider
}
interface Dog extends AnimalBase {
    animalType: AnimalType.dog
    bondsWithHuman: boolean
}

function getBondWithHumansFunction(animals:Animal[]):(()=>boolean)[]{
    //does also work with other iterators like filter/forEach
    return animals.map(animal=>{
        let animalCopy = animal;
        let animalCopy2 = {...animal}
        if(animal.animalType === AnimalType.dog){
            animal.bondsWithHuman //type check returns correct animal (dog)
            return ()=>doDogAnalysis(animal) // correctly detected dog
        }

        if(animalCopy.animalType === AnimalType.dog){
            animalCopy.bondsWithHuman //type check returns correct animal (dog)
            return ()=>doDogAnalysis(animalCopy) // wrong detected dog
        }

        if(animalCopy2.animalType === AnimalType.dog){
            animalCopy2.bondsWithHuman //type check returns correct animal (dog)
            return ()=>doDogAnalysis(animalCopy2) // wrong detected dog
        }
        else
            return ()=>false
    })
}

function doDogAnalysis(dog:Dog):boolean{
    return dog.bondsWithHuman;
}

Workbench Repro
🙁 Actual behavior
"animal" is correctly inferred
The animalCopies have been inferred correctly (animalCopy.bondsWithHuman does not assert)
The value in the returned function can't be inferred correctly.
It has to be checked again within the returend function to work properly
We found this in our React application when we tried to return mapped components with onClick functions.
🙂 Expected behavior
I would expect that either I have to check the value in the returned function in every case or that, atleast, the real copy of the value does not need a check/double check.
I think, this might be caused, because the copies can be changed later on in the code and therefore the values might have changed?

Duplicate of #9998.


Component 'AIRMapMarker' re-registered bubbling event 'topSelect' as a direct event

Component 'AIRMapMarker' re-registered bubbling event 'topSelect' as a direct event

Have the same issue. A problem appeared after I installed some pod dependencies and started using .xcodeworkspace instead .xcodeproject while linking react-native-charts-wrapper with xcode.

It is recommended to use Baidu's Echarts to replace the react-native-charts-wrapper, and maybe his function will be more robust

Remove RCT_EXPORT_VIEW_PROPERTY(onSelect, RCTBubblingEventBlock) in RNChartManagerBridge.h from react-native-charts-wrapper fixes the problem for me. While some feature may be not available.

Do you have any idea?

@vuadenthuj1 what version of the map module and react-native are you using?

I use react-native 0.50.3. "react-native-charts-wrapper": "^ 0.3.1" and "react-native-maps": "^ 0.18.3"

Try to update react-native and use the git version of react-native-maps. Let me know.

Do you have integrated successfully two libraries in a higher version?

with the maps a custom made one (uses linked in sdk)

what does that mean?

So you don't have any solution for this?

Did you try to upgrade as I suggested?

I updated react native 0.51.0 and react-native-maps 0.19 and error still appears

i get same issue with   "react-native-charts-wrapper": "^0.4.3" and     "react-native-maps": "^0.21.0"
@vuadenthuj1 are you done with it?

@hungdev It looks as though there is a collision with react-native-charts-wrapper. Do the following to fix this collisions:

Go to the node_modules/react-native-charts-wrapper/iOS
Run: grep -rn “onSelect” .
Replace all instances found of onSelect with onChartSelect
Go to the node_modules/react-native-charts-wrapper/lib
Replace all instances found of onSelect with onChartSelect

@cesartotvs  thank you so much. It worked.

Component 'AIRMapMarker' re-registered bubbling event 'topSelect' as a direct event , i am gettting this error and help me with solution


Merge linkedin:master

Merging in linkedin:master.
We are making NW/gobblin an almost-clone of LI/gobblin in order to continually pull the latest updates from upstream. In order to do so, we are moving all NW-specific code to gobblin-modules.
Please refer to this for seeing our diff vs LinkedIn (specifically the files changed): https://github.com/linkedin/gobblin/compare/master...NerdWallet:merge_linkedin?expand=1
We're going to have a few files different from master - these are needed to incorporate our modules repo in the build.

Accidental PR. Please disregard.


difference between 'influencer' and 'dominant'

In src/dataset_waymo.py, line 290, there is some comments as follows:
' # [id1, id2, label, relation_type].'
' # id1 always influencer, id2 always reactor'
' # interaction_label: 1 - bigger id agent dominant, 0 - smaller id agent dominant, 2 - no relation'
' # agent_pair_label: 1 - v2v, 2 - v2p, 3 - v2c, 4 - others'
I am confused about 'influencer' and 'dominant'. In my understanding, 'influencer' dominates the interaction. So why are there there cases in 'interaction_label' ?
Besides, when will the code used for generating the ground truth label released ?
Looking forward to your reply.

The interaction label which is a value in [0, 1, 2] is a redundancy designed for the ground truth label for the classification training. Examples are as follows:
[100, 0, 1, 1]
or
[0, 100, 0, 1]
As for the codes used for generating the ground truth labels, sadly we don't have a plan to release them yet. These codes are frequently updated in our later projects and will not be compatible with earlier ones. A basic generator we used in this paper is nothing more than a series of bounding boxes overlap checking.  Shoot me an email if you need more than a toy-level label generator.


Feature/audit

What
Initial attempt at audit package.

Need to merge in latest changes from master

The latest changes from go-ns master branch need merging in - hopefully not too painful!


Support a different default search engine, disable access to Google URLs

Upon install, this WebExt asks to access by default to a number of Google URLs. When adding a second search engine, the browser correctly asks for permission to access the new URLs.
It would nice allowing removing Google from the list of search engines this extension acts upon and remove the corresponding URLs from the allowlist.
The use case being: if I don't use Google at all, this extension does not need to have its URLs in the allowlist.
Thanks!

duplicate of #52
My opinion has not changed.


Can't install on ubuntu 12.04.5 LTS

I am running into an error while trying to install tensor flow on Ubuntu.

$  sudo pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl
Downloading tensorflow-0.5.0-cp27-none-linux_x86_64.whl (10.9Mb): 10.9Mb downloaded
Running setup.py egg_info for package from https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl
Traceback (most recent call last):
File "", line 14, in
IOError: [Errno 2] No such file or directory: '/tmp/pip-nulCWJ-build/setup.py'
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "", line 14, in
IOError: [Errno 2] No such file or directory: '/tmp/pip-nulCWJ-build/setup.py'
Command python setup.py egg_info failed with error code 1

The issue was solved by updating to the latest version of pip - however I'm getting a new error.
ImportError: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.17 not found

Yes, latest pip solves the first part. But the libc.so is bigger problem. It is non trivial hacks to give the one app newer glibc than the system one.
You may try recompile it on your system. But it may take some effort just to compile bazel, you will not have java8, nor newer versions of numpy nor anything else... Is upgrading to at least 14.04 LTS realy not an option for you?

I am sadly also in a similar situation trying to deploy on a nation-wide GPU cluster which is really the only access to GPUs that my research group has.  We have a module system that can give us access to plenty of modern tooling, but I only have access to glibc 2.12.  Installing binary bazel releases fail since they depend on glibc 2.14 and I have also been unable to build bazel 0.1.0/0.1.1/HEAD from scratch due to compilation errors.  For now I have given up on making TensorFlow work on the cluster pending the issue I filed with bazel.

welp... time for 14.04 I guess

Upgrading ubuntu is definitely the best way to go. But if not...
I would not upgrade the system libc.so on the shared cluster. It should be backward compatible but there are regression here and there. You can still make it work if you want to. If you grep libc from newer package [http://packages.ubuntu.com/trusty/libc6] (click on amd64). You can extract that deb. Then you can use LD_PRELOAD the files from content directory. See something like [https://rafalcieslak.wordpress.com/2013/04/02/dynamic-linker-tricks-using-ld_preload-to-cheat-inject-features-and-investigate-programs/] or [http://stackoverflow.com/questions/5223971/question-about-overriding-c-standard-library-functions-and-how-to-link-everythin].
Libc has pretty much no dependencies but kernel. I believe tensorflow does not need anything fancy new there. Newer libc in custom directory and LD_PRELOAD trick should allow you to run the bazel binaries from download as well as the tensorflow pip (you may not need to recompile anymore). Good for shared cluster with old system.
BTW: Google / bazel philosophy is to rebuild everything from sources (that's why bazel download so many git repos). That also means there are very little external dependencies. But yes, it depends on libc.

I don't have sudo permission, so updating or installing GLIBC is not possible. I tried extracting libc6 from debian package and set the path in LD_PRELOAD but it's not using that instead it always point to /lib64/libc.so.6(ImportError: /lib64/libc.so.6: version `GLIBC_2.17' not found) but my LD_PRELOAD is defined as /home/hpc/pr63so/ga93yih2/lib/libc.so.6

Does anyone who solve this?
I use cent os 6.x and it's glibc version is under the 2.12.
(tensorflow)[dev-srv /home/user/tensorflow]# yum info glibc
Loaded plugins: fastestmirror, security
Determining fastest mirrors
Installed Packages
Name        : glibc
Arch        : i686
Version     : 2.12

I download glibc-2.17-78.el7.x86_64.rpm in the Internet and uncompress rpm to /opt/tensorflow/glibc diretory.
(tensorflow)[dev-srv /home/user/tensorflow]# ls /opt/tensorflow/glibc/lib64/
ld-2.17.so               libanl-2.17.so   libcidn.so.1      libm-2.17.so           libnss_compat.so.2  libnss_files-2.17.so   libnss_nis.so.2         libresolv-2.17.so    libthread_db.so.1
ld-linux-x86-64.so.2     libanl.so.1      libcrypt-2.17.so  libm.so.6              libnss_db-2.17.so   libnss_files.so.2      libnss_nisplus-2.17.so  libresolv.so.2       libutil-2.17.so
libBrokenLocale-2.17.so  libc-2.17.so     libcrypt.so.1     libnsl-2.17.so         libnss_db.so.2      libnss_hesiod-2.17.so  libnss_nisplus.so.2     librt-2.17.so        libutil.so.1
libBrokenLocale.so.1     libc.so.6        libdl-2.17.so     libnsl.so.1            libnss_dns-2.17.so  libnss_hesiod.so.2     libpthread-2.17.so      librt.so.1           rtkaio
libSegFault.so           libcidn-2.17.so  libdl.so.2        libnss_compat-2.17.so  libnss_dns.so.2     libnss_nis-2.17.so     libpthread.so.0         libthread_db-1.0.so

Finally, I ran convolutional.py with LD_PRELOAD or LD_LIBRARY_PATH option and those neither helpful. Here is an error message.
(tensorflow)[dev-srv /home/irteam/tensorflow]# LD_PRELOAD=/opt/tensorflow/glibc/lib64/libc.so.6 python ./lib/python2.7/site-packages/tensorflow/models/image/mnist/convolutional.py
python: relocation error: /opt/tensorflow/glibc/lib64/libc.so.6: symbol _dl_starting_up, version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time reference

(tensorflow)[dev-srv /home/user/tensorflow]# LD_LIBRARY_PATH=/opt/tensorflow/glibc/lib64 python ./lib/python2.7/site-packages/tensorflow/models/image/mnist/convolutional.py
python: relocation error: /opt/tensorflow/glibc/lib64/libc.so.6: symbol _dl_starting_up, version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time reference

Does anyone who really solve this issue?

I am also eagerly waiting for a solution

I use OS X to install tensorflow, it's succeed,but when I use python to write first program,I find some error, who can help me?
there is error message:

import tensorflow as tf
Traceback (most recent call last):
File "", line 1, in
File "/Library/Python/2.7/site-packages/tensorflow/init.py", line 4, in
from tensorflow.python import *
File "/Library/Python/2.7/site-packages/tensorflow/python/init.py", line 13, in
from tensorflow.core.framework.graph_pb2 import *
File "/Library/Python/2.7/site-packages/tensorflow/core/framework/graph_pb2.py", line 8, in
from google.protobuf import reflection as _reflection
File "/Library/Python/2.7/site-packages/google/protobuf/reflection.py", line 58, in
from google.protobuf.internal import python_message as message_impl
File "/Library/Python/2.7/site-packages/google/protobuf/internal/python_message.py", line 59, in
import six.moves.copyreg as copyreg
ImportError: No module named copyreg

In addition, even loading both libc.so.6 and ld-linux-x86-64.so.2 doesn't work.
(tensorflow)[dev-srv /home/user/tensorflow]# LD_PRELOAD="/opt/tensorflow/glibc/lib64/libc.so.6 /opt/tensorflow/glibc/lib64/ld-linux-x86-64.so.2" python ./lib/python2.7/site-packages/tensorflow/models/image/mnist/convolutional.py
Segmentation fault

I think we do require glibc >2.17 at the moment. Closing for now but if someone has a solution for earlier versions, would be great to have it here.  Thanks!

Anyone able to find a solution for it ?

Managed to get it to build from source.
Overview of how to do it.
Install Bazel - (but not the latest version, because it apparently fails to compile tensorflow according to a ticket I saw there)
I used Build label: 0.1.1
Update pip, install wheels and setuptools
Check out tensorflow's latest version, modify tensorflow/tensorflow.bzl file
def tf_extension_linkopts():

return []  # No extension link opts

return ["-lrt"]  # No extension link opts

Then build according to the instructions on the source build page:
Also, on the instructions page (http://tensorflow.org/get_started/os_setup.md#installing_from_sources) you will see these three commands, but you have to add —config=cuda, like so:
Create the pip package and install
$ bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
$ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
The name of the .whl file will depend on your platform.
$ pip install /tmp/tensorflow_pkg/tensorflow-0.5.0-cp27-none-linux_x86_64.whl

My problem lies with old GLIBC version(2.11.3), and I tried installing bazel for which it requires a GLIBC version 2.14 or greater.
Any other solution?
Note: I can't update GLIBC version, because I am using a cluster system and naturally am not given a admin privileges.

I have this problem just now！Here maybe help you ！！ My system is ubuntu 12.04
Reference Linking：http://stackoverflow.com/questions/33655731/error-while-importing-tensorflow-in-python2-7-in-ubuntu-12-04-glibc-2-17-not-f
$ sudo pip install --upgrade virtualenv
$ virtualenv --system-site-packages ~/tensorflow
$ cd ~/tensorflow
$ source bin/activate
$ pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl
$ cd /tmp
$ wget http://launchpadlibrarian.net/137699828/libc6_2.17-0ubuntu5_amd64.deb
$ wget http://launchpadlibrarian.net/137699829/libc6-dev_2.17-0ubuntu5_amd64.deb
$ mkdir libc6_2.17
$ cd libc6_2.17
$ ar p libc6_2.17-0ubuntu5_amd64.deb data.tar.gz | tar zx
$ ar p libc6-dev_2.17-0ubuntu5_amd64.deb data.tar.gz | tar zx
$ cd -
$ LD_LIBRARY_PATH=/tmp/libc6_2.17/lib/x86_64-linux-gnu/ /tmp/libc6_2.17/lib/x86_64-linux-gnu/ld-2.17.so bin/python local/lib/python2.7/site-packages/tensorflow/models/image/mnist/convolutional.py

This may work for local pc but not for clusters or for those who don't have admin privileges.

You can install virtualenv locally:
pip install virtualenv --user. My problem is that the installation of tensorflow in virtualenv encounters maximum recursion depth exceeded:
        self.finalize_options()
      File "/home/phong/.local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/dist.py", line 257, in finalize_options
        ep.require(installer=self.fetch_build_egg)
      File "/home/phong/.local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.py", line 2029, in require
        working_set.resolve(self.dist.requires(self.extras),env,installer))
      File "/home/phong/.local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.py", line 580, in resolve
        dist = best[req.key] = env.best_match(req, self, installer)
      File "/home/phong/.local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.py", line 825, in best_match
        return self.obtain(req, installer) # try and download/install
      File "/home/phong/.local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.py", line 837, in obtain
        return installer(requirement)
      File "/home/phong/.local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/dist.py", line 272, in fetch_build_egg
        dist = self.__class__({'script_args':['easy_install']})
      File "/home/phong/.local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/dist.py", line 225, in __init__
        _Distribution.__init__(self,attrs)
      File "/usr/lib/python2.7/distutils/dist.py", line 287, in __init__
        self.finalize_options()
      File "/home/phong/.local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/dist.py", line 257, in finalize_options
        ep.require(installer=self.fetch_build_egg)
      File "/home/phong/.local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.py", line 2029, in require
        working_set.resolve(self.dist.requires(self.extras),env,installer))
      File "/home/phong/.local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.py", line 579, in resolve
        env = Environment(self.entries)
      File "/home/phong/.local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.py", line 748, in __init__
        self.scan(search_path)
      File "/home/phong/.local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.py", line 777, in scan
        for dist in find_distributions(item):
      File "/home/phong/.local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.py", line 1702, in find_distributions
        importer = get_importer(path_item)
      File "/usr/lib/python2.7/pkgutil.py", line 394, in get_importer
        importer = ImpImporter(path_item)
    RuntimeError: maximum recursion depth exceeded

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-E19HDw/numpy

I managed to have it running on a CentOS 6.7 without being admin, two solutions : http://stackoverflow.com/a/34897674/1990516
http://stackoverflow.com/a/34900471/1990516
:)

I was able to build bazel-0.4.1 and tensorflow-0.12.0rc0 from source, on CentOS 6.5, without having root privileges. And it seem to work OK with glibc 2.12, without any LD_LIBRARY_PATH or LD_PRELOAD tricks. Editing tensorflow/tensorflow.bzl is one of the options (but it might be not the only thing to do), but, personally, for me it was simpler to do the same thing in "gpu/CROSSTOOL.tpl#L59".

For those facing glib problem, switch keras config file to use Theano instead of Tensorflow. I did that and it solved my problem.

I am facing similar problems. I am trying to run TensorFlow at work, on my RHEL 6.8 box. IT will not let us use package managers, and we cannot upgrade the bundled python, or gcc.
I tried to get around this by installing Python 2.7, TensorFlow, and latest GCC locally on the box in /scratch
I update LD_LIBRARY_PATH to point to my own copy of GCC shared libraries. It seems that tensorflow does not care about LD_LIBRARY_PATH, and it is searching in /lib64/libc.so.6 for GLIBC_2.16

You need to update glibc or update Ubuntu to 14.04. It will work like charm.
On Apr 5, 2017 3:21 AM, "wilderfield"<EMAIL_ADDRESS>wrote:

I am facing similar problems. I am trying to run TensorFlow at work, on my
RHEL 6.8 box. IT will not let us use package managers, and we cannot
upgrade the bundled python, or gcc.
I tried to get around this by installing Python 2.7, TensorFlow, and
latest GCC locally on the box in /scratch
I update LD_LIBRARY_PATH to point to my own copy of GCC shared libraries.
It seems that tensorflow does not care about LD_LIBRARY_PATH, and it is
searching in /lib64/libc.so.6 for GLIBC_2.16
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/53#issuecomment-291642438,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AMRpkFCPPL_mPr7GvDYhuKxqapUY7ceaks5rsrtsgaJpZM4GfDu8
.

Hey, guys. Here are the solutions.
`mkdir ~/glibc
cd ~/glibc
wget http://ftp.gnu.org/gnu/glibc/glibc-2.23.tar.gz
tar zxvf glibc-2.23.tar.gz
cd glibc-2.23
mkdir build
cd build
../configure --prefix=/opt/glibc-2.23
make -j4
sudo make install
export LD_LIBRARY_PATH=/opt/glibc-2.23/lib`
https://github.com/mind/wheels/issues/7

conda install tensorflow works for me

conda install tensorflow works for me too

conda install tensorflow work for me too!!!

conda install tensorflow and life is easy

I've tried conda install tensorflow and I'm still getting the same issue. GLIBC 2.17 not found.


InvalidTable isn't catching everything

InvalidTable searchings for strings like "Test cases", "keywords", etc, but doesn't  do an anchored search. Thus, a table named "Keywordz" passes since "Keyword" is part of the name.

A fix for this will be available in the next release (0.6)


Wrong format for bounding boxes

It seems that the network uses x1,y1,x2,y2 format for bounding boxes instead of x,y,w,h used in the paper. I think this is a pretty major difference that can affect training accuracy.
In x,y,w,h format two coordinates are used for centering and two for size, which presents clear separation and can be debugged easily. In the current format, all four coordinates are used for both centering and size, which makes it more difficult to debug.

Did you try it?

I haven't since I don't quite understand the whole codebase and it appears that quite a bit would have to be changed. In particular, it appears that cython code expects it in the current format and I don't have to access to cython source to change it.
It appears that this format was chosen in the fast-rcnn pytorch implementation or maybe even before, so probably would be difficult to change now.

Yeap, unfortunately this code is difficult to understand and modify. As I was looking for some localization models in pytorch, I found this repo https://github.com/amdegroot/ssd.pytorch. The model works better than faster r-cnn and the codebase is way easier to understand.
It seems that the ssd.pytorch models use x1,y1,x2,y2 format as weel https://github.com/amdegroot/ssd.pytorch/blob/master/data/voc0712.py#L81

I found cython source, so might try to change it later.


Update time-series-insights-explorer.md

Making one line more clear.

@ashannon7 : Thanks for your contribution to the Azure documentation! The author, @MarkMcGeeAtAquent, has been notified to review your proposed change.

#sign-off


todos-with-undo example use of distinctState doesn't work wrt to Completed todos

If I've understood correctly, using react-undo with the distinctState() filter means that if the action didn't result in a state change, it shouldn't change the undo state.
When I click on an already completed todo, the current example treats it like a mutating action and I have to hit 'Redo' for each time I clicked on the already completed todo, even though nothing 'really' changed.
Assuming this isn't the intended behavior it seems one could either put a check in the 'COMPLETE_UNDO' reducer to see if the todo is already completed, or make a custom filter that's smarter than distinctState().
I'm just starting with redux et. al so I'm not sure what the preferred solution might be.

Feel free to correct me if I misunderstood - Marking todo items as done should be added to the history, as it's an action the user takes, thus it should be undoable. If you want to prevent this, you can use the excludeAction helper.

As far as I understand, there is an issue when you have several COMPLETE_TODO actions in a row. You can't just exclude them all, only further actions without actual effect. How it can be done?

@just-boris I'm confused. If you exclude COMPLETE_TODO actions none of them should be added to the history. If you don't they will show up in the history, of course. And that's intended behavior in the example.

@omnidan okay, but can I dymamically exclude action based not only type but and current (beforeAction) state too. Something like this logic:
function filterActions(action, state) {
  // we are interested only in COMPLETE_TODO with uncompleted todos
  return action.type !== COMPLETE_TODO || !state.done;
}

Is there a way to get state to this filter?

@just-boris Yes, in your filter function you can do anything you want.
The signature of the function is function filterState(action, currentState, previousState) {. The distinct state helper looks like this:
(action, currentState, previousState) => currentState !== previousState

Does this help you? :grin:

Oh, sorry, I missed this section, while reading readme. Of course it helps, thank you!

You're welcome :smile:

The question I have (which I should have clarified) is should the 'todos-with-undo' example be updated? It uses the distinctState() filter, implying that it will deal with a COMPLETE_TODO action on an already completed todo, but it doesn't work that way.
If it should be updated, would it be better to handle this in the reducer:
case COMPLETE_TODO:
  if (state[action.index].completed === true) {
    return state
  }
  ... [existing sample code]

or would it be better to do it in a redux-undo filter as described above?

@deep108 I'm not sure I understand the issue. With the distinctState() filter, if the state is changed in any way, it will be stored in the history - that's intended behavior.
If you want to filter out additional actions, doing it in a redux-undo filter would probably be the best way to do it.

@omnidan What I see is that the todos-with-undo example doesn't seem like the best possible example in this particular case. If the result of an action like completing an already completed undo is essentially a no-op, as an end-user I wouldn't expect it to update history (or at least that's what I experienced when playing with the app). Nothing happens onscreen to indicate state changed either when you complete a completed todo, or when you undo back to essentially the identical state.
Completing a completed undo does change the state, so distinctState will do what it's designed to do, but in practical terms the state didn't really change. From a UI perspective, it doesn't seem ideal, and I thought it might be a good thing to deal with in an example.

@deep108 Ah, I get you now. Completing an already completed todo item is not possible (UI-wise) in this example, but you might want to do something like that in your app. Sure, then putting it into the filterAction would be the best way to do it.
Another way to work around this would be making sure there's nothing in (or a part of) the state that isn't reflected in UI. That way when the state changes something in the UI always changes too. (and you don't have a no-op from the UI perspective)
The example already does this, though, and unfortunately it still doesn't work because of the way Arrays work in JS. The best way (IMO) to fix this, is using immutables, then distinctState() will work fine even when the state "changed", as === will always return true when the states are (data-wise) the same.
Does this help/make sense to you?

@omnidan Yes, mostly. I wouldn't really want to do something like that in my own app. It's more that if I were writing a todo app, I wouldn't want completing a completed todo to change state, either as it relates to the UI or the undo history.
Immutables seem like a good solution (as they almost always are...).
Thanks.

@deep108 I understand where you're coming from, but completing a completed todo is not really possible unless you tweak the example or manually dispatch another complete action - so it wouldn't make sense to prevent it in the example.
If this is something you really need, using immutables or writing your own filter action will be your best bet. :smile:
I hope everything is clear now! :)

@deep108 I understand where you're coming from, but completing a completed todo is not really possible unless you tweak the example or manually dispatch another complete action - so it wouldn't make sense to prevent it in the example.

@omnidan Actually, that's the point I was trying to make. The todos-with-undo example does dispatch another complete action when you click on an already completed todo, and it has the side-effect of adding to the undo-history even though nothing really changed. I made things confusing by talking about the distinctState() filter.
The questions were should the example be updated, and if so what would be the best way to fix the problem?

@deep108 When you click on an already completed todo the example should mark it as uncompleted, which changes the state of the todo item to uncompleted. Is this not happening for you?

@omnidan it's not happening for me too.
todos reducer always marks todo as completed: https://github.com/rackt/redux/blob/master/examples/todos-with-undo/reducers.js#L30

even though nothing really changed.

It should make it “uncompleted”. If it doesn't, you're probably seeing the bug described in #795. It affects both the tutorial and todos-with-undo example and should be fixed in both. Let's discuss it in #795.

@omnidan @gaearon Sorry to keep beating this dead horse, but I don't think the problem is related to * #795. I'm able to reproduce the problem when showing 'All' todos or just 'Active'. As @mist123 points out the reducer for COMPLETE_TODO always sets 'completed' to true. There's no logic to un-complete a todo:
    case COMPLETE_TODO:
      return [
        ...state.slice(0, action.index),
        Object.assign({}, state[action.index], {
          completed: true
        }),
        ...state.slice(action.index + 1)
      ]

One way to fix this would be to change the reducer to toggle the state:
          completed: !state[action.index].completed

Another would be to put toggle logic in the Todo onClick prop and pass the new 'completed' state in the COMPLETE_TODO action. I made sample changes in this commit:

deep108/redux@ 0c1fa3e25988871c8fda2d65f440f9d934e85e82

First way is a little simpler, but the second has the advantage that you can tell what the new state will be by looking at the action. I suppose you could do it with an UNCOMPLETE_TODO action as well. Not sure if there's a canonical redux-y (redux-ist? redux-tionary?) way to do this.
Anyway, something like this would fix both the inability to un-complete todos, and any concerns about useless undo history accumulating when you click on already completed todos. I can put together a pull request if any of these make sense.

Let's keep it open for now then.
I'm releasing Egghead videos about Redux soon.
They feature this todos example (no undo though) and have different code, so I want our docs and examples eventually to use that instead.
I'll let you folks know when it's public.


Cursor pointer for clickable elements

WHY
BEFORE - What was wrong? What was happening before this PR?
See #4898 - the mouse cursor did not change to pointer for labels for checkboxes, but remained default. Elements that are clickable (as checkbox label are) should be cursor: pointer
AFTER - What is happening after this PR?
labels affiliated with checkboxes and radio buttons, as well as ranges, within form elements have the pointer mouse cursor:

HOW
How did you achieve that, in technical terms?
Added CSS to _form.scss addressing

checklists
single check boxes
single radio buttons
the „switch“ widget
the range input

The CSS is specific enough so that it should never apply to elements where it is not intended:

line 63 only to labels within a div.checkbox element
line 64 targets the switch field type, a little hacky but does the job
line 65 targets labels right next to a checkbox input
line 66 targets labels right next to a radio input
line 67 targets any range element - should be OK

Is it a breaking change?
No
How can we test the before & after?
Open a "Monsters" detail page in the Backpack demo and hover over the elements pictured above

A new inspection was created.

The inspection completed: No new issues

This looks awesome! Thanks @pekka 🙏 Much appreciated.
@jorgetwgroup could you please test this and give a green light if I should merge? Thanks!

Hi @pekka is working great, thank you very much
@tabacitu is ready to merge, is needed to say this need "npm run dev & npm run prod"
Cheers


Control not rendering properly

Are you including the CSS?

Her are the imports:
import React, { Component } from 'react';
import changeCaseObject from 'change-case-object';
import is from 'is'
import { render } from 'react-dom';
import 'react-dates/initialize'
import { DateRangePicker } from 'react-dates';
import { Button, Checkbox } from 'react-bootstrap';
import URLSearchParams from 'url-search-params'
import { apiCall } from 'app/api'
import Message from 'app/common/Message';
import moment from 'moment';
import Dropdown from 'app/common/Dropdown';
import SavedSearchInput from 'app/common/SavedSearchInput';
import { InteractionBar } from 'app/reusable/InteractionBar/index';
import { Notification } from 'app/reusable/Notification/index';
import { ConfirmModal } from 'app/reusable/ConfirmModal/index';
import * as API from './api';
import * as chart from './chart';
import 'react-dates/lib/css/_datepicker.css';
import './style';

This is due to the missing css in the latest version. I need to rerun and
prerelease but I would peg to 16.3 0.
On Sat, Feb 24, 2018, 2:41 PM Mike Hollibaugh<EMAIL_ADDRESS>wrote:

Her are the imports:
import React, { Component } from 'react';
import changeCaseObject from 'change-case-object';
import is from 'is'
import { render } from 'react-dom';
import 'react-dates/initialize'
import { DateRangePicker } from 'react-dates';
import { Button, Checkbox } from 'react-bootstrap';
import URLSearchParams from 'url-search-params'
import { apiCall } from 'app/api'
import Message from 'app/common/Message';
import moment from 'moment';
import Dropdown from 'app/common/Dropdown';
import SavedSearchInput from 'app/common/SavedSearchInput';
import { InteractionBar } from 'app/reusable/InteractionBar/index';
import { Notification } from 'app/reusable/Notification/index';
import { ConfirmModal } from 'app/reusable/ConfirmModal/index';
import * as API from './api';
import * as chart from './chart';
import 'react-dates/lib/css/_datepicker.css';
import './style';
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/airbnb/react-dates/issues/1045#issuecomment-368266038,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABUdtT6zPXstjz7rqkaBhvNG9bvuA0jHks5tYJARgaJpZM4SSEyD
.

Closing as a duplicate of #1044.

I have tried several different version since we found this problem yesterday and they are all doing the same thing.

@mike-hollibaugh 16.3.0 has the same problem for you?

Including 16.3.0? That one should be okay.
On Sat, Feb 24, 2018, 2:52 PM Mike Hollibaugh<EMAIL_ADDRESS>wrote:

I have tried several different version since we found this problem
yesterday and they are all doing the same thing.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/airbnb/react-dates/issues/1045#issuecomment-368266668,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABUdtcGtomQzdyaovayy9r8tDrHtQ0Odks5tYJKZgaJpZM4SSEyD
.

Ill give it a go.

We are having the same issue with 16.3.0 and 16.0.0.

Hello everyone!
Any news regarding this issue???

I had to rollback to version 15.4.3 to get it to work again.

Sorry, 15.5.3

Are you sure you're fixing it to a single version (i.e. you haven't left the preceding ^ in the version number in your package.json)?  I only suggest this because I cough spent the last half hour trying different minor and patch versions before realising I was just installing 16.3.3 over and over.
16.3.0 works fine for me (doesn't have the empty _datepicker.css).

Hi tom, here is waht is in packages.json     "react-dates": "^15.5.3",
Which now is working

Should I remove that caret?

Yeah.  Because that specifies you want to automatically update to the latest minor version.  If you delete it, you'll get the specific version you want.
https://docs.npmjs.com/getting-started/semantic-versioning#semver-for-consumers

Thanks Tom.  Works like a charm

Okay that makes more sense! Really sorry about the broken version. I'm not
home right now but I'll fix it when I get there and also introduce a
measure to prevent it in the future!
On Sat, Feb 24, 2018, 5:58 PM Mike Hollibaugh<EMAIL_ADDRESS>wrote:

Thanks Tom. Works like a charm
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/airbnb/react-dates/issues/1045#issuecomment-368276430,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABUdtURZ7XHncwqpX4CXaIl-NmrWJuTkks5tYL40gaJpZM4SSEyD
.

16.3.4 should be out and include a css file and stuff ==><EMAIL_ADDRESS>This means we can go back to careting things. Sorry for the breakage.
Will follow up with a check for the css file separately.


numba.float64 getattr fails

This
from numba import cuda
@cuda.jit('void(float64[:])')
def kern(arr):
    cuda.local.array(10, numba.float64)

kern[1,1](np.zeros(1))

gives
numba.errors.ConstantInferenceError: Failed at nopython (nopython rewrites)
constant inference not possible for getattr(attr=float64, value=$0.5)

This isn't a bug! From splitting out another user reported problem imports were forgotten!


Does not work in the spacevim

    Does not work in the spacevim

Originally posted by @weiaiweb in https://github.com/kristijanhusak/defx-icons/issues/8#issuecomment-1136684134

I think it depends on SpaceVim configuration.
You should report it in SpaceVim in first.


pvizio ImportError: cannot import name 'IPVersion' from 'zeroconf' (/usr/lib/python3.7/site-packages/zeroconf.py)

Hello,
Installed pyvizio on Fedora 31 using pip3 and have been unable to successfully run pyvizio;
$ pyvizio --ip=0 discover
Traceback (most recent call last):
File "/usr/local/bin/pyvizio", line 11, in
load_entry_point('pyvizio==0.1.21', 'console_scripts', 'pyvizio')()
File "/usr/lib/python3.7/site-packages/pkg_resources/init.py", line 489, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python3.7/site-packages/pkg_resources/init.py", line 2852, in load_entry_point
return ep.load()
File "/usr/lib/python3.7/site-packages/pkg_resources/init.py", line 2443, in load
return self.resolve()
File "/usr/lib/python3.7/site-packages/pkg_resources/init.py", line 2449, in resolve
module = import(self.module_name, fromlist=['name'], level=0)
File "/usr/local/lib/python3.7/site-packages/pyvizio/init.py", line 45, in
from pyvizio.discovery.zeroconf import ZeroconfDevice, discover as discover_zc
File "/usr/local/lib/python3.7/site-packages/pyvizio/discovery/zeroconf.py", line 5, in
from zeroconf import IPVersion, ServiceBrowser, ServiceInfo, Zeroconf
ImportError: cannot import name 'IPVersion' from 'zeroconf' (/usr/lib/python3.7/site-packages/zeroconf.py)
I verified all dependencies were met so, I'm not sure why this is occurring.
Python 3.7.6
pip(3) 20.0.2
$ pip install -U pyvizio
Requirement already up-to-date: pyvizio in /usr/local/lib/python3.7/site-packages (0.1.21)
Requirement already satisfied, skipping upgrade: aiohttp in /usr/local/lib64/python3.7/site-packages (from pyvizio) (3.6.2)
Requirement already satisfied, skipping upgrade: click in /usr/lib/python3.7/site-packages (from pyvizio) (7.0)
Requirement already satisfied, skipping upgrade: jsonpickle in /usr/local/lib/python3.7/site-packages (from pyvizio) (1.2)
Requirement already satisfied, skipping upgrade: requests in /usr/lib/python3.7/site-packages (from pyvizio) (2.22.0)
Requirement already satisfied, skipping upgrade: tabulate in /usr/local/lib/python3.7/site-packages (from pyvizio) (0.8.6)
Requirement already satisfied, skipping upgrade: xmltodict in /usr/local/lib/python3.7/site-packages (from pyvizio) (0.12.0)
Requirement already satisfied, skipping upgrade: zeroconf in /usr/lib/python3.7/site-packages (from pyvizio) (0.23.0)
Requirement already satisfied, skipping upgrade: chardet<4.0,>=2.0 in /usr/lib/python3.7/site-packages (from aiohttp->pyvizio) (3.0.4)
Requirement already satisfied, skipping upgrade: async-timeout<4.0,>=3.0 in /usr/local/lib/python3.7/site-packages (from aiohttp->pyvizio) (3.0.1)
Requirement already satisfied, skipping upgrade: attrs>=17.3.0 in /usr/lib/python3.7/site-packages (from aiohttp->pyvizio) (19.1.0)
Requirement already satisfied, skipping upgrade: multidict<5.0,>=4.5 in /usr/local/lib64/python3.7/site-packages (from aiohttp->pyvizio) (4.7.4)
Requirement already satisfied, skipping upgrade: yarl<2.0,>=1.0 in /usr/local/lib64/python3.7/site-packages (from aiohttp->pyvizio) (1.4.2)
Requirement already satisfied, skipping upgrade: idna<2.9,>=2.5 in /usr/lib/python3.7/site-packages (from requests->pyvizio) (2.8)
Requirement already satisfied, skipping upgrade: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/lib/python3.7/site-packages (from requests->pyvizio) (1.25.7)
Requirement already satisfied, skipping upgrade: ifaddr in /usr/lib/python3.7/site-packages (from zeroconf->pyvizio) (0.1.6)

Looks like a name collision. Try updating now to 0.1.22 and see if that resolves the issue

Successfully installed pyvizio-0.1.23 via pip with no change in outcome.

You still see the following? ImportError: cannot import name 'IPVersion' from 'zeroconf' (/usr/lib/python3.7/site-packages/zeroconf.py)

If so, try cloning https://github.com/raman325/pyvizio and installing pyvizio using pip install -I <pyvizio repo directory> and then see if it works

OK looks like the issue is related to the fact that there was no minimum version specified for zeroconf. Try updating to latest which should upgrade your zeroconf version and allow you to run the commands

Worked like a charm.  Thank you for the quick response & turnaround!


fix: revert snek endpoint and fix workspaces config

Thank you for your contribution to the KodaDot - One Stop Shop for Polkadot NFTs.
👇 __ Let's make a quick check before the contribution.
PR Type

[x] Bugfix
[ ] Feature
[ ] Refactoring

Context

[x] Closes #6153
[x] revert snek endpoint
[x] adjust netlify.toml, netlify already support pnpm natively
[x] set @kodadot1/static to using workspace:*
[x] upgrade pnpm to 8.6.0

Copilot Summary

🤖 Generated by Copilot at fa31df8
This pull request improves the compatibility and consistency of the project's package manager, build process, and indexer URLs. It switches to pnpm for Netlify, updates the package.json and pnpm-workspace.yaml files, and uses the latest snek indexer for both libs/static/src/indexers.ts and utils/constants.ts.

🤖 Generated by Copilot at fa31df8

Sing, O Muse, of the valiant deeds of Kodadot
The skillful builders of the web3 interface
Who with pnpm and workspace syntax wrought
A swift and stable platform for the polkadot space

merging this, lmk if there are some concerns 🙏


transformers (2007) uhd bd can't extract dovi rpu

i can't extract metadata from transofrmers uhd bd (2007)
thread 'main' panicked at 'index out of bounds: the len is 1 but the index is 1', src\dovi\rpu\vdr_rpu_data.rs:154:37 note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

Should be fixed in PR https://github.com/quietvoid/dovi_tool/pull/6
You can test binaries once they're built: https://github.com/quietvoid/dovi_tool/actions/runs/502730585

Should be fixed in PR https://github.com/quietvoid/dovi_tool/pull/6
You can test binaries once they're built: https://github.com/quietvoid/dovi_tool/actions/runs/502730585

so far tested on two transformers movies and works like a charm!!! thank you!!! if some problems will arise from the rest three movies, i'll write.

so far tested on two transformers movies and works like a charm!!! thank you!!! if some problems will arise from the rest three movies, i'll write.

all ok on all 5 transformers movies. :)

all ok on all 5 transformers movies. :)


There is an error in the download URL of the system.json file

I was unable to download this via Foundry or by putting the direct URL to the system.json file. It would give me errors on not finding the zip file.
So I created a fork and found that you need to set the zip file name to "v.0.8.0.zip" rather than "v0.8.0.zip"
Once I did that, I was able to download it correctly.

Fixed: Update should work in Foundry with the new version.
https://raw.githubusercontent.com/dicet/starforged/0.8.1/system.json


Fix ruby memory leaks when composing credentials, noticed with asan

Fixes a couple of memory leaks pointed out by https://github.com/grpc/grpc/pull/11580
On #11580:
running run_tests.py -l ruby -c asan-dynamic --use_docker -r call_credentials_spec results in:

https://gist.github.com/apolcyn/b94b11772eb81c9a793ea9fd5b60a748

running run_tests.py -l ruby -c asan-dynamic --use_docker -r channel_credentials_spec results in:

https://gist.github.com/apolcyn/dfe3fa716cfc4cda1abb11ecf97c8bb4

Both pass without errors with this change

looks like a build/infrastructure flake on internal kokoro basic windows tests (https://kokoro.corp.google.com/job/grpc/job/windows/job/pull_request/job/grpc_master/716/) - not filing an issue since since unsure if this test is stable at the moment.
jenkins tests passed