[Test UI] Sort by Location does not work

Issue Type: Bug
Sometimes tests should be presented in a specific order, such as modeling the same tree that the tests are defined in. Currently it appears the tests are sorted regardless of what order they are added via CreateTestItem even if "Sort by Location" is selected.

VS Code version: Code - Insiders 1.58.0-insider (3caebff71e514ece73b125468881d102e767ee4d, 2021-06-24T05:13:30.907Z)
OS version: Windows_NT x64 10.0.19043
Restricted Mode: No

System Info

Item
Value

CPUs
AMD Ryzen 7 4700U with Radeon Graphics          (8 x 1996)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onrasterization: enabledskia_renderer: enabled_onvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
15.36GB (4.40GB free)

Process Argv
--folder-uri file:///c%3A/Users/JGrote/Projects/vscode-adapter --crash-reporter-id 4453efaa-0821-4555-88e2-3de8bad9109e

Screen Reader
no

VM
0%

Extensions (1)

Extension
Author (truncated)
Version

powershell-preview
ms-
2021.6.1

A/B Experiments
vsliv695:30137379
vsins829:30139715
vsliv368cf:30146710
vsreu685:30147344
python383cf:30185419
vspor879:30202332
vspor708:30202333
vspor363:30204092
pythonvspyt639:30291487
pythontb:30258533
vspre833:30321513
vshan820:30294714
vscus158:30321503
pythonvsuse255:30319630
vscorehov:30301224
3f5j7703:30294757
vscod805cf:30301675
vscextlangct:30310089
vsccppwtct:30312693

Thanks for the issue,
/duplicate https://github.com/microsoft/vscode/issues/126620

@connor4312 I don't think it's a dupe, see "Context Test". I would expect that to come after "basic" (which has failed tests) but instead Describe Nested Foreach Cactus comes next, and the remaining entries are in alphabetical order. I fed them to createTestItem in the order shown in the source file.

Oh, yea, that seems like a bug

This seems to work now... However I also notice you don't have gutter decorations, which would indicate to me that you don't have ranges on your TestItems, which would prevent the decorations from being displayed.

@connor4312 I do now that was before documentTestRoot etc. got merged. Will take at insiders tomorrow.

It looks like "Sort by name" is gone, I assume that's expected, and now I see "Sort by Status/Location" which both work as expected

yep. Seems like people didn't really like/need alphabetical sorting (at least within a file.)


feat(addStateInChain) : Add showAbstract to ncyBreadcrumb options

Give ability to show specific abstract states, even if options.includeAbstract is turned off in configuration

Coverage increased (+0.09%) to 96.64% when pulling 31125a386d706dd76df807b3b02e1fccea38fb59 on KodeShark:showAbstract into 884d9acb2059993e721e44e790969d783a1b6ce9 on ncuillery:master.

Hi,
Thank for the PR, clean, tested and I like your way of writing conditions.
I have 2 comments:

How about force instead of showAbstract ? I will be consistent with the existing skip option.
I would like to have a test case with both skip & force option set to true (The result doesn't really matter, I just need to write what's happen in this case in the docs).

Can you do this ?

Sure. I actually had it set to force initially, but thought it may be too vague to the end user.

Merged, thanks @KodeShark !

@ncuillery Was this not released? I can't seem to find it in 0.3.3.

@epelc for now I think you'll have to use what's on master bower install --save angular-breadcrumb#master


My mistake, this can be deleted

My mistake, this can be deleted

Hello.
So, in the end, did it work for you?

Hmmm. I see that I also forgot to add in the readme file the UseZoftAutoCompleteEntry in the Maui builder.
I'll take note of that builder.UseMauiCommunityToolkit(). I think this enforcement comes from another library that I also created.
Thanks for using this library.


Expose raw probabilities from MultiSoftmax learning objective.

It would be nice to have predict_proba functionality similar to that provided by scikit, to see the probability of each class in a multiclass classification model.

I see MultiSoftprob now.


Issue 3354 - asm fld x, ST(6); accepted

Zero and one argument floating point instructions are not checked to ensure they have the correct number of arugments.  Treat them the same as 2/3/4 argument instructions.
http://d.puremagic.com/issues/show_bug.cgi?id=3354

fails autotester

Yep, needs https://github.com/D-Programming-Language/phobos/pull/443

I've only tested this on win32.


Custom port for test-proxy

Adding this feature so I can run multiple instances of the test-proxy on the same machine using different ports.
Util to test the performance framework with multiple proxy servers without using docker

I am testing your change locally, and this seemingly isn't working with ASPNETCORE_URLS environment variable. We definitely need that to still work given we remap the ports to the docker loopback using it.
Give me a couple minutes to check if its my local config.

which is taking more relevance?  ASPNETCORE_URL env var?  or the input args?
I would expect input args to be the last override.  The env var should change the defaults when no input args are set.
If that's the issue, the code need to change

@vhvb1989 agree. The way it acts right now, if I leave command line args unset, and set ASPNETCORE_URL, that environment variable is not honored. This is how I see it
case 1: ASPNETCORE_URL unset, no command line args -> default to 5000/5001
case 2: ASPNETCORE_URL set, no command lines args -> should honor the env setting (just pass that single value to UseUrls)
case 3: ASPNETCORE_URL set, command line args appear -> should take command line args

Right now we have case 1 and 3, but no 2.

@scbedd I've updated the PR to follow the expected behavior you mentioned.
It required some extra code to handle combinations ( which I am not so sure we wanted, but added it anyway ).
A combination is when the input arguments would only override one port (say http) and the ASPNETCORE_URLS is set, so we would take one value from env and the other one from input args.
Same with overriding just one port with ASPNETCORE_URLS.  Say it only sets HTTPS, we would still want to open the default port for the HTTP


Web support

I realize the docs say web support isn't there, but it also says: "Additional platforms will be prioritized based on feedback from users." :grimacing:

Hey @smcben, Thanks for reporting this feature request. I added that to our Ideas backlog.


Brunch watch with awaitWriteFinish

Hi community,
Description
I read on other ticket that there was a compilation problem (CSS file and JS module are empty) with some editor. The solution would be to add awaitWriteFinish: true in the configuration file.
But I've no results. I tried with Sublime Text disabling "atomic_save", and it works.
I use Brackets editor, and brunch watch is run directly on the server, not locally.
Environment

Brunch: 2.5.3
Node: 4.4.1
NPM: 3.8.3
Operating system: Editor on Windows 7, brunch watch on Debian 8.

package.json contents
{
  "name": "app",
  "version": "1.0.0",
  "description": "",
  "scripts": {
    "start": "brunch watch --server",
    "build": "brunch build --production"
  },
  "author": [
    "test<EMAIL_ADDRESS>  ],
  "license": "ISC",
  "devDependencies": {
    "auto-reload-brunch": "^2.0.0",
    "clean-css-brunch": "^2.0.0",
    "css-brunch": "^2.0.0",
    "javascript-brunch": "^2.0.0",
    "sass-brunch": "^2.0.0",
    "uglify-js-brunch": "^2.0.0"
  },
  "dependencies": {
    "foundation-sites": "^6.0.4",
    "motion-ui": "^1.1.1"
  }
}

brunch config contents
module.exports = {
    awaitWriteFinish: true,
    paths: {
        public: 'public',
        watched: 'private'
    },
    files: {
        javascripts: {
            joinTo: 'js/app.min.js',
            order: {
                before: [
                    'node_modules/foundation-sites/js/foundation.core.js'
                ]
            }
        },
        stylesheets: {
            joinTo: 'css/app.min.css'
        }
    },
    plugins: {
        sass: {
            options: {
                includePaths: [
                    'node_modules/foundation-sites/scss',
                    'node_modules/motion-ui/src'
                ]
            }
        }
    }
}

Do you have idea ?
Thank you !

So, it works in Sublime but not Brackets?
Network saves can be somewhat nasty wrt detecting changes properly after the writes are finished (not started or in process), and different editors use different techniques for saving.
Can you see if usePolling: true (as I suggested in https://github.com/brunch/brunch/issues/1250#issuecomment-200214268) does the trick for you?
If not, it may be worth digging through Brackets documentation to see if it has any flags configuring how it saves the file (akin to atomic_save in Sublime for example)

Hi @goshakkk
I've test usePolling: true, but no result :(
I'll look in the doc Brackets, hoping problem comes from there.
Thank you : )

Try 2.7 and npm i -g brunch/brunch

Hi @paulmillr
After test, no result. My JS module is empty.


Euler Sod Shock Tube Problem

Dear Johannes,
Thanks for making this public !!
I would like to apply your method to the the astrophysics field
in a context where one has to solve hyperbolic PDEs with shocks
similar, for instance, to the 1D Euler equations (coupled system
of equations).
My question is whether is possible to use your method
in such a type of PDEs.
Thanks,
Roberto

Dear Roberto,
thank you very much for you interest!
Can you provide more information about your PDE (dimensionality, regular/non-regular grid, boundary conditions, ...)?
Thanks,
Johannes

Dear Johannes,
It's a hyperbolic PDE system with three coupled equations in the x (ie. 1 spatial component) and t domain.
The equation is the following:
Forward Problem for 1-D Euler Equations for Compressible Flow: The Sod Problem
In this code we solve for rho, u, p  from the following equations:
U_t + AU_x = 0,         (x,t) in (0,1)x(0,0.2]
(rho,u,p)_t=0 = (1.0,0.0,1.0) 0 <= x < 0.5
(rho,u,p)_t=0 = (0.125,0.0,0.1) 0.5 <= x <=1
with Dirichlet boundary conditions which take the values of the initial condition at the boundaries
= [ rho ]       and       A =  [    u, rho, 0    ]
[  u  ]                      [   0,  u, 1/rho  ]
[  p  ]                      [   0, gammap, u ]
rho -- Density of the fluid
u   -- Velocity of the fluid - x direction
p   -- Pressure of the fluid
E   --  Total energy of fluid
We relate the pressure and energy by the equation of state of the form
p = (gamma - 1) ( rhoE - 0.5*rho||u||^2)
For this problem we use gamma = 1.4
Thanks !!
Rbt

BTW I attach a solution using numerical methods (pyclaw) and a standard PINN method for t = 0.2 sec. The idea is to see if your method can do better than the PINN in the discontinuities.
euler1D_t02.pdf
Thanks,
Rbt

Dear Roberto,
thank you very much for the detailed information. Yes, this in fact exactly looks like the kind of problem we where trying to tackle.
I assume you will have a non-regular grid?
Instead of having an output (input) of n_timestepsn_x you will now have n_timestepsn_x*4 -> rho, u, p, E. T
Johannes

Hi Johannes,
The spatial grid can be regular between 0 and 1 (ie. taking a fixed number of steps). I guess you mean that, right ?
I will have a look at your code and try to implement it. If would be good if your approach works in this context since in these problems (ie. standard in astrophysics) pinns fail.
Will you be able to give me a hand in the implementation if I have some issue ?
Thanks a lot !!
Rbt

Yes this is what I meant!
Please don't hesitate to contact me, I am happy to assist for the implementation.
I guess we can close this issue and follow-up via email :)

Yes sure.
Thanks a lot !!


Upload key to ec2

Having EC2 key names as part of the repo is problematic,  as each user need to update it.
With this PR, the user use his own key.
The new playbook,  create-keys.yaml, upload the key to all relevant regions, if not already there.

@glommer let me know what you think


bump to traefik 3

Enhancement Proposal
traefik 3 has been released.
The charm should probably deploy v3.

We should start trying out the release candidate they have for v3 and try to adapt the charm to it.

