Breaking change in @7.3.2? Key value?

We've been using version 6.26.9 in production on our customer facing app (at tillr.io). We have an in-house tool that allows non-technical staff to build formly forms, using a GUI that generates the JSON. The tool generates a GUID for each form field, which is used as the form key - for example:
{
  'key' : '0e327d36-e4c3-4080-947d-4b8c14d1d89d',
  'type': 'input'
}

Today I finally had time to upgrade our formly version, and every form is now broken. After some investigation, it seems that version 7.3.2 had a change that means that we can't use GUIDs as keys. More specifically, it seems that a key that contains a numeric character that proceeds an alpha character can cause errors. For example:
// ...
'key' : 'A1', // no error
// ...
'key' : '1A', // ERROR
// ...
'key' : 'A1A', // no error
// ...
'key' : '1A1A', // ERROR
// ...
'key' : 'first-line-of-address', // no error
// ...
'key' : '1st-line-of-address', // ERROR
// ...
'key' : 'address-1st-line', // ERROR

You can see it here. Using 7.3.1, there are no errors:
http://jsbin.com/bumegi/edit?html,js,console,output
Using 7.3.2 (or any later version), and everything breaks:
http://jsbin.com/lejafu/edit?html,js,console,output

I can't pretend that I get what's going on with parseGet, but it seems that if it's changed to:
function parseGet(key, model) {
  // If either of these are null/undefined then just return undefined
  if (!key || !model) {
    return undefined;
  }
  return model[key];
}

... then all of the following keys are valid:
// ...
'key' : 100,
// ...
'key' : 'onehundred',
// ...
'key' : '1hundred',

Obviously, I suspect that parseGet is doing something that I'm missing. Can you shed any light?

Yeah, parseGet is to allow for nested keys, like: name.first, so it's using the $parse service. My guess in the $parse service doesn't like a preceding number in a property getter or something. @MCKRUZ, do you think you could look into this?

Yeah, I think I have an easy fix solution

So this is actually more complex then it seems.
The test 'nested keys' is actually passing for the wrong reasons
When this gets called
const secondField = {template: input, key: nestedArray, defaultValue}         scope.fields.push(secondField)
the nestedArray value is baz[0] which actually makes it so the model looks like this
scope.model.baz.0 = value
not like this
scope.model.baz[0] = value
So we need to figure out a way to dynamically set up a nested array.

Ok so I can fix the crash by putting this in
if (/\d/.test(key) && key.indexOf('[') !== -1) {         return model[key]       } else {         return $parse(key)(model)       }
but it wont fix the array issue.
Kent is this sufficient?

I think that if the model is already an array, then angular will treat it like an array. Otherwise (if it's an object or undefined) angular will make it an object and set the property there. @dannycallaghan can you try initializing your model to an object and seeing if that works?

Actually... Yeah, that wont work... Nevermind...
@MCKRUZ, I think that your solution should work pretty well. Just make sure to write/run tests and check the code coverage report generated in the coverage/lcov-report folder to make sure you're covering what you think you are :-) Thanks!

Ok just checked in a fix.

Wow, incredible stuff. Thank you @MCKRUZ and @kentcdodds.
Some open source projects are run badly, some are run really well, and then there is angular-formly. :)

Thanks!
And um...thanks to the second too, I think lol.

All the thanks is to @MCKRUZ on this one. I just clicked the merge button.

Really sorry, but I don't think your tests covered all scenarios, in particular using GUIDs as keys. Using the test examples from my first post, most are now fixed, some are not:
// ...
'key' : 'A1', // no error
// ...
'key' : '1A', // no error
// ...
'key' : 'A1A', // no error
// ...
'key' : '1A1A', // no error
// ...
'key' : 'first-line-of-address', // no error
// ...
'key' : '1st-line-of-address', // no error
// ...
'key' : 'address-1st-line', // ERROR
// ...
'key' : b141c66a-2857-4196-847b-b2096fa6170d', // ERROR

http://jsbin.com/sutuni/edit?html,js,console,output
Pretty certain that this bin is using the very latest.

Yep, that's latest. @dannycallaghan, do you fancy making a pull request to add skipped test cases for your keys?

I have to admit I'm a little stumped on this one
If I do this..
function shouldNotUseParseKey(key) {       return angular.isNumber(key) || (/^\d/.test(key) && key.indexOf('[') === -1) || (key.indexOf('-') !== -1)     }
Then this works
address-1st-line
but this doesn't
b141c66a-2857-4196-847b-b2096fa6170d
Kent any ideas?

I don't think the second one ever worked.  Even with the original code

What if we changed it to:
function shouldNotUseParse(key) {
  return angular.isNumber(key) || !containsSelector(string)
}

// maybe we should put these in formlyUtils...
function containsSelector(string) {
  return contains(string, '.') || (contains(string, '[') && contains(string, ']'))
}

function contains(a, b) {
  if (!a || !a.indexOf) {
    return false
  }
  return a.indexOf(b) !== -1
}

What do you think?

By the second one, do you mean the GUID? It works in production now, on 6.26.9. We have clients using forms with those keys.

Danny sorry I stand corrected.  I pushed a change, that should fix it.

Thanks again @MCKRUZ, I really appreciate it.

Guessing it's been resolved.

Apologies, @kentcdodds. Yes, it's perfect, thank you and @MCKRUZ.


Localization id can't be set from script

Reported on the forum

I've looked into this, and really I think it's a symptom of a problem with the design of the localization system. It's trying to be too clever by automatically assigning localisation ids and supporting import / export at any time.
I'm proposing to simplify down how localization works in a future release.
https://github.com/FungusGames/Fungus/issues/334

The localization system is being deprecated in favour of the simpler String Table system in the new Lua scripting system. Won't fix.


Make a dedicated bootstrap themes repo and/or forums

In my opinion, providing customers who purchase the team's themes with a standalone support forum that they get an account to and/or a public repository for issues would be very helpful to the support team, the community, and the customers. The public repository can provide users who review the themes and find bugs in the demos to clearly and simply report them, as well as provides a clear point for where users should go when they need support. Contributing.MD doesn't seem to be the right place for that information as the user isn't contributing, they are asking for support which is part of the product.
The biggest issue in my opinion with not having a dedicated site or history is that by not answering questions and directing users to email there is no historic base for users to see if others face similar problems and to work together and collaborate. The current posture of the team of using trying to stop users here does nothing in my opinion other than increase frustration of the user opening the issue and those of us that get notifications about issues here. Creating more tension and frustration between the users and core team seems counter-intuitive to me.
In addition to this, providing a standalone repository (with a readme, wiki and issues) would provide clearer direction in my opinion (if users find bootstrap-themes repo, I believe they would connect that it makes more sense to open the issue there instead of here). This would allow closed issues for paid users to be directed to the support forum or the team could do a registration that adds them to a standalone twbs-themes organization. Ultimately though, I feel as though the infrastructure to support bootstrap themes is lacking and has a negative impact on the issue tracker and Bootstrap community.
Ultimately, I think it's important to ensure that there is clear and consistent issue reporting for all users. I believe that simplifying how users can communicate with the team, and if possible providing support for paid themes via Github issues, will benefit not only the team, but the individuals requesting support as well as reduce noise for other members of the Bootstrap community.
If at any time here I've used "the team" incorrectly when it should be a sub-set of the team (e.g. mdo and fat only?), I apologize for the inaccuracy and ultimately am referencing the sub-set of the team.
Thanks for your time and assistance.

/to @mdo @fat @dhg, who are the ones offering the "official" themes (as noted in the "From industry leaders" section of http://themes.getbootstrap.com)

Punting on this—we have the email for official support threads and can't maintain something like that publicly (or even semi-publicly for customers).

Disappointing but understood.


XZ Utils has been banned!

Currently XZ Utils has been closed due to a dangerous warning. Can you fix it?
Source: https://twitter.com/wdormann/status/1773753334710538746

yes, I know https://github.com/awawa-dev/HyperHDR/tree/switch_xz
HyperHDR was not affected as we used 5.4.3 before the attack, but they remove repository from github

XZ Utils

XZ Utils on github was deleted, so I cannot use its link

https://github.com/awawa-dev/HyperHDR/pull/812

it works bro! thank you so much!


Are there any parameters that are related with the number of input frames?

Hello, I'm really appreciated for your nice work and also sharing your valuable code.
I'm trying to train HexPlane model with about 32 frames' multi-view video (like nv3d dataset),
but while training I only got a black blank image corresponding to the validation view.
(It works fine with the nv3d dataset and my dataset with 300 frames).
Should I control some parameters(maybe time_grid_init/time_grid_final? ) according to the number of input frames?
Thank you very much.

Hi. Thanks for the appreciation. If it could work well on your dataset with 300 frames, you may want to change the time_grid_init and time_grid_final to work with 32 frames. When there are only 32 time frames, while the time_grid is bigger, then there would be many time frames that cannot get access to learning signals.  You can try to set time_grid_init = 8 (0.25 * frame numbers) and time_grid_final = 31 or 15. If it works, feel free to tune it. Let me know if it works or not.

Hello,
I wanted to say thank you for your input on this issue. The comments and responses here have been extremely useful in helping me to successfully train a 100-frame video. I have made modifications to some parts of the neural_3D_dataset_NDC.py code (such as tensor sizes, timestamps, etc.) and tweaked the 'time_grid' parameter in the config file as suggested in the comments. It's now working perfectly, and I appreciate the information shared here.
On a related note, I have another question. Currently, the hexplane model renders at the same frame count as the training data. I was wondering if it would be possible to adjust this to render at an arbitrary frame count of my choosing, and if so, where I would need to make such modifications?
Thank you for sharing your work :)

Hi. Yes you can render at arbitrary frame count as you choice. You just need to have a set of timesteps corresponding to these frame count (ranging from -1 to 1) and pass them to hexplanes.

Hi! Will you relese your trained models in Plenoptic dataset? Thanks!


Can't use "-f bestvideo[vcodec=avc]" anymore, (nor "-f bestvideo[vcodec=av1]")

Description of your issue, suggested solution and other information
So trying to set up a command line to download AV1 I noticed that I get stuff like this when viewing formats.
397          mp4        854x480    480p  377k , av01.0.05M.08, 24fps, video only, 10.25MiB

135          mp4        854x480    480p  937k , avc1.4d401e, 24fps, video only, 14.82MiB

Which makes bestvideo[vcodec=]  useless for AVC and AV1, because they would only match that exact string, and most within AVC have different strings. Previously it worked with just plain bestvideo[vcodec=avc].
(I have version 2018.09.10)

from https://github.com/rg3/youtube-dl#format-selection:

Also filtering work for comparisons = (equals), != (not equals), ^= (begins with), $= (ends with), *= (contains) and following string meta fields:


realpath results different from Glob eventEmitter matches

