WIP: helper method to detect key collisions

Today, we have a number of cases where repeated key/value pairs are used to simulate a map, in keeping with KRM style. We validate that key names (usually named name:) are unique. For example:
params:
- name: repo
  value: github.com/foo
- name: revision
  value: master
- name: repo
  value: github.com/bar

This is invalid because two items provide the value for the parameter named foo. Note that it would still be invalid even if both params provided the same value.
In a lot of places in Tekton we incorrectly return apis.ErrMultipleOneOf in such cases -- this is incorrect because MultipleOneOf is intended to signify that only one of fields A or B should be set, but not both. For example, specifying taskRef and taskSpec is an ErrMultipleOneOf.
This PR adds a helper method that uses reflection to inspect a provided slice of structs, pull out the values of a field (e.g., Name), and make sure that slice doesn't specify two items with the same value for,  e.g., name:.
This PR includes unit tests for the new method, and converts an existing incorrect usage of ErrMultipleOneOf to demonstrate its usage.
/area testing
/kind cleanup
Spawned from https://github.com/knative/pkg/issues/1726
Submitter Checklist
These are the criteria that every PR should meet, please check them off as you
review them:

[y] Includes tests (if functionality changed/added)
[n] Includes docs (if user facing)
[y] Commit messages follow commit message best practices
[y] Release notes block has been filled in or deleted (only if no user facing changes)

See the contribution guide for more details.
Double check this list of stuff that's easy to miss:

If you are adding a new binary/image to the cmd dir, please update
the release Task to build and release this image.

Reviewer Notes
If API changes are included, additive changes must be approved by at least two OWNERS and backwards incompatible changes must be approved by more than 50% of the OWNERS, and they must first be added in a backwards compatible way.
Release Notes
Introducing a reflect-based helper method to validate key conflicts

🙏  apologies jason just making sure /retest is a legit command
/retest

... it ... isn't?

/retest

I really am not a fan of using reflect for this (or for anything really) ; the code looks more complicated than it should.
In the end, we want to get the duplicate string in an array of string (or a sets.NewString() set) right ? (and get the index). We could write a methods that just does that without using reflect. The method resp. would be "for a given set of string, give me the index of the one that are duplicated and the value" — and from that point we build the error.

Yeah, I agree it's kind of gross. The reason it's WIP is so we can discuss whether it's too gross to be allowed to exist. And it might be! 😄
Checking duplicates isn't the hard part of what it's doing though. The "hard part", and the reason it uses reflect, is because it wants to take a slice-of-Things, and check that all the things have unique Name values. But it can't know ahead of time that Name is the field name that must be unique. Sometimes it might be Key or SomethingElse that has to be unqiue. Even if it did hard-code Name as the must-be-unique field name (it's usually Name in practice), that wouldn't actually remove any reflect usage. But that would simplify the method signature, so maybe it's worth it.
All the reflect is, because of Go's type system and current lack of generics, we can't just take a []struct{ Name string }, and it can't even take a []interface{ Name() string  } (example), so it takes an interface{} that it enforces at runtime is a slice...of structs...that have the exported field. Maybe in the future generics will make this much simpler?
Another alternative would be to (ab)use encoding/json to handle reflect for us. In that case we could take a interface{}, and json.Marshal it, then json.Unmarshal into a []struct { Name string }, and from there check uniqueness. In that world json.Marshal/json.Unmarshal is doing all the reflect we'd be doing ourselves, and error checking, and much more, and also generating []bytes we'd just throw out.
It's possible this just isn't worth generalizing, which would be a fine outcome of this discussion honestly. If nothing else I got a tweet out of it. 😆

Yeah, I agree it's kind of gross. The reason it's WIP is so we can discuss whether it's too gross to be allowed to exist. And it might be! smile
Checking duplicates isn't the hard part of what it's doing though. The "hard part", and the reason it uses reflect, is because it wants to take a slice-of-Things, and check that all the things have unique Name values. But it can't know ahead of time that Name is the field name that must be unique. Sometimes it might be Key or SomethingElse that has to be unqiue. Even if it did hard-code Name as the must-be-unique field name (it's usually Name in practice), that wouldn't actually remove any reflect usage. But that would simplify the method signature, so maybe it's worth it.
All the reflect is, because of Go's type system and current lack of generics, we can't just take a []struct{ Name string }, and it can't even take a []interface{ Name() string } (example), so it takes an interface{} that it enforces at runtime is a slice...of structs...that have the exported field. Maybe in the future generics will make this much simpler?

Right, that's why I don't think we should try to be smart. Looking at the current usage (in the PR), we always work with strings. And from my point of view, the function that does the "duplicate check" doesn't have to know anything about field. It just "needs" to tell the "field" for the path error, but that can be passed as a string and the rest of the path can be build using apis.FieldError api).
We can build a temporary struct (an array of string), work on it, get the duplicate "index" and let a higher method do the field part (using apis.FieldError function ViaFieldIndex or ViaFieldKey makes it trivial even, see here for example).  All this can be achieved without reflec not generics. I don't think generics would help that much here ; making less smart and more "focused" methods does.
What I would do, in gross go pseudo code. I didn't really try to implement this so it might be completely wrong but pretty sure we can make something work without reflect.
paramNames := extractParamNames(ts.Params)
// we could use go types smartly here, define a type Params []Param
// and have a Names() method on it, but in the end, it's just a matter of building an array of string
// `apis.FieldError` api has this really nice way to build the error path
err := validateDuplicateString(paramNames, "name").ViaField("params")

func validateDuplicateString(s []string, path string) {
// […]
// use apis.ErrGeneric("the error message", path)
}

As someone (or many ones) said : "reflection is hard and is to be avoided." :upside_down_face:

It's possible this just isn't worth generalizing, which would be a fine outcome of this discussion honestly. If nothing else I got a tweet out of it. laughing

I don't think it is worth generalizing indeed, or at least not to the point of using reflect.

In your pseudocode example above, paramNames := extractParamNames(ts.Params) is the part I was (mistakenly!) trying to generalize, so it could take extractNames(ts.Workspaces) or extractNames(step.Env). Once that's done, duplicate checking is straightforward and easy to generalize.
Your feedback is completely spot-on though, generalizing this doesn't save us enough to justify the risk of waking the spirits of the undead by invoking reflect. I'll close the PR. 💀


openAI : Assistants API

Hi,
Do we have plan to integrate openAI's Assistants API ?
Reference :  https://platform.openai.com/docs/assistants/overview/agents

Hi, Deep Chat already supports a direct connection for the Assistants API. You can find all the relating information here.

Since there has been no further discussion, I will be closing this issue. Feel free to comment below if you have any questions relating to the Assistants API. For anything else, you are more than welcome to create a new issue. Thanks!


Pillar endpoint does not support lists

The introduction of the pillar endpoint https://github.com/kubic-project/velum/pull/315 removes support for lists in pillar data, which used to be available through the external SQL pillar in salt master. For public cloud adaption, we want to store salt cloud specific data in the pillar, which requires a structure like this:
  profiles:
    cluster_node:
      block_device_mappings:
      - DeviceName: /dev/sda1
        Ebs.VolumeSize: 30
      image: ami-12345678
      network_interfaces:
      - AssociatePublicIpAddress: false
        DeviceIndex: 0
        SecurityGroupId: sg-1234abcd
        SubnetId: subnet-1234abcd
      provider: ec2

In this example, network_interfaces is an array consisting of one multi-key dictionary. It would be extremely helpful if structures like those could be served through the velum pillar.

The old pillar implementation didn't support lists as they were implemented as collisions. This means that something like: my_list: ["something"] was unfeasible (one value would mean scalar, a collision would mean a list with 2 items -- hence, there was not way to represent lists of arbitrary length, e.g. of size 1).
The new pillar allows anything to be rendered, including strings, lists, nested hashes or any kind of type json supports. Basically anything.
In order to render anything as you want you only need  to modify: https://github.com/kubic-project/velum/blob/master/app/controllers/internal_api/v1/pillars_controller.rb
If you extend pillar_contents having lists, hashes, strings, integers, floats... everything will work. So we have right now a much more rich pillar in reality, what we didn't with the old implementation.

So the idea is that you can add new models that makes sense to you (no need to stick to the Pillar model), and then render that on the PillarController as you wish, this will be merged by salt correctly and any type and complexity is allowed.

The old pillar supports lists of size 1, if you specify which key is a list key with the with_lists keyword (in theory, it's actually broken, but that's a different story). It's awkward though and I'm not arguing to get the old pillar back. However, we'll need lists and the current implementation in pillar controller really only supports a key=value model.
I haven't thought of adding a separate endpoint for cloud specific data. Not sure whether that gains us anything, since we need the pillars in the salt master so they are automatically available to salt cloud. I'm gonna look into it. Thanks for the info so far.

The old pillar supports lists of size 1, if you specify which key is a list key with the with_lists keyword (in theory, it's actually broken, but that's a different story). It's awkward though and I'm not arguing to get the old pillar back. However, we'll need lists and the current implementation in pillar controller really only supports a key=value model.

Yeah, but that's hardly extensible...

I haven't thought of adding a separate endpoint for cloud specific data. Not sure whether that gains us anything, since we need the pillars in the salt master so they are automatically available to salt cloud. I'm gonna look into it. Thanks for the info so far.

Please, tell us if you have any doubts. It's not creating a different endpoint but adding extra info to the pillar that you are going to consume in the cloud-related salt states. With JSON we also support any kind of nested structures, something that with mysql was just really hard to do, and really hard to extend.
Feel free to close the bug when you think it doesn't apply.
Thanks!

I haven't thought of adding a separate endpoint for cloud specific data. Not sure whether that gains us anything, since we need the pillars in the salt master so they are automatically available to salt cloud. I'm gonna look into it. Thanks for the info so far.

We wrote a new pillar provider for salt, the code is here.
As Rafael said it's a matter of creating a new model inside of the database to hold your configuration and then update the existing pillar controller to include that into the rendered json.
I'm closing the issue, feel free to reach out if you need more help with that.

Hi Flavio, I'm aware of the pillar provider, I've already tested it. So, if we could add a structure that holds the salt cloud configuration in the right format, and map the configurable bits to pillars, it would make things a lot easier compared to what we had with the SQL pillar. I've put together some code to show what I mean: https://github.com/jgleissner/velum/commit/8d2e2d28765eec3ef950a460d39359e4f98bf104 (sorry, not necessarily the prettiest code, not a Ruby guy).
Would this approach be ok with you? And are you open to using the velum pillar in the 2.0 branch?

