React context does not propagate to components props

The context feature of React does not work with the way the props are defined in C# react components. I read the code and understood how (and why) the props are being wrapped during initialization and unwrapped when someone wants to access them.
I have been experiementing with ReactRouter and it seems that when I map a route to a component, the context properties in ReactRouter do not propagate into this.props because this.props actually returns the wrapped value in this.props.value. But even when I debug this.props (not this.props.value) it still seems to be empty.
I found a (very hacky) workaround by using Func<TProps, ReactElement>  as a component (where TProps is some type that props has). Only then the context is propagated to props but this is a stateless component and I would like to use a statefull component
I guessed that a solution would be to merge the "original" props with the wrapped props value but I am not able to find a point during app execution where the "original" props exist.
Any suggestions?

Let me see what I can find out. So that I can get my head around what you're trying to do, where are you setting context? Or where would you like to set context if you could?
This quote from the article you linked makes me a little bit wary:

If you want your application to be stable, don't use context. It is an experimental API and it is likely to break in future releases of React.

But it would be nice if it could be supported for those cases where it can be worthwhile.
What would be really helpful would be if you could include a small code sample of how you would like the code to work, so that I can see where it could be helpful to set context and then read it again? Or is that going to be a bit difficult because it's the ReactRouter library that you're trying that is doing the context setting / reading magic?

Excuse me, my head was spinning when I wrote the issue after trying to look for

Let me see what I can find out. So that I can get my head around what you're trying to do, where are you setting context? Or where would you like to set context if you could?

If possible, I actually don't want to play around with context.
Let me simplify the issue and showcase my scenario, in this introductory article it is shown the following example:
const Message = React.createClass({
  render() {
    return
Message {this.props.params.id}

  }
})

render((
  <Router>
    <Route path="/" component={App}>
      <Route path="about" component={About} />
      <Route path="inbox" component={Inbox}>
        <Route path="messages/:id" component={Message} />
      </Route>
    </Route>
  </Router>
), document.body)

As you can see, there exists a params property on the props in the Message component. I seem to have no access to such properties when I access this.props from a Component (in C#). These extra properties on  props are due to some magic that ReactRouter is doing. I am not sure if it's using the same context feature I talked about but that is the closest thing I could find. Maybe it's called a Provider, something like the one react-redux uses to propagate the store or the one muiThemeProvider from material-ui that is used to propagate the theme to all child components. these (let us for now call them) Providers seem to inject extra properties on the props and these are lost when the props are wrapped in our C# component.
I managed to get react-router to work with Bridge.React like this:
React.Render
(
    ReactRouter.Router
    (
        ReactRouter.BrowserHistory(),
        ReactRouter.NestedRoute(new RouteProps { Path = "/", Component = MakeLayout("Apps created with Bridge.React") },
            ReactRouter.Index(Html.H1("Select an App from the list above")),
            ReactRouter.Route("todo-app", new TodoApp("C# Canonical Todo App"))
        )
    ),
    Document.GetElementById("main")
);

The TodoApp component used with the todo-app route is a statefull component. The props in there know nothing about params nor any other ReactRouter specific properties.
Hopefully I made the issue somewhat clearer,
Any ideas?
Thanks a lot for your time!!

Code for ReactRouter.zip (not a full project, only a couple of source files with sub-namespace Bridge.React.Router)
It will not work right out of the box for the master branch of this repo. I made way too many changes to my local repo such that merging it would break many stuff in master, for now I think you only need to remove the sealed modifier from Attributes to make LinkProps able to inherit from it.

Ok.. I've got some good news, which is always nice, but I don't think that it's likely to be the end of this issue! :)
From what I can tell of the ReactRouter, it doesn't directly expose anywhere that context is being used. Which is what is recommended by the React documentation - that the magic happens under the hood so that, as a library author, only your code has to change if React's context implementation changes in the future; meaning that people who use your library do not have to change their code because they did not have to interact with context directly.
That's part of the good news because the other part is that I have a small but complete example where context is written and read by non-Bridge components and where this context flows correctly even when Bridge components are introduced in between.. below are three components; the ThemeProvider, the CSharpWrapper and the Child. The ThemeProvider and Child are JavaScript components (with Bridge.NET bindings) and the CSharpWrapper is a Bridge.React StatelessComponent. The ThemeProvider sets up some context to pass down the tree, which the Child will need to read. The ThemeProvider is the top level component, it has a CSharpWrapper child and that has a Child child. The context data is successfully passed through the CSharpWrapper and is available to Child.
Although I need to remind myself properly how the ReactRouter works, I think that there are parallels - the ThemeProvider in the example here is like the Router and the Child component is like the Link. They are both components provided by external JavaScript. The CSharpWrapper is like the components that are rendered for each route.
using Bridge;
using Bridge.Html5;
using Bridge.React;

namespace Issue17Repro
{
	public static class StartUp
	{
		[Ready]
		private static void Go()
		{
			// Inspired by code from http://javascript.tutorialhorizon.com/2015/06/06/using-context-and-childcontext-in-react/
			/*@
				window.ThemeProvider = React.createClass({
					displayName: "ThemeProvider",
					childContextTypes: {
						color: React.PropTypes.string.isRequired
					},
					getChildContext: function getChildContext() {
						return { color: "red" };
					},
					render: function render() {
						return this.props.children;
					}
				});

				window.Child = React.createClass({
					displayName: "Child",
					contextTypes: {
						color: React.PropTypes.string.isRequired
					},
					render: function render() {
						return React.createElement(
							"div",
							null,
							"Color: ",
							this.context.color
						);
					}
				});
			 */

			var innerChild = new Child(); // This is JS a component that reads context
			var wrapper = new CSharpWrapper(innerChild); // This is a C# component that doesn't read or write context (but won't interfere with it either)
			var themeProvider = new ThemeProvider(wrapper); // This is a JS component that writes context

			React.Render(
				themeProvider,
				Document.GetElementById("main")
			);
		}

		///
		/// This is a C# binding to the JavaScript ThemeProvider component (that sets up context for child components to use)
		///
		[External]
		[Name("ThemeProvider")]
		[IgnoreCast]
		public sealed class ThemeProvider
		{
			[Template("React.createElement(ThemeProvider, null, {children})")]
			public ThemeProvider(params Union<ReactElement, string>[] children) { }

			[External] public extern static implicit operator ReactElement(ThemeProvider component);
			[External] public extern static implicit operator Union<ReactElement, string>(ThemeProvider component);
		}

		///
		/// This is a C# binding to the JavaScript Child component (that requires that context be configured by an ancestor)
		///
		[External]
		[Name("Child")]
		[IgnoreCast]
		public sealed class Child
		{
			[Template("React.createElement(Child, null)")]
			public Child() { }

			[External] public extern static implicit operator ReactElement(Child component);
			[External] public extern static implicit operator Union<ReactElement, string>(Child component);
		}

		///
		/// This is just a C# component that can sit in between the ThemeProvider and the Child JavaScript component to prove that having
		/// wrapper components like this between the components further up the chain (that set context values) and those further down the
		/// chain (that read context values) doesn't mess anything up
		///
		public sealed class CSharpWrapper : StatelessComponent<string>
		{
			public CSharpWrapper(params Union<ReactElement, string>[] children) : base(null, children) { }

			public override ReactElement Render()
			{
				return DOM.Div(new Attributes { ClassName = "wrapper" }, Children);
			}
		}
	}
}

So, hopefully, this means that it's possible to do what you want to with the ReactRouter.
What I'm a bit concerned about, though, is that clearly there must be something going wrong somewhere - otherwise you wouldn't have raised the issue! There's a chance that it's to do with the ReactRouter bindings that you're writing.. I think that my next step would be to try to go from the minimal example above and try to work with the ReactRouter project itself.
I've got a lot on this week, so I'm not sure how quickly I'll be able to make progress on this, but that doesn't mean that I'm ignoring it!

If you want to try out my code then create a new project called "Issue17Repro", add the Bridge.React NuGet package, add a bridge.json file to the project root:
{
  "output": "Bridge/output",
  "combineScripts": true
}

and then add the following "Test.html" file to the project root:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <title>Bridge Bridge.React.Examples</title>

Loading..

I know that you've probably done this a hundred times by now, I just thought that I'd try to make it a bit easier for you if you want to experiment with what I wrote about at all! :)

Wow thanks alot for the sample, so it seems that external js would be needed after all. I will dive deeper into this soon when time permits. I will keep you updated :)

Are you happy for me to close this issue for now? If you find any problems with this then you can always re-open it.


Swift3 version cannot be used by cocoapods.

Would you please check whether Sapporo swift3 version can be imported by Cocoapods? When I follow the instruction for installation using Cocoapods, the old swift2 version is imported. Thank you for your nice library.

Thanks for your reporting.
I have just updated the pod file.
Please try again.


Enable override attribute on Netty dependencies

@gradinac Could you please review this PR? We should also probably update the repository version to 0.2.0-SNAPSHOT in order to express that the format has changed.

I had to include empty metadata to override Netty configurations, should I add empty tests or do we have a way to exclude those for the checks?

I would personally prefer if we had explicit tests for each part of Netty (especially since we are now excluding existing config, and we should check for regressions).
Alternatively we could link it to the existing netty-transport test or some dummy test, but I'm afraid that would set a bad precedent.

[ ] Prior to merging this we need to implement override support for TCK in order to be able to properly test metadata.
This shouldn't be hard, fix shouldn't be more than couple of lines long. I'll take a look at that this week.

To add some tests, don't we need NBT 0.9.14 to be released first? Isn't it a kind of chicken and egg problem?

To add some tests, don't we need NBT 0.9.14 to be released first? Isn't it a kind of chicken and egg problem? If so we can maybe more forward with empty tests for now and add proper testing as a second step after NBT 0.9.14 and metadata repo 0.2.0 releases.

Well, we already have a different code path for metadata location detection here. We aren't using metadata support artifact here since it isn't what we are testing - we are just using standard primitives and relying on TCK to inject the right values for us, and thus we don't rely on NBT version at all.

Ok please let me know when you have done the required update, I can then add related tests (unless you want to do it).

Rebased on top of the commit mentioned in this comment and after various tries, I decided to skip tests for empty metadata.


[ServiceBus] improve release message test stability

context:
receive_message call is unstable from the perspective of receiving exact amount of messages.
to improve the stability of release message test which requires the receive_message call, we need to control/monitor the amount received by introducing a while loop

