Refactor the Facets databases to enable incremental indexing

Pull Request
What does this PR do?
Party fixes https://github.com/meilisearch/milli/issues/605 by making the indexing of the facet databases (i.e. facet_id_f64_docids and facet_id_string_docids) incremental. It also closes #327 and https://github.com/meilisearch/meilisearch/issues/2820 . Two more untracked bugs were also fixed:

The facet distribution algorithm did not respect the maxFacetValues parameter when there were only a few candidate document ids.
The structure of the levels > 0 of the facet databases were not updated following the deletion of documents

How to review this PR
First, read this comment to get an overview of the changes.
Then, based on this comment, raise any concerns you might have about:

the new structure of the databases
the algorithms for sort, facet distribution, and range search
the new/removed heed codecs

Then, weigh in on the following concerns:

adding fuzzcheck as a fuzz-only dependency may add too much complexity for the benefits it provides
the ByteSliceRef and StrRefCodec are misnamed or should not exist
the new behaviour of facet distributions can be considered incorrect
incremental deletion is useless given that documents are always deleted in bulk

What's left for me to do

Re-read everything once to make sure I haven't forgotten anything
Wait for the results of the benchmarks and see if (1) they provide enough information (2) there was any change in performance, especially for search queries. Then, maybe, spend some time optimising the code.
Test whether the info/http-ui crates survived the refactor

Old structure of the facet_id_f64_docids and facet_id_string_docids databases
Previously, these two databases had different but conceptually similar structures. For each field id, the facet number database had the following format:
            ┌───────────────────────────────┬───────────────────────────────┬───────────────┐
┌───────┐   │            1.2 – 2            │           3.4 – 100           │   102 – 104   │
│Level 2│   │                               │                               │               │
└───────┘   │         a, b, d, f, z         │         c, d, e, f, g         │     u, y      │
            ├───────────────┬───────────────┼───────────────┬───────────────┼───────────────┤
┌───────┐   │   1.2 – 1.3   │    1.6 – 2    │   3.4 – 12    │  12.3 – 100   │   102 – 104   │
│Level 1│   │               │               │               │               │               │
└───────┘   │  a, b, d, z   │    a, b, f    │    c, d, g    │     e, f      │     u, y      │
            ├───────┬───────┼───────┬───────┼───────┬───────┼───────┬───────┼───────┬───────┤
┌───────┐   │  1.2  │  1.3  │  1.6  │   2   │  3.4  │   12  │  12.3 │  100  │  102  │  104  │
│Level 0│   │       │       │       │       │       │       │       │       │       │       │
└───────┘   │  a, b │  d, z │  b, f │  a, f │  c, d │   g   │   e   │  e, f │   y   │   u   │
            └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘

where the first line is the key of the database, consisting of :

the field id
the level height
the left and right bound of the group

and the second line is the value of the database, consisting of:

a bitmap of all the docids that have a facet value within the bounds

The facet_id_string_docids had a similar structure:
            ┌───────────────────────────────┬───────────────────────────────┬───────────────┐
┌───────┐   │             0 – 3             │             4 – 7             │     8 – 9     │
│Level 2│   │                               │                               │               │
└───────┘   │         a, b, d, f, z         │         c, d, e, f, g         │     u, y      │
            ├───────────────┬───────────────┼───────────────┬───────────────┼───────────────┤
┌───────┐   │     0 – 1     │     2 – 3     │     4 – 5     │     6 – 7     │     8 – 9     │
│Level 1│   │  "ab" – "ac"  │ "ba" – "bac"  │ "gaf" – "gal" │"form" – "wow" │ "woz" – "zz"  │
└───────┘   │  a, b, d, z   │    a, b, f    │    c, d, g    │     e, f      │     u, y      │
            ├───────┬───────┼───────┬───────┼───────┬───────┼───────┬───────┼───────┬───────┤
┌───────┐   │  "ab" │  "ac" │  "ba" │ "bac" │ "gaf" │ "gal" │ "form"│ "wow" │ "woz" │  "zz" │
│Level 0│   │  "AB" │ " Ac" │ "ba " │ "Bac" │ " GAF"│ "gal" │ "Form"│ " wow"│ "woz" │  "ZZ" │
└───────┘   │  a, b │  d, z │  b, f │  a, f │  c, d │   g   │   e   │  e, f │   y   │   u   │
            └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘

where, at level 0, the key is:

the normalised facet value (string)

and the value is:

the original facet value (string)
a bitmap of all the docids that have this normalised string facet value

At level 1, the key is:

the left bound of the range as an index in level 0
the right bound of the range as an index in level 0

and the value is:

the left bound of the range as a normalised string
the right bound of the range as a normalised string
a bitmap of all the docids that have a string facet value within the bounds

At level > 1, the key is:

the left bound of the range as an index in level 0
the right bound of the range as an index in level 0

and the value is:

a bitmap of all the docids that have a string facet value within the bounds

New structure of the facet_id_f64_docids and facet_id_string_docids databases
Now both the facet_id_f64_docids and facet_id_string_docids databases have the exact same structure:
            ┌───────────────────────────────┬───────────────────────────────┬───────────────┐
┌───────┐   │           "ab" (2)            │           "gaf" (2)           │   "woz" (1)   │
│Level 2│   │                               │                               │               │
└───────┘   │        [a, b, d, f, z]        │        [c, d, e, f, g]        │    [u, y]     │
            ├───────────────┬───────────────┼───────────────┬───────────────┼───────────────┤
┌───────┐   │   "ab" (2)    │   "ba" (2)    │   "gaf" (2)   │  "form" (2)   │   "woz" (2)   │
│Level 1│   │               │               │               │               │               │
└───────┘   │ [a, b, d, z]  │   [a, b, f]   │   [c, d, g]   │    [e, f]     │    [u, y]     │
            ├───────┬───────┼───────┬───────┼───────┬───────┼───────┬───────┼───────┬───────┤
┌───────┐   │  "ab" │  "ac" │  "ba" │ "bac" │ "gaf" │ "gal" │ "form"│ "wow" │ "woz" │  "zz" │
│Level 0│   │       │       │       │       │       │       │       │       │       │       │
└───────┘   │ [a, b]│ [d, z]│ [b, f]│ [a, f]│ [c, d]│  [g]  │  [e]  │ [e, f]│  [y]  │  [u]  │
            └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘

where for all levels, the key is a FacetGroupKey<T> containing:

the field id (u16)
the level height (u8)
the left bound of the range (T)

and the value is a FacetGroupValue containing:

the number of elements from the level below that are part of the range (u8, =0 for level 0)
a bitmap of all the docids that have a facet value within the bounds (RoaringBitmap)

The right bound of the range is now implicit, it is equal to Excluded(next_left_bound).
In the code, the key is always encoded using FacetGroupKeyCodec<C> where C is the codec used to encode the facet value (either OrderedF64Codec or StrRefCodec) and the value is encoded with FacetGroupValueCodec.
Since both databases share the same structure, we can implement almost all operations only once by treating the facet value as a byte slice (i.e. FacetGroupKey<&[u8]> encoded as FacetGroupKeyCodec<ByteSliceRef>). This is, in my opinion, a big simplification.
The reason for changing the structure of the databases is to make it possible to incrementally add a facet value to an existing database. Since the facet_id_string_docids used to store indices to level 0 in all levels > 0, adding an element to level 0 would potentially invalidate all the indices.
Note that the original string value of a facet is no longer stored in this database.
Incrementally adding a facet value
Here I describe how we can add a facet value to the new database incrementally. If we want to add the document with id z and facet value gap., then we want to add/modify the elements highlighted below in pink:

which results in:

one element was added in level 0
one key/value was modified in level 1
one value was modified in level 2

Adding this element was easy since we could simply add it to level 0 and then increase the group_size part of the value for the level above. However, in order to keep the structure balanced, we can't always do this. If the group size reaches a threshold (max_group_size), then we split the node into two. For example, let's imagine that max_group_size is 4 and we add the docid y with facet value gas. First, we add it in level 0:

Then, we realise that the group size of its parent is going to reach the maximum group size (=4) and thus we split the parent into two nodes:

and since we inserted an element in level 1, we also update level 2 accordingly, by increasing the group size of the parent:

We also have two other parameters:

group_size is the default group size when building the database from scratch
min_level_size is the minimum number of elements that a level should contain

When the highest level size is greater than group_size * min_level_size, then we create an additional level above it.
There is one more edge case for the insertion algorithm. While we normally don't modify the existing left bounds of a key, we have to do it if the facet value being inserted is smaller than the first left bound. For example, inserting "aa" with the docid w would change the database to:

The root of the code for incremental indexing is the FacetUpdateIncremental builder.
Incrementally removing a facet value
TODO: the algorithm was implemented and works, but its current API is: fn delete(self, facet_value, single_docid). It removes the given document id from all keys containing the given facet value. I don't think it is the right way to implement it anymore. Perhaps a bitmap of docids should be given instead. This is fairly easy to do. But since we batch document deletions together (because of soft deletion), it's not clear to me anymore that incremental deletion should be implemented at all.
Bulk insertion
While it's faster to incrementally add a single facet value to the database, it is sometimes slower to repeatedly add facet values one-by-one instead of doing it in bulk. For example, during initial indexing, we'd like to build the database from a list of facet values and associated document ids in one go. The FacetUpdateBulk builder provides a way to do so. It works by:

clearing all levels > 0 from the DB
adding all new elements in level 0
rebuilding the higher levels from scratch

The algorithm for bulk insertion is the same as the previous one.
Choosing between incremental and bulk insertion
On my computer, I measured that is about 50x slower to add N facet values incrementally than it is to re-build a database with N facet values in level 0. Therefore, we dynamically choose to use either incremental insertion or bulk insertion based on (1) the number of existing elements in level 0 of the database and (2) the number of facet values from the new documents.
This is imprecise but is mainly aimed at avoiding the worst-case scenario where the incremental insertion method is used repeatedly millions of times.
Fuzz-testing
Potentially controversial:
I fuzz-tested incremental addition and deletion using fuzzcheck, which found many bugs. The fuzz-test consists of inserting/deleting facet values and docids in succession, each operation is processed with different parameters for group_size, max_group_size, and min_level_size. After all the operations are processed, the content of level 0 is compared to the content of an equivalent structure with a simple and easily-checked implementation. Furthermore, we check that the database has a correct structure (all groups from levels > 0 correctly combine the content of their children). I also visualised the code coverage found by the fuzz-test. It covered 100% of the relevant code except for unreachable/panic statements and errors returned by heed.
The fuzz-test and the fuzzcheck dependency are only compiled when cargo fuzzcheck is used. For now, the dependency is from a local path on my computer, but it can be changed to a crate version if we decide to keep it.
Algorithms operating on the facet databases
There are four important algorithms making use of the facet databases:

Sort, ascending
Sort, descending
Facet distribution
Range search

Previously, the implementation of all four algorithms was based on a number of iterators specific to each database kind (number or string): FacetNumberRange, FacetNumberRevRange, FacetNumberIter (with a reversed and reducing/non-reducing option), FacetStringGroupRange, FacetStringGroupRevRange, FacetStringLevel0Range, FacetStringLevel0RevRange, and FacetStringIter (reversed + reducing/non-reducing).
Now, all four algorithms have a unique implementation shared by both the string and number databases. There are four functions:

ascending_facet_sort in search/facet/facet_sort_ascending.rs
descending_facet_sort in search/facet/facet_sort_descending.rs
iterate_over_facet_distribution in search/facet/facet_distribution_iter.rs
find_docids_of_facet_within_bounds in search/facet/facet_range_search.rs

I have tried to test them with some snapshot tests but more testing could still be done. I don't think that the performance of these algorithms regressed, but that will need to be confirmed by benchmarks.
Change of behaviour for facet distributions
Previously, the original string value of a facet was stored in the level 0 of facet_id_string_docids . This is no longer the case. The original string value was used in the implementation of the facet distribution algorithm. Now, to recover it, we pick a random document id which contains the normalised string value and look up the original one in field_id_docid_facet_strings. As a consequence, it may be that the string value returned in the field distribution does not appear in any of the candidates. For example,
{ "id": 0, "colour": "RED" }
{ "id": 1, "colour": "red" }

Facet distribution for the colour field among the candidates [1]:
{ "RED": 1 }

Here, "RED" was given as the original facet value even though it does not appear in the document id 1.
Heed codecs
A number of heed codecs related to the facet databases were removed:

FacetLevelValueF64Codec
FacetLevelValueU32Codec
FacetStringLevelZeroCodec
StringValueCodec
FacetStringZeroBoundsValueCodec
FacetValueStringCodec
FieldDocIdFacetStringCodec
FieldDocIdFacetF64Codec

They were replaced by:

FacetGroupKeyCodec<C> (replaces all key codecs for the facet databases)
FacetGroupValueCodec (replaces all value codecs for the facet databases)
FieldDocIdFacetCodec<C> (replaces FieldDocIdFacetStringCodec and FieldDocIdFacetF64Codec)

Since the associated encoded item of FacetGroupKeyCodec<C> is FacetKey<T> and we often work with FacetKey<&[u8]> and FacetKey<&str>, then we need to have codecs that encode values of type &str and &[u8]. The existing ByteSlice and Str codecs do not work for that purpose (their EItem are [u8] and str), I have also created two new codecs:

ByteSliceRef is a codec with a EItem = DItem = &[u8]
StrRefCodec is a codec with a EItem = DItem = &str

I have also factored out the code used to encode an ordered f64 into its own OrderedF64Codec.

Adding API-breaking for this part;

Change of behaviour for facet distributions

Why does http-ui/src/main.rs and infos/src/main.rs exists?

aftermath of a rebase, they're gone now :)

bors merge


”Lunca Cernii de Jos”, ”Ciumița”, ”Fântâna”, ”Gura Bordului” are listed in the drop-down menu

Description:
When user writes ”Lunca Cernii de Jos”, ”Ciumița”, ”Fântâna”, ”Gura Bordului” the locations appear in the drop-down menu next to the comune and the county which is a part according to the law.
Precondition:
The website is up an running.

Step 2
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 3
Write in the search bar "Ciumița"

Expected results
The location appears in the drop-down menu as "Sat Ciumița, HUNEDOARA (Lunca Cernii de Jos)".

Step 4
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 5
Write in the search bar "Fântâna"

Expected results
The location appears in the drop-down menu as "Sat Fântâna, HUNEDOARA (Lunca Cernii de Jos)".

Step 6
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 7
Write in the search bar "Gura Bordului"

Expected results
The location appears in the drop-down menu as "Sat Gura Bordului, HUNEDOARA (Lunca Cernii de Jos)".


No Log Analytics workspace resources are selected. Please select Log Analytics workspace.

Trying to use the sample workbooks and the subject error is all I get from it
Any idea where/how to add/select the workspace?
Thanks
sebus

Ah, needed to add it in settings of the workbook!


Modify bread crumb and modify loginBg position about skinnable

Modify bread crumb for vic
Modify loginBg position about skinnable

Coverage decreased (-0.03%) to 64.401% when pulling 2dba3aca1c6ffaa3448346ab504981c513cdc871 on pengpengshui:upstreamBreadScrumb into a32111c2d02c6d73072bb9590a2cf2099d02a27e on vmware:release-1.5.0.


CI: use Parallel-Lint

Parallel-Lint, as the name implies, runs PHP lint in parallel, making it faster than native linting.
It also provides more helpful output with a syntax highlighter code snippet showing the context of syntax errors.
And lastly, it allows for easily running PHP linting over the files in a local dev environment.
So, as we're now doing a full composer install on every Travis build anyway, we may as well use this tool.

Looks fine but job https://travis-ci.com/github/WordPress/WordPress-Coding-Standards/jobs/359617749 needs rerunning

@gmponos What we had in place originally was also non-fancy and about 10 times faster than running this via PHPCS, so why would we ever even consider that ?
The current solution is 4x faster again and more user-friendly for running locally etc.

@GaryJones Build is passing now. Was the usual Travis hickups only had to restart the build 3 times...

was also non-fancy and about 10 times faster

It might be depending the number of files and processes (I use 8 processes)..
in my projects that have lots of files the total time is shorter
Anyway.. if you count it and it is faster then ok.. 🤷


Python watcher is apparently broken

Hi,
Currently on my system, the watch feature is not working.
OS : Debian testing
Lighttable build x86_64
Version : 0.5.12
type connection : python
Commands : editor.eval.python
Python version : Python 2.7.5+
What : Create a simple python file; with this code "x = 5", then select the "x" variable, open the "command" tab, and select "Editor: watch selection".
Actual results : The python intepretation crashes with this stacktrace :
Traceback (most recent call last):
File "/opt/Lighttable/plugins/python/ltmain.py", line 155, in handleEval
toExec.append(handlePos(code, data[2]["pos"]))
File "/opt/Lighttable/plugins/python/ltmain.py", line 118, in handlePos
a = ast.parse(string)
File "/usr/lib/python2.7/ast.py", line 37, in parse
return compile(source, filename, mode, PyCF_ONLY_AST)
File "", line 3
SyntaxError: can't assign to function call
Expected result : the interpretation doesn't crash and the watch is set up correctly.
I've checked that the feature is supposed to work, and search for similar issues without any success.
Thanks for your help, and all the hard work done on Lighttable !
Sterfield

I'm getting this error as well - as @foobarbecue asked, could you please clarify this?

@joonro I think it's pretty clear he just got his right and left mixed up.

Yeah, my apologies for the confusion, you can't assign to a function so you can't watch something on the left-hand side of an assignment. The right is fair game.


[Bouncy Castle]  include bc into pulsar-client fix docs

Motivation
The docs of bc need an update after merge PR #7453, also we could include bc in the pulsar client to avoid reference it in other modules.
Modifications

fix the docs after fix PR 7453;
make pulsar client include bc module; avoid other modules to include bc.
fix the pulsar-function bc jar issue.

Verifying this change
all the tests passed.

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks


Solutions for Project Euler problems #29, #57.

I recognized, that very old github issues are referenced from all of our Project Euler commits.
This merge will be mentioned in the issues no. 29 and 57 because of the '#' in the comment:
Solutions for problems #29, #57.

Are you able to change the merge/commit comment to the following?
Solutions for problems 29, 57.

:-))

well I'll make another PR without broken links from old issues


Update the UI of the search page

On the Music Hub website, the UI of the search page is not impressive and does not match the theme of the main page.

Hi, I'd like to work on this issue. Can you assign it to me?

Hi, I'd like to work on this issue. Can you assign it to me?

Sure, please proceed @sayumimuthu
Happy Coding...!!

Hi, are there any specific UI improvements you'd like to have? If so, I could add them too.

Hi, are there any specific UI improvements you'd like to have? If so, I could add them too.

Make the song cards' UI just like the playlist page's UI.
Update the search bar UI


Installation of boost fails if one module fails

When installing the complete boost package one module (atlmfc) fails. Consequently the installation of all remaining boost modules is stopped. I think it would be better to continue installation of the remaining modules and notify the user about the failed modules at the end of the installation.

Sounds reasonable - More general, if one of multiple package installation fails only the dependent ones should be cancelled. With respect ot boost however, please note that there are quite a lot of dependencies between the modules, so depending on which module failed, you might still cancel most of the other modules.

Thanks for the suggestion! This is currently available by passing the --keep-going flag to install.
I'll look at improving the docs around this!

I'll look at improving the docs around this!

Well, vcpkg help install would have told me, if I'd just checked (seems obvious in hindsight) :(
One idea would be to mention this flag as part of the error message (assuming this is not already the case of course).

Thank you very much for the information. I should have looked more closely at documentation.


How to configure a custom port?

The default port 853 has security risks. How can I configure a custom port? Thank you

DNSecure can't support a custom port because Apple doesn't support it.
We use the NEDNSSettingsManager, and it only supports the standard ports defined by RFCs.
Please send a feedback to Apple.
https://feedbackassistant.apple.com/


Fix internal link to changelog paragraph

The link needs to point to https://docs.microsoft.com/en-us/odata/changelog/odatalib-7x#breaking-change-change-in-query-nodes
https://docs.microsoft.com/en-us/odata/odatalib/merge-complex-and-entity shows markdown instead of a link.

Docs Build status updates of commit a46913f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

Odata-docs/odatalib/v7/merge-complex-and-entity.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.


[AI Agent] International Cuisines Exploration AI Agent Added

📝 Description
This PR adds a Readme for the AI Agent on International Cuisines Exploration.
Issue
Fixes #2393
💣 Is this a breaking change (Yes/No):

[ ] Yes
[x] No

🚧 How to migrate?
Don't need.
📝 Additional Information
The AI Agent works as expected and can be accessed in the URL mentioned in the file

@AruSeito Please review and merge. Thanks.

Please be patient and wait for my colleagues to review.
Have a good weekend


Add support for targeted events.

This PR adds target attribute to code_editor component. It works like phx-target and can be used like this:
<LiveMonacoEditor.code_editor value={@value} change="code_change_event" target={@myself} />

This is necessary if you want to use editor as part of LiveComponent.

One more challenge that I can try to resolve later is throttling and bouncing. Sending LV event with whole editor content on each keypress sounds like an overkill.


Specs Working Group blog post

Closed by https://github.com/okfn/okfn.github.com/commit/19e716dd1860e731c1aba8a10e7b6b51ff2f0377


Versioning of channels yaml

In the event of changes to channel yaml specification, it might be a good idea to start versioning the specification and keep intended specification version in the yaml file. That way we can better ensure backwards compatibility.

Tha's a good suggestion, we could add some versioning to the specification and the JSON schema (that is authoritative).
However I'm not sure how to put this information into the channel YAML file...

I'd suggest:

adding schema versioning guidelines to the specification doc, I would say SchemaVer looks as a sane and readable solution:
https://snowplowanalytics.com/blog/2014/05/13/introducing-schemaver-for-semantic-versioning-of-schemas

Given a version number MODEL-REVISION-ADDITION, increment the:
MODEL when you make a breaking schema change which will prevent interaction with any historical data
REVISION when you make a schema change which may prevent interaction with some historical data
ADDITION when you make a schema change that is compatible with all historical data

incorporate schema version into $id attribute, like so:
"$id": "https://wildfly.org/v1.0.0/channel.schema.json"
add schemaVersion property to the schema