Would this approach be ok with you? And are you open to using the velum pillar in the 2.0 branch?

About the approach, I would personally prefer to see the Pillar model go away in favour of dedicated models (that make sense) with their own validations at model level. Validations with a flat model having tons of different information is hard to maintain and is not a very rails-way of doing things. However, I think it makes a lot of sense to work on a same codebase, so we reduce the possibility of breaking other teams use cases.
We can backport the pillar to the 2.0 branch. I can work on that during next week.
I'd like to know what @flavio thinks. Will wait for his feedback.

Any update on this?

Any update on this?

@flavio is on vacation until tomorrow. He should be able to give his view on the matter soon I guess.


[new] Update Hibernate Public Docs to remove "Feature in Preview"

remove "feature in preview" for new hibernate feature in VM

/pr RequestMerge


proper shell quotes

Data where not properly escaped when dealing with files

import quote from  shlex / pipes
fix tests
additonnal test dealing with a file

after more test, not working fix ...


Extremely long codes can cause underflow errors

In a test C++ implementation, long codes were causing segmentation faults. This was due to the grid computation, where the size of the grid squares are computed in degrees latitude and degrees longitude. These start at 1/8000th of a degree, and with each step, divide by 4 (latitude) or 5 (longitude).
Fairly quickly these can get to the minimum values that can be represented as floats and cause underflow errors.
To avoid this happening, I propose to limit the length of OLC codes. This would avoid this problem while still allowing extremely precise codes. 16 digits gives roughly centimeter resolution, and with 32 digits the OLC area is only 7.86E-11 cm wide (this is in the order of a helium atom).
I don't think it matters a great deal what the limit is as long as we define one.
The changes required are:

To modify the isValid method to reject codes with more than 32 digits or with more than 24 digits after the separator
To limit the encode method to only return codes with a maximum of 32 digits.

go-fuzz found similar problems, for example with codes like
+qqX2975722X888X2975722X888X2975722X988X29qqX2975722X888X2975722X888X2975722X988X29qqX2975722X888X2975722X888X2975722X988X29qqX2975722X88qqX2975722X888X2975722X888X2975722X988X29qqX2975722X888X2975722X888X2975722X988X29qqX2975722X888X2975722X888X2975722X988X29qqX2975722X88qqX2975722X888X2975722X888X2975722X988X29qqX2975722X888X2975722X888X2975722X988X29qqX2975722X888X2975722X888X2975722X988X29qqX2975722X88qqX2975722X888X2975722X888X2975722X988X29qqX2975722X888X2975722X888X2975722X988X29qqX2975722X888X2975722X888X2975722X988X29qqX297572
+qqX2975722X888X2975722X888X2975722X988X29qqX2975722X888X2975722X888X2975722X988X29qqX2975722X888X2975722X888X2975722X988X29qqX2975722X88qqX2975722X888X2975722X888X2975722X988X29qqX2975722X888X2975722X888X2975722X988X29qqX2975722X888X2975722X888X2975722X988X29qqX2975722X88qqX2975722X888X2975722X888X2975722X988X29qqX2975722X888X2975722X888X2975722X988X29qqX2975722X888X2975722X888X2975722X988X29qqX2975722X88qqX2975722X888X2975722X888X2975722X988X29qqX2975722X888X2975722X888X2975722X988X29qqX2975722X888X2975722X888X2975722X988X29qqX297572

What I'll probably do is add a test case with a code > 32 digits that should validate to false. Then everyone gets to run their tests. :-)

@drinckes is this still applicable?

Probably - to languages other than C++. I think @tgulacsi is pointing out that Go is also having underflow problems without a max length.

As discussed in this thread, we are going to internally limit the number of characters that we process. This will avoid underflow errors.
It will take a while to update all the libraries.

I'm going to close this bug now that we have a solution going forward. #190 tracks the work of updating all the libraries.


 The precommit hook prevents the commit because it finds that code coverage is 76.93% which is less than the threshold which is 98%.
My issue is that when I run yarn test the code coverage is reported 98.10%.
Environment
λ npx envinfo --npmPackages '*hapi*' --binaries
npx: installed 1 in 1.817s

  Binaries:
    Node: 14.17.5 - C:\Program Files\nodejs\node.EXE
    Yarn: 3.1.1 - C:\Program Files\nodejs\yarn.CMD
    npm: 6.14.14 - C:\Program Files\nodejs\npm.CMD

Steps to Reproduce

Fork the repository
Make some changes
Run yarn test to see code coverage and make sure that is above 98.00%
Try to commit

λ yarn test

  ..................................................
  ..................................................
  ..................................................
  ..................................................
  ................

216 tests complete
Test duration: 4586 ms
Leaks: No issues
Coverage: 98.10% (36/1894)
lib/definitions.js missing coverage on line(s): 138
lib/index.js missing coverage on line(s): 144-146, 148, 215, 349, 350, 372
lib/parameters.js missing coverage on line(s): 76, 98
lib/paths.js missing coverage on line(s): 99, 100, 216, 369, 451
lib/properties.js missing coverage on line(s): 120, 124, 125, 197, 198, 226, 289, 292, 330, 336, 404, 571, 640, 641, 661
lib/responses.js missing coverage on line(s): 97, 109, 157
lib/utilities.js missing coverage on line(s): 264, 332
Lint: No issues

λ git commit -m "feat: add support for format field in integer properties"
‼ Detected incorrect braces with only single value: `*.{js}`. Reformatted as: `*.js`

‼ Detected incorrect braces with only single value: `*.{js}`. Reformatted as: `*.js`

[STARTED] Preparing lint-staged...
[SUCCESS] Preparing lint-staged...
[STARTED] Running tasks for staged files...
[STARTED] package.json — 2 files
[STARTED] *.js — 2 files
[STARTED] *.{json,md,scss,yaml,yml} — 0 file
[SKIPPED] *.{json,md,scss,yaml,yml} — no files
[STARTED] eslint --fix
[SUCCESS] eslint --fix
[STARTED] yarn test
[FAILED] yarn test [FAILED]
[FAILED] yarn test [FAILED]
[SUCCESS] Running tasks for staged files...
[STARTED] Applying modifications from tasks...
[SKIPPED] Skipped because of errors from tasks.
[STARTED] Reverting to original state because of errors...
[SUCCESS] Reverting to original state because of errors...
[STARTED] Cleaning up temporary files...
[SUCCESS] Cleaning up temporary files...

× yarn test:

  ................

16 tests complete
Test duration: 249 ms
Leaks: No issues
Coverage: 76.93% (437/1894)
lib/builder.js missing coverage on line(s): 79, 80, 95-97, 107, 108, 113, 114, 117, 118, 132-136, 138, 139, 151, 161-163, 168, 179, 192, 193, 197, 198, 205, 206
lib/defaults.js missing coverage on line(s): 24
lib/definitions.js missing coverage on line(s): 37, 39, 72, 73, 77, 78, 136-139, 162, 163
lib/filter.js missing coverage on line(s): 34-36, 39, 41-43, 46, 51, 52
lib/group.js missing coverage on line(s): 23, 41, 49, 64, 65, 67, 68
lib/index.js missing coverage on line(s): 104, 105, 108, 109, 114, 115, 122, 124-127, 130, 134, 136, 138, 144-146, 148, 168-171, 186, 197, 206, 215, 264, 265, 275, 319, 321, 322, 333, 334, 336, 339-342, 348-350, 353, 355, 371-374, 376, 379
lib/info.js missing coverage on line(s): 40
lib/parameters.js missing coverage on line(s): 46, 52, 55-60, 63, 64, 66, 70-72, 75, 76, 78, 79, 81, 89-94, 97-99, 102, 103, 107, 109, 110, 114, 118-122, 124, 125, 130-132, 135
lib/paths.js missing coverage on line(s): 55, 68-75, 83, 84, 87, 88, 91, 92, 95, 97, 99, 100, 107-109, 113, 114, 116, 119, 123, 129, 131-134, 169, 177, 178, 183, 185, 186, 190, 191, 194, 195, 204, 209, 210, 212, 216, 218, 219, 221, 230-232, 234-236, 239, 240, 242, 244, 245, 248, 249, 269, 270, 276, 278-281, 283, 285, 291, 292, 305, 306, 313, 314, 319, 320, 323, 357, 367, 369-371, 393-395, 410-412, 430, 432, 433, 437, 438, 451, 452
lib/properties.js missing coverage on line(s): 85, 87, 88, 109-111, 120, 124, 125, 197, 198, 215, 216, 220-222, 226, 262, 271, 275, 279, 283, 284, 289-293, 296, 297, 330, 336, 404, 451-453, 494, 505, 506, 538, 540, 541, 543, 547, 548, 550, 551, 554, 557, 564-566, 568, 571, 572, 574-576, 579-581, 584, 586, 592, 602, 612, 640, 641, 657, 661
lib/responses.js missing coverage on line(s): 44, 49, 58, 59, 63, 64, 70, 71, 92, 94, 97-99, 101, 102, 104, 105, 109, 111, 115, 116, 118, 119, 124, 125, 127, 150, 157
lib/sort.js missing coverage on line(s): 13, 15
lib/tags.js missing coverage on line(s): 32-34
lib/utilities.js missing coverage on line(s): 13, 24, 77, 93, 95, 124, 135-141, 145, 157-161, 163, 165, 176-180, 184, 185, 188, 190, 202-205, 208-210, 213, 216, 218, 230-233, 237, 239, 264, 277, 289, 332-334, 336, 405, 414, 442-444, 456-458, 460, 471, 472, 476, 478
lib/validate.js missing coverage on line(s): 14-17, 19-21, 32-34, 36, 37
Code coverage below threshold: 76.93 < 98
Lint: No issues

husky - pre-commit hook exited with code 1 (error)

Expected Behavior
I would expect to be able to commit my changes
Actual Behavior
I am not able to commit my changes
Reproducible Demo
https://github.com/codingstill/hapi-swagger.git is the repository I have  locally.
Does anyone have any insight on why I am facing this issue?

You can just add --no-verify flag for now to get past issues. If coverage drops considerable in PR then more work will be needed.

Closing since we can resolve in PR.


.eh_frame: Check libc.so.6 unwind tables

I've spot-checked the tables generated for libc (internal/dwarf/frame/testdata/libc.so.6), but we need to invest more time in checking mismatches between our table generator and readelf's

https://github.com/parca-dev/parca-agent/pull/842 carries the right metadata when CFA is an expression
https://github.com/parca-dev/parca-agent/pull/841 fixes our implementation save/restore opcodes, which was incorrect