API change check for azure-servicebus
API changes have been detected in azure-servicebus. You can review API changes here
API changes
-             filter: Optional[Union[CorrelationRuleFilter, SqlRuleFilter]] = <azure.servicebus.management._models.TrueRuleFilter object at 0x00000270FA407370>,
+             filter: Optional[Union[CorrelationRuleFilter, SqlRuleFilter]] = <azure.servicebus.management._models.TrueRuleFilter object at 0x0000023C73C4F340>,
-             filter: Optional[Union[CorrelationRuleFilter, SqlRuleFilter]] = <azure.servicebus.management._models.TrueRuleFilter object at 0x00000270F9F17A60>,
+             filter: Optional[Union[CorrelationRuleFilter, SqlRuleFilter]] = <azure.servicebus.management._models.TrueRuleFilter object at 0x0000023C73757A90>,

/azp run python- servicebus - tests

/azp run python - servicebus - tests

/azp run python - servicebus - tests

/azp run python - servicebus - tests

/azp run python - servicebus - tests

/azp run python - servicebus - tests

/azp run python - servicebus - tests

/azp run python - servicebus - tests

/azp run python - servicebus - ci

/azp run python - servicebus - tests


firefox: 82.0.3 -> 83.0

Motivation for this change
https://www.mozilla.org/en-US/firefox/83.0/releasenotes/
https://www.mozilla.org/security/advisories/mfsa2020-50/
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Waiting for local build to complete

firefox-pipewire-0-3.patch fails to apply

```
building '/nix/store/jkvbnhp5y4njp8ybz65h5kh2rvbk5c5k-firefox-unwrapped-83.0.drv'...
unpacking sources
unpacking source archive /nix/store/xaik8r747zfc7vjrl50bnmyrvriib0km-firefox-83.0.source.tar.xz
source root is firefox-83.0
setting SOURCE_DATE_EPOCH to timestamp<PHONE_NUMBER> of file firefox-83.0/sourcestamp.txt
patching sources
applying patch /nix/store/z0ib43s19d95ljf77cz7dmg86zi86f95-env_var_for_system_dir.patch
patching file toolkit/xre/nsXREDirProvider.cpp
Hunk #1 succeeded at 306 (offset 4 lines).
applying patch /nix/store/4ixnlcwmykmip9v3s6j5qkk0k18r9sj9-firefox-pipewire-0-3.patch
patching file config/system-headers.mozbuild
can't find file to patch at input line 21
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- a/media/webrtc/trunk/webrtc/modules/desktop_capture/BUILD.gn
|+++ b/media/webrtc/trunk/webrtc/modules/desktop_capture/BUILD.gn
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored
can't find file to patch at input line 32
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- a/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build
|+++ b/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored
can't find file to patch at input line 65
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- a/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_options.h
|+++ b/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_options.h
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored
can't find file to patch at input line 76
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- a/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc
|+++ b/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
11 out of 11 hunks ignored
can't find file to patch at input line 672
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- a/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.h
|+++ b/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.h
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
3 out of 3 hunks ignored
can't find file to patch at input line 785
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- a/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc
|+++ b/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored
can't find file to patch at input line 796
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- a/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc
|+++ b/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored
can't find file to patch at input line 807
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- a/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_linux.cc
|+++ b/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_linux.cc
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored
can't find file to patch at input line 818
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- a/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_linux.cc
|+++ b/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_linux.cc
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored
builder for '/nix/store/jkvbnhp5y4njp8ybz65h5kh2rvbk5c5k-firefox-unwrapped-83.0.drv' failed with exit code 1
cannot build derivation '/nix/store/vq9r9kbi315c393fjxgsdjwrd2xx8h8w-firefox-83.0.drv': 1 dependencies couldn't be built
error: build of '/nix/store/vq9r9kbi315c393fjxgsdjwrd2xx8h8w-firefox-83.0.drv' failed
```

cc @colemickens @worldofpeace Re: #84233
Fedora did this: https://src.fedoraproject.org/rpms/firefox/c/d6756537dd8cf4d9816dc63ada66ea026e0fd128?branch=master
We can follow suit and replace that patch with those seven, but I don't use pipewire, so idk.

We can follow suit and replace that patch with those seven, but I don't use pipewire, so idk.

Yes, please. I do use pipewire with firefox.

cc @colemickens @worldofpeace Re: #84233
Fedora did this: https://src.fedoraproject.org/rpms/firefox/c/d6756537dd8cf4d9816dc63ada66ea026e0fd128?branch=master
We can follow suit and replace that patch with those seven, but I don't use pipewire, so idk.

Thanks for checking up. We should do this :+1:

Ugh and here it begins the Pipewire patch madness that I did fear :/
I am not really in favor of continuing it like this.. We are dependent on the fedora patches and none of us is watching what fedora is doing (to other packages at the same time) nor do we have an automated test to verify it actually works.
I'd be in favor of just disabling pipewire for now and wait until it finally is stable in Firefox upstream.

added patch to remove pipewire
nss >= 3.58 is also needed, so attempting a build with #100765

I don't really understand, do those patches not apply? That commit is them updating to 83.0, so we're in sync?

I don't really understand, do those patches not apply? That commit is them updating to 83.0, so we're in sync?

We can try pulling them in and this time it might work.. I just do not want to be in a situation where we can not update because people think that pipewire support we had enabled is a promised feature. We can't promise it. I'm pretty sure I wrote about that in the pipewire support PR.

I added it, hoping it would be easy to "just copy patches from Fedora", since Martin seems motivated and fast at keeping Firefox patched there. However, I'm not the one here doing this Firefox upgrade work in nixpkgs, and the patches do seem to be growing in size, not shrinking, so I can't/won't argue strongly against removal.
For whatever it is worth, it does at least look like there is movement again upstream: https://bugzilla.mozilla.org/show_bug.cgi?id=1672944 though I don't know if there's yet a solid timeline/plan for turning it on.

I'm picking this up and creating a revision of this with the latest PW patches.

I'm picking this up and creating a revision of this with the latest PW patches.

Thanks! :) Feel free to close this.

Note: This patch build OK with nss-3.59 from #100765

@stigtsp thanks for trying and initiating this. Closing as agreed on :)


Using unlabeled data to generate atomic facts and retrieving evidence

Hello! I have a few questions.

Do I understand correctly that in the current pipeline, the generation of atomic facts for unlabeled data is done both using the actual unlabeled data and demos data, even if we need only to process the unlabeled data? Why demos data is always used in these calculations?

Did you notice that the retrieved evidence is the same for all atomic facts inside a particular bio? Seems that it should be dependent on each particular atomic fact.

Thank you for your question.

The demos data consists of demonstrations (in-context learning) for the Atomic Fact Generator. So it's part of the data the model uses, rather than being used as the test data. Annotations in the demos data are written by humans.
We are validating each atomic fact based on the Wikipedia article about the subject. Thus, retrieval is restricted to this single article. Please refer to the Implementation details in 4.1.2 of the paper. It is possible to relax this restriction but we empirically found this to be working better.


Add aux flows to topology

This PR adds aux commodity flows to topology. It also expands the list of Veda aliases for TIMES attributes.

@siddharth-krishna this one has regression with respect to addtional rows, so still needs some work.
Btw, was wondering whether this pattern where we are looping through the dictionary searching for a key is efficient? Please feel free to modify...

@olejandro

Expand aliases_by_attr

Just a small question/comment about this alias matter:  I wonder whether you take into account that there are both strict aliases and variants of parameters now included in the lists.  For example, CF is not strictly alias for NCAP_AF, because the default Lim_type for CF (alias UTILIZATION) is FX while it is UP for NCAP_AF (alias AF, AVAILABILITY).  A few other examples are EFF, which is not a strict alias for ACT_EFF, but a variant which does not support specifying the CG in ACT_EFF at all, and COST, which is not a strict alias for IRE_PRICE, but a variant which does not support specifying the commodity or IE.

@Antti-L  good point! Yes, we already include a dictionary that specifies (some of) those defaults (incl. whether it should be input or output commodity like for share-o vs share-i). The idea is to move this info to a separate file, so that it is easy to get an overview and modify it. I'll make sure to tag you in that PR, so you can comment on it.

@siddharth-krishna there is one additional record on Ireland which I believe is okay to keep. :-)

Sounds good. Let me think what's the best way to merge this PR with a failing check..

@siddharth-krishna  I was thinking to temporarily change the repository settings to be able to do this (i.e. not to enforce restrictions for admins).

Sounds good!


Dashboard looping

hi i have That problem "error":"invalid_client" While Authorization i m looping in discord Authorization

Make sure how correctly placed the dashboard url in config.js, without / in the last. And on your discord dev portal, you have put redirect url as yourURL/api/callback
And in .env, you've put client secret id

I did

So now i uploaded on server and after Identify There is nothing just saying This site can’t be reached

Make sure how correctly placed the dashboard url in config.js, without / in the last. And on your discord dev portal, you have put redirect url as yourURL/api/callback
And in .env, you've put client secret id

So now i uploaded on server and after Identify There is nothing just saying This site can’t be reached

Show me your config.js and your dev portal url

what do u think ?

Does your hosting provide https?
Make sure its http and not https

wait that was https now http  let me try

i Loged in Dashboard but Server is not visable there

It only shows servers that you're an admin in, also you have to close this issue since your problem has been fixed

Also i wrote a lil guide on dashboard if you ever feel lost again check it here


rkt: Copy the /etc/hosts /etc/resolv.conf into pod dir before mounting (with correct permissions)

LGTM

This is included in v1.3.3 and v1.3.4, closing.


Update submodule libuavcan to latest Fri Jun 29 21:33:48 EDT 2018

- libuavcan in PX4/Firmware (c2987a9cadb8857cabd33b3e9312c5fc7be04fd6): https://github.com/UAVCAN/libuavcan/commit/dfcdf22eda16ff06847976fd6c7f40671fc92eb5
- libuavcan current upstream: https://github.com/UAVCAN/libuavcan/commit/c044630390370d800a22e7746cd949ddd3c59bb1
- Changes: https://github.com/UAVCAN/libuavcan/compare/dfcdf22eda16ff06847976fd6c7f40671fc92eb5...c044630390370d800a22e7746cd949ddd3c59bb1

c044630 2018-06-27 Pavel Kirienko - Merge pull request #138 from thirtytwobits/feature/issue100

