fix: runtime union type parse and checking

1. Does this PR affect any open issues?(Y/N) and add issue references (e.g. "fix #123", "re #123".):

[x] N
[ ] Y

fix: runtime union type parse and checking

2. What is the scope of this PR (e.g. component or file name):

kclvm/runtime/src/value/val_type.rs

3. Provide a description of the PR(e.g. more details, effects, motivations or doc link):

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Other

4. Are there any breaking changes?(Y/N) and describe the breaking changes(e.g. more details, motivations or doc link):

[x] N
[ ] Y

5. Are there test cases for these changes?(Y/N) select and add more details, references or doc links:

[x] Unit test
[ ] Integration test
[ ] Benchmark (add benchmark stats below)
[ ] Manual test (add detailed scripts or steps below)
[ ] Other

kclvm/runtime/src/value/val_type.rs

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
2300

Relevant Lines:
2619

💛  - Coveralls


xp version binaries will not run on xp systems.

I got the binaries from releases 0.4.3 winpty-0.4.3-msvc2015.zip, and ran my tests on 3 different xp machines, all of which indicated that they were not valid Win32 programs.
Did I get something wrong?

use msys2 version instead of msvc version.


Compilation issues

Hi!
On Linux features.h inside the math repo confilcts with some system library with the same name (this may be an issue on its own).
I tried resolving it by renaming features.h and all the relative includes.
Then I get many errors such as:
higher_order_logic.h:1812:36: error: the value of ‘empty_string’ is not usable in a constant expression
higher_order_logic.h:1643:12: note: ‘empty_string’ was not declared ‘constexpr’
article.h:465:22: error: ‘struct core::memory_stream’ has no member named ‘shift’
executive.h:552:11: error: ‘template<unsigned int BufferSize, class Stream> int fgetc’ redeclared as different kind of symbol
/usr/include/stdio.h:533:12: note: previous declaration ‘int fgetc(FILE*)’
executive.h:839:7: error: ‘SSL_ERROR_WANT_CLIENT_HELLO_CB’ was not declared in this scope
I am trying to compile the code as follows:
$ make executive_test CPPFLAGS+='-I/usr/include/openssl -Icore -Imath -Ihdp -Igrammar'
I believe I may be setting the wrong flags since I do not have much experience with makefiles.
I installed OpenSSL via # apt install libssl-dev and put core, math, hdp and grammar inside the PWL directory via $ git clone <link>.
Do you have any idea what I may be doing wrong? Thank you.

Thanks for reporting this!
Oh I think part of the reason is that I had updated the dependency libraries but forgot to push a corresponding update to PWL. I'll do that now.
For specifying the dependency directories to make, you need to specify the directory that contains core, math, etc. So in your case, it would be -I./ rather than -Icore -Imath ... That may help with the header name conflict with features.h.
Otherwise, the rest of your compilation process looks correct.

Thank you for your response.
Still no luck on Ubuntu/Debian, however I tried it on Fedora after your update and specifying the dependencies as -I./ and it did compile!
Then I was hoping to try the code on the datasets, but in both cases it resulted in a segmentation fault. I understand this is likely a much tougher problem to deal with. I will report hereunder the command lines I issued and the last few output lines, in case I am missing something obvious.
$ ./executive_test fictionalgeoqa --data=fictionalgeoqa/fictionalgeoqa.jsonl --out=fg_predictions.txt
...
Set ID 5 has set size axioms [size(λx₁λx₂λx₃(x₃(x₁) ∧ ∀x₄((x₂(x₁)(x₄) → ∀x₅((x₃(x₅) → ∀x₆((x₂(x₅)(x₆) → (number(x₄) → ≥(x₆,x₄)) ∧ ∀x₇((arg1(x₄)=x₇ ∧ measure(x₄) → ∀x₈((arg1(x₆)=x₈ ∧ measure(x₆) ∧ ∃x₉(arg2(x₄)=x₉ ∧ arg2(x₆)=x₉) → ≥(x₈,x₇)))))))))))))=200]
  ∀x₁∀x₂∀x₃((∃x₄(least(x₂)(x₄) ∧ arg1(x₄)=x₃ ∧ arg2(x₄)=x₁) → x₃(x₁) ∧ ∀x₄((x₂(x₁)(x₄) → ∀x₅((x₃(x₅) → ∀x₆((x₂(x₅)(x₆) → (number(x₄) → ≥(x₆,x₄)) ∧ ∀x₇((measure(x₄) ∧ arg1(x₄)=x₇ → ∀x₈((measure(x₆) ∧ ∃x₉(arg2(x₄)=x₉ ∧ arg2(x₆)=x₉) ∧ arg1(x₆)=x₈ → ≥(x₈,x₇)))))))))))))
  Elements: {}
  Provable elements: {}
consistency checking time: 0ms, total reasoning time: 283ms
Segmentation fault (core dumped)
$ ./executive_test proofwriter --data=proofwriter/OWA/birds-electricity/meta-test.jsonl --out=pw_predictions.txt
...
total_read_sentence = 4, add_formula_failures = 0, total_add_formula = 4
Results so far:
  Total questions: 5252
  Answered questions: 0
  Incorrect questions: 0
Segmentation fault (core dumped)

This is the full error output on Debian 9 after your last push: debian_make_output.txt
On Ubuntu 22.04 I got pretty much the same errors but in a different order (I cannot reproduce it right now).
On Fedora 36 I got no errors but still a lot of warnings (which may explain the segmentation fault during the execution).

I just tested on Ubuntu 18.04 with gcc 7.5.0 and it seems to be compiling with two warnings (which is expected).

I made some changes to address the segfault. Could you try pulling the new version and see if it fixes the issue?

Fedora 36
gcc (GCC) 12.1.1 20220507 (Red Hat 12.1.1-1)

still many warnings during compilation
segfault fixed with proofwriter dataset
still segfault with fictionalgeoqa dataset

I am going to try again with Debian.
I am also going to try as you suggested with Ubuntu 18.04 + gcc 7.5.0.

Debian 9
gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
still not compiling
In file included from executive_test.cpp:1:0:
higher_order_logic.h: In function ‘bool print(const hol_term&, Stream&&, Printer&& ...)’:
higher_order_logic.h:1830:36: error: the value of ‘empty_string’ is not usable in a constant expression
   return print_array<Syntax, true, empty_string, empty_string, and_symbol<Syntax>::symbol>(term.array, out, std::forward<Printer>(printer)...);
                                    ^~~~~~~~~~~~
higher_order_logic.h:1651:12: note: ‘empty_string’ was not declared ‘constexpr’
 const char empty_string[] = "";
            ^~~~~~~~~~~~
higher_order_logic.h:1830:50: error: the value of ‘empty_string’ is not usable in a constant expression
   return print_array<Syntax, true, empty_string, empty_string, and_symbol<Syntax>::symbol>(term.array, out, std::forward<Printer>(printer)...);
                                                  ^~~~~~~~~~~~
higher_order_logic.h:1651:12: note: ‘empty_string’ was not declared ‘constexpr’
 const char empty_string[] = "";
            ^~~~~~~~~~~~
higher_order_logic.h:1833:36: error: the value of ‘empty_string’ is not usable in a constant expression
   return print_array<Syntax, true, empty_string, empty_string, or_symbol<Syntax>::symbol>(term.array, out, std::forward<Printer>(printer)...);
                                    ^~~~~~~~~~~~
higher_order_logic.h:1651:12: note: ‘empty_string’ was not declared ‘constexpr’
 const char empty_string[] = "";
            ^~~~~~~~~~~~
higher_order_logic.h:1833:50: error: the value of ‘empty_string’ is not usable in a constant expression
   return print_array<Syntax, true, empty_string, empty_string, or_symbol<Syntax>::symbol>(term.array, out, std::forward<Printer>(printer)...);
                                                  ^~~~~~~~~~~~
higher_order_logic.h:1651:12: note: ‘empty_string’ was not declared ‘constexpr’
 const char empty_string[] = "";

(plus many warnings)

My own machine uses gcc 11.3 so I think gcc 12 should be fine. I'll look into the segfault for FictionalGeoQA later today and the compiler error for gcc 6.3.

I just pushed another set of changes that hopefully addresses those compiler errors on gcc 6.3, and also the segfault in the FictionalGeoQA experiments.

Now it compiles also on gcc 6.3!
FictionalGeoQA still ends up in segmentation fault.
With ProofWriter it seems to work fine, however I can't understand if it is possible to run it on all the questions and not just 18.
Also, what should I do to run it on a custom ProofWriter-like dataset? Does the vocabulary need to be extended or something?
[6, 1]  T inf
[6, 2]  T inf
[6, 3]  F -inf
[6, 4]  F -inf
[6, 5]  ? inf *
[6, 6]  ? -inf *
[6, 7]  ? inf *
[6, 8]  ? -inf *
[6, 9]  ? 20.405058
[6, 10] ? -20.405058
[6, 11] ? 22.566427
[6, 12] ? -22.566427
[6, 13] ? -1.606642
[6, 14] ? 1.606642
[6, 15] ? -6.447008
[6, 16] ? 6.447008
[6, 17] ? -6.625433
[6, 18] ? 6.625433
Results so far:
  Total questions: 5270
  Answered questions: 18
  Incorrect questions: 4

Oh sorry I realized I had some debugging statements which was limiting the ProofWriter experiments. I also just pushed a change that hopefully fixes the segfault. Let me know if that works.
About running it on a custom ProofWriter-like dataset: If the new dataset contains new vocabulary (aside from proper nouns), then yes, you need to add some entries to seed_training_set.txt. This file contains labeled derivation trees, as well as labeled nouns, verbs, and adjectives. In your case, you most likely only need to add new nouns/verbs/adjectives.
So for example, to add a new noun "galaxy", you can add an entry like:
:
{(N "galaxy"/"galaxy")}
	{galaxy[index:sg]};

or
:
{(N "galaxy"/"galaxies")}
	{galaxy[index:pl]};

To add adjectives, the logical form should be existentially-quantified, such as:
:
{(ADJ "sweet"/"sweet")}
	{?[x]:has_sweet_taste(x)};

To add verbs, you also need to add tense information to the logical form, such as:
:
{(V "jump"/"jumps")}
	{?[z]:(jump(z) & present(z))[index:sg]};

or
:
{(V "jump"/"jumped")}
	{?[z]:(jump(z) & past(z))[index:sg]};

Ok! Now everything seems to be working fine. I think I do not have enough RAM at the moment to run a full test, but reducing the JSONL files it worked with both ProofWriter and FictionalGeoQA.
Later I will try experimenting with a custom dataset following your pointers. Thanks.

Thats good to hear its working now! If you have less RAM you can try running with fewer threads with the command-line option --threads=[NUM].


Making Output::set_output to parse json automatically...

Hey, first time posting here.
What about making the Output::set_output($param1) to parse its $param1 as json when the Output::set_content_type() matches json.
I'm telling this because now you have to do Output::set_output(json_encode($param1)) when you already setup the content type to "application/json".

It's not as easy as that ...
There's multiple possible flags that one may want passed to json_encode().
Plus, if we do JSON, we'd also have to do XML and any other popular format.
It's also a BC break. And last, but not least, this would probably probably (further) violate SRP.
Easy doesn't equal good. :)


How to send PUT request to templated url with Infolink http handler?

I need to send a PUT request to update a Pickup entity through Infolink to an API endpoint.
Does InfoLink support that use-case? That also goes for POST , PUT ,  and DELETE requests.
For example, I have a pickup entity with code for example XA123124144 and tenant with code XYZ and I need to send a put request to an end-point like https://something.com/api/pickups/XYZ/XA123124144. How can I do that through Infolink?