We've spot checked this with readelf output and we seem to be generating correct tables. Our generated table for libc can be found here: https://github.com/parca-dev/testdata/blob/main/tables/ours_libc_so_6.txt


Consistent OOM Crash while searching short string

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

VS Code Version:  Every version I have used for many years, but currently 1.60.0
OS Version:   Windows 10 Pro

Description
The VSCode search editor (the search that appears as a tab, rather than in the sidebar) nearly always crashes when I type a short search string with a dialog saying "The window has crashed (reason: 'oom')"
This happens on a moderate sized project:  ~50k lines of code.  Not counting node_modules of course, which I never ever want to search.
My machine has 16GB of ram, and is sitting with 5GB free at the time of this crash.  This out of memory crash doesn't seem to actually care about the amount of free system memory.  It will happen off a fresh boot.
This has been going on forever, and only after the 1000th time crashing like this did it reach the bar of annoyance where I decided I should complain.
It seems like there are quite a few closed issues about OOM errors but they have all been closed due to inactivity or not enough information.  I have attached the crash dump, which hopefully should suffice.
Here are some past issues which might be related
#130375
#113737
#120686
#109902
Steps to Reproduce

Press Ctrl+Shift+F to open a search tab in the editor
Type a small phrase of two or three letters, e.g. "in"

Crash dump taken with code --disable-extensions --crash-reporter-directory d:/VSCodeCrashes
VSCodeCrash-OOM-Searching.zip
Workarounds

Type the search phrase as quickly as possible, so that it doesn't start searching on the first few letters that you type (seems like it has some throttling built in).  If I hesitate too much on the spelling of a word, after typing the first couple letters, this is usually when I get the crash

Filter down to fewer file types.  It seems to avoid the crash if I filter to just *.ts, *.tsx.  When I don't have a filter, it returns search results in .SVG files and other nonsense that I would never actually want to search.  Maybe just initializing the search editor by default with a sensible set of include/exclude filters would go along way towards fixing this issue.  (on the other hand, Sublime Text is able to handle searching with no filters on the same folder, with zero delay or memory issues, so it seems like it should be a solvable problem for VSCode to behave well even without any filters enabled)

Are there any particularly large files in the repo that might be causing allocation errors? cc @roblourens

Are there any particularly large files in the repo that might be causing allocation errors?

Not particularly large...  find . -printf '%s %p\n' | sort -nr | head -10 reveals that the largest file is 29 Megabytes (some random json file in a cache folder beneath a dependency that I didn't know I had, in node_modules)
So, that's kinda large, but not compared to the amount of free memory I have available on my system.
And, I guess the logical counter-question would be, shouldn't an industrial-strength search tool be able to handle the presence of a few large files without bringing down the application?     None of the other applications I use to search (sublime, grep, Notepad++) have run into any difficulty.
If there were a limit on VSCode's abiilty to search large files, a better behaviour would be not to crash, but to detect that the file is over the limit before trying to read it, and just to give me a message in the output saying "didn't search xyz.json, it was too large"

That's pretty weird. Are you able to share the workspace?
@deepak1556 could you look at the crash dump and check whether it tells us anything useful?

@roblourens apologies, but the project is confidential so I don't have an easily sharable case, but let me know if there's any other diagnostics that I can do on this side.

Do you have search.maxResults configured at all?

Do you have search.maxResults configured at all?

No, I wasn't aware of that setting, so I was using the default of 20000.  Setting that to 2000 seems to make it drastically more well behaved, it returns the search results very quickly and so far I haven't been able to get it to give "OOM"
2000 is still a lot of search results to sift through, so that's a perfectly acceptable setting to me.  Maybe it's a better default as well since it makes the search much more responsive.

You might be able to help us by downloading a public large repo (chromium, linux, perhaps even vscode) and getting a reproducible case there.

That's a good idea. I cloned vscode, and yes, with the default setting of 20000 search results I reproduced this crash the first time, searching for "aa".  It showed a progress bar for 5 seconds and then the same dialog as in my earlier screenshot.

could you look at the crash dump and check whether it tells us anything useful?

This particular OOM was caused by the JS in the renderer, not much useful information from the native stack. It would be good to get a memory profile as next step. Also the user is running 32-bit version of the application, so they are hitting the limit earlier.
The following steps are easier to repro the memory leak,

Open the search editor on any large source folder. (I used chromium to capture the attached heap snapshots)
Take a baseline snapshot 1
Perform a search and take snapshot 2
Close the search editor
Force GC via devtools
Take snapshot 3

Snapshot link
It looks like search results are held on by the EditorGroupService and are not freed.

Also the user is running 32-bit version of the application, so they are hitting the limit earlier.

I habitually opt for 64-bit downloaders, so it comes as a surprise to me that I'm running a 32 bit version of VSCode.
I can't see how to verify this from the About page.. it's not very clear as to whether the software is 32 or 64 bit,

It does say "ia32" next to the OS, but I'm definitely running 64 bit Windows 10.  (according to Windows's About page)

(maybe ia32 is meant to include Intel 32 and 64 bit processors?)
Assuming that 32 bit is the problem, the out-of-memory failure dialog seems like an excellent place to remind the user that they are severely limiting the ability to address a large amount of RAM by using a 32 bit version.
I suggest a message like:  "You have run out of memory.  You are running the 32 bit version, and the 64 bit version of the software would be less likely to hit this crash"
That would be a lot more informative that simply "OOM" and -5368707904
. I would definitely have responded to such a message by immediately downloading the 64 bit version.

It does say "ia32" next to the OS, but I'm definitely running 64 bit Windows 10. (according to Windows's About page)

It refers to ia32 runtime of the application and not the OS.

I also faced this problem
for reproduce - need a big one-lined file with a large number of occurrences
For example steps for reproduce:

clone repo https://github.com/froala/wysiwyg-editor
open repo in vscode
search function, with files to include 'froala_editor.pkgd.min.js'
that search in only one file
click Open in editor - crashed by out of memory

I have researched this problem and I have a solution
PR will be a little later

Thanks @Gvozd for digging into this and providing a great patch! @uglycoyote, could you help us by verifying if this issue is fixed in the latest insiders?

Thanks, I checked the insiders edition and the crash does not appear, even with the default "max results" of 20000.  (I tested this as before, searching "aa" using the search editor, in a local copy of the vscode repo)
It's still pretty lackluster in terms of performance, taking about 30-40 seconds on this machine.
By comparison I can run grep -nir "aa" . in the same folder under WSL2 in about 3 seconds.
So, the crash is gone but I would still honestly suggest changing the default number of search results to 2000 so that the performance is not embarrassingly poor.  Even at a max of 2000, it still takes 12 seconds to do the search on this machine.
/verified

@uglycoyote how does the performance compare to the search view in the side panel? That uses a streaming search, I'd be interested how long it takes for the overall stream to finish

Here are a couple random timings, (these just done with stopwatch app on my phone, so +/- 2 sec accuracy here)

Searching for "aa" in the docked search bar, 20000 occurrences takes 51 seconds to find

Searching for "aa" in the search editor view, 20000 occurrences: 47 seconds

Searching for "re" in the docked search bar, 20000 occurrences: 5 seconds

Searching for "re" in the search editor view, 20000 occurrences: 16 seconds

(not sure why, but searching for re seems way faster than searching for aa)

time grep -nir "aa" . > file in the vscode directory:  0.15 seconds.
time grep -nir "aa" . in the vscode directory:  1.16 seconds.  (printing the results is most of the work there)


fix(drag-drop): events fired multiple times for short drag sequences on touch devices

Fixes the started and ended events being fired multiple times for short drag sequences on touch devices. The issue comes from the fact that we listen both for mouse and touch events, which means that we also pick up the fake events that are fired by mobile browsers.
Fixes #13125.

I finally got drag-drop enabled in Google, so back to not being merge-safe


Linux "desktop entries" (.desktop) aren't colored very well by ini language

Notice:

Sections not emphasized [Desktop Entry]
; start comments in ini files, not in desktop entries

Do you suggest to remove .desktop from the file extensions for ini?

It's probably preferable to lose the property highlighting over incorrectly indicating comments yeah.
What's the protocol on adding niche language grammars like this? No one will bother download an extension for .desktop files but it would be handy to have valid highlighting.

It has to be an extension, I don't see us author and maintain support for such rarely used file types.
We should make it easy though to find and install such an extension. E.g when opening a .desktop file we should propose to install support for it.


[Feature Request] retrieve paste content via cli

Unless pastey can already do this and I just reinvented the wheel big time, I'd like to propose a feature to allow for paste content retrieval from cli. Here are the changes I experimented with:

common.py (line 105)
   I replaced uuid.uuid4() with the below function. A UUID is way too much to type in my humble opinion and using a random, six character combination of uppercase/lowercase letters and numbers that gives you 56,800,235,584 possible combinations. It would take you 1,800 years to burn through those if you created a new paste every second. Five characters would still take 31 years.
def id_generator(size=6, chars=string.ascii_uppercase + string.digits + string.ascii_lowercase ):
  return ''.join(random.SystemRandom().choice(chars) for _ in range(size))

https://github.com/g-rock84/pastey/blob/main/pastey/common.py

functions.py (line 82)
unique_id = str(common.id_generator())

https://github.com/g-rock84/pastey/blob/main/pastey/functions.py

routes.py (line 191)
@app.route('/content/<unique_id>', methods = ['GET'])
@limiter.limit(config.rate_limit, exempt_when=lambda: common.verify_whitelist(common.get_source_ip(request)))
def get_paste(unique_id):
  source_ip = common.get_source_ip(request)

  # Check if restrict pasting to whitelist CIDRs is enabled
  if config.restrict_get and not common.verify_whitelist(source_ip):
      abort(401)

  paste_file = config.data_directory + "/" + unique_id
  if path.exists(paste_file):
      with open(paste_file, 'r') as f:
          paste = json.loads(f.read())
      return paste["content"], 200
  else:
      abort(400)

https://github.com/g-rock84/pastey/blob/main/pastey/routes.py

Thoughts? It could definitely be more polished/efficient/pretty, but it works. I've been using it on my network for a few days now without any issues. Of course, I haven't really given it a full shakedown. I think it is a pretty solid proof of concept if anything.
If this does not fit into what you envision for pastey then I will make sure to clearly indicate the differences between the two.
Either way, thank you for all your hard work. This is an awesome and extremely useful utility!