4750a50 2018-06-14 Dixon, Scott - Issue #100 remove auto_ptr and c++03 support.

@dagar Let's wait with this for a review from Daniele - but it might take a couple of days for him to get the time to look into it.

Yes I didn't want to just merge this one without real testing. Nothing urgent here, but I think it's overall going to be easier to keep up with these incrementally.

I can have a look at it tomorrow.

@Tony3dr do you have any UAVCAN devices?
GPS - https://zubax.com/products/gnss_2
ESC - https://zubax.com/products/myxa

@dagar no, we do not.

@dagar @Tony3dr I just reached out to @pavel-kirienko for guidance on hardware for testing, I'll keep you posted.

@dagar just a heads up the test team is getting UAVCAN hardware and will be ready to test as soon as we receive it and we can assemble a new vehicle, please work with @Tony3dr and @santiago3dr for an ETA on testing for this PR.
Thanks for the hardware Zubax cc @pavel-kirienko 🎉 🚀

The Kinetis submodule has been mainlined in uavcan!


Dapp1 39 add sidebar drawer

Added Daisy-UI Drawer component for use in Fortuna as side menu

What is left for this to be merged?


How to extract features from multi ROIs in one scan slice?

I'm trying to use pyradiomics to extract features from CT. However there are multi ROIs in one scan slice for some cases while others involving 1 ROI. How should I do? Thanks for your attention!

Sorry not make it clear. I want to extract features from multi ROIs and regard them as a whole  ROI.

This is not supported in PyRadiomics, only 1 segment/ROI/label can be selected at one time.
You could fix this using a simple pre-processing step:
import SimpleITK as sitk
ma = sitk.ReadImage('path/to/mask.nrrd')
ma = ma != 0

This assumes mask is a 3D volume with the different ROIs identified by different values (i.e. "labels"). For segmentation objects it'll be a bit different.
You can store the result using sitk.WriteImage(ma, 'path/to/output.nrrd', True), or use the ma object directly by passing it as the mask argument to RadiomicsFeatureExtractor.execute().

Thanks for your reply! If I understand correctly, for the 2D volume, the feature extraction process for ROIs identified by 1 label is the same as that of 1 ROI, eventhough they are disconnected or do not overlap. Is that right?

Note that some features may make little sense in above cases. What I can confirm is that the shape feature is one of them. Do you think there are other features that are meaningless?

Yes, what happens inside PyRadiomics is that the mask gets converted to a boolean mask: all voxels with label value equal to label are set to True, the rest False. Optionally, when a 4D segment mask is provided, label_channel can be used to select the index of the pixel vector to use. Further calculation is done using only those voxels from the image that are marked True in the mask, regardless of where they are.
This certainly means that many features will make little sense, especially the shape features. I my opinion, this (to a lesser extent) applies to ALL features, as the whole goal is to try describe a texture, which is probably unique to each lesion and therefore should also be considered separate for each lesion.

If you want to make sure you don't have separate volumes, try to use SimpleITK's ConnectedComponentImageFilter, which can split your connected ROI's. As a final check, PyRadiomics puts out the diagnostic feature Diagnostics_Mask-original_VolumeNum, which uses the same ConnectedComponentImageFilter to detect how many connected ROI's are identified by the provided label/label_channel.

Got it! Thanks for your time and detailed reply! It helps me a lot!


Add Darwin platform

We install buildkite agent on a suite of mac minis (Darwin platfrom).
This adds Darwin platform and installs/updates via homebrew.
I've also updated the template for the latest buildkite agent (v3.5.4) - which deprecates the bootstrap line item so it should be commented out.

Hey, thanks! I was going to need to do this soon :)
Out of interest, how are you hosting your Mac agents? Physical, cloud...? I came across https://macstadium.com/Anka which I intend to use with mackite; wondering on options.

We’re using physical Mac minis and run about 30 right now - was more cost effective to run and spin up ourselves :)

On 2 Nov 2018, at 5:51 pm, Peter Mounce<EMAIL_ADDRESS>wrote:
Hey, thanks! I was going to need to do this soon :)
Out of interest, how are you hosting your Mac agents? Physical, cloud...? I came across https://macstadium.com/Anka which I intend to use with mackite; wondering on options.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

@hectcastro would a review be ok to do?

@petemounce I added you as a collaborator on this repository because you're clearly going to be able to provide a better review than we are (we don't use OS X based build against with Buildkite). Please let me know if the collaborator permissions I provided are sufficient to merge community PRs.

@hectcastro thanks very much; I've accepted.


Python 2.7.9 ImportError: cannot import name firebase

I just installed via pip python-firebase (and requests) into a brand new virtualenv running Python 2.7.9, yet when I try to use from firebase import firebase Python spits out the following error:
ImportError: cannot import name firebase

I know for a fact the module and its prereqs are installed because I can see them in the list of modules generated by help('modules')
I created this virtual environment after running into the same issue developing without a virtual environment (e.g. I was installing everything to the system's typical Python install). I figured I'd messed something up so I started over with a fresh virtual environment and used it exclusively when I was reinstalling my other dependencies.
Am I doing something wrong? Is Python 2 not supported?

Here's the traceback:
Traceback (most recent call last):
  File "D:/Projects/gcalapi/cgi-bin/firebase_test.py", line 1, in <module>
    from firebase import firebase
  File "D:\Projects\gcalapi\cgi-bin\firebase.py", line 1, in <module>
ImportError: cannot import name firebase

Is it trying to load a non-existent firebase.py instead of python-firebase?

Nevermind, somehow a compiled bit of Python called firebase.pyc had been generated some time while I was messing around and that was throwing things off. I deleted it and the import worked fine.

Hi,
I am getting the same error. I have installed python-firebase, but when i fire up the django dev server it throws import error on
from . import firebase
ImportError: cannot import name firebase
So I tried cleaning the pyc files as well, but this problem still persists

@avneesh91 I get the same error to you. I try cleaning the pyc file and rename the py file, then it worked fine.

just not use firebase.py as a name for your project and it will work

i already ran the project , it was working . restarted it and started giving
from firebase import firebase
ImportError: No module named firebase
in eclipse import does not show any error...

I renamed firebase.py to some other name... Its working :+1:

i have also same error
No module name is firebase.
please help me..

Hi everyone, I haved the same problem and it's true.. you must rename "firebase.py"  to some other name and delete all the "firebase.pyc" created..
I deleted almost 3 of them and then works :)