realpath results are absolute paths and when there are symlinks to the same directory, de-dup'ing will produce a smaller set of results than the eventEmitter matches.
i'm not sure if the inconsistency with match events was intentional -- if it was,  perhaps a mention in readme would be helpful.
otherwise, if you plan to make match events consistent with realpath results, it would be helpful, when both realpath and follow are set, to use realpath matches to avoid symlink cycles during directory traversal. This would help prevent inadvertent long delays in tools like node-inspector when module developers accidentally create cycles with npm link.

Doc patch welcome.
The match event is the specific thing that matched, as matches are found.  It is not deduplicated in the normal case, and is not yet resolved to a realpath.  If we had to move the fs.realpath call up earlier in the process, then this would require some inconvenient refactoring.

posted small PR #185 for the readme.
the node-inspector issue i was working on doesn't require streaming matches from glob a.t.m - but probably as more modules adopt streaming this will resurface.
thanks for implementing the realpath and follow options!


test spelling exit status

Pull Request Test Coverage Report for Build<PHONE_NUMBER>3
Details

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

Totals

Change from base Build<PHONE_NUMBER>8:
0.0%

Covered Lines:
0

Relevant Lines:
6

💛  - Coveralls


create-testnet-data: bring create-cardano supply option?

Discussed on Slack here by @johnalotoski

Closing, as this is not planned for now.


Allow Export API to read API key from environment

This allows Gibbon::Export to read an API key from the
MAILCHIMP_API_KEY environment variable if it isn't explicitly
specified, making it consistent with Gibbon::Request.

CI is failing because of a WebMock issue – not sure how this was passing before, spec/gibbon/upsert_spec.rb:19 is failing for me locally on master too 😕
I've opened #296 to update it and that sorts out the issue.

I can try to look into the ci issue as well. Going to merge this then investigate


Try It! feature of Schema Label Extractor form does not execute against run data

Tht "Try It!" feature of the schema -> labels -> executor displays the following modal form:

Clicking on "Execute" does not show any results, it is not clear if the path expression is executed, or the call fails

This appears to happen when the jsonPath expression returns a zero length string


[RFC] Postgres Database API

Updates to Postgres output processor / database schema
Update to create command to allow of upgrading of database schema
Implementation of the Output API using a Postgres database as the backend storage.

Documentation currently WIP.
Note: This PR also contains commits from PR https://github.com/ARM-software/workload-automation/pull/931

Please rebase onto latest master.

Updated.


Merge release7x into release

@bot-gradle test this

I've triggered the following builds for you:

PullRequestFeedback build

@bot-gradle test and merge

No milestone for this PR. Please set a milestone and retry.

@bot-gradle test and merge

I've triggered a build for you.


Keybase client hijacks ctrl-alt-b