Look at the new /view//raw endpoint @Cesura added which may get you most of the way there.
As for the length of the uuid, i tend to agree but i made changes to my private repo to reflect. I did 5 characters in mine and was thinking of reducing it to 3 since my pastebin is just for me. If there is interest i could make a patch that minimizes the url length.

This is what I went with
   id_len = int(math.ceil( 2*math.log(len(listdir(config.data_directory))+2)/math.log(256) ))     unique_id = secrets.token_urlsafe(id_len)
The mathematics of this are to calculate the number of digits (in bytes) needed to represent the square of the number of current entries in the pastebin. (+2 to avoid an edge case at 0 and 1.) The secrets.token_url is probably overkill for randomness, but works quite well to make a base64-encoded string of that number of bytes. The square of the number is used because that is a measure of unlikeliness of collisions in the namespace. 10 entries will have >100 spots to occupy, etc.
You can see an example of it working here: https://bin.st5ve.com/view/kR4/raw
Should I make a pull request?

This is what I went with
 id_len = int(math.ceil( 2*math.log(len(listdir(config.data_directory))+2)/math.log(256) )) unique_id = secrets.token_urlsafe(id_len)

SUPER sorry that it has taken me a year to respond! I packed up and moved across several states since this. Anyway, this is pure genius! Way better than my solution. Bravo! I'll finally close this.


Consider open Github Discussion

Being the first "professional" Blazor Workflow Designer, this is a
Game Changer

Previous Blazor UI attempt
Part 1 - UI driven by Elsa Workflows
https://github.com/FransVanEk/ElsaDrivenUI

Good idea, Discussions is now enabled: https://github.com/elsa-workflows/elsa-studio/discussions

@GeorgeS2019 i think we can close this issue now that Discussions is enabled?


Uncaught Error: Extension context invalidated

problem
I try swr devtool extension but, occur the error and show white screen
content.ts:20 Uncaught Error: Extension context invalidated.
    at a (content.ts:20:13)
    at content.ts:49:18

and sometime show proper screen but not showing query history.
env
swr: 2.1.0
next: 13.2.4

I try erase and install all chrom extension
but not work 😢

"sometime show proper screen but not work" image

"white screen" image

same here but confirm that it is working on FireFox.

@Kwonkunkun  after checking #123  I used system theme and the problem fixed.

Thank you!

I used system theme and the problem fixed.

Yeah, that's a workaround 👍  I'll try to fix the root cause of the problem.


Fix save and restore cursor behavior

This broke in #717.
Fixes #818

Coverage increased (+0.3%) to 70.702% when pulling 604959a319096520cf1c074fb56615e43361a1f4 on Tyriar:818_fix_save_restore_cursor into f36bd24e1e5c25103399ce5999d01d7c2a9d8280 on sourcelair:master.

Coverage increased (+0.2%) to 70.567% when pulling 6ea7758ab16703b63145d1cd65fc2de2e6289f3b on Tyriar:818_fix_save_restore_cursor into f36bd24e1e5c25103399ce5999d01d7c2a9d8280 on sourcelair:master.

Ok, merge it, but seems that's not a fix, this is alternative of real solution...

I am working on some tests on this topic, https://github.com/AndrienkoAleksandr/xterm.js/blob/fixFullResetTerminal/src/test/test.js#L1025
So, @Tyriar thank you for a "new testcase", I will think about how to implement some solution to cover all known testcases...

@AndrienkoAleksandr are you sure we want to save/restore the cursor when switching to/from the alt buffer? I assume it was originally commented out for a reason and I'm not sure xterm does this https://github.com/joejulian/xterm/blob/defc6dd5684a12dc8e56cb6973ef973e7a32caa3/misc.c#L4172

@AndrienkoAleksandr clarification on what's wrong with this would be good too, is it just the save/restore on buffer change?

Coverage increased (+0.2%) to 70.539% when pulling ff165e8627baead61b93fcf0be595e64c3529ad3 on Tyriar:818_fix_save_restore_cursor into cdcbf60e443b956ef370083598c50dcc58f23b79 on sourcelair:master.


Finetuning

Has anyone tried fine-tuning the pre-trained networks to their own datasets?
Mine gets stuck at 20% accuracy and doesn't move from there.

I am wondering how I can fine tune on different dataset with different input size? Any help would highly appreciated.


Add go license check to CI

Issue #, if available:
The SOCI project intends to follow CNCF best practices, but currently has no mechanism for enforcing license checks of 3rd party dependencies. As a maintainer, it would be helpful to validate in CI that each contribution is following the guidance set forth by Amazon and CNCF with respect to usage of open source in the project.
Description of changes:
This change imports licenses check mechanism from the Amazon ECR credential helper project to validate usage of 3rd party dependencies is in alignment with Amazon and CNCF Open Source License usage best practices.
Testing performed:
Check is successful in CI
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Superseded by #1328


C interface for dataset aggregation

Implement a C interface for dataset aggregation

Codecov Report

Merging #257 (f83429e) into develop (fea2289) will increase coverage by 15.38%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##           develop     #257       +/-   ##
============================================
+ Coverage    79.96%   95.34%   +15.38%
============================================
  Files           55        5       -50
  Lines         3384      430     -2954
============================================
- Hits          2706      410     -2296
+ Misses         678       20      -658

Impacted Files
Coverage Δ

src/python/module/smartredis/client.py
94.78% <0.00%> (-0.65%)
:arrow_down:

src/python/module/smartredis/util.py
94.11% <0.00%> (-0.48%)
:arrow_down:

src/python/module/smartredis/error.py
95.34% <0.00%> (-0.11%)
:arrow_down:

src/python/module/smartredis/dataset.py
100.00% <0.00%> (ø)

src/cpp/singlekeycommand.cpp

src/cpp/stringfield.cpp

include/dbnode.h

include/command.tcc

src/cpp/metadata.cpp

include/metadata.h

... and 44 more


Update to upstream 64a9abb8be (LabelValuesFor signature change)

This brings the changes from upstream up to 64a9abb8be which includes changes to LabelValuesFor method: https://github.com/prometheus/prometheus/pull/14280
This intentionally doesn't update to latest main, which will have more changes because of the compactor interface refactor: https://github.com/prometheus/prometheus/pull/14143

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.3 out of 8 committers have signed the CLA.:white_check_mark: colega:white_check_mark: bboreham:white_check_mark: roidelapluie:x: parnavh:x: freak12techno:x: rgroothuijsen:x: SuperQ:x: Ranveer777You have signed the CLA already but the status is still pending? Let us recheck it.

This introduces a performance regression in LabelNamesFor fixed later in https://github.com/prometheus/prometheus/commit/5efc8dd27b6e68d5102b77bc708e52c9821c5101
So this shouldn't go into the Mimir's weekly release without that.


Support more than 1 clipplane

Need to add support for more than 1 cliplane in

[x] StandardMaterial
[x] PBRMaterial
[x] MaterialLibrary
[x] Documentation
[x] Add a validation test

http://doc.babylonjs.com/how_to/clip_planes


Memory Leak - Windows 10

Followed build instructions and managed to compile/run VeloView in Windows 10.
I have been using the record feature to record lidar data from a Velodyne Puck when I noticed there is a memory leak. First I thought it was related to the recording feature so I tested with just connecting the puck and leaving it be.
The screenshot below is the application running just for 6 minutes, as I write this I can see the memory rising.

Any thoughts?
Cheers,
Chris

Hello @Chris1990,
Thank you very much for this detailed bug report.
I will investigate on it.
Right now, my first guess would be that we have an internal queue that is enqueuing the last N-received packets (we settled N to 100 is I remember right). Thus, at the beginning of a recording the memory is expected to increase as long as the queue is not full.
Regards,
Pierre Guilbert

Hello @PierreGuilbertF
That would make sense, the memory did increase while I wasn't recording though. I left it for maybe a hour or so before I had to move onto something else.
Let me know if you need any more information or data.
Cheers,
Chris

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

Hello @Chris1990   when compiling veloview, QT version must be 5.10? whether other version can work or not?thanks.
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa


When will you share your code?

@shenyunhang , your method looks amazing. Just wonder when you will release your codes. Thanks

Thanks.
We are re-organizing our code in PyTorch.
And we are expecting code release in this month.

Is there any update? Thanks. @shenyunhang

Is there any update? Thanks. @shenyunhang

Hi, the code is already available in this repository.
https://github.com/shenyunhang/UWSOD/tree/UWSOD/projects/WSL

Hi, the code is already available in this repository.
https://github.com/shenyunhang/UWSOD/tree/UWSOD/projects/WSL

Is this a complete code?
I cannot figure out which codes are related to SSOPG and SWBBFT.
I only identify MRRP.

Sorry for my late response. It is complete codes.
SSOPG is implemented at here.
SSOPG is related at here.


Solution: add OTP 17.5 and 18.0 to Travis config

Hm. 17.5 and 18.0 do not seem to pass. I'll investigate.

Now it's passing and ready to merge.


Gallium is already a name for an LLVM project

Just saw this:
http://www.mesa3d.org/llvmpipe.html
https://en.wikipedia.org/wiki/Gallium3D
Will this be a problem?

Meh, if anybody complains I'll rename it to the Gallium Debugger, GDB for short ;).

haha, the perfect way out!


Master to Live

Docs Build status updates of commit 8aad6d1:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/TOC.md
:white_check_mark:Succeeded

mixed-reality-docs/unreal-development-overview.md
:white_check_mark:Succeeded
View

mixed-reality-docs/unreal-uxt-ch2.md
:white_check_mark:Succeeded
View

mixed-reality-docs/unreal-uxt-ch4.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 32daaec:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/TOC.md
:white_check_mark:Succeeded

mixed-reality-docs/unreal-development-overview.md
:white_check_mark:Succeeded
View

mixed-reality-docs/unreal-uxt-ch2.md
:white_check_mark:Succeeded
View

mixed-reality-docs/unreal-uxt-ch4.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Lenovo TAB 2 support

My Lenovo TAB 2 is detected as desktop. My device name in User Agent is "Lenovo TAB 2 A10-70L"

Thanks for the notice, I will add that to the next minor release of Mobile_Detect

mobile-detect is just a kind of "satellite"-project. It uses the RegEx patterns of
Mobile-Detect and generates JavaScript source code
based on the code of its "mother"-project.
Missing patterns for particular devices cannot be added in mobile-detect.js,
instead you have to create an issue in Mobile-Detect.
Please provide the User-Agent string, the manufacturer and the type of device (phone, tablet, tv, bot, ...).
It doesn't make any sense to change generated code. I hope you understand.