from firebase import firebase
fb = firebase.FirebaseApplication('https://vehice-counter.firebaseio.com/', None)
fb.put('test/asdf',"count",4
my code ooks likes this and I also haved same probem here.
error:
Traceback (most recent call last):
File "C:/Users/Asus/PycharmProjects/firebase/firebase.py", line 1, in
from firebase import firebase
File "C:\Users\Asus\PycharmProjects\firebase\firebase.py", line 1, in
from firebase import firebase
ImportError: cannot import name 'firebase'

I also had a same problem
my code like this
from firebase import firebase
fb = firebase.FirebaseApplication('https://vehice-counter.firebaseio.com/', None)
fb.put('test/asdf',"count",4)
error:
Traceback (most recent call last):
File "C:/Users/Asus/PycharmProjects/firebase/firebase.py", line 1, in
from firebase import firebase
File "C:\Users\Asus\PycharmProjects\firebase\firebase.py", line 1, in
from firebase import firebase
ImportError: cannot import name 'firebase'

I tried to import the firebase package in my project.

There are no files that name as firebase.py or anything related.
I have created a new project and imported the same package in the hello world programme, still gave me that error.
Just downgraded the firebase version to any (from versions: 1.0.0, 1.0.1, 2.0.0, 2.0.1, 2.1.0, 2.1.1, 2.1.2, 2.1.3, 2.1.4, 2.2.0, 3.0.0, 3.0.1)  and It will work.
I had the issue on 3.0.1, 3.0.0 versions and 2.2.0 worked for me.
you can try one by one and it will work


influxdb tag is wrong, pushed back to 1.4.3

Unfortunately influx 1.5 seems not available at dockerhub. Hence, I recommend to stick to 1.4.3 (currently latest)

this was fixed by pushing the 1.5.0 version to docker hub


ContentDialog ignores ICommand.CanExecute

Describe the bug
When a command's CanExecute for a ContentDialog button returns false, the button stays enabled and Execute would still get invoked.
Steps to reproduce the bug

Instantiate a ContentDialog
Create an ICommand implementation, and have its CanExecute method return false
Set PrimaryButtonCommand to an instance of the command
Show the ContanteDialog

simple repro: https://github.com/cyberrex5/ContentDialogCanExecuteRepro
Expected behavior
The ContentDialog's button to be disabled if CanExecute returned false.
Screenshots
No response
NuGet package version
WinUI 3 - Windows App SDK 1.2.3: 1.2.230118.102
Windows version
Windows 11 (22H2): Build 22621
Additional context
No response

The UI just seems not to bind to the commandproperties...
https://github.com/microsoft/microsoft-ui-xaml/blob/9f7c129eee21caddfcbfb3cd8ff8ff44a0fda396/dev/CommonStyles/ContentDialog_themeresources.xaml#L328-L351
I worked arround this by adding the binding to the Command Properties in my own style.
For some reason I just can't use <contract7Present:Setter Property="CornerRadius" Value="{ThemeResource OverlayCornerRadius}" />. The compiler error mentions somthing that ThemeResource is not a MarkupExtension, but will gladly acept it anywhere else…
Would be nice if this could get fixed, or remove the Command properties if enabling and disableng should only be done manualy by the IsPrimaryButtonEnabled properties.

Is there an ETA to solve this issue?

Ran into the same issue today. My quick and dirty workaround (without duplicating the Style) is the following:
var dialog = new ContentDialog
{
    XamlRoot = App.MainWindow?.Content.XamlRoot,
    Style = Application.Current.Resources["DefaultContentDialogStyle"] as Style,
    Title = "Hello",
    PrimaryButtonText = "OK",
    CloseButtonText = "Cancel",
    DefaultButton = ContentDialogButton.Primary,
    PrimaryButtonCommand = dataContext.MyCommand,
    PrimaryButtonCommandParameter = dataContext,
    Content = new MyView(),
    DataContext = dataContext
};

// eval CanExcecute once
dialog.IsPrimaryButtonEnabled = dialog.PrimaryButtonCommand.CanExecute(dataContext);

// set IsEnabled for every future change of CanExecute
dialog.PrimaryButtonCommand.CanExecuteChanged += (_, _) =>
{
    dialog.IsPrimaryButtonEnabled = dialog.PrimaryButtonCommand.CanExecute(dataContext);
};

Add the last few lines for the SecondaryButton and CloseButton accordingly if needed.


_episodes_rmd/05-Gradient-Boosting.Rmd: Minor text edit

In the “Learning Rate” section, suggest introducing the concept of hyperparameters. Learning rate is a type of hyperparameter specific to xgboost.

Learning rate is not specific to xgboost.


Build doesn't open on Android

I was unable to open the generated pdf on my Android phone. I've was able to view other pdfs before and after.

OP hasn't commented further on the issue in ~3 years, can this be closed?

@RobertoMachorro Sure.


Jsclicker update

We can now refresh the current page we are on. Our back button was also updated.

I had a look at this, but the back and refresh don't seem to make sense because why would you need to have an element selected to do a back or a refresh operation?
Neha needed this so I've gone a different route, as I think it makes more sense to have these operations split out https://github.com/spicule-kythera/seleniumscripter/pull/29

Resolved by PR #29


switching from view to table yields late error

Currently, if you develop a model as a view, then switch to materializing into a table, you get an error that looks like this:
2017-08-02 15:30:50,418: On fct_job_listing_email_activity: drop table if exists "dbt_harlan"."fct_job_listing_email_activity" cascade
2017-08-02 15:30:50,551: Postgres error: "fct_job_listing_email_activity" is not a table
HINT:  Use DROP VIEW to remove a view.

That's correct, and clear enough, but it happened after the temp table was built, which in this case takes quite a while. My expectation was that either the system would be smart enough to drop a view when building a table (no error), or that it would detect that the target was a view before going ahead and building the temp table (early error). Could one of those fixes be added?

Hey @HarlanH -- thanks for creating this issue. This is a regression in v0.8.3, dbt should (and used to) issue the correct drop statement. It looks like table is hardcoded here
This works differently in development now, but I'll confirm that the new code handles this appropriately. Thanks!

@HarlanH I just confirmed that this is working correctly in development. This fix will go out in our next release, 0.9.0!


sfdx force:source:push fails with Duplicate name  error on 7.145  & 7.144.2

Summary
After recently upgrading my sfdx cli version (yesterday) via NPM I am no longer able to run sfdx force:source:push - The command ends in an error about duplicate metadata every single time.
Steps To Reproduce:
Repository to reproduce: dreamhouse-lwc
Did not try this here but I did confirm that any version greater than 7.143 throws errors on a source push. As soon as I downgraded using npm i<EMAIL_ADDRESS>the issue went away

Install latest release sfdx-cli
sfdx force:source:push your codebase

Expected result
Push completes successfully
Actual result
Push errors out with duplicate metadata errors as seen on this ticket
System Information
SFDX version 7.145 MacOS
Additional information
This looks to be the same exact issue as was reported on this closed issue

Hi @yk92 👋
thanks for reporting this issue. As part of yesterday's release we GA'd the source:beta commands and moved the old source commands to a source:legacy topic. Try using the legacy commands as a workaround while we investigate this issue. If the legacy commands work, please let us know.
It seems like there's some fixes mentioned in that GH issue. I would suggest trying those to see if they fix your project too

You are hitting the notes here https://github.com/forcedotcom/cli/blob/main/releasenotes/sfdx/README.md#71400-march-3-2022
The beta push/pull was put into prod in 7.144 . Basically it now combines all the folders and does a single push by default. This seems to never work and the fix is to add "pushPackageDirectoriesSequentially": true to your sfdx-project.json to make it push sequentially.

Guys, thanks so much! The one time we dont look at release notes we get crushed... Appreciate the quick replies. Have a great weekend

Hello ! I have a similar issue (same error message). However, the workaround of pushing the directories sequentially does not work for me as I only have one package directory. For now I'm going to use the legacy push and pull, but is there a fix coming about this issue ?

Hi @Saauan 👋
if you are able to find steps to reproduce we'd love to investigate and fix this. If you can recreate the issue I'd suggest creating a new issue so we can track it there.
I'd also suggest verifying that the setting is spelled correctly and everything is set up correctly

Hey @toddhalfpenny just trying to understand if this has ever worked since we switched the legacy commands out, or if this is new behavior. Can you provide some steps for us to reproduce the issue?

I'm not sure... it's the first time I've been through this process in a while.
I have asked our dev team and the latest version they're on is 7.157.0 (I need to keep on top of that :) )
I'm unsure which version the legacy commands came in on.
From a high level ( and abstracted) PoV our project looks like this;
.
├── src
│   ├── pkg1
│   ├── pkg2
│   ├── pkg3
│   └── unpackaged

And the object that is being complained about is in pkg2
I shall see if I can create a cut-down version of our project and re-produce.

Looks like #1726 is also similar, I shall move over there.

Hi @Saauan, I know this was quite some time ago, but could you confirm if in your case if the error message relates to an object that has RecordType and a field of the same name?
I have this scenario and think I might have found something. My repo had this setup and changing the RT name enabled me to push. Looks like this might also be the case in #1726

Hello @toddhalfpenny. I'm going to be very honest with you, I am not working for the company where I had this bug anymore, and I don't remember any detail about the bug. I don't even remember if I found what caused the issue or not. So I'm truly sorry.. I should have wrote a nice bug report back then

No worries... maybe I need to swap jobs to get this bug out of my life 😉
I hope I'm targeting in on a repo that can reproduce this.

OK, so I'm a plum.
We had 2 MyObject.recordType-meta.xml files in our project... one was hiding in the compactLaouts folder for some reason.
I might see if I can look at plugin-source to see if further details can be provided in the Duplicate errors.

@toddhalfpenny, the issue with the duplicate recordType seems oddly familiar to me. I think you're homing in on the right thing. Good luck !


Grids with arbitrary user-specified cell-face distribution

We should implement fully custom grids, where the settings file contains r_f, p1_f and p2_f data and the interface sets these. This could be accompanied with a rework of the present grid generators, which could then be completely moved into the interface.
In particular, it appears to become increasingly urgent for Ida's thermal quench simulations to have more flexible non-uniform radial grids, where we may need to focus resolution towards the cold edge.

This has been implemented in 031b293 for radial grids. Momentum grids remains TODO.

Momentum grids implemented in d985889.


feat(download): bodies downloader stream

Refactor bodies download to be implemented as a Stream.
Related https://github.com/paradigmxyz/reth/pull/891

Codecov Report

Merging #905 (c8282a9) into main (78ffd0a) will decrease coverage by 0.22%.
The diff coverage is 73.09%.

@@            Coverage Diff             @@
##             main     #905      +/-   ##
==========================================
- Coverage   73.89%   73.67%   -0.22%
==========================================
  Files         292      292
  Lines       31764    31975     +211
==========================================
+ Hits        23471    23557      +86
- Misses       8293     8418     +125

Flag
Coverage Δ

unit-tests
73.67% <73.09%> (-0.22%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

bin/reth/src/node/mod.rs
0.00% <0.00%> (ø)

bin/reth/src/stage/mod.rs
0.00% <0.00%> (ø)

crates/stages/src/test_utils/test_db.rs
64.34% <0.00%> (-0.57%)
:arrow_down:

crates/interfaces/src/p2p/bodies/response.rs
47.36% <47.36%> (ø)

crates/net/downloaders/src/bodies/concurrent.rs
73.05% <72.16%> (-14.14%)
:arrow_down:

crates/stages/src/stages/bodies.rs
92.22% <89.77%> (-1.25%)
:arrow_down:

bin/reth/src/config.rs
60.37% <100.00%> (+0.76%)
:arrow_up:

crates/net/downloaders/src/test_utils.rs
95.23% <100.00%> (+11.45%)
:arrow_up:

crates/net/network-api/src/lib.rs
33.33% <0.00%> (-66.67%)
:arrow_down:

crates/interfaces/src/p2p/error.rs
50.00% <0.00%> (-7.15%)
:arrow_down:

... and 16 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

Are we no longer committing commit_threshold items? Because we still need to - we should not exhaust the entire stream if it is over commit_threshold since commit_threshold lets us regulate I/O.

this is now controlled via the batch size that the downloader stream returns


Add new kanister function Wait

Signed-off-by: Prasad Ghangal<EMAIL_ADDRESS>Change Overview
Add new kanister function Wait to wait for resources to be ready. The wait conditions can be specified with go template conditions syntax. The k8s object values are accessed with jsonpath
e.g
    - func: Wait
      name: waitDeployReady
      args:
        timeout: 1m
        conditions:
          anyOf:
          - condition: |
              {{ if and (eq {$.spec.replicas} {$.status.availableReplicas} )
                   (and (eq<EMAIL_ADDRESS>== "Available")].type}" "Available")
                   (eq<EMAIL_ADDRESS>== "Available")].status}" "True"))}}
              true
              {{ else }}
              false
              {{ end }}
            objectReference:
              apiVersion: "{{ .Phases.createDeploy.Output.apiVersion }}"
              group: "{{ .Phases.createDeploy.Output.group }}"
              resource: "{{ .Phases.createDeploy.Output.resource }}"
              name: "{{ .Phases.createDeploy.Output.name }}"
              namespace: "{{ .Phases.createDeploy.Output.namespace }}"

Pull request type
Please check the type of change your PR introduces:

[ ] :construction: Work in Progress
[ ] :rainbow: Refactoring (no functional changes, no api changes)
[ ] :hamster: Trivial/Minor
[ ] :bug: Bugfix
[x] :sunflower: Feature
[ ] :world_map: Documentation
[ ] :robot: Test

Test Plan

[x] :muscle: Manual
[ ] :zap: Unit test
[ ] :green_heart: E2E

@PrasadG193 The wait test is failing in Travis CI.


Android not asking for permission

I've set up for getting a token and I do receive one just fine with getToken. I'm also subscribing to a topic.
However Android isn't asking for notification permission nor is the permissions shown in the permission list.
I've also set up a onNotificationOpen that never gets triggered when sending a notification.
Do I need to manually add something else?
(Running on an Ionic 2 app via ionic run android --device)

From my understanding Android doesn't need to request permission to send notifications, it's set automatically. Unlike iOS where you must add the function FirebasePlugin.grantPermission() or it won't register the device.

@device68 can we change any settings to request for a permission before receiving notifications in android?
For now it directly allows to receive notifications.


WIP: fix: editor shortcodes crashing

Summary

Test plan

A picture of a cute animal (not mandatory but encouraged)

Deploy preview for netlify-cms-www ready!
Built with commit b658a924ed7c038e96fd1bfabe00dd60ac14e111
https://deploy-preview-1674--netlify-cms-www.netlify.com

Deploy preview for cms-demo ready!
Built with commit 90420780b5dbb07cb6b42fb7617e054e279ea928
https://deploy-preview-1674--cms-demo.netlify.com


Allow data provider to provide separate result consent signaling certificate

This change is

This introduced a new compiler warning:

src/main/kotlin/org/wfanet/measurement/loadtest/dataprovider/EdpSimulator.kt:1517:9: warning: variable 'requisitionCertificateKey' is never used
    val requisitionCertificateKey =


CSV.parse behaves differently in Linux and in MacOS

Given the following CSV file:
Year,Month,Fund ID,Department ID,Fund Name,Department Name,Amount
2012,12,1,10,General,Adm/Executive,155,319.95

Notice the last 2 columns of the 2nd line in the file. 319.95 is an extra column and 155 is under the Amount column. When doing CSV.parse(file, headers: true), I get different output for MacOS and for Linux.
In MacOS - the last column (319.95) is ignored (stored as a value under nil in the Table object)
In Linux - the last column under Amount is 155,319.95
Behavior should be the same on both OSes and it seems that the MacOS is the more correct behavior. I leave it to you to decide what is best though.

Could you show the output of ruby -v -rcsv -e 'p CSV::VERSION' on both platforms?

Here's the output I got:
Linux:
ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux]
"3.1.2"