Note: remember about canonical/traefik-rock#28 when upgrading.


Redux Form not compatible with Login/passwords (redux)

this was covered previously https://github.com/erikras/redux-form/issues/812 but the various solutions don't seem to work with the v6 api (no more this.props.fields). what's the recommended way to handle this?
it would also be nice to get a solution added to the faq section.

Can you provide an example that reproduces that issue?
I tested this with v6.4.3 + React Toolbox Inputs and it just worked™

ping @modosc

Closing due to inactivity.

Hello!
I have same issue - fields has autofill by browser but values is state is not filled - sync validation failed. I use standart input field (type="text" or "password")

@ilusharulkov please open a new issue with a working example.


Adding to the Fontello fonts and CSS

My site already uses Fontello fonts and CSS.
I made some new icons which created a new css and font.
I have gotten the new font to work, but it then cancels out other icons, such as social. I then changed the a customized code, still had icons missing and my new font show as Asian characters.
I have tried adding a new CSS line in the page. Also tried adding the new font to the Fontello CSS.
Keep running into Character Code issues.
Is there anyway to merge the 2 files/fonts/css or how can I customize the codes in letters/numbers that are not used?
Thank you,
Dean

Codes and names are customised on second and third tabs. You can partially merge only custom icons, as far as i remember, if you import .svg file. CSS is generate automatically.
If you have conflicts between 2 fonts - make shure you use different font faces for each.


Messed up Debugger using Python

VSCode Version: 1.45.0
OS Version: macOS Catalina

I use vscode to write and debug python scrapy (webcrawler) code. Sometimes the debugger messes up totally. Running lines of code one or two steps later or crash the python interpreter with errors that make no sense at all.
The interesting thing is that if i use print("foo") the debugger works fine again. If I remove the print() the debugger messes up again.
I´m not 100 per cent sure that this issue is vscode related but maybe my wrong implementation of code.
Is there a way to get vscode to "cleanup" the debugger? Quitting vscode or restarting the computer does not work.
The code looks something like this: Parse function of a spider class (scrapy):
def parse(self, response):
        url = response.request.url

        #create item and add values
        article_item = NewsCollectorItem()
        article_item['url'] = url
        article_item['named_references'] = {}
        article_item['text'] = ""

        text_div = content.css('div.storywrapper div.sectionZ div.con div.modCon div.modParagraph')
        for tag in text_div:
            nodes = tag.xpath('./node()')
            nodes_name = nodes.xpath('name()').get()

            for node in nodes:
                child_nodes = node.xpath('./node()')
                for c in child_nodes:

#print('debugger works again, if i uncomment this')
#most of the time node_name is executed one line later than it should

                    node_name = c.xpath('name()').get()
                    if node_name == 'a':
                        href = c.xpath('@href').get() #relative href
#if the debugger / python interpreter crashes totally, it happens here
                        article_item['named_references'][c.xpath('text()').get().strip('\n') if c.xpath('text()').get() is not None else 'unknown'] = href #save the link in the dict, key is the text (if it exists)
                        yield response.follow(c, callback=self.parseArticle)
                    elif node_name == None:
                        article_item['text'] += c.get().strip('\n')

        yield article_item

Here is an example of the messed up debugger:
for x in article_item['named_references']: #line 113, setting x to a key
    ref_url = article_item['named_references'][x]
    yield response.follow(article_item['named_references'][x], callback=self.parseArticle) #this is line 115

  File ".../spiders/tagesschau_spider.py", line 115, in parseArticle     yield response.follow(article_item['named_references'][x], callback=self.parseArticle) UnboundLocalError: local variable 'x' referenced before assignment

/extPython


remove n entries from database? message displays on a floating window and cannot focus on it

When I start nvim, the message remove n entries from database? appears on a floating window, and I cannot focus on it.
Therefore, I cannot remove entries.
Could anyone help me?

#162 did a change for this. You can set db_safe_mode = off in setup {} to disable such confirmation dialog always.

This doesn't really fix the issue of the floating window you can't focus?

You see the dialog even if you set db_safe_mode = false ? Really?


[SPARK-11889] [SQL] Fix type inference for GroupedDataset.agg in REPL

In this PR I delete a method that breaks type inference for aggregators (only in the REPL)
The error when this method is present is:
<console>:38: error: missing parameter type for expanded function ((x$2) => x$2._2)
              ds.groupBy(_._1).agg(sum(_._2), sum(_._3)).collect()

Test build #46441 has started for PR 9870 at commit d7367da.

Test build #46441 has finished for PR 9870 at commit d7367da.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/46441/
Test FAILed.