annoying toast notifications

The app background is toasting "internet not available" when the app is not in the foreground and in airplane mode, which is frustrating for users since its hard to know which application is toasting the notification.

Removed in https://github.com/SafeSlingerProject/SafeSlinger-Android/commit/00e1c917acd3241115dd7e2b856e02396b5edd09.


Bump deps for tests

Related to #660
All deps except vite and @playwright/test are bumped to their latest.
It seems like @playwright/test breaks the spa-rendering test when bumping the minor version further (not aligning to semver), and looking into that is next step after this as it's the same unit test that vite 4 breaks.

Thank you.


feat: add workaround for groups

Description
https://github.com/terraform-ibm-modules/terraform-ibm-icd-etcd/issues/248
Release required?

[ ] No release
[ ] Patch release (x.x.X)
[ ] Minor release (x.X.x)
[ ] Major release (X.x.x)

Release notes content
Add workaround to ignore groups config when provisioning instance using backup CRN
Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

For mergers

Use a conventional commit message to set the release level. Follow the guidelines.
Include information that users need to know about the PR in the commit message. The commit message becomes part of the GitHub release notes.
Use the Squash and merge option.

/run pipeline

/run pipeline

:tada: This PR is included in version 1.10.12 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


HHH-13613 : Improve CacheImplementor SPI to better support a DomainDa…

…taRegion and QueryResultsRegion with the same name
https://hibernate.atlassian.net/browse/HHH-13613
See the previous PR for earlier conversation: https://github.com/hibernate/hibernate-orm/pull/3006

StatisticsImpl#getCacheRegionStatistics and getQueryRegionStats call CacheImplementor#getQueryResultsCache.
Should a QueryResultsRegion really be created if one does not exist yet?
I suppose it makes sense to do this, if the application will ultimately create the region.
WDYT?

StatisticsImpl#getCacheRegionStatistics and getQueryRegionStats call CacheImplementor#getQueryResultsCache.
Should a QueryResultsRegion really be created if one does not exist yet?

The stats reference itself should be created.  So from there it depends whether you want to have a mutable CacheRegionStatisticsImpl to be able to inject the Region later if need be or to just create the Region up front to pass along to the CacheRegionStatisticsImpl.  IMO creating the Region when we create the CacheRegionStatisticsImpl makes the most sense.

Actually, #getQueryRegionStats is used only when we are triggered when the stats are being updated because of the execution of a query - it is only ever called from StatisticsImpl#queryCacheHit, StatisticsImpl#queryCacheMiss, etc.  Here we fully expect the region to exist.
WRT StatisticsImpl#getCacheRegionStatistics, as outlined in its comments it is a deprecated legacy method and its implementation it intended to be consistent with the legacy expectation.  Its replacement is StatisticsImpl#getQueryRegionStatistics which correctly uses CacheImplementor#getQueryResultsCacheStrictly instead
.  So it should create the region


Update Composer dependencies (2021-07-23-00-06)

Visual regression test passed!
View the visual regression test report


Add skeleton of Alien::YAMLScript