MacOS:
ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin19]
"3.1.2"

Could you try 3.1.7?

@kou this is no longer an issue in 3.1.7. I'm getting the same behavior on MacOS and Linux. Will 3.1.7 be shipped in next stable version of Ruby?

If you mean 3.0.0, it will ship the latest version.

@kou awesome! Thanks for the help 🙏

@kou could you reopen this issue? Further testing still gives me different behavior between Linux (heroku) and MacOS for 3.1.7. Could you check if that is the case?

Could you provide a standalone Ruby script that reproduces this case?
If I can reproduce by the script, I reopen this.


feat: 49:smart-wallet-nft proposal

fixes https://github.com/Agoric/agoric-sdk/issues/8334
postponed:

#15

@turadg and I agreed to postpone...

#15


The necessity for a USB-cable

I was wondering why there’s the necessity to connect the P1 with a USB cable because on modern meters the P1 can draw its power from the other connection. Also in HA it works without having a USB cable connected. Is there a possibility around this? Because I’m not really willing to plug in a USB cable just for the sake of having it visible in HomeKit.

I suppose you could connect the P1 port to any serial interface, if your system still has one.  The P1 USB cable is just a USB to serial cable dealing with the weird pin layout of the P1 port.  It doesn’t power the port, but connects one of the data wires over a resistor to power, to activate the port.  See the link in the README for details.


Unable to disable cascade persist. cascade: [] has no effect.

Describe the bug
I am trying to disable cascade persist as it is causing problems in testing with our fixtures and is not needed except in very specific situations.
I have my relationships defined like this:
@Entity()
export class FileUpload {

  @ManyToOne({ entity: "Org", nullable: true, onDelete: "cascade", cascade: [] })
  org?: Org;

}

However, when creating a new FileUpload object if the org entity is not managed (not in the identity map) it will try to persist it every time, even though the org entity has a pk and org.isInitialized() is true.
This results in a database exception because the entity already exists in the database. If the entity is in the identity map it all works fine. It's only when we're running tests using our fixtures that we run into this problem. Fixtures are imported into the database in a separate context, so they do not exist in the IdentityMap that the test has access to.
We can get around this by passing an Identified Reference rather than the actual Org Entity. But that makes our tests brittle because it is expected that a full Org entity be passed.
I really just want to disable cascade persist as it's not something we need (except in specific cases) so we'd prefer to opt in to it... but right now I can't even seem to opt out!
Versions

Dependecy
Version

node
14.15.4

typescript
4.0.2

mikro-orm
4.5.0

@mikro-orm/postgresql
4.5.0

However, when creating a new FileUpload object if the org entity is not managed (not in the identity map) it will try to persist it every time, even though the org entity has a pk and org.isInitialized() is true.

New entities are always cascaded, this is on purpose, it is called persistence by reachability. It does not matter that you have it in initialized state (that is the default for new entities too), neither that it has a PK (as that does not necessarily mean it is present in the database). If it's not in identity map, it is always considered as new entity.
So the real question is why are you putting there a detached entity instance instead of managed one?

We have a process that loads our fixtures into the database before tests run. This initializes the database to a known state. The tests themselves have access to the fixture entities by name. So, if I want to test creating an invoice (contrived example) but the invoice needs to be associated with a customer I can use "customerB" from the fixtures module in that relationship. I can trust that customerB is in the database because it was inserted previously. But it will be "detached" as it was not fetched from the database. We could call findOne for every fixture within the tests, but that would make tests much more verbose and has a performance impact.
So we've tried to solve this in many ways... none of which seem to work. One thought was that we could disable cascade persist. That clearly won't work based on your explanation, which makes sense.
The next thought was "Can we inject these entities into the identity map, so they are no longer detached, WITHOUT executing a database query?". I thought that's what EntityManager.merge() did. But calling em.merge(detachedEntity) doesn't seem to have any effect. It's possible that EntityManager instance that ends up calling flush() is not the same instance I'm calling merge() on, but it's hard to tell.
What we have done in some instances is pass a reference rather than the entity itself. This prevents the cascade persist, but now we're no longer sending the full entity which makes tests brittle.
Again, I want to make clear that this is only an issue with running our test cases. Normal production operation works fine because we're never working with detached entities. However, having a high-quality test suite is important so we're trying to strike the right balance between developer ergonomics, verbosity, and performance in our tests. My hope is there is just some fundamental aspect of the ORM that needs to "click" so I can solve this problem for us.

@B4nan turning these detached entities into references via Em.getReference() solves the cascade persist problem but obviously any code that relies on the full entity will now break. Is there a way to say "I know what I'm doing. Please treat this entity like a reference and don't try to persist it"?
I was hoping this is what Entity.toReference() does but it clearly doesn't.

Okay after diving deeper into this I think that EntityManager.merge() is my solution and it actually works as advertised. The cases where I thought it had no effect were because someone was forking the EM somewhere in the stack. This was just us not understanding how things worked. I cleaned that up to ensure our test code used the same EntityMap instance and calling merge() on the fixture entities had the desired effect I was looking for, e.i. "I know what I'm doing, treat this entity as managed".
Thank you for your patience. :)


Not clear whether RPO is 15 minutes or few seconds

[Enter feedback here]
Cfr following paragraph:
In the event of an unanticipated region-wide outage, such as a natural disaster that affects the whole Azure region, and if Microsoft has determined that the region won't become available within a reasonable amount of time, Microsoft will notify customers and switch over the traffic so that it's routed to the secondary region instances. In these cases, customers might experience up to 15 minutes of data loss, depending on the nature and timing of the outage. RPO is small: up to a few seconds or a couple of minutes.
The last 2 sentences seem contradictory. Data loss and RPO are the same thing.
Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 496ab166-952c-1325-4132-f680af468674
Version Independent ID: 7ab562ca-bd56-ce01-0df2-d1a6fd244c05
Content: Business continuity and disaster recovery - Finance & Operations | Dynamics 365
Content Source: articles/fin-ops-core/dev-itpro/sysadmin/business-continuity-disaster-recovery.md
Service: dynamics-365-cross-app
GitHub Login: @MicroSri
Microsoft Alias: sriknair

Bug 772465 has been logged to address this issue.

Thanks for your feedback. We are closing this issue because we are either unable to find relevant information or reproduce this. If you're still experiencing the issue described here, please reopen or create a new issue.


[General UI] Fix unstyled, large flash of svg icon

Steps to reproduce the problem

Go to https://learn.qiskit.org/course/ch-labs/lab-5-iterative-phase-estimation-algorithm (or any page)
Let the page load
See huge icon flash on screen

What is the current behavior?

This shouldn't happen
Screenshots (optional but very helpful)
https://user-images.githubusercontent.com/6276074/144462639-1fa07342-4de2-4f40-b37e-c222a0ac010d.mov

This has been solved 👏


[WIP] Normalize path

This PR normalizes the input path for supported operations in zip.
The following is a list:

open
stat
isdir
exists

This closes #76

close the PR as it has been split into multiple PRs.


Fix #9718: Fix user staying authorized despite authKey change

Q
A

Is bugfix?
✔

New feature?
❌