"properties": {
...
    "schemaVersion": {
      "description": "The version number of the schema in model.revision.addition format. ",
      "type": "string",
      "pattern": "^[0-9]{1,}.[0-9]{1,}.[0-9]{1,}$"
    },
...
 }


WYSIWYG and swithcing to markdown causing issues with deletion of text that have "<" and ">"

Azure Data Studio Version:
Version: 1.23.0 (system setup)
Commit: d296b6397e0acfddc57e9085e736e084969cdaeb
Date: 2020-10-13T23:03:09.799Z
VS Code: 1.49.0
Electron: 9.2.1
Chrome: 83.0.4103.122
Node.js: 12.14.1
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19042

Steps to Reproduce:

Create a text cell in a notebook.
Type \<testing1\> in the Split View mode.
Switch to Rich Text mode. Exit out of editing mode.
Add a new text underneath the line - say "awesome". Switch to Markdown. Exit out of editing mode.
What you'll see:
The rich text mode removed the \< and\>.
Going back and forth will cause removal of the entire \<testing1\> word.

This is a breaking change for existing users that may be using this form a lot.

Expected: no removal of \< and\> in markdown when switching back and forth. No removal of texts.

@barbaravaldez , @VasuBhog - the behavior of removing texts when switching back-and-forth Split View and Rich Text modes is similar to #12899.

@MsSQLGirl this also repros in the September release. Therefore, not a regression. However, I do believe that this is tied to the issue that @barbaravaldez is currently working on (the one you linked). We will aim to fix these for the November release.

It's removing what can be interpreted as HTML tags. This happens when the turndown service converts markup into rich text.


Added link_to_related_model helper

I plan on using this helper a lot, so might others need.

Above commit will fix the paging bug. Seems datatables parameter conversion chart is not up to date, still shows:
'iDisplayStart' => 'displayStart'
'iDisplayLength' => 'pageLength'
which does not work, working params are in the commit.

@doganmeh does link to related model only work for one-to-one fields? How will it work with ManyToOne or ManyToMany?

It was designed with ForeignKey fields in mind, but it should work with OneToOne fields as well. In summary, related object needs to be a single one. It would not work with ManytoMany..

I'll be pulling this in shortly, but I wanted to give a heads up that I'll probably want to adapt the helper.  As it is right now, the kwarg isn't required, which leads to it running a lookup via getattr(obj, None).
What this could use is an application of the @keyedhelper decorator I built, which could enable syntax such as this:
content = columns.TextColumn('content', processor=link_to_related_model('fkname'))