There are still some bits that could use some attention, but this setup means you can install Alien::YAMLScript to get a version of libyamlscript.so that is only visible to Perl, and then conditionally use that from YAMLScript::FFI (so that you don't need to have the Alien distribution installed if you have libyamlscript somewhere else).
More testing would be nice. And docs.
This includes some changes to the YAMLScript::FFI test suite so it runs unconditionally (although this will likely mean we need to make the Alien distribution a hard requirement anyway), and so we can test for the exception thrown on loading errors (we can rely on Test2::Suite directly, no need for a try/catch mechanism).

From 99694af6bf13b9a007faa61630f87b927cdccfbc:

We want to ship a specific version of libyamlscript with a specific version of YAMLScript::FFI, at least initially. This means that, at least while that is true, these two should be in the same distribution. But if that is true, then the name of the distribution needs to be named after the alien module, so we avoid hitting an error when trying to read the distribution's configuration.
This shouldn't matter, since the YAMLScript::FFI module is still provided by the Alien::YAMLScript distribution, so while they are together, trying to install either will install both.

I've broken down the two distributions in the end. Changing the distribution name was not acceptable, at least for now.
This current version of Alien::YAMLScript forces a share install of a specific version of the library. This will likely relax in the future, but this initial period aims to be strict to limit the sources of bugs.

Merged, pushed, released. Thank you!


[Concurrency] Promote StrictConcurrency to an upcoming feature flag.

Remove the CompleteConcurrency upcoming feature flag. Having yet another way to enable strict concurrency checking was not my best idea!
Promote StrictConcurrency to an upcoming feature. It means -strict-concurrency=complete, and -enable-upcoming-feature StrictConcurrency={minimal|targeted|complete} is still supported.
Enable GlobalConcurrency under complete concurrency checking.

@swift-ci please smoke test


Switch Async HTTP-client to httpx (HTTP/2-support)

I confirm that this contribution is made under the terms of the license found in the root directory of this repository's source tree and that I have the authority necessary to make this contribution on behalf of its copyright owner.

[x] Removed @staticmethod-decorator of callback_docv1 (See comment on bug below)
[x] Switched to httpx - Mainly to add HTTP/2 support, which presumably could improve feed performance by a lot.
[x]  Unit tests passing ✅ - BUT, working to quantify performance gain.

⚠ Encountered this bug when tenacity retry is applied

self = <AsyncRetrying object at 0x10468fca0 (stop=<tenacity.stop.stop_after_attempt object at 0x10468fb20>, wait=<tenacity.wa...bject at 0x10468fac0>, before=<function before_nothing at 0x104463f70>, after=<function after_nothing at 0x10447b1f0>)>
retry_state = <RetryCallState<PHONE_NUMBER>: attempt #3; slept for 3.0; last result: failed (TypeError object dict can't be used in 'await' expression)>

    def iter(self, retry_state: "RetryCallState") -> t.Union[DoAttempt, DoSleep, t.Any]:  # noqa
        fut = retry_state.outcome
        if fut is None:
            if self.before is not None:
                self.before(retry_state)
            return DoAttempt()

        is_explicit_retry = fut.failed and isinstance(fut.exception(), TryAgain)
        if not (is_explicit_retry or self.retry(retry_state)):
            return fut.result()

        if self.after is not None:
            self.after(retry_state)

        self.statistics["delay_since_first_attempt"] = retry_state.seconds_since_start
        if self.stop(retry_state):
            if self.retry_error_callback:
>               return self.retry_error_callback(retry_state)
E               TypeError: 'staticmethod' object is not callable

notebooks/lib/python3.9/site-packages/tenacity/__init__.py:322: TypeError

We should make unit tests for error handling. Maybe this is part of your fix?

Last time I tried httpx with http/2 I ran into issues with that it did not handle the case when the server would shutdown the connection (we do in Vespa cloud to disallow extremely long connections)

Last time I tried httpx with http/2 I ran into issues with that it did not handle the case when the server would shutdown the connection (we do in Vespa cloud to disallow extremely long connections)

That's very useful info. I will try to mock a test for that to check!

Closing for now, as httpx did not improve feeding performance notably, even with HTTP/2.
Need to investigate further to justify the change.

Adding these for context:
https://github.com/encode/httpx/discussions/2112
https://github.com/encode/httpx/issues/3215
Got a prototype working. Get Error: <ConnectionTerminated error_code:ErrorCodes.NO_ERROR, last_stream_id:2147483647, additional_data:677261636566756c> for the last ~3k when running 10k POST-requests with vectors "concurrently".
1k requests is approx 2x faster than feed_iterable, which is promising.
Need to implement queue, retries and semaphore to benchmark properly.

Ok, think this should be good now!

[x] VespaAsync now uses httpxwith http/2.
[x] Changed default max_connections-parameter to VespaAsync.__init__() to 1.
[x] Introduced keepalive_expiry=10 to avoid connections being terminated by the server.
[x] Added feed_async_iterable()-method. ~2-5x faster than feed_iterable() for the test case in the notebooks, better with increasing number of docs.
[x] Added feed_performance_cloud.ipynb that compares and demonstrates different ways of feeding to Vespa Cloud.

Some things that were explored:

Using asyncio.Queue, following the pattern from feed_iterable(), but using a Semaphore and only simple batching for restricting memory usage of tasks was 2-3x faster (with the case from the notebook in the PR). Possibly due to overhead of switching between putting/getting from the queue.
Different max_queue_size does not impact performance significantly.
Increasing max_connections for the async client impacts the performance negatively, as expected with HTTP2.

Should still be possible to get better performance by parallelizing, but leaving this for later.
Tests

[x] Added unit test.
[x] Added integration test in docker.
[x] Added notebook which also acts as test.
⚠ Unit tests failing on linkcheck, will be fixed in different PR.
⚠ Integration-cloud test cancelled due to conflicting with other PR runs.


Link to the in-depth docs at the end of the docs index

@raulraja please take a look.

[Current coverage][cc-pull] is 71.97%

Merging [#60][cc-pull] into [master][cc-base-branch] will not change coverage

@@             master        #60   diff @@
==========================================
  Files             8          8
  Lines           157        157
  Methods         153        153
  Messages          0          0
  Branches          4          4
==========================================
  Hits            113        113
  Misses           44         44
  Partials          0          0

Powered by Codecov. Last updated by [468c390...bdcaad3][cc-compare]
[cc-base-branch]: https://codecov.io/gh/47deg/fetch/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/47deg/fetch/compare/468c390ada0c5e806d9fb38bf6632714e685cc47...bdcaad35fe0b861310228002adb7d69bb88aa25d
[cc-pull]: https://codecov.io/gh/47deg/fetch/pull/60?src=pr

LGTM


Add ESLint and Prettier to Monarch QC Dashboard

Improve code readability and maintainability by adding ESLint for lining and Prettier for improved code formatting. Both of these tools are often used in Vue development to improve code maintainability and increase development speed.
This guide may help:
https://www.digitalocean.com/community/tutorials/vuejs-vue-eslint-prettier

Add ESLint first:
https://eslint.vuejs.org/user-guide/
Then add Prettier:
https://prettier.io/docs/en/install.html
Prettier also suggests adding eslint-config-prettier to avoid rules conflicts:
https://github.com/prettier/eslint-config-prettier#installation

Install Husky for git hooks:
https://typicode.github.io/husky/#/


hide / remove .html for each page

Category
feature request
Additional information
would be cool if we could remove / hide the .html extension - if editing htaccess was possible, it would look something like:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ /$1 [L,R=301]

@grand-lotus-iroh In the next version of gitbook.com (https://beta.gitbook.com), this is the default behavior.


Fix typo in spelling from "Puckaun" to "Puckane"

Correct typo.

Thank you for the fix @cormon1976 ... it looks like there's an errant file added (codeql-analysis.yml) that should be removed before this can land. Could I ask you to fix that?

@jasnell  done.
Great work on this app btw :) seems to be well written and designed.

Thank you @cormon1976 ! :-)
/cc @colmharte

The country / town lists are provided by the CSO and as checkin data is fed back to the CSO we need to keep the naming consistent with their lists.


feat(responceTime): Cache react markup by route

Currently on beta, we have high response times for a react page. This PR makes an attempt to address this.
The test environment was my local machine with one instance of mongo and four instances of the production app with 1 CPU and 1GB each. The testing lib was artillery
Each test consisted of 50 virtual users issuing 20 requests each to
http://localhost:3000/en/challenges/basic-html-and-html5/learn-how-freecodecamp-works
RPS sent is the number of requests per second
min, max, median, p95 and p99 are response times in ms.
Staging
All virtual users finished
Summary report @ 12:16:11(+0000) 2018-02-28
  Scenarios launched:  50
  Scenarios completed: 50
  Requests completed:  1000
  RPS sent: 13.97
  Request latency:
    min: 375.8
    max: 5948.5
    median: 2540.4
    p95: 3393.8
    p99: 3972.8
  Scenario counts:
    0: 50 (100%)
  Codes:
    200: 1000

Caching markup by route
req.originalUrl in markupMap
All virtual users finished
Summary report @ 13:28:31(+0000) 2018-02-28
  Scenarios launched:  50
  Scenarios completed: 50
  Requests completed:  1000
  RPS sent: 53.85
  Request latency:
    min: 86.6
    max: 2596.6
    median: 543.8
    p95: 1304.5
    p99: 2211.3
  Scenario counts:
    0: 50 (100%)
  Codes:
    200: 1000

markupMap.hasOwnProperty(req.originalUrl)
All virtual users finished
Summary report @ 13:31:29(+0000) 2018-02-28
  Scenarios launched:  50
  Scenarios completed: 50
  Requests completed:  1000
  RPS sent: 53.82
  Request latency:
    min: 81.4
    max: 2358.5
    median: 579.9
    p95: 1261.7
    p99: 2006.3
  Scenario counts:
    0: 50 (100%)
  Codes:
    200: 1000

Comparisons

Method
RPS
Median Response
Reduction (response time)

Current
13.97
2540.4
N/A

route in cache
53.85
543.8
78.6%

cache has route
53.82
579.9
77.2%

I am open to suggestions and ideas as to how to reduce the response time further

Thanks @Bouncey but we won't go for caching challenges in memory. I have a project on the board to render pages at build time.
Happy Coding

Awesome, I did think about that approach as well.
Can't wait to see it


Says cannot connect to the internet

🐞 bug report
Describe the bug
when i downloaded the installer and tried to run it, it says I need to connect to the internet. I was in poe playing and on discord. So i tried closing poe thinking that was the issue but was still getting the same issue.
To Reproduce

Screenshots

🌍  Your Environment

Version:  e.g. 0.6.9 portable
PoE:  e.g. Steam 3.10.0/e English

Hi, thanks for creating an issue. After the first installation a request is made to the PoE Api to get the current leagues. So this is normally caused by an unavailable Api. Therefore can you please check if this is still an issue?
In case it's still not working please send me your application logs so i can further investigate this issue. See following topic on how to generate them:
https://support.overwolf.com/en/support/solutions/articles/9000176827-how-to-get-your-overwolf-logs
Thanks! 🚀

Hi, thanks for creating an issue. After the first installation a request is made to the PoE Api to get the current leagues. So this is normally caused by an unavailable Api. Therefore can you please check if this is still an issue?
In case it's still not working please send me your application logs so i can further investigate this issue. See following topic on how to generate them:
https://support.overwolf.com/en/support/solutions/articles/9000176827-how-to-get-your-overwolf-logs
Thanks! 🚀

I got it working, was an overwolf issue, the error is because i guess its unable to install while having a firewall. not a very clear error on their part


adom: Replace adom-noteye 1.2.0 with vanilla adom 3.3.3

Motivation for this change
The old adom-noteye download site was shut down sometime last year, and I couldn't find a replacement.
This PR entirely replaces the adom derivation with one wrapping vanilla adom, from the official site. In case adom-noteye is still wanted (and can be found), I suggest it should be a separate derivation.
Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

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

The commits should be squashed, but I can't find a way to do that from within the GitHub UI. (Except by hitting 'squash and merge'.)
If desired, I can fix that up locally. I created this PR by copying and pasting my own adom.nix file.

Actually, belay this. Noteye appears to have been integrated with ADOM since last I played it.
I'll reopen with a more complete derivation.


Manual test multiple API keys can serve different roles

We want to verify that a customer can work with API key per role and that each API key is served to the right node based on its role
This will be done for Puppet 5 on Linux. Further versions and OS might be tested on future issues
DoD

[x] Puppet can get secrets for nodes and use the relevant API key based on their role

Puppet Version 5
Configure hostname
Server:
Change the server host name to the FQDN of the server in /etc/hostname
Add [server-ip] puppet-server to hosts file in /etc/hosts
node:
Change the host name to the puppet-agent of the server in /etc/hostname
add [server-ip] puppet-server to /etc/hosts
Install Puppet
wget https://apt.puppetlabs.com/puppet5-release-xenial.deb
sudo dpkg -i puppet5-release-xenial.deb sudo apt-get update -y
Install Server
sudo apt-get install puppetserver -y
After installing the Puppet server, you will need to configure the memory allocation. You are recommended to customize the memory usage depends on how much memory your master node has. You can do this by editing /etc/default/puppetserver file:
sudo nano /etc/default/puppetserver
Change the lines as per your server capacity:
From
JAVA_ARGS="-Xms2g -Xmx2g -XX:MaxPermSize=256m"
To
JAVA_ARGS="-Xms512m -Xmx512m"
Save and close the file, then start Puppet server and enable it to start on boot time with the following command:
sudo systemctl start puppetserver sudo systemctl enable puppetserver
You can check the status of the Puppet server using the following command:
sudo systemctl status puppetserver
Install Puppet Agent
sudo apt-get install puppet-agent -y
sudo nano /etc/puppetlabs/puppet/puppet.conf
Add the following lines:
[main]
certname = puppet-agent
server = server-fqdn
environment = production
Start Puppet
sudo systemctl start puppet sudo systemctl enable puppet
Sign Node Certificate
on puppet-server run
sudo /opt/puppetlabs/bin/puppet cert list
You should see the one request with your agent node’s hostname:
"puppet-agent" (SHA256) 7C:28:E8:AF:09:23:55:19:AF:C1:EE:C3:66:F2:02:73:AD:7F:53:17:28:CE:B0:26:AE:C7:6C:67:16:05:6F:2E
Next, sign a certificate request using the following command:
sudo /opt/puppetlabs/bin/puppet cert sign puppet-agent
You should see the following output:
Signing Certificate Request for: "puppet-agent" (SHA256) 7C:28:E8:AF:09:23:55:19:AF:C1:EE:C3:66:F2:02:73:AD:7F:53:17:28:CE:B0:26:AE:C7:6C:67:16:05:6F:2E Notice: Signed certificate request for puppet-agent Notice: Removing file Puppet::SSL::CertificateRequest puppet-agent at '/etc/puppetlabs/puppet/ssl/ca/requests/puppet-agent.pem'
The Puppet Master server is now able to communicate and control the Agent node. If you want to sign certificate request of multiple nodes at once, then run the following command:
sudo /opt/puppetlabs/bin/puppet cert sign --all

@cyberark/palmtree
Please lmk if you got notification due to this mention


Bank, Bank Tags and Item Identification plugins not working after today's game update

Describe the bug

Bank tags are not shown on the left hand side of the bank interface
Bank Value is not shown on the top bar
The deposit worn items button is missing its icon
Item Identification labels are being shown on the tabs in the bank

All bugs visible in below screenshot:

To Reproduce
Steps to reproduce the behavior:

Open Bank

Duplciate of #11585


[CT-1382] Seed csv cannot have SQL key words as headers

Is this a new bug in dbt-core?

[X] I believe this is a new bug in dbt-core
[X] I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior
csv contents
id,group
1,Group A
2,Group B
After running
run dbt seed

It creates an error
001003 (42000): SQL compilation error:
syntax error line 1 at position 64 unexpected 'group'.

Expected Behavior
Expected for the code to compile and run
Steps To Reproduce
Using Snowflake
Create /seed/test.csv file with the following contents
id,group
1,Group A
2,Group B
then run the command
run dbt seed

And then you get the error message about unexpected 'group'
Relevant log output
No response
Environment
- OS: macOS Monterey 12.7
- Python: 3.9.6
- dbt: 1.2.1
- snowflake plugin: 1.2.0

Which database adapter are you using with dbt?
snowflake
Additional Context
Seems like the issue is with SQL key words as column names in seed files

Hi @villar1
you can utilize quote column feature in seeds.. which avoid this error. by default quote_columns is false and set to true and retry..
https://docs.getdbt.com/reference/resource-configs/quote_columns

Was looking for something like this but clearly used wrong keywords when searching. Thanks for the help and sorry for the incorrect bug report.


first commit

@ArduinoBot

@ArduinoBot

The url will be same as  it is an upgrade, than why the error @ArduinoBot
A problem was found with your submission https://github.com/Subodh-roy2/Modular
❌ ERROR: Submission URL is already in the Library Manager index.

@ArduinoBot

@ArduinoBot

Update and added the Example code and firmware check it.
@ArduinoBot


Can't add file with type . Only 'source' and 'resource' are acceptable

generamba gen LoginModule rviper_controller
/Users/sburavtsov/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/git-<IP_ADDRESS>/lib/git/lib.rb:979: warning: Insecure world writable dir /Applications/Cocos in PATH, mode 040777

+--------------------+--------------------------------+
|             Summary for gen LoginModule             |
+--------------------+--------------------------------+
| company            | PeopleSay                      |
| project_name       | PeopleSay                      |
| xcodeproj_path     | PeopleSay.xcodeproj            |
| prefix             | PS                             |
| project_target     | PeopleSay                      |
| project_file_path  | PeopleSay/Classes/Modules      |
| project_group_path | PeopleSay/Classes/Modules      |
| test_target        | PeopleSayTests                 |
| test_file_path     | PeopleSayTests/Classes/Modules |
| test_group_path    | PeopleSayTests/Classes/Modules |
| podfile_path       | Podfile                        |
| templates          | rviper_controller              |
|                    | mvvm_controller                |
|                    | swifty_viper                   |
+--------------------+--------------------------------+

LoginModule module already exists. Replace? (yes/no) yes
Creating code files...
Can't add file with type . Only 'source' and 'resource' are acceptable
Can't add file with type . Only 'source' and 'resource' are acceptable
Can't add file with type . Only 'source' and 'resource' are acceptable
Can't add file with type . Only 'source' and 'resource' are acceptable
Can't add file with type . Only 'source' and 'resource' are acceptable
Can't add file with type . Only 'source' and 'resource' are acceptable
Can't add file with type . Only 'source' and 'resource' are acceptable
Can't add file with type . Only 'source' and 'resource' are acceptable
Can't add file with type . Only 'source' and 'resource' are acceptable
Can't add file with type . Only 'source' and 'resource' are acceptable
Can't add file with type . Only 'source' and 'resource' are acceptable
Creating test files...
Can't add file with type . Only 'source' and 'resource' are acceptable
Module successfully created!
Name: LoginModule
Module file path: PeopleSay/Classes/Modules/LoginModule
Module group path: PeopleSay/Classes/Modules/LoginModule
Test file path: PeopleSayTests/Classes/Modules/LoginModule
Test group path: PeopleSayTests/Classes/Modules/LoginModule

@sburavtsov thanks for reporting! Can you show please your rambaspec?

### Headers settings
company: PeopleSay

### Xcode project settings
project_name: PeopleSay
xcodeproj_path: PeopleSay.xcodeproj
prefix: PS

### Code generation settings section
# The main project target name
project_target: PeopleSay

# The file path for new modules
project_file_path: PeopleSay/Classes/Modules

# The Xcode group path to new modules
project_group_path: PeopleSay/Classes/Modules

### Tests generation settings section
# The tests target name
test_target: PeopleSayTests

# The file path for new tests
test_file_path: PeopleSayTests/Classes/Modules

# The Xcode group path to new tests
test_group_path: PeopleSayTests/Classes/Modules

### Dependencies settings section
podfile_path: Podfile

### Templates
templates:
- {name: rviper_controller}
- {name: mvvm_controller}
- {name: swifty_viper}

But it is Rambafile, I have some *.rambaspec in templates, but I assume it is not you wanted to see

Oops, i don't saw, that you use default template. So that I don't need rambaspec because it I have.

@sburavtsov you don't modified rviper_controller template in Templates directory?

No. I can send you whole project as it was generated by xcode, pod install and generamba. This issue can be easily reproduced (at least on my machine). Just tell me where I can send it.

PeopleSay.zip
Attached it right here.

Um...
PeopleSay generamba gen LoginModule rviper_controller

+--------------------+--------------------------------+
|             Summary for gen LoginModule             |
+--------------------+--------------------------------+
| company            | PeopleSay                      |
| project_name       | PeopleSay                      |
| xcodeproj_path     | PeopleSay.xcodeproj            |
| prefix             | PS                             |
| project_target     | PeopleSay                      |
| project_file_path  | PeopleSay/Classes/Modules      |
| project_group_path | PeopleSay/Classes/Modules      |
| test_target        | PeopleSayTests                 |
| test_file_path     | PeopleSayTests/Classes/Modules |
| test_group_path    | PeopleSayTests/Classes/Modules |
| podfile_path       | Podfile                        |
| templates          | rviper_controller              |
|                    | mvvm_controller                |
|                    | swifty_viper                   |
+--------------------+--------------------------------+

LoginModule module already exists. Replace? (yes/no) yes
Creating code files...
Creating test files...
Module successfully created!
Name: LoginModule
Module file path: PeopleSay/Classes/Modules/LoginModule
Module group path: PeopleSay/Classes/Modules/LoginModule
Test file path: PeopleSayTests/Classes/Modules/LoginModule
Test group path: PeopleSayTests/Classes/Modules/LoginModule

May be it depends on ruby version? I have
ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15]
Sergeys-iMac:PeopleSay sburavtsov$