Ugh, sorry :(
I'll fix this.


New Version update 8.4.3 and 8.4.4 build date: 11/22/2023

Expected Behavior
To Render the Query/Request window to work as is without any rendering issue.
Actual Behavior
Render failure: e.includes is not a function

Reproduction Steps

Upgrade Insomnia to 8.4.3 or 8.4.4
Open an Insomnia Project after upgrade (existing one not new)
and boom Request/Graphql Query Window throws the below error

Is there an existing issue for this?

[X] I have searched the issue tracker for this problem.

Additional Information
Version: Insomnia 8.4.4
Build date: 11/22/2023
OS: Darwin arm64 22.6.0
Electron: 27.0.3
Node: 18.17.1
Node ABI: 118
V8: <IP_ADDRESS>-electron.0
Architecture: arm64

Insomnia Version
8.4.4
What operating system are you using?
macOS
Operating System Version
Ventura 13.6
Installation method
upgrade to existing one
Last Known Working Insomnia version
8.4.2

possible duplicate only difference is the OS version due to the same time issue opening by myself and @camiloclc
. https://github.com/Kong/insomnia/issues/6858.

The same issue:
Mac OS version: Sonoma 14.1
Version: Insomnia 8.4.4
Build date: 11/22/2023
OS: Darwin arm64 23.1.0
Electron: 27.0.3
Node: 18.17.1
Node ABI: 118
V8: <IP_ADDRESS>-electron.0
Architecture: arm64

I'm having the same error with GraphQL requests
Version: Insomnia 8.4.4
Build date: 22/11/2023
OS: Linux x64 5.15.0-89-generic
Electron: 27.0.3
Node: 18.17.1
Node ABI: 118
V8: <IP_ADDRESS>-electron.0
Architecture: x64

[2023-11-22 21:01:15.817] [info]  [plugin] Loaded /Users/rbrown/Library/Application Support/Insomnia/plugins/insomna-photivo-bufferid
[2023-11-22 21:01:15.818] [info]  [plugin] Loaded /Users/rbrown/Library/Application Support/Insomnia/plugins/insomnia-plugin-mpix-token
[2023-11-22 21:01:15.819] [info]  [plugin] Loaded /Users/rbrown/Library/Application Support/Insomnia/plugins/insomnia-plugin-randomnumber
[2023-11-22 21:01:16.554] [info]  Fetching projects for team team_af95bd9b7e2c4a358d4d0d392c89c1af
[2023-11-22 21:01:16.634] [info]  Redirecting to last visited project proj_234bca1ceed04ca4a3c3e87d6371d439
[2023-11-22 21:01:16.859] [info]  [FileSystemDriver] Initialized in "/Users/rbrown/Library/Application Support/Insomnia/version-control"
[2023-11-22 21:01:19.565] [info]  [sync] Activated project prj_0eb2e3ae2ed04fac866d7bc5b61496e9
[2023-11-22 21:01:19.609] [info]  [sync] Activated project prj_0eb2e3ae2ed04fac866d7bc5b61496e9
[2023-11-22 21:01:19.786] [error] TypeError: e.includes is not a function
    at KVe (file:///Applications/Insomnia.app/Contents/Resources/app.asar/index-37d8fc4b.js:470:868)
    at _l (file:///Applications/Insomnia.app/Contents/Resources/app.asar/debug-672b1df6.js:53:34237)
    at FS (file:///Applications/Insomnia.app/Contents/Resources/app.asar/index-37d8fc4b.js:42:19553)
    at aF (file:///Applications/Insomnia.app/Contents/Resources/app.asar/index-37d8fc4b.js:44:44101)
    at tF (file:///Applications/Insomnia.app/Contents/Resources/app.asar/index-37d8fc4b.js:44:39819)
    at qpe (file:///Applications/Insomnia.app/Contents/Resources/app.asar/index-37d8fc4b.js:44:39745)
    at Fd (file:///Applications/Insomnia.app/Contents/Resources/app.asar/index-37d8fc4b.js:44:39596)
    at Px (file:///Applications/Insomnia.app/Contents/Resources/app.asar/index-37d8fc4b.js:44:35959)
    at QO (file:///Applications/Insomnia.app/Contents/Resources/app.asar/index-37d8fc4b.js:44:34906)
    at N (file:///Applications/Insomnia.app/Contents/Resources/app.asar/index-37d8fc4b.js:29:1615)
    at Immediate.me [as _onImmediate] (file:///Applications/Insomnia.app/Contents/Resources/app.asar/index-37d8fc4b.js:29:1987)
    at process.processImmediate (node:internal/timers:476:21)
[2023-11-22 21:02:20.946] [info]  [sync] Activated project prj_0eb2e3ae2ed04fac866d7bc5b61496e9

We found the issue as described here https://github.com/Kong/insomnia/issues/6858#issuecomment-1823647256

Hey folks, update here - we applied a fix for this here: https://github.com/Kong/insomnia/pull/6861
Make sure to download the latest release 8.4.5 that has the fix.

Confirming release 8.4.5 works for me. Hope it works for everyone else. Thanks for fixing it quickly. Appreciated all @filfreire @gatzjames @ihexxa and @marckong


User should be able to copy text from visualization

This task is automatically imported from the old Task Issue Board and it was originally created by Sylwia Brodacka.
Original issue is here.

Team
Technical Designer: ...
Implementer: ...
Acceptance/QA: ...
Why
As
I want <to be able to select text in visualization (JSON, Table or Text)>
So that
Acceptance Criteria
Scenario:
GIVEN [I open a table visualization on a node]
WHEN [I can select one or more cells/rows]
THEN [I can paste it to another node or excel spreadsheet]

Notes
Resources

@MichaelMauderer please update this ticket with the information you have after discussion with Wojciech.

We need to implement custom text selection here to be able to work with lazy text backend.
These steps will need to be undertaken:

we need functionality to determine which character was clicked on (in text position coordinates,.i.e., line and character index).
we require functionality to highlight characters on dragging of a selection area with animations.
we require functionality to transfer the selected text to the clipboard.
we require extra functionality to scroll the visualization on dragging outside the currently visible area. This includes keeping in memory the selected text, and requesting new text from the backend. This extends the current functionality, which would discard text outside the visible window.

I wonder if the first three points could not be replaced with just changing the implementation of lazy text view: instead of the Grid View we could just show a single div with multiple lines of text and position it properly. Perhaps this would be easier?

This would mean mostly re-implementing a lot of the text-grid logic. I wonder if it would be possible to extend the Grid View to access the visible items in order (or by index). That would make it easy to transfer them to a DIV while keeping all the heavy lifting in the Grid View. But we would need APIs to get updates for the visible items, their content and position.
I guess all of that should already be in the Grid View, we would just add a new “Rendering Layer” to the content update logic. So instead of re-implementing, some refactoring might be asked for here.

I think there is already a method for getting the entry by row and column.
Also, instead of using the entire grid view, we have methods in https://github.com/enso-org/enso/blob/a003654b6363d70d465103b69acbaa81f868e394/lib/rust/ensogl/component/grid-view/src/visible_area.rs especially all_visible_locations which gives iterator over all rows and columns basing on the entry size and Viewport. We could just call it on every scroll change and reset div text accordingly.

That sounds like what I had in mind. We might want to try this approach, as this could make text handling a fair bit easier.

I wonder if the first three points could not be replaced with just changing the implementation of lazy text view: instead of the Grid View we could just show a single div with multiple lines of text and position it properly. Perhaps this would be easier?

I don't think this will work. Sure, it would allow you to select them, but lines can be VERY long, so we will be displaying only portion of them. Then, scrolling right, should preserve the selection, which would be then very tricky. I believe that custom selection implementation is more robust and it should not be very hard to implement.

If it's possible to read selection from HTML, then there is still an option to read it and restore properly after scroll. May be considered.

I think even with that approach, we will need all the points that I mentioned above, as we will need to be able to handle the selection and copying of “offscreen” text. To achieve that, we will still need to (1) determine the position of the selected characters within the text (to buffer the offscreen text when scrolling). (2) programmatically update the selection when scrolling and modifying the rendered text.  (3) transfer the whole offscreen and onscreen text to the clipboard.
So in the end, we'd do the same amount of work on a different set of APIs (JS/DOM manipulation versus EnsoGL text manipulation). Some things might be easier to do in JS (no handling of different chunks in a Grid when manipulating the visible text) some in EnsoGL (probably better APIs to work with the selections and easier to work with mouse events in the Grid).

Task related to lazy table visualization, which is not present in GUI2.


Using Nuget to get MRTK 2.2.0 dosn't work with Unity 2019.2

Describe the bug
There are some issues when pressing PLAY on an empty project with MRTK 2.2.0 downloaded from Nuget when using Unity 2019.2
To reproduce
Steps to reproduce the behavior:

New Unity 2019.2 project
Download NuGetForUnity.2.0.0.unitypackage
Import it
Nuget => Add Package => Microsoft.MixedReality.Toolkit.Foundation.2.2.0
Wait to download and compile
Press Play
Some error in the console

Expected behavior
No error
Screenshots

Your setup (please complete the following information)

Unity Version 2019.2.19f1
MRTK Version 2.2.0

Target platform (please complete the following information)
In Editor
Maybe it's related to https://github.com/microsoft/MixedRealityToolkit-Unity/issues/7150

@Thomas-6freedom, we currently build our NuGet packages for Unity 2018.4. #7150 is our issue tracking adding Unity 2019,3 NuGet packages.


Nested arithmetic projections

This allows us to perform things like sum(value)/count(value) or any arbitrary combination of aggregations and arithmetic expressions.
To get this to work there were a couple of changes necessary:

Implement #208
Make query plans dumber, and query optimizations only optimizations and not required for correctness.
Make query builders (the dataframe and SQL APIs) smarter to insert logical query plans correctly for the desired behaviors. For example, when there are arithmetic expressions that use aggregations a projection query plan is inserted after the aggregation to perform that calculation. Likewise, if there is a column that is used in a group by or as input to an aggregation, then a projection to perform that calculation needs to be inserted before the aggregation layer. In the SQL layer this was implemented, in the dataframe API it is expected that the user builds the query layers appropriately.

I wanted to open this early so it's not just on my computer and get some early feedback while I finish it up. A couple of things are still missing:

[x] Not all tests are passing yet and there is some non-correct behavior for expressions like (timestamp/1000)*1000 as timestamp_bucket
[x] Average queries

Side note: What's nice about these changes is that we could now definitively determine the input and output schema of a logical plan query layer which we could use eg. for validations.

I'm really looking forward to this feature, sum(value) maybe is  float64, count(value)  is int64, so sum(value)/count(value) need to support mathematical calculations of different types.
I have also made some attempts, and below are my test cases,the modified code is quite ugly, and last two test cases have leaked memory, can't pass require.Equal(t, 0, fdb.allocator.Allocated()). I haven't found the reason yet:
createtable schema=custom
----

insert cols=(name, duration,  labels.code, labels.instance, labels.method, labels.status, labels.upstream_code, timestamp, trace,  value.body_send, value.header_time,message, value.request)
cdn 1 200 <IP_ADDRESS> GET HIT  -<PHONE_NUMBER>098 legacyplatforms.info 1664782 0.057256 /Triple-buffered.htm 1
cdn 1 200 <IP_ADDRESS> GET MISS<PHONE_NUMBER>520098 productinnovative.com 1769821  3.836798 /solution-oriented.php 1
cdn 1 200 <IP_ADDRESS> HEAD MISS<PHONE_NUMBER>521098 regionalone-to-one.biz  1581608 1.655158 /intangible-local.jpg 1
cdn 1 200 <IP_ADDRESS> GET MISS<PHONE_NUMBER>522098 legacysticky.info  1786570 4.581297 /monitoring-Virtual.jpg 1
cdn 1 200 <IP_ADDRESS> GET HIT  -<PHONE_NUMBER>098 legacyback-end.com 120018 0.156603 /projection-Versatile.js 1
cdn 1 200 <IP_ADDRESS> GET HIT -<PHONE_NUMBER>098 dynamicweb-enabled.com  621713 0.154511 /incremental/core/Cross-platform/conglomeration.css 1
cdn 1 200 <IP_ADDRESS> GET HIT  -<PHONE_NUMBER>098 futureembrace.org  2130660 0.286799 /full-range-4th%20generation/Customizable_interface%20Business-focused.htm 1
cdn 1 200 <IP_ADDRESS> PUT HIT  -<PHONE_NUMBER>098 districtenable.org  195706 0.171824 /Face%20to%20face.gif 1
cdn 1 200 <IP_ADDRESS> GET MISS<PHONE_NUMBER>527098 globalreal-time.biz 1970713 4.200371 /Total_Implemented-budgetary%20management.js 1
cdn 1 200 <IP_ADDRESS> HEAD MISS<PHONE_NUMBER>528098 internationalmission-critical.name  2836182 2.633382 /Re-contextualized.gif 1
cdn 1 200 <IP_ADDRESS> GET MISS<PHONE_NUMBER>529098 futuremindshare.org  1379273 2.028894 /archive/Implemented.htm 1
cdn 1 200 <IP_ADDRESS> GET HIT -<PHONE_NUMBER>098 futurerobust.io  825589 0.384408 /methodology.jpg 1
cdn 1 200 <IP_ADDRESS> PUT MISS<PHONE_NUMBER>531098 futuresystems.biz  2320748 4.660421 /initiative.css 1
cdn 1 200 <IP_ADDRESS> GET MISS<PHONE_NUMBER>532098 futuresynergize.name  166355 2.627923 /4th%20generation-national/emulation.js 1
cdn 1 200 <IP_ADDRESS> GET HIT  -<PHONE_NUMBER>098 principalsynthesize.name  1775497 0.435607 /Versatile/4th%20generation/Devolved-policy/core.htm 1
cdn 1 200 <IP_ADDRESS> POST HIT -<PHONE_NUMBER>098 centralsticky.org  2669659 0.436545 /24%20hour/responsive-Graphical%20User%20Interface.svg 1
cdn 1 200 <IP_ADDRESS> GET MISS<PHONE_NUMBER>535098 principalcommunities.com  2939218 3.630523 /Re-engineered-Multi-tiered-Operative.svg 1
cdn 1 200 <IP_ADDRESS> GET HIT -<PHONE_NUMBER>098 districtempower.name  1668660 0.258968 /Profound-bottom-line.png 1
cdn 1 200 <IP_ADDRESS> DELETE MISS<PHONE_NUMBER>537098 humane-business.name  2926877 0.279401 /flexibility/website.php 1
cdn 1 200 <IP_ADDRESS> GET MISS<PHONE_NUMBER>538098 dynamicimplement.com  1240638  1.376430 /context-sensitive-Re-contextualized.htm 1
----

exec
select sum(value), avg(value) group by labels.instance,labels.status
----
labels.instance  labels.status  sum(value.body_send)  sum(value.header_time)  sum(value.request)  avg(value.body_send)  avg(value.header_time)  avg(value.request)
<IP_ADDRESS>        MISS           20918003.00           31.51                   11.00               1901636.64            2.86                    1.00
<IP_ADDRESS>        HIT            11672284.00           2.34                    9.00                1296920.44            0.26                    1.00

exec
select sum(value.body_send) as body_send, sum(value.request) as request, body_send / request as body_send_rate  group by labels.instance,labels.status
----
labels.instance  labels.status  body_send    request  body_send_rate
<IP_ADDRESS>        MISS           20918003.00  11.00    1901636.64
<IP_ADDRESS>        HIT            11672284.00  9.00     1296920.44

exec
select sum(value.request), avg(value.body_send),max(value.header_time) group by labels.instance,labels.status
----
labels.instance  labels.status  sum(value.request)  avg(value.body_send)  max(value.header_time)
<IP_ADDRESS>        MISS           11.00               1901636.64            4.66
<IP_ADDRESS>        HIT            9.00                1296920.44            0.44

exec
select min(value.body_send), max(value.body_send), sum(value.body_send), count(value.body_send), avg(value.body_send) group by labels.instance,labels.status
----
labels.instance  labels.status  min(value.body_send)  max(value.body_send)  sum(value.body_send)  count(value.body_send)  avg(value.body_send)
<IP_ADDRESS>        MISS           166355.00             2939218.00            20918003.00           11.00                   1901636.64
<IP_ADDRESS>        HIT            120018.00             2669659.00            11672284.00           9.00                    1296920.44

exec
select labels.status, min(value.body_send), max(value.body_send), sum(value.body_send), count(value.body_send), avg(value.body_send) group by labels.instance,labels.status
----
labels.status  min(value.body_send)  max(value.body_send)  sum(value.body_send)  count(value.body_send)  avg(value.body_send)
MISS           166355.00             2939218.00            20918003.00           11.00                   1901636.64
HIT            120018.00             2669659.00            11672284.00           9.00                    1296920.44

exec
select labels.status, min(value.body_send), max(value.body_send), sum(value.body_send)/count(value.body_send) as avg, avg(value.body_send) group by labels.instance,labels.status
----
labels.status  min(value.body_send)  max(value.body_send)  avg         avg(value.body_send)
MISS           166355.00             2939218.00            1901636.64  1901636.64
HIT            120018.00             2669659.00            1296920.44  1296920.44

exec
select labels.status, min(value.body_send), max(value.body_send), sum(value.body_send)/count(value.body_send) as avg, avg(value.body_send)  having avg > 1296921 group by labels.instance,labels.status
----
labels.status  min(value.body_send)  max(value.body_send)  avg         avg(value.body_send)
MISS           166355.00             2939218.00            1901636.64  1901636.64

exec
select labels.status, min(value.body_send), max(value.body_send), sum(value.body_send), avg(value.body_send) * count(value.body_send) as sum group by labels.instance,labels.status
----
labels.status  min(value.body_send)  max(value.body_send)  sum(value.body_send)  sum
MISS           166355.00             2939218.00            20918003.00           20918003.00
HIT            120018.00             2669659.00            11672284.00           11672284.00

exec
select  avg(value.body_send) as avg_1x , avg(value.body_send) * 2 as avg_2x, avg(value.body_send) * 3 as avg_3x  group by labels.instance,labels.status
----
labels.instance  labels.status  avg_1x      avg_2x      avg_3x
<IP_ADDRESS>        MISS           1901636.64  3803273.27  5704909.91
<IP_ADDRESS>        HIT            1296920.44  2593840.89  3890761.33

exec
select sum(value) group by labels
----
labels.code  labels.instance  labels.method  labels.status  labels.upstream_code  sum(value.body_send)  sum(value.header_time)  sum(value.request)
200          <IP_ADDRESS>        DELETE         MISS<PHONE_NUMBER>.00            0.28                    1.00
200          <IP_ADDRESS>        GET            HIT            -                     8806919.00            1.73                    7.00
200          <IP_ADDRESS>        GET            MISS<PHONE_NUMBER>8.00           22.28                   7.00
200          <IP_ADDRESS>        HEAD           MISS<PHONE_NUMBER>.00            4.29                    2.00
200          <IP_ADDRESS>        POST           HIT            -                     2669659.00            0.44                    1.00
200          <IP_ADDRESS>        PUT            HIT            -                     195706.00             0.17                    1.00
200          <IP_ADDRESS>        PUT            MISS<PHONE_NUMBER>.00            4.66                    1.00

exec
select sum(value) group by labels.method, second(5)
----
labels.method  timestamp      sum(value.body_send)  sum(value.header_time)  sum(value.request)
DELETE<PHONE_NUMBER>098  2926877.00            0.28                    1.00
GET<PHONE_NUMBER>098  1664782.00            0.06                    1.00
GET<PHONE_NUMBER>098  4298122.00            8.73                    4.00
GET<PHONE_NUMBER>098  5480646.00            6.52                    3.00
GET<PHONE_NUMBER>098  2767441.00            3.45                    3.00
GET<PHONE_NUMBER>098  5848516.00            5.27                    3.00
HEAD<PHONE_NUMBER>098  1581608.00            1.66                    1.00
HEAD<PHONE_NUMBER>098  2836182.00            2.63                    1.00
POST<PHONE_NUMBER>098  2669659.00            0.44                    1.00
PUT<PHONE_NUMBER>098  195706.00             0.17                    1.00
PUT<PHONE_NUMBER>098  2320748.00            4.66                    1.00

exec
select topk(sum(value.body_send),3) group by labels.method, second(300)
----
labels.method  timestamp      topk(sum(value.body_send)_3)
GET<PHONE_NUMBER>098  20059507.00
HEAD<PHONE_NUMBER>098  4417790.00
DELETE<PHONE_NUMBER>098  2926877.00

exec
select name,topk(value.body_send,3) group by labels
----
name    topk(value.body_send_3)
cdn     2939218.00
cdn     2926877.00
cdn     2836182.00

exec
select name,bottomk(value.body_send,3), topk(value.header_time,3) as top group by labels
----
name    bottomk(value.body_send_3)  name    top
cdn     120018.00                   cdn     4.66
cdn     166355.00                   cdn     4.58
cdn     195706.00                   cdn     4.20

exec
select name,labels.method,IF(labels.method = "GET",1,2) as result
----
name    labels.method  result
cdn     DELETE         2.00
cdn     GET            1.00
cdn     GET            1.00
cdn     GET            1.00
cdn     GET            1.00
cdn     GET            1.00
cdn     GET            1.00
cdn     GET            1.00
cdn     GET            1.00
cdn     GET            1.00
cdn     GET            1.00
cdn     GET            1.00
cdn     GET            1.00
cdn     GET            1.00
cdn     GET            1.00
cdn     HEAD           2.00
cdn     HEAD           2.00
cdn     POST           2.00
cdn     PUT            2.00
cdn     PUT            2.00

exec
select sum(value.body_send) > 20000000  as body_send,labels group by labels.instance,labels.status
----
body_send  labels.instance  labels.status
true       <IP_ADDRESS>        MISS
false      <IP_ADDRESS>        HIT

exec
select IF(sum(value.body_send) > 20000000, "warning", "normal") as body_send,labels group by labels.instance,labels.status
----
labels.instance  labels.status  body_send
<IP_ADDRESS>        MISS           warning
<IP_ADDRESS>        HIT            normal

The following are the test cases I implemented after modifying the code, hoping that frost db can support them natively:
createtable schema=default
----

insert cols=(labels.label1, timestamp, value)
value1 1 2
value1 3 4
value1 5 6
----

exec
select value * timestamp
----
2
12
30

exec
select value * timestamp limit 0,2
----
2
12

exec
select value * timestamp limit 1,2
----
2
12

exec
select value * timestamp limit 3,2
----

exec
select value * timestamp limit 2,2
----
12

exec
select value * 2
----
4
8
12

exec
select 2 * 3
----
6
6
6

exec
select value * (2 * 3)
----
12
24
36

exec
select value * (timestamp * 2)
----
4
24
60

exec
select value * timestamp * 2
----
4
24
60

exec
select value * timestamp + 2 - 1
----
3
13
31

exec
select value * timestamp * (2 - 1)
----
2
12
30

exec
select value, value * timestamp * (2 - 1)
----
2       2
4       12
6       30

exec
select timestamp, value * timestamp * (2 - 1) where value > 2
----
3       12
5       30

exec
select value, timestamp  * value * (2 - 1)  where value > 2
----
4       12
6       30

exec
select value , value  * timestamp * (2 - 1) as result where value > 2
----
4       12
6       30

exec
select value as result, value  * timestamp * (2 - 1)  where value > 2
----
4       12
6       30

exec
select value , value  * timestamp * (2 - 1) as result  having  value > 4
----
6       30

exec
select value as result, value  * timestamp * (2 - 1)  having result > 4
----
6       30

exec
select sum(value), count(value) group by labels.label1
----
value1  12      3

exec
select   max(value) - min(value) , sum(value) / count(value)  group by labels.label1
----
4       4

exec
select  labels.label1, max(value) - min(value) , sum(value) / count(value)  group by labels.label1
----
value1  4       4

exec
select  labels.label1, (max(value) - min(value)) /2  , sum(value) / count(value)  group by labels.label1
----
value1  2       4

exec
select  labels.label1, (max(value) - min(value)) /2  , sum(value) / count(value) , sum(value) / count(value) * 2 group by labels.label1
----
value1  2       4       8

This ended up being a way bigger PR than I thought initially, but it's now ready for review!

I'm testing everything with Parca, and there seem to be a few things that need fixing, and I'll write some tests for those things along the way.

physicalplan/project.go function: DivInt64s, DivFloat64s,DivInt32s
func DivInt32s(mem memory.Allocator, left, right *array.Int32) *array.Int32 {
	res := array.NewInt32Builder(mem)
	defer res.Release()

	res.Resize(left.Len())

	for i := 0; i < left.Len(); i++ {
		res.Append(left.Value(i) / right.Value(i))
	}

	return res.NewInt32Array()
}

does the code need to check if the denominator is 0? Avoid panic
func DivInt32s(mem memory.Allocator, left, right *array.Int32) *array.Int32 {
	res := array.NewInt32Builder(mem)
	defer res.Release()

	res.Resize(left.Len())

	for i := 0; i < left.Len(); i++ {
		if right.Value(i) == 0 {
			res.AppendNull()
		} else {
			res.Append(left.Value(i) / right.Value(i))
		}
	}

	return res.NewInt32Array()
}

testdata/plan/aggregate/aggregate
exec
explain select labels.label1, (max(value) - min(value)) / 2, sum(value) / count(value), (sum(value) / count(value)) * 2 group by labels.label1
----
TableScan [concurrent] - Projection (labels.label1, value) - HashAggregate (max(value),min(value),sum(value),count(value),sum(value),count(value) by labels.label1) - Synchronizer - HashAggregate (max(value),min(value),sum(value),count(value),sum(value),count(value) by labels.label1) - Projection (labels.label1, max(value) - min(value) / 2, sum(value) / count(value), sum(value) / count(value) * 2)

HashAggregate existence of duplicate aggregation，we need perform deduplication steps to reduce resource consumption
sqlparse/visitor.go
					for _, agg := range aggCollector.aggregations {
						if _, ok := includedPreprojections[agg.Expr.Name()]; !ok {
							preProjections = append(preProjections, agg.Expr)
							// The same expression can be used in multiple
							// aggregations, but we only need to project it
							// once.
							includedPreprojections[agg.Expr.Name()] = struct{}{}
						}
						if _, ok := includedAggregations[agg.Name()]; !ok {
							aggregations = append(aggregations, agg)
							includedAggregations[agg.Name()] = struct{}{}
						}
					}

logicalplan/builder.go
resolvedAggExpr may also need to consider deduplication
return Builder{
		err: err,
		plan: &LogicalPlan{
			Projection: &Projection{
				Exprs: append(groupExprs, projectExprs...),
			},
			Input: &LogicalPlan{
				Aggregation: &Aggregation{
					GroupExprs: groupExprs,
					AggExprs:   resolvedAggExpr,
				},
				Input: b.plan,
			},
		},
	}

Can we solve the #687  issue synchronously? when i use dynamic value, there is an issue of aggregation coverage
exec
select labels.instance,sum(value) group by labels.instance
----
labels.instance  sum(value.body_send)  sum(value.request)
<IP_ADDRESS>        19.800000             18.000000
<IP_ADDRESS>        24.200000             22.000000

exec
select labels.instance,sum(value),count(value) group by labels.instance
----
labels.instance  sum(value.body_send)  sum(value.request)  count(value.body_send)  count(value.request)
<IP_ADDRESS>        19.800000             18.000000           8                       8
<IP_ADDRESS>        24.200000             22.000000           8                       8

second test case can't pass, return blow result, count(value) cover sum(value)
        labels.instance  sum(value.body_send)  sum(value.request)  count(value.body_send)  count(value.request)
        <IP_ADDRESS>        8                     8                   8                       8
        <IP_ADDRESS>        8                     8                   8                       8

The following code is my temporary solution to this coverage issue, resultName add col.function.String()
physicalplan/aggregate.go
for _, col := range aggregate.dynamicAggregations {
				if a.finalStage {
					if col.expr.MatchColumn(field.Name) {
						// expand the aggregate.aggregations with a final concrete column aggregation.
						if strings.HasSuffix(field.Name, col.function.String()) {
							columnToAggregate = append(columnToAggregate, nil)
							aggregate.aggregations = append(aggregate.aggregations, Aggregation{
								expr:       logicalplan.Col(field.Name),
								dynamic:    true,
								resultName: resultNameWithConcreteColumn(col.function, strings.TrimSuffix(field.Name, col.function.String())),
								function:   col.function,
							})
							aggregate.dynamicAggregationsConverted[field.Name] = struct{}{}
						}
					}
				} else {
					// If we're aggregating the raw data we need to find the columns by their actual names for now.
					if col.expr.MatchColumn(field.Name) {
						// expand the aggregate.aggregations with a concrete column aggregation.
						columnToAggregate = append(columnToAggregate, nil)
						aggregate.aggregations = append(aggregate.aggregations, Aggregation{
							expr:       logicalplan.Col(field.Name),
							dynamic:    true,
							resultName: field.Name + col.function.String(), // Don't rename the column yet, we'll do that in the final stage. Dynamic aggregations can't match agains't the pre-computed name.
							function:   col.function,
						})
						aggregate.dynamicAggregationsConverted[field.Name] = struct{}{}
					}
				}
			}

I would prefer fixing the bug in a separate PR, this is already quite large.

HashAggregate existence of duplicate aggregation，we need perform deduplication steps to reduce resource consumption

What do you mean? The first one is executed concurrently, the second on merges the concurrent ones into a single result.

Good call about the zero division, I believe the correct thing is -1/0 = -Inf, 1/0 = +Inf, and 0/0 = NaN. Not sure if arrow has representations for these though.

HashAggregate

Ok, no problem, users can optimize it because HashAggregates are in an intermediate state in some queries and not the final result. Therefore, HashAggregates can be deduplicated to avoid duplicate aggregates with the same columns

Frostdb will become an excellent project in the field of data analysis. The current implementation is already perfect, and there are still some issues with dynamic value aggregation (as mentioned in the comments above).
Although the aggregation function supports dynamic column aggregation, the following code needs to be easily modified to support the following test cases
physicalplan/project.go
	case *logicalplan.AggregationFunction:
		switch e.Expr.(type) {
		case *logicalplan.DynamicColumn:
			return dynamicProjection{
				expr: logicalplan.DynCol(fmt.Sprintf("%s(%s", e.Func.String(), e.Expr.Name())),
			}, nil
		default:
			return plainProjection{
				expr: logicalplan.Col(e.Name()),
			}, nil
		}

exec
select labels.instance,sum(value) group by labels.instance
----
labels.instance  sum(value.body_send)  sum(value.request)
<IP_ADDRESS>        22.000000             20.000000
<IP_ADDRESS>        22.000000             20.000000

The following code needs to be optimized and implemented with exception protection: physicalplan/project.go
func (a aliasProjection) Project(mem memory.Allocator, ar arrow.Record) ([]arrow.Field, []arrow.Array, error) {
	fields, arrays, err := a.p.Project(mem, ar)
	if err != nil {
		return nil, nil, err
	}

	if len(fields) != len(arrays) {
		return nil, nil, fmt.Errorf("invalid projection for alias: fields and arrays must be of equal length")
	} else if len(fields) == 0 {
		return nil, nil, nil
	}
       return []arrow.Field{{
		Name:     a.name,
		Type:     fields[0].Type,
		Nullable: fields[0].Nullable,
		Metadata: fields[0].Metadata,
	}}, arrays, nil

because plainProjection can return fields and arrays is nil. so we need to make a judgment( if len(fields) == 0) to avoid panic later on.

add test case
createtable schema=default
----

createtable schema=default
----

insert cols=(labels.label1, stacktrace, timestamp, value, floatvalue)
value1 stack1 1 2 2.0
value1 stack1 3 4 4.0
value1 stack2 5 6 6.0
----

exec
select value, sum(value2) as aaa
----
value
2
4
6

this test case can't pass, return
        testdata/exec/projection/math_projection:10:
         select value, sum(value2) as aaa
        expected:
        value
        2
        4
        6

        found:
        runtime error: index out of range [0] with length 0

@jicanghaixb I think this is something we should fix, but doesn't have to be part of this PR. For what it's worth I think this should already error at the planning stage, as we can statically verify that this column doesn't exist.


feat(full-screen): add french translations

Just traduced full-screen extension to french

Thanks @ShirowLeBG for taking the time out to translate !

No problem, but I just realized I forgot to update strings.ts, i'm sorry
Could you do it ? Thanks :)

Yup yup, I know, will make a version bump also.


fix(MSS): Fix parsing of PIFF Sample Encryption Box

Closes #5390

Please, sign the CLA! Also add some test in https://github.com/shaka-project/shaka-player/blob/main/test/mss/mss_player_integration.js for PlayReady. Thanks!

Will figure out how to add an integration test.

@unext-wendong please sign the CLA! Thanks!

@avelad Thanks.


Use freezed as a tool for generating model code

Using freezed can help us generate a series of methods, including hashcode, equals, copyWith, toString, toJson, fromJson.

2.0.13 uses freezed now, thank you for leading me to this package!


TLS Support

I've poked around and tried several ways to pass the TLS key/cert and pfx files, none of them worked. It seems that when passing the buffer from readFileSync to manifest, then to glue, and then to hapi, there's no conceivable way to keep the buffer from being converted. Then when it's converted to a string, Node complains header too long.
Have you tried to use TLS with your framework? Does it just work for you? Thanks!

An hour after posting the preview comment, I found the cause and solution! It was indeed caused by the combo of Glue+Manifest+Confidence, and if one was to follow the standard documentation of directly passing readFileSync, the binary buffer of your key/cert or pfx files will be converted to a strange format that's not readable by the final node https createServer.
I started with key/cert and then switched to pfx in hoping of better debugging experience, but pfx won't work because the only solution to this issue is to pass string and use 'utf8' encoding. Pfx files are generally too large and node will throw a header too long error. So far the only solution I've found is to use key/cert, encode them in 'utf8', and everything will just work.

My current preference is to put SSL/TLS termination in front of the application, which also makes it a bit easier to switch between production and dev environements. For example, using the Heroku SSL addon or with AWS using an elastic load balancer to terminate the SSL.

I answered a similar question for Aqua last November. Checkout the full discussion here: https://github.com/jedireza/aqua/issues/139

Thanks for the feedback! I went through that discussion before and unfortunately that setup wasn't possible for my current project. The workaround was nice but unintuitive, and passing to server.connection simply wouldn't work as my previous comments have shown.
I will put this issue on Glue and see if there's any possible direct solution to any field containing readFileSync buffer data. Thanks!


Revisions are not created when using migrations or REST

This is not a bug, it's known behavior of Drupal, but it might take some people by surprise and undercuts all our work on versioning.
The post above says "The node type setting mentioned by the other answers only applies to the node form, it does not affect programatically saved nodes.", and I have confirmed that revisions are indeed not created when nodes are updated using other means such as migrations with the --update flag or via REST PATCH requests.
The thread cited above provides some simple hook_node_presave() code that enables revisions. Given that many people will be updating nodes from CSV via migrations, it might be worth considering implementing a node_presave() hook that will enable revisions on Islandora content types so they can create revisions if they want them.
Pinging @elizoller and other @Islandora/8-x-committers.

Related issue in Islandora Workbench: https://github.com/mjordan/islandora_workbench/issues/95.

This may or may not be helpful, but posting it here to note it: https://www.drupal.org/project/drupal/issues/2993557


Noise example

Codecov Report

Merging #113 (1cd3b0b) into master (f1e92e4) will decrease coverage by 3.26%.
The diff coverage is 43.05%.

@@            Coverage Diff             @@
##           master     #113      +/-   ##
==========================================
- Coverage   79.64%   76.38%   -3.27%
==========================================
  Files           4        4
  Lines         963     1012      +49
==========================================
+ Hits          767      773       +6
- Misses        196      239      +43

Impacted Files
Coverage Δ

TopasOpt/utilities.py
69.34% <18.60%> (-12.10%)
:arrow_down:

TopasOpt/Optimisers.py
81.95% <79.31%> (-0.41%)
:arrow_down:

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


alert dialog doesn't close

Discussed in https://github.com/flet-dev/flet/discussions/1980

Originally posted by NaotoTakata October 23, 2023
When I run the application and click the "No" button in the modal, the modal closes as It should be , but when I visit the store page and then return to the index page , clicking the "No" button in the modal doesn't close the modal.
Code sample
import flet as ft

def main(page: ft.Page):
    def close_dlg(e):
        dlg_modal.open = False
        page.update()

    dlg_modal = ft.AlertDialog(
        modal=True,
        title=ft.Text("Please confirm"),
        content=ft.Text("Do you really want to delete all those files?"),
        actions=[
            ft.TextButton("Yes", on_click=close_dlg),
            ft.TextButton("No", on_click=close_dlg),
        ],
        actions_alignment=ft.MainAxisAlignment.END,
        on_dismiss=lambda e: print("Modal dialog dismissed!"),
    )

    def open_dlg_modal(e):
        page.dialog = dlg_modal
        dlg_modal.open = True
        page.update()

    def route_change(route):
        page.views.clear()
        page.views.append(
            ft.View(
                "/",
                [
                    ft.AppBar(
                        title=ft.Text("Flet app"), bgcolor=ft.colors.SURFACE_VARIANT
                    ),
                    ft.ElevatedButton(
                        "Visit Store", on_click=lambda _: page.go("/store")
                    ),
                    ft.ElevatedButton("Open dialog", on_click=open_dlg_modal),
                ],
            )
        )
        if page.route == "/store":
            page.views.append(
                ft.View(
                    "/store",
                    [
                        ft.AppBar(
                            title=ft.Text("Store"), bgcolor=ft.colors.SURFACE_VARIANT
                        ),
                        ft.ElevatedButton("Go Home", on_click=lambda _: page.go("/")),
                    ],
                )
            )
        page.update()

    def view_pop(view):
        page.views.pop()
        top_view = page.views[-1]
        page.go(top_view.route)

    page.on_route_change = route_change
    page.on_view_pop = view_pop
    page.go(page.route)

ft.app(target=main, view=ft.AppView.WEB_BROWSER)

flet ver : 0.10.3
python ver : 3.9.10
Error message
No response
------------------------------------------------------

[x] I have searched for answers to my question both in the issues and in previous discussions.

Updating flet version from 0.10.3 to 0.12.0 solves the problem but , there's new bug that If you change the view several times , the application blacks out.

OS : Windows 10 Pro
flet : 0.12.0
python : 3.9.10

Related to https://github.com/flet-dev/flet/issues/2082. Fix is coming.

Thank you for fixing.
flet is absolutelly greate which enables me to make a cool application easily.
I'm really excited for the upcoming update which is listed on roadmap page.


Companion patch to WebGL FITS engine release

Slight changes for this PR
https://github.com/WorldWideTelescope/wwt-webgl-engine/pull/96/

Yeah, you are completely right, of course. By now, you have imprinted the importance of this into my brain as well. It should be a long time before I make this kind of oversight again :)

Thanks! The CI issues here seem to be due to (1) a transient Conda failure and (2) a bug in the current Matplotlib Intersphinx file that results in the linkcheck action reporting a broken outgoing link that we can't do anything about. So, I'll merge this now. If we still need to avoid the Matplotlib issue by the time we need to make a release, we can just disable the linkcheck step for a little while.


doc: Update migration doc with import feature

Summary

Adding the Console feature for importing end devices
Changes

Added documentation on importing end devices in both Migrating from Third Party Networks and Migrating from V2
Added a Console / CLI tab for documentation

Checklist

[x] Scope: The referenced issue is addressed, there are no unrelated changes.
[x] Run Locally: Verified that the docs build using make server
[ ] New Features Marked: Documentation for new features is marked using the new-in-version shortcode, according to the guidelines in README.md.
[x] Style Guidelines: Documentation obeys style guidelines in README.md.
[x] Commits: Commit messages follow guidelines in CONTRIBUTING.md, there are no fixup commits left.

@laurensslats is this a new feature? if so it should be marked with the new-in-feature shortcode


(change) Restore the log level of the default log exporter

Motivation
Previously in 1.29.0, the log level of the default log exporter was INFO.
 $ docker run -p 1031:1031 -v ./goff:/goff thomaspoignant/go-feature-flag-relay-proxy:v1.29.0
{"level":"info","ts":1719877960.89109,"caller":"middleware/zap.go:71","msg":"Success","remote_ip":"<IP_ADDRESS>","latency":"1.470577ms","host":"localhost:1031","request":"POST /v1/feature/not-found/eval","status":200,"size":154,"user_agent":"curl/8.6.0","request_id":""}
{"level":"info","ts":1719877960.8931952,"caller":"logsexporter/exporter.go:51","msg":"[2024-07-01T23:52:40Z] user=\".\", flag=\"not-found\", value=\"<no value>\""}

However, in 1.30.0, the log level changed to ERROR.
 $ docker run -p 1031:1031 -v ./goff:/goff thomaspoignant/go-feature-flag-relay-proxy:v1.30.0
{"level":"error","ts":1719878033.1694467,"msg":"2024/07/01 23:53:53 INFO [2024-07-01T23:53:53Z] user=\".\", flag=\"not-found\", value=\"<no value>\""}

Is this an intentional change? All the fetching flag logs triggers the monitoring for error level log. This happens regardless of the existence of the flag. Thanks in advance.
Requirements
Please change the log level of fetching flag to INFO.

@itchyny just to be 100% sure, can you share your relay proxy configuration file (without any sensitive information), to be sure that I am reproducing the issue (and check any fix that I will provide).

mkdir goff
cat <<EOF >goff/goff-proxy.yaml
retriever:
  kind: file
  path: /goff/flags.goff.yaml
exporter:
  kind: log
EOF
touch goff/flags.goff.yaml
docker run -p 1031:1031 -v ./goff:/goff thomaspoignant/go-feature-flag-relay-proxy:v1.30.0
curl -D - -XPOST -H Content-Type:application/json -d '{"evaluationContext":{"key":"."}}' localhost:1031/v1/feature/not-found/eval

/assign-me

A fix has been merged, it will be available in the next release.


BUG: UserDefined accepts only list if max not in bins

UserDefined attempts to add max value of given array to bins if that is not covered by given bins. However, it expects that bins are a list (bins.append(max(y))), while it could be any array-like. Even mapclassify's own self.bins gives array. I have changed this behaviour using np.append to cover all possibilities.
Steps to replicate the issue:
x = list(range(1, 1000))
y = list(range(1, 500))
nb = mc.NaturalBreaks(y)
userdefined = mc.UserDefined(x, nb.bins)

(That's all from me today, I just happened to work with mapclassify a lot today and found these simple issues. Thank you for this great package!)

:+1:


add max-asserts rule (fixes #6)

add max-asserts rule (fixes #6) :)
Last one of the rules implemented in #11 :)

Omg. Can't believe how fast those rules got done. Thank you so much @jfmengels! 🍻
Would you be interested in becoming a maintainer on this repo? No commitment required, just some credit in the readme.

Would love to! It would be the first repo I'm a maintainer of too :)
I'll probably look at implementing other rules and proposing other ones (I think there are a lot of rules that can be made for in-editor purposes, like #26). Thanks for the amazing cooperation on all these PRs :)

Thanks for the amazing cooperation on all these PRs :)

No, thank you.

Damn @jfmengels is spitting fire! Super cool job!


netexec: fix packaging

Description of changes
Continuation of https://github.com/NixOS/nixpkgs/pull/275531, fixing a bunch of packaging mistakes from that PR.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

CC @vncsb for testing.
CC @Janik-Haag and @mweinelt since you pointed to me the issues in the packaging.

CC @mweinelt.

I could build netexec with no problems but when I was testing with nixpkgs-review dploot seems to fail when checking runtime dependencies:
[nix-shell:~/.cache/nixpkgs-review/pr-279879-1]$ nix-store -l /nix/store/amvkxl0a458zprxc2g0jcfnbsjd0ab0a-python3.10-dploot-2.2.4.drv
Sourcing python-remove-tests-dir-hook
Sourcing python-catch-conflicts-hook.sh
Sourcing python-remove-bin-bytecode-hook.sh
Sourcing pypa-build-hook
Using pypaBuildPhase
Sourcing python-runtime-deps-check-hook
Using pythonRuntimeDepsCheckHook
Sourcing pypa-install-hook
Using pypaInstallPhase
Sourcing python-imports-check-hook.sh
Using pythonImportsCheckPhase
Sourcing python-namespaces-hook
Sourcing python-catch-conflicts-hook.sh
@nix { "action": "setPhase", "phase": "unpackPhase" }
Running phase: unpackPhase
unpacking source archive /nix/store/4k2qs1p3s6azlvkn0lknkzsidxrp3j8w-dploot-2.2.4.tar.gz
source root is dploot-2.2.4
setting SOURCE_DATE_EPOCH to timestamp<PHONE_NUMBER> of file dploot-2.2.4/pyproject.toml
@nix { "action": "setPhase", "phase": "patchPhase" }
Running phase: patchPhase
@nix { "action": "setPhase", "phase": "updateAutotoolsGnuConfigScriptsPhase" }
Running phase: updateAutotoolsGnuConfigScriptsPhase
@nix { "action": "setPhase", "phase": "configurePhase" }
Running phase: configurePhase
no configure script, doing nothing
@nix { "action": "setPhase", "phase": "buildPhase" }
Running phase: buildPhase
Executing pypaBuildPhase
Creating a wheel...
* Getting build dependencies for wheel...
* Building wheel...
Successfully built dploot-2.2.4-py3-none-any.whl
Finished creating a wheel...
Finished executing pypaBuildPhase
@nix { "action": "setPhase", "phase": "pythonRuntimeDepsCheckHook" }
Running phase: pythonRuntimeDepsCheckHook
Executing pythonRuntimeDepsCheck
Checking runtime dependencies for dploot-2.2.4-py3-none-any.whl
  - cryptography<41.0.0,>=40.0.1 not satisfied by version 41.0.7
  - lxml==4.9.3 not satisfied by version 4.9.4
  - pyasn1<0.5.0,>=0.4.8 not satisfied by version 0.5.1

Don't know if this would only happen in nixpkgs-review but I think relaxing deps would resolve this?

Your testing and running nixpkgs-review likely were before and after the introduction of the pythonRuntimeDepsCheck, so the issue is real and needs to be addressed. Conveniently the recommendation to use pythonRelaxDepsHook was cut from the log.

Don't know if this would only happen in nixpkgs-review but I think relaxing deps would resolve this?

Seems to be an issue only when building dploot with Python 3.11, but since the default still seems to be Python 3.10 it worked because dploot is being build as application.

It seems there is some changes in master, and this is why the branch was working fine but nixpkgs-review doesn't (since nixpkgs-review merges master in the branch before building).
I added pythonRelaxDepsHook in dploot and now its build is working again. However now I am now getting a strange issue while building netexec itself:
       last 10 log lines:
       > adding 'pywerview-0.6.dist-info/top_level.txt'
       > adding 'pywerview-0.6.dist-info/RECORD'
       > removing build/bdist.linux-x86_64/wheel
       > Successfully built pywerview-0.6-py3-none-any.whl
       > Finished creating a wheel...
       > Finished executing pypaBuildPhase
       > Running phase: pythonRuntimeDepsCheckHook
       > Executing pythonRuntimeDepsCheck
       > Checking runtime dependencies for pywerview-0.6-py3-none-any.whl
       >   - impacket>=0.9.22 not satisfied by version 0.12.0.dev1
`` `

For some reason `pywerview` can't be build with the custom `impacket` even if it technically fits its version requirements. I even tried to add `pythonRelaxDepsHook` inside `pywerview` override in `netexec`, but the error continues.

For some reason pywerview can't be build with the custom impacket even if it technically fits its version requirements. I even tried to add pythonRelaxDepsHook inside pywerview override in netexec, but the error continues.

I changed the version metadata in the custom impacket from 0.12.0.dev1 to 0.12.0 and this seems to have do the trick.

I fixed one last issue in asn1tools that also seems to be from recent changes in master.
And also did some additional changes in the netexec package, and it should build successfully.

CC @mweinelt @Janik-Haag for review.
CC @vncsb for testing.

Rebased to fix merge conflicts with master.

Not a fan of introducing libraries, that upstream hasn't touched in 7–10 years, that also show lack of compat with recent Python and common libraries like pyyaml.

Looking at the https://github.com/Pennyw0rth/NetExec/commit/483dc69a2a7aa8f364adfc46096a8b5114c0a31a when upstream introduced the dependency in resource, using https://github.com/RussellLuo/resource was a clear mistake from upstream. They probably were supposed to include https://docs.python.org/3/library/resource.html, that is in stdlib instead.

Not a fan of introducing libraries, that upstream hasn't touched in 7–10 years, that also show lack of compat with recent Python and common libraries like pyyaml.

Looking at the Pennyw0rth/NetExec@483dc69 when upstream introduced the dependency in resource, using https://github.com/RussellLuo/resource was a clear mistake from upstream. They probably were supposed to include https://docs.python.org/3/library/resource.html, that is in stdlib instead.
I just removed https://github.com/RussellLuo/resource, and this removed all those unmaintained dependencies.

BTW, I opened a PR upstream (https://github.com/Pennyw0rth/NetExec/pull/162), but since it doesn't apply cleanly in the current release I will leave the current approach of just removing the deps.
CC @mweinelt, with this change I think all your concerns in this PR should be fixed. Can you re-review?

Not a fan of introducing libraries, that upstream hasn't touched in 7–10 years, that also show lack of compat with recent Python and common libraries like pyyaml.

Looking at the Pennyw0rth/NetExec@483dc69 when upstream introduced the dependency in resource, using https://github.com/RussellLuo/resource was a clear mistake from upstream. They probably were supposed to include https://docs.python.org/3/library/resource.html, that is in stdlib instead.
I just removed https://github.com/RussellLuo/resource, and this removed all those unmaintained dependencies.

BTW, I opened a PR upstream (Pennyw0rth/NetExec#162), but since it doesn't apply cleanly in the current release I will leave the current approach of just removing the deps.
CC @mweinelt, with this change I think all your concerns in this PR should be fixed. Can you re-review?

Upstream merged my patch, I just switched this to unstable for now.

Hi @thiagokokada !
I just ran a nixpkgs-review and got two errors. One in nix build and the other when running the tool itself. The error in nix build is found when compiling crackmapexec.
error: builder for '/nix/store/j72ppqdkbaa7ny5zvln69yv9vbvi06n9-crackmapexec-5.4.0.drv' failed with exit code 1;
       last 10 log lines:
       > Finished creating a wheel...
       > /build/source/dist /build/source
       > Unpacking to: unpacked/crackmapexec-5.4.0...OK
       > Repacking wheel as ./crackmapexec-5.4.0-py3-none-any.whl...OK
       > /build/source
       > Finished executing pypaBuildPhase
       > Running phase: pythonRuntimeDepsCheckHook
       > Executing pythonRuntimeDepsCheck
       > Checking runtime dependencies for crackmapexec-5.4.0-py3-none-any.whl
       >   - neo4j not satisfied by version 5.16.dev0
       For full logs, run 'nix log /nix/store/j72ppqdkbaa7ny5zvln69yv9vbvi06n9-crackmapexec-5.4.0.drv'.
error: 1 dependencies of derivation '/nix/store/7b06w3ldjcnqny98v6zbzfmwlr3pzf4q-review-shell.drv' failed to build

It seems to be a similar dependency error as dploot or pywerview, this time with neo4j.
The other error is when running nxc with smb or ssh does not find the module impacket.dcerpc.v5.gkdi:
Traceback (most recent call last):
  File "/nix/store/66fi4py61wqr9zxhbvb94qjfmb7q6caw-netexec-1.1.0-unstable-2024-01-15/bin/.nxc-wrapped", line 9, in <module>
    sys.exit(main())
             ^^^^^^
  File "/nix/store/66fi4py61wqr9zxhbvb94qjfmb7q6caw-netexec-1.1.0-unstable-2024-01-15/lib/python3.11/site-packages/nxc/netexec.py", line 152, in main
    protocol_object = getattr(p_loader.load_protocol(protocol_path), args.protocol)
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/66fi4py61wqr9zxhbvb94qjfmb7q6caw-netexec-1.1.0-unstable-2024-01-15/lib/python3.11/site-packages/nxc/loaders/protocolloader.py", line 16, in load_protocol
    loader.exec_module(protocol)
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/nix/store/66fi4py61wqr9zxhbvb94qjfmb7q6caw-netexec-1.1.0-unstable-2024-01-15/lib/python3.11/site-packages/nxc/protocols/ssh.py", line 9, in <module>
    from nxc.connection import connection, highlight
  File "/nix/store/66fi4py61wqr9zxhbvb94qjfmb7q6caw-netexec-1.1.0-unstable-2024-01-15/lib/python3.11/site-packages/nxc/connection.py", line 13, in <module>
    from nxc.protocols.ldap.laps import laps_search
  File "/nix/store/66fi4py61wqr9zxhbvb94qjfmb7q6caw-netexec-1.1.0-unstable-2024-01-15/lib/python3.11/site-packages/nxc/protocols/ldap/laps.py", line 11, in <module>
    from impacket.dcerpc.v5.gkdi import MSRPC_UUID_GKDI, GkdiGetKey, GroupKeyEnvelope
ModuleNotFoundError: No module named 'impacket.dcerpc.v5.gkdi'

In this other case, the truth is that I don't know why it doesn't detect the module if it is present in impacket.

I just ran a nixpkgs-review and got two errors. One in nix build and the other when running the tool itself. The error in nix build is found when compiling crackmapexec.

Not really related to this PR, I assume crackmapexec is broken in master already?

Result of nixpkgs-review run on x86_64-linux 1

2 packages marked as broken and skipped:

python312Packages.dploot
python312Packages.dploot.dist

4 packages built:

netexec
netexec.dist
python311Packages.dploot
python311Packages.dploot.dist

Hey @mweinelt, can I get your review here? I think the package now is in a good state to merge, and all your original issues should have been fixed.

CC @exploitoverload @vncsb for testing.

@SuperSandro2000 were your review comments all addressed, is there anything else that needs to be done to move forward this PR (besides testing ?)


[FEAT]WorkPro:FileBox

Please make sure you have read the Wechaty Puppet Service: WorkPro from Wechaty Official Website before you continue writing this issue.
IMPORTANT
DO NOT post your token in the issue. If we need to investigate the behavior of certain token, we will provide a private contact route.
Describe the bug
A clear and concise description of what the bug is.
Info

Platform[e.g. Windows/Mac/Linux]:
Runtime version[e.g. node/JAVA]:
Wechaty version:
Wechaty Puppet version:

To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

Please describe your problem.

因为没有描述问题内容，关闭issue。


[FEATURE]

Is this a unique feature?

[X] I have checked "open" AND "closed" issues and this is not a duplicate

Is your feature request related to a problem/unavailable functionality? Please describe.
I can write the docker file for this repository, with default data useful for later puposes.
Proposed Solution
create a docker file and specify the configurations and port numbers.
Screenshots
No response
Do you want to work on this issue?
Yes
If "yes" to above, please explain how you would technically implement this
No response

Sorry for the late response but sure you can make it!

Hi,
Unfortunately there is a slight issue as I won't be able to complete this
task due to some academic work from the college and personal reasons.
Please close the issue to re-assign to someone deserving .
I deeply apologise for the inconvenience caused.
Regards
Payal Lenka
On Mon, Oct 7, 2024 at 12:58 AM Pancakse @.***> wrote:

Assigned #10 https://github.com/IceCreamMC/IceCream/issues/10 to
@payallenka https://github.com/payallenka.
—
Reply to this email directly, view it on GitHub
https://github.com/IceCreamMC/IceCream/issues/10#event-14531350063, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AT6EWI2RP5M6YSSPMYP6WN3Z2GFODAVCNFSM6AAAAABPOH4YE2VHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJUGUZTCMZVGAYDMMY
.
You are receiving this because you were assigned.Message ID:
@.***>

Alr fine with me


AutoMoq a concrete dependency

Hi,
I am trying to use a Moq of a concrete dependency.
[Theory, AutoMoqData]
public async Task Can_register_a_single_service_successfully(
    [Frozen] Mock<IdentityServerOptions> identityServerOptions,
    ServiceDiscoveryUsingIdentityServer sut
)
{...}

This throws an error where AutoFixture is trying to create a real instance of IdentityServerOptions to inject into my sut instead of using the frozen mock.
If I remove the sut and manually create passing in the identityServerOptions.Object then it all works, so my working theory is that autofixture/automoq is not picking up that the frozen moq can satisfy the dependency and so tries to create a new instance.
I also tried Frozen(Matching.DirectBaseType) as the proxy generated by moq inherits from the requested value, but still no luck.
Is there any way around this as I can't change IdentityServerOptions as it's 3rd party and have more variables to inject to my sut, which makes the workaround a bit messy when I only need to access the one from my example.
Thanks
Euan

Just freeze IdentityServerOptions and use Mock.Get.
Check this page of the booklet I wrote for my developers: https://docs.educationsmediagroup.com/unit-testing-csharp/autofixture/combining-autofixture-with-nunit-and-moq

Unfortunately that doesn't work as IdentityServerOptions is not an abstract class nor an interface and so the AutoMoqCustomization doesn't generate a Moq for it.
For completeness the attribute is:
public AutoMoqDataAttribute()
    : base(() => new Fixture().Customize(new AutoMoqCustomization()))
{ }

Then I don't understand your issue. Why do you need to use Moq at all?

IdentityServerOptions is not my class, and can't be instantiated easily from a unit test so I need to Mock it to pass into my sut. The mocking all works great, but it appears AutoFixture/AutoMoq doesn't pick up on the fact that a Mock can be used in place of a IdentityServerOptions dependency.

Current workaround:
[Theory, AutoMoqData]
public async Task Can_register_a_single_service_successfully(
    [Frozen] ILogger<ServiceDiscoveryUsingIdentityServer> logger,
    [Frozen] IAuditor<ServiceDiscoveryUsingIdentityServer> auditor,
    [Frozen] Mock<IdentityServerOptions> identityServerOptions,
    ... the other dependencies.
)
{
   //Arrange
   var sut= new ServiceDiscoveryUsingIdentityServer(logger, auditor, identityServerOptions, identityService, authorizationService, grpcService);
}

This makes it a little messy to have to list all the dependencies when I'm only usually needing the identityServerOptions mock for most of the test cases.

@Euan-McVie sorry for a late reply.
I hope to shed some light into the issue you're experiencing and possibly a workaround that might help you.
While I was not around when AutoMoq was developed, I believe this behavior was intended.
As you probably know AutoMoq can inject mocks two ways either as a mock and as the mocked type.
The current implementation mocks by default any interface or abstract type, given no other customizations have already intercepted the request for the same type. Which is why the auto mocking occurs for requests that have passed through the entire resolution pipeline, right before throwing an exception because the request couldn't be satisfied.
If we were to move the auto-mocking customizations closer to the beginning of the pipeline, then most types would be resolved as mocks. This is not desirable because then the types dependencies would be null or the mock would throw on creation because some guard clauses prevented the creation of the object in an invalid state.
Now it might seem logical that the [Frozen] mocks would be properly resolved, but due to the internal design we cannot tell which types are frozen/injected because the conditions under which the same instance would always be returned are too complex.
A context request for a mock of a mocked type would almost always yield a value, since almost any type can be mocked and we wouldn't know whether the request was satisfied by a frozen value.
As a workaround for your issue I suggest customizing the concrete type to be created from a mock.
public class CustomCustomization : ICustomization
{
    public void Customize(IFixture fixture)
    {
        fixture.Customize<IdentityServerOptions>(
            x => x.FromFactory<IFixture>(
                f => f.Create<Mock<IdentityServerOptions>>().Object));
    }
}

Since you would have already frozen the mock in your test parameter when you'd requested it in your SUT you would receive the same instance.
[Theory, AutoMoqData]
public async Task Can_register_a_single_service_successfully(
    [Frozen] Mock<IdentityServerOptions> identityServerOptions,
    ServiceDiscoveryUsingIdentityServer sut)

I will leave this issue open for a little while, in case you have more questions on this topic.

Thanks for the response.
Would it work if I created a custom MockAttribute : CustomizeAttribute so that I could do something like:
[Theory, AutoMoqData]
public async Task Can_register_a_single_service_successfully(
    [Frozen, Mock(typeof(IdentityServerOptions))] IdentityServerOptions identityServerOptions,
    [Frozen] ILogger<ServiceDiscoveryUsingIdentityServer> logger,
    [Frozen] IAuditor<ServiceDiscoveryUsingIdentityServer> auditor,
    ServiceDiscoveryUsingIdentityServer sut)

This would be preferred as then the standard AutoMoqData attribute works to generate the other parameters so I can control the specific mocks of concrete objects per test rather than having lots of AutoMoqWithMockXYZ style attributes for other scenarios.
Would this possibly work (not had a chance to test yet myself), or would it not combine properly with the Frozen and underlying AutoMoqData?
public AutoMoqDataAttribute()
    : base(() => new Fixture().Customize(new AutoMoqCustomization()))
{ }

Thanks

@Euan-McVie I suppose you could indeed do that. Here's a naive implementation of a customization that could achieve parameter specific mocking
public class MockCustomization : ICustomization
{
    public MockCustomization(ParameterInfo parameterInfo)
    {
        ParameterInfo = parameterInfo;
    }

    public ParameterInfo ParameterInfo { get; }

    public void Customize(IFixture fixture)
    {
        var mockedType = ParameterInfo.ParameterType.GetGenericArguments()[0];
        fixture.Customizations.Add(new MockRelay(new ExactTypeSpecification(mockedType)));
    }
}

You could then define an attribute that uses it
[AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false)]
public class MockAttribute : Attribute, IParameterCustomizationSource
{
    public ICustomization GetCustomization(ParameterInfo parameter)
    {
        return new MockCustomization(parameter);
    }
}

and finally the test would look something like this
[Theory]
[AutoData]
public void DependencyShouldBeSameAsMockedObject(
    [Frozen][Mock] Mock<DependencyClass> dependencyMock,
    SystemUnderTest sut)
{
    Assert.Same(dependencyMock.Object, sut.Dependency);
}

Closing the issue.
The question seems to have been answered.

Looks great thanks.

@aivascu do you think the types above could be incorporated in the AutoMoq library?
They seem generic and general purpose enough to deserve the honour.

@Kralizek yes it might be useful to have it in the AutoMoq lib.
I'll add an issue to the backlog, with a proposal for this feature.

Finally had a chance to test it and it works great.
I made a minor improvement (I know its still not robust enough for all uses) so that you can still request the concrete object instead of the Mock wrapper.
public void Customize(IFixture fixture)
{
    Type? mockedType = (typeof(IMock<object>).IsAssignableFrom(ParameterInfo.ParameterType))
        ? ParameterInfo.ParameterType.GetGenericArguments()[0]
        : ParameterInfo.ParameterType;
    fixture.Customizations.Add(new MockRelay(new ExactTypeSpecification(mockedType)));
}

Allows
[Theory]
[AutoData]
public void DependencyShouldBeSameAsMockedObject(
    [Frozen][Mock] DependencyClass dependencyMock,
    SystemUnderTest sut)
{
    Assert.Same(dependencyMock.Object, sut.Dependency);
}

@Kralizek yes it might be useful to have it in the AutoMoq lib.
I'll add an issue to the backlog, with a proposal for this feature.

Since I recently stumbled upon this very issue, do you mind me putting forward a PR to implement the MockAttribute as you specified?
@aivascu

@Kralizek yes please do if you have implemented it. AFAIR when I attempted to implemented it wasn't as trivial as the implementation from above. Lets move the discussion to #1269 .


Hearing a bell sound while moving editor to another editor window

VSCode Version: 1.51.0
OS Version: macOS Catalina 10.15.7

As mentioned in the title, I hear a bell sound whenever I move editor between editor groups (by using keyboard shortcuts). I've seen people complain about this elsewhere, and the threads are either locked here on GitHub, or no one seems to have an answer [see issue #46149, comment right below this SO answer].
Steps to Reproduce:

Open a VS Code window, and set appearance to 2 columns
Open multiple files in each editor group.
Select any editor within an editor group, move editor to pre/next editor group using ctd-cmd-left/ctrl-cmd-right.

Does this issue occur when all extensions are disabled? - Yes

I don't think VSCode can change something to prevent this bell from happening, could be some other app or could be electron. Leaving it to @deepak1556 if he maybe heard about this, otherwise will close in 7 days.


Add ability to have ignored repository wildcards

When I open a file from a bazel output, it opens a separate git repository (which is just a mirror of my current repository since it is just the bazel directory). I would like to be able to ignore all files in my bazel cache via a wildcard as shown in the screenshot, but currently it only takes direct paths. This is not useful since bazel adds a unique hash to the cache folder.

If anyone else is looking for somewhat of a solution for this. You can add the following to your vscode configuration file:
{"git.autoRepositoryDetection": false}
At least this solved my issue that vscode found a new git repo every time I opened a file from the bazel folders.

I also need this feature.
My pre-commit configuration automatically checks out repositories to ~/.cache/pre-commit and VSCode always finds and shows them in Source Control. Since their names are something like "repoXXXXXX" where XXXXXX is a random character string I can not explicitly ignore them with that setting.
My settings are:
		"gitlens.detectNestedRepositories": true,
		"git.autoRepositoryDetection": "openEditors",
		"files.exclude": {
			".cache": true,
		},

But it still detects the repositories in ~/.cache/pre-commit even though I don't have any file open that lives there. I even excluded that folder. I don't get why it still detects them. I set that configuration on workspace level.


Upgrade git2go to v33 and libgit2 to 1.3

run goimports

This will require an update the to kpack/git2go-buildpack

current issues:

basic auth over https is broken. PR for fix here: https://github.com/libgit2/git2go/pull/870
when no credentials match git url, build results in: fetching remote: no credentials found for https://github.com/cloudfoundry-samples/cf-sample-app-nodejs

Should we bump this as well for the github action? https://github.com/pivotal/kpack/blob/main/.github/actions/run-tests/Dockerfile#L1

Should we bump this as well for the github action? https://github.com/pivotal/kpack/blob/main/.github/actions/run-tests/Dockerfile#L1

good call

Codecov Report

Merging #901 (e53e0ba) into main (36096fc) will decrease coverage by 0.03%.
The diff coverage is 25.00%.

@@            Coverage Diff             @@
##             main     #901      +/-   ##
==========================================
- Coverage   67.63%   67.59%   -0.04%
==========================================
  Files         117      117
  Lines        5290     5293       +3
==========================================
  Hits         3578     3578
- Misses       1346     1349       +3
  Partials      366      366

Impacted Files
Coverage Δ

pkg/apis/build/v1alpha2/builder_conversion.go
0.00% <ø> (ø)

.../apis/build/v1alpha2/source_resolver_conversion.go
0.00% <ø> (ø)

pkg/git/fetch.go
76.81% <ø> (ø)

pkg/git/git_keychain.go
81.94% <ø> (ø)

pkg/git/proxy.go
69.23% <ø> (ø)

pkg/git/remote_git_resolver.go
80.64% <ø> (ø)

pkg/git/certificate_check_callback.go
20.68% <25.00%> (-2.39%)
:arrow_down:

Continue to review full report at Codecov.

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


Very slow close of document symbols view

Repo

Open the js file from https://github.com/microsoft/vscode/files/3852933/extension-prod.zip
Open the document symbols view
Wait for it to populate
Then try closing it by clicking back in the editor

Bug
There are around 70000 document symbols in this file. Closing the view took around 20 seconds on my machine. I've attached the  profile:
Profile-20191115T144855.json.zip
/cc @eamodio

This is the old tree widget which is still used for quick outline and which is know to be slow. Assiging to @joaomoreno to continue to drive the adoption of the new tree.

also cc @chrmarti

/duplicate https://github.com/microsoft/vscode/issues/69955


React slider field customizer

Q
A

Bug fix?
no

New feature?
no

New sample?
yes

Related issues?
no

What's in this Pull Request?
This project contains SharePoint Framework extensions that illustrates next features:

field customizer
usage of Office UI Fabric React
usage of PnP JS
inline editing of list items

@AJIXuMuK,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by Microsoft. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot

thx Alex, that was fast and appreciated the contributions. I'll slightly adjust the folder name for this sample, but otherwise all good. Would you be available for doing a quick demo around this one and the older popup panel web part demo in next Tuesday's June monthly community call at 8 AM PT?

Hello Vesa,
Thanks for the opportunity, I'll be able to demo on Tuesday.

thx Alex, I'll get you queued up for the demo in the shared agenda. You can, for example, show both - this one and dialog demo in the web parts side.

Yup, I'll show both this one and Panel sample.


Add regions intelligence to connectivity-check

Thanks for your report!
With the release of Rancher 2.0, development on v1.6 is only limited to critical bug fixes and security patches.
If you think we should keep this issue open, please let me know.


First contact with Rails 3.1

Hi.  So I didn't really expect everything to work on the rails31 branch of compass yet.  But that didn't stop me from trying...
So just a quick rundown on the problems one might encounter.  First, when I import sassybuttons, there is a compass breakage that has not been fixed on the rails31 branch yet.  https://github.com/chriseppstein/compass/pull/436
But once that is patched, I get a "Compass::Error: invalid sprite path"  message.  After that, I abandoned the effort.
Hope this helps,
Peter

Also having this issue in rails 3.1
"File to import not found or unreadable: sassy-buttons"
have
in gemfile:
gem 'sassy-buttons'
in config/compass.rb
require ‘sassy-buttons’
also in config/application.rb
require ‘sassy-buttons’
(It wasn't clear which file it goes in)
in scss file
@import "sassy-buttons";
some of the things shown on running bundle instal:
Using bundler (1.0.18)
Using sass (3.1.2)
Using compass (0.11.1.f49120c) from git://github.com/chriseppstein/compass.git (at master)
Using rails (3.1.0.rc1)
Using sassy-buttons (0.0.5)
I am having a similar issue with the "fancy-buttons" gem. I've got compass with blueprint running, but haven't got any other compass dependent gems working.


chore: resolve Instruction inputs fully before checking against cache

Description

Problem*

Resolves
Summary*
It struck me that we should be fully resolving any inputs to the instruction before we check against the cache. This allows us to catch the maximum amount of duplicate instructions.
What's concerning is that I'm now getting a failed constraint error in the sha2 tests. This seems otherwise a fairly low-risk change so I'm not sure if there's a deeper issue in #2450 which wasn't caught which means we should revert that change. @jfecher what do you think?
Documentation

[ ] This PR requires documentation updates when merged.

[ ] I will submit a noir-lang/docs PR.

[ ] I will request for and support Dev Rel's help in documenting this PR.

Additional Context

PR Checklist*

[x] I have tested the changes locally.
[x] I have formatted the changes with Prettier and/or cargo fmt on default settings.

I'm not sure if there's a deeper issue in https://github.com/noir-lang/noir/issues/2450 which wasn't caught which means we should revert that change. @jfecher what do you think?

@vezenovm and I did find a few bugs yesterday in that the DIE pass' definition of a side-effectful instruction was different than the definition needed by this pass to remove duplicates. allocate instructions within the same block were getting removed for example. A PR has been merged to fix that, although we found out later that load instructions to the same address were getting removed as well - you could try adding that case to see if it fixes your test. I have it locally as well in my mem2reg PRs.

It seems like Truncate is the culprit here but I can't understand why that would be the case as it's a relatively well-behaved instruction.

This PR maps the instruction inputs values, so perhaps there are two truncates on the same value where one instruction truncates to a smaller bit size. The smaller truncation comes second in line, so the value is replaced with values that have too large of a bit size.

The target bitsize is part of the key on the cache though so I would expect that situation not to cause troubles. In any case, now we know it's truncation instructions I'll have a closer look at how these are being optimized out.

I'm happy to merge this without Truncate and then revisit this later.

I'd like to put this into a non-breaking release today before we start merging in the changes from acvm-backend-barretenberg.


How can i export only server or client-server mods

i tried to export Create-Extra  modpack, using mrpack-install create.mrpack --server-dir servers/create. When i do it in saw client-side mods like blur+ and sodium

I just downloaded the Create Extra (Fabric) 1.5.6.mrpack file for the modpack to analyze the issue.
The modpack authors decided to set the flags to require e.g. the Sodium mod on both sides, client and server.
This is a bug on their side, not in this project.
Example snippet from the modrinth.index.json in question:
    {
      "path": "mods/sodium-extra-0.5.4+mc1.20.1-build.115.jar",
      "hashes": {
        "sha1": "890864a6ab5d77d57d8d757bcc31f5379b5a11b1",
        "sha512": "ab561186421776d0db506dcbf1a724f80b345be5769ff00aa4327161c79af6e3f353eb65345ce06da30546ffa6b43e1c4a4c41dd246b7e473b131fd727997a85"
      },
      "env": {
        "client": "required",
        "server": "required"
      },
      "downloads": [
        "https://cdn.modrinth.com/data/PtjYWJkn/versions/I7ggF6B5/sodium-extra-0.5.4%2Bmc1.20.1-build.115.jar"
      ],
      "fileSize": 385539
    },
    ```


Adopt keybindings editor to use new table widget

Adopt keybindings editor to use new table widget

@joaomoreno FYI


Connecting to OpenPoGoWeb

I am receiving this error with fresh install from develop branch.. Is this happening to anyone else or anyone know whats up? on dev branch
[MoveToMapPokemon] [INFO] [move_to_map_pokemon_fail] Failure! Map location data was not valid
Traceback (most recent call last):
File "pokecli.py", line 578, in
main()
File "pokecli.py", line 103, in main
bot.tick()
File "/var/www/p4999.copz.net/PokemonGo-Bot/pokemongo_bot/init.py", line 482, in tick
if worker.work() == WorkerResult.RUNNING:
File "/var/www/p4999.copz.net/PokemonGo-Bot/pokemongo_bot/cell_workers/move_to_map_pokemon.py", line 240, in work
self.update_map_location()
File "/var/www/p4999.copz.net/PokemonGo-Bot/pokemongo_bot/cell_workers/move_to_map_pokemon.py", line 179, in update_map_location
return log.logger(err, 'red')
NameError: global name 'log' is not defined
Whhy is log not defined? This used to work it seemed to break over the last day or so.

Please use issue template


Change Intercom ID

Is your feature request related to a problem? Please describe.
We need to change the Intercom ID to the new one.
New ID will be provided privately.

Fixed in https://github.com/mysteriumnetwork/mysterium-vpn-desktop/pull/462


Line channel updates

Fixes https://github.com/Microsoft/BotBuilder/issues/5316
and
https://github.com/Microsoft/BotBuilder/issues/5313
OAuthPrompt (tested and works)
Dialogs Channel: added LIne
- SupportsSuggestedActions: 13
- SupportsCardActions: 99
Channel Constant: added Line

Resubmitted: https://github.com/Microsoft/botbuilder-dotnet/pull/1547