This related lookup strategy was neglected because it was it was technically always possible (the example shown in the helper's documentation addresses this) via the key kwarg.
For example:
helpers.link_to_model(key=helpers.attrgetter('fkname'))

or
helpers.link_to_model(key=lambda instance: instance.fkname)

Both are wordy, however, so I support the addition of a shorter syntax.

feel free..

the use cases of the keyed_helper was not clear to me. Going through the code, I now realize it supports dot notation. So that is probably what was meant by:

With the help of a sort-style key argument, the helper can receive all the information..

Thus, the link_to_related_model helper was redundant other than a little syntactic sugar.

What is the status on this PR? Will it get pulled in?

Closing this in favor of 553ef52 from #166 — link_to_model(attr='fkfield')
I'll get the paging issues corrected in a separate ticket.


Page Break works great - still can't get margin's right.

Hey, thanks for the 1.6.0 update, page break works great. Still can't get margins right though. Any suggestions how how to get better top/bottom margins:

I've tried playing with the data options, but the below does nothing:
 htmlToPdfOptions: {
                //margin: 0,
                margin: {
                  top: 0,
                  bottom: 60,
                  left: 0
                },

and I've also tried using CSS, but that just breaks the page break entirely where text disappears in between the pages:

Hey, You should use an array instead of an object for margin
Sample:
// margin: [top, left, bottom, right]
// As for your sample it should be

margin: [0, 0, 60, 0]

https://www.npmjs.com/package/vue-html2pdf#html-to-pdf-options
If that still doesn't work, you could use a padding style on that overlapping element instead or use a page break above that paragraph that is overlapping.

Yah unfortunately the margin has no effect even fixing it as an array. And using padding causes text to "disappear" in the crack. The issue is this is dynamically generated text. I cannot easily add page breaks without doing the height calculations that html2pdf is doing. Seems like it should be easy to define the height of the page with appropriate top/bottom margins, i just don't understand why I can't.

So I tried recreating what you did, I created a pdf content with one child element inside it. Inside the child element contains an estimated of 1000 words. Here is the sample
I used the margin with a value of 0.3 for bottom
margin: [0, 0, 0.3, 0],
It worked perfectly it did what it supposed to do with the page, here is the sample:

Here is a sample of my component:
https://pastebin.com/LjabFpdK
If things still doesn't work out, Could you give me a sample of your component and a sample of the dynamically generated text or an equivalent sample text? So that I could debug it on my side

Feel free to open this, if the issue persist!


Benefits: Tangible and Intangible

Expected Outcome

Completed Tangible and Intangible benefits of the system

Current State

Nothing Done

Done


Added integration tests and n+1 fixes

For this milestone of the project, the following changes were introduced:

Solved the N+1 problem when fetching all posts and their comments for a user

Used Capybara to write integration tests for each view present in the project.

Screenshots before n+1 fix:

Screenshots after the fixes:

Hi @MattGomb,
I approved it because This is your repo, The other (your collaborator @jfoyarzo ) submission is supposed to be invalidated not approved.


pre-download Asset authorization

ermrestJS:

[x] Rename the property to asset-permission instead of deriva-url-validate.

[x] When assets are not from the same origin, the default heuristic for asset presentation shouldn't attach the deriva-url-validate class. This also applies to the uinit and cid query parameters.

[x] For this head request, if the type of error thrown returns a no connection error, we should skip the retry logic and let chaise handle the error.

chaise:

[x] The onclick behavior for this class needs to check for the same origin before making a head request to verify if the user is authorized. No need to make the head request when a different origin because that other origin should have their own permissions policy.

[x] In the case of a cross origin asset, show a modal dialog to the user that states they will be automatically redirected in 5 seconds. Provide a button or link to allow user to navigate there instantly.

[x] Change catch block to handle both 401 and 403 similarly by pointing the user to the asset download policy (if the chaise config property is present).

[x] Bug in ErrorService.handleException, when trimming message, make sure it is defined first.

From further discussion:
ermrestJS

[ ] attach the external-link class instead to trigger the "redirect" dialog

[ ] attach "source" info only for different origin (not just when it isn't a hatrac path)

chaise

[ ] change dialog for 401 case to have title "Log in Required"

[ ] change dialog for 403 case to have "Permission Denied"

[ ] change dialog body to include user's name

[ ] on .external-link, show the "redirect" dialog

[ ] rename redirect dialog, change body text too

@hongsudt the following is what we have for the 401 dialog. I only changed the title of the modal since we merged the feature to show this when a 401 is returned.

This is what I added for the 403 case:

This is what the external link dialog will look like:

Assigning this to hongsuda to check the text and functionality.
Links for testing:

asset hosted on www
asset that returns 401 if not logged in


Pods cannot launch due to no available IP addresses

To replicate: run, stop and/or remove the number of pods equal to the local address space Hyperd is using. The address space hyper uses on CentOS is <IP_ADDRESS>/24 so 253 pods will cause this error.
After that many pods have been launched hyperd is incapable of running new pods. The error message is hyperctl ERROR: Error from daemon's response: no available ip addresses on network
When pods are stopped or deleted, their IPs should be freed to be used again but this does not end up happening.
The error message is coming from runv's IPAllocator here when it traverses all of its ip allocation and can't find anything available which means the IPs are not being properly freed.
The IPs (and all other resources) are freed here but I believe that a race condition causes execution to never reach this point.
Right before this, here the pod cleanup() that's been triggered by the vm shutdown channel event checks if the pod is already stopped and quits with the idea that there is nothing to be done.
I believe this is where the error is originating. The stop or remove command usually fully wraps up shutting down the VM and changing the pod into the STOPPED status before this code is even run.
The synchronous shutdown code here does nothing to free the IP reserved by the pod but simply deletes everything in hyper's DB and marks the pod as stopped.
The solution is likely to either add pod interface cleanup to the synchronous shutdown code path when the interface is deleted from leveldb, or allow the async pod cleanup to carry on with its job even if the pod is shutdown.

@spearl Thanks very much for reporting this. This bug is left here because the IP addresses were managed by external network controllers in production systems and there are few cases to cover these leakages.
To solve this, I prefer

add pod interface cleanup to the synchronous shutdown code path when the interface is deleted from leveldb

Would you like to contribute a fix for this bug? Otherwise we will fix it.

Thanks for getting back so quickly @gnawux. I put something together quickly ^ that I'd love any feedback on

Thank you @spearl
will push it forward asap


[Youtube] Can't extract title from unavailable video

Checklist

[ ] I'm reporting a broken site support issue
[x] I've verified that I'm running youtube-dl version 2020.06.06
[ ] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar bug reports including closed ones
[x] I've read bugs section in FAQ

Verbose log
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-jv', 'https://www.youtube.com/watch?v=00C7AQDQJII']
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, pref cp1252
[debug] youtube-dl version 2020.06.06
[debug] Python version 3.8.2 (CPython) - Windows-10-10.0.18362-SP0
[debug] exe versions: ffmpeg 4.1.1, ffprobe 4.1.1
[debug] Proxy map: {}
ERROR: 00C7AQDQJII: YouTube said: This video is not available.
Sorry about that.
Traceback (most recent call last):
  File "c:\users\riley\appdata\local\programs\python\python38\lib\site-packages\youtube_dl\YoutubeDL.py", line 797, in extract_info
    ie_result = ie.extract(url)
  File "c:\users\riley\appdata\local\programs\python\python38\lib\site-packages\youtube_dl\extractor\common.py", line 530, in extract
    ie_result = self._real_extract(url)
  File "c:\users\riley\appdata\local\programs\python\python38\lib\site-packages\youtube_dl\extractor\youtube.py", line 1827, in _real_extract
    raise ExtractorError(
youtube_dl.utils.ExtractorError: 00C7AQDQJII: YouTube said: This video is not available.
Sorry about that.

Description
Attempting to retrieve video title using -j, video title shows up on YouTube but can't be extracted by YoutubeDL because the video is unavailable.

This is expected behavior.

How would I get the title then?


Retry command as W3C when MicrosoftWebDriver returns Unknown Error

Proposed changes
This PR will fix https://github.com/webdriverio/webdriverio/issues/3143
MicrosoftWebdriver (which powers edge) will return back "Unknown Command" if it receives a JSON Wire Protocol command while running in W3C Mode (which is now default in recent Windows 10 Releases).
This PR will allow the "Unknown Error" error to be retried.
Types of changes

[x] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist

[x] I have read the CONTRIBUTING doc
[x] I have added tests that prove my fix is effective or that my feature works
[x] I have added necessary documentation (if appropriate)
[ ] I have proposed the same patch to the new v5 repository

Further comments

I don't believe this is necessary in v5, as I think v5 uses w3c commands by default
It would be really nice to refine the conditional to (psuedocode) if (isUnknownError(err) && Browser == "Edge"), but I'm not sure how to detect the browser in this piece of code

Reviewers: @christian-bromann

Happy to merge once, the CLA is signed.


helm: Update Ingress and HPA manifests to support modern K8s versions

Fixes #13536
Obsoletes #13538
This PR should only be merged after #13783 as it is forked off of that branch due to requiring some changes made there.
The chart version bump is incremental based off of other PRs like #13796 , #13783 , #13747
Description
This helm chart is currently not compatible with some more modern K8s versions due to lack of support for updates resource API versions.  This PR brings the chart more up to date by updating the Ingress and Horizontal Pod Autoscaler API versions to support newer API Versions but also maintain backwards compatibility.
Release note
Update Helm Chart Ingress and HPA manifests to support modern K8s versions

This PR has:

[X] been self-reviewed.

[X] added documentation for new or modified features or behaviors.

[X] a release note entry in the PR description.

[ ] added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links.

[X] added or updated version, license, or notice information in licenses.yaml

[X] added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.

[ ] added unit tests or modified existing tests to cover new code paths, ensuring the threshold for code coverage is met.

[ ] added integration tests.

[X] been tested in a test Druid cluster.

The failing test seems completely unrelated to this PR

This PR should definitely get reviewed.  Please do not mark as stale

@jwitko Thanks for your contribution. As mentioned in PR https://github.com/apache/druid/pull/15904, we have migrated the Helm Chart to a new repository, you are welcome to raise up new PR there and we can maintain the Druid Helm Chart together in new repository. And this PR will closed soon. Thank you again for your understanding and collaboration.


Apt can't be used for updates

I'm from the smart-node channel on Discord. I made the mistake of assuming that "apt-get update" would catch node updates. I thought it would be a nice note to add here that this isn't the case.

Thank you!


allow deleting image after upload

related to #74
child of #3

The problem is the uploaded images don't retain any information about the file storage location, just the download url. It will need to be refactored so that step and cover images retain the full IFirebaseUploadInfo data (which includes the download url, size and storage location)
Will work to do this, but will mean adding extra lines of code to handle both old and new formats, and possibly upgrade all live site images to correct format in the future to remove


Require pydantic<2

Fixes #297.
Changes proposed in this pull request:

Require pydantic<2

Attention: @prkumar

Related PR #295


rescuetime: <IP_ADDRESS> -> <IP_ADDRESS>

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for rescuetime is: "Helps you understand your daily habits so you can focus and be more productive"
meta.homepage for rescuetime is: "https://www.rescuetime.com"
meta.changelog for rescuetime is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

Warning: no invocation of /nix/store/aj7r1wv7l3jm6vn6w52dncs6zb6yxsx2-rescuetime-<IP_ADDRESS>/bin/rescuetime had a zero exit code or showed the expected version

Warning: no invocation of /nix/store/aj7r1wv7l3jm6vn6w52dncs6zb6yxsx2-rescuetime-<IP_ADDRESS>/bin/.rescuetime-wrapped had a zero exit code or showed the expected version

0 of 2 passed binary check by having a zero exit code.

0 of 2 passed binary check by having the new version present in output.

found <IP_ADDRESS> with grep in /nix/store/aj7r1wv7l3jm6vn6w52dncs6zb6yxsx2-rescuetime-<IP_ADDRESS>

found <IP_ADDRESS> in filename of file in /nix/store/aj7r1wv7l3jm6vn6w52dncs6zb6yxsx2-rescuetime-<IP_ADDRESS>

directory tree listing: https://gist.github.com/1133564ec6577744d2578ac31fb45b00

du listing: https://gist.github.com/9999e92d449586d8adfbf1cf56c6fb04

Rebuild report (if merged into master) (click to expand)

782 total rebuild path(s)

255 package rebuild(s)

254 x86_64-linux rebuild(s)
235 i686-linux rebuild(s)
59 x86_64-darwin rebuild(s)
234 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
abuild
alt-ergo
axel
bin_replace_string
bootiso
bundix
busybox
busybox-sandbox-shell
cabal2nix
cachix
cagebreak
ccze
check-wmiplus
common-updater-scripts
contacts
cq-editor
crate2nix
crystal2nix
dep2nix
discordchatexporter-cli
duply
dydisnix
epson-escpr2
faraday-cli
fcron
freenet
fusionInventory
go2nix
haskellPackages.cabal2nix-unstable
haskellPackages.cachix
haskellPackages.hercules-ci-agent
haskellPackages.hercules-ci-cli
haskellPackages.hercules-ci-cnix-expr
haskellPackages.hercules-ci-cnix-store
haskellPackages.nix-paths
haskellPackages.nvfetcher
haskellPackages.update-nix-fetchgit
hci
hercules-ci-agent
hip
home-assistant
hubstaff
hydra-unstable
lazpaint
libnixxml
lightdm
lightdm-enso-os-greeter
lightdm-mini-greeter
lightdm-tiny-greeter
lightdm_gtk_greeter

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/aj7r1wv7l3jm6vn6w52dncs6zb6yxsx2-rescuetime-<IP_ADDRESS> \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A rescuetime https://github.com/r-ryantm/nixpkgs/archive/b8343e73fa8f2ac3d9682f27ed65815da211b773.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/aj7r1wv7l3jm6vn6w52dncs6zb6yxsx2-rescuetime-<IP_ADDRESS>
ls -la /nix/store/aj7r1wv7l3jm6vn6w52dncs6zb6yxsx2-rescuetime-<IP_ADDRESS>/bin

Pre-merge build results
NixPkgs review skipped

Maintainer pings
cc @cstrahan for testing.

@c0bw3b fyi r-ryantm will probably try to do this same "update" again if the PR is closed. We intentionally just mark as draft, because r-ryantm won't open duplicate PRs if one is still open.

Repology is reporting newer versions so the next update should be an real one.


Changing .luacheckrc should immediately affect the diagnostics

Currently, when you change .luacheckrc file, the diagnostics stay the same until the file is modified, even though the lints might change:
https://user-images.githubusercontent.com/732554/209098796-70ee8894-b1e1-42d4-8fa1-68c4beacf6f4.mov
We should immediately trigger diagnostics refresh on .luacheckrc file change.

.luacheckrc has never worked for me as of 1.70 and 1.80. Has it been tested recently?
I tried:
unused_args = false
max_line_length = false
And restarted etc, still moaning about long lines

.luacheckrc has never worked for me as of 1.70 and 1.80. Has it been tested recently?
I tried:
unused_args = false max_line_length = false
And restarted etc, still moaning about long lines

Same issue for me

@hippocoder there was a problem that it does not work on Windows. It's now fixed, update your editor.


#1429 JPQL generation causes issues with hibernate query caching

Please review potential solution for #1429 and #1413

There seem to be a few backwards incompatible signature changes in the code. We can do those only in major releases.

My proposed solution required the change of the method getConstantToLabel to getLabelToConstant to ensure that the constant labels are unique thereby avoiding the Hibernate bug.  I'm using the fix on my project at work.........this solves the issue, but is it a proper solution in your opinion?  Thanks for taking the time to reply!

Based on my short review it looks like a proper solution, but for backwards compatible reason it can't be applied to a minor or patch release.

The PR is outdated and QueryDSL 3.x is no longer maintained. This fix would need to be updated.

The PR is outdated and QueryDSL 3.x is no longer maintained. This fix would need to be updated.


Delete Refcounted::objects()

We already have LSAN as a means for detecting memory leaks automatically when
running tests.  Keeping around the conditional compilation around NDEBUG isn't
worth it. Many optimized build environments define NDEBUG and this makes them
incapable of compiling the test code.

Did you validate that when we remove this line
EXPECT_EQ(std::size_t{0}, Refcounted::objects());
if we have a leak that this line was catching, it is also caught by just running the unit tests?

Yes, running with LSAN will catch any leaks that checking Refcounted::objects() == 0 at the end of a test will find.  I didn't validate this here on this diff directly, but I've seen it on previous diffs plenty of times.

I don't feel super strongly about this change. I liked the fact that we could have explicit assumptions expressed in the test code. Also knowing that not everyone is running LSAN with their diffs. I would accept the PR if we make LSAN part of Travis.

LSAN is part of Travis.  All ASAN runs done on Linux include LSAN.


Fix validations rules

Fix https://github.com/jhipster/generator-jhipster/issues/6010
For example, when name=min and value=0, the result is min instead of min(0)
It's because the condition if (this.value) will evaluate to true if value is not:

null
undefined
NaN
empty string
0
false

So the 0 need to be excluded here
Hope I won't break something, I'm trusting on your tests @MathieuAA
But plz, check closely if there is any impact

I think it's OK Pascal, thanks.


Web Part Failed SPCAF scan

Describe the bug
The customlearning.sppkg file was scanned by IT Security using SPCAF and 69 critical errors was found.
To Reproduce
Run SPCAF scan on .sppkg file
Expected behavior
,sppkg file passes scan
Screenshots

Learning Pathways version number
<IP_ADDRESS>.
Additional context
customlearning_results_05262021.pdf

Thanks for submitting this report @goodjohnscott. I will happily review it in more detail, and will look to try and incorporate the feedback in future releases, although there are a few things in here that I can already see are things that we are doing quite purposefully. In the meantime this is an open-source solution so do feel free to submit a PR to correct any of the issues you find that don't fundamentally break the solution (i.e. the sizing of the iFrame component for rendering the assets).

@juliemturner, you read my mind.  I was just talking to the team about making the changes and submitting a PR so we don't run into this issue with other customers.  Can you elaborate on what things are you doing purposeful?  That would help me with having the customer submit a waiver.

Honestly this is a long report, it seems like it's mostly only about escaping the property pane properties, which is IMHO not really a big deal but sure we can do that.  There was one thing that I saw around modifying the DOM, which I think based on the code it's referencing is where we're purposefully resizing the iFrame based on the postMessage to the contents of the iFrame to get it's height. Honestly, I do not have the bandwidth right now to review the report in detail and make the changes.  That said if you want to attempt to make them I'd happily review your PR and then jettison changes that will fundamentally break the solution, that's really the best I can offer right now. Please review the contribution guidelines here: https://github.com/pnp/custom-learning-office-365#contributions

I agree with you 100% on how critical some of those errors really are.   I'll plan to address the findings that we can without breaking anything and put in a PR.  Shall I close this issue?

No, leave it open and then reference it in your PR (Addresses Enhancement #525)... that way those that find this can trace back whatever fixes were applied.

Just wanted to leave a status update.  It appears the SPCAF has false positives.  We opened a support case with them in June but still haven't gotten confirmation.  Once they do, I'll do a PR with my updates.

@goodjohnscott Thank you for the update. Let us know what you come up and I can review the PR.

I am going to close this as it is inactive. If you would like to submit a PR to fix the issues please feel free and reference this issue.


Error in cnn_feature_extractor.py

i keep getting errors saying that unexpected keyword arguments for is_training in line 111

Can anyone help me to resolve it?

What's your tensorflow version?
This is a problem caused by tensorflow version. (tf1.3 or higher version does not need "is_training" argument for "resnet_v1_101" function)
I will change the code to work even in higher versions, but I recommend lowering tensorflow version (v1.0 or v1.1) as it can cause other problems depending on it.

What's your tensorflow version?
This is a problem caused by tensorflow version. (v1.2 or higher version needs "is_training" argument for "resnet_v1_101" function)
I recommend using higher tensorflow version (v1.2 or higher version ).

I'm using tensorflow 0.12 version. Is there any other option?

i tried to create virtual environment and installed tensorflow version 1.3, it still gives me the same error.

I'm very sorry about it, please try it with v1.1.0rc2. (or v1.1 maybe)


Plugin for Domoticz

Hello, could you create a plugin for Domoticz? I would like to use it to control my LG TV.
Domoticz-LGTV-WebOS-Plugin does not work correctly on the new LGC9.
Thank you.

I'm probably not interested to spend time on that at the moment, but happy to provide support, make any needed changes to the library etc if someone else wants to do it.

That would be awesome, thank you very much.


Local extension fails to activate with Activating extension '...' failed: Failed to fetch.

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

VS Code Version:

> code --version
1.69.2
3b889b090b5ad5793f524b5d1d39fda662b96a2a
x64

OS Version:

OS Name:	Microsoft Windows 11 Home
Version:		10.0.22000 Build 22000

Steps to Reproduce:
While running this extension locally (through Run And Debug script), I started to encounter the following error:
[Extension Host] STOPPED on first line for debugging on port 53183
 INFO Loading development extension at c:\Users\gleep\OneDrive\Desktop\Coding\vs-code\vs-extension
 WARN [twxs.cmake]: Cannot register 'cmake.cmakePath'. This property is already registered.
Overwriting grammar scope name to file mapping for scope source.cpp.embedded.macro.
Old grammar file: file:///c%3A/Users/gleep/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/extensions/cpp/syntaxes/cpp.embedded.macro.tmLanguage.json.
New grammar file: file:///c%3A/Users/gleep/.vscode/extensions/jeff-hykin.better-cpp-syntax-1.15.19/autogenerated/cpp.embedded.macro.tmLanguage.json
Overwriting grammar scope name to file mapping for scope source.cpp.
Old grammar file: file:///c%3A/Users/gleep/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/extensions/cpp/syntaxes/cpp.tmLanguage.json.
New grammar file: file:///c%3A/Users/gleep/.vscode/extensions/jeff-hykin.better-cpp-syntax-1.15.19/autogenerated/cpp.tmLanguage.json

TypeError: Failed to fetch
	at self.fetch (../../../vs/workbench/api/worker/extensionHostWorker.js:78:1898)
	at R._loadCommonJSModule (../../../vs/workbench/api/worker/extensionHostWorker.js:77:63236)
	at async Promise.all (index 0)
	at async g._activate (../../../vs/workbench/api/worker/extensionHostWorker.js:69:8180)
	at async g._waitForDepsThenActivate (../../../vs/workbench/api/worker/extensionHostWorker.js:69:8122)
	at async g._initialize (../../../vs/workbench/api/worker/extensionHostWorker.js:69:7486) {name: 'TypeError', message: 'Activating extension 'groogle.groog' failed: Failed to fetch.', stack: 'TypeError: Failed to fetch
	at self.fetch (..…ch/api/worker/extensionHostWorker.js:69:7486)'}

The only error message that displays in the window is
Activating extension 'groogle.groog' failed: Failed to fetch.

This error randomly started happening for me, and doesn't appear to be linked with any of the extension's actual code.  Below are fixes I already tried to no avail:

reverted to earlier commits locally to see if a new commit was the issue
uninstalled and reinstalled vscode
verified the actual extension wasn't enabled (so only the locally built one was being used)

The repository link from your extension's Marketplace entry gives a 404 error.
Anyway, as an extension developer you might find https://github.com/microsoft/vscode-discussions a better place for questions like this one.

Thanks for the redirection.
Fortunately, I ended up figuring out the issue. I recently changed the terminal.integrated.defaultProfile.windows setting to an Msys2 MinGW profile.  Changing the default profile back to null did the trick.
However, do you know if it's possible to have two separate terminal profiles configured--one for default profile and one specifically for extension development processes?

do you know if it's possible to have two separate terminal profiles configured...

I don't, but this sounds like a good question for the other place.

for anyone else who stumbles on this post, the following settings worked:
  "terminal.integrated.defaultProfile.windows": "MinGW",
  "terminal.integrated.automationProfile.windows": {
    "path": "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
  },


update nnir_to_clib/mv_objectdetect/mv_deploy to detect the OpenVX backend

@kiritigowda @rrawther @asalmanp Verified with both video and image. Works. Can be merged


⚠ ClamAV has degraded performance

In 0303b1c, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 246 ms

Resolved: ClamAV performance has improved in ff09fef after 16 minutes.


Solved Chapter1 - Exercise 3

yep,
but as I wrote in a earlier respons.
When I do  var LowestMenuChoice = 1 after the static class Menu
I see this message :
Menu.LowestMenuChoice': cannot declare instance members in a static class.
Or do I have to do that in the showMenu method ?
And I tried but do not see a way to make the login method smaller

is this one approved or do I have to change anything ?


DisappearingScaleBar always aligns TopStart of screen

DisappearingScaleBar always aligns TopStart of the screen as the passed modifier with alignment goes to the inner ScaleBar. I think the modifier should belong to the AnimatedVisibility.
In this example even though the alignment is set to TopEnd, the DisappearingScaleBar will be displayed on TopStart.
Box(Modifier.fillMaxSize()) {

   GoogleMap (
     modifier = Modifier.matchParentSize(),
     cameraPositionState = cameraPositionState
   )

   DisappearingScaleBar(
    modifier = Modifier.align(Alignment.TopEnd).padding(top = 5.dp, end = 15.dp),
    cameraPositionState = cameraPositionState,
    textColor = state.textColor,
    lineColor = state.lineColor,
    shadowColor = state.shadowColor
  )
}

Although the workaround exists here, we just need to wrap the DisappearingScaleBar inside another layout and set alignment on that layout.

@Priyankkjain Thanks for the report! I'll fix this shortly.


Proof notification content to use from proof request name

Description of feature / user story
Currently, proof request notifications reads "Proof_requested" in the Notifications tab. The content in the Notification should state who is making the request.
Acceptance Criteria

Could we somehow leverage verifier name/connection name to do this?

Wireframes or relevant image assets / links

@knguyenBC this might be related to what I describe here
https://github.com/bcgov/bc-wallet-mobile/issues/2125
?
Note I'm able to control the label in the notifications with 1.0 protocol proofs, and we were defaulting that to "proof_requested" in VCAuth-N but have since fixed that to be the proof config name.
In 2.0 protocol proofs it's showing as blank in the wallet now.
Above is all for connectionless proofs, but there is a name field in the proof that can show up there (though appears to not work when the wallet is handling 2.0 protocol)


adding owner id to amis v2

Closes #1228
Closes #1200

Coverage increased (+0.04%) to 92.201% when pulling 1c52be0ce4623c53dd36d8be0f86f18884e332df on terrycain:snimark-snimark/adding-owner-id-to-amis into 6e199d35b33c9516eb691e7985de3f0996b7c830 on spulec:master.


rake i18n:js:export command does not work in rails 4.2.1

I'm trying to configure i18n-js gem in rails 4.2.1 and trying to follow installation instructions I get an error when running:
$ rails generate i18n:js:config
Could not find generator 'i18n:js:config'. Maybe you meant 'scss:scaffold' or 'css:scaffold' or 'less:scaffold'
Run `rails generate --help` for more options.

rake i18n:js:export seems to be working fine.
Any explanation about this?

I am using 2.1.2 i18n-js gem. Can it be used with rails 4?
Thank you,

Please use 3.0.0.rc10
It stays as RC due to historical reasons.
We are working for an official release.
But it's safe to use in production.
Just remember to check CHANGELOG for every update

ok. Thank you.


Optimisation suggestions

I am using cellSNP is a prior step to vireo and it works very well. But it is incredibly slow and I think there's a lot of room for speeding it up. I don't program in Python and don't have much experience profiling Python code, but I think a lot of time is wasted in
https://github.com/huangyh09/cellSNP/blob/master/cellSNP/utils/pileup_utils.py#L44-L68
There's overhead to opening a bam file, and overhead to accessing references. This is done once per SNP, so the overhead is dramatic for say the 1kGenome SNPs. A quick fix can be to change
if chrom != None:
    if chrom not in samFile.references:
        if chrom.startswith("chr"):
            chrom = chrom.split("chr")[1]
        else:
            chrom = "chr" + chrom
    if chrom not in samFile.references:
        print("Can't find references %s in samFile" %chrom)
        return None, None

to
if chrom != None:
    sam_refs = samFile.references
    if chrom not in sam_refs:
        if chrom.startswith("chr"):
            chrom = chrom.split("chr")[1]
        else:
            chrom = "chr" + chrom
    if chrom not in sam_refs:
        print("Can't find references %s in samFile" %chrom)
        return None, None

Which in a small test case I have with 5000 cells, 20000 reads and with 100,000 SNPs resulted in a 45% speedup. Another more dramatic speedup is to avoid re-opening the BAM files over and over, I played around with creating a global that stores the currently open filename, chromosome and file object. Then returning the global if the request is identical
def check_pysam_chrom(samFile, chrom=None):
    """Chech if samFile is a file name or pysam object, and if chrom format.
    """
    global CHROM_CACHE
    global CHROM_CACHE_ID
    global CHROM_CHACH_SAMFILE

    CHROM_CACHE_SAMFILE = samFile

    if CHROM_CACHE is not None:
        if (samFile == CHROM_CACHE_SAMFILE) and (chrom == CHROM_CACHE_ID):
            return CHROM_CACHE, CHROM_CACHE_ID

    if type(samFile) == str:
        ftype = samFile.split(".")[-1]
        if ftype != "bam" and ftype != "sam" and ftype != "cram" :
            print("Error: file type need suffix of bam, sam or cram.")
            sys.exit(1)
        if ftype == "cram":
            samFile = pysam.AlignmentFile(samFile, "rc")
        elif ftype == "bam":
            samFile = pysam.AlignmentFile(samFile, "rb")
        else:
            samFile = pysam.AlignmentFile(samFile, "r")

    if chrom != None:
        if chrom not in samFile.references:
            if chrom.startswith("chr"):
                chrom = chrom.split("chr")[1]
            else:
                chrom = "chr" + chrom
        if chrom not in samFile.references:
            print("Can't find references %s in samFile" %chrom)
            return None, None

    CHROM_CACHE = samFile
    CHROM_CACHE_ID = chrom
    return samFile, chrom

This results in a 3.5x speedup under a single thread, but I don't know how the global is handled under multiple threads so I cannot recommend this solution.
The last thing I tried, was to remove the top level thread pools and push the threading down to the lower level by using
samFile = pysam.AlignmentFile(samFile, "rb", threads = nproc)

however this resulted in negative performance impacts, for me it was slower on all thread counts higher than 1.

Hi Shians,
The suggestion on check_pysam_chrom looks very cool! I will have a test and take it. Multiple thresholds at the top level seems just fine at the moment, as lower level may slow down due to too many close and open for thresholds (my intuition), but thanks for testing it and letting me know.
Cheers
Yuanhua


Expose other copy-github-labels options

E.g. like github enterprise URL, timeout, protocol, pathPrefix, etc. https://github.com/jvandemo/copy-github-labels#options

Hey, if you could re-make this issue on my fork that would be nice. This project's dead, and having these issues on my fork will make things easier on me :)

Hey, if you could re-make this issue on my fork that would be nice. This project's dead, and having these issues on my fork will make things easier on me :)


Mac OS Support

Hi,
Added Mac OS support content.
Cheers,
Amir

Hi Amit at TerraUnity: Based on your PR, Kevin cooked it down to not contain binaries but only build files. This is leaner, and still should make it easier for users to build Lerc on a Mac. Thank you for providing this!
Closing.


Adding Outputs from the static folder causes a problem.

When adding an output content from the static folder it relabels it incorrectly as "statics"

Indeed, the config.xml states "statics" as well

And the drop down menu in the GUI also


Update Image Format.classnames to be Format.classname

Format.classname is the last of the classnames naming migrations, this will help Wagtail be more predictable for developers and builds on the work already done over the last year.
This usage is not fully 'public'/'documented', but I have included some upgrade considerations and a deprecation path nonetheless.

Aligns with the naming convention set from Wagtail 4.2 - see https://docs.wagtail.org/en/stable/contributing/general_guidelines.html#use-classname-in-python-html-template-tag-variables
Add deprecation warnings if classnames is accessed & unit tests for this
Update other unit tests to use the naming
See related PRs #10907 & #9769 & #9770

[X] Do the tests still pass?
[X] Does the code comply with the style guide?
[X] For Python changes: Have you added tests to cover the new/fixed behaviour?
[X] For new features: Has the documentation been updated accordingly?

If it's ok, seeing as this is the last (I think) dev facing usage of classnames, I have added to 5.2 miilestone.


[CARBONDATA-4211] Fix - from xx Insert into select fails if an SQL statement contains multiple inserts

Why is this PR needed?
When multiple inserts with single query is used, it fails from SparkPlan with: java.lang.ClassCastException: GenericInternalRow cannot be cast to UnsafeRow.
For every successful insert/load we return Segment ID as a row. For multiple inserts also, we are returning a row containing Segment ID but while processing in spark ClassCastException is thrown.
What changes were proposed in this PR?
When multiple insert query is given, it has Union node in the plan. Based on its presence, made changes to use flag isMultipleInserts to identify and return empty row.
Does this PR introduce any user interface change?

No

Is any new testcase added?

Yes

Build Failed  with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbonPRBuilder2.3/5546/

Build Success with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_2.4.5/3803/

retest this please

Build Success with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbonPRBuilder2.3/5552/

Build Success with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_2.4.5/3809/

Since our command classes extends spark command classes, ExecutedCommandExec will be the physical operator that executes the run method of a RunnableCommand. So we in this case we return row object, and this will be converted to GenericInternalRow in sideEffectResult of ExecutedCommandExec, but during Union operatio execution it expects to convert to Unsafe row and it fails with cast exception.
So as suggested by spark, we can override sideEffectResult and handle this case with the output of our command classes, like insert into command in this case, so that we can send proper results from physical node.

Build Success with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbonPRBuilder2.3/5569/

Build Success with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_2.4.5/3826/

Build Success with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_2.4.5/3831/

Build Success with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbonPRBuilder2.3/5574/

Build Failed  with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_2.4.5/3832/

Build Success with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbonPRBuilder2.3/5575/

retest this please

Build Success with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_2.4.5/3838/

Build Success with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbonPRBuilder2.3/5581/

LGTM


Fix broken push retries

Previously, we added a retry to a failed push where we would pull
the latest changes and then push again. However, this didn't work
as the wrong exception was being caught.

Hi @SeanTAllen,
The changelog - fixed label was added to this pull request; all PRs with a changelog label need to have release notes included as part of the PR. If you haven't added release notes already, please do.
Release notes are added by creating a uniquely named file in the .release-notes directory. We suggest you call the file 24.md to match the number of this pull request.
The basic format of the release notes (using markdown) should be:
## Title

End user description of changes, why it's important,
problems it solves etc.

If a breaking change, make sure to include 1 or more
examples what code would look like prior to this change
and how to update it to work after this change.

Thanks.


Add support for CAS auth strategy

Opening a draft PR for CAS authentication to support the teaching team at UU in the interim. This implementation is currently 'hardcoded' to fit the requirements of the UU team.
Im planning to do a proper follow up sometime in Dec '22 before merging this. Or whoever is interested in taking this up, please feel free to let me know too 🙂:

[ ] generalize this implementation to support multiple CAS providers (similar to the current implementation for OIDC)
[ ] add test cases

Coverage decreased (-0.5%) to 95.508% when pulling 9eef5f25c586d3dd7bc414f0522fb4f1814d474e on cas into 03f657cb40994660844dd0971895fd0d0cdfb709 on master.


python3Packages.aiorecollect: 1.0.3 -> 1.0.4

Motivation for this change
Update to latest upstream release 1.0.4
Change log: https://github.com/bachya/aiorecollect/releases/tag/1.0.4
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
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)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 121126 at 97577960 run on x86_64-linux 1

2 packages built successfully:

python38Packages.aiorecollect
python39Packages.aiorecollect

1 suggestion:

warning: unused-argument
Unused argument: async-timeout.
Near pkgs/development/python-modules/aiorecollect/default.nix:4:3:
  |
4 | , async-timeout
  |   ^


Target process is terminated when attempting to set breakpoints/step into optimized code

Opening issue on behalf of @NC-RVSO. Original text:
Hello there!
I have been using the ability to attach the debugger in a running Docker container, and I have worked like a charm.
However, now after we have updated to .Net 8 the debugger just dies when I try to attach, is this a common known bug? It's kind of a showstopper :)
I can't really give any error codes  from Visual Studio, I just says "The debug adapter exited unexpectedly."
In Visual Studio code it just seems like it attaches, and then it drops.
Are there soon a new version coming? Or am I the only one with this problem?

@NC-RVSO This doesn't sound like a known issue.
Are you seeing this with a 'hello world' project?
Can you tell us more about your Docker image? (ex: are you using one of the .NET base images? Which one? If not, what is your base?)
I suspect the debugger is crashing, so I am not sure if this will be useful, but you can enable logging in VS Code with these instructions: https://github.com/dotnet/vscode-csharp/wiki/Enabling-C%23-debugger-logging
If you would prefer Visual Studio, here are the instructions there: https://github.com/microsoft/VSDebugAdapterHost/wiki/Logging

Thanks for moving my issue to the correct place :)
I have not tested on a clean project, I will try that, this is the output from VS:
1> DebugAdapterHost version: 17.6.10907.1 commit:6fef36f95dd1139788bfdde4ba25a71b4ccdc1aa
1> Determining user folder on remote system...
1> Checking for existing installation of debugging tools...
1> Downloading debugger launcher...
1> Creating debugger installation folder: //.vs-debugger
1> Creating directory '//.vs-debugger'
1> Copying debugger launcher to //.vs-debugger/GetVsDbg.sh
1> Copying file: 'C:\Users\rvso\AppData\Local\Temp\tmp787F.tmp' -> '//.vs-debugger/GetVsDbg.sh'
1> Failed: Failed to copy files.
1> Executing command '[ -f "//.vs-debugger/GetVsDbg.sh" ]' with arguments ''
1>   Command exited with code '0'
1> Launching remote debugger...
1> Starting '/bin/sh' with arguments '"//.vs-debugger/GetVsDbg.sh" -v vs2022 -u -l "//.vs-debugger/vs2022" -d vscode -a "/remote_debugger"'
1> [DebugAdapter] --> C (initialize-1): {"type":"request","command":"initialize","arguments":{"pathFormat":"path","clientID":"visualstudio","clientName":"Visual Studio","adapterID":"coreclr","locale":"en-US","linesStartAt1":true,"columnsStartAt1":true,"supportsVariableType":true,"supportsRunInTerminalRequest":true,"supportsMemoryReferences":true,"supportsProgressReporting":true,"SupportsMessageBox":true,"supportsHandshakeRequest":true,"supportsVsAdditionalBreakpointBinds":true,"supportsHitCountsChange":true,"supportsVsCustomMessages":true,"supportsVariableEnumerators":true},"seq":1}
1> WARNING: Request 'initialize-1' has not received a response within 1000 ms!
1> Debug adapter non-protocol standard output: Info: Last installed version of vsdbg is '17.8.11212.2'
Info: VsDbg is up-to-date
Info: Using vsdbg version '17.8.11212.2'
Using arguments
Version                    : 'vs2022'
Location                   : '//.vs-debugger/vs2022'
SkipDownloads              : 'true'
LaunchVsDbgAfter           : 'true'
VsDbgMode              : 'vscode'
RemoveExistingOnUpgrade    : 'true'
Info: Skipping downloads
Info: Launching vsdbg
1> [DebugAdapter] <--   R (initialize-1) [1126 ms]: {"type":"response","request_seq":1,"success":true,"command":"initialize","body":{"supportsConfigurationDoneRequest":true,"supportsFunctionBreakpoints":true,"supportsConditionalBreakpoints":true,"supportsHitConditionalBreakpoints":true,"supportsEvaluateForHovers":true,"exceptionBreakpointFilters":[{"filter":"all","label":"All Exceptions","description":"Break when an exception is thrown. ","default":false,"supportsCondition":true},{"filter":"user-unhandled","label":"User-Unhandled Exceptions","description":"Break when an exception is caught in non-user code (system code) after having passed through user code. ","default":true,"supportsCondition":true}],"supportsSetVariable":true,"supportsGotoTargetsRequest":true,"supportsModulesRequest":true,"additionalModuleColumns":[{"attributeName":"vsLoadAddress","label":"Load Address","type":"string"},{"attributeName":"vsPreferredLoadAddress","label":"Preferred Load Address","type":"string"},{"attributeName":"vsModuleSize","label":"Module Size","type":"number"},{"attributeName":"vsLoadOrder","label":"Order","type":"number"},{"attributeName":"vsTimestampUTC","label":"Timestamp","type":"unixTimestampUTC"},{"attributeName":"vsIs64Bit","label":"64-bit","type":"boolean"},{"attributeName":"vsAppDomain","label":"AppDomain","type":"string"},{"attributeName":"vsAppDomainId","label":"AppDomainId","type":"number"}],"supportedChecksumAlgorithms":["MD5","SHA1","SHA256"],"supportsExceptionOptions":true,"supportsValueFormattingOptions":true,"supportsExceptionInfoRequest":true,"supportTerminateDebuggee":true,"supportsLogPoints":false,"supportsSetExpression":true,"supportsReadMemoryRequest":true,"supportsCancelRequest":true,"supportsClipboardContext":true,"supportsExceptionFilterOptions":true,"supportsAttachCompleteEvent":true,"supportsExceptionConditions":true,"supportsLoadSymbolsRequest":true,"supportsModuleSymbolSearchLog":true,"supportsDebuggerProperties":true,"supportsSetSymbolOptions":true,"supportsAuthenticatedSymbolServers":true,"supportsHitBreakpointIds":true,"supportsVsIndividualBreakpointOperations":true,"supportsVsBreakpointLanguage":true,"supportsSetHitCount":true,"supportsVsCustomMessages":true,"supportsEvaluationOptions":true,"supportsExceptionStackTrace":true,"memoryReferencesAreAddresses":true,"supportsObjectFavorites":true,"supportsObjectId":true,"supportsVariableEnumerators":true},"seq":1}
1> [DebugAdapter] --> C (attach-2): {"type":"request","command":"attach","arguments":{"name":".NET Core Attach","type":"coreclr","request":"attach","processId":"1"},"seq":2}
1> [DebugAdapter] <--   C (handshake-2): {"type":"request","command":"handshake","arguments":{"value":"OknnmzX3b7eRQiYegw9wNe53cHeYKBC2BhokLaA0gPU="},"seq":2}
1> [DebugAdapter] --> R (handshake-2): {"type":"response","request_seq":2,"success":true,"command":"handshake","body":{"signature":"362EbdO4MKa5pyffa22d35rjJc1lsFEkzzLcVpYZxMHWQ8="},"seq":3}
1> [DebugAdapter] <--   E (output): {"type":"event","event":"output","body":{"category":"console","output":"-------------------------------------------------------------------\nYou may only use the Microsoft .NET Core Debugger (vsdbg) with\nVisual Studio Code, Visual Studio or Visual Studio for Mac software\nto help you develop and test your applications.\n-------------------------------------------------------------------\n","severity":"ok"},"seq":3}
1> [DebugAdapter] <--   R (attach-2) [50 ms]: {"type":"response","request_seq":2,"success":true,"command":"attach","seq":4}
1> [DebugAdapter] <--   E (initialized): {"type":"event","event":"initialized","body":{},"seq":5}
1> [DebugAdapter] --> C (setDebuggerProperty-4): {"type":"request","command":"setDebuggerProperty","arguments":{"AllowOutOfProcessSymbols":1},"seq":4}
1> [DebugAdapter] --> C (setDebuggerProperty-5): {"type":"request","command":"setDebuggerProperty","arguments":{"DisableJITOptimization":0},"seq":5}
1> [DebugAdapter] --> C (setDebuggerProperty-6): {"type":"request","command":"setDebuggerProperty","arguments":{"EnableAutomaticDecompilation":1},"seq":6}
1> [DebugAdapter] --> C (setDebuggerProperty-7): {"type":"request","command":"setDebuggerProperty","arguments":{"EnableFastEvaluate":1},"seq":7}
1> [DebugAdapter] --> C (setDebuggerProperty-8): {"type":"request","command":"setDebuggerProperty","arguments":{"InterpreterOptions":1},"seq":8}
1> [DebugAdapter] --> C (setDebuggerProperty-9): {"type":"request","command":"setDebuggerProperty","arguments":{"JustMyCodeStepping":0},"seq":9}
1> [DebugAdapter] --> C (setDebuggerProperty-10): {"type":"request","command":"setDebuggerProperty","arguments":{"Native.LoadExports":0},"seq":10}
1> [DebugAdapter] --> C (setDebuggerProperty-11): {"type":"request","command":"setDebuggerProperty","arguments":{"NatvisComplexityLimit":100},"seq":11}
1> [DebugAdapter] --> C (setDebuggerProperty-12): {"type":"request","command":"setDebuggerProperty","arguments":{"NatvisRecursionLimit":100},"seq":12}
1> [DebugAdapter] --> C (setDebuggerProperty-13): {"type":"request","command":"setDebuggerProperty","arguments":{"StopOnExceptionCrossingManagedBoundary":0},"seq":13}
1> [DebugAdapter] --> C (setDebuggerProperty-14): {"type":"request","command":"setDebuggerProperty","arguments":{"WarnIfNoUserCodeOnLaunch":0},"seq":14}
1> [DebugAdapter] --> C (setDebuggerProperty-15): {"type":"request","command":"setDebuggerProperty","arguments":{"EnableStepFiltering":true},"seq":15}
1> [DebugAdapter] --> C (setSymbolOptions-16): {"type":"request","command":"setSymbolOptions","arguments":{"symbolOptions":{"moduleFilter":{"mode":"loadAllButExcluded","excludedModules":[""]}}},"seq":16}
1> [DebugAdapter] <--   R (setDebuggerProperty-4) [15 ms]: {"type":"response","request_seq":4,"success":true,"command":"setDebuggerProperty","body":{},"seq":6}
1> [DebugAdapter] <--   R (setDebuggerProperty-5) [14 ms]: {"type":"response","request_seq":5,"success":true,"command":"setDebuggerProperty","body":{},"seq":7}
1> [DebugAdapter] <--   R (setDebuggerProperty-6) [13 ms]: {"type":"response","request_seq":6,"success":true,"command":"setDebuggerProperty","body":{},"seq":8}
1> [DebugAdapter] <--   R (setDebuggerProperty-7) [13 ms]: {"type":"response","request_seq":7,"success":true,"command":"setDebuggerProperty","body":{},"seq":9}
1> [DebugAdapter] <--   R (setDebuggerProperty-8) [13 ms]: {"type":"response","request_seq":8,"success":true,"command":"setDebuggerProperty","body":{},"seq":10}
1> [DebugAdapter] --> C (setFunctionBreakpoints-17): {"type":"request","command":"setFunctionBreakpoints","arguments":{"breakpoints":[]},"seq":17}
1> [DebugAdapter] --> C (setBreakpoints-18): {"type":"request","command":"setBreakpoints","arguments":{"source":{"path":"c:\Users\rvso\source\repos\star-modernisering\apigateway\Source\Star.ApiGateway.Yarp\Authentication\StarCertificateAuthenticationEvents.cs","sources":[],"checksums":[{"algorithm":"MD5","checksum":"bfa90f0236f19b8680a60bd7f8c36566"},{"algorithm":"MD5","checksum":"599c20d977114d9d51993e1aa0645def"},{"algorithm":"SHA1","checksum":"67bfd417f336796c517c8c9900992dc0ca543478"},{"algorithm":"SHA1","checksum":"c638479403dcc8be7c2060a3f5925e57119b49bc"},{"algorithm":"SHA256","checksum":"2ba1635d4d1a85b1fc137454388239bdc2222a2850b764f100daaf0d10dfa0cd"},{"algorithm":"SHA256","checksum":"3b99ddab5afdf9ba22aae636a21bb714867cd836ec16dc2a8fbb1f40d2a68eca"}]},"breakpoints":[{"line":21,"column":9,"vsLanguageId":"{3f5162f8-07c6-11d3-9053-00c04fa302a1}"}],"lines":[21]},"seq":18}
1> [DebugAdapter] <--   R (setDebuggerProperty-9) [53 ms]: {"type":"response","request_seq":9,"success":true,"command":"setDebuggerProperty","body":{},"seq":11}
1> [DebugAdapter] <--   R (setDebuggerProperty-10) [53 ms]: {"type":"response","request_seq":10,"success":true,"command":"setDebuggerProperty","body":{},"seq":12}
1> [DebugAdapter] <--   R (setDebuggerProperty-11) [53 ms]: {"type":"response","request_seq":11,"success":true,"command":"setDebuggerProperty","body":{},"seq":13}
1> [DebugAdapter] <--   R (setDebuggerProperty-12) [53 ms]: {"type":"response","request_seq":12,"success":true,"command":"setDebuggerProperty","body":{},"seq":14}
1> [DebugAdapter] <--   R (setDebuggerProperty-13) [53 ms]: {"type":"response","request_seq":13,"success":true,"command":"setDebuggerProperty","body":{},"seq":15}
1> [DebugAdapter] <--   R (setDebuggerProperty-14) [53 ms]: {"type":"response","request_seq":14,"success":true,"command":"setDebuggerProperty","body":{},"seq":16}
1> [DebugAdapter] <--   R (setDebuggerProperty-15) [54 ms]: {"type":"response","request_seq":15,"success":true,"command":"setDebuggerProperty","body":{},"seq":17}
1> [DebugAdapter] <--   R (setSymbolOptions-16) [59 ms]: {"type":"response","request_seq":16,"success":true,"command":"setSymbolOptions","seq":18}
1> [DebugAdapter] <--   R (setFunctionBreakpoints-17) [46 ms]: {"type":"response","request_seq":17,"success":true,"command":"setFunctionBreakpoints","body":{"breakpoints":[]},"seq":19}
1> [DebugAdapter] <--   R (setBreakpoints-18) [44 ms]: {"type":"response","request_seq":18,"success":true,"command":"setBreakpoints","body":{"breakpoints":[{"id":1,"verified":false,"message":"The breakpoint is pending and will be resolved when debugging starts."}]},"seq":20}
1> [DebugAdapter] --> C (setExceptionBreakpoints-19): {"type":"request","command":"setExceptionBreakpoints","arguments":{"filters":[],"exceptionOptions":[{"breakMode":"userUnhandled","path":[{"names":["CLR"]}]},{"breakMode":"unhandled","path":[{"names":["CLR"]},{"names":["System.AppDomainUnloadedException","System.Threading.ThreadAbortException"]}]},{"breakMode":"always","path":[{"names":["CLR"]},{"names":["System.Windows.Markup.XamlParseException","System.Reflection.MissingMetadataException","System.Reflection.MissingRuntimeArtifactException","System.NullReferenceException","Microsoft.UI.Xaml.Markup.XamlParseException"]}]},{"breakMode":"unhandled","path":[{"names":["MDA"]}]},{"breakMode":"always","path":[{"names":["MDA"]},{"names":["CallbackOnCollectedDelegate","ContextSwitchDeadlock","DateTimeInvalidLocalFormat","DisconnectedContext","FatalExecutionEngineError","InvalidFunctionPointerInDelegate","InvalidMemberDeclaration","InvalidVariant","LoaderLock","NonComVisibleBaseClass","PInvokeStackImbalance","RaceOnRCWCleanup","Reentrancy"]}]}]},"seq":19}
1> [DebugAdapter] <--   R (setExceptionBreakpoints-19) [13 ms]: {"type":"response","request_seq":19,"success":true,"command":"setExceptionBreakpoints","seq":21}
1> [DebugAdapter] --> C (configurationDone-20): {"type":"request","command":"configurationDone","arguments":{},"seq":20}
1> [DebugAdapter] <--   E (output): {"type":"event","event":"output","body":{"category":"telemetry","output":"VS/Diagnostics/Debugger/vsdbg/ProcessCreate","data":{"VS.Diagnostics.Debugger.vsdbg.Distribution.Version":"3.18.5","VS.Diagnostics.Debugger.vsdbg.TargetArchitecture":"AMD64","VS.Diagnostics.Debugger.vsdbg.Distribution.Name":"75f5c57e","VS.Diagnostics.Debugger.vsdbg.OSFamily":"Linux","VS.Diagnostics.Debugger.vsdbg.Version":"17.8.11212.2 commit:8245b0ea19bf9efd5e14a30aa11f59ead3ba97b1"}},"seq":22}
1> [DebugAdapter] <--   E (telemetryDetails): {"type":"event","event":"telemetryDetails","body":{"telemetryEventName":"vs/diagnostics/debugger/process/context","telemetryProperties":{"VS.Diagnostics.Debugger.AD7Process.Architecture":"AMD64"}},"seq":23}
1> [DebugAdapter] <--   E (process): {"type":"event","event":"process","body":{"name":"/usr/share/dotnet/dotnet","systemProcessId":1,"startMethod":"attach","pointerSize":64},"seq":24}
1> [DebugAdapter] <--   E (output): {"type":"event","event":"output","body":{"category":"telemetry","output":"VS/Diagnostics/Debugger/vsdbg/Attach","data":{"VS.Diagnostics.Debugger.vsdbg.Attach.Duration":390,"VS.Diagnostics.Debugger.vsdbg.SourceFileMappings":0,"VS.Diagnostics.Debugger.vsdbg.VisualizerFileUsed":false,"VS.Diagnostics.Debugger.vsdbg.TargetType":"Live","VS.Diagnostics.Debugger.vsdbg.AdapterId":"coreclr","VS.Diagnostics.Debugger.vsdbg.Distribution.Version":"3.18.5","VS.Diagnostics.Debugger.vsdbg.Distribution.Name":"75f5c57e","VS.Diagnostics.Debugger.vsdbg.OSFamily":"Linux","VS.Diagnostics.Debugger.vsdbg.Version":"17.8.11212.2 commit:8245b0ea19bf9efd5e14a30aa11f59ead3ba97b1"}},"seq":25}
1> [DebugAdapter] <--   R (configurationDone-20) [283 ms]: {"type":"response","request_seq":20,"success":true,"command":"configurationDone","seq":26}
1> [DebugAdapter] <--   E (breakpoint): {"type":"event","event":"breakpoint","body":{"reason":"changed","breakpoint":{"id":1,"verified":false,"message":"No symbols have been loaded for this document."}},"seq":27}
1> [DebugAdapter] <--   E (module): {"type":"event","event":"module","body":{"reason":"new","module":{"id":1000,"name":"System.Private.CoreLib.dll","path":"/usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.1/System.Private.CoreLib.dll","isOptimized":true,"isUserCode":false,"version":"<IP_ADDRESS>001","symbolStatus":"Cannot find or open the PDB file.","vsLoadAddress":"140705232781312","vsPreferredLoadAddress":"140705232781312","vsModuleSize":13094912,"vsLoadOrder":0,"vsIs64Bit":true,"vsAppDomain":"clrhost","vsAppDomainId":1},"vsMessage":"Loaded '/usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.1/System.Private.CoreLib.dll'. Cannot find or open the PDB file."},"seq":28}
1> [DebugAdapter] <--   E (module): {"type":"event","event":"module","body":{"reason":"new","module":{"id":1001,"name":"Star.ApiGateway.Yarp.dll","path":"/app/Star.ApiGateway.Yarp.dll","isOptimized":true,"isUserCode":false,"version":"<IP_ADDRESS>","symbolStatus":"Symbols loaded.","symbolFilePath":"/app/Star.ApiGateway.Yarp.pdb","vsLoadAddress":"140707371057152","vsPreferredLoadAddress":"140707371057152","vsModuleSize":59392,"vsLoadOrder":1,"vsIs64Bit":true,"vsAppDomain":"clrhost","vsAppDomainId":1},"vsMessage":"Loaded '/app/Star.ApiGateway.Yarp.dll'. Symbols loaded."},"seq":29}
1> Debug adapter process exited.
1> Debug adapter non-protocol standard output: Unknown debugger event type: 0x258
1> ERROR: The debug adapter exited unexpectedly.
1> WARNING: Cannot send message when the protocol dispatcher is not running.

Thanks! I believe I see what is going wrong.
I will see if I can get you a better work around, but for an immediate one, I believe this is caused by a new feature in .NET 8 + recent versions of the .NET debugger where the debugger can deoptimize methods on the fly. I think you could work around by either avoiding debugging optimized code. You could do that with either:

Re-enable JustMyCode and make sure you are using debug builds of whatever you want to debug
-or-
Ensure that everything is deoptimized up front by --

Leave Just My Code disabled as you have it
Enable the option to Suppress JIT optimizations on module load
Configuring the environment of the target process to launch with then environment variable "COMPlus_ReadyToRun": "0" set

More complete instructions for 'option 2' in VS Code can be found in the wiki.

The underlying cause: https://github.com/dotnet/runtime/issues/97461

Could not make option 2 work, but 1. worked like a charm, and as all the code is my code I did not need to Re-enable JustMyCode (but I see why you told me to as it would remove potential crashes).
Keep me posted when a real fix is implemented :)

This issue is now fixed. In full Visual Studio (and any other remote debugging scenario using https://aka.ms/getvsdbgsh or https://aka.ms/getvsdbgps1) this is fixes as soon as the debugger is next automatically updated. In VS Code C# extension scenarios, this will be fixed with the next release of the C# extension, which I believe is 2.18.0.

Amazing! Thank you so much 🥇


Load blob tracking data for animal position when missing SLEAP data

For parts of some experiments, e.g. the presocial periods, SLEAP data is not available.
Thus, currently, animal position data is not available for those presocial periods.
However, the animal position blob tracking data is always available, just not ingested. It's worth to note that the blob tracking data cannot reliably identify the different animals when more than one animal present (thus we should use SLEAP data).
But for single-animal time periods, this is a reasonable alternative.
The task here is to ingest blob tracking data whenever SLEAP data is not available, only for the periods of single-animal only
Tag @jkbhagatio and @OrsiFolsz here as well

We could also consider running full pose inference on pre and post social periods. This would be useful to Joaquin (he is currently just using some data in my personal ceph folders) and in general is would probably be good to have in order to be able to better compare individual and social sessions in analyses?

Thanks @anayapouget , yes, that would certainly solve this issue.
The question is whether we want to make this part of a formal process and to this in an automated manner.

automatically triggers full pose analysis (send jobs to the clusters) on a per chunk (or per epoch?)
once the jobs are finished, copy the results to the .../processed folder

If it's a one off fix, we can certainly use your help to do this once. But if we want to include this step formally in the larger data processing/analysis flow, we should have another discussion to engineer this.

We've decided to go with the approach of adding a check to use centroid blob data for position ingestion if no sleap data, else will use sleap data (this includes data that would be in the processed dir if full pose inference is run on single animals)


Migrate COBS encoder + decoder from project-81 firmware repo

Source: https://github.com/project-81/firmware/tree/master/src/common/cobs

There are a few unit test suites as well: https://github.com/project-81/firmware/tree/master/src/apps/boards/native.


BufDelete doesn't detach the buffer from the LSP client

Neovim version (nvim -v)
v0.7.0-dev+nightly-1466-g08616571f
Language server name/version
any
Operating system/version
MacOS
Steps to reproduce using "nvim -u minimal_init.lua"
Open a buffer
Delete the buffer
:LspInfo
-> Buffer is still attached to the client
Expected behavior
After deleting the buffer, the buffer should also be detached from the client
This seems to do the trick but I expect this to be in neovim core:
function DetachBufferFromClients(bufnr)
  local clients = vim.lsp.buf_get_clients(bufnr)
  for client_id, _ in pairs(clients) do
    vim.lsp.buf_detach_client(bufnr, client_id)
  end
end
autocmd BufDelete <buffer> lua DetachBufferFromClients(tonumber(vim.fn.expand("<abuf>")))

Actual behavior
It doesn't detach the buffer from the client on BufDelete
Log file
No response

@entropitor  does this problem still exists?

@glepnir yes, this issue still exists for me

I can reproduce with an error throw out.

closed. open in https://github.com/neovim/neovim/issues/20025

For me, the work-around works just fine (not erroring). The problem I was raising was that I'd expect it to be part of this repo / neovim-core. Not something every user would have to do themselves...

@entropitor  right . it not remove the buffer from on_detach callback.

on my test both not work
set rtp+=~/Workspace/nvim-lspconfig/

lua << EOF
local lspconfig = require('lspconfig')
lspconfig.sumneko_lua.setup{}

function DetachBufferFromClients(bufnr)
  local clients = vim.lsp.buf_get_clients(bufnr)
  for client_id, _ in pairs(clients) do
    vim.lsp.buf_detach_client(bufnr, client_id)
  end
end
EOF

autocmd LspAttach * autocmd BufDelete <buffer> lua DetachBufferFromClients(tonumber(vim.fn.expand("<abuf>")))

vim.opt.runtimepath:append('~/Workspace/nvim-lspconfig/')

local lspconfig = require('lspconfig')
lspconfig.sumneko_lua.setup{}
lspconfig.tsserver.setup{}

vim.api.nvim_create_autocmd('LspAttach',{
  callback = function()
    vim.api.nvim_create_autocmd('BufDelete',{
      buffer = vim.api.nvim_get_current_buf(),
      callback = function(opts)
        local bufnr = opts.buf
        local clients = vim.lsp.buf_get_clients(bufnr)
        for client_id, _ in pairs(clients) do
          vim.lsp.buf_detach_client(bufnr, client_id)
        end
      end
    })
  end

})

I have the following snippet in my local config and that seems to remove the buffer just fine (according to :LspInfo)
local lspconfig = require('lspconfig')

local function buffer_augroup(group, bufnr, cmds)
  vim.api.nvim_create_augroup(group, { clear = false })
  vim.api.nvim_clear_autocmds({ group = group, buffer = bufnr })
  for _, cmd in ipairs(cmds) do
    local event = cmd.event
    cmd.event = nil
    vim.api.nvim_create_autocmd(event, vim.tbl_extend("keep", { group = group, buffer = bufnr }, cmd))
  end
end

local function on_attach(client, bufnr)
  local detach = function()
    vim.lsp.buf_detach_client(bufnr, client.id)
  end
  buffer_augroup("entropitor:lsp:closing", bufnr, {
    { event = "BufDelete", callback = detach },
  })
end

lspconfig.sumneko_lua.setup{on_attach=on_attach}

print current buffer lsp client check the attach buffer after :bd . does buffer still exists?
:lua=print(vim.inspect(vim.lsp.get_active_clients()))

But the issue remains that we need some code, right? I created this original issue as I don't think everyone should be adding this but it should be part of the core LSP implementation

yup .I will add this support .

I got something working at https://github.com/neovim/nvim-lspconfig/issues/2626#issuecomment-2117022664 .


Just a small English grammar fix

you are sending instead of you sending
Just a small English grammar fix.

@aysabzevar : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@ShannonLeavitt : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Adds the crates.io ecosystem

Also updates the analyse docker file so that the go dependencies are cached before copying over the source file which changes regularly

Thanks Rex for implementing this - I'm super interested if it'll show anything up.

Maybe dropping the "io" and just calling it "Crates" would be cleaner?

Though we already don't do this, it would be good to keep the ecosystems more aligned with OSV (https://ossf.github.io/osv-schema/#affectedpackage-field), where this is "crates.io".

Maybe dropping the "io" and just calling it "Crates" would be cleaner?

Though we already don't do this, it would be good to keep the ecosystems more aligned with OSV (https://ossf.github.io/osv-schema/#affectedpackage-field), where this is "crates.io".

I changed the docker container and folder names to crates.io. Can't really change the go names to have a dot in it. Maybe dropping the io part in just the go variable/type names makes sense, while keeping everything else crates.io

See #33


⚠ Fortnite has degraded performance

In a804ea6, Fortnite (https://fortnite.com) experienced degraded performance:

HTTP code: 200
Response time: 1672 ms

Resolved: Fortnite performance has improved in d06d600.