installed with rbenv

Which of version generamba installed on your computer?

I've installed it today with gem install generamba
gem list generamba

*** LOCAL GEMS ***

generamba (0.7.8)
Sergeys-iMac:PeopleSay sburavtsov$

Thnx for you help, i was able to reproduce this bug, appear i don't update generamba. Now I'll see what the problem is.


Correct RuidaControl and GRBLControl, testing + maintenance.

The major issue is fixed. grblcontrol is likely still broken but regular rastering is solid. Also fully allows for unidirectional rastering now.


Profiles

It's not that beautiful but should work :)
I had to inline the styles for now because someone forgot to require foundation in packages.json ... :D
You just have to install ohlandt/user-profiles after the deployment.

@PhillippOhlandt If you fix the two minor typo's, i'll deploy this tomorrow! :-)

whoop!


how to map a point in the original drawing to the corrected one?

Thank you very much for your open source of such a great project. Here I have a question for you. After getting the output of the model, how can I map a point in the original drawing to the corrected one? Looking forward to your reply!

Recap of our method
Our model outputs a grid of size 31 x 45 (width x height). For each of the points of the grid, the model outputs 2 coordinates (x and y) representing the position of the grid on the warped document image.  The outputted grid is not regular but can be associated with a regular grid on [0,1]x[0,1].
So if the output of our model is out with shape 31x45x2, then out[0,0] is a vector of size 2 representing the coordinates in the input (warped) document image of the top left corner of the document.
The points inside the grid are linearly interpolated from the one predicted by the model. Here is the code that allows you to unwarp an image https://github.com/tanguymagne/UVDoc/blob/main/utils.py#L37-L51.
Mapping a point in the original drawing to the corrected one
More practically, to map a point in the original drawing to the corrected one, you need to find in which "square of the outputted grid" your point is and then do a linear interpolation.
This can be done with scipy.interpolate.griddata, as long as your point is effectively on the document in the original image. In that case points would be the coordinated of the points outputted by our model, values would be the coordinates of the points in the regular grid, and xi would be the query point, that is the point in the original drawing you want to map to the corrected one.
I hope this helps


Kresus Wallet

Pull Request for the addition of Kresus Wallet to the Rainbow Wallet Repository

@Chanchal-NetObjex Any reason why Kresus wallet is not working with WalletConnect ?

@Chanchal-NetObjex Any reason why Kresus wallet is not working with WalletConnect ?

Hey @KosmosKey. Could you mention which chain your trying to connect to?

@Chanchal-NetObjex Ethereum

@Chanchal-NetObjex Will close this PR to update to the newest RainbowKit v2 connector. We'll add this as soon as possible. Thank you for adding those changes 🙏
PR: https://github.com/rainbow-me/rainbowkit/pull/1788


Setting to open external URL's in new browser tab