Hi @mahmoud-syr,
The adapter is the one that does the put request, Infolink simply invokes it, so its support is irrelevant.
Can you explain where are you facing the issue?

It's not an issue per se, it's more of missing support or maybe I miss understood the whole thing.
I need to send PUT request to this url:
https://something.com/api/pickups/XYZ/XA123124144
How do I do this with the infolink http handler?
I'm asking about this because the http-handler is configured with constant url, so I can't possibly append the entity ID or IDs.
I tried to edit the already existed http-handler in the adapters project but I kept receiving errors. Now, building an adapter from scratch would be a time-consuming for me because I need to go through all possible components (namely the projects: Serverless, Infolink, Adapters, CloudFiles, ... etc. ) since these projects aren't well-documented so I need to read the whole code in order to understand the interaction starting from a request to Infolink document end-point ending with the adapter receiving the request and then returning the response.
Thanks very much for your help.

@mahmoud-syr I will move this issue to infolinkadapters project


ImageActionLink like we have ImageButton in asp.net webforms

It would be good to add ImageActionLink helper method by default in the mvc framework, so that we don't have to write our own extension method in project and there can be more helpers that are generally needed but this one i think should be in it.

We recommend using tag helpers for this scenario:
` There's an image and text and HTML here!!!!!!!!


Added new coins

Added new coins for:

AirSwap (AST)
Bluezelle (BLZ)
FunFair (FUN)
Metal (MTL)
Mysterium (MYST)
Numerai (NMR)
RChain (RHOC)
0x (ZRX)

I've added alt versions where I can

Thanks for the contribution, so sorry it took so long!

Hi Martin
I need to do some more and I've forgotten how to create the new icons.
I've used InkScape as before as I haven''t got Illustrator and I'm getting a problem wen previewing just shows all white.
I edited a previous SVG, updated the logo and saved it as a new file but they all come out white in the html preview. Previewing the actual SVG is fine.
Any ideas what's going wrong?

Hi Martin
I can get the export the SVG and if I view the SVG in a browser it's fine but when I add to the stylesheet and check with the other icons, it's all white.
I've got a funny feeling I'm missing something when I create the SVG.

Hi Martin
Don't worry...i realise what I did and should be able to create some more token icons.
Many thanks
Adam


Fix area test

The offending line of code is commented out. It looks as though the value of the label is not set immediately when the page is rendered. The 'it' for the test can probably be removed as is does not provide much test coverage. We may remove tests similar to this in a general review soon. Thx!

@ldimaggi fabric8/fabric8-ui:SNAPSHOT-PR-2251-1 is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-2251-fabric8-planner.badger.fabric8.io

@ldimaggi fabric8/fabric8-ui:SNAPSHOT-PR-2251-2 is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-2251-fabric8-planner.badger.fabric8.io


[C++] Add MemoryPool API to resize without copying the data

Describe the enhancement requested
A common memory (re)allocation pattern is to persist a dynamically-sized scratch buffer (for example when decompressing or decoding data). Currently, the two options to achieve that are suboptimal:

either resize the buffer when needed, but if the buffer's base pointer changes, the existing data will be copied even though it is ephemeral
or allocate a new buffer when needing to increase the scratch size, but it is wasteful if the buffer could otherwise have been resized in place

Both jemalloc and mimalloc expose APIs that would allow us to implement a more optimal behavior of resizing without copying existing data: mi_expand for mimalloc, xallocx for jemalloc.
One possible API would be:
  // MemoryPool methods
  Status ReallocateNoCopy(int64_t old_size, int64_t new_size, int64_t alignment, uint8_t** ptr);
  Status ReallocateNoCopy(int64_t old_size, int64_t new_size, uint8_t** ptr);

  // ResizableBuffer methods
  Status ResizeNoCopy(const int64_t new_size, bool shrink_to_fit);
  Status ResizeNoCopy(const int64_t new_size);

Component(s)
C++

@mapleFU @felipecrv

Will glance at malloc(3)'s api.

allocate a new buffer when needing to increase the scratch size, but it is wasteful if the buffer could otherwise have been resized in place

Whats the difference between this and not call shrink_to_fit when goes to smaller?

These functions are very likely to fail.

The xallocx() function returns the real size of the resulting resized allocation pointed to by ptr, which is a value less than size if the allocation could not be adequately grown in place.

I don't understand why using these to implement MemoryPool::Reallocate is not enough.

These functions are very likely to fail.

Yes!

I don't understand why using these to implement MemoryPool::Reallocate is not enough.

Because I'm proposing another API :-)

Because I'm proposing another API :-)

Right, but let's say it's being used by a Builder, should the resize errors bubble up to the users of the builder?
Resize() on builders can fail (but very unlikely) and are implemented in terms of Reallocate. Would this new API affect how Builder::Resize() is implemented or your would add Builder::TryResizeInPlace()?

Again, no, what I'm proposing to expose is a ReallocateNoCopy primitive.


Replace for loops with array_filter in GetLink

The downside is that array_filter always goes through every element.

It is your project. I wouldn't dare to commit code!
This is only a PR.


[BUG]

System info

Playwright Version: 1.40.0
Operating System:  Windows 11
Browser: Chromium
Other info: nUnit Version 3.13.3

Source code
Test file (self-contained)
using System.Threading.Tasks;
using Microsoft.Playwright;

   var playwright = await Microsoft.Playwright.Playwright.CreateAsync();
IBrowser? browser;
  browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions
  {
      Headless = true
  });
  _Page = await browser.NewPageAsync();
await _Page.GotoAsync("Some URL");
var prefillPage = await page.Context.NewPageAsync();

Actual Result:
An error message Microsoft.Playwright.PlaywrightException : Please use Browser.NewContextAsync()
is returned.
Expected
User should be allowed to open a new tab. And Perform action.
Note:

The same code works fine when Headless = false.
Their is no object called Browser in Playwright which is mentioned in the error message.
I don't have Ibrowser instance available from where I execute var prefillPage = await page.Context.NewPageAsync(); .

Browser.NewPageAsync() is a wrapper function which creates a context and a page for you. When using this, its not possible to create a new a new page using the underlying context.
You can fix it by doing the following (create a context first and use it to create your page1 and page2):
 var context = await browser.NewContextAsync();
_Page = await context.NewPageAsync();
await _Page.GotoAsync("Some URL");
var prefillPage = await context.NewPageAsync();

Let us know if that works for you!

Browser.NewPageAsync() is a wrapper function which creates a context and a page for you. When using this, its not possible to create a new a new page using the underlying context.
You can fix it by doing the following (create a context first and use it to create your page1 and page2):
 var context = await browser.NewContextAsync();
_Page = await context.NewPageAsync();
await _Page.GotoAsync("Some URL");
var prefillPage = await context.NewPageAsync();

Let us know if that works for you!

We don't create context. Is it recommended to create context all the time? And context object is not available in our framework all the time. Is this recommended?

Yes it is recommended. browser.NewContextAsync(); does also create a context for you, you just have no ability to access it. Since you need one, you need to create it from the outside.

Thank you. The above solution works hence closing this issue.

Thank you. The above solution works hence closing this issue.


Bookstore: styling

Match Zeplin's design
In this PR I;

Added any missing JSX elements.
Matched the project to the Zeplin design.
Make sure that there are no linter errors.
Make sure that you used correct flow Gitflow.
Make sure that you documented your work in a professional way.

Hello @SergioPeralta22 👋,
This is an additional review as a result of the second opinion request.
For this project, your main objective is to style your website according to Zeplin design. But you are also required to adhere to HTML&CSS best practices, please check out the requirement below:

The change requested by the previous reviewer was mentioned in HTML&CSS best practices file (the point number 11): If you are using the same property for multiple elements, you can create a class attribute instead. For example, instead of using display: flex; 3 times:
#intro1 {display: flex; font-size: 10px; font-weight: bold;}
header {display: flex; font-size: 20px; background-color: green;}
#banner {display: flex; font-size: 30px; background-image: url(images/static.jpg);}

you can create a class and add it to all element that need to be flex.
.flex {display: flex;}

Keep rocking 🚀!

Hello @Jrmcuervo👋,
This is an additional review as a result of the second opinion request.
For this project, your main objective is to style your website according to Zeplin design. But you are also required to adhere to HTML&CSS best practices, please check out the requirement below:

The change requested by the previous reviewer was mentioned in HTML&CSS best practices file (the point number 11): If you are using the same property for multiple elements, you can create a class attribute instead. For example, instead of using display: flex; 3 times:
#intro1 {display: flex; font-size: 10px; font-weight: bold;}
header {display: flex; font-size: 20px; background-color: green;}
#banner {display: flex; font-size: 30px; background-image: url(images/static.jpg);}

you can create a class and add it to all element that need to be flex.
.flex {display: flex;}

Keep rocking 🚀!


Route Templates for HttpClient

Issue
We are currently building a suite of applications using the microservice design-pattern. One of our big pain-points and a frequent source of errors is building the URLs to access resources on other microservices.
Desired Solution
ASP.NET Core route templates would offer a powerful and well-known syntax for generating URLs. I would like to have a simple solution for creating URLs from route templates and be able to use them together with HttpClient for accessing ASP.NET Core APIs. This could look like:
var uri = RouteBuilder.FromTemplate("/api/{id}").With("id", 1).BuildUri();
httpClient.GetAsync(uri);

My preferred solution would be to have a Microsoft.Extensions.* package that contains the route template logic, including URL matching and generating.
Alternatives

LinkGenerator already has similar capabilities but it is designed to work for the Web-API being served and not for different Web-API being accessed via HTTP.
It is quite simple to build a custom implementation of this using TemplateParser and TemplateBinder but those types require "pubternal" types (e.g. UriBuildingContext), which means the custom implementation could break at any time.

Thanks for contacting us, @koenigst.
@rynowak any suggestions here?

@koenigst rather than manually constructing URLs manually, you should consider generating a client based on the swagger document of your service and then just calling methods passing proper parameters to them. This is an area we're making active improvements and things will get even simpler in the near future: https://github.com/aspnet/AspNetCore/issues/4896


Checkins are dropped when lots of Celery child tasks are started and max-tasks-per-child is reached

How do you use Sentry?
Sentry Saas (sentry.io)
Version
1.33.0
Steps to Reproduce
Set max-tasks-per-child in Celery to 10000. Use redis as broker. Create a Celery Task that starts 12000 child tasks using .delay().
When max-tasks-per-child is reached our redis integration adds a lot of big breadcrumbs to the scope which are applied to all the success/failure checkins of the child spans.
Because of the size of the breadcrumbs the checkin envelopes are too big and are dropped by the server. Leading to all child spans timing out because the success/failure checking never reaches sentry.
Expected Result
All checkins are sent successfully
Actual Result
The checkins are dropped because of size restriction on the server.

Sample checkin that is too big:
event-with-lots-of-breadcrumbs.txt


onProgress not called after first video (Android)

Our app plays multiple videos in a row. The video component is re-rendered each time with a new video uri. Everything works as expected on iOS, but we are having issues on Android:
First Video: onLoadStart => onLoad => onProgress => onEnd
Second Video: onLoadStart => onLoad, then nothing happens. The video plays, but we do not get any logs for onProgress, but we do get one for onEnd.
Any ideas why this is happening on Android?
RN: 0.42.0
RN Video: 1.0.0

Did you ever find a solution to this? I'm experiencing the same issue, on android only

Same issue here. Did anyone solve this?

Same issue here. Only on android

There's a conditional (if (mMediaPlayerValid && !isCompleted &&!mPaused)) which controls whether the onProgress event is fired. When you play another video, isCompleted isn't being reset. You can force it to be reset by calling player.seek(0) on the onLoad callback.
Maintainers, does setting isCompleted to false where you emit EVENT_LOAD_START sound reasonable? If so, I can put in a PR.

Same issue here. I added player.seek(0) in onLoad callback but it does not solve the issue.

@artushin I've tried adding isCompleted after emitting EVENT_LOAD_START, but it didn't fix the problem.
In the end, I used javascript setTimeout to simulate onprogress event. In case anyone interested, I'll just paste my workaround here. Still hope that this issue will be addressed officially.
  onLoad() {
    this.props.updateCurrentTime(0);
    let interval = 250;
    let currentTimer = setInterval(() => this.props.updateCurrentTime(this.props.currentTime + interval), interval);
    this.setState({currentTimer: currentTimer});
  }
  onStop() { clearInterval(this.state.currentTimer); }

That's an interesting way. In my case I solved the issue by using react-native-video/android-exoplayer instead of react-native-video/android.

Same issue here.In my case I solved the issue by adding player.seek(0) in onEnd callback.

This has been fixed by #778


Proxy release 2024-12-05

Proxy release 2024-12-05
Please merge this Pull Request using 'Create a merge commit' button

Relevant PRs:

https://github.com/neondatabase/neon/pull/9918
https://github.com/neondatabase/neon/pull/9930
https://github.com/neondatabase/neon/pull/9939
https://github.com/neondatabase/neon/pull/9948
https://github.com/neondatabase/neon/pull/9967
https://github.com/neondatabase/neon/pull/9971
https://github.com/neondatabase/neon/pull/9990
https://github.com/neondatabase/neon/pull/9985
https://github.com/neondatabase/neon/pull/9995
https://github.com/neondatabase/neon/pull/10003
https://github.com/neondatabase/neon/pull/9979
https://github.com/neondatabase/neon/pull/10009
https://github.com/neondatabase/neon/pull/10002
https://github.com/neondatabase/neon/pull/10012

Reviewed for changelog.


Created /public/javascript/

no content yet

Deleting; already existed under directory main per Sepid.


:muscle: Optimize local import

Continue of #263

Summary by CodeRabbit

Refactor

Updated import paths for several modules to improve clarity and modularity.
Simplified function calls to remove unnecessary namespace usage, enhancing readability.

Documentation

Enhanced comments and descriptions to clarify the changes made and their implications for code organization.

Type check seems failed.


removed string that did override the app name.

Hi @olivierg13 ,
is there a chance to update the changes on the maven repo ? Sorry, man.


Updates to support source code linting

added Parser.getType() method
clarified some jsdocs

Rule.match() should return a Result instance, an array of
Result instances, or undefined if no match

added IntermediateRepresentation class to represent the results of
parsing a file
Parser.parse() should now return the intermediate representation
Added support for logging provided by the lint tool so that plugins
can use the linter's logging

Uses a default null logger if none provided by the linter

Ready for review now. This PR has to go first, and then we can do the linter itself and a few other projects that depend on these.


SP-3155- Backport of PDI-14994 - Rowlevel Logging causes NPE in Join rows step

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
ant -Dtestreports.dir=bin/reports/unit-test -f engine/build.xml clean-all resolve jacoco && ant -Dtestreports.dir=bin/reports/integration-test -f engine/build.xml jacoco-integration checkstyle publish-local

Cleanup Commands
rm -r ~/.ivy2/local || echo no publish local to remove

Changed files
  engine/src/org/pentaho/di/trans/steps/joinrows/JoinRows.java

Unit test coverage change
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.
org.pentaho.di.core.auth.core.impl.DefaultAuthenticationConsumerFactory

Branch Change: -7.14%:small_red_triangle_down:
Complexity Change: -7.69%:small_red_triangle_down:

org.pentaho.di.job.entries.evalfilesmetrics.JobEntryEvalFilesMetrics

Branch Change: -.78%:small_red_triangle_down:
Complexity Change: -1.03%:small_red_triangle_down:
Instruction Change: -.16%:small_red_triangle_down:

org.pentaho.di.job.entries.waitforsql.JobEntryWaitForSQL

Branch Change: -.66%:small_red_triangle_down:
Complexity Change: -.93%:small_red_triangle_down:
Instruction Change: -.13%:small_red_triangle_down:

org.pentaho.di.trans.step.StepMeta

Instruction Change:  + .19%
Line Change:  + .27%

org.pentaho.di.trans.steps.dbproc.DBProcMeta

Instruction Change: -.11%:small_red_triangle_down:

org.pentaho.di.trans.steps.dimensionlookup.DimensionLookupMeta

Branch Change: -.66%:small_red_triangle_down:
Complexity Change: -.41%:small_red_triangle_down:
Instruction Change: -.50%:small_red_triangle_down:
Line Change: -.24%:small_red_triangle_down:

org.pentaho.di.trans.steps.groupby.GroupByMeta

Branch Change:  + 3.12%
Complexity Change:  + 3.16%
Instruction Change:  + .28%
Line Change:  + .75%

org.pentaho.di.trans.steps.joinrows.JoinRows

Instruction Change: -.01%:small_red_triangle_down:

org.pentaho.di.trans.steps.memgroupby.MemoryGroupByMeta

Branch Change: -2.35%:small_red_triangle_down:
Complexity Change: -2.70%:small_red_triangle_down:

org.pentaho.di.trans.steps.setvalueconstant.SetValueConstantMeta

Instruction Change:  + .14%

org.pentaho.di.trans.steps.singlethreader.SingleThreaderMeta

Instruction Change:  + .08%

org.pentaho.di.trans.steps.synchronizeaftermerge.SynchronizeAfterMergeMeta

Instruction Change:  + .04%

Integration test coverage change
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.
org.pentaho.di.trans.step.BaseStep

Branch Change: -.29%:small_red_triangle_down:
Complexity Change: -.18%:small_red_triangle_down:
Instruction Change: -.05%:small_red_triangle_down:
Line Change: -.08%:small_red_triangle_down:

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
ant -Dtestreports.dir=bin/reports/unit-test -f engine/build.xml clean-all resolve jacoco && ant -Dtestreports.dir=bin/reports/integration-test -f engine/build.xml jacoco-integration checkstyle publish-local

Cleanup Commands
rm -r ~/.ivy2/local || echo no publish local to remove

Changed files
  engine/src/org/pentaho/di/trans/steps/joinrows/JoinRows.java

Unit test coverage change
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.
org.pentaho.di.job.entries.evalfilesmetrics.JobEntryEvalFilesMetrics

Branch Change: -.39%:small_red_triangle_down:
Complexity Change: -.51%:small_red_triangle_down:
Instruction Change: -.08%:small_red_triangle_down:

org.pentaho.di.job.entries.sql.JobEntrySQL

Instruction Change: -3.28%:small_red_triangle_down:
Line Change: -3.87%:small_red_triangle_down:

org.pentaho.di.repository.kdr.KettleDatabaseRepositoryCreationHelper

Branch Change: -1.64%:small_red_triangle_down:
Complexity Change: -.69%:small_red_triangle_down:
Instruction Change: -2.40%:small_red_triangle_down:
Line Change: -3.51%:small_red_triangle_down:

org.pentaho.di.trans.steps.combinationlookup.CombinationLookupMeta

Instruction Change:  + .04%

org.pentaho.di.trans.steps.constant.ConstantMeta

Instruction Change:  + .10%

org.pentaho.di.trans.steps.datagrid.DataGridMeta

Instruction Change:  + .09%

org.pentaho.di.trans.steps.dbproc.DBProcMeta

Instruction Change: -.11%:small_red_triangle_down:

org.pentaho.di.trans.steps.groupby.GroupByMeta

Branch Change:  + 1.04%
Complexity Change:  + 1.05%
Instruction Change:  + .14%
Line Change:  + .37%

org.pentaho.di.trans.steps.ifnull.IfNullMeta

Branch Change: -2.00%:small_red_triangle_down:
Complexity Change: -1.89%:small_red_triangle_down:
Instruction Change: -.17%:small_red_triangle_down:

org.pentaho.di.trans.steps.joinrows.JoinRows

Instruction Change: -.01%:small_red_triangle_down:

org.pentaho.di.trans.steps.memgroupby.MemoryGroupByMeta

Branch Change: -1.18%:small_red_triangle_down:
Complexity Change: -1.35%:small_red_triangle_down:

org.pentaho.di.trans.steps.rowgenerator.RowGeneratorMeta

Instruction Change: -.08%:small_red_triangle_down:

org.pentaho.di.trans.steps.uniquerows.UniqueRowsMeta

Instruction Change:  + .18%

org.pentaho.di.trans.steps.webservices.WebServiceMeta

Branch Change:  + 1.79%
Complexity Change:  + 1.19%
Instruction Change:  + .07%


Strengthen MuSig nonce gen by feeding addresses of args

The musig nonce function looks as follows:
static void secp256k1_nonce_function_musig(secp256k1_scalar *k, const unsigned char *session_id, const unsigned char *key32, const unsigned char *msg32, const unsigned char *agg_pk, const unsigned char *extra_input32) {

There's a chance that if this nonce function is accidentally called twice with the same argument values, the argument pointers store different addresses. Thus, we could hash these locations like this:
secp256k1_sha256_write(&sha, (unsigned char *)&session_id, sizeof(session_id));

However, it should be possible to test the nonce function without this, to make sure that different values are sufficient to produce a different hash.
This idea was originally brought up by @elichai.

I like it. The address will maybe only have five or ten bits of entropy ... but to prevent lattice attacks in practice you pretty-much only need one (assuming your nonce, aside from being reused, is pretty high-entropy :))


Fix octal literal to work in both Python 2 and Python 3

$ python3 -c "0600"
  File "<string>", line 1
    0600
       ^
SyntaxError: invalid token

[ ] Chart version not bumped (the versions are all bumped and released at the same time)
[ ] README.md updated with any new values or changes
[ ] Updated template tests in ${CHART}/tests/*.py
[ ] Updated integration tests in ${CHART}/examples/*/test/goss.yaml

Since this is a community submitted pull request, a Jenkins build has not been kicked off automatically. Can an Elastic organization member please verify the contents of this patch and then kick off a build manually?

jenkins test this please

@cclauss This is ready to be merged, but it looks like you haven't yet signed the CLA

I have signed it twice.  Is there a way to debug the CLA process?

I have signed it twice. Is there a way to debug the CLA process?

Looks like its working now! Thanks!


Update GPU-Targets.rst

I found that there are some misleading information in GPU-Targets.rst. I removed some examples provided by @Laurae2 because the provided parameters only work for a specific machine and a specific OpenCL driver version, and can mislead users like #1608
However I am not able to do any tests on Windows platform at this time, especially that AMD APP SDK is now deprecated, and I am not exactly sure about the current OpenCL status with AMD on Windows. I think the OpenCL runtime are now provided by AMD drivers rather than AMD APP SDK. I will really appreciate it if someone can test LightGBM on Windows with AMD GPUs without AMD APP SDK; is it enough to just install drivers from AMD?

@huanzhang12 I'll review after you went through @StrikerRUS review (in my case, mostly about the remaining typos).
Otherwise the content seems correct

ping @huanzhang12

@Laurae2 @StrikerRUS @chivee Sorry for the delay! I have fixed the typos. Thank you @StrikerRUS  for checking the docs carefully and give good suggestions! @Laurae2 Let me know your comments on this, thanks!

ping @Laurae2


Issues updating from 0.1.1 to 0.2.0

Immich user here, trying to update pgvecto.rs from 0.1.1 to 0.2.0, using pg14. Here is what I did on my system:
postgres@vm-dev:~> cd /tmp
postgres@vm-dev:/tmp> wget https://github.com/tensorchord/pgvecto.rs/archive/refs/tags/v0.2.0.zip
postgres@vm-dev:/tmp> unzip ./v0.2.0.zip
postgres@vm-dev:/tmp> cd pgvecto.rs-0.2.0/
postgres@vm-dev:/tmp/pgvecto.rs-0.2.0> cargo pgrx install -c /usr/lib/postgresql14/bin/pg_config --sudo --release

However, I noticed in /var/lib/pgsql/pgvecto.rs-0.2.0/Cargo.toml that it says version = "0.0.0". I changed it manually to 0.2.0 and tried again. Which seemed to work... however, now, when I'm trying to update it in my database:
immich=# ALTER EXTENSION vectors UPDATE TO '0.2.0';
ERROR:  extension "vectors" has no update path from version "0.1.1" to version "0.2.0"

immich=# select * from pg_available_extensions where name = 'vectors';
  name   | default_version | installed_version |                                           comment
---------+-----------------+-------------------+----------------------------------------------------------------------------------------------
 vectors | 0.2.0           | 0.1.1             | vectors: Vector database plugin for Postgres, written in Rust, specifically designed for LLM
(1 row)

So I tried removing it...
immich=# drop extension vectors;
ERROR:  cannot drop extension vectors because other objects depend on it
DETAIL:  column embedding of table asset_faces depends on type vector
column embedding of table smart_search depends on type vector
HINT:  Use DROP ... CASCADE to drop the dependent objects too.

immich=# drop extension vectors cascade;
NOTICE:  drop cascades to 2 other objects
DETAIL:  drop cascades to column embedding of table asset_faces
drop cascades to column embedding of table smart_search
ERROR:  could not find function "vectors_amhandler_wrapper" in file "/usr/lib/postgresql14/lib64/vectors.so"

And this is where I'm currently stucked. I'm writing a guide in my own wiki to be able to update next time, this is far from easy when using a dedicated server rather than dockers.

Sorry for the inconvenience. We didn't notice before that immich also supports bare metal deployment.
To install pgvecto.rs, you don't need to build from source. We have the deb release package at https://github.com/tensorchord/pgvecto.rs/releases/tag/v0.2.0.

Have you tried the command at https://docs.pgvecto.rs/admin/upgrading.html#upgrade-from-0-1-x with

UPDATE pg_catalog.pg_extension SET extversion = '0.1.x' where extname = 'vectors';
UPDATE pg_catalog.pg_extension SET extrelocatable = true where extname = 'vectors';
ALTER EXTENSION vectors SET SCHEMA vectors;
UPDATE pg_catalog.pg_extension SET extrelocatable = false where extname = 'vectors';

When deleting pgvecto.rs, two vector columns were also deleted. So your current data may be incomplete. I'm not sure how to fix this, may need immich developer to help

And 0.1.1 is a weird version. Immich used pgvecto.rs starting at 0.1.11. The users we encountered all upgraded from 0.1.11 or 0.1.13 to 0.2.0, and 0.1.1 is an early version that was not very stable.

I would love to use the package but most of the server world is still built around RPM packages. I'm aware a lot of people toying with Linux at home use Debian (Ubuntu and the likes) but I personally use OpenSUSE for development and otherwise SUSE and RHEL at work, both of which require RPM packages for Zypper or dnf/yum.

To install pgvecto.rs, you don't need to build from source. We have the deb release package at https://github.com/tensorchord/pgvecto.rs/releases/tag/v0.2.0.

I will take a look at the alternatives you suggested tomorrow, thank you!

And 0.1.1 is a weird version. Immich used pgvecto.rs starting at 0.1.11. The users we encountered all upgraded from 0.1.11 or 0.1.13 to 0.2.0, and 0.1.1 is an early version that was not very stable.

I think there was a typo in the 0.1.11 release so the version shows as 0.1.1. In the upgrade we set it to 0.1.11 so it uses the right upgrade script.

Have you tried the command at https://docs.pgvecto.rs/admin/upgrading.html#upgrade-from-0-1-x with

UPDATE pg_catalog.pg_extension SET extversion = '0.1.x' where extname = 'vectors';
UPDATE pg_catalog.pg_extension SET extrelocatable = true where extname = 'vectors';
ALTER EXTENSION vectors SET SCHEMA vectors;
UPDATE pg_catalog.pg_extension SET extrelocatable = false where extname = 'vectors';

When deleting pgvecto.rs, two vector columns were also deleted. So your current data may be incomplete. I'm not sure how to fix this, may need immich developer to help

I didn't see that part of the documentation. I just tested it:
vm-dev:~ # su - postgres
postgres@vm-dev:~> psql
psql (15.2, server 14.10)
Type "help" for help.

postgres=# \c immich;
psql (15.2, server 14.10)
You are now connected to database "immich" as user "postgres".
immich=# UPDATE pg_catalog.pg_extension SET extversion = '0.1.1' where extname = 'vectors';
UPDATE 1
immich=# UPDATE pg_catalog.pg_extension SET extrelocatable = true where extname = 'vectors';
UPDATE 1
immich=# ALTER EXTENSION vectors SET SCHEMA vectors;
ERROR:  schema "vectors" does not exist
immich=# UPDATE pg_catalog.pg_extension SET extrelocatable = false where extname = 'vectors';
UPDATE 1
immich=# ALTER EXTENSION vectors UPDATE TO '0.2.0';
ERROR:  extension "vectors" has no update path from version "0.1.1" to version "0.2.0"

immich=# UPDATE pg_catalog.pg_extension SET extversion = '0.1.11' where extname = 'vectors';
UPDATE 1
immich=# UPDATE pg_catalog.pg_extension SET extrelocatable = true where extname = 'vectors';
UPDATE 1
immich=# ALTER EXTENSION vectors SET SCHEMA vectors;
ERROR:  schema "vectors" does not exist
immich=# UPDATE pg_catalog.pg_extension SET extrelocatable = false where extname = 'vectors';
UPDATE 1
immich=# ALTER EXTENSION vectors UPDATE TO '0.2.0';
ERROR:  extension "vectors" has no update path from version "0.1.11" to version "0.2.0"

So I tried with both 0.1.1 and 0.1.11 just in case. If I remember correctly I had the no uypdate path error before even trying to drop the extension, that's what made me try to drop it to recreate it. Not sure where to go from there, I tried moving the vectors.so file as well but the database wouldn't start as it's looking for it. If there is a clean way to delete the extension completely so that I can restart from scratch, that would be great.

And 0.1.1 is a weird version. Immich used pgvecto.rs starting at 0.1.11. The users we encountered all upgraded from 0.1.11 or 0.1.13 to 0.2.0, and 0.1.1 is an early version that was not very stable.

I think there was a typo in the 0.1.11 release so the version shows as 0.1.1. In the upgrade we set it to 0.1.11 so it uses the right upgrade script.

Most likely this, as I definitely installed the required version to make Immich work before Immich v1.95.

We do have upgrade script at https://github.com/tensorchord/pgvecto.rs/blob/main/sql/upgrade/vectors--0.1.11--0.2.0.sql.  The file seems missing with installation from cargo install .

You should also run these commands to take care of the schema error:
CREATE SCHEMA IF NOT EXISTS vectors;
SET search_path TO "$user", public, vectors;

We do have upgrade script at https://github.com/tensorchord/pgvecto.rs/blob/main/sql/upgrade/vectors--0.1.11--0.2.0.sql.  The file seems missing with installation from cargo install .

Am I supposed to put it somewhere? I tried this but that doesn't seem to do anything?

postgres@vm-dev:~> psql -d immich -a -f vectors--0.1.11--0.2.0.sql
\echo Use "ALTER EXTENSION vectors UPDATE TO '0.2.0'" to load this file. \quit
Use "ALTER EXTENSION vectors UPDATE TO '0.2.0'" to load this file.

You should also run these commands to take care of the schema error:
CREATE SCHEMA IF NOT EXISTS vectors;
ALTER DATABASE immich SET search_path TO "$user", public, vectors;
SET search_path TO "$user", public, vectors;

Just did. Am I supposed to drop the extension after this or just try to update as normal?

immich=# CREATE SCHEMA IF NOT EXISTS vectors;
CREATE SCHEMA
immich=# ALTER DATABASE immich SET search_path TO "$user", public, vectors;
ALTER DATABASE
immich=# SET search_path TO "$user", public, vectors;
SET

immich=# ALTER EXTENSION vectors UPDATE TO '0.2.0';
ERROR:  extension "vectors" has no update path from version "0.1.11" to version "0.2.0"

immich=# select * from pg_available_extensions where name = 'vectors';
  name   | default_version | installed_version |                                           comment
---------+-----------------+-------------------+----------------------------------------------------------------------------------------------
 vectors | 0.2.0           | 0.1.11            | vectors: Vector database plugin for Postgres, written in Rust, specifically designed for LLM
(1 row)

You should be able to, yes:
UPDATE pg_catalog.pg_extension SET extversion = '0.1.11' WHERE extname = 'vectors';
UPDATE pg_catalog.pg_extension SET extrelocatable = true WHERE extname = 'vectors';
ALTER EXTENSION vectors SET SCHEMA vectors;
UPDATE pg_catalog.pg_extension SET extrelocatable = false WHERE extname = 'vectors';
ALTER EXTENSION vectors UPDATE TO '0.2.0';

SELECT pgvectors_upgrade();

Also, if you dropped the embedding columns, you can run the commands here to get them back.

You should be able to, yes:
UPDATE pg_catalog.pg_extension SET extversion = '0.1.11' WHERE extname = 'vectors';
UPDATE pg_catalog.pg_extension SET extrelocatable = true WHERE extname = 'vectors';
ALTER EXTENSION vectors SET SCHEMA vectors;
UPDATE pg_catalog.pg_extension SET extrelocatable = false WHERE extname = 'vectors';
ALTER EXTENSION vectors UPDATE TO '0.2.0';

SELECT pgvectors_upgrade();

immich=# UPDATE pg_catalog.pg_extension SET extversion = '0.1.11' WHERE extname = 'vectors';
UPDATE 1
immich=# UPDATE pg_catalog.pg_extension SET extrelocatable = true WHERE extname = 'vectors';
UPDATE 1
immich=# ALTER EXTENSION vectors SET SCHEMA vectors;
ALTER EXTENSION
immich=# UPDATE pg_catalog.pg_extension SET extrelocatable = false WHERE extname = 'vectors';
UPDATE 1
immich=# ALTER EXTENSION vectors UPDATE TO '0.2.0';
ERROR:  extension "vectors" has no update path from version "0.1.11" to version "0.2.0"
immich=# SELECT pgvectors_upgrade();
ERROR:  function pgvectors_upgrade() does not exist
LINE 1: SELECT pgvectors_upgrade();
               ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

I'm not even sure version 0.2.0 is correctly installed to be honest, when I downloaded and unpacked it, it showed as version 0.0.0.

Also, if you dropped the embedding columns, you can run the commands here to get them back.

immich=# SELECT * FROM pg_stat_all_indexes WHERE indexrelname = 'clip_index';
   relid   | indexrelid | schemaname |   relname    | indexrelname | idx_scan | idx_tup_read | idx_tup_fetch
-----------+------------+------------+--------------+--------------+----------+--------------+---------------
 240097390 |  240110157 | public     | smart_search | clip_index   |        0 |            0 |             0
(1 row)

immich=# SELECT * FROM pg_stat_all_indexes WHERE indexrelname = 'face_index';
 relid | indexrelid | schemaname |   relname   | indexrelname | idx_scan | idx_tup_read | idx_tup_fetch
-------+------------+------------+-------------+--------------+----------+--------------+---------------
 27081 |  240110158 | public     | asset_faces | face_index   |        0 |            0 |             0
(1 row)

We packaged the upgrade script with the library like
https://github.com/tensorchord/pgvecto.rs/blob/main/scripts/ci_package.sh
However, I'm not sure the installation method you used. Can you try remove the extension, and then reinstall it with the artifact from   the script above? In the current installation, the upgrade script seems missing

We packaged the upgrade script with the library like https://github.com/tensorchord/pgvecto.rs/blob/main/scripts/ci_package.sh
However, I'm not sure the installation method you used. Can you try remove the extension, and then reinstall it with the artifact from the script above? In the current installation, the upgrade script seems missing

How do I proceed to remove it, since I'm having errors when DROP... CASCADE and deleting the files prevent the DB from starting? Just making sure before I commit to doing things that could be hard to reverse, I'm a system administrator but have very limited experience with PostgreSQL in general.

Can you try the following steps?

Drop extension CASCADE
'ALTER SYSTEM UNSET shared_preload_libraries'
Restart postgres

Before that you can try manually run https://github.com/tensorchord/pgvecto.rs/blob/main/sql/upgrade/vectors--0.1.11--0.2.0.sql which simulates the upgrade process. If it works, you don't need to reinstall the extension

Can you try the following steps?

Drop extension CASCADE
'ALTER SYSTEM UNSET shared_preload_libraries'
Restart postgres

Still stuck there:
immich=# drop extension vectors cascade;
NOTICE:  drop cascades to 2 other objects
DETAIL:  drop cascades to column embedding of table asset_faces
drop cascades to column embedding of table smart_search
ERROR:  could not find function "vectors_amhandler_wrapper" in file "/usr/lib/postgresql14/lib64/vectors.so"

Before that you can try manually run https://github.com/tensorchord/pgvecto.rs/blob/main/sql/upgrade/vectors--0.1.11--0.2.0.sql which simulates the upgrade process. If it works, you don't need to reinstall the extension

Unsure what this does.
postgres@vm-dev:~> psql -d immich -a -f vectors--0.1.11--0.2.0.sql
\echo Use "ALTER EXTENSION vectors UPDATE TO '0.2.0'" to load this file. \quit
Use "ALTER EXTENSION vectors UPDATE TO '0.2.0'" to load this file.
postgres@vm-dev:~> psql
psql (15.2, server 14.10)
Type "help" for help.

postgres=# \c immich;
psql (15.2, server 14.10)
You are now connected to database "immich" as user "postgres".
immich=# ALTER EXTENSION vectors UPDATE TO '0.2.0';
ERROR:  extension "vectors" has no update path from version "0.1.11" to version "0.2.0"

You don't need to do ALTER EXTENSION vectors UPDATE TO '0.2.0';, it's the same as executing the file manually. Does your postgres work now?

You don't need to do ALTER EXTENSION vectors UPDATE TO '0.2.0';, it's the same as executing the file manually. Does your postgres work with SELECT pgvectors_upgrade(); now?

No.

I think the first line in the script quits without running the upgrade. You can probably just remove that line and try again.

The output is a little big long and has hundreds of errors but here it is just in case:
https://pastebin.com/NXwpuSj2
I feel like at this point my installation is messy enough that having instructions on how to uninstall this thing completely and restart from scratch would be very good. Something that can get through the DROP... CASCADE not working above.

You don't need to do ALTER EXTENSION vectors UPDATE TO '0.2.0';, it's the same as executing the file manually. Does your postgres work with SELECT pgvectors_upgrade(); now?

No.

I think the first line in the script quits without running the upgrade. You can probably just remove that line and try again.

The output is big and has hundreds of errors but here it is just in case: https://pastebin.com/NXwpuSj2
I feel like at this point my installation is messy enough that having instructions on how to uninstall this thing completely and restart from scratch would be very good. Something that can get through the DROP... CASCADE not working above.

You can try downgrading to 0.1.11 before running DROP... CASCADE, then upgrading.

You can try downgrading to 0.1.11 before running DROP... CASCADE, then upgrading.

Apparently v0.1.11 is still working perfectly, I just changed my Immich docker repo to ghcr.io/imagegenius/immich:v1.94.1-ig248 and it booted up just fine and is working perfectly. Both versions seem installed (???).
immich=# select * from pg_available_extensions where name = 'vectors';

  name   | default_version | installed_version |                                           comment
---------+-----------------+-------------------+----------------------------------------------------------------------------------------------
 vectors | 0.2.0           | 0.1.11            | vectors: Vector database plugin for Postgres, written in Rust, specifically designed for LLM
(1 row)

However, my /usr/lib/postgresql14/lib64/vectors.so is the one from /var/lib/pgsql/pgvecto.rs-0.1.11/target/release/vectors-pg14/usr/lib/postgresql14/lib64/vectors.so (so version 0.1.11). If I put the version 0.2.0 of vectors.so in there, I go back to all my problems. I don't see how I can have both versions at the same time in that directory anyways?
For now I will stick with 1.94.1 until I can figure this out, at the very least things are working.
What I would need from here is pretty much live assistance to try to update pgvecto.rs to 0.2.0 correctly and figure out what doesn't work exactly. I'm having other issues when trying to properly install version 0.2.0, like mismatching versions of rust/cargo/pgrx/etc, issues with Cargo.toml (the new 0.2.0 version is shown as 0.0.0 by default in the zip file (???), etc). I'm clearly lacking experience here and most of the doc is very specific to users running everything in dockers. The only thing running in a docker in my case is the Immich app itself, not the database, not the extension, not Redis.
Now, is uninstall 0.2.0 as simple as deleting /var/lib/pgsql/pgvecto.rs-0.2.0/ on my system, if I want to start the upgrade back from scratch? Should I do everything (from the rust/cargo installation to the CREATE EXTENSION commands) with the postgres user, or should some stuff be done as root? There are a lot of question marks when trying to follow the doc with an actual installation of PostgreSQL on a VM/bare-metal rather than with dockers.

It sounds like you just have 0.1.11 installed right now. I think your basic goal should be to successfully drop the extension just to have a clean slate.
The issue in the OP about dropping it is that you basically can't interact with the extension on 0.2.0 until you do the upgrade. This includes dropping it. You should be able to drop it now if you have 0.1.11 installed.
After that, delete the pg_vectors folder and you'll have a clean environment to install 0.2.0.

It sounds like you just have 0.1.11 installed right now. I think your basic goal should be to successfully drop the extension just to have a clean slate.
The issue in the OP about dropping it is that you basically can't interact with the extension on 0.2.0 until you do the upgrade. This includes dropping it. You should be able to drop it now if you have 0.1.11 installed.
After that, delete the pg_vectors folder and you'll have a clean environment to install 0.2.0.

Well that was... easy?
immich=# drop extension vectors cascade;
NOTICE:  drop cascades to 2 other objects
DETAIL:  drop cascades to column embedding of table asset_faces
drop cascades to column embedding of table smart_search
DROP EXTENSION

Then:
vm-dev:~ # systemctl stop postgresql
vm-dev:~ # cp /var/lib/pgsql/pgvecto.rs-0.2.0/target/release/vectors-pg14/usr/lib/postgresql14/lib64/vectors.so /usr/lib/postgresql14/lib64/vectors.so
vm-dev:~ # systemctl start postgresql

Then:
immich=# create extension vectors;
CREATE EXTENSION

Updated immich to v1.95.1 and it starts! now, saw errors when searching, such as:
QueryFailedError: column search.embedding does not exist

So I did this:
immich=# SELECT * FROM pg_stat_all_indexes WHERE indexrelname = 'clip_index';
 relid | indexrelid | schemaname | relname | indexrelname | idx_scan | idx_tup_read | idx_tup_fetch
-------+------------+------------+---------+--------------+----------+--------------+---------------
(0 rows)

immich=# SELECT * FROM pg_stat_all_indexes WHERE indexrelname = 'face_index';
 relid | indexrelid | schemaname | relname | indexrelname | idx_scan | idx_tup_read | idx_tup_fetch
-------+------------+------------+---------+--------------+----------+--------------+---------------
(0 rows)

immich=# DELETE FROM smart_search WHERE true;
DELETE 15545
immich=# DELETE FROM asset_faces WHERE true;
DELETE 9489
immich=# DELETE FROM person WHERE true;
DELETE 2830
immich=# ALTER TABLE smart_search
immich-# ADD COLUMN IF NOT EXISTS embedding vector(512);
ALTER TABLE
immich=# ALTER TABLE asset_faces
immich-# ADD COLUMN IF NOT EXISTS embedding vector(512);
ALTER TABLE
immich=# SET vectors.pgvector_compatibility=on;
SET
immich=# CREATE INDEX IF NOT EXISTS clip_index ON smart_search
immich-#     USING hnsw (embedding vector_cosine_ops)
immich-#     WITH (ef_construction = 300, m = 16);
ERROR:  permission denied for schema vectors
immich=# alter role immich with superuser;
ALTER ROLE
immich=# CREATE INDEX IF NOT EXISTS clip_index ON smart_search
    USING hnsw (embedding vector_cosine_ops)
    WITH (ef_construction = 300, m = 16);
CREATE INDEX
immich=# CREATE INDEX IF NOT EXISTS face_index ON asset_faces
immich-#     USING hnsw (embedding vector_cosine_ops)
immich-#     WITH (ef_construction = 300, m = 16);
CREATE INDEX

Then ran face detection/recognition and smart search smart learning
Everything seems to be working as normal now. So long as you don't mind losing facial recognition data (not an issue for me).
Now... I'm not entirely sure where I screwed up initially. I think dropping the extension BEFORE updating is all in all safer? And it seems like there is no need for any upgrade script? (I did try SELECT pgvectors_upgrade(); again hoping it would fix the smart search issues, it did its thing but didn't help for smart search.)
Also note that the superuser permission is required, otherwise https://github.com/immich-app/immich/issues/7289.

After discussing with team member, the error may occur when the extension is not properly upgraded. To solve this, you need to copy the file https://github.com/tensorchord/pgvecto.rs/blob/main/sql/upgrade/vectors--0.1.11--0.2.0.sql to the postgres extension folder.
The postgres extension folder usually locate at /usr/share/postgresql/14/extension. If it's not the case on your system, you can use SHOW config_file; to find the config path. Open this configuration file, look for the value of data_directory, which will tell you where the database's data directory is located. The extension directory is usually located at a relative path like ../share/extension within the data directory or a similar location, depending on your PostgreSQL installation.
After copy the file into the postgres extension folder, you should be able to run ALTER EXTENSION vectors UPDATE TO '0.2.0';

After discussing with team member, the error may occur when the extension is not properly upgraded. To solve this, you need to copy the file https://github.com/tensorchord/pgvecto.rs/blob/main/sql/upgrade/vectors--0.1.11--0.2.0.sql to the postgres extension folder.
The postgres extension folder usually locate at /usr/share/postgresql/14/extension. If it's not the case on your system, you can use SHOW config_file; to find the config path. Open this configuration file, look for the value of data_directory, which will tell you where the database's data directory is located. The extension directory is usually located at a relative path like ../share/extension within the data directory or a similar location, depending on your PostgreSQL installation.
After copy the file into the postgres extension folder, you should be able to run ALTER EXTENSION vectors UPDATE TO '0.2.0';

I think you replied before you saw my comment, right? Because right now I'm on 0.2.0 so it wouldn't make sense (and it would not work) to ALTER EXTENSION vectors UPDATE TO '0.2.0';.

If I may add, I just noticed when you install the extension (with cargo pgrx install -c /usr/lib/postgresql14/bin/pg_config --sudo --release in my case), it does copy the vectors.so and vectors.control file correctly. The cp I did was just because I was basically switching back and forth between the 2 versions (which should not be necessary and I definitely do not recommend).
All in all, I think next time rather than trying to upgrade, I will just remove the extension, stop the database, install the new version, boot the database and enable the new extension. Seems like it's just much easier this way... but that may require some additional testing, and I guess the upgrade scripts you guys worked take care of some other stuff that could have prevented me from losing my smart search and facial recog stuff.

After discussing with team member, the error may occur when the extension is not properly upgraded. To solve this, you need to copy the file https://github.com/tensorchord/pgvecto.rs/blob/main/sql/upgrade/vectors--0.1.11--0.2.0.sql to the postgres extension folder.
The postgres extension folder usually locate at /usr/share/postgresql/14/extension. If it's not the case on your system, you can use SHOW config_file; to find the config path. Open this configuration file, look for the value of data_directory, which will tell you where the database's data directory is located. The extension directory is usually located at a relative path like ../share/extension within the data directory or a similar location, depending on your PostgreSQL installation.
After copy the file into the postgres extension folder, you should be able to run ALTER EXTENSION vectors UPDATE TO '0.2.0';

I think you replied before you saw my comment, right? Because right now I'm on 0.2.0 so it wouldn't make sense (and it would not work) to ALTER EXTENSION vectors UPDATE TO '0.2.0';.

Yes. Glad to hear you've found the solution!

If I may add, I just noticed when you install the extension (with cargo pgrx install -c /usr/lib/postgresql14/bin/pg_config --sudo --release in my case), it does copy the vectors.so and vectors.control file correctly. The cp I did was just because I was basically switching back and forth between the 2 versions (which should not be necessary and I definitely do not recommend).
All in all, I think next time rather than trying to upgrade, I will just remove the extension, stop the database, install the new version, boot the database and enable the new extension. Seems like it's just much easier this way... but that may require some additional testing, and I guess the upgrade scripts you guys worked on take care of some other stuff that could have prevented me from losing my smart search and facial recog stuff.

We didn't realize the upgrade SQL is missing when install from the source code. In the next release, we will provide a tar package including binary libraries and all upgrade and related files, as well as a simple guide to help non-Debian users install from binaries. Thanks for your report and patience with us!

We didn't realize the upgrade SQL is missing when install from the source code. In the next release, we will provide a tar package including binary libraries and all upgrade and related files, as well as a simple guide to help non-Debian users install from binaries. Thanks for your report and patience with us!

Thanks for your patience with me, glad to help and learn at the same time.
Also, I know nothing about pgrx extensions in PostgreSQL so I may be over my head here, but I had to edit the supplied Cargo.toml file from the source code to change the extension version from 0.0.0 to 0.2.0 (otherwise it would just not work) and I had to change the pgrx prerequisite as well from 0.11.2 to the version installed on my system, 0.11.3. Basically, those 2 lines had to be edited from the source code for me to work:
[dependencies]
pgrx = { version = "0.11.2", default-features = false, features = [] }

[workspace.package]
version = "0.0.0"

That is from what is supplied in https://github.com/tensorchord/pgvecto.rs/archive/refs/tags/v0.2.0.zip.
I also had an error (which I ended up just ignoring) when installing saying the code was built with rust 1.77-nightly while I have rust 1.76 stable (installed with https://sh.rustup.rs). The error basically says the installation of the extension failed... but everything worked.


replace train_percent_check with limit_train_batches

Fixes #2213

Hello @williamFalcon! Thanks for updating this PR.

In the file tests/trainer/test_dataloaders.py:

Line 69:1: E302 expected 2 blank lines, found 1


Wiki update

Hi, first of all, thank you for developing this great project!
It looks like the feat-server-scaling branch merged at 3.3 so Limitations part in the wiki should be edited.

done


Quick question about ionic

Hello.
First of all thanks a lot for your updates on this project and for the example you created. Howevet I have small questions about ionic :

I don't see like in your client project a login with social (like the google one)
We would nees inapp browser no like on the satellizer project ?

Thanks for your answer

Can you elaborate what you mean by: "We would nees inapp browser no like on the satellizer project"
@royipressburger can you help?

sorry it is a typo because of my phone
In fact I would like to know if we would need the cordova plugin inapp browser like in satellizer.
To be honnest I never used satellizer. I am working on Ionic 2 so when I saw your project I run on it and started trying to understand. I followed the complete flow but facebook is not called when I am running ionic serve

So basically what I did:
Clone the repo.
Did npm install on the ionic folder
Some changes as in fact there is only the basic login
ng2-ui-auth-example\ionic2\src\pages\login\login.html => <button ion-button (click)="signup()">Signup
ng2-ui-auth-example\ionic2\src\pages\signup\signup.html => <button ion-button (click)="signup('facebook')">Login facebook
g2-ui-auth-example\ionic2\src\pages\signup\signup.ts =>
 signup(provider){
  console.debug('launch signup');
  this.auth.authenticate(provider);
 }

But nothing happen (except my log :))

Hi @speedfl, if you use this library you will the in app browser.
You can take a look here to see the steps you need to do in order for the login to work on mobile phones
If you have any other question feel free to ask

Thx I will try to follow your explanation

Euh just another question.
I did a java auth server using jaxrs (based on the example provided by satellizer with some changes to map my need)
However I am getting error.
Unrecognized field 'url' not marked as ignorable
It is due to the fact that I am receiving in my request a field called url and I am trying to map in an object which does not contain it.
Could you please tell me where I can find the full content of the request sent to the server for facebook login ?

The request you are talking about is from the ui to your server after the authentication with Facebook?

Yes.
What is sent is:
{ 	"name": "facebook", 	"url": "/auth/facebook", 	"authorizationEndpoint": "https://www.facebook.com/v2.5/dialog/oauth", 	"redirectUri": "http://localhost:8100/", 	"requiredUrlParams": [ 		"display", "scope" 	], 	"scope": [ 		"email" 	], 	"scopeDelimiter": ",", 	"display": "popup", 	"oauthType": "2.0", 	"popupOptions": { 		"width": 580, 		"height": 400 	}, 	"clientId": "221171324975919", 	"defaultUrlParams": [ 		"response_type", "client_id", "redirect_uri" 	], 	"responseType": "code", 	"responseParams": { 		"code": "code", 		"clientId": "clientId", 		"redirectUri": "redirectUri" 	}, 	"code": "AQDigBHYBb2q-0t2s0xOP9PpaCPYroJG9p9TqQzSAWFHRmo9l4l6Ecp2B7bv96KJZZ2qzz3ub4hkNTn4034FfQXWMoJQTzixPY1JtqSo5V7bjFjGV0OWBFbBjUkSYywmDp-TufqADEwWk34eT4gIDmmlLkQiiFUinXpkMFeokJSaBnzi7DRiZT8R_sjLntMuZBcKDSoBVHSiwZTS2PS4jdt2aFaDE-y9f5T92bsxiQNm17h5Qfk0fbDTTVXl2iZwkIETVMjG2OpbZ2tumCpv8oj_yaI_NATmdwWejY39rELfC1TeMHgOaEFAhIRV6TxedFE", 	"_": "_" }
I do not understand why my code is crashing but it do not seems to be linked to you :)

So you can close the issue :) sorry for the inconveniance
What is sent is:
{ "name": "facebook", "url": "/auth/facebook", "authorizationEndpoint": "https://www.facebook.com/v2.5/dialog/oauth", "redirectUri": "http://localhost:8100/", "requiredUrlParams": [ "display", "scope" ], "scope": [ "email" ], "scopeDelimiter": ",", "display": "popup", "oauthType": "2.0", "popupOptions": { "width": 580, "height": 400 }, "clientId": "CLIENT_ID", "defaultUrlParams": [ "response_type", "client_id", "redirect_uri" ], "responseType": "code", "responseParams": { "code": "code", "clientId": "clientId", "redirectUri": "redirectUri" }, "code": "THE CODE HERE", "": "" }
I finally understood what is happening.
I made a fix. If you want to have an example using jaxrs for the server don't hesitate to ask me :)

Cool.. good luck

Thanks @royipressburger

@royipressburger   I would just have a little question. I installed the inappbrowser and it seems to be launched
However I am getting issue:
The redirect_uri is not supported
If I am looking at the redirect_uri sent I am getting : redirect_uri=file:///
The issue only occures when I am connecting on my device. On browser with ionic serve everything is working.
Is there specific things to do?

@speedfl Did you extend the CustomConfig and changed to redirect_uri?

export class MyConfig extends CustomConfig {
    providers = {
      facebook: {
        clientId: CONFIG.FACEBOOK_KEY,
        scope: CONFIG.FACEBOOK_PERMISSION,
        redirectUri: 'http://localhost/'

       }
    };
}

Hello
Sorry I thought I had to put it only on the Facebook developer page (on my app)
I will try,
Thanks a lot :)
I will keep you posted.

works!! Thanks a lot!

@speedfl any time bro!! good luck


Cannot find module 'mat-table-exporter'.

import { MatTableExporterModule } from 'mat-table-exporter';
Cannot find module 'mat-table-exporter'. can you please give an answer for this issue
while ng build i got this error
please help me to fix this

Could you share your app.module.ts file?

i just installed the package in server now issue solved thanks for this beautiful package loved it


drop down auto closing

Issue: Drop down auto closing when clicking the arrow button
System: Desktop app (Windows 11)
Details: When cursor is placed at location where the start of the string to the location of the cursor does not fit inside the text box, the dropdown menu auto closes.
Video: https://github.com/user-attachments/assets/d0cc3716-52b3-48e9-9f30-f1593d777ea1
-video shows that if the cursor is placed after "w", which falls outside the textbox size it starts auto closing but before "w" is fine

@minhe7735 Can you please test the deploy preview https://deploy-preview-52.preview.zmk.studio/ from #52 and confirm this fixes things for you? I tested here and was able to reproduce in Edge on W11, and then confirm that the above fix resolved the issue.
Thanks!

Fixed: tested on browser and windows desktop app


Kotlin Native 0.8

Hi,
Can u update kotlin native benchmark with latest version please ?

Please, run the benchmark on your computer with the Kotlin version I use and Kotlin 0.8, and report what kind of performance boost you see.

all benchmark should be done using same config to make comparison, my PC is different than yours, and i can't run all benchmark

My point is that I don't have a capacity to run every new release of every compiler in the benchmark to only confirm that it doesn't change anything. If you can compare the older Kotlin release performance with the new one and report that on your machine it speeds things up by 10%, I will rerun it on my machine and update the scoreboard. Otherwise, if the performance is the same, I can wait for the next release (ideally, 1.0).

Well, I found some time today and re-run Kotlin/Native solution using 0.8 release... Ouch, they have managed to slow it down from 5.88s to 6.32s and the memory consumption has increased from 1.2MB to 7MB. I am not sure what I should do with these results now...

Thanks for taking time to do it
I also tried on windows with mingw
8.026s for 0.7
8.051s for 0.8.2
I was hoping they fix performance, looks like they don't care..

9.518s with 0.9
I don't know what they do, instead of fixing performance issue, they make it worse...

@RUSshy did you have the time to test the new Beta release 1.3.x?

My results are (on Linux):
v0.9
real    0m5,452s
user    0m5,452s
sys     0m0,000s
v1.3.10
real    0m5,549s
user    0m5,545s
sys     0m0,004s
No performance improvements yet.

My results:
Source compile from master repo (5 Jan 2019)
Build Kotlin/Native infrastructure took about an hour
macOS Mojave on Macbook Pro Early 2015 (2.7 GHz Intel Core i5)
Has to update the code from:
srand(time(null).toInt())
to:
srand(time(null).toUInt())
to fix the error.
With Optimization flag (Worse?) took 26 seconds to compile:
real	0m8.931s
user	0m8.828s
sys	0m0.066s
Used 21MB+ memory
Without Optimization flag took 18 seconds to compile:
real	0m12.211s
user	0m12.116s
sys	0m0.047s
Used 10MB+ memory
You read it right, optimization flag version consumes more memory.

@proyb6 hmm, but we don't compare compilation times here.

Well, it’s not for the benchmark but for curious readers.

@proyb6

You read it right, optimization flag version consumes more memory.

There is nothing unusual that optimization process during compilation consumes more time and memory. This is the case for all compilers I know. The trade-off here is that the longer compilation time pays off with the faster run time of the resulting executable.

I understand especially coming from Swift, Crystal, Rust and etc

I see I was referring to the memory usage when the program is run which use 21MB (optimization build), not the compilation part. Thank for your time to reply.

Ah, I see now! I think, I was misguided by "(Worse?)" comment.
Yeah, the overall trend to significant performance degradation is definitely not what I had expected with newer compiler releases.

For those still interested in Kotlin/Native, I've see this commit that was really promising, so I tested the latest available release. It seems like there was a drastic performance improvement.
Best of 3 runs
v0.8
real    0m6,593s
user    0m6,586s
sys     0m0,008s

v1.3.50 - EAP
real    0m3,561s
user    0m3,553s
sys     0m0,008s

Nice, this looks promising for the future!
now they need:

keep improving

improve compile time

add value type

Then we get perfect native language

@barsan-md Thanks for the update! I will get the benchmark re-run in near future.

kotlin 1.4 :
Performance improvements
We’re continuously working to improve the overall performance of Kotlin/Native compilation and execution. In 1.4-M1, we offer you the new object allocator that works up to two times faster on some benchmarks. Currently, the new allocator is experimental and is not used by default; you can switch to it using the -Xallocator=mimalloc compiler option.
🤔🤔🤔

FYI, I have re-run the benchmark on the same laptop I originally used with the latest released compilers (Kotlin Native 1.3.71). Most of the results got some subtle improvements. JVM (13 vs 8) got something like 10%-15% slower, so Kotlin JVM followed Java, but Kotlin Native (0.7 -> 1.3.71) improved from 5.88 seconds to 3.08 seconds! They are moving in the right direction, though it is going to be a long way :smile:


fix(types): output plugin typings

closes #3365

change protractor plugins to an interface; however, more direction is needed for:
addSuccess: ({specName: 'hello world'})

@sjelin will need input for above ^^

Should be good with some minor doc fixes

LGTM


Build failing libgnutls:x64-windows

config-x64-windows-dbg-out.log
config-x64-windows-dbg-err.log
Below is the command output prior to the failure:
Starting package 11/11: libgnutls:x64-windows
Building package libgnutls[core]:x64-windows...
-- Downloading https://www.gnupg.org/ftp/gcrypt/gnutls/v3.6/gnutls-3.6.15.tar.xz -> gnutls-3.6.15.tar.xz...
-- Extracting source C:/vcpkg/downloads/gnutls-3.6.15.tar.xz
-- Using source at C:/vcpkg/buildtrees/libgnutls/src/3.6.15-4050d06d46.clean
-- Found external ninja('1.10.2').
-- Configuring x64-windows
-- Using msys root at C:/vcpkg/downloads/tools/msys2/703e5aa15d402568
-- Using msys root at C:/vcpkg/downloads/tools/msys2/aa5af7b2aa7e90e8
-- Configuring x64-windows-dbg
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:105 (message):
Command failed: C:/vcpkg/downloads/tools/msys2/703e5aa15d402568/usr/bin/bash.exe --noprofile --norc --debug -c "V=1 CPP='cl.exe -E' CC='cl.exe' CC_FOR_BUILD='cl.exe' CXX='cl.exe' AR='lib.exe' LD='link.exe -verbose' RANLIB=':' STRIP=':' NM='dumpbin.exe -symbols -headers' DLLTOOL='link.exe -verbose -dll' CCAS=':' AS=':' ./../src/3.6.15-4050d06d46.clean/configure  --disable-doc --disable-silent-rules --disable-tests --disable-maintainer-mode --disable-rpath --disable-libdane --with-included-unistring --without-p11-kit --without-tpm LDFLAGS= ac_cv_prog_ac_ct_STRIP=: gl_cv_double_slash_root=yes ac_cv_func_memmove=yes --disable-silent-rules --verbose --enable-shared --disable-static --prefix=/C/vcpkg/installed/x64-windows/debug --bindir='${prefix}'/../tools/libgnutls/debug/bin --sbindir='${prefix}'/../tools/libgnutls/debug/sbin --includedir='${prefix}'/../include --datarootdir='${prefix}'/share/libgnutls"
Working Directory: C:/vcpkg/buildtrees/libgnutls/x64-windows-dbg
Error code: 1
See logs for more information:
C:\vcpkg\buildtrees\libgnutls\config-x64-windows-dbg-out.log
C:\vcpkg\buildtrees\libgnutls\config-x64-windows-dbg-err.log
Call Stack (most recent call first):
scripts/cmake/vcpkg_configure_make.cmake:807 (vcpkg_execute_required_process)
ports/libgnutls/portfile.cmake:27 (vcpkg_configure_make)
scripts/ports.cmake:139 (include)
Error: Building package libgnutls:x64-windows failed with: BUILD_FAILED
Please ensure you're using the latest portfiles with .\vcpkg update, then
submit an issue at https://github.com/Microsoft/vcpkg/issues including:
Package: libgnutls:x64-windows
Vcpkg version: 2021-05-05-e8977e69d9a3fb462d9ad42013d83a7682706659
Additionally, attach any relevant sections from the log files above.

configure: WARNING: Compiler does not support C99. It may not be able to compile the project.
configure: error:
  ***
  *** Libhogweed (nettle's companion library) 3.4.1 was not found. Note that you must compile nettle with gmp support.

cc @dg0yt  @jgehw @emptyVoid

That's due to nettle doesn't install hogweed library.

Duplicated to #18395.


[CON-201] Odd results when editing with multiple files selected

Describe the bug
Multi-file edits give poor results
To Reproduce
Select multiple ranges across files, then choose one to edit, and request an edit.
Expected behavior
Should have the same quality edits as when only referencing a single range.
CON-201

@sestinj The weird edit are not event across multiple files (I am unable to get those working as well) - they are within the same file but having multiple selections within that file.
I will start capturing examples to beef up this issue if that's ok. Screenshots? Textual descriptions? what works best?

That sounds great. I think screenshots would be easiest, and convey all the needed info

Hi @yoadsn, just wanted to check in on this issue. Has it continued to be a problem?

Hi Nate, sorry - I kinda moved on to use Cody for now.
I am still reverting to use Continue once in a while to track progress but
found the Cody understanding of the codebase very important for large repos
(which I am working on atm).
Thanks! We can probably close this since many things have changed since I
stumbled upon that.
On Mon, Sep 25, 2023 at 11:35 PM Nate Sesti @.***>
wrote:

Hi @yoadsn https://github.com/yoadsn, just wanted to check in on this
issue. Has it continued to be a problem?
—
Reply to this email directly, view it on GitHub
https://github.com/continuedev/continue/issues/375#issuecomment-1734425696,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAM3JZNASDPBQANM3LUFSBDX4HTJXANCNFSM6AAAAAA3QDLCEQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
• Yoad Snapir •

Thanks for your honest feedback, this is very understandable. We are currently working on codebase understanding features, so perhaps I'll reach back out once we have a solid feature to share there : )
I am curious also, what types of questions do you find it most useful to ask with full codebase understanding? For example, quickly finding files, asking about high-level architecture, learning new parts of the codebase, etc...

Sure! I am looking into a use case where the repo is too big to recall where things are implemented from memory. This includes for example question about where a dependency is used in some way, following a deep call chain, looking for duplicate code (but not exact copies) and so on.
Also, asking the assistant to build code in light of another part of the codebase is useful with such wider view (like a refactor of a function out of a module and generating a generic version of it).
Asking questions about the entire repo could be useful in unknown repos where a dev wants to get in the details quickly or find a specific place a bug could reside in - I did that as well a couple of times with repos which are not owned by me.
I have looked at Cursor as well - but I feel it is behind what Sourcegraph did with the repo-wide understanding.

Thanks for sharing this. These give good benchmarks to check against as we measure our capabilities. I hope to be in touch soon with some exciting updates : )
Cheers!


The '~/.orbstack/ssh/config' file can cause errors when running the git pull command.

Describe the bug
when i execute git pull，
the errors:
/Users/myname/.orbstack/ssh/config line 14: garbage at end of line; "#".
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
To Reproduce
No response
Expected behavior
No response
Diagnostic report (required)
OrbStack info:
Version: 0.15.1 (150100)
Commit: d9dbc033855331b22ecd7fb67da89b9ca5fa9d0f (v0.15.1)
System info:
macOS: 13.5 (22G74)
CPU: amd64, 8 cores
CPU model: Intel(R) Core(TM) i5-8257U CPU @ 1.40GHz
Full report: https://orbstack.dev/_admin/diag/orbstack-diagreport_2023-08-08T08-00-26.942315Z.zip

Screenshots and additional context (optional)
No response

Released in v0.16.0.


bug(material/chips): Focus state for input chips has insufficient text contrast

Is this a regression?

[ ] Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was
No response
Description
Focus states for input chips have insufficient contrast.

Reproduction
Steps to reproduce:

Navigate to Chips with input demo on https://material.angular.io/components/chips/overview#chips-autocomplete
("Favorite Fruits" appears with "lemon", "lime", "etc")
Tab into the "Favorite Fruits" input

Expected Behavior
"Favor Fruits" input is focused and cursor appears. Contrast ratio of label expected to be 4.5:1 or highter
Actual Behavior
Cursor appears to be focus, but label contrast ratio is 3.92:1. See screenshots.
Environment
N/A

Action item is to set opacity to 0 on the .mat-mdc-form-field-focus-overlay for input chips. That will make the text easier to read and align closer to Material Design specification.

As of version 17.3.1 mat-label is passing color contrast requirements


Repo sync for protected CLA branch

The pull request is created from master637623974602137405 to master to fix git push error for protected CLA branch

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


Update HOST -> HOST_NAME environment variable across docs and Compose files

(See https://github.com/ietf-tools/bibxml-service/issues/308)

@stefanomunarini I guess we close this without merging? Can’t remember if the change got applied in the end though

I am okay with merging this (after a rebase), however as Kesara pointed out here, it seems like IETF had some issue with having HOST instead of HOST_NAME. Perhaps we should leave it as it is?
For reference: the fix to this issue is to update the .env file to replace HOST_NAME with HOST.

@strogonoff  I'm going to close this PR (see my previous comment for the reason). Feel free to reopen it if you think it should be the case


ignore _book and _bookdown_files

Optimistic this will finally work this time

My optimism was misplaced! But I may have eventually gotten it? Will try a new PR shortly to confirm.


add mechanism to read previously rendered manifests during rendering

This will make it easier to consume input from previous steps to do things like read featuregates.
/hold
holding for proof in cluster-config-operator.

/lgtm

/hold cancel


You don't use username for login

What's wrong with logging in with email?

When you create an account it gets tagged with user-name for auto-fill.  You can tell the browser to forget and overwrite, but you shouldn't need to.

Please make the autofill use email

this is lower priority than small group issues (ATM)

Is this issue resolved? It appears to be from what I see.

Yes this is resolved


Serial ID Feature

Yo
Is there a way to make an ID column work serially (auto incrementing with every record) instead of the uuid format made? Kind of something like below but idk how the person who took the screenshot did it:

No, we don't have autoincrement at the moment.


Feat: "BEST LAPTOP FOR STUDENTS"data scrap from 'flipkart'

Describe the feature
as we know that laptop become the necessity of students . like every thing move to online for that students are new to purchase a laptop they must want a data which one is the best laptop with best features. for that the SCARPING OF LAPTOP DATA from flipkart must help to all the students or any one for selecting the best one for them.
data contain 👍 ;

product name
prize
reviews
description
*try and catch method is flowed for scraping.

Add ScreenShots

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC 23 contributor
[X] I want to work on this issue

@nikhil25803 have a look!!!!!!!!!!!!!!1

Go ahead @Sushilverma002
Note

Create a separate module for this, as per the folder and project structure
Work on one method at first, like a method to fetch all the laptops only(no keywords like student, professional, etc).
Do not use Selenium Chrome Web Driver, they are not compatible with the packages,


Is this a normal phenomenon?

My 1.17.1 fabric server may let player‘s client get stuck.
I tried to use spark .
Here is the result.
https://spark.lucko.me/RQ4qMXBwqM

to conserve vanilla parity the game will always run at the pace of the slowest dimension.
this means if one dim is significantly slower than the others the 2 other threads spend alot of time waiting.

may let player‘s client get stuck
mind explaining what you mean here?
i cant make any sense of this
dimthread is a server-mod so i dont see how a client would get "stuck"


Integ tests: implement FSx Lustre tests

Test FSx Lustre correctly mounted on master node
Test FSx Lustre correctly mounted on compute nodes
Test ImportPath
Test ExportPath

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

LGTM, just one small comment then 🚀


UNION method

Hello!
How to do MySQL UNION via the QB?
I could not get result when used QB::raw.

Can you post the code you've been trying?


[BUG] Streaming video error

Description
When streaming video I got a message:
[4/9/2022, 10:32:32 PM] [Simplisafe] Unable to spawn ffmpeg process at undefined with error: TypeError: The "file” argument must be of type string. Received undefined:
new NodeError (node: internal/errors:371:5) at
validateString (node: internal/validators:120:11)
normalizeSpawnArguments (node:child process:505:3)
spawn (node:child process:693:13) at
StreamingDelegate.handleStreamRequest(/usr/lib/nodemodules/homebridge-simplisafe3/lit/streamingDelegate.js:372:48)
code:
'ERR INVALID ARG TYPE’

Sorry for the bad copy & paste as it is really hard to do it in iPad.
I have this video encoding setting which worked before:
-vcodec h264_v4l2m2m
Expected behavior
Streaming should work.
Steps to reproduce

Start video streaming in Home App.
Check the Homebridge log.

Homebridge logs
[4/9/2022, 10:32:32 PM] [Simplisafe] Unable to spawn ffmpeg process at undefined with error: TypeError: The "file” argument must be of type string. Received undefined:
new NodeError (node: internal/errors:371:5) at
validateString (node: internal/validators:120:11)
normalizeSpawnArguments (node:child process:505:3)
spawn (node:child process:693:13) at
StreamingDelegate.handleStreamRequest(/usr/lib/nodemodules/homebridge-simplisafe3/lit/streamingDelegate.js:372:48)
code:
'ERR INVALID ARG TYPE’

Homebridge config.json contents
n/a

Screenshots
No response
Plugin version
latest
Homebridge version
latest
Node.js version
latest
Host OS
Ubuntu

Same as https://github.com/homebridge-simplisafe3/homebridge-simplisafe3/issues/332 I would guess that ffmpeg is not installed. Please try reinstalling things and/ or verifying the install

Hey, can you update to v1.10.3, I believe that will fix this issue, one of the plugin dependencies had a bug in it.

It is working now once I upgraded. Thanks.
Sent from my iPhone

On 15 Apr 2022, at 00:42, shamoon @.***> wrote:

Hey, can you update to v1.10.3, I believe that will fix this issue, one of the plugin dependencies had a bug in it.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.


Modifiers don't work on the Media Accelerators

I'm trying to listen to the media accelerators (VolumeXX, MediaXX) with modifiers on Yosemite with global-shortcut in the latest Electron (0.36.5) but all the accelerators triggered like no modifiers were used. Tried them on a minimal workable example too, with the same effect.

The global shortcuts will only work when they are not taken by other applications, on OS X  the media keys are preserved by OS X itself, so there is no way to register global shortcuts for them.

Sorry to say, but you're wrong...
I'm already using MediaNextTrack, MediaPreviousTrack and MediaPlayPause without modifier successfully.
The volume controls without the modifiers work aswell, but I don't want to overrule the system volume controls.
I want to use the modifiers with the volume controls, so i can set the app and the system volume, (e.g.: Ctrl+VolumeXX for the app and VolumeXX are still available for the system volume controls)

Sorry I didn't notice you were using modifiers.
It is interesting that on EL Capitan, registering media key with modifiers has completely no effect.

After some experiments I think this is a limitation of OS X, I'll add documentation for it.

Okay, thanks anyway :+1:


[Core] Refactor define_graph_api

The current signature of define_graph_api is weird and leads to pep8 warnings in all agents because we pass through arbitrary other args. Splitting the list of subcomponents also seems suboptimal,
maybe we should pass them as a dict and look them up where needed. Long lines like
        preprocessor, merger, memory, splitter, policy, exploration, loss_function, optimizer, value_function, \
            vf_optimizer = sub_components

should be avoided.

The define_graph_api method signature is now generic via *args, **kwargs and all superfluous code has been removed.


Davros responds with unexpected gzipped response

When I make a request to Davros's WebDAV endpoint with curl or a browser, I get garbage back. It turns out that there are possibly two separate problems here.

With curl, the request does not have an Accept-Encoding header, but the response has Content-Encoding: gzip
With Firefox, the request has Accept-Encoding: gzip, deflate, br, but there is no Content-Encoding response header.

However, in both cases gzipped data is returned, and the client is confused. (In another client, there's no trouble, but it might be cueing off the response headers alone.)
This may or may not be related to https://github.com/sandstorm-io/sandstorm/issues/2691

Based on the discussion in https://github.com/sandstorm-io/sandstorm/issues/2691, this looks like it was fixed there. Feel free to reopen if that is not the case.

I think I just hit this or something very related when troubleshooting a 403 Forbidden response from an app I'm working on, re: request in Firefox had the Accept-Encoding, but the response did not have a Content-Encoding header.


Links not working

These links are down

Readme: https://docker-deployment-yudfxfiaja.now.sh/api
Project boards

https://trello.com/b/ZaoptKVB/frontend
https://trello.com/b/PXJVd0EG/core

please fix them

Thanks SeiousM
Projects boards links are now public but you will need an invitation to gain an edit permission.
Frontend

https://trello.com/b/ZaoptKVB/frontend
core
https://trello.com/b/PXJVd0EG/core
architecture / infrastructure
https://trello.com/b/zULJQVkP/server
use cases
https://trello.com/b/3eK3to9m/biphub-use-cases

Readme: https://docker-deployment-yudfxfiaja.now.sh/api
I don't actually have control on this link because it's owned by @serri588. I am going to host a new version of it this week.

There is a how-to guide about setting up development environment in Docker here https://github.com/Biphub/BipHub/wiki/Setting-up-development-environment

Closing issue as

Sorry, reopening because the website issue has not been resolved yet.


Fatal error in the log - Hacking attempt?

Hello, I am receiving this fatal error in the log quite often:
'''
[2021-02-09 22:11:42] default.ALERT: Fatal Error (E_ERROR): Uncaught Exception: Csrf token not valid in [2021-02-09 22:11:42] default.ALERT: Fatal Error (E_ERROR): Uncaught Exception: Csrf token not valid in /var/www/mainsite/backend/Services/Security/Security.php:46 Stack trace: #0 /var/www/mainsite/backend/App.php(33): Filegator\Services\Security\Security->init(Array) #1 /var/www/mainsite/dist/index.php(53): Filegator\App->__construct(Object(Filegator\Config\Config), Object(Filegator\Kernel\Request), Object(Filegator\Kernel\Response), Object(Filegator\Kernel\StreamedResponse), Object(Filegator\Container\Container)) #2 {main}   thrown {"code":1,"message":"Uncaught Exception: Csrf token not valid in /var/www/mainsite/backend/Services/Security/Security.php:46\nStack trace:\n#0 /var/www/mainsite/backend/App.php(33): Filegator\Services\Security\Security->init(Array)\n#1 /var/www/mainsite/dist/index.php(53): Filegator\App->__construct(Object(Filegator\Config\Config), Object(Filegator\Kernel\Request), Object(Filegator\Kernel\Response), Object(Filegator\Kernel\StreamedResponse), Object(Filegator\Container\Container))\n#2 {main}\n  thrown","file":"/var/www/mainsite/backend/Services/Security/Security.php","line":46,"trace":null} []
'''
Is this a hacking attempt? Something to worry about? TIA

Visiting the site with cookies disabled can cause this kind of errors. Also, someone might be probing, scanning or scraping your website. I see this all the time on my websites.

I see, OK then. Although the logs are getting quite big with this long error each time. Indeed the scanning/scraping. Thank you.

I totally agree, this is really huge. The next version will show this as a single line in the log.
Thanks!

That's great, thank you once again!


fix(map-nav-3): supports consistent focus + reduced animations

Summary
Fixes the national park Calcite + Maps SDK sample, where:

Focus follows the user interactions between the results list (calcite-list) and the popup
Supports reduced animations

Also, includes focus color for the popup using the --calcite-ui-focus-color variable.

Pushing this PR through to get it updated on the site. 🚀
cc: @bsvensson


Update starters URL in Design Systems guide

The previous URL is pointing to the archived repository.

Thanks!


Add IP address to UserAccountEvent

Ideally, the IP address (and, possibly other information from the request) would be available when handling events.
The use case is auditing: We have access to the account information, but, while handling an event I don't see a way to access the IP address. Using HttpContext.Current might work, but I haven't tried it -- it's not an ideal solution anyhow...
Would this unnecessarily bloat the events? Should this use case be accomplished a different way?

Hmm, yea... I think this would require a change to how the events are deigned -- they'd need to be injected/instantiated on every request. You could, of course, change the Di system to create them on every request when you provide the MR Config.

The only issue I see with relying on HttpContext.Current is two folds:

When you are not using the MembershipReboot system on a web application
When you are working within the Owin context, and HttpContext.Current is unavailable.

Would it be more advisable to create some sort of interface, so that the SystemWeb package gets the ability to ping HttpContext.Current, the Owin package gets to play within the IOwinContext as necessary, and outside of those two mainstream use-cases, I think that the developer should be responsible for implementing the required interface to resolve the pertinent information that matches their scenario (or default to empty/nulls as necessary)

For OWIN there's a non-System.Web implementation (see: the MembershipReboot.Owin project).

All set with this issue?

I'm good with closing for now. Thanks!


sharutils: 4.11.1 -> 4.15.2

Motivation for this change
Update
Things done

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

[x] NixOS
[ ] macOS
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Have not tested through nox-review

Quite a big rebuild via sharutils -> libarchive -> cmake.

Yeah I couldnt see if it was or not; I knew it might be, but couldn't test
because nox-review was having fits
On Fri, Mar 24, 2017 at 9:35 PM, Joachim F<EMAIL_ADDRESS>wrote:

Quite a big rebuild via sharutils -> libarchive -> cmake.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/NixOS/nixpkgs/pull/24305#issuecomment-289182757, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAHL72ls4DlVbovhmLIL68UsYF2QkLi4ks5rpH15gaJpZM4Mo0BX
.