Breaks BC?
❌ (may break BC if IdentityInterface wasn't implemented properly)

Tests pass?
✔/❌

Fixed issues
#9718

@bizley added tests.

@samdark I just got bit by this.. :(
The fix you applied now makes implementing getAuthKey() mandatory.
Before, when not using identity cookies it was optional.
If I don't want to use identity cookies I shouldn't be forced to implement this. I can't just do a dummy implementation because that's a potential security risk (ie if I someone enables identity cookies in the future).
My current implementation just looks like this:
    public function getAuthKey()
    {
        throw new NotSupportedException();
    }

Isn't your way the recommended one when this is not implemented?

But it is broken now, because now normal sessions without identity cookies will also call getAuthKey() to store the auth key in the session...

Ok, I've read your previous comment again and this part

If I don't want to use identity cookies I shouldn't be forced to implement this. I can't just do a dummy implementation because that's a potential security risk (ie if I someone enables identity cookies in the future).

is not a reason to not implement it with return null; for example. Changing this part of application should automatically be followed by changing other related parts.
And this feature is not used only with connection to cookies. It allows as well to log out users by changing their authKey.

It didn't before this pr. Previously changing authkey invalidated only the identity cookies. It didn't end current sessions. Which is actually logical because now if you rotate a users auth key you will log them out of current session as well

If I understand correctly you have a custom session storage that is broken after this change, am I right?

No, I have standard sessions, I just do not use auth keys.
I don't have them in my database I don't use them in cookies.

If I look at validation code in renewAuthStatus:
if ($identity !== null) {
            $authKey = $session->get($this->authKeyParam);
            if ($authKey !== null && !$identity->validateAuthKey($authKey)) {
                $identity = null;
                $ip = Yii::$app->getRequest()->getUserIP();
                Yii::warning("Invalid session auth key attempted for user '$id' from $ip: $authKey", __METHOD__);
            }
        }

It seems authkey is optional, but that means that getAuthKey() has return type null|string, which is not documented. In that case I can return null.
I guess that'll work, since validation is always done using my code ie validateAuthKey() there is no risk that an identity cookie with null authKey ever breaks.
Either this change should be reverted (since it is a BC break) or at the very least the return type of authKey() should be widened to include null...

Ok... so it's a case when having validateAuthKey() and/or getAuthKey() throwing something makes everything broke...

Yes exactly, and specifically getAuthKey(). For validateAuthKey() I can just implement it as return false. But the getAuthKey() docs:
     * The key should be unique for each individual user, and should be persistent
     * so that it can be used to check the validity of the user identity.
     *
     * The space of such keys should be big enough to defeat potential identity attacks.

Make it impossible for me to safely implement it with return null;. Since that explicitly violates the constraints placed on the implementation.

Someone on slack just mentioned the upgrade notes, and those actually do say that return null is acceptable... :)


Issue with batch size in backpropagation while using TripletSemiHardLoss

I'm trying to implement a custom loss function related to Triplet Loss. Triplet loss has a provision to give custom distance metric, that returns pairwise distances between embeddings. I have defined a custom function that works fine on forward-propagation. But on backpropagation (that is what I assume ) it is throwing some error. Following is the error.
InvalidArgumentError:  slice index 16 of dimension 1 out of bounds.  [[{{node TripletSemiHardLoss/PartitionedCall/while_1/body/_226/while_1/strided_slice}}]] [Op:__inference_train_function_31232] Function call stack: train_function
16 is the batch size,my input had. I'm not using any while loop in the custom code. However, there is a for loop.
I have tried the following.
I retrieve the batch size using tf.size(input). Works fine on forward prop.
I have tried both while loop and for loop. On forward propagation, both are working fine. Both are producing same results. Yet on backprop, both are throwing the same error.
A sample of the code if below. I retrieved batch size from input from a previously calling function. Bt below, I have also gathered the same value by calling tf.size(hist_values). That also supposed to give the batch size only. It does work on forward propagation. But on backprop ( I'm assuming , it is backprop only) , it fails.
<EMAIL_ADDRESS>def divide_one_row(hist_values,result,row_num,batch_size):
reshaped = tf.reshape(hist_values[:,row_num],shape=(hist_values.shape[0],1))
duplicated = tf.repeat(reshaped,repeats=tf.size(hist_values),axis=1)
r = tf.math.divide_no_nan(duplicated,hist_values)
result = result.write(row_num,r)
return hist_values,result,row_num+1,batch_size

@tf.function
def get_division_matrix(hist_values,batch_size):
i = tf.constant(0)
result = tf.TensorArray(tf.float32,size=0,dynamic_size=True,clear_after_read=False)

for i in tf.range(tf.size(hist_values)):
    hist_values,result,_,batch_size = divide_one_row(hist_values,result,i,tf.size(hist_values))

return result.stack()`

Following is the entire error stack :
`InvalidArgumentError                      Traceback (most recent call last)
 in
11                            epochs=25,
12                            callbacks=[checkpoint],
---> 13                            verbose=1)
~/anaconda3/lib/python3.7/site-packages/tensorflow/python/util/deprecation.py in new_func(*args, **kwargs)
322               'in a future version' if date is None else ('after %s' % date),
323               instructions)
--> 324       return func(*args, **kwargs)
325     return tf_decorator.make_decorator(
326         func, new_func, 'deprecated',
~/anaconda3/lib/python3.7/site-packages/tensorflow/python/keras/engine/training.py in fit_generator(self, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, validation_freq, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch)
1827         use_multiprocessing=use_multiprocessing,
1828         shuffle=shuffle,
-> 1829         initial_epoch=initial_epoch)
1830
1831   @deprecation.deprecated(
~/anaconda3/lib/python3.7/site-packages/tensorflow/python/keras/engine/training.py in _method_wrapper(self, *args, **kwargs)
106   def _method_wrapper(self, *args, **kwargs):
107     if not self._in_multi_worker_mode():  # pylint: disable=protected-access
--> 108       return method(self, *args, **kwargs)
109
110     # Running inside run_distribute_coordinator already.
~/anaconda3/lib/python3.7/site-packages/tensorflow/python/keras/engine/training.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_batch_size, validation_freq, max_queue_size, workers, use_multiprocessing)
1096                 batch_size=batch_size):
1097               callbacks.on_train_batch_begin(step)
-> 1098               tmp_logs = train_function(iterator)
1099               if data_handler.should_sync:
1100                 context.async_wait()
~/anaconda3/lib/python3.7/site-packages/tensorflow/python/eager/def_function.py in call(self, *args, **kwds)
778       else:
779         compiler = "nonXla"
--> 780         result = self._call(*args, **kwds)
781
782       new_tracing_count = self._get_tracing_count()
~/anaconda3/lib/python3.7/site-packages/tensorflow/python/eager/def_function.py in _call(self, *args, **kwds)
838         # Lifting succeeded, so variables are initialized and we can run the
839         # stateless function.
--> 840         return self._stateless_fn(*args, **kwds)
841     else:
842       canon_args, canon_kwds = \
~/anaconda3/lib/python3.7/site-packages/tensorflow/python/eager/function.py in call(self, *args, **kwargs)
2827     with self._lock:
2828       graph_function, args, kwargs = self._maybe_define_function(args, kwargs)
-> 2829     return graph_function._filtered_call(args, kwargs)  # pylint: disable=protected-access
2830
2831   @property
~/anaconda3/lib/python3.7/site-packages/tensorflow/python/eager/function.py in _filtered_call(self, args, kwargs, cancellation_manager)
1846                            resource_variable_ops.BaseResourceVariable))],
1847         captured_inputs=self.captured_inputs,
-> 1848         cancellation_manager=cancellation_manager)
1849
1850   def _call_flat(self, args, captured_inputs, cancellation_manager=None):
~/anaconda3/lib/python3.7/site-packages/tensorflow/python/eager/function.py in _call_flat(self, args, captured_inputs, cancellation_manager)
1922       # No tape is watching; skip to running the function.
1923       return self._build_call_outputs(self._inference_function.call(
-> 1924           ctx, args, cancellation_manager=cancellation_manager))
1925     forward_backward = self._select_forward_and_backward_functions(
1926         args,
~/anaconda3/lib/python3.7/site-packages/tensorflow/python/eager/function.py in call(self, ctx, args, cancellation_manager)
548               inputs=args,
549               attrs=attrs,
--> 550               ctx=ctx)
551         else:
552           outputs = execute.execute_with_cancellation(
~/anaconda3/lib/python3.7/site-packages/tensorflow/python/eager/execute.py in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
58     ctx.ensure_initialized()
59     tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
---> 60                                         inputs, attrs, num_outputs)
61   except core._NotOkStatusException as e:
62     if name is not None:
InvalidArgumentError:  slice index 16 of dimension 1 out of bounds.
[[{{node TripletSemiHardLoss/PartitionedCall/PartitionedCall/PartitionedCall_1/while/body/_258/while/PartitionedCall/strided_slice}}]] [Op:__inference_train_function_42705]
Function call stack:
train_function
`

Could this be because of this part?
hist_values[:,row_num] in the function. Should tf.slice be used here?

Closing this. The issue was indeed due to the numpy style array slicing. Using tf.slice resolved the issue.


fixes thread safety in CustomObjectDetection not working

This change removes the thread_safe flag because it opts to always make object detection thread safe through the use of tf Sessions. It makes sense to remove the thread_safe flag since we need to setup the Session & Graph beforehand in loadModel() and don't want to introduce a bunch of extra thread_safe checks.
More details on the fix here: https://github.com/tensorflow/tensorflow/issues/28287#issuecomment-495168033

I closed this because Ive between trying to write some unit tests to check it works and discovered some additional issues. Will re-open once I fix them and include the tests.


No Handler is called if ListView is inside Expander in DataTemplate

Hey really great work so far !
Im expecting an Issue when using multiple ListViews wrapped in an expander where Items shall be dragged between.
My Models are three Collections of Classes where the view is bound to.
class Geometry
-Name Property
class Target
-Name Property
class Path
-Name Property
-tbTargets "ICollection of Target"
My ViewModel has the Models as  three Properties
ObservableCollection Geometries
ObservableCollection Targets
ObservableCollection Paths
My View is of the following structure
`<UserControl.Resources>
    <DataTemplate x:Key="GeometryTemplate">
       <Label Content="{Binding Name}" />
    </DataTemplate>

    <DataTemplate x:Key="TargetTemplate">
        <Label Content="{Binding Name}" />
    </DataTemplate>

    <DataTemplate x:Key="PathTemplate">
        <Expander Header="{Binding Name}">
            <ListView ItemsSource="{Binding tbTargets}" ItemTemplate="{StaticResource TargetTemplate}" dd:DragDrop.IsDragSource="True" dd:DragDrop.IsDropTarget="True" dd:DragDrop.DropHandler="{Binding}" dd:DragDrop.DragHandler="{Binding}" />
        </Expander>
    </DataTemplate>

    <Style TargetType="{x:Type Expander}" BasedOn="{StaticResource {x:Type Expander}}">
        <Setter Property="Background" Value="{DynamicResource WhiteBrush}"/>
        <Setter Property="BorderBrush" Value="{DynamicResource WhiteBrush}"/>
    </Style>

</UserControl.Resources>

<Grid>
    <StackPanel Orientation="Vertical">
        <Expander Header="Geometries">
            <ListView ItemsSource="{Binding Geometries}" ItemTemplate="{StaticResource GeometryTemplate}" MaxHeight="200" dd:DragDrop.IsDragSource="True" dd:DragDrop.IsDropTarget="True" dd:DragDrop.DropHandler="{Binding}" dd:DragDrop.DragHandler="{Binding}"/>
        </Expander>
        <Expander Header="Targets">
            <ListView ItemsSource="{Binding Targets}" ItemTemplate="{StaticResource TargetTemplate}" MaxHeight="200" dd:DragDrop.IsDragSource="True" dd:DragDrop.IsDropTarget="True" dd:DragDrop.DropHandler="{Binding}" dd:DragDrop.DragHandler="{Binding}"/>
        </Expander>
        <Expander Header="Paths">
            <ListView ItemsSource="{Binding Paths}" ItemTemplate="{StaticResource PathTemplate}" MaxHeight="200" dd:DragDrop.IsDragSource="True" dd:DragDrop.IsDropTarget="True" dd:DragDrop.DropHandler="{Binding}" dd:DragDrop.DragHandler="{Binding}"/>
        </Expander>
   </StackPanel>