In our Markdig implementation we would like all external links to open in a new browser tab.
After some investigation we found that Markdig (advanced) can do this with below syntax.
[Open Markdig in new tab](https://github.com/xoofx/markdig){target="_blank"}

It would be nice if we can set up Markdig to always render external links with this addition.
This way users do not need to add or risk forgetting it.

See https://github.com/xoofx/markdig/issues/577#issuecomment-984737406

Super, exactly what I was looking for, closing...


VPC in subnet without internet gateway

Hi,
I'm trying to launch a cluster on a private vpc without internet access (internet accessible only by a proxy).
I setup the proxy and the no_proxy variables with the user data script.
However the hadhoop health check is failing during installation.
This is because of the proxy. The ec2 private ip address (which is called by the health check) should go inside the no_proxy.
I have added the full vpc cidr block in the no_proxy env variable however urllib do not support cidr block in no_proxy.
I have 2 ideas but I'm here to get your suggestions:

Add all the vpc ip in the no proxy. This could work however I'm getting problems in doing it in the user data because somehow the env variable get truncated after a bit
Add a cidr block parser inside the health check (I can try to propose a solution if you agree)

Can this be handled in other ways?
Thanks
Andrea

The ec2 private ip address (which is called by the health check) should go inside the no_proxy

Could you elaborate on this, please? What exactly is no_proxy and where is that defined?

no_proxy is an environment variable that defines which domains should not go through the proxy.
Of course, this is typically not needed if you are not using a proxy. But I am since I'm inside a fully private vpc and the only way to get internet access is through a proxy.
However the ip address of the ec2 machine (that are in the vpc) should not be proxied hence you need to add them to the no_proxy variable.
To be comprehensive I'm adding the full vpc cidr block to the no proxy.
The problem is that urllib (that is used in flintrock to perform the Hadoop health check) is not supporting cidr block definition in the no_proxy variable. Hence when flintrock try to make a request to Hadoop api (which is the ip address of the ec2 machines ) in the cluster is going through the proxy and then blocked as expected.
I hoper I explained a bit better otherwise let me know.
Thanks

Can you share the error that Flintrock spits out during the health check?
Can you also share an example config, including for NO_PROXY, so I can try to recreate this problem and better understand it?

Can you share the error that Flintrock spits out during the health check?
Can you also share an example config, including for NO_PROXY, so I can try to recreate this problem and better understand it?

Previously, I encountered a connection timeout error, but I've since resolved it (refer to the details below). If it's necessary for your troubleshooting, I can revert to the previous code version and execute it again to capture the error output. Please inform me if that is required.
Here’s how I addressed the issue:
I modified the health_check function within the services.py file to include the master host in the no_proxy environment variable. You can view the change at this GitHub link:
https://github.com/a-cesari/flintrock/blob/dab1955f9f12b2e50f7f5aa90826e60435f0fb52/flintrock/services.py#L285
I appended the master host to the no_proxy environment variable within the def health_check(self, master_host: str): function by adding the following line:
os.environ['no_proxy']=os.environ['no_proxy']+','+master_host
The rationale for this modification is as follows:
In enterprise settings with a private VPC and subnets, internet access from EC2 instances is typically routed through a proxy server. However, internal VPC traffic, such as pinging another instance or accessing AWS internal DNS, should bypass the proxy to avoid being blocked. The no_proxy environment variable is used to specify destinations that should not be routed through the proxy.
For the health check, the master host's IP address could be any within the VPC. My solution was to add the entire VPC CIDR block to the no_proxy variable. Python's urllib, however, does not support CIDR blocks in no_proxy.
In my opinion there could be different options, in case you will consider to handle these cases:

Introduce an option named no_proxy where users can input all DNS or CIDR blocks. The IPs within these blocks should then be expanded and added to the no_proxy variable.

Within the health_check function, implement a check to determine:

If a CIDR block is present in no_proxy, and if the master host IP is within it, then the master host should be added to the no_proxy variable.

Let me know if I can help or if you need more info.
Thanks,


Development mode doesn't detect updates to C# decoder file

If the decoder file has changed, we should mark the sidecar as dirty.

This was fixed by #66. We'll want a better fix at some point, but thats not enough to keep this issue open.


Evaluate lineage queries

Once we get the lineage workflow, evaluate if we can use directly any database queries that would give the source -> target relationship instead of relying always on query parsing

Checked snowflake access history tables and they are not bringing much information. Let's stick to query parsing


Display a CDS View Using ALV with IDA

Tutorial URL: https://developers.sap.com/tutorials/abap-dev-adt-use-cds-view.html
Please specify the step you are referring to

Hello,
Do you have an example similar to this one where I can pass in a parameter from the ABAP program to a CDS view that has the  with parameters clause and a where clause and then render it with the command
cl_salv_gui_table_ida=>create_for_cds_view( 'your view here ' )->fullscreen( )->display( )? This would be a nice, more real world example to work with.
Thanks in advance,
Tony

Hi Tony,
It's a nice idea, but at present I have quite a backlog of tutorials, so I may not be able to do this. I have taken note, however. If I can update it, I will.
Thanks for your feedback. Julie.

Thank you for your feedback. Julie will see if this can be done. In the meantime, I am closing the issue.
If you still have questions, feel free to reopen the issue.


chore(main): release 0.18.2

:robot: I have created a release beep boop
0.18.2 (2024-12-21)
Bug Fixes

Add base branch to release workflow (#85) (cfeda3a)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v0.18.2
:sunflower:


Speech Priming for non-US LUIS Apps

Hi, the document says "Priming is not supported from non U.S. regional LUIS apps including: eu.luis.ai and au.luis.ai" - is that a permanent restriction or will it be opened to eu.luis.ai etc soon?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 86eb2418-d981-ccad-9235-0d898223627d
Version Independent ID: 3c949e65-9d7e-639a-bbf6-5b8c34c397c1
Content: Configure speech priming - Bot Service
Content Source: articles/bot-service-manage-speech-priming.md
Service: bot-service
Product: bot-framework
GitHub Login: @v-royhar
Microsoft Alias: v-royhar

Please post this question to Stack Overflow using the botframework tag.
Please note that Stack Overflow has guidelines such as requiring a descriptive title, a complete and concise problem statement, and enough details to reproduce your issue. Feature requests or overly broad questions are off-topic; new users should visit the Stack Overflow Help Center for more details.

OK, asked https://stackoverflow.com/questions/54550246/speech-priming-for-non-us-luis-apps


Refs #27086 -- Corrections to unit testing contributor docs.

In the unit tests contributor docs, the Tips section is over-indented under the Troubleshooting section. It should be a sibling. (I think.)
This just outdents it a notch.
Before:

After:

Hey @felixxm — can you take another look please? Added two commits:

My other TODO from DjangoCon sprints. (Upgrade Python!)

Super. Thanks for the review @felixxm!


feat: Add support to multipart

This is done by reusing the whole request logic but, when serializing only headers and body matchers are used.

Could we get this merged please?

I added multipart in a slightly different way


Page gets "stuck" when scrolling backwards through previous chapters

Steps to reproduce
Use "long strip" or "long atrip with gaps" reading mode.
Pick a chapter from any series, one that has at least 2 older chapters.
Open the chapter up and start scrolling in reverse, to the previous chapter's pages.
Expected behavior
Pages from previous chapters load in descending order as you scroll backwards.
Actual behavior
Page gets stuck and you are unable to scroll backwards past a certain point.
Crash logs
No response
Mihon version
0.16.5 (standard, 2a01a2a, 6, 2024-04-09T09:58:14Z)
Android version
Android 14
Device
Pixel 8 Pro
Other details
Here is a screen recording showing the issue.
https://github.com/user-attachments/assets/a56219c2-2a83-4337-984c-abb55fbab6c3
How I usually encounter it is:

I see a new chapter update
I open it, then realise I don't remember what happened in the previous chapter
I start to scroll backwards, so I can quickly check the last few pages of the previous chapter
The page gets stuck. Often it gets stuck before even displaying the full final page of the previous chapter
I give up, go back to the channel list, and specifically open the previous chapter from there, scrolling forward until the final few pages that I originally wanted to quickly check

I had the same issue when I was using a Samsung phone.
Acknowledgements

[x] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] I have gone through the FAQ and troubleshooting guide.
[X] I have updated the app to version 0.16.5.
[X] I have updated all installed extensions.
[X] I will fill out all of the requested information in this form.

I am facing this issue since Tachiyomi, though it's rarely happens.

Happens to me when zoomed out I can't scroll to previous chapter unless zoomed in left (I read zoomed out on a tablet because it's too square-y reading zoomed in)

Previous dead Tachi PR that mentions this issue (for additional info/background): https://git.mihon.tech/tachiyomi/tachiyomi/pulls/3762


fix team details

Describe your changes
Context

Checklist before requesting a review

[ ] If it is a core feature, I have added thorough tests
[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have only one commit (if not, squash them into one commit)
[ ] This PR is not a duplicate

fix team details


📖 A few doc updates & expansions

Summary
This PR makes a few doc updates and expansions to the release-0.7 branch.  This is like #1029 but for this release branch.
Related issue(s)
Fixes #

/cc @clubanderson
/cc @francostellari
/cc @dumb0002


Simplify gitData and version guessing

Background
When publishing content to NPM the "git data" i.e. the exact commit at which the build was done is not possible to be known. So a .git-data.json file is created to persist this useful data:

For NPM release (stable): Only the version is persisted. Once must then track the version's tag in Github to resolve that version to a specific commit. While this is okay, git-data.json gives a gurantee of the exact commit at build time.

For NPM release (nightly): canary commits include the commit, so this feature is not really  necessary. However, it's more cumbersome to have conditional logic on stable / nightly.

For build from source: .git folder is available in the context of the built code, so it can extract  branch and commit directly without the need for .git-data.json.

For build from source dockerized: This feature is required to know the branch and commit, since git data is not persisted past the build. However, .dockerignore prevents .git folder from being  copied into the container's context, so .git-data.json can't be generated.

Before
The "version string" (what is displayed in logs and metrics) was manually crafted on each run from new git-data, persisted git-data and local package.json file. The priority order was:

new git-data
persisted git-data
local package.json file

After
The priority order is changed such that the semver version is ALWAYS derived from the local package.json file and never from any git data. This will solve the incorrect tagging of versions.
Also, the number of commits is never tracked, so for nightly only the commit will be shown.

When publishing content to NPM the "git data" i.e. the exact commit at which the build was done is not possible to be known.

I don't think this is true?
$ yarn add @chainsafe/lodestar-cli
...
$ cat<EMAIL_ADDRESS>| grep gitHead
  "gitHead": "822191497bcce6b0f45c8def07d24d6a6045f1c9"

When publishing content to NPM the "git data" i.e. the exact commit at which the build was done is not possible to be known.

I don't think this is true?
$ yarn add @chainsafe/lodestar-cli
...
$ cat<EMAIL_ADDRESS>| grep gitHead
  "gitHead": "822191497bcce6b0f45c8def07d24d6a6045f1c9"

Oh I wasn't aware of this. We could def re-use this and burn the .git-data.json thing. Tho are we actually using it for our packages? I don't see it doing an install from NPM

When publishing content to NPM the "git data" i.e. the exact commit at which the build was done is not possible to be known.

I don't think this is true?
$ yarn add @chainsafe/lodestar-cli
...
$ cat<EMAIL_ADDRESS>| grep gitHead
  "gitHead": "822191497bcce6b0f45c8def07d24d6a6045f1c9"

While this is a good suggestion it's actually complimentary to this PR. The main goal of the PR is to ensure that the version string is derived from the package.json, which is equivalent to @wemeetagain suggestion. In a latter PR we can effectively "merge" .git-data.json into the package.json using gitHead property, but I don't see it as a blocker.
This PR is very important to ensure we don't render confusing or outright wrong versions in the logs.


No append for dict

Also, in addition to issue #11, I got error "AttributeError: 'dict' object has no attribute 'append'" on
profiles.append(d) (line 253 in parse_profiles).
[Python 3.7, Windows 7]

At first, I changed profiles.append by profiles.update, but it was a wrong idea... The issue is that profiles should be a list, while it was a dictionnary reading an empty or missing profiles.json. Then, I simply forced the type of profiles to list when it appears to be an empty dict.
It was:
        profiles = json.load(f)

And it's now:
        profiles = json.load(f)
        if not bool(profiles):
            profiles = []

It works like this on my part! I let you test and close if it's OK for you too...

Good catch! I think I fixed this in the latest build. Can you try it out?

Unfortunately not (see my comment today about issue #11). Well, anyway, no reason it doesn't work ;)


Using a Action (in Jar Task) for Smithy-Tags

This is an alternate to https://github.com/awslabs/smithy-gradle-plugin/pull/47. In that PR, having ability to do gradle smithyTags seemed odd. So I tried adding an Action to the Jar task itself instead.
One drawback of this solution is that I don't know how Action inputs work. I did add @Input annotation to the SmithyTagsAction. I tested this case:
cd examples/adds-jar
gradle clean
gradle jar # (A) This works
gradle jar # (B) This is fine too, the jar is unchanged, though I did notice that build/tmp/jar/MANIFEST.MF was changed and didn't have Smithy-Tags. But the jar Task was considered UP-TO-DATE and no new jar

# Now I edited the build.gradle.kts to change the `tags` value in SmithyExtension
gradle jar # (C) However, this had no change to build/tmp/jar/MANIFEST.MF or the jar. So the new `tags` from build.gradle.kts are NOT picked up.

This PR does not pick up changes to tags in build.gradle.kts. But https://github.com/awslabs/smithy-gradle-plugin/pull/47 works fine for that case. So preferring that PR over this.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

This approach also has the drawback, that the logging for the Smithy-Tags logic, just shows up under the :jar tasks output. It might make it confusing while troubleshooting to understand how that Smithy logic is coming under :jar. Might be addressed by adding more details/styling to the logs.

Going with https://github.com/awslabs/smithy-gradle-plugin/pull/47, so closing this.