Since a few days the ctrl-alt-b hotkey does not work anymore on my Ubuntu 16.04. (It's a rather handy keyboard shortcut in IntelliJ.) I finally traced it to the Keybase client (the prerelease version). However, I do not see where in the code it binds the hotkey...

Ah, that's probably caused by this binding:
 globalShortcut.register('CommandOrControl+Alt+k+b', () => {

which attempts to bind ctrl-alt-k-b as a debug tool, but apparently is also breaking ctrl-alt-b for you. Sorry!

Okay, do you think this will be removed somewhere in the development process? I'll just not use Keybase until then, that is no problem.

For the purposes of people searching, this also impacts OS X under the keystroke ⌘-⌥-b  / command-option-b, and causes the Chromium DOM inspector to appear in the client in version 1.0.16-20160707110020+ee537fc.

Hi, I just noticed the same bug, only in my case it's more of a problem. On my keyboard layout (Slovenian), the AltGr+B comination (AltGr == Ctrl+Alt) is used to type the left bracket ({) and since Keybase completely hijacks it, this makes it impossible do do any programming while Keybase is running.
Is there any chance you could make a config option or just an env. variable to disable this until it's removed?

It also steps on backward-sexp in emacs.


BlazorServer sample is missing minified bootstrap files.

@guardrex
The BlazorServerSample located at aspnetcore/blazor/common/samples/3.x/ does not work correctly due to missing a dependency on Bootstrap for styling.  I get the following error in my dev tools in Chrome due to such.  Please add these into the sample when time permits.  Thanks!

Hello @anthcool ... sure thing ... I'll take a look at that right now.

Oh, yeah ... I see where things went badly. This is a relatively new sample, and it was built directly from the template. We want to try and avoid the whole repo becoming gigantic with styles, so the styles for the app were moved from the WebAssembly sample app (site.css) here. The link to the minified styles should be dropped here. I'll get this sorted out right now. I'll kill that link and confirm that site.css has all of the styles that the app requires. Thanks for catching this @anthcool! :rocket:

Sweet deal!  Thank you!  You rock!  Appreciate your hard work and time.

Reversing what I just said. 🤦♂ ... I see the real problem now! Looks like I'll need to explicitly allow the bootstrap file because we have a repo-wide gitignore rule to kill off minified assets. No worries ... I'll get that squared away.

☝ What I said earlier does apply to most of our samples. I often embed styles into sample apps into a <style> tag to avoid making samples big.


Hovering issues for items on the bottom of the sidebar

User DMPunks and others are reporting an issue where hovering over the "create folder" "create entries" buttons are causing an issue where the bottom-most items can't be accessed that only occurs with card-support installed.
We suspect that it is a module compatibility issue... I'm thinking the savaged.us importer maybe? Hard to reproduce and track down.
Spaceman has more details, logging for tracking mostly.

Thanks for the investigation, Bloy!! That makes a lot of sense.
Turns out this is the same issue as https://github.com/Brownie79/fvtt-card-support/issues/10. Keeping that one for the clearer name.

Hey folks, just to follow-up, the last remnants of this issue should now be fixed as of 1.4.4. Please open a new issue if there are any lingering things I missed, thanks!


fix(ui): Fix compliance status dropdown search

Description
When filtering by Compliance status, the ADD for the select dropdown would not trigger an API call. This PR fixes that issue
Before the fix
https://github.com/stackrox/stackrox/assets/4805485/2fccbb6c-8f79-45b6-9de6-9324df26f944
After the fix
https://github.com/stackrox/stackrox/assets/4805485/f845f9bd-4b14-43f8-817e-468d527bacc9

Quick question @dvail. While integrating the Advanced Filters for VM 2.0, did you consider going to the next page (page 2+) in the table, searching, and resetting the page state? I noticed some weird behavior when I tried to set the page after a search. 🤔

/retest

@sachaudh I checked it right now and did not notice anything strange.
For what it's worth though, the tables in VM automatically set page to 1, so there isn't really a way to reset the page manually after a search.
What kind of behavior were you seeing?

What kind of behavior were you seeing?

Today has been strange. It seems like it works now 🤔 Don't know what I was seeing before. When I checked one of the Compliance status options, it set the page to 1, but when I unchecked it, it went back to the previous page rather than staying at 1. Seems like it works now, but I will need to add it in a separate PR.


GUI has a texture bug when showing some mods

This is how it looks like:

I saw this bugged texture when using:

WorldHandler
Better Advancements

I tried these and these were ok:

Minecraft's pause menu
MineMenu
Paintings++
opening a Minecraft chest (vanilla or from mods)
Barrels (vanilla/mods)
Anvils
Ender Chest
Enchanting Table
Furnace
Cartography Table
Loom
Smoker
Blast Furnace
Grindstone
Stonecutter
Dispensers
Hoppers
Droppers
Horse Inventory
Trader Llama's Inventory
Brewing Stand

I see NO GUI at all when I'm in:

Inventory
Crafting Table
Askitor mod's cart inventory GUI
Create mod's GUI for Schematicannon and Schematic Table
Sign placement GUI

CONTEXT
I guess these from the paperdoll model on the top left. Here's my specs:

Minecraft 1.14.4
Forge 28.1.61
OptiFine HD U F4 pre11
Public GUI Announcement <IP_ADDRESS>

Can you provide a log please ?

My current guess is : the texture path provided for worldhandler has some typos i it.
Same for better advancements
Create mod is currently not known to be supported.
Akitors cart inventory may not use a vanilla base for their cart gui's , so this is the same case as for Create.
Im surprised about inventory and crafting table. Did you test this with a friend or all alone ?
Its hard to get a correct angle alone sometimes.
Again, a log may help me explain these.

I reported the issue to the devs of AskitorCarts and Create mod as well. Here's a log from my latest run which I triggered all of the GUIs: latest.log
I will update you if I get a chance to test this on my server.
Also, when should I send degug.log and when should I send latest.log on GitHub?! Everybody just says send the log, nobody ever specifies which one! I often get confused.

Both are good depending on what the the dev needs to see

I think im gonna need the dev log
Btw your latest log tells us about a network error (packets) from something called TrashSlot Network.
Its not my mod and shouldnt have too much issues on the game but the author may want to fix the spam and his code.

Thank you for letting me know! I'll report that :)
Here's the debug.log for that same session.

Well none of those helped.
Ill try to find the issue out myself, by manually searching the code

Sorry for that! Thanks.

Found the issue
"publicguiannouncement:textures/gui/modsupport/worldhander/world_handler.png",

I'm missing and L in wordhandler in the json file.
You can easily quickfix this yourself by editing the json file that is in the jar under assets/publicguiannouncement/load_screens ...

same issue for the better advancements one. the path provided by the json is incorrect.
I'mg going to solve these issues and PR them to the corresponding mods. It should not be up to me i.m.o to add the support, but from the mods themself

owwww, i see
it feels good to fix a code with your own hands :D

Thanks for the help! I'm gonna test this fix and keep you posted soon.

cant verify anything bad for inventory or crafting table.
they should show up

I can't see the issue here though 🤔

its in the gui folder, not the betteradvancements folder
its nonexistent

oh, yeah. I just remembered something! I'm using Aternos.org for hosting my Minecraft server. Aternos only allows to load mods that are currently on CureForge website. Will this fix work if I launch the server with the version you uploaded on curseforge and only use the fix on my clients? 🤔 I want to make sure that inventory and crafting table GUIs are working fine.

no, the fix would only apply localy, and probably only on a single player worlds.
you can launch the server to test the crafting and player inventory though

it wouldn't hurt launching with a modified jar tohugh
if its only the json
chances are big they will work on your end but not on anyone elses, if they dont have the fix

So here's the update:

the fixes you told me above for WorldHandler and Better Advancements work both in singleplayer and multiplayer (even though some of the codes in mods actually mismatch, I was able to join successfully)
The default inventory and crafting tables work too, they just don't show up on the paperdoll model - which I think may be a good thing as the paper doll model is also present in the default survival inventory.

Also I really liked that it doesn't show the creative inventory and it always defaults to showing the survival inventory :D Overall thank you very much for your time!

yeah indeed, it has been omited in code. that is very intentional
@Override
    public void render(AbstractClientPlayerEntity entityIn, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, float netHeadYaw, float headPitch, float scale) {

        if (Minecraft.getInstance().currentScreen instanceof InventoryScreen || Minecraft.getInstance().currentScreen instanceof CreativeScreen)
            return;

That was genius! So if I want to not announce a GUI, all I should do is to remove their respective .json file?

or entry yes.
the vanilla compat json has all of the entries listed.
but ive been thinking a bit with how you did the experiment :
The Mod loads in the jsons client side , and makes a list for the client player with all the entries.
so it is possible you have a screen for mod X, with texture attached, and send the information to another player that does not have mod X compatibility json, and would just see a blank texture (black / pink) but that shouldn't be any nuissance really. just something that passed my mind.

I used the fixed mod on one device and original mod on another device. One of them rendered those two GUIs black and pink and the other rendered them correctly.
One question: Can I only change the location of the corresponding .json files for GUIs that I don't want? I am trying to not touch the code whenever possible.
Also did you mean this .json file in the comment above?

yes, it is that json file.
I didn't get your question all that well, but here's the deal :
wether a screen can show up or not is determinedb y the sole presence of an entry in the json file.
what is a screen entry ?
its this :
 {
			"class" : "net.geforcemods.securitycraft.gui.GuiCameraMonitor",
			"texture" : "securitycraft:textures/gui/container/blank.png"
		}

the mod just reads trough all of them, and if any is found matching the current open screen, it will display the texture specified below.
So you can either remove the entry ( bracket, class line, texture line, next bracket and the comma)
or replace the texture with a complete blank file. (you can put a 255x255 empty image in assets/publicguiannouncement/gui , call it empty.png, and have the "texture"  line reference that image.
it wont show up for you, and if someone else opens it, you wont be able to see it either.
if you want an entire server to not see the screen, they need to share the same json file.
I'd recommend https://www.curseforge.com/minecraft/mc-mods/resource-loader RESOURCE LOADER to pre load a resource for end users using a modpack, effectively replacing the same named file in a directory without people having to add a resourcepack manually. (got this mod suggested by a modpack maker)

I think I got it, thanks a lot. I couldn't find any WorldHandler entried in the mensioned .json file though. Also sadly the Resource Loader mod isn't available for 1.14.4 (Forge) and it doesn't seem to get updates anymore. Otherwise I am really interested in making a modpack for my own server. It's really helpful to get newbies into the game.
I am taking your time so much, sorry for that. But I feel like I'm connected to a programming source :D three more questions and that's it:

If I understood your message correctly that mod (Resource Loader) helps in making sure that everybody on the server is using same resourcepack and none of the clients can change that, right? If no, Is there any mod to do that? Will forcing a recourcepack from a server do the job? The reason is that I'm planning to add a mod called Hidden Levers which won't do its job if textures of torches and bookshelves are changed.
Do you know any way to save keybindings of Minecraft in one device and then transfer them to another?
What method do you suggest for adding/removing (specially removing) recipes? For example I've got a mod called I Like Wood and many of its recipes conflict with vanilla ones.

how about you come annoy me on my discord with all those questions :D
https://discord.gg/8MEdFZh

this issue has been resolved on discord with SepSol


Refactor tests

Summary

Refactored the test directory
Added unit tests
Run browsers specific tests in Saucelabs
Only run integration tests on pre-release hook
Improved code coverage
Added documentation for the test directory
Pinned down the deps again (why did we unpin them????)

Things to do

We need to upgrade a saucelabs account or apply for the free tier for open source projects.
IE 8 is currently broken (probably because we have a method called delete, IE 8 doesn't like this since delete is a reserved keyword).
Decide on which browsers we want to support and configure saucelabs to test against them
We need to decide which versions of node we want to support, i.e. drop support for 0.12 and lower. This will mean increasing the major version when we do a next release though.
Improve the test docs
Complete coverage (we are almost at 100% ^^) it is probably 10 mins of work to get it there
Create a shrinkwrap and update all our dependencies
Potentially drop the "requirements up to date" badge, that service is down 50% of the time.

Coverage increased (+26.7%) to 97.208% when pulling a738927b3f3375a821da82c649e5148ce7d37825 on refactor-tests into eefbbeaa841fb442db8effd27e1b3af15d52ff79 on master.

Coverage increased (+26.7%) to 97.208% when pulling a738927b3f3375a821da82c649e5148ce7d37825 on refactor-tests into eefbbeaa841fb442db8effd27e1b3af15d52ff79 on master.

Coverage increased (+26.7%) to 97.208% when pulling a738927b3f3375a821da82c649e5148ce7d37825 on refactor-tests into eefbbeaa841fb442db8effd27e1b3af15d52ff79 on master.

Coverage increased (+26.7%) to 97.208% when pulling a738927b3f3375a821da82c649e5148ce7d37825 on refactor-tests into eefbbeaa841fb442db8effd27e1b3af15d52ff79 on master.

Coverage increased (+26.7%) to 97.208% when pulling a738927b3f3375a821da82c649e5148ce7d37825 on refactor-tests into eefbbeaa841fb442db8effd27e1b3af15d52ff79 on master.

Coverage increased (+26.7%) to 97.208% when pulling b8c50a71d8f16c3be5d0eb15aa31cea75b09f8ad on refactor-tests into eefbbeaa841fb442db8effd27e1b3af15d52ff79 on master.

Coverage increased (+26.7%) to 97.208% when pulling b8c50a71d8f16c3be5d0eb15aa31cea75b09f8ad on refactor-tests into eefbbeaa841fb442db8effd27e1b3af15d52ff79 on master.

Coverage increased (+26.7%) to 97.208% when pulling b8c50a71d8f16c3be5d0eb15aa31cea75b09f8ad on refactor-tests into eefbbeaa841fb442db8effd27e1b3af15d52ff79 on master.

Coverage increased (+26.7%) to 97.208% when pulling b8c50a71d8f16c3be5d0eb15aa31cea75b09f8ad on refactor-tests into eefbbeaa841fb442db8effd27e1b3af15d52ff79 on master.

Coverage increased (+26.7%) to 97.208% when pulling b8c50a71d8f16c3be5d0eb15aa31cea75b09f8ad on refactor-tests into eefbbeaa841fb442db8effd27e1b3af15d52ff79 on master.

Coverage increased (+26.7%) to 97.208% when pulling c4a448422ae064d7ff63e0aa0250dd1f31142ae3 on refactor-tests into eefbbeaa841fb442db8effd27e1b3af15d52ff79 on master.

Coverage increased (+26.7%) to 97.208% when pulling c4a448422ae064d7ff63e0aa0250dd1f31142ae3 on refactor-tests into eefbbeaa841fb442db8effd27e1b3af15d52ff79 on master.

Coverage increased (+26.7%) to 97.208% when pulling c4a448422ae064d7ff63e0aa0250dd1f31142ae3 on refactor-tests into eefbbeaa841fb442db8effd27e1b3af15d52ff79 on master.

@iandouglas @nparsons08 Can anyone give this a test run and merge it.
@tbarbugli can you make sure we have a saucelabs payed account for browser integration testing.


[3.0] cherry pick read index bug fix

What have you changed? (mandatory)
Cherry pick read index bug fix in https://github.com/tikv/tikv/pull/4765.
What are the type of the changes? (mandatory)
The currently defined types are listed below, please pick one of the types for this PR by removing the others:

Bug fix (change which fixes an issue)

How has this PR been tested? (mandatory)
Does this PR affect documentation (docs) or release note? (mandatory)
No
Does this PR affect tidb-ansible update? (mandatory)
No

@hicqu @nolouch PTAL


[bootstrapper] progress bar UI polishing

Summary of the Pull Request
What is this about:
Polish the progress bar since it will be visible for the duration of the upgrade process after #8828
Before:

After:

What is include in the PR:
Formatting, coding style, variable & function name.
Dialog title uppercase.
Dialog height and width.
Progress bar label position and background color.
Progress bar height.
How does someone test / validate:
Run the bootstrapper in the debugger since the UI is barely visible when installing PowerToys, unless the .NET Core installation is very slow on your machine.
Quality Checklist

[x] Linked issue: #9643
[ ] Communication: I've discussed this with core contributors in the issue.
[ ] Tests: Added/updated and all pass
[ ] Installer: Added/updated and all pass
[ ] Localization: All end user facing strings can be localized
[ ] Docs: Added/ updated
[ ] Binaries: Any new files are added to WXS / YML

[x] No new binaries
[ ] YML for signing for new binaries
[ ] WXS for installer for new binaries

Contributor License Agreement (CLA)
A CLA must be signed. If not, go over here and sign the CLA.

nice!


Configuring publishing before shadowJar publishes jar with wrong configuration

Originally reported in https://github.com/Goooler/shadow/issues/106
I discovered that my project was configuring publishing before the actual shadowJar, which was causing the wrong classifier to get picked up by the shadow plugin. Is this a reasonable situation that could be improved with lazy evaluation, or should I restructure my build file to configure shadowJar first?
Shadow Version
8.1.4-8.1.8 of Goooler's fork
Gradle Version
8.8
Expected Behavior
The archive published has the classifier that I specified in shadowJar archiveClassifier
Actual Behavior
The archiveClassifier is all
Gradle Build Script(s)
See this modified unit test in my fork, which is failing:
https://github.com/gharris1727/shadow/blob/772444c88e9fbec864364fdc5de6134bb4ccfa2f/src/test/groovy/com/github/jengelman/gradle/plugins/shadow/PublishingSpec.groovy#L81-L127
Content of Shadow JAR (jar tf  - post link to GIST if too long)
N/A

It appears that the test I provided is failing not due to eager evaluation (a flaw in the patch proposed in #904) but because the patch #904 is not present at all in this fork, and the original bug #860 is still unresolved.
This is a warning for anyone that was relying on the fix in https://github.com/Goooler/shadow/pull/80 in Gooler's 8.1.4-8.1.8, that the new 8.3.0 release does not have any of those fixes.

Thanks for the headsup!
Cause we can't obtain the correct archiveClassifier in this case, as a workaround, please configure shadowJar before publishing.
https://github.com/GradleUp/shadow/blob/ae72788e9475da71cb3874239723eb91839f9ba5/src/main/groovy/com/github/jengelman/gradle/plugins/shadow/ShadowExtension.groovy#L19-L20


fix: nova compatibility issue

Summary
Uses an old dependency of laravel nova to make it compatible with the editor, notice that nova is only used to compile the field (dev dependency) which means it should not affect compatibility with newer versions of nova
Closes https://app.clickup.com/t/86dqj7ne8
Checklist

[ ] I checked my (code) changes for obvious issues, debug statements and commented code
[ ] Documentation (if necessary)
[ ] Tests (if necessary)
[ ] Ready to be merged

@ItsANameToo just a friendly reminder that this pr is ready


Config server - APPROLE authn not working

Describe the bug
I have configured the Config Server to use Vault as backed and tried to use the authentication mechanism of APPROLE; It neither does any authentication nor connects the Valut.
I'm using spring boot 3.0.3, Java 17.
Sample
application.yml

server:
port: 8888
spring:
cloud:
config:
server:
vault:
host: myvault.com
port: 443
scheme: https
namespace: test-name
authentication: APPROLE
app-role:
role-id: my-role-id
secret-id: my-secret-id
role: app-role
app-role-path: approle
kv-version: 2
backend: kv
profiles:
active:
- vault
application:
name: spring-config-server

--
Am I missing any other setup?

AbstractVaultConfiguration doesn't configure the namespace interceptor. The easiest way to include namespace support is overriding AbstractVaultConfiguration.restTemplateBuilder(…) and add a default header through builder.defaultHeader(VaultHttpHeaders.VAULT_NAMESPACE, this.vaultProperties.getNamespace()).
Spring Cloud Vault handles this aspect out of the box, Spring Cloud Config would need to adopt to that.

@mp911de, thanks for your response. I have overridden restTemplateBuilder and passed the namespace, And its working now.
@Override
protected RestTemplateBuilder restTemplateBuilder(VaultEndpointProvider endpointProvider, ClientHttpRequestFactory requestFactory) {
    RestTemplateBuilder restTemplateBuilder = super.restTemplateBuilder(endpointProvider, requestFactory);
    restTemplateBuilder.defaultHeader(VaultConstant.NAMESPACE_HEADER,vaultConfig.getNamespace());
    return restTemplateBuilder;
}


Refactor setup scripts to allow for native development environments

The devenv setup script can be refactored so that it can be used to create a native development environment rather than requiring a Ubuntu based VM.  Ubuntu is great, but in production most users would be interested in being able to layer the fabric on top of a native system.

@joequant, thanks for the suggestion. The documentation has undergone serious improvement includes info on how to set up a network or development environment on a variety of platforms, including natively on windows, mac, linux and Z. Closing this unless you specifically are interested in something not currently supported.


When view = ft.AppView.WEB_BROWSER, the page.on_disconnect will be called when the page is refreshed.

Duplicate Check

[X] I have searched the opened issues and there are no duplicates

Describe the bug
I want to perform some operations when the tab or browser is closed. So I intended to do some operations in page.on_disconnect. However, when I refresh the page, the on_disconnect function is also called, which is something I don't want to happen.
Code sample
Code
import flet as ft

def main(page: ft.Page):
    page.add(ft.Text('hello world!'))
    page.update()

    page.on_close = lambda e: print('closed!')

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

To reproduce
Run example code.
Expected behavior
I hope that the on_disconnect function will only be called when the page or the browser is closed.
Screenshots / Videos

Captures
[Upload media here]

Operating System
Windows
Operating system details
Windows 11
Flet version
0.25.1
Regression
I'm not sure / I don't know
Suggestions
No response
Logs
Logs
[Paste your logs here]

Additional details
No response

Sorry, there is an error in the sample code. It should be page.on_disconnect.


Command to show what packages will be updated

Fixes https://github.com/kittens/lerna/issues/12
New command: lerna updated (open to suggestions for the name: diff, changed, dryrun)
Add linting config from babel
There's some duplicated code (utility functions) that I didn't bother to share.
We should probably just print out the changed packages by default anyway when you run lerna publish right? We currently print it at the end.

For babel https://github.com/babel/babel/compare/v6.4.4...master

// Off
@hzoo what do you use to have that styled breadcrumbs in the first line of your console output?


exceptions.NoSuchElementException[BUG]

Restarting the program fixed the problem, but it happens fairly regularly and means that I have to often manually restart it (as I have it running automatically in task sheduler)
Error Log
Paste the error log here.
5/44
[BING] 6/44
[BING] 7/44
[BING] 8/44
[BING] 9/44
[BING] 10/44
[BING] 11/44
[BING] 12/44
[BING] 13/44
[BING] 14/44
[BING] 15/44
Traceback (most recent call last):
File "Z:\Users\rapha\Desktop\ms_rewards_farmer.py", line 759, in
bingSearches(browser, remainingSearches)
File "Z:\Users\rapha\Desktop\ms_rewards_farmer.py", line 227, in bingSearches
points = bingSearch(browser, word, isMobile)
File "Z:\Users\rapha\Desktop\ms_rewards_farmer.py", line 240, in bingSearch
searchbar = browser.find_element_by_id('sb_form_q')
File "C:\Python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 360, in find_element_by_id
return self.find_element(by=By.ID, value=id_)
File "C:\Python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 976, in find_element
return self.execute(Command.FIND_ELEMENT, {
File "C:\Python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Python38\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="sb_form_q"]"}
(Session info: headless chrome=88.0.4324.150)
Screenshot of the page
Add a screenshot of the page where the error apeared.
Source code of dashboard
https://gist.github.com/raphalation/8f75f7225be18348b913f57bc2e7278a

[BING] Starting Desktop and Edge Bing searches...
Traceback (most recent call last):
File "C:\Users\quake\Desktop\m\ms_rewards_farmer.py", line 751, in
bingSearches(browser, remainingSearches)
File "C:\Users\quake\Desktop\m\ms_rewards_farmer.py", line 215, in bingSearches
search_terms = getGoogleTrends(numberOfSearches)
File "C:\Users\quake\Desktop\m\ms_rewards_farmer.py", line 178, in getGoogleTrends
google_trends = json.loads(r.text[6:])
File "C:\Python39\lib\json_init_.py", line 346, in loads
return _default_decoder.decode(s)
File "C:\Python39\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Python39\lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Mhhh, it seems to be a loading problem... Do you run it on a goob computer with a great internet speed ?

I close the issue due to no answer, you can reopen it when you want


Bug: Disable accept offer button when there is no valid bid on token page

https://github.com/reservoirprotocol/marketplace/issues/371


Release tooling has inconsistent treatment of package-suffix

In testing self-hosted runners, I launched the "build_release" workflow with a package suffix argument. It appears that much of the release tooling fails when such an argument is passed because it tries to glob for patterns that don't match the files created at https://github.com/google/iree/blob/23da926754/build_tools/python_deploy/build_linux_packages.sh#L135
First, package-suffix is assumed to start with a dash. I think we probably should not make such assumptions that comes from free-form user input. We should either not assume it, always prepend the dash ourselves, or validate that it is present.
Even with a dash, the filenames don't conform to what the glob expects because it somehow turns dashes into underscores and appends things after the suffix instead of before. Errors include:

auditwheel: error: cannot access /wheelhouse/iree_runtime_instrumented*cp37-cp37m-linux_x86_64.whl. No such file

(https://github.com/google/iree/runs/6886630965)

auditwheel: error: cannot access /wheelhouse/iree_compiler-*-cp37-cp37m-linux_x86_64.whl. No such file

(https://github.com/google/iree/runs/6885672332)
This is the contents of version_info.json
{
  "package-suffix": "-gcmn-testing-runners",
  "package-version": "0.1a1",
  "iree-revision": "efd24d6563891fd7b88f41204da4ab9752061051"
}

After building the releases, the actual contents of the bindist directory (which is mounted as /wheelhouse in the docker container) is:

PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
iree-dist-gcmn-testing-runners-0.1a1-linux-x86_64.tar.xz
iree_compiler_gcmn_testing_runners-0.1a1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
iree_compiler_gcmn_testing_runners-0.1a1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
iree_compiler_gcmn_testing_runners-0.1a1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
iree_compiler_gcmn_testing_runners-0.1a1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
iree_runtime_gcmn_testing_runners-0.1a1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
iree_runtime_gcmn_testing_runners-0.1a1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
iree_runtime_gcmn_testing_runners-0.1a1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
iree_runtime_gcmn_testing_runners-0.1a1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
iree_runtime_gcmn_testing_runners_instrumented-0.1a1-cp37-cp37m-linux_x86_64.whl
iree_tools_tf_gcmn_testing_runners-0.1a1-py3-none-linux_x86_64.whl
iree_tools_tflite_gcmn_testing_runners-0.1a1-py3-none-linux_x86_64.whl
iree_tools_xla_gcmn_testing_runners-0.1a1-py3-none-linux_x86_64.whl
numpy-1.21.6-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
numpy-1.22.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
numpy-1.22.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
numpy-1.22.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Going to call this obsolete with https://iree.dev/developers/general/versioning-scheme/ now rolled out, using standardized version schemes (X.Y.Z, X.Y.ZrcYYYYMMDD, X.Y.Z.dev0+01234)
We do still have an option to explicitly set the package version or suffix in the workflow, but that is only lightly used: https://github.com/iree-org/iree/blob/c0fc41b2dd2370a33e88613941dfd0c5f68af5d2/.github/workflows/build_package.yml#L13-L39


Logging: How to change BundleOptions

From @FalconerTC on November 9, 2017 22:28
I hit a quota limit for Stackdriver ingestion requests recently, which is 1000 / second. I found this happened because I have a distributed service that was not bundling well because the GoogleCloud logging config sends logs every 50ms, per source here. This seems like an odd value to me, considering it only allows a maximum of 50 servers to be logging per project. I see this is defined as the GAX setting BundleOptions but the only GAX options that can be configured are CallOptions, per the @google-cloud/logging documentation.
Is there a way to change any of these options for the Bunyan logger? If not, do you have other recommendations to better batch logging requests in highly-distributed setups? Thanks!
Copied from original issue: googleapis/nodejs-logging-bunyan#13

/cc @lukesneeringer @stephenplusplus

From @stephenplusplus on November 10, 2017 20:56
@lukesneeringer is there anyone we can ask from the google-gax repo? @landrito?
It appears the only option you can pass through on the request is: isBundling, which can only disable the previously hard-coded setting. I'm not sure that there's a way to override it at runtime.
Additionally/alternatively, maybe we should be using a better default value in the hardcoded file?

From @FalconerTC on November 29, 2017 17:50
Any updates or ideas on this?

From @JustinBeckwith on November 29, 2017 19:25
Calling @alexander-fenster :)

From @landrito on November 29, 2017 22:8
Hm. I filed an issue in gax-nodejs to see if dynamically setting the bundling at call time makes sense. I have a hunch that introducing the ability to override it at call time is going to introduce a lot of complexity (what do we do for calls made prior to dynamically changing the bundling, what to do for calls with different
@stephenplusplus do you think dynamically setting this at client instantiation would work to resolve this?

From @alexander-fenster on November 29, 2017 20:37
@landrito to comment :)

From @stephenplusplus on December 11, 2017 18:39
Those concerns make sense to me. I guess we wouldn't want to open up the setting at the method level, but during instantiation of the client. If there's anything else gax uses similar to BundlingConfig, we would want to make sure those could be passed through as well.

From @landrito on December 11, 2017 19:29
So overriding the bundle options should work at client initialization like so:
const Logging = require('@google-cloud/logging');

const clientConfigOverride = {
  "interfaces": {
    "google.logging.v2.LoggingServiceV2": {
      "methods": {
        "WriteLogEntries": {
          "bundling": {
            "element_count_threshold": {Your},
            "request_byte_threshold": {Overrides},
            "delay_threshold_millis": {Here}
          }
        }
      }
    }
  }
};

const logging = new Logging({
  clientConfig: clientConfigOverrde
});

Looking at how the logging-bunyan client is implemented, it passes the constructor opts to the logging client directly. So passing the clientConfig to the constructor of the logging-bunyan client should yield overridden bundling options.

From @stephenplusplus on December 11, 2017 19:39
Oh, that looks like a good enough solution to me. @FalconerTC what do you think?

From @FalconerTC on December 12, 2017 16:14
This is perfect. Exactly what I am looking for. Thanks for the help.

From @stephenplusplus on December 12, 2017 17:54
Great. I think what we need to do now is add a mention to the docs that this type of configuration is possible. @landrito is there something on the gax docs we can link to?

From @DominicKramer on June 15, 2018 17:46
@landrito Friendly ping.

@DominicKramer I would suggest moving the issue (using the issue mover) to the gax-repo as the outstanding task is to update the docs.

[going through old issues]
I don't see how it is related to gax. We may have this documented in the generated code (pointing to a sample place in gapic-generator baseline: https://github.com/googleapis/gapic-generator/blob/156a4c6670ca64aabc1cf8bd882675971bc9e7cc/src/test/java/com/google/api/codegen/gapic/testdata/nodejs/nodejs_library.baseline#L228) though I'm not sure we really need to expose this.
If everyone is fine with that, I'll create an issue in gapic-generator for this (if anyone thinks that's wrong, you have a few days to comment here, silence will mean you're OK with closing this issue and updating the snip files in gapic-generator).

I'm not sure we really need to expose this.

These bundling options were the only way for the user to resolve their issue with the Logging Client library. If we don't think we should document this, we should come with a better answer for how users should address the original problem.
IMO, when this issue is resolved, one the following statements should be true:

The logging (and other) client libraries should be able to describe clientConfig as a config option that users can pass. These docs link to a canonical documentation about what client options are and what they mean. /cc @JustinBeckwith
We have provided an alternative mechanism to users on how to customize their bundling options if the defaults we provide are not sufficient for their scale / use-case.

Hi folks, any update on this issue? Is this still a P1? Thanks!

Any updates? There hasn't been much recent discussion - is this really a P1?

@alexander-fenster ping.

Ping

@skjolber: just to make sure we're on the same page, this issue is about the documenting the existing way of overriding the bundle options (see the code snippet by @ofrobots above). Is the lack of documentation the problem you're pinging me about :) or do you have some code that does not work?

@alexander-fenster well I could not make the @ofrobots clientConfigOverride work, but yeah, documentation will solve it for me. I spent some time searching before I bumped into this issue.

Thanks for your clarification! I'll take a look to see if the override is still supposed to work, and document it in the client.

@alexander-fenster has confirmed that the bundling options can be set from users side, we will update the documents to include those steps. Thanks

Here is an example of setting bundle options from the client: https://gist.github.com/alexander-fenster/883347a958d529c5b8a5289132b92e45


Change gradiant background color swatches from #152

Fixes #137
Updation of #152

We can use this, but I prefer a color scheme like the third one here: https://deploy-preview-157--mogulchristmas.netlify.app/


Happy 2018 to Monolog

Happy 2018! Another year of perfect logging! :birthday:

PHP:nightly failed this build

🎉


[stable/presto] Ability to add connectors through configMap and secret

I have added support to add connectors to Presto. Below are the instuctions to add custom connector files.
Connectors
Presto can query across multiple data sources, and it currently supports 20 different connectors. You can upload custom connectors as a configMap or as file Secrets.
In the default setup, two connectors are added through configmap-connectors.yaml as a demo.
These connectors provides a set of schemas to support the TPC Benchmark™. These connectors can be used to test the capabilities and query syntax of Presto without configuring access to an external data source. When you query a schema, the connector generates the data on the fly using a deterministic algorithm.
configMap
You can create a configMap with connector properties files, and launch your cluster with it.
kubectl create configmap my-presto-connectors \
	--from-file=/presto/connectors/directory/

helm install stable/presto --name my-presto-cluster \
	--set server.connectors.volumeMount.type=configMap,server.connectors.volumeMount.name=my-presto-connectors

secret
Alternatively, kubernetes secret is an excellent way to upload connectors to your presto cluster securely.
You can package your connector files into a secret, and launch your cluster with it.
kubectl create secret generic my-presto-connectors \
	--from-file=/presto/connectors/directory/

helm install stable/presto --name my-presto-cluster \
	--set server.connectors.volumeMount.type=secret,server.connectors.volumeMount.name=my-presto-connectors

/assign @unguiculus

@unguiculus does the PR look good?

This might be operational for very small connectors. But most connectors require lots of libs (JAR files) and this will not work (file size limitation).


Not authorized error when selecting account from whitelisted domain on iOS devices

Description:
After selecting an account from the OAuth accounts list, the error message "Not authorized" appears. After waiting a period of time and refreshing the request to the destination, the OAuth signin request appears again and selecting the correct account again results in the "Not authorized" error. Clearing cookies temporarily resolves the issue until the cookie expires.
Environment:
Platform:

Traefik v2.2
Docker 19.03.12
Traefik-forward-auth v2.2.0

Client:
iOS Safari 14.0
Expected results: Authentication should pass the user on to the subsequent destination after successful authentication
Actual results:
time="2020-09-22T11:00:07+08:00" level=warning msg="Error validating csrf cookie"
csrf_cookie="_forward_auth_csrf=234c136effd8b91715bc004df8e1e372"
error="CSRF cookie does not match state" handler=AuthCallback host=oauth.docs.example.com
method=GET proto=https rule=default source_ip=<redacted>
uri="/_oauth?state=e8476dab5591025c0e41d389a3499d65:google:https://docs.example.com/&code=4/4QFxc4Do_EylBxBp9LYuh2Y7Xlq5B2kxMcmK0w_a5iTQB_dPHLnzxmrVSCK-0IT4yquBgBAj0JrfcX2sHA4BBZM&scope=email%20profile%20https://www.googleapis.com/auth/userinfo.profile%20https://www.googleapis.com/auth/userinfo.email%20openid&authuser=1&hd=example.com&prompt=none"

Example Docker Compose:
traefik:
    container_name: "traefik"
    image: traefik:chevrotin
    networks:
      - public
      - default
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/var/run/docker.sock
      - /opt/appdata/docker/stacks/containerdata/traefik/config:/etc/traefik
      - /opt/appdata/docker/stacks/containerdata/traefik/acme:/etc/acme
    environment:
      DNSIMPLE_BASE_URL: https://api.dnsimple.com
    env_file: ./environment/traefik.env
    depends_on:
      - oauth
      - web
    init: true
    restart: unless-stopped

  oauth:
    container_name: "oauth"
    image: thomseddon/traefik-forward-auth:v2.2.0
    restart: unless-stopped
    networks:
        - public
    volumes:
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - ./environment/oauth.env
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=public"
      - "traefik.http.routers.oauth.rule=Host(`oauth.docs.example.com`)"
      - "traefik.http.routers.oauth.entrypoints=web-secure"
      - "traefik.http.routers.oauth.tls.certresolver=default"
      - "traefik.http.routers.oauth.tls.domains[0].main=oauth.docs.example.com"
      - "traefik.http.routers.oauth.service=oauth"
      - "traefik.http.routers.oauth.middlewares=oAuthSecured@file"
      - "traefik.http.services.oauth.loadbalancer.server.port=4181"

  web:
    container_name: "web"
    image: registry.gitlab.com/madcatsu/web:latest
    restart: unless-stopped
    networks:
      - public
    volumes:
      - /opt/appdata/docker/stacks/containerdata/web/cache:/var/cache/nginx
      - /opt/appdata/docker/stacks/containerdata/web/pid:/var/run
    read_only: true
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=public"
      - "traefik.http.routers.web.rule=Host(`docs.example.com`)"
      - "traefik.http.routers.web.entrypoints=web-secure"
      - "traefik.http.routers.web.tls.certresolver=default"
      - "traefik.http.routers.web.tls.domains[0].main=docs.example.com"
      - "traefik.http.routers.web.service=web"
      - "traefik.http.routers.web.middlewares=oAuthSecured@file"
      - "traefik.http.services.web.loadbalancer.server.port=80"
      - "traefik.http.services.web.loadbalancer.server.scheme=h2c"

networks:
  default:
    driver: bridge
  public:
    external: true
    name: public

Example forward auth env file:
LOG_LEVEL=info
AUTH_HOST=oauth.docs.example.com
COOKIE_DOMAIN=docs.example.com
DOMAIN=example.com
PROVIDERS_GOOGLE_CLIENT_ID=<redacted>
PROVIDERS_GOOGLE_CLIENT_SECRET=<redacted>
SECRET=<redacted>
LIFETIME=43200

Example Traefik rules:
http:
  middlewares:
    httpsRedirect:
      redirectScheme:
        scheme: https
    httpsOptions:
      headers:
        sslRedirect: true
        sslHost: docs.example.com
        stsSeconds: 2592000
        stsIncludeSubdomains: true
        browserXssFilter: true
        contentTypeNosniff: true
        forceSTSHeader: true
        frameDeny: true
        referrerPolicy: same-origin
        contentSecurityPolicy: |
          default-src https://*.docs.example.com;
          script-src https://*.docs.example.com 'unsafe-inline'
        featurePolicy: |
          autoplay 'none';
          camera: 'none';
          display-capture 'none';
          microphone: 'none';
          usb: 'none'
    googleAuth:
      forwardAuth:
        address: "http://oauth:4181"
        trustForwardHeader: true
        authResponseHeaders:
          - "X-Forwarded-User"
    oAuthSecured:
      chain:
        middlewares:
          - httpsOptions
          - googleAuth
  routers:
    globalRedirectSSL:
      rule: "HostRegexp(`{host:.+}`)"
      entryPoints:
        - web
      middlewares:
        - httpsRedirect
      service: "no-op"
  services:
    # noop service, the URL will be never called
    no-op:
      loadBalancer:
        servers:
        - url: "http://<IP_ADDRESS>"

May be related to #176 and #113  given that I also have an SPA with Service Worker fronted by Traefik with traefik-forward-auth.
Looking forward to #178 being implemented in 2.3 to see if this resolve the issue.

Yes I believe that will be the issue, we have people on our team using iOS without issue, but I'll leave this open and check we're good once 2.3 is released

Resolved by #178 - thanks @mwitkow @thomseddon


suggestion for snmp collector

Hi
which snmp collector would you suggest to use?
I am trying to test this agentx implementation using a snmp collector but haven't been successful to find one.

I am uncertain what you mean with 'snmp collector' but in case you mean the snmpd that I use with this agent, it's the one that ships with Ubuntu and Debian - http://net-snmp.sourceforge.net/
pim@nlams0:~$ apt show snmpd
Package: snmpd
Version: 5.9+dfsg-4+deb11u1
Priority: optional
Section: net
Source: net-snmp
Maintainer: Net-SNMP Packaging Team<EMAIL_ADDRESS>Installed-Size: 147 kB
Pre-Depends: init-system-helpers (>= 1.54~)
Depends: libc6 (>= 2.4), libsnmp40 (= 5.9+dfsg-4+deb11u1), debconf (>= 0.5) | debconf-2.0, adduser, debconf, lsb-base (>= 3.2-13), libsnmp-base
Suggests: snmptrapd
Breaks: libsnmp-dev (<< 5.8+dfsg-3)
Replaces: libsnmp-dev (<< 5.8+dfsg-3)
Homepage: http://net-snmp.sourceforge.net/
Tag: implemented-in::c, interface::daemon, network::server, protocol::snmp,
 role::program, use::monitor
Download-Size: 57.4 kB
APT-Sources: http://deb.debian.org/debian bullseye/main amd64 Packages
Description: SNMP (Simple Network Management Protocol) agents
 The Simple Network Management Protocol (SNMP) provides a framework
 for the exchange of management information between agents (servers)
 and clients.
 .
 The Net-SNMP agent is a daemon which listens for incoming SNMP
 requests from clients and provides responses.

With respect to the client side, the same project also releases an snmp tool, which can walk the output of snmpd. As end to end solution, I use LibreNMS which is an open source product.
Please review https://github.com/pimvanpelt/vpp-snmp-agent#support before opening end-user requests in this repo.


Add vscode-oniguruma as an alternative to Monarch

Since you've recently replaced the oniguruma implementation inside the VS.Code and VS.Code Web with your own WASM implementation, and given how you've decided not to support IE11 anymore, maybe it would be about time to reconsider offering that implementation as an alternative (to Monarch) syntax option for monaco-editor as well.

Please see #2150 1915


Fix the Authentik provider docs.

The title on the Authentik page said Okta, now it says Authentik.

Thanks!


Error message with angular-preset "The V8 platform used by this instance of Node does not support creating Workers"

Hello
Thanks a lot for creating this fork of the jest-electron-runner, has been quite a good experience for bringing some of our Angular client code to the test suite.
We are currently having an issue after updating to latest version of Jest (28) and introducing "angular-present" into the project.
The V8 platform used by this instance of Node does not support creating Workers
After searching a while this is a common problem with node/electron apps (https://github.com/electron/electron/issues/18540) that could be solved by providing a environment variable NODE_OPTIONS="--experimental-worker".
After setting the environment var im still getting the error not sure if the library is picking the variable.

After digging a bit further the problem was caused by the introduction of the "jest-angular-preset" that seems to try to launch workers.
I made a simpler test without browser deps that imports the "@angular/compiler" library and seems to work correctly on node but fails with the electron based environment.
Dont think that its possible to fix this for now. I will keep digging probably best to ditch the angular-preset and figure my own config to run the environment. https://github.com/electron/electron/issues/20550

If jest-angular-preset is meant to be used in a Node environment and does fancy stuff (Angular always does fancy complicated stuff, one reason why I don't like it...) then so be it. I guess you have to split your tests into two groups then. Angular tests must run in a node-runner, other tests can run in electron-runner (or both).
I'm closing this issue because I probably won't/can't fix it anyway,

Agree, nothing that can be done here since it is a limitation from electron to acess the node based workers.
Thanks a lot for the great project!


Update deps (rn 48 and react and others)

Took a look and it seems like the other updates are mostly minor things.

[x] desktop looks fine
[x] desktop release build
[x] ios device
[x] android device
[ ] Do a build on all platforms right after this pr merges

This also adds the skip bundling flag which is new in 0.48 RN so debug builds will not build the local bundle (what we want 99% of the time) which makes builds a zillion times faster on xcode

@keybase/react-hackers this updates most of our deps and updates us to RN 0.48 and react 16.
We could just pull in the RN 48 stuff if we're worried about stability but the changes seem small and everything is running fine for me. We could also merge and build and play with it for a couple of days and rollback if we want (also easy)


[react/no-typos] unexpected error "'react' imported without a local React binding"

Hello!
I have a simple vendor.ts file:
import 'react';
import 'react-dom';

With eslint-plugin-react, i have this error - 'react' imported without a local 'React' binding  react/no-typos
react/no-typos rule responsibility - prevent typos, but vendor.ts doesn't have any.
Any chances to turn off this error, or fix this branch conditionals?

Unless you have a strange build of react or react-dom, these imports will have no effect, so the warning seems correct.
However, if you are confident you can ignore the warning, then that is done with eslint override comments in-file, or by disabling the rule for the file in “overrides” in your eslint config.

Yes, i create independent bundle from this file.
import 'react' - is fully valid code, like any other imports.
Of course i can disable this rule for one line of my code, but i think open-source - it's about make things better)
If i will use React in this file, this error makes sense.
But even is this case, is react/react-in-jsx-scope rule designed for this case?

No, absolutely not - having import 'react' execute side effects is not what react does, so nothing in the ecosystem is likely to be designed for a case where you've somehow made it have side effects.

What about this example:
import 'style.css'

This code have side effects?

Yes, I would assume it does, since i'm unfamiliar with the specifier and you have no bindings - but react specifically does not have any, so import 'react' is useless.

About import 'style.css' example - i want to say when this code can have side effects - if bundler have specific configuration, for creating separate css chunk.
In other cases, it can be a css modules, and user need use styles manually - import styles from 'style.css', and nobody mark first case as error.
And bundler configuration for import 'whatever-library' and creating vendor chunk from this imports has no conceptual difference between css import.
Of course, with webpack, splitChunks is preferred for vendor chunk creating, but my project have some legacy features.
So, if css import for bundler side effect - is valid case, why react import - invalid?

Because import 'react' isn't doing anything. It doesn't create a React global, the react package has no side effects, literally the only impact it's having is that it's increasing your bundle size with a bunch of code that you can't ever use.
If, as you're implying, you've configured your bundler to do something abnormal for import 'react' - like create a global - or if you're using it for managing bundle splitting, then you've chosen to do something atypical/nonstandard that deviates from how the ecosystem works, so it's very expected you'll have to work around ecosystem tools.

increasing your bundle size with a bunch of code that you can't ever use

This is not entirely true, i already use this code, all react imports inside other bundles, resolving from vendor bundle.
autodll-webpack-plugin (with DllPlugin under the hood) make this possible, and I cannot say that this is something non-standard.
Webpack optimization.splitChunks option, for example with similar configuration, will make same thing, increasing bundle size with a react code, just without explicit import.

Indeed it is non-standard to use an explicit side-effecting import to do bundle-splitting; usually bundler config decides this, and everything that needs React, say, would import React from 'react'.
This seems answered to me; you're welcome to override the rule in this case if it doesn't fit your individually distinct use case.


Skip the tests related to criu when criu is not found

Codecov Report

Merging #2365 (296fdfc) into main (fe4928a) will increase coverage by 0.00%.
Report is 34 commits behind head on main.
The diff coverage is n/a.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2365   +/-   ##
=======================================
  Coverage   64.83%   64.83%
=======================================
  Files         129      129
  Lines       15201    15201
=======================================
+ Hits         9855     9856    +1
+ Misses       5346     5345    -1


Add possibility for ambience background music

Add possiblity to constantly play ambient noise that is taken from another input folder. Enable fade out if possible

Mostly implemented
Todo: Fade out


makefile should return exit code on fail

copy the ! grep results line from your caravel makefile to all the other cocotb recipes you have in the other makefiles.
then if the tests fail, the multi project tools will know

Added '! grep failure results.xml' for each test in memLCDdriver Makefile. mulit_tool.py succeeds locally, and each coco_test reports the '! grep failure results.xml' under it.


How to infer on own data?

@yanjk3
Thank you for your work!
wonder it is possible to provide an inference script to test on my own video/images?

It is hard to provide such a script since I don't know how your data is organized. Besides, the checkpoint for inference will be released in two weeks as I am currently working on my thesis. If you provide the directory structure, I could give you some suggestions.

@yanjk3
I dont really have a directory structure. I would like to test it with my videos. So inputs would be the frames read with cv2.

I have uploaded the v-branch model checkpoint that can be directly used for inference: Baidu Drive link and  Google Drive link.
The code does not support video input, but there are some suggestions that may be helpful.

You should load the model and checkpoint first. Refer to the context here
You should fetch your video and sample some frames, forming a list of image frames
If your video frames contain multiple people or the frames contain lots of backgrounds, you should then use a person detector to detect a bounding box for each person and crop the person from the image frames
Then, you will obtain a list of person images, and you can input them into the v-branch to get the feature representation of each person image. These feature representations are used to compute the person's similarity. Refer to the context here.

Thanks, i will give it a shot.

@yanjk3
must i download all the dataset to get the total_classes to use in model = make_model(cfg, num_class=total_classes, camera_num=0, view_num=0)?is it possible for you to provide the value?

Actually the classification head is not used during the re-id inference since we only need the feature representation for each person rather than the classification probability. Thus, you can specify total_classes to any value. Besides, the total_classes of the combined dataset is 5,038.

The ckpt is missing classifier state?
device = "cuda"
cfg.defrost()
cfg.MODEL.AUX_LOSS = False if cfg.MODEL.AUX_PROMPT_NUMS == 0 else True
model = make_model(cfg, num_class=5038, camera_num=0, view_num=0)
ckpt = torch.load(cfg.TEST.WEIGHT, 'cpu')
new_ckpt = {}
for k, v in ckpt.items():
    print(f"{k=}, {v=}")
    if 'classifier' not in k:
        new_ckpt[k] = v
msg = model.load_state_dict(new_ckpt, strict=False)
print(f"{msg=}")
model.to(device)

>>>
msg=_IncompatibleKeys(missing_keys=['classifier.weight'], unexpected_keys=[])
Traceback (most recent call last):
  File "VersReID/test.py", line 55, in <module>
    model.to(device)
  File "/home/default/anaconda3/envs/hackathon/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1160, in to
    return self._apply(convert)
           ^^^^^^^^^^^^^^^^^^^^
  File "/home/default/anaconda3/envs/hackathon/lib/python3.11/site-packages/torch/nn/modules/module.py", line 810, in _apply
    module._apply(fn)
  File "/home/default/anaconda3/envs/hackathon/lib/python3.11/site-packages/torch/nn/modules/module.py", line 810, in _apply
    module._apply(fn)
  File "/home/default/anaconda3/envs/hackathon/lib/python3.11/site-packages/torch/nn/modules/module.py", line 810, in _apply
    module._apply(fn)
  File "/home/default/anaconda3/envs/hackathon/lib/python3.11/site-packages/torch/nn/modules/module.py", line 833, in _apply
    param_applied = fn(param)
                    ^^^^^^^^^
  File "/home/default/anaconda3/envs/hackathon/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1158, in convert
    return t.to(device, dtype if t.is_floating_point() or t.is_complex() else None, non_blocking)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/default/anaconda3/envs/hackathon/lib/python3.11/site-packages/torch/cuda/__init__.py", line 298, in _lazy_init
    torch._C._cuda_init()
RuntimeError: No CUDA GPUs are available

Yes, the classifier state is not in the checkpoint, but you don't need the classifier for inference. Besides, the error you met seems to indicate that you do not have a GPU, rather than the model loading error.

@yanjk3
I managed to load the model and ckpt after changing DEVICE_ID: ('1') -> DEVICE_ID: ('0') in the config.
i managed to get the features for each person detected. Do i use Euclidean distance after normalization to find the shortest distance to the person i am finding?

Changing DEVICE_ID: ('1') -> DEVICE_ID: ('0') in the config is okay. Note that you better not specify it on the command line after modifying the config, as the value specified on the command line will cover the value in the config.
Yes, using the Euclidean distance after the normalized feature is okay. Once you get the feature representation for each person image, the remaining question is a "retrieval" problem. The commonly used similarity metrics including the Euclidean distance, cosine similarity, etc. You could search for more effective metrics than the mentioned two.

@yanjk3
Yes, i am not using this with any command line.
Is there a threshold that i could use to determine if the person in detected is not the same as the person in my database?

A similarity threshold is needed if you want to determine if the two images are the same person. And the threshold is determined upon your data. Our code does not provide such an option since the re-id evaluation is a ranking task.

@yanjk3
Understand.
As my use case involves trying to re-id people in my videos based on my database, would it be better to use similarity search or ranking?

There are two options:

Ranking the person similarity and choosing the person image with the top K highest similarity as the final results
Ranking the person similarity and choosing the person image with higher similarity than your pre-defined threshold as the final results

Personally, I prefer the first one.

@yanjk3
I am currently using euclidean distance instead of cosine. when using cosine, the scores are mostly >0.80 for wrong people, and >0.90 for correct person. For euclidean, it is approx 0.20 for wrong people, and mostly <0.10 for correct person. It seems like the gap between wrong and correct person is rather small. Is that expected? or perhaps i have coded it wrong?
I have attached my script below.
test.zip

The channel of the image you input into the ReID model seems to be BGR rather than RGB, which should be an error.
Try ref = cv2.cvtColor(ref, cv2.COLOR_BGR2RGB) and frame_crop = cv2.cvtColor(frame_crop, cv2.COLOR_BGR2RGB).
Hope it would work....

sadly is about the same. I have attached reference pic and output video in the zip below.
test.zip

Well, I have checked the code and data carefully and found that the model works well and the experimental phenomenon is as expected.

As you can see, images of the same person have a smaller distance than those of different people, whatever metrics you used. For example, when using cosine similarity, 0.9 > 0.8, indicates that the images of the same person are more similar (higher cosine similarity means more similar). On the other hand, when using Euclidean distance, 0.1<0.2, representing that the images of the same person are closer (lower Euclidean distance means more similar). This is absolutely as expected.

Besides, although the margin of the distance is not significant, it can ensure images of the same person are sorted into the leading position in the candidate images, thus resulting in good Rank-1 accuracy and mAP. Hope your question is addressed and if you find this repository useful, plz kindly give a star : )

I see. Thank you so much for your assistance and your work!


Provide straight-forward zoneWidget API

I'm trying to create a view zone similar to the one which shows up while displaying errors:

I used changeViewZones to insert a viewzone but it creates a zone which spans from the end of line gutter to the end of the editor. I want it to start from the start of the line gutter.

Is there any way I can reuse what is being used in the error viewzone. If not, how can I mimic it.

The go to error widget does two things:

inserts a view zone to reserve a vertical gap in the text
inserts an overlay widget that is kept position-wise in sync with the view zone

The trick is that when inserting a view zone, it is possible to provide two callbacks: onDomNodeTop and onComputedHeight. The callbacks provide the top and the height of the view zone. These values can then be used to position correctly an overlay widget.
Internally, we have something called a zoneWidget, and I think there are many use-cases for this. We should provide straight-forward API for the zoneWidget.

Until the zoneWidget API is available this is an example of how you could implement the trick explained above.
     // Create a zone over the margin. Uses the trick explained
    // at https://github.com/Microsoft/monaco-editor/issues/373

    // overlay that will be placed over the zone.
    let overlayDom = document.createElement('div');
    overlayDom.id = 'overlayId';
    overlayDom.style.width = '100%';
    overlayDom.style.background = '#ffb275';

    // https://microsoft.github.io/monaco-editor/api/interfaces/monaco.editor.ioverlaywidget.html
    let overlayWidget = {
      getId: () => 'overlay.zone.widget',
      getDomNode: () => overlayDom,
      getPosition: () => null
    };
    editor.addOverlayWidget(overlayWidget);

    // Used only to compute the position.
    let zoneNode = document.createElement('div');
    zoneNode.style.background = '#8effc9';
    zoneNode.id = "zoneId";

    // Can be used to fill the margin
    let marginDomNode = document.createElement('div');
    marginDomNode.style.background = '#ff696e';
    marginDomNode.id = "zoneMarginId";

    editor.changeViewZones(function(changeAccessor) {
      changeAccessor.addZone({
        afterLineNumber: 3,
        heightInLines: 3,
        domNode: zoneNode,
        marginDomNode: marginDomNode,
        onDomNodeTop: top => {
          overlayDom.style.top = top + "px";
        },
        onComputedHeight: height => {
          overlayDom.style.height = height + "px";
        }

      });
    });

Sorry for resurrecting this old issue. Was just wondering, is there a way to add view zones through VS Code's APIs?
If I can't do it in VS Code, I'm forced to use Monaco Editor as a standalone dependency.

 overlayDom.style.width = '100%';

Thank you very much for your Demo, it solved my problem

Until the zoneWidget API is available this is an example of how you could implement the trick explained above.在 zoneWidget API可用之前，这是一个如何实现上面解释的技巧的示例。
     // Create a zone over the margin. Uses the trick explained
    // at https://github.com/Microsoft/monaco-editor/issues/373

    // overlay that will be placed over the zone.
    let overlayDom = document.createElement('div');
    overlayDom.id = 'overlayId';
    overlayDom.style.width = '100%';
    overlayDom.style.background = '#ffb275';

    // https://microsoft.github.io/monaco-editor/api/interfaces/monaco.editor.ioverlaywidget.html
    let overlayWidget = {
      getId: () => 'overlay.zone.widget',
      getDomNode: () => overlayDom,
      getPosition: () => null
    };
    editor.addOverlayWidget(overlayWidget);

    // Used only to compute the position.
    let zoneNode = document.createElement('div');
    zoneNode.style.background = '#8effc9';
    zoneNode.id = "zoneId";

    // Can be used to fill the margin
    let marginDomNode = document.createElement('div');
    marginDomNode.style.background = '#ff696e';
    marginDomNode.id = "zoneMarginId";

    editor.changeViewZones(function(changeAccessor) {
      changeAccessor.addZone({
        afterLineNumber: 3,
        heightInLines: 3,
        domNode: zoneNode,
        marginDomNode: marginDomNode,
        onDomNodeTop: top => {
          overlayDom.style.top = top + "px";
        },
        onComputedHeight: height => {
          overlayDom.style.height = height + "px";
        }

      });
    });

Thank you very much for your Demo, it solved my problem


Storage info returns images from wrong? project

Version 4.2
In the project default with a zfs pool created by lxd called default, run the command lxc storage info default returns a list of containers & images and the images are from the wrong project

Hmm, can you show:

lxc query /1.0/projects?recursion=1
lxc query /1.0/storage-pools/default

lxc query /1.0/projects?recursion=1
[
	{
		"config": {
			"features.images": "true",
			"features.profiles": "true"
		},
		"description": "Default LXD project",
		"name": "default",
		"used_by": [
			"/1.0/images/229220dae6164a63ce6d00b4b1ba51e0ee533ef823e36cc56de7a53ae3884d83",
			"/1.0/images/3fddda7e68f96ee1422371ab15043d2f0fe2758602f4079fe4955ef3be18121e",
			"/1.0/images/ecca2cbe9df8630f00c6853c8692d581b4ae279e7c0c5744c3bd9af1b8bdd8ed",
			"/1.0/instances/c0-node0?project=default",
			"/1.0/instances/c0-node1?project=default",
			"/1.0/instances/c1-node0?project=default",
			"/1.0/instances/c1-node1?project=default",
			"/1.0/instances/lxdMosaic?project=default",
			"/1.0/instances/lxdmosaic-build-new?project=default",
			"/1.0/instances/lxdmosaic-build?project=default",
			"/1.0/instances/music?project=default",
			"/1.0/profiles/4bnwfHSnGeiU?project=default",
			"/1.0/profiles/default-vm-profile?project=default",
			"/1.0/profiles/default?project=default",
			"/1.0/profiles/test?project=default"
		]
	},
	{
		"config": {
			"features.images": "true",
			"features.profiles": "true",
			"features.storage.volumes": "true"
		},
		"description": "tes",
		"name": "was",
		"used_by": [
			"/1.0/images/5b72cf46f628b3d60f5d99af48633539b2916993c80fc5a2323d7d841f66afbe",
			"/1.0/profiles/OqU4eldc4joa?project=was",
			"/1.0/profiles/default?project=was",
			"/1.0/profiles/was-profile?project=was"
		]
	}
]

lxc query /1.0/storage-pools/default
{
	"config": {
		"size": "43GB",
		"source": "/var/snap/lxd/common/lxd/disks/default.img",
		"zfs.pool_name": "default"
	},
	"description": "",
	"driver": "zfs",
	"locations": [
		"none"
	],
	"name": "default",
	"status": "Created",
	"used_by": [
		"/1.0/containers/music",
		"/1.0/containers/c0-node0",
		"/1.0/containers/c0-node1",
		"/1.0/containers/c1-node0",
		"/1.0/containers/c1-node1",
		"/1.0/containers/lxdMosaic",
		"/1.0/containers/lxdmosaic-build",
		"/1.0/containers/c0-node0/snapshots/rea",
		"/1.0/containers/lxdmosaic-build-new",
		"/1.0/containers/c0-node1/snapshots/test",
		"/1.0/images/5b72cf46f628b3d60f5d99af48633539b2916993c80fc5a2323d7d841f66afbe",
		"/1.0/images/229220dae6164a63ce6d00b4b1ba51e0ee533ef823e36cc56de7a53ae3884d83",
		"/1.0/profiles/default"
	]
}

Ok, I don't think it's necessarily wrong for used_by to reference the things that are using the pool even across project since they are indeed using that shared object and deleting the pool could only be done once all those references are gone.
But the URLs should use the same format as for projects where the project is indicated in the URL.
Can you show lxc query/1.0/networks/lxdbr0 see if that one looks correct?

My problem comes from the fact you can't reach the image with fingerprint without the project, so it would solve my problems if the project was included in everywhere you can (or you can reach a fingerprint without a project but that would be inconsistent I guess)
(I guess this should show project info as-well)
lxc query /1.0/networks/lxdbr0
{
	"config": {
		"ipv4.address": "<IP_ADDRESS>/24",
		"ipv4.nat": "true",
		"ipv6.address": "fd42:2040:4413:1b4d::1/64",
		"ipv6.nat": "true"
	},
	"description": "",
	"locations": [
		"none"
	],
	"managed": true,
	"name": "lxdbr0",
	"status": "Created",
	"type": "bridge",
	"used_by": [
		"/1.0/instances/c0-node0",
		"/1.0/instances/c0-node1",
		"/1.0/instances/c1-node0",
		"/1.0/instances/c1-node1",
		"/1.0/instances/lxdMosaic",
		"/1.0/instances/lxdmosaic-build",
		"/1.0/instances/lxdmosaic-build-new",
		"/1.0/instances/music"
	]
}

Also lxc query /1.0/storage-pools/default is missing 3 images

This would suggest that 3fddda7e68f96ee1422371ab15043d2f0fe2758602f4079fe4955ef3be18121e and ecca2cbe9df8630f00c6853c8692d581b4ae279e7c0c5744c3bd9af1b8bdd8ed exist in the images directory as tarballs but have not been loaded up as datasets in that particular ZFS pool.

Do you have any instances in that project? All the output so far points to you not having any instances in there, which would make the /1.0/networks/lxdbr0 output correct.

Here, I see:

```stgraber@castiana:~$ lxc query /1.0/networks/lxdbr0
{
	"config": {
		"dns.search": "lxd, stgraber.net",
		"ipv4.address": "<IP_ADDRESS>/24",
		"ipv4.nat": "true",
		"ipv6.address": "fd42:4c81:5770:1eaf::1/64",
		"ipv6.nat": "true"
	},
	"description": "",
	"locations": [
		"none"
	],
	"managed": true,
	"name": "lxdbr0",
	"status": "Created",
	"type": "bridge",
	"used_by": [
		"/1.0/instances/v1?project=camp",
		"/1.0/instances/b1",
		"/1.0/instances/bionic",
		"/1.0/instances/c1",
		"/1.0/instances/centos3",
		"/1.0/instances/centos4",
		"/1.0/instances/f1",
		"/1.0/instances/keybase",
		"/1.0/instances/npm",
		"/1.0/instances/snapcraft",
		"/1.0/instances/steam",
		"/1.0/instances/ubuntu-core18",
		"/1.0/instances/ubuntu1804",
		"/1.0/instances/ubuntu2004",
		"/1.0/instances/ups-monitor",
		"/1.0/instances/win10",
		"/1.0/instances/zerotier"
	]
}

Based on this, it looks like the issues we're seeing above are:

/1.0/projects shouldn't generate URLs that contain ?project=default as that's just noise
/1.0/storage-pools doesn't generate project-aware URLs

exist in the images directory as tarballs

I had a couple of failed migrations & tarball restores so these images may have come from that, which I guess makes some sense they dont appear in the storage pool (I mean what happens if you get a lot of these images ? Surely the eat up storage somewhere)

Do you have any instances in that project ?

Nope - so I guess the output right

/1.0/projects shouldn't generate URLs that contain ?project=default as that's just noise

IMO this is wrong because they should be consistent - I shouldn't get ?project 90% of the time and program special cases for the rest (theoretically I suppose if your using /1.0/projects?recursion=2 you can always "calculate" the project you don't need any ?project strings and if your using /1.0/project/X then you also obviously know the project - so all project strings should be dropped from /1.0/projects entirely (which would be inconsistent) or keep the ?project=default string)
I.E you have to do things like this
used_by_entity = "container"

if(string_contains(used_by_entity, "?project="){
        project = extractProject(used_by_entity);
}else{
       project = "default"
}

/1.0/storage-pools doesn't generate project-aware URLs
IMO all used_by should generate project aware URL's (only because I assume the long term plan is  to support all entity's existing as children of projects)

No, the URL logic should be that for anything that's part of the default project (and so doesn't require ?project=default), the URLs should NOT include it, otherwise older API clients that aren't project-aware may break when parsing.
For anything that's NOT in the default project, all URLs to that need to include the ?project=NAME so that the URL is valid, for those a project-aware client is obviously needed.

TBH dunno why im arguing, sorry!
Project info on storage resolves my issue!

For consistency, lets check them all:

[x] /1.0/profiles/PROFILE
[x] /1.0/networks/NETWORK
[ ] /1.0/projects/PROJECT
[ ] /1.0/storage-pools/POOL
[ ] /1.0/storage-pools/POOL/volumes/VOLUME

I've got a fix for the generated DB bits that handle profiles & projects, that actually lets us remove a bit of hardcoded logic.
Storage is however full of hardcoded logic so we need to update:

storagePoolUsedByGet
storagePoolVolumeUsedByGet

So that they return something which makes sense.

I think I have /1.0/storage-pools/POOL pretty much sorted though I'll rebase a bunch of that code when I complete the /volumes work.
One thing that also got overlooked is that custom volumes and images availability vary based on server in a cluster.
For images, that's not a huge deal as removing the image will get rid of it everywhere, so my current fix to report all projects that an image is a part of will do the trick just fine. But for custom storage volumes, you can have volumes with different content on different nodes sharing the same name, so those should show up with a ?target=NAME in the URL.

Ok, so just writing down some thoughts so I remember later :)
For /1.0/storage-pools/NAME, we want:

Any profile which stores its instances on the pool (with ?project= if non-default)
Any instance currently stored on the pool (with ?project= if non-default)
Any image currently stored on the pool and for any project it's a part of (with ?project= if non-default)
Any custom volume stored on the pool and for any target it exists on (with ?project= if non-default and always ?target= if on cluster)
If the pool contains volumes that are used to back either images or backups for the whole daemon, add a ref to /1.0

For /1.0/storage-pools/NAME/volumes/TYPE/VOL, we want:

image:
Link back to the image
instance
Link back to the instance
custom volumes:
/1.0 if the volume is used to store either backups or images for the whole daemon
Any profile which attaches the volume (with ?project= if non-default)
Any instance currently attached to the volume (with ?project= if non-default)

My local branch currently is missing the ?target= bits for custom volumes and the /1.0 ref for backups/images storage in the storage-pool case.
I'm yet to do the needed work around storage-volume.
Once all the above is done, we should be able to completely rely on this UsedBy data to decide whether a pool is removable or not, letting us deprecate more code.

https://github.com/lxc/lxd/pull/7546 should take care of everything for storage pools.

Should ?target apply in the used_by section of the /1.0/profiles as well (its come up in the context of clusters, otherwise you have to go an hit /1.0/containers/ to find the host its actually on)

We should only have ?target= in the URL when it's actually required to disambiguate between two different objects with the same name on different machines. This is only a problem for custom volumes so I've only added it there.
?target= is expensive as that tells whatever LXD server answers your request to stop what it's doing and perform an internal request to the server you've indicated. So we only want to have to do this when strictly required. For most objects even if they're stored on another server, no direct communication is needed as the data required is present in the database.


python3Packages.minidump: 0.0.18 -> 0.0.19

Motivation for this change
Update to latest upstream release 0.0.19
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 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.

Result of nixpkgs-review pr 136141 run on x86_64-linux 1

12 packages built:

python38Packages.angr
python38Packages.angrop
python38Packages.cle
python38Packages.lsassy
python38Packages.minidump
python38Packages.pypykatz
python39Packages.angr
python39Packages.angrop
python39Packages.cle
python39Packages.lsassy
python39Packages.minidump
python39Packages.pypykatz

Result of nixpkgs-review pr 136141 at f1518d20 run on aarch64-linux 1

6 packages failed to build:

python38Packages.angr
python38Packages.angrop
python38Packages.cle
python39Packages.angr
python39Packages.angrop
python39Packages.cle

6 packages built successfully:

python38Packages.lsassy
python38Packages.minidump
python38Packages.pypykatz
python39Packages.lsassy
python39Packages.minidump
python39Packages.pypykatz

Note that build failures may predate this PR, and could be nondeterministic or hardware dependent.
Please exercise your independent judgement. Does something look off? Please file an issue or reach out on IRC.

Part of #135832


On Windows JqxList formats my json doc, but the structure window shows an error message

This seems to be related to how nvim-jqx calls jq. Searching for the error message seems to point to a quoting issue.
C:\Users\nmeier/Downloads/tst.json|| jq: error: syntax error unexpected INVALID_CHARACTER expecting end of file (Windows cmd shell quoting issues?) at <top-level> line 1:
C:\Users\nmeier/Downloads/tst.json|| 'keys[]'
C:\Users\nmeier/Downloads/tst.json|| jq: 1 compile error

Good morning! Yes, it is a Windows quoting issue. Having a look at the jq documentation one can see that Windows shells do indeed expect a different quoting grammar.
I do not use Windows myself, thus it will be a little difficult to test a possible fix; generally this being an underlying jq problem, I am not sure how we could approach it altogether. The quick workaround would be for you to fork this repository and explicitly change the quoting syntax to adapt it to your shell (whilst we think for a better long term way to handle the OS quoting differences).


Provide mechanism to disable or enable an element when commented in source

 Issue by erandidesilva
Monday Oct 09, 2017 at 10:50 GMT
Originally opened as https://github.com/ballerina-lang/composer/issues/3382

Version: 0.93
Browser: Chrome Version 61.0.3163.100
Ballerina code lines can be commented out. But when commented, in design view the entire design element dissapears. But it shouldn't be the case. Rather when commented out, the respective element in the designer view should be either disabled or a change of color should happen. Current design is misleading to the user.
Source view

Design view

 Comment by erandidesilva
Tuesday Oct 10, 2017 at 04:19 GMT

Marking as severity high as this is degrading user experience

Implementation has differed