</Grid>

`
If i drag between the Geometries and Targets collection the Drag Handler is called, when im dragging in the Paths child collection not. Is this an issure or am I doing something wrong?
Thank you very much in advance

@pwoestmann Which version do you use?

Sorry for the missing information, my bad :(
Windows 7 Pro
.Net 4.6
Gong <IP_ADDRESS> from Nuget 2016-09-02

@pwoestmann Hi, please take a look at https://github.com/punker76/gong-wpf-dragdrop/pull/214 which will probably fix this issue.
You can grab the alpha nuget package and test sample from here https://ci.appveyor.com/project/punker76/gong-wpf-dragdrop/build/1.1.0-alpha3-hwpiijyw/artifacts

Please let me know if it fixes the issue, thx.

Hey thank you for your fast reply.
But unfortunately the drags and drops inside the Listview in the datatemplate are still not beding handled.
Abstracted into the  the picture above:
SubItem0 would be a listView with a ListView of Labels inside.
Draggin SubItem will fire the event, A drag of a label inside the list of SubItem will not.

@pwoestmann

Maybe there is a problem researching the Handle in the inherited Item by dd:DragDrop.DropHandler="{Binding}" ? Is there a way to Provide the name of the Handle like {Binding Viewmodelname.DragOver}?

Yeah the binding could be the problem. Is there any Bindingexpression Debug output? dd:DragDrop.DropHandler="{Binding}" means you bind to the DataContext of the container (DataTemplate). Can you create a short repo at your github account?

Ive managed to get it working!
I forgot about the missing connection between the DataTemplate and parent element DataContext . So if i set the Handlers to:
dd:DragDrop.DropHandler="{Binding DataContext,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}"                           dd:DragDrop.DragHandler="{Binding DataContext,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" />
everything works as expected and very awesome!
I would like to apologize myelf for insinuating errors in your code :(
Maybe you add this trick to the documentation.
Thank you very much for your fast and professional help.

@pwoestmann Thx. And you don't need to apologize yourself. I'm also not perfect ;-) I will add a note to this if someone uses only one DragHandler/DropHandler.


Update docs for > 2048 token models (SuperHOT)?

Hola, forgive me if this is answered elsewhere.
I'm wondering if there are any special considerations for training a 33b (or other) model that has been updated to use the positional embedding compression technique described by the SuperHOT method?
I'd like to start training my loras on the 33b llama variants that support 8K context length, but would be concerned about doing a training run if the code was artificially limiting the samples to 2048.
Are there any special considerations?  And, in the spirit of making the repo better, would it make sense to add a note to the README.md to explain this for others who might have the same question?
Cross-posted to reddit: https://www.reddit.com/r/LocalLLaMA/comments/14lr93d/finetuning_with_alpaca_lora_4bit_on_8k_context/

Thanks for your information! I think this idea is quite simple (although it does not reduce the VRAM cost). What we need to do is just replace RotaryEmbedding with ScaledRotaryEmbedding (not sure where the code is) and download the finetuned model (e.g. TheBloke's model). Then we can train LoRA with the same script as before.

@johnsmith0031 I've tried it and can't do anything to get the lora to perform better then llama in exllama scaled inference. Am I missing any modules? ["q_proj", "k_proj", "v_proj", "o_proj"]? I've also got all biases. Maybe I'd have to train the Rotary Encoder module for each layer? Any ideas?

@Jeduh Can you clarify what problem you are facing? I don't think more exported modules should impact whether it works or not

If you have any time could you please check over the 2 commits I made in this repo. Somethings blocking it from learning how to scale.

It looks mostly fine to me. Is the loss not converging properly?

Thank you for taking a look :)
Well it seems to always fall bellow 1.1 at around 500 steps and converges around 1.0 avg at 2-3k steps. It looks pretty normal but no matter how much I tune the lr's decays and all that to get a lower converging curve, almost no learning gets applied in scaled inference, so weird.

Do they look strange?

I have a hunch its due to LoRa output or intake at inference.
I remembered ExLlama always showing !! Warning: LoRA zero bias ignored which comes from this code:
self.bias = tensors[key + ".bias"] if has_bias else None
Seems that the 'all' bias I set, Isn't present after training?
This is the 2x scale LoRa adaptor
I have no idea, I'm all ears.

Do they look strange?

I'm not sure how to interpret since there is no labels, but I am assuming pink line is the loss? So it is definitely learning. As for bias, you can ignore it as this repo does not export the bias tensors by default (they will all be 0, there is a code you can change but there's no need, just set bias to none in your LoRA).
I loaded the LoRA in your post in text-generation-webui, set max_seq_len to 4096, and the compress_pos_emb to 2 and with 3271 context it was outputting fine, so I am not sure I see the same problem? Do you have up-to-date version of Exllama? I believe the CUDA allocation was causing some problems before version 0.0.4

Oh right sorry, yeah, top is eval/loss, bottom is train/loss. Ill try updating, thanks for letting me know! that makes me happy :)

@kaiokendev I've been using test_benchmark_inference.py with updated exllama but perplexity's are still in line without -ld lora. I tried it out in Ooobabooga and it does seem to work but maybe I'm just not using the right template?
how do you test perplexities Kaioken?


Inline child array and map data slab into parent slab

Updates epics #292 https://github.com/onflow/flow-go/issues/1744
Updates #296 #297 https://github.com/onflow/cadence/issues/1854
Problem
Memory use on execution nodes, register count, and growth rate can be improved.
Currently, every array or map are stored in its own slab and parent slab refers to child array or map by SlabID.
The current approach can lead to many small slabs, especially for Cadence data structures with multiple nested levels.
Changes
Reduce register count and optimize encoding size.
This commit inlines child array/map in parent slab when:

child array/map fits in one slab (root slab is data slab)
encoded size of inlined child array/map is less than the max inline size limit enforced by parent

This commit optimizes encoding size by:

reusing inlined array types
reusing seed, digests, and field names of inlined composite types

Also update debugging code to handle inlined array/map element.
TODO
In this PR

[ ] add more tests
[ ] cleanup some of the tests

Atree Inlining Part 2
Open new PR to add support for inlinability of child values returned by iterator (requires PR #329)
Cadence Integration
Open new PR in onflow/cadence to integrate with Cadence.

[x] Targeted PR against main branch
[x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work
[x] Code follows the standards mentioned here
[x] Updated relevant documentation
[x] Re-reviewed Files changed in the Github PR explorer
[x] Added appropriate labels

Codecov Report
Patch coverage: 58.65% and project coverage change: -1.62% :warning:

Comparison is base (ac3ab99) 65.26% compared to head (6f25137) 63.65%.
Report is 11 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #342      +/-   ##
==========================================
- Coverage   65.26%   63.65%   -1.62%
==========================================
  Files          14       15       +1
  Lines        8761    10092    +1331
==========================================
+ Hits         5718     6424     +706
- Misses       2325     2788     +463
- Partials      718      880     +162

Files Changed
Coverage Δ

storable.go
59.37% <ø> (ø)

slab.go
66.66% <40.00%> (-33.34%)
:arrow_down:

map_debug.go
51.60% <41.81%> (-0.85%)
:arrow_down:

basicarray.go
49.38% <47.05%> (-0.41%)
:arrow_down:

storable_slab.go
27.53% <50.00%> (-4.35%)
:arrow_down:

storage.go
72.79% <52.00%> (-1.20%)
:arrow_down:

typeinfo.go
53.77% <53.77%> (ø)

array_debug.go
53.15% <55.48%> (+0.87%)
:arrow_up:

map.go
65.14% <57.87%> (-2.22%)
:arrow_down:

array.go
68.48% <61.56%> (-2.07%)
:arrow_down:

... and 2 more

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

Fantastic work Faye! 👏
Some notes from the first review session:

It would be good to document that the "parent pointers" are not stored physically, but are actually functions, in memory (and when they are set). Maybe add some high-level comment to the code and indicate it in the diagrams; they usually show "stored" physical pointers ("storage IDs" (now "slab ID" / "value ID", right?))
Maybe document (if not already) that the inlining approach is to not inline all slabs that are "inlinable" in the sense of fitting inside of the parent, but that inlinability is determined "as a whole" for a whole value. The example was that, a small array is inlinable if it is just a single data slab, but a larger array consisting of a meta slab and some data slabs is not inlinable, even when the meta slab could fit into the parent
Maybe document (if not already), that "slab ID" == "value ID", i.e. they share a namespace, and an ID might be used for a slab, but it might also not. Currently, a slab ID could be checked to exist
As discussed, we might also want to update the child' parent callback when the child is inserted into the container (array and map), e.g. in the Set and Insert operations.

I'll do a proper code review after the next review session. So far the work looks great, well done! 👏

@ramtinms @turbolent thanks for the fast PR reviews! I resolved all feedback that may require coding changes.
Ramtin, thanks for suggestions and approval!  I will open separate PR to update smoke tests.
Bastian, can you please take another look?

@turbolent  I found and resolved edge case found while adding comments about how inlining works on Sunday.
While at it, I also refactored, added more checks, and added no-op to parentUpdater we discussed last week.  Thanks again for good discussions last week.  :+1:

Fantastic work Faye! 👏
Here are the cleaned up notes I took from the last review session last Thursday. They might not be up-to-date anymore, as you might already have addressed some points since then, so please feel free to disregard if that is the case.

Maybe add some general/conceptual comments/explanations of how the inlining works, and what operations/cases need to be supported.

For example, children need to notify their parent on any mutation.
For example, for maps, there are two operations that mutate, set and remove
After a mutation, a receiver/container needs to:

Notify its parent (if any), because the receiver/container might be itself a child of another container (with notifyParentIfNeeded)
Update the child's parent callback, so that the inserted/removed child can notify the receiver/container (with setCallbackwithChild) when that child gets mutated

In the array/map remove operations, only a storable is returned. Similar, the set operations returns a potentially existing existing storable for the given key.
However, there might be values for the storable which have parent callbacks. Those callbacks should theoretically be unset. Loading the value for the storable does not make much sense, as current implementations will allocate another, new value.
I don't quite remember the plan for resolving this. Was the plan to leave the parent callback happening, detect the "invalid" child callback to the "previous" parent, and reject it?

Sometimes "value" is used in a variable name, even though it refers to a just a storable. For example, there was a case for extistingValue, which was only a Storable. Maybe check naming of such variables and update accordingly to avoid confusion.

We walked through the example case of inserting a child into a parent, mutating it, removing the child from that parent, mutating it, and then inserting the child into another container, and mutating it.

It would be good to have an integration test for this in both atree and Cadence.

We noticed that a mutation after the removal (or set operation), atree needs to uninline the child

A callback of a child to a previous parent was a fatal error. However, this is likely not an invalid case:
The child value is mutated, so notifies its parent (parent callback was not unset, but also could not, see above).
Instead of a fatal error, this callback should be a "no-op". Further, when the parent detects such a callback from a previous child, it should now use this opportunity to unset the parent callback from the child.

We talked through the "singleton value" case: StoredValue might return same, existing value, and might not return a new value. It might be good to not make any assumptions about the nature of the returned value (e.g. that an implementation is required to always return a new value), or at least document the assumptions properly.
This prevents regressions in the future, where such assumptions might be broken by the user of the library, i.e. Cadence.

On the Cadence side, there is the implicit invariant that all values stored in an account always reference values in the same account, and never across accounts.
We should add defensive assertions for this invariant, i.e. check check that the container and child addresses match.

Finally, we discussed the encoding, in particular, the deduplication of type information.
When types are dedupliated, there seeds are normalized.
In atree comments/docstring, in Cadence comments/docstrings, and in the Cadence user documentation, we should emphasize that iteration order is undefined (but deterministic of course), and no assumptions should be made during execution or across transactions. For example, just because iteration over the keys of a dictionary has a particular order in one transaction does not mean that it will be the same in the next transaction.
The deduplication optimization will change the current behavior, which some users might rely on (but should (have) not).

I will have another look over the changes of the PR today and will open issues for the TODOs on the Cadence side mentioned above.

@fxamacker Would be good to sync on remaining work, see the (sorry, long) comment above. If there isn't really anything left to be addressed, this should be good to go 🎉
Additional tests and adjustments (if needed) can be done in follow-up PRs, this one is already very large

I had a look at adding the container/child address matching checks to Cadence: Just before performing a mutating operation on a container (array/map), we already transfer the child, so checking the invariant does not really help much: if we insert the assertion we can also check the transfer.
On the atree side, it's not easy to check this invariant: children are values at first, and getting the storable (which is needed to get the potential storage ID) is delayed until the very "end", e.g. deep down when the container/parent is not available anymore.
Maybe there isn't much we can do here

@turbolent  Thanks for detailed review and meeting notes!
I think everything discussed so far have been addressed in this PR.  :tada:

More comments were added about how atree inlining works in commit a75e3886e2987a452487a5ed02559c284a4b096c

Commit 63ea7a74dd58db15fc871c40f4c3c47772dc8c81 handles values with outdated parent callbacks (value was removed or overwritten in parent container):

the callback is no-op when callback detects value is no longer a child in its old parent.
value unsets outdated parent callback

Commit 8d02bbcd024cf77a14b6feb31ca7a4aadec330c7 renamed existingValue.

Commit 042eb686fc19f48fe3e78a69b3cbe6de979a4001 unlined removed or overwritten child (if it is inlined)

I double-checked that atree doesn't make assumption about value returned from StoredValue().

About "invariant that all values stored in an account always reference values in the same account"

it isn't easy to check in code as you mentioned.  However, we check this in tests, for example, atree.CheckStorageHealth() checks that all child or referenced slabs have the same address and atree validation functions also checks inlined slabs in memory have the same address as its parent.

I opened these issues to add more integration tests:

https://github.com/onflow/atree/issues/346
https://github.com/onflow/cadence/issues/2837

BTW, can you please take a look at PR #345?  That is the 2nd of 2 atree inlining PRs.


Datetime documentation on the website miss the type

Description
I followed the doc on your website but the x-axis with datetime isn't converting the timestamp
Steps to Reproduce

Use the example https://apexcharts.com/docs/datetime/
The formating of the x-axis does nothing
Adding         type: 'datetime',
Now it is working

Expected Behavior
Format the timestamp
Actual Behavior
Still showing timestamp instead of format
Screenshots
Reproduction Link
https://apexcharts.com/docs/datetime/

lol, keep your error on the doc. wtf


Unraid error with permission

Unraid show this error. The container is not configured as privileged :
spawned: 'server' with pid 101 THE CONTAINER NO LONGER OPERATES WITH PRIVILEGED USER PERMISSIONS. PLEASE UPDATE YOUR CONFIGURATION ACCORDINGLY: https://github.com/jorenn92/Maintainerr/releases/tag/v2.0.0
I added to the extra parameters :   -u 1000:1000
But still have the error. Thanks in advance!

Unraid requires some extra steps because Ibracorp didn’t update the community app for v2 yet. These steps are specified in this pinned discussion:
https://github.com/jorenn92/Maintainerr/discussions/851

Closing for now but if there is still a problem, please re-open.


In Services sidebar, Limit page-picker to 5 pages max displayed at once

:nut_and_bolt: Description: What code changed, and why?
The page-picker component was breaking out of its container when longer than 5 pages.  This branch constrains the amount of pages to 5 pages max displayed at a time.
:chains: Related Resources
Fixes: https://github.com/chef/automate/issues/4504
:+1: Definition of Done
The page picker no longer breaks out of its container
:athletic_shoe: How to Build and Test the Change
in Automate root: hab studio enter then build components/automate-ui-devproxy && start_all_services
in automate-ui: 'make serve'
in hab studio run for i in {1..3}; do applications_populate_database; done, this will take ~30 seconds to complete
navigate to https://a2-dev.test/applications/service-groups
In the Filter Bar, Filter on application: demo
Click on the first result in the list so that it displays in the sidebar
scroll sidebar to bottom so that you can see the page-picker component
:white_check_mark: Checklist

[x] I have read the CONTRIBUTING document.
[ ] Tests added/updated?
[ ] Docs added/updated?
[x] All commits have been signed-off for the Developer Certification of Origin.

:camera: Screenshots, if applicable
Before:

After:

Rebased to pick-up the Angular 11 bump.

Rebased to pick-up the Angular 11 bump.


Input/output error

I've set-up a samba share as mount and try to back-up to this smb share, but I get an error:
root@raspbmc:/home/pi# /home/pi/pi-backup.sh
cron stop/waiting
[ ok ] Stopping wol-relayd: wol-relayd.
pv: (stdin): read failed: Input/output error                                        ]  1% ETA 6:48:12
 122MB 0:07:11 [ 290kB/s] [>                                                        ]  1%
122+1 records in
123+0 records out
128974848 bytes (129 MB) copied, 432.377 s, 298 kB/s
[....] Starting wol-relayd: wol-relaydwol-relayd: Daemon starting up
. ok
cron start/running, process 18820

I am sorry, I am not familiar with samba at all and the error message is not something I have seen. Someone sent me a pull request, where he/she did a lot of improvements. I have merged the request. Maybe have a second go?


Issue with Window Dragging: Not as Smooth as in Sway

Hello there, upon closer looking, it seems that the window dragging is experiencing frame skips. It also feels like there are skipped frames when dragging the windows.
I am not experiencing this issue in Sway.
Hyprland version; v0.25.0

what if you disable animations on them with misc:animate_mouse_windowdragging = false

what if you disable animations on them with misc:animate_mouse_windowdragging = false

Doesn't disabling animations in general wouldn't it disables this too?

I think it would, but try disabling that explicitly too, we're debugging here.

I can't reproduce it as well.
@Edgars-Cirulis can you build the latest version and test again?

@vaxerski this should have been fixed with the performance improvements, right?

no clue. maybe. I think it's safe to close this


Fix #810

Context
When using MinIO as backend storage, the version IDs contain hyphens. Since https://github.com/gristlabs/grist-core/commit/bcb9740d89b0a59911a58eadea822b3ee7bef37d, hyphens are not considered when capturing the urlId.
Resolves #810
Proposed solution
I could not manage to keep only one route with the regexps, it seems like we cannot use groups (captured or not) inside :urlId…
So I created an alternative route that explicitly handles versions. To be honest I am far from being proud of this work, any help to improve that is highly welcome.
Also this would probably need to add some tests to ensure we would not have any regressions in the future.
Alternative solution?
tegs suggests in this comment as a workaround to open snapshots with adding /doc, which would redirect to this path: https://github.com/gristlabs/grist-core/blob/d8048c3998f6d5c7fbf784317e5aefb63e9408dc/app/server/lib/AppEndpoint.ts#L219
I wonder whether it is intented that the hyphens are not excluded in this path. If not, we may just change the client codebase so this is this path which would handle fetching the document version.

@paulfitz Well, it just works as you suggested!

Thanks for doing this @fflorent !

Thank you for fixing that issue @fflorent !


Unable to build

Version
master branch

Test Environment
not applicable

Current Behavior

I grabbed the current master in order to build it, because I need a stand-alone version and would like to use the new "tui-editor-Editor-deps.js" instead of having to add all the dependencies manually.
After npm install I tried npm run build and npm run-script build - but I always get these errors:
> cross-env webpack && webpack -p

'webpack' is not recognized as an internal or external command,
operable program or batch file.
events.js:183
      throw er; // Unhandled 'error' event
      ^

Error: spawn webpack ENOENT
    at notFoundError (C:\Users\xx\AppData\Roaming\npm\node_modules\cross-env\node_modules\cross-spawn\lib\enoent.js:6:26)
    at verifyENOENT (C:\Users\xx\AppData\Roaming\npm\node_modules\cross-env\node_modules\cross-spawn\lib\enoent.js:40:16)
    at ChildProcess.cp.emit (C:\Users\xx\AppData\Roaming\npm\node_modules\cross-env\node_modules\cross-spawn\lib\enoent.js:27:25)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>build: `cross-env webpack && webpack -p`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

I installed cross-env globally, because that's what helped with another package with a similiar problem, but to no avail.
Expected Behavior

build process works

you need the webpack installed as a dependency or globally.