feat: add Ollama component

Because
We want to integrate Ollama client into our VDP pipeline platform.
This commit
Added the Ollama Component, which supports the following tasks:  TASK_TEXT_GENERATION_CHAT, TASK_TEXT_EMBEDDINGS

Note on endpoint:
Since the pipeline backend server runs in the container, thus we can't access "localhost:11434" without port forwarding, which requires changing the dockerfile in pipeline-backend.
Alternatively, we can change the hosting port to "<IP_ADDRESS>" from this tutorial

Then find the local address with command hostname -I on linux.

In this scenario, the Ollama endpoint will be http://<IP_ADDRESS>:11434.

@chuang8511 I left comments on the two unresolved conversations, please review it if you have spare time.

@namwoam Thanks for your contribution! I left some comments. Please take a look.
And a question for @donch1989 , do we hide it in instill-cloud given it cannot be used in instill-cloud. right? If so, do we currently have an existing way?

It the Ollama server use a public address, I think it should be fine?

memo.
Users should deploy their own Ollama server, and set their own endpoint in setup.json

memo
https://github.com/ollama/ollama/issues/849 related issue.

@namwoam
I did not notice it. Thanks @donch1989's remind.
For the Instill-Cloud users, we will need to add auth in VDP ollama client. (e.g. Basic Auth)
We have discussed with product team, and our decision will be like this.

Release Ollama on Instill Cloud without any auth protection for now, and add some basic authentication settings in the next sprint. This means users would need to follow our authentication protocol when deploying their server.

So, for this PR, could you add the security warning in the document?
e.g. In endpoint section or using injection to add the content like, for Instill-Cloud users, we do not have API auth protection yet.....
Thank you in advance!

I've added the security warning in the document.


Privacy mitigations for identifiers

Discussion with a reader from another WG suggested that the document might gather some of the possible mitigations for identifier privacy leaks under a new subhead in the mitigations section.
e.g.: aggregation, obfuscation, reduced granularity, differential privacy, statistical reporting, identifier rotation, randomization, delegation to a trusted party or component and then stripping the identifier, finding a non-identifier way to solve the problem.

Differential privacy applied for web features? That would sound interesting. I wonder how practical, though :)
The way it "works" now is by linking to example of past similar issues (i.e. like with the gyroscope/accelerometer), but indeed no devoted section. It seems some current example (+maybe new, including ambient light sensors) could be reused here too. But I'm still speaking of a quasi-continuous sensor-like API.

Re discussion about entropy, device identifier identifiability, and storage areas:
I suggest setting aside for now the specifics of the argument, and just thinking of the issue / ask to reduce the identifiability of device ids as an application of the principal "whenever there is a more private option, that is at least as functional to users, always prefer the more privacy-protecting option".  That seems to be the case here, regardless of whether the privacy improvement is small or large

closing this since theres been no new discussion, but please reopen if others disagree


Old combos still linger (in memory?)

When doing some testing for my initial bug reporting, things got stranger and more confusing. I hope this confusing is not showing too much in this report.
This bug report seems to only affect my original 4 combos that I have set-up. They use triggers of this type: "..sig". I use the copy and paste method.
I expect that the Combo expands to the Snippet. The snippets are either an English sentence or a paragraph.
Initially, I noticed that the combo seemed to get substituted twice, with the length of the keyword being cut from the first substitution. (i.e. "This is the snippThis is the snippet.")
Then for testing I have created a new Combo called "Test".
Group: Default Group
Matching strict
Keyword: ..test
Snippet: This is a test.
Writing: 12345678 ..test
Expecting: 12345678 This is a test.
Actual output: 12345678 This is a test.
As you can see, that one does not show the double substitution problem (although it also sometimes replaces the keyword with nothing at all).
Here are the steps I have taken so far:

Exit Beeftext

Edited comboList.json (for the first time - the bug existed before I touched the file) in Notepad++, changing just the snippet text to remove personal information.

Started Beeftext

Used the keyword "..sig"
EXPECTED: <My new signature>
ACTUAL: <My new signature><My old signature>

The comboList.json file does not contain My old signature anymore. Where is the text coming from?
Operating system
Beeftext 1.8
Windows 10

Hi @SevenD7D.
A Quick test: Exit beeftext, and type ..sig
My idea is that you may have another text expansion program still installed and running without your knowledge? (Text Expander, Phrase Express...).
Because that's the only reason I see the old signature still popping up after being removed from the comboList.json file.

Hello,
You are absolutely right. DOH! After a restart Texter started up again.
And I just finished installing Visual Studio to go bug hunting.

Thank you so much for this excellent program!

Thank you, @SevenD7D
Don't worry, you're not the first experiencing this issue ;)


X-Ray for a lambda function

Hi there,
I have some lambda functions written in Go 1.20 and aws-sdk-go-v2 to interact with services like Cognito, SQS, StepFunctions, among others. I am using SAM to deploy the functions, so I activate the tracing and with it, I can see API Gateway and Lambda in the X-Ray service map and also the transactions, but I cannot see the other AWS services. I've been researching and trying to add X-Ray to AWS service clients, but haven't succeeded yet.
Should I use the xray module in aws-sdk-go-v2 or should I use github.com/aws/aws-xray-sdk-go?
The following is an example of what I am trying to do:
import (
        "context"
        cognito "github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider"
       "github.com/aws/aws-xray-sdk-go/xray"
    )

    func GetClient() {
    ...
    cfg, errCfg := config.LoadDefaultConfig(context.TODO())
    client := cognito.NewFromConfig(cfg)

    // the next line is not valid, because the function receives a *client.Client as a parameter
    // and my current client is of type *cognito.Client
    // the error is: cannot use client (variable of type *cognitoidentityprovider.Client) as *"github.com/aws/aws-sdk-go/aws/client".Client value in argument to xray.AWS
    xray.AWS(client)
    ...
    }

I really appreciate your support on this.

There is an example of instrumentation AWS SDK V2 (seems to be your case) in the README. Have you tried it?
cfg, _ := config.LoadDefaultConfig(ctx)

// instrument AWS SDK v2
awsv2.AWSV2Instrumentor(&cfg.APIOptions)

// use instumented Config to setup other AWS SDK v2 clients
...


Event end times not displayed

On event pages, the start time of an event is displayed, but the end time is omitted, hidden, not displayed, missing.

Anyone can see this on any event page, in any browser: https://opencollective.com/opensource/events/london-meetup , https://opencollective.com/veganbrussels/events/oscar-event , https://opencollective.com/open-toronto-school/events/livestream-saturday-40271ev (Why does that last one have a crazy suffix?)
The expected behaviour is for end times to be displayed correctly.
(Additional context: This is the first real thing I have tried to do using OpenCollective. First day bug hunt? Maybe a challenge for onboarding non-technical people...)
Please help me find where this bug is hiding so I/we can fix it. :) Thanks!

Bug research update:
It looks like the server is sending the start time twice to the frontend?
This is what the page looks like on cold-cache reload in the moment before it cleans itself up to look like the screenshot above in the original bug report.

React chrome devtools shows the frontend has the start time value twice, and the end time value is MIA.

I think I found where the change should be made: https://github.com/opencollective/opencollective-frontend/blob/839bba062436f20414ce8a3a8724e040353b9b81/src/components/CollectiveCover.js#L59
Any guidance welcome!

Running the dev server on my local machine, it looks like a simple enough fix:
        {props.collective.startsAt && (
          <React.Fragment>
            <FormattedDate
              value={props.collective.startsAt}
              timeZone={props.collective.timezone}
              weekday="short"
              day="numeric"
              month="long"
            />
            ,
            <FormattedTime value={props.collective.startsAt} timeZone={props.collective.timezone} />
              -
          </React.Fragment>
        )}
        {props.collective.endsAt && (
          <React.Fragment>
            <FormattedDate
              value={props.collective.endsAt}
              timeZone={props.collective.timezone}
              weekday="short"
              day="numeric"
              month="long"
            />
            ,
            <FormattedTime value={props.collective.endsAt} timeZone={props.collective.timezone} />
              -
          </React.Fragment>
        )}
        {get(props.collective, 'location.name')}

I have made a pull request: https://github.com/opencollective/opencollective-frontend/pull/1709
Please advise! :) Thanks!

"All checks have passed"! :)
Looking forward to seeing this get merged soon! Thanks!

Resolved by https://github.com/opencollective/opencollective-frontend/pull/1709
Thanks for contributing on this one @over9001! We'll deploy it today or in the next few days.
I've invited you to the https://github.com/orgs/opencollective/teams/developers group, next time you'll be able to commit directly on the main repository :slightly_smiling_face:


Shotcontroller updates

The shot controller can be improved:

[x] always assure 1.5 seconds of time for the geneva to turn.
[x] compensate positioning more for geneva: now it always kicks the ball on the exact middle of the dribbler, but when the geneva is turned its better to kick the ball from the side of the dribbler. This can be done by altering isOnLineToBall and MoveStraightToBall.
[x] Add a setting where geneva can be turned on/off for certain robot ID's, meaning they can be turned off in the case of malfunction

fixed in #371 and #368


simpler custom rules import

is it possible to make creating multiple custom rules simpler.
I want to make about 50-100 rules to my project, and creating those files and adding reference going to be hard task

You could use the rulesDir option to auto import a directory of rules.

i have problem with that,
if i mention rule in rulesDir option it works, but if i just create file it doesnt seems to work.
is it neccessary for rule to be mentioned in options to work or im missing something ?

Sorry I'm not sure I follow you, could you share some code or something that reproduces your problem? Thanks!

i have options
      {
        loader: 'htmlhint-loader',
        exclude: /node_modules/,
        options: {
          rulesDir: 'rules/',
          'my-new-rule': 'this is pass to the rule (option)'
        }
      }

and in in rule folder i have rules:
/myNewRule.js
/testRule.js
myNewRule works, testRule doesnt.
if i add
'test-rule': 'this is pass to the rule (option)'
it will work.

i read docs wrong,
added my rule to .htmlhintrc and it worked


Most Recent Commit (09/05/2021) causing AC to be "Unavailable"

Hey there! After installing this integration and playing around I found that the most recent commit 306ea32ee59fc0aef4fa9f7e7d889b0e5e76b9e0 will discover my AC units, but will list them as "Unavailable" in Home Assistant. I instead checked out an earlier commit 84a91c585f6bd89171c2d0be3b1f30d3c2d19f50 and it's working fine. Just wanted to give a heads up.

@attempted I'm not near my laptop, but if you can put up a fix in a PR I'd be happy to approve/merge it!

Sorry guys, I probably messed the unavailable stuff up. I'll take a peek
unless someone gets to it first.
On Mon, Sep 13, 2021 at 4:49 PM Brian Marks @.***>
wrote:

@attempted https://github.com/attempted I'm not near my laptop, but if
you can put up a fix in a PR I'd be happy to approve/merge it!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/bm1549/home-assistant-frigidaire/issues/13#issuecomment-918564562,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AABNV7IXCUEIRC2Q6QP7IG3UBZPWLANCNFSM5D6UPHSQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Just cloned the repo and can confirm that it is working correctly now.  Thanks.

Fixed in #14


Feature Request: Always-visible creature and land counts while drafting

It takes unnecessary effort to constantly have to click on the little pie chart icon to see how many creatures you've drafted at any given time. It would be fantastic to have a live count of your creatures (probably right next to the pie chart icon). Lands are less important, but still worth having a live count of too, I think.
Thanks!

I was just working on adding some headers to the Two-Rows displaying the creature count:

Maybe this is enough?
About the land count, I guess lands are alone in the first column most of the time, so you pretty much always have the land count there (or close enough).

This is definitely an improvement! However, I think less savvy users would not see it very often due to the two-rows setting being off by default, and even if it's on, the actual count number is not in the place I'd expect. I still think a better spot (possibly in addition to what you show there) would be right up next to the pie chart icon.

Fair enough, I'll see if I can come up with something more elegant, but worse case scenario this will be in the next update:


Add resourcePrefix to Android modules

WHAT
Set resourcePrefix in the Android library modules of the project - unpublished modules and modules for sample apps are not needed.
WHY
Avoid naming collisions with similar resources that the consumer defines.
HOW

Add resourcePrefix = "horologist_" to build.gradle.kts;
Fix resource names;

Could this break translations?

Can I pick this up to work or contribute to?

@RotBolt that would be great!

I will get started this weekend

I think we have this

We only have this for newer modules. But happy to close it as low priority.


numerical error in Bayesian NN with HMC

Hi,
I followed the Turing tutorial of Bayesian Neural Networks to implement a Bayesian Neural Network for prediction problem. In my BNN, the input layer contains a number of L0 nodes, then there are L1 nodes in the 1st hidden layer, L2 nodes in the 2nd hidden layer, and one node in output layer. The number of individuals in my data is about n=500
I got the numerical error in every iteration when the number of unknows are huge (i.e., too many input nodes; too many hidden nodes). See below table:

L0
L1
L2

15,000
2
2
worked

15,000
20
10
numerical error

20,000
2
2
numerical error

My BNN model is BNN with unknow variance components:
@model bayes_nn(x, y, L0, L1, L2) = begin
    v=4
    s=(v-2)/v
    # hyper-parameter
    varw0 ~ InverseGamma(v/2, v*s/2)  # = scale-inv-chisq(v,s)
    varw1 ~ InverseGamma(v/2, v*s/2)
    varw2 ~ InverseGamma(v/2, v*s/2)
    vare ~ InverseGamma(v/2, v*s/2)

    # weight&bias
    W0 ~ MvNormal(zeros(L0*L1), sqrt(varw0))
    b0 ~ MvNormal(zeros(L1), 1)
    W1 ~ MvNormal(zeros(L1*L2), sqrt(varw1))
    b1 ~ MvNormal(zeros(L2),1)
    W2 ~ MvNormal(zeros(L2), sqrt(varw2))
    b2 ~ Normal(0,1)

    # predictions
    preds = nn_forward(x, W0,b0,W1,b1,W2,b2,L0,L1,L2)   #1-by-n predicted value

    y ~ MvNormal(vec(preds), sqrt(vare))

end

The model is trained via:
ch = sample(bayes_nn(x_train, y_train,L0,L1,L2), HMC(0.1, 10), nIteration)

The error in every iteration is:
┌ Warning: The current proposal will be rejected due to numerical error(s).
│   isfinite.((θ, r, ℓπ, ℓκ)) = (true, false, false, false)
└ @ AdvancedHMC ~/.julia/packages/AdvancedHMC/MIxdK/src/hamiltonian.jl:47

I found a similar posts for numerical error, and the numerical error in this post was caused by the unstable sigmoid function.
So I guess the InverseGamma function used in my model is not numerically stable. So I fixed the hyper-parameter in my BNN as 1 to avoid using the InverseGamma function:
@model bayes_nn(x, y, L0, L1, L2) = begin

    # weight&bias
    W0 ~ MvNormal(zeros(L0*L1), 1)
    b0 ~ MvNormal(zeros(L1), 1)
    W1 ~ MvNormal(zeros(L1*L2), 1)
    b1 ~ MvNormal(zeros(L2),1)
    W2 ~ MvNormal(zeros(L2), 1)
    b2 ~ Normal(0,1)

    # predictions
    preds = nn_forward(x, W0,b0,W1,b1,W2,b2,L0,L1,L2)   #1-by-n predicted value

    y ~ MvNormal(vec(preds), 1)

end

I tested again and I don't have the numerical error! So it seems the  InverseGamma function is not numerically stable.
However, I still want to sample the variance component (i.e., hyperparameters) because I actually don't know the true values for them. Would you please tell me how to achieve this in Turing?
Thank you,
Tianjing

I haven't worked with BNN myself but my intuition would be to scale the variance with the number of hidden units since this is the "appropriate scaling" in the wide limit for recovering a Gaussian process (see, e.g., equation (6) in http://mlg.eng.cam.ac.uk/matthews/deepwide.pdf). I have mostly seen BNNs with fixed variance but maybe the scaling could resolve the instability that you observe.


Editor randomly crashes whilst working on plugin with GDScript.

Tested versions
v4.2.1.stable.mono.official [b09f793f5]
System information
Godot v4.2.1.stable.mono - Windows 10.0.19044 - Vulkan (Mobile) - integrated Intel(R) UHD Graphics 620 (Intel Corporation; <IP_ADDRESS>64) - Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz (8 Threads)
Issue description
I normally use c#. But for this plugin i decided to go with GDScript. But the editor seems to randomly crash without any errors.
I also tested it with the console version. The whole thing just crashes without displaying any errors.
Steps to reproduce
Its a plugin that is added as a child of a Sprite2D to cast a shadow for it. It reads its parents texture and displays it back as a shadow. There is also an autoload which i add when creating a custom type. This autoload is intended to control the shadow direction and distance etc. Use mono version.
Minimal reproduction project (MRP)
ShadowSprite2DPlugin.zip

I am using Godot v4.2.1.stable.mono - Windows 10.0.22621 - Vulkan (Mobile) - dedicated NVIDIA GeForce RTX 4090 (NVIDIA; <IP_ADDRESS>33) - 13th Gen Intel(R) Core(TM) i9-13900KS (32 Threads)
but your example project seems to work for me, is there something more than importing the project and having the autoload & plugin enabled?

I also tested it with the console version. The whole thing just crashes without displaying any errors.

A crash means that the game/editor closes with an error. Soft locks and other bugs are not considered crashes. Usually, when a crash occurs, a dump like this is printed:
handle_crash: Program crashed with signal 4
Engine version: Godot Engine v4.2.1.stable.official (b09f793f564a6c95dc76acc654b390e68441bd01)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] /lib/x86_64-linux-gnu/libc.so.6(+0x42910) [0x7fb4db442910] (??:0)
[2] /home/danil/.local/bin/godot4() [0x773273] (??:0)
[3] /home/danil/.local/bin/godot4() [0x66e342] (??:0)
...

Is something being printed in your case? Please describe in more detail how and when the bug appears.

Closing due to lack of response, if you provide the requested information this can be reopened


Declare InQuery Variables  #184

@ahmad-moussawi   Please when you have a chance at your best convenience take a look at the code and and the test classes at GeneralTest.cs in order to revise it to get a better feedback.  This is the code in regards to the issue #184.

@mota57 thank you, but actually, the purpose of this is to benefit from the builtin engine capabilities to the max, for example, this statement
new Query("Table")
  .WithVar("@date", DateTime.UtcNow)
  .Where("Date", "@date")

will get translated to the following in SQL Server:
DECLARE @date DATETIME = ?
SELECT * FROM [Table] WHERE [Date] = @date;

the same goes for MySQL and SQLite, the only exception is Postgres since it doesn't support variable declaration in queries scope. (I don't know what the case here for Oracle)
We can expand more on this in the original issue, so it may be easier to implement.

Oh ok no problem I understand

Tengo que describir cuales son las formas en las que se puede declarar una variable en cada uno de los lenguajes
Oracle
SQLite
Firebird

@ahmad-moussawi  this could work with MysQL and SQLServer without problem but SQLite doesn't have the feature of declaring variables.  With Oracle you have to use "Begin" and "End". I think I need help on this one


Add @ExtensionMethod support

Please add @ExtensionMethod support, it is soooo usefull together with libraries like commons-lang3 and guava.

+1
Would really love to see this in the IntelliJ plugin.

Agreed

Hey @mplushnikov,
Could you please pay a little bit of your attention on this feature? It's more than 2 y.o. and impact of it is huge.
Thanks!

+1
@ExtensionMethod hugely improves readability of complex manipulations, e.g. on strings - instead of local variables or very deep nesting we can have simple method call chain.

Just for the giggles and testing i added a 10 bounty :)
Maybe this will motivate the developer ^^

+1, this would be an awesome addition.

+1, Please add this feature to the plugin.

+1, please add this.

+1, this would be a fantastically useful feature. Tests would be so much cleaner!

@mplushnikov do you have any interest in bountysource? If so, please, set target value which you want to get for this issue :)

Is this feature so hard to implement or why did you not implement it yet?

@mplushnikov would love to implement this feature if you'll mentor me.

:+1:

+1 would be awesome

:+1:
@ExtensionMethod is a huge value addition to this plugin.

@mplushnikov, do you have any plans about @ExtensionMethod?

@mplushnikov, right now 3 of 7 Lombok experimental annotations (@Delegate, @Accessors, @Wither) are supported in your plugin.
Could you, please, give us some feedback about @ExtensionMethod support? Is it planned, is it possible/hard to implement, don't you like the idea, or do you wait till it moves out of Experimental?

Unfortunately at the moment it's not possible to add support for "@ExtensionMethod". IntelliJ does not provide extension points to be able to implement this function.

@mplushnikov I think we can push it ( how it was with val ). Can you describe which extension points do you need?

I wonder how Jetbrains handles Kotlin's extension functions in its plugin. Shouldn't this be possible somehow?

@Sheigutn extension methods exists in a few languages like Groovy, Kotlin and others. BUT in Lombok you have to modify the way how Java language is being handled - this is a reason why it's tricky. But guys from JB are always open for proposals and we just need to determine which API we need for extension methods

@bsideup So there's no feature request on youtrack yet?

we're trying to figure out required set of APIs first
On Fri, 6 Nov 2015 at 6:19 PM Florian<EMAIL_ADDRESS>wrote:

@bsideup https://github.com/bsideup So there's no feature request on
youtrack yet?
—
Reply to this email directly or view it on GitHub
https://github.com/mplushnikov/lombok-intellij-plugin/issues/21#issuecomment-154456345
.

Oka, thanks for the info :)

:+1:

Any progress on this issue? Any decision if it'll be done or not? If yes, any chances of having at least a rough estimate when it could be done?
I'm asking because after migrating from NetBeans to IntelliJ we've got a lot of code annotated with @ExtensionMethod, and I'm wondering whether we should refactor it (so that we don't see so much red text in the editor) or be patient...

I'm working now at better support for lombok configuration system (#53) and Builder updates (#192, #134). After it's done, I'll look more carefully on this issue. I promise!
Your bountysource program is very nice and motivating, thank you!

+1 :+1: Just discovered this feature and got all excited...

Thanks for your work. Added $100 bounty for this feature.

I've added a $25 bounty!

I've added a $5 bounty!

@mplushnikov could you please provide any status update?

I'll look into this myself, based on how kotlin does it.
Based on my usage in kotlin, It'll be really convenient, plus I want the bounty money.

This isn't working for 2016.3.

@m-manu this isn't working anywhere. We just hope that it'll be implemented

Hey @Techcable, how is it going?

@Techcable, @AlexejK, is there any reasonable chance that this will ever work, even basically? And by basically I mean: without autocomplete, refactoring support, or other "goodies". The only thing I really need it to do is not to flag extension method usages as compiler errors in the editor.
I ask because I'm on the verge of eradicating @ExtensionMethod from my codebase and giving up on them altogether rather than tolerating this red code indefinitely.

@tlinkowski  @bsideup
I looked into it, and it looked like it would be very very very hacky to do. I'm not very good with the IntellIJ API, and probably wouldn't be able to do it within a reasonable timeframe. As for my personal desire for @ExtensionMethod, I've mostly replaced my usage of lombok with kotlin, since it has first-class extension methods and zero-overhead lambdas/closures.

Have there been any changes in the IntellIJ API regarding the feasibility of this enhancement?

+1

+1

+1

1+

+1

+1

+1

Commenting with +1 will not solve this issue faster.
This issue should get relabelled as the kotlin plugin seems to be able to do similar stuff.
If not, one should link to the feature request on the jetbrains issue tracker so we can add our vote there.

+1

+1

+1
P.S. It won't probably solve the issue faster but it shows interest in its resolution.

The interest is obvious enough if you will take a look at votes for this issue. It's actually already most voted issue in a history of this project. What might help here however is adding some more bounty.

I am certainly willing to up the bounty, but the thing is, even with the demand here is high, the feature is still considered experimental in Lombok itself and its future is uncertain. If we support it in the plugin today, it might break tomorrow. Its probably better to start the discussion in the Lombok project first and get the feature out of its experimental status.

I got very sad seeing this ticket was created on 15 Dec 2013 since it doesn't project very well on probability of ever getting this huge feature :<

+1

+1

+1

An alternative is Manifold, which support "extension methods" and some other features.

+1

An alternative is Manifold, which support "extension methods" and some other features.
Also Manifold only works with IntelliJ, but not with eclipse. So it's not really of much help, either.

+1

An alternative is Manifold, which support "extension methods" and some other features.

Manifold is too complicated to use.

I still have hope that someone might be able to do this. +1 (again)

+1

+1

I'd like and it will be very interesting for me to work on that issue, but the bounty looks to be too small for me

I've added a few grains from me. @SaltOfTheFlame what bounty size do you expect to see?

+1

Donated 50 euro. Please add this feature 🙏. Thanks for your project.

+1

+1

+1

+1

+1

+10086

Hey @mplushnikov,
I've never patched an IntelliJ plugin before, but I'm willing to help. If you give-me a small overview I'd be glad to put some effort into this issue and send you PR.

Hey @mplushnikov,
I've never patched an IntelliJ plugin before, but I'm willing to help. If you give-me a small overview I'd be glad to put some effort into this issue and send you PR.

I'm glad to help too.

+1

+10086

Increased my bounty to $50. Worth noting that every few dollars adds up; hoping for some more monetary contributions to this particular issue, even if it's only $5 👍

@mplushnikov Is there any news on this one? Has the situation with the required APIs changed at all? And, if not, can you help point in the correct direction for the IDEA team?
Currently, the bounty is almost $400 USD for this issue.

Maybe can use runtime patches to support this feature?

Manifold fully supports extension methods in IntelliJ.  Something else to consider, Manifold integrates extension methods much more cleanly into the Java compiler, consequently the bugs present with Lombok's extensions are not an issue with Manifold e.g., the use of generic lambdas etc. are fully supported with Manifold.

+1

+1 to Manifold, it pairs nicely with Lombok and works smooth in IDEA.

+1

+1

+1

+1

+1 for Manifold as well, really awesome plugin. The only downside is that you must pay for the IntellIiJ plugin, or you're straight outta luck with using it. I think it's worth it though

Manifold IJ plugin is free when used with IJ Community Edition.  It's also free for students and faculty, and abides by all the same deals you get with JetBrains products.

I'm a student, yet it definitely was not free for me (I can install it, sure, but it asks for a license on startup).
For the record, yes, I use IntelliJ IDEA Professional Edition, simply because I have a student license on JetBrains

@Frontear  My bad.  JetBrains plugin Marketplace is brand new and not quite complete. The student licenses do not yet extend to plugins, but they will once JB finishes that aspect of Marketplace, hopefully soon.  Apologies for the confusion.  If you have other questions, please take this discussion over to the Manifold side. Thanks!

Manifold  https://plugins.jetbrains.com/plugin/10057-manifold/

Any update for this issues?

We can celebrate 6 years since this issue was opened now. 🍾 ✨ 🎆

+1
very useful feature
would be great to see this in the plugin

Well now that manifold requires a ridiculous and unreasonable cost, strongly adding my +1 for this again.
Not downgrading to Community Edition of IDEA just for manifold. Hopefully lombok will restore this feature for me and make it as easy to use as manifolds was.

Lombok has always had this feature, this plugin specifically does not. You can still use it and it will compile completely fine, it's just that IDEA will complain.

Which makes the feature unusable. No one practical is going to tolerate code that appears to be broken.
Plus Lombok is missing project wide extension configuration (see https://github.com/rzwitserloot/lombok/issues/922 ) which is what i meant by "easy to use as manifolds"

The issue is labeled as needIntellijDeveloperSupport.
Curious what specific IntelliJ support is needed.

@ajermakovics So how manifold dose?

@mplushnikov
Yeah, you mentioned that this feature requires a lacking IntelliJ IDEA support item back in 2015. But the Manifold guys claim their implementation of the extension methods concept can work in IntelliJ, 2019. So, the remaining part of the work seems to be really doable.
Would you like to invest a little time to investigate which IntelliJ mechanism could be applied to make your plugin work? I do believe everybody here would be incredibly happy to have it supported.
Thank you.

@lyubomyr-shaydariv Manifold works different way in compare to lombok.
In Manifold you exactly defines which class should be extended by new methods and can use it then anythere on all places.
In Lombok these extension methods apply only for code that is in the annotated class, not in other classes.
The scope is the problem.

Maybe scope can be inferenced from first argument of each static-methods of class, declared in @ExtentionMethod annotation?
In that code:
@ExtensionMethod(java.util.Arrays.class)
public class ExtensionMethodExample {
  public String test() {
    int[] intArray = {5, 3, 8, 2};
    intArray.sort();
  }
}

When user set cursor to intArray position and tap ".", why plugin cant just call method like:
@SneakyThrows
@Contract(pure = true)
public static <T, E> @NotNull Stream<Method> getExtensionMethodsForClass(@NotNull Class<T> targetClass,
                                                                                @NotNull Class<E> extensionClass) {
  return Arrays.stream(targetClass.getMethods())
             .filter(method -> Modifier.isStatic(method.getModifiers()))
             .filter(method -> method.getParameterTypes()[0].isAssignableFrom(extensionClass));
}

somehow like that:
getExtensionMethodsForClass(Arrays.class, int[].class)
        .forEach(method -> log.info("{}", method));

and add it's result to list of self-defined object methods?

@mplushnikov thank you for the reply! To be honest, I vaguely can imagine how Lombok, lombok-intellij-plugin and Manifold work under the hood, but when you refer the scoping issue, do you mean something like:

when a plugin adds methods to a  class method list, this is done on per-project basis, not per-class (not a real quote)

? This probably might explain why such an approach works great for Manifold (as it declares extension methods globally), but Lombok applies the extension methods only to annotated classes. On the other hand, if your plugin would have extension methods support now, it would show extension methods for all classes, even those not annotated with @ExtensionMethod?
Is my understanding of the scoping issue correct?

? This probably might explain why such an approach works great for Manifold (as it declares extension methods globally), but Lombok applies the extension methods only to annotated classes. On the other hand, if your plugin would have extension methods support now, it would show extension methods for all classes, even those not annotated with @ExtensionMethod (eventually causing compilation errors outside IntelliJ)?
Is my understanding of the scoping issue correct?

Yes, exactly. This is the main difference.
The second difference is the location of extensions. In Manifold you have one package for it and can find it very quickly. In Lombok you would need to scan every class (and its inner classes and so on) to check for presence of annotation. But this would be possible to manage...

It seems that it's even easier to implement extension methods in lombok (library) with the manifold approach :D
And then address this issue.

@mplushnikov
It's been so many years...
I can implement this feature, but I need to transform the IntelliJ bytecode.
As you probably know, PSIClass of the array type is shared in IntelliJ, which means that it can't be done with PsiAugmentProvider, and because of lombok's design, PsiAugmentProvider doesn't fit.
I would use JNA to get an instance of java.lang.instrument.Instrumentation and register the retransformer, if there's no better way to do it.
If you are ok with this solution, I can draft a pr.
But I won't be testing any older versions, I'll just be developing based on 2020.2, and if it doesn't work on older versions, I can do compatibility fixes via logs provided by others.
Even though I'm no longer a lombok user, and I've developed richer enhancements to the Java language than lombok (global method extensions, operator overloading, default arguments, ...) .
But I still appreciate all the help I got from lombok-intellij-plugin.
Incidentally, the reason I gave up on lombok in the first place was because I ran into a bug in lombok, then I told them how to fix it, they said fine, and then nothing happened again.

@NekoCaffeine Thank you, that sounds really good! Just write me a private message, so we can discuss details of the help I can provide to you. I think we can also avoid usind  retransformer, as I'm now closer to to work with IntelliJ developers and probably can apply changes to the codebase.

Yes, it's better to avoid changing bytecodes if you can.
While that's easy for me, it's not conducive to continued maintenance by those who come after.
I know enough about your plugin and how IntelliJ works.
But you should also know that there aren't many APIs that interact with PSI.
Option 1.
The entry point PsiClassImplUtil#processDeclarationsInClass, which requires transforming the bytecode.
Or make IntelliJ provide the API here.
Option 2.
Replace CLASS instances of JavaStubElementTypes by reflection, re-implement JavaClassElementType#createPsi to return a custom PsiClassImpl, and override PsiClassImpl#processDeclarations.

I'm busy working on the game engine and working on an OpenJDK bug I just encountered, so I'm sorry that I may not be able to respond in a timely manner.

I'm not sure what problems I'd run into using reflection. Transforming the bytecodes in a way that has been verified to work for my own plugins.

@NekoCaffeine If you provide some initial PR with example implementation of your idea, I'l look on it and discus with jetbrains developers how to provide new extension point for it.

That may have to wait until the weekend.

I just now took the time to test both options and sure enough option 2 failed, I tried many ways around the problem due to IntelliJ's design, but reflection is still not a viable option.

@NekoCaffeine great! Show me your code:)

There are still some minor issues, will be later when I have time to fix them.

@mplushnikov @NekoCaffeine
If your idea/workaround gets working: would it possible to highlight extension method invocations using a custom style so that real instance methods and extension methods are easily distinguishable, or extension methods would borrow static methods highlight style?

Not sure if color scheme options can be extended by intellij plugins, but I think it should be an extra option there maybe with a default similar to kotlin highlighting in intellij (static color + italic)

If your idea/workaround gets working: would it possible to highlight extension method invocations using a custom style so that real instance methods and extension methods are easily distinguishable, or extension methods would borrow static methods highlight style?

There doesn't seem to be such an API, but nothing is impossible to implement.

I haven't used the @ExtensionMethod, so I was hoping someone could answer my question.
1> How to handle nested classes, e.g. @ExtensionMethod(...) class A { class B {}}, does the annotation on A act on B?
2> Does it support method references?

Fantastic achievement, mate.

Is there anything important missing?
On Thu, Oct 22, 2020 at 5:35 AM NekoCaffeine<EMAIL_ADDRESS>wrote:

[image: image]
https://user-images.githubusercontent.com/10548315/96767472-28698100-140f-11eb-81b3-a9944ba59bf4.png
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/mplushnikov/lombok-intellij-plugin/issues/21#issuecomment-713783026,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAD7NUDLCJXTWDQAYLLS3K3SL4SXDANCNFSM4AKRGT5Q
.

--
/* Miere L. Teixeira */

Is there anything important missing?

Only a few details remain to be confirmed.

The lombok developers are very responsive to questions in their Google Group: https://groups.google.com/g/project-lombok
I have never worked with ExtensionMethod due to the lacking support in editors, but if the answers are not given I can run a couple of tests using delombok to figure out how exactly it works.

I just tested it.

Success
Failure
I need to expand the lookup and disable method references from using extended methods.

@mplushnikov Hey, I finished it a long time ago, can this pr be merged?

@NekoCaffeine really appreciate your contribution. Can you please clarify, is there any ticket or maybe PR to IntelliJ or some kind of discussion/mailing list with JetBrains to change the IDEA code to finally get rid of rocket science with code agent?
If yes, we can vote for a change at least to focus more JB attention. Thanks

Can you please clarify, is there any ticket or maybe PR to IntelliJ or some kind of discussion/mailing list with JetBrains to change the IDEA code to finally get rid of rocket science with code agent?

@seregamorph No, but the author said he was close to the developers at JetBrains and I assume he made recommendations accordingly.
And I've chosen a very stable entry point where the injected function hasn't changed in a long time and should have no need to change in the future.
Secondly, even if the injection fails, it will not have any consequences. The worst case scenario is just not supporting the annotation(@ExtensionMethod), as in the past.
I'm just wondering why I'm not getting any response, like I shouldn't be here to implement the feature.

Incidentally, the reason I gave up on lombok in the first place was because I ran into a bug in lombok, then I told them how to fix it, they said fine, and then nothing happened again.

It's exactly the same.

I think there is no problem with injection at all, lombok itself uses javaagent for Eclipse.

@NekoCaffeine don't worry, just give @mplushnikov a bit of time to review this properly. He appears to be mostly on his own while maintaining this amazing plugin.
I am really happy that, after more than two years have passed since I put in my bounty, someone finally took the time to implement this feature. I am sure all other backers will agree that your bounty is well deserved.

Totally agree with @jwgmeligmeyling . I'm just looking forward on how much code I will just throw away having this feature implemented and how beautiful the code will become.

Yeah, myself also looking forward for the release of this feature since very long ago 😌

@NekoCaffeine can we take a sneak peek into the plugin (i.e. do you have a plugin zip ready from download from some CI or whatnot?)?

lombok-plugin-0.33-EAP.zip
@PawelLipski
Here it is.
If you're worried about security, you can build from my branch. Just run gradlew buildPlugin, and you'll get the plugin under ./build/distributions/.

@NekoCaffeine please do a favor, what are other instructions? I mean install latest EAP (as I understood it's not compatible with current 2020.2.3). In EAP there is another problem. Since the lombok plugin is bundled by default, it cannot be upgraded manually (at least in my case each time it ended to standard version, not the installed manually), so should I delete the bundled from the IntelliJ Application plugins directory? And one more question - are any additional run parameters required or setup to switch this to enabled? Thanks in advance.

@seregamorph The version I just released doesn't require any additional work, you just need to install the plugin from disk and restart. Works fine on the 2020.3 EAP.

I'm not sure if you need to remove the built-in plugin, if it doesn't work you can try replacing it.

This feature is currently enabled by default and you can disable it as shown in the figure.

Well, are you sure it works fine with latest EAP built on Nov 05? OS: macOS

I've built 0.34-EAP from the latest commit 3f98c760270a0c3c1675825254f4b1ef8c46ae81 (@mplushnikov commit from origin/master)
But it seems that it is not working:

The extension method is not recognized and there is no lombok action.

@seregamorph Can you upload idea.log?
Double-click shift, enter show log and select Show Log in Explorer.

@seregamorph Your situation seems strange, even if the injection fails, the switch lombok.experimental.ExtensionMethod should still be there

idea.log.zip

Can please someone else confirm that he can use the plugin (with extension methods) successfully? Which version of IDEA, OS are you using?

@seregamorph Oh, in the latest version this switch is turned off by default, try turning it on by double clicking Shift and typing lombok.experimental.ExtensionMethod. Then make any changes you want to the source code (e.g. delete a line and restore the trigger check engine).

@seregamorph I think you have too many entries, so you only typed part of it without seeing the switch.

Oh wait. I seem to see some native errors from your logs.

please note, that I'll not be available for a few next hours

@seregamorph My test platform is windows, I'm sorry I don't have macOS as a test machine. Can you assist me in following up on this issue?

It appears that the native library I need is not in your environment's resource path, but the library actually exists, so I need to write a small amount of code to support it.

Sure I can assist, but not today. Please provide the instructions

@seregamorph Can you double-click Shift and type Edit Custom VM Options to show me what's there?

I used JNA to try to load a native library that exists in the JRE, but it failed to load by default from under darwin due to the default environment of macOS.
I'm sorry to bother you too much, or I'll submit an update later and then you'll just have time to try it.

If you want, you can try adding -Djna.library.path=<your Jetbrains runtime>/Contents/Home/lib to the JVM parameters. This may fix the problem directly, but I will try to automate the fix via code to prevent the user from having to change the JVM parameters.

sorry to bother you too much

Don't worry, glad to participate.
My current vm options:
-Xms128m
-Xmx5000m
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-XX:CICompilerCount=2
-Dsun.io.useCanonPrefixCache=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-Djdk.attach.allowAttachSelf=true
-Dkotlinx.coroutines.debug=off
-Djdk.module.illegalAccess.silent=true
-XX:+UseCompressedOops
-Dfile.encoding=UTF-8

-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof

I added this line
-Djna.library.path="/Applications/IntelliJ IDEA 2020.3 EAP.app/Contents/lib"

but still no luck.
(please note, that directory that you mention does not exist).
Also tried:
-Djna.library.path="/Users/morph/Library/Application Support/JetBrains/IntelliJIdea2020.3/plugins/lombok-plugin/lib"

(contents of this directory: lombok-plugin-0.34-EAP.jar searchableOptions-0.34-EAP.jar)
Just an advice: if you have ability, you can try to run the plugin in Ubuntu, probably it'll have the similar problem.

@seregamorph
I spent the day successfully building and linking the macOS Catalina for AMD kernel. I will test it first in a virtual machine.
Thanks for the test, I learned in advance that there are significant differences between JBR and OpenJDK.

Maybe you'll be able to try a new build soon.

Hey, I think you misunderstood what I meant, the directory actually exists.
<your Jetbrains runtime> means the jbr folder.

Well, changed to
-Djna.library.path="/Applications/IntelliJ IDEA 2020.3 EAP.app/Contents/jbr/Contents/Home/lib"

But still not working as expected. Waiting for upgraded version for OpenJDK.

I don't know why there's such a platform difference.
In windows, all you have to do is double click shift and type lombok.e to see the switch.
But in macOS, you need to double click shift and type Registry to open the gui shown in the figure to find the lombok.experimental.ExtensionMethod switch and turn it on.
This is really weird.
So I recommend turning it on by default, but...

@seregamorph

lombok-plugin-0.34-EAP.zip
Can you try this build? And you need to turn the switch on like I said above.

Just an advice: if you have ability, you can try to run the plugin in Ubuntu, probably it'll have the similar problem.

Just finished deploying a virtual machine and the plugin works well on Ubuntu 20.10.

lombok-plugin-0.34-EAP.zip
@seregamorph
Please try this build(09fdda55a00a5e13efa191e1a338f684393180a8) and you should not need to do anything for it to work.

@NekoCaffeine 🤩 it works!!!
That's awesome. Glory to you

@seregamorph Thanks for the test.
Since it's okay, I'm going to go take a break. It's 5:00 a.m. for me.

Nice job, mate.
Hoping that the author of this plugin merges this PR and rewards you for
the good work.
Cheers.
On Sun, Nov 8, 2020 at 7:48 AM NekoCaffeine<EMAIL_ADDRESS>wrote:

@seregamorph https://github.com/seregamorph Thanks for the test.
Since it's okay, I'm going to go take a break. It's 5:00 a.m. for me.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/mplushnikov/lombok-intellij-plugin/issues/21#issuecomment-723493759,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAD7NUHT45PV64ZT4NJNNTLSOWXAHANCNFSM4AKRGT5Q
.

--
/* Miere L. Teixeira */

really appreciate your contribution. Can you please clarify, is there any ticket or maybe PR to IntelliJ or some kind of discussion/mailing list with JetBrains to change the IDEA code to finally get rid of rocket science with code agent?
If yes, we can vote for a change at least to focus more JB attention. Thanks

@seregamorph @mplushnikov
https://github.com/JetBrains/intellij-community/pull/1472

Hello @NekoCaffeine , thank you for your PR for intellij-community. You can also include your code for ExtensionMethod support to it! Lombok plugin is now part of intelliJ community: https://github.com/JetBrains/intellij-community/tree/master/plugins/lombok

Guys, please note if you want to install the plugin on EAP, you should first delete bundled lombok plugin first:
sudo rm -rf /Applications/IntelliJ\ IDEA\ 2020.3\ EAP.app/Contents/plugins/lombok/
Otherwise IDEA will not replace it with 0.34-EAP.
To build the plugin: on the latest master branch:
./gradlew clean buildPlugin

Hey @mplushnikov, since 2020.3 is released now, and bundled into IntelliJ (Ultimate, build 203.5981.155 in my case)... when can we expect for the ExtensionMethod support to be part of a plugin release that's bundled in IntelliJ?

And one more question - should it be version by NekoCaffeine, or other? I assume the impl should be another (so who should handle it?), because the PR by NekoCaffeine to IntelliJ was rejected and rewritten another way by @akozlova

@ExtensionMethod would be supported by the bundled lombok plugin in the first EAP of 2021.1, it would be my version

With all the respect to Anna and her revisited implementation, that's an
unexpected twist of events.
After 7 years, one had time (and guts) to implement such a valuable feature
and his PR is rejected. Hope at least a mention to his efforts is put in
the contributors note.

@akozlova can you please give any estimation when the EAP will become public for download? Thanks

@akozlova can you please give any estimation when the EAP will become public for download? Thanks

@miere this PR is part of lombok plugin for older IDEA versions and it's merged. The author gets all glory which he for sure deserves! PR in IJ community is about changing IJ API and it was rejected because it's too easy to make IDEA extremely slow with it.
@schernov-xo we are going to release 2021.1 EAP in a couple of weeks.

@miere this PR is part of lombok plugin for older IDEA versions and it's merged. The author gets all glory which he for sure deserves! PR in IJ community is about changing IJ API and it was rejected because it's too easy to make IDEA extremely slow with it.
@schernov-xo we are going to release 2021.1 EAP in a couple of weeks.

Great news. Latest IDEA EAP has Lombok plugin (bundled by default, no manual installation or update required) that supports Lombok @ExtensionMethod!!!
https://www.jetbrains.com/idea/nextversion/#section=mac
@NekoCaffeine @mplushnikov @akozlova thanks

Great news. Latest IDEA EAP has Lombok plugin (bundled by default, no manual installation or update required) that supports Lombok @ExtensionMethod!!!
https://www.jetbrains.com/idea/nextversion/#section=mac
@NekoCaffeine @mplushnikov @akozlova thanks

Cool! These aren't yet fully working for me (idea-IC-211.4961.33):
public final class Ext {

	private Ext() { }

	@SuppressWarnings("unused") // the EAP reports this as unused
	public static int twice(final int i) { return i + i; }

	@SuppressWarnings("unused") // the EAP reports this as unused
	public static String twice(final String s) { return s + s; }

}

@ExtensionMethod(Ext.class)
final class Test {

	private Test() { }

	public static void main(final String... args) {
		System.out.println("foo".twice()); // didn't work until the existing project purged and recovered from scratch, no issues in EAP, javac and runtime
		System.out.println((2).twice()); // wow, it survives compile time and works in runtime, but the EAP highlighter reports an error "Cannot resolve method twice"
		System.out.println(2.twice()); // compile time error due to Java grammar, not a big issue
	}

}

Cool! These aren't yet fully working for me (idea-IC-211.4961.33):
public final class Ext {

	private Ext() { }

	@SuppressWarnings("unused") // the EAP reports this as unused
	public static int twice(final int i) { return i + i; }

	@SuppressWarnings("unused") // the EAP reports this as unused
	public static String twice(final String s) { return s + s; }

}

@ExtensionMethod(Ext.class)
final class Test {

	private Test() { }

	public static void main(final String... args) {
		System.out.println("foo".twice()); // didn't work until the existing project purged and recovered from scratch, no issues in EAP, javac and runtime
		System.out.println((2).twice()); // wow, it survives compile time and works in runtime, but the EAP highlighter reports an error "Cannot resolve method twice"
		System.out.println(2.twice()); // compile time error due to Java grammar, not a big issue
	}

}

@lyubomyr-shaydariv you can raise issue https://youtrack.jetbrains.com/issues/IDEA

@lyubomyr-shaydariv you can raise issue https://youtrack.jetbrains.com/issues/IDEA

Great thanks for that feature - it's really cool!
But IDEA 2021.1 EAP 2 isn't auto-complete extension methods for me - is it a bug, or we just should wait for stable release?

Current implementation provides only basics highlighting: no red code should be shown (though it doesn't allow to extend primitives as reported above ^). Nothing else was tested, unfortunately

Created issues in Idea bugtracker: https://youtrack.jetbrains.com/issue/IDEA-261476 and https://youtrack.jetbrains.com/issue/IDEA-261477
Please stop using this closed issue!

Great news. Latest IDEA EAP has Lombok plugin (bundled by default, no manual installation or update required) that supports Lombok @ExtensionMethod!!!
https://www.jetbrains.com/idea/nextversion/
@NekoCaffeine @mplushnikov @akozlova thanks

Is it publish already? I download latest EAP, bug not found ExtensionMethod support

@oxsean the regular IDEA 2021.1.3 Ultimate (and I assume CE as well) has this feature, no need to download EAP.

@oxsean the regular IDEA 2021.1.3 Ultimate (and I assume CE as well) has this feature, no need to download EAP.

3ks, I test once again, the gramm support is perfect, no red error, bug autocomplete is not supported?

Yes, autocomplete is not yet supported (as mentioned before in this thread).
@mplushnikov please lock this thread. Further discussion should happen in https://youtrack.jetbrains.com/issue/IDEA-261476 and https://youtrack.jetbrains.com/issue/IDEA-261477


V2

@naueramant I know you're probably busy, just wondering if there's anything blocking this PR from being merged? Is v2 ready to go?

any update @naueramant ?


Tree and Data Failure

What Operating System?
Windows 10

What steps will reproduce the issue?
The hyperlinked tree of subgoals and actions (on the left) shows signs of failure and inconsistency.  Continuing past subgoal 3 generally presents issues such as rewriting or overwriting actions.  In addition, there is a failure to display some subgoals and actions (as shown in the screenshot above - jump from subgoal 4 to 7).  The intermediate subgoals were not displayed.  Furthermore, the “Save and Continue” and the back button fail after a certain point forcing the user to save and exit.

What would you expect to be the outcome?
A user would expect to work through multiple subgoals and action without failure during a GenderMag Session

All these details will help people to fix any potential bugs?
None

checked and it's working fine right now


Way to calculate grams?

How can I calculate grams from given GCode?
Thanks.

Built CuraEngine, wontfix

Sorry, missed this issue. You would need to use the diameter of the filament to calculate the cross sectional area of the filament. Then multiply by the Extrusion distance in the G1 command to get volume. Multiply volume by the density of the filament to get mass.


With the 1.14.2 client, the server cannot be linked,

With the 1.14.2 client client, the server cannot be linked,
I tried to link WinterspringLauncher version 1.5, using the HermesProxy version 3.7 using the binary version released by Arctium2023-7-16, and the client showed that I could not link to logon.stormforge.gg Netherwing - Stormforge, I don't know where this is the problem. If you have time, you'd like to be able to handle it.

I get some logs:
1)low version,it can login.
Version: 2022-12-04 1.3.0
https://github.com/0blu/WinterspringLauncher
        ...      ..
   .,,,,,..        .,,
 ,,,,,    ....       ,,,
.,,,.  ,,,,,,,,,,,    ,,,        Winterspring
,,,,. .,,,,   ,,,,.   ,,,,         Launcher
.,,,,         ,,,,.   ,,,,
 ,,,,,,,...,,,,,,,   ,,,,.      Allows you to
   ,,,,,,,,,,,..   .,,,,,      play on Everlook

,.        .       .,,,,,,    using the modern client
,,,..      ..,,,,,,,.
.,,,,,,,,,,,,,,,
BasePath: D:\game\WOW1142\WinterspringLauncher1.3
New launcher update 1.3.0 => 1.5.0
A new version was released, please update
https://github.com/0blu/WinterspringLauncher/releases
Found client in D:\game\WOW1142\game-client
Found newer version of ArctiumLauncher, upgrading from latest|Launcher Signed (2022/11/18) => latest|Launcher Signed (2023-09-06)
System.InvalidOperationException: Sequence contains no matching element
at System.Linq.ThrowHelper.ThrowNoMatchException()
at System.Linq.Enumerable.Single[TSource](IEnumerable1 source, Func2 predicate)
at WinterspringLauncher.Launcher.ExecuteGithubDownloadIfUpdateAvailable(String description, String modulePath, GitHubReleaseInfo ghReleaseInfo, Func2 assetSelector, Action2 downloader) in D:\a\WinterspringLauncher\WinterspringLauncher\WinterspringLauncher\Program.cs:line 168
at WinterspringLauncher.Launcher.PrepareArctiumLauncher(UpdateApiClient api, Boolean weAreOnMacOs, String arctiumPath) in D:\a\WinterspringLauncher\WinterspringLauncher\WinterspringLauncher\Program.cs:line 147
at WinterspringLauncher.Launcher.<>c__DisplayClass2_0.b__5() in D:\a\WinterspringLauncher\WinterspringLauncher\WinterspringLauncher\Program.cs:line 70
at WinterspringLauncher.Launcher.IgnoreExceptions(String description, Action func) in D:\a\WinterspringLauncher\WinterspringLauncher\WinterspringLauncher\Program.cs:line 115

Failed to prepare ArctiumLauncher, continuing anyways <<<
Starting WoW...
Starting HermesProxy...
16:24:38 |  Server  | Server          | Starting Hermes Proxy...
16:24:38 |  Server  | Server          | Version 2023-01-30 official 3.7.0
16:24:38 |  Server  | Server          | Modern (Client) Build: V1_14_2_42597
16:24:38 |  Server  | Server          | Legacy (Server) Build: V1_12_1_5875
16:24:38 |  Storage | GameData        | Loading data files...
16:24:38 |  Server  | VersionChecker  | Loaded 833 legacy opcodes.
16:24:38 |  Server  | VersionChecker  | Loaded 1727 modern opcodes.
16:24:39 |  Storage | GameData        | Finished loading data.
16:24:39 |  Network | Server          | External IP: <IP_ADDRESS>
16:24:39 |  Server  | Server          | Starting BnetTcpSession service on <IP_ADDRESS>:1119...
16:24:39 |  Network | NetworkThread   | Network Thread Starting
16:24:39 |  Server  | Server          | Starting BnetRestApiSession service on <IP_ADDRESS>:8081...
16:24:39 |  Network | NetworkThread   | Network Thread Starting
16:24:39 |  Server  | Server          | Starting RealmSocket service on <IP_ADDRESS>:8084...
16:24:39 |  Network | NetworkThread   | Network Thread Starting
16:24:39 |  Server  | Server          | Starting WorldSocket service on <IP_ADDRESS>:8086...
16:24:39 |  Network | NetworkThread   | Network Thread Starting
16:24:52 |  Server  | BnetTcpSession  | Accepting connection from <IP_ADDRESS>:12998.
16:24:53 |  Network | AuthClient      | C P>S | Connecting to auth server... (realmlist addr: logon.everlook.org:3724) (resolved as: <IP_ADDRESS>:3724)
16:24:53 |  Network | AuthClient      | Authentication succeeded!
16:24:53 |  Server  | AuthClient      | Requesting RealmList update for ZWEIVIVIAN1
16:24:53 |  Network | AuthClient      | Received 2 realms.
16:24:53 |  Server  | RealmManager    | Added realm "Everlook" at <IP_ADDRESS>:8085
16:24:53 |  Server  | RealmManager    | Added realm "Public Test Realm" at <IP_ADDRESS>:8087
16:24:56 |  Server  | WorldSocket     | WorldSocket:HandleAuthSession: Client 'ZWEIVIVIAN1' authenticated successfully from <IP_ADDRESS>:13005.
16:24:56 |  Network | WorldClient     | Connecting to world server...
16:24:56 |  Network | WorldClient     | Connection established!
16:24:56 |  Network | WorldClient     | Authentication succeeded!
16:24:56 |  Warning | WorldSocket     | C>P S | No handler for opcode CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS (14053) (Got unknown packet from ModernClient)
16:24:56 |  Warning | WorldSocket     | C>P S | No handler for opcode CMSG_BATTLE_PAY_GET_PURCHASE_LIST (14019) (Got unknown packet from ModernClient)
16:24:56 |  Warning | WorldSocket     | C>P S | No handler for opcode CMSG_BATTLE_PAY_GET_PRODUCT_LIST (14018) (Got unknown packet from ModernClient)
16:24:56 |  Warning | WorldSocket     | C>P S | No handler for opcode CMSG_UPDATE_VAS_PURCHASE_STATES (14073) (Got unknown packet from ModernClient)
16:24:56 |  Error   | AuthClient      | C P<S | Socket Closed By Server
16:24:56 |  Warning | BnetServices    | [WorldSocket][<IP_ADDRESS>:13005, Account: ZWEIVIVIAN1, Game account: ZWEIVIVIAN1] Client requested service ResourcesService/m:1 but this service is not implemented?
16:24:59 |  Server  | WorldSocket     | Client disconnected with reason 13.
16:24:59 |  Error   | WorldClient     | C P<S | Socket Closed By GameWorldServer (header)

2)high version,it can't login, have lettle logs.
Version: 2023-08-12 1.5.0
https://github.com/0blu/WinterspringLauncher
        ...      ..
   .,,,,,..        .,,
 ,,,,,    ....       ,,,
.,,,.  ,,,,,,,,,,,    ,,,        Winterspring
,,,,. .,,,,   ,,,,.   ,,,,         Launcher
.,,,,         ,,,,.   ,,,,
 ,,,,,,,...,,,,,,,   ,,,,.      Allows you to
   ,,,,,,,,,,,..   .,,,,,      play on Everlook

,.        .       .,,,,,,    using the modern client
,,,..      ..,,,,,,,.
.,,,,,,,,,,,,,,,
BasePath: D:\game\WOW1142\WinterspringLauncher1.5
Found client in D:\game\WOW1142\game-client
Starting WoW...
Starting HermesProxy...
16:26:33 |  Server  | Server          | Starting Hermes Proxy...
16:26:33 |  Server  | Server          | Version 2023-01-30 official 3.7.0
16:26:34 |  Server  | Server          | Modern (Client) Build: V1_14_0_40618
16:26:34 |  Server  | Server          | Legacy (Server) Build: V1_12_1_5875
16:26:34 |  Storage | GameData        | Loading data files...
16:26:34 |  Server  | VersionChecker  | Loaded 833 legacy opcodes.
16:26:34 |  Server  | VersionChecker  | Loaded 1639 modern opcodes.
16:26:35 |  Storage | GameData        | Finished loading data.
16:26:35 |  Network | Server          | External IP: <IP_ADDRESS>
16:26:35 |  Server  | Server          | Starting BnetTcpSession service on <IP_ADDRESS>:1119...
16:26:35 |  Network | NetworkThread   | Network Thread Starting
16:26:35 |  Server  | Server          | Starting BnetRestApiSession service on <IP_ADDRESS>:8081...
16:26:35 |  Network | NetworkThread   | Network Thread Starting
16:26:35 |  Server  | Server          | Starting RealmSocket service on <IP_ADDRESS>:8084...
16:26:35 |  Network | NetworkThread   | Network Thread Starting
16:26:35 |  Server  | Server          | Starting WorldSocket service on <IP_ADDRESS>:8086...
16:26:35 |  Network | NetworkThread   | Network Thread Starting
16:26:49 |  Server  | BnetTcpSession  | Accepting connection from <IP_ADDRESS>:13061.
World of Warcraft was closed
You can close this window

+1

wait anxiously

Not Do not report issues to random other 'launchers' or so. It's not related to this launcher.


Chained promises broken when testing due to $exceptionHandler interference

The Promises specification has the following to say about chaining promises:

then must return a promise

promise2 = promise1.then(onFulfilled, onRejected);

If either onFulfilled or onRejected returns a value that is not a promise, promise2 must be fulfilled with that value.

If either onFulfilled or onRejected throws an exception, promise2 must be rejected with the thrown exception as the reason.

However, when using Karma to test a module, I noticed that the following inside the method under test failed:
return $http.post(endpoint, data).then(function(response) {
  //return some data from the response
}, function(error) {
  var throwable;
  //grab some data from the response to create a meaningful rejection reason
  throw throwable;
});

When invoking the method as follows, with a mocked HTTP backend to force a failure:
service.do(args).then(function(unused) {
  expect(false).toBe(true);//In the absence of a fail() method, use a contradiction
}, function(error) {
  expect(error.code).toBe(FAILURE_VAL);
});

Instead of the expectation being met in the onRejected function, the exception propagates up the stack and fails the test. This is because apparently during tests, the default policy of $exceptionHandler is rethrow.
I don't understand what business $exceptionHandler has at all being invoked by $q, especially since this behavior violates the Promises/A specification. Exceptions being thrown is a normal and expected part of promise execution.

Hey @alexeagle, how are you doing? You still like testing right? That means you should fix this bug ;)
Here's a jsfiddle demonstrating it: http://jsfiddle.net/tz8f7tvs/2/

Hi Nate, I do like testing. But I don't know anything about Angular 1. Do you want to spend an "escalation token" on this one? :)

Oh, I didn't realize the teams were split, too! I saw Angular 2 just launched publicly, so congratulations on that.
As a Xoogler, I'm not sure I get escalation tokens 😳 If I do, though, I'd love to see this fixed, since I think it makes it really hard to write good tests in some cases.

Escalation token noted but placed on side board, with reason: "Travel and Conferences."
I can take a look at this one in the "next month" kinda timeframe.

Cool, thanks for taking a look!

This is not a bug, it is a feature :stuck_out_tongue:
The exception is indeed turned into a rejection, but at the same time passed to the exceptionHandler. So, $q is still A+ compliant.
By default, the exceptionHandler will just log the error, but in tests it will rethrow it (as mentioned above).
@rasmusvhansen's solution is the way to go.
--
The reason why thrown exceptions are passed to the exceptionHandler (in addition to being converted to rejections), was that they might indicate a programming error, which would other get possibly swallowed in an unhandled rejection.
Since this turned out to be inconvenient/confusing for people we are planning to remove this "feature" in 1.6.0
(The timing is good, because starting with 1.6.0 possibly unhandled rejections are being reported.)

Oh, okay! Thanks for getting back to me. I think this behavior is pretty crazy, but then you're already going to remove it, so no need for me to convince you.
Please document this behavior in the $q documentation! I could also do this and send a PR, but I don't have deep knowledge of Angular so I might get something wrong.
Is there a doc somewhere saying that $q is supposed to be A+ compliant? I was hunting for one but couldn't find any source one way or another. This might also be good to document.
And again, thanks for getting back :)

Is there a doc somewhere saying that $q is supposed to be A+ compliant?

@n-rook, hey, we run $q against the Promises/A+ Compliance Test Suite on every build. We are compliant (as long as $exceptionHandler doesn't do weird things, suhc as re-throwing errors 😛).
I am concerned that this is a bit too low-level to add to the docs, but I have added a note that $q is Promises/A+ compliant in #15213 (which also removes the extra $exceptionHandler call).

Alright, thanks @gkalpak! To be honest, I just wanted a canonical source to resolve my stackoverflow question ;) You could try to get Angular 1 listed on this page, but I have no clue how that page was set up or if anyone but me would ever have found it.
I think I recognize your username... if you see the TAP team anytime soon, say hi to them for me.

No idea what the TAP team is, but if I happen to see them I will say hi :smiley:


Allow navigation graph lanes to be disabled

Feature request
Allow lanes to be disabled
Description
There may be various reasons that the lane of a navigation graph needs to be disabled. If a corridor is needs to be closed off for maintenance, or if too many obstacles have been detected, we should be able to tell the fleet adapter to disable the lane and plan around it.

@mxgrey would there be a method to "enable" the lane again?
Also, it was decided that regardless of the obstacle detected, the robot would attempt to overcome it using its local planner. When it concludes its attempt as a failure, the replanning would be last resort. Hence, the robot is already on the "impassable lane". Would that implicate rmf's global planner efforts to replan?

would there be a method to "enable" the lane again?

Yes, absolutely. This feature will allow lanes to be toggled on and off.

the robot is already on the "impassable lane". Would that implicate rmf's global planner efforts to replan?

No worries, I fully intend to handle this situation. I expect this will be a common occurrence :+1:

disable the lane and plan around it.

Does this API require location of the obstacle as input? Or it assumes the obstacle is somewhere in the same direction of where the robot is heading towards. i.e. On the traffic lane, the path in front of the robot is impassable and the path behind the robot is passable.

Nope, the API will just specify which lane(s) to close down. From the planner's point of view, the only thing it means if a lane is closed is that the planner can't expand its path search down that lane.
I can put some logic into the fleet adapter that will check if the robot is currently on a lane that's being closed, and then the fleet adapter will have the robot return to the lane's entry waypoint if it is.

That works. Thank you.

Finished by #15


Add a failing Aruba-based RSpec test for the CLI client output

This Draft PR is about showing what Aruba can do for testing the CLI client output.
TODO

[x] Get some known-good output to assert against

@bronzdoc Now, I installed a Gemstash 1.1.0 and checked its --version output.
This PR now adds a CLI output assertion.

@bundlerbot r=[@bronzdoc]


Table doesn't appear in sidenote

spec-html.txt
G'day,
I am trying to use this rather nice style for some annotated stories. I want to place a small table in a side note, but it appears far to the right of the margin (or if the span is before the closing P then it appears in the text).   Is there any special reason for this?  And is there any way to stop it happening?
Francis
P.S. Here is a a minimum not-really working example (attached as text):
<!DOCTYPE html>

<meta charset="utf-8"/>
<title>The Adventure of the Speckled Band</title>
<link rel="stylesheet" href="tufte.css"/>
<meta name="viewport" content="width=device-width, initial-scale=1">

The Adventure of the Speckled Band

A. Conan Doyle

<input type="checkbox" id="sn-spec-data" class="margin-toggle"/>

First published:	1982

Set in:	1883

Client:	Helen Stoner

Villain:	Dr. Grimesby Roylott

Here is the code not transformed:

The Adventure of the Speckled Band

The Adventure of the Speckled Band
A. Conan Doyle

First published:1982
Set in:1883
Client:Helen Stoner
Villain:Dr. Grimesby Roylott

The Adventure of the Speckled Band

The Adventure of the Speckled Band
A. Conan Doyle

First published:1982
Set in:1883
Client:Helen Stoner
Villain:Dr. Grimesby Roylott

closed by mistake

maybe clean up the formatting of your code sample to make it clearer what your trying to do. (triple back ticks denote a code block)
one thing you could try is
[..]
. I'm not sure what this will do, but it might work.
The issue is marginnotes, as currently implemented. are inline span elements inside a paragraph
 element. Because if this they cannot hold block-level elements.

Thanks for the suggestion --- I reformatted the example.   I also tried
[..]
 but it did not work.  If I replace the table with:
	First published: 1982

Set in: 1883

Client: Helen Stoner

Villain: Dr. Grimesby Roylott
then it appears in the right place, but is not as pretty.

so this is possible with some trickery....take a look at this:
https://jsbin.com/dadipucutu/edit?html,output
It doen't really work all the way, but i don't have too much time right now. Hopefully this is a start.
I would say that it makes sense to have a way to display small tables in the margin/side content...so a more elegant solution is needed...

so revisiting this for a few minutes:
We continuously run into issues raised by the fact that we have marginnotes and sidenotes existing as inline elements embedded within paragraphs. I think the issue raised by @fcbond regarding putting small tables into margins is valid and echos similar issues raised in the past that come from the fact that margin and sidenotes are restricted to being "inline" html.
I think one potential solution is to use block elements (eg div or similar) for margin content and place them in between two
 elements which together are displayed inline (display: inline) such that they run together and appear as one single paragraph.
Here is an example:

and the link: https://jsbin.com/jigupufifa/edit?html,css,output
Notice how the margin content is inserted in the code right in the text where it is referenced, but is itself a proper block element complete with
 element. Despite this, the two
 elements around the sidenote appear as if they are one single paragraph.
This solution certainly adds to the complexity of the html markup, but also makes margin content much more versatile.

@crmackay I am skeptical of using that approach as the default, but if it could be developed to parity with existing margin- and side-notes, it would be a useful "advanced" technique for situations like this. (I'd want to put some thought into naming it properly.)

I agree it's not ideal, and that better naming is needed. But, it is a potential workaround for the limitations that arise from having margin- and side-notes embedded within paragraphs (which is a design decision I agree with btw).

I am not sure I understand enough about the CSS issues to have an informed
opinion, but I really appreciate the new capability.   There are many times
I would want a table in the margin note, and I imagine I am not alone in
this.
Thanks a alot.
On Wed, Dec 14, 2016 at 8:02 AM, Chris MacKay<EMAIL_ADDRESS>wrote:

I agree it's not ideal, and that better naming is needed. But, it is a
potential workaround for the limitations that arise from having margin- and
side-notes embedded within paragraphs (which is a design decision I agree
with btw).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/edwardtufte/tufte-css/issues/107#issuecomment-266890103,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABD8xh2pMX2EbWh3KpFypSiORdlJ3q5Eks5rHyP2gaJpZM4KhZfH
.

--
Francis Bond http://www3.ntu.edu.sg/home/fcbond/
Division of Linguistics and Multilingual Studies
Nanyang Technological University

Hey folks, I'm going to close this for inactivity. I think the workaround proposed above is useful, but perhaps not useful enough to include as a default feature. I thank everyone for their input.


AKS: add --fqdn-subdomain for private cluster with custom private dns zone

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your PR is merged into master branch, a new PR will be created to update src/index.json automatically.
The precondition is to put your code inside this repo and upgrade the version in the PR but do not modify src/index.json.

@fengzhou-msft  the release pipeline is failing https://github.com/Azure/azure-cli-extensions/runs/2010422413. Are you fixing it?

It's blocked by a previous version release. Will retry after previous version is released.

@fengzhou-msft thanks!


docs: Update DX of SDK Documentation

What does this PR do?
This PR updates the SDK Documentation to improve the developer experience and solve issues with onboarding (in the absence of a comprehensive SDK documentation for resources/ their attributes).
Description of Tasks to be completed

[x] Fix the sequential order of the markdown headings.
[x] Add "table of contents" section.
[x] General docs fixes and improvements.
[x] Improve code snippet examples.
[x] Use tooltips to make the "usage" section concise.
[x] Break code snippets into multiple blocks to make using the "copy code" feature easier.
[x] Break down the "retrieve/list" section code examples into multiple tooltips.
[x] Add a comprehensive note on the use of the API reference documentation.
[x] Add more clarity on fetching 1:1 and 1:N relationships.
[x] Add contribution guidelines.
[x] Add help guidelines.
[x] Change the code snippets language from typescript to javascript.
[x] Clean up the README.md file and fix any typos.

:tada: This PR is included in version 4.24.1 :tada:
The release is available on:

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


Update new scrolling

This includes a small change in how scrolling is detected to improve its behavior in extreme circumstances. It is not terribly important, but may be preferable for select users.
Following this, I think I will be able to leave that cursed text box alone.

To be clear, the fix is in the WParam stuff, right?
If so, I'll accept it but I'll remove the following code if you don't mind
case InteropMisc.WM_MBUTTONDOWN:
break;
case InteropMisc.WM_MBUTTONDBLCLK:
break;
as it prevents autoscroll which some people may want.

Yes, it just modifies the WParam values required to trigger the scroll events. On most machines, it likely will make no difference, but this is a more compatible implementation.
I removed the mentioned code, as it is true that some may find autoscrolling useful. Perhaps I should look into what is causing the cursor flickering exclusively in that function, as it is puzzling that it remains while all other forms of flickering in the readme box no longer occur.

If you find a solution for the autoscroll cursor flicker, I'd be happy to take a look at it. Meantime, accepting this pull request.


Cut a new release to fix warnings in Xcode 14.3

Description
Xcode 14.3 (Swift 5.8) generates many warnings for the most recent release (0.7.0).  This has already been fixed in #54.  Could you cut a new release to incorporate the PR? 🙏
Checklist

[ ] If possible, I've reproduced the issue using the main branch of this package.
[X] This issue hasn't been addressed in an existing GitHub issue or discussion.

Expected behavior
No response
Actual behavior
No response
Steps to reproduce
No response
Identified Collections version information
0.7.0
Destination operating system
No response
Xcode version information
14.3
Swift Compiler version information
swift-driver version: 1.75.2 Apple Swift version 5.8 (swiftlang-<IP_ADDRESS>.2 clang-14<IP_ADDRESS>.100)
Target: arm64-apple-macosx13.0

Just cut https://github.com/pointfreeco/swift-identified-collections/releases/tag/0.7.1, thanks!


Python admin cli error messages are not bubbled up to the docker volume driver

The error messages represented in the admin cli python code are not generally being bubbled up to the docker volume driver, which instead returns a relatively unhelpful generic error.
See code here:
https://github.com/vmware/docker-volume-vsphere/blob/75072a9fc1f57ca452c7d27eca833d9ba6e5ead9/esx_service/vmdk_ops.py#L481-L484
Instead of this error text we see in the ESXi host log file, we see:
Error response from daemon: Error while removing volume myvol: remove myvol: VolumeDriver.Remove: Server returned an error: AttributeError("'NoneType' object has no attribute 'config'",)
There are other instances with such errors where this is true, but ideally, for ease of troubleshooting and quicker resolution, the more explicit errors should be available from the return text from docker volume driver.

@curator can you upload the ESXi host log file, because, the error seems to indicate that the VM object wasn't found and hence the error message. L481 - L484 did'nt happen and hence that error wasn't posted to Docker.

@govint - it  seems we do not handle some exception, somewhere. You are right - a repro or an ESX log would be lovely indeed.
@curator - can you share the text from ESXi log which you mention above ? The code you refer would have printed "Failed to remove volume ... so it may be something else

@ashahi1 to verify whether this is already fixed.

Created a volume
Mounted the volume to a container.
Tried removing the volume but operation is expected to fail as volume is already attached to vm.
And then I do see the following error message:

Error response from daemon: Error while removing volume vol852@vsanDatastore: remove vol852@vsanDatastore: VolumeDriver.Remove: Failed to remove volume: Error caused by file /vmfs/volumes/vsan:525bc223ae963c21-153129789d124635/7a91b758-02d3-ee96-2642-0200351cdccb/11111111-1111-1111-1111-111111111111/vol852.vmdk

Looks good to me - the original issue is fixed.


Recon dialog: suggested types should be clickable (missing  DOM element)

In the recon dialog, the suggested types are not clickable: one needs to click the radio button next to them.
This is bad accessibility.
Proposed solution
Enclose the type name and id in a <label> element associated to the radio button, so that one can click on the text as well.
Alternatives considered
none
Additional context

hi! can i work on this?

Sure, go ahead!

@wetneb I can't seem to find the directory where the items in the column are rendered  on the Standard Service Panel as show below;

Did I miss something?

Have you tried this? https://openrefine.org/docs/technical-reference/code-contributions#locating-the-relevant-part-of-the-code-to-change

Yes,
Searched "Reconcile each cell to an entity of one of these types" and  "core-recon/cell-type",
Which got me to standard-service-panel.js and standard-service-panel.html

The list of items comes from the backend reconciliation service based on the data sent to it from the column being reconciled. The example above seems to be from the Wikidata reconciliation service.

Nicely done @Redeem-Grimm-Satoshi, you found the correct file: standard-service-panel.js.
This is indeed where the suggested types are rendered. Perhaps search for "type" in that file?

Yes @wetneb , located the 'type'

How it works;
https://github.com/OpenRefine/OpenRefine/assets/45304978/1f992e89-6586-4f22-9191-08f2e0ccc5c5


Poor performance in 4k with Nvidia 1660Ti Mobile.

Already reported ? *

[X] I have searched the existing open and closed issues.

Regression?
No
System Info and Version
 System/Version info
Hyprland, built from branch  at commit 4520b30d498daca8079365bdb909a8dea38e8d55  (version: bump to 0.44.1).
Date: Wed Oct 9 12:54:39 2024
Tag: v0.44.1, commits: 5309
built against aquamarine 0.4.3

flags: (if any)

System Information:
System name: Linux
Node name: LuckyKat
Release: 6.11.5-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Tue, 22 Oct 2024 18:31:38 +0000

GPU information:
00:02.0 VGA compatible controller [0300]: Intel Corporation CoffeeLake-H GT2 [UHD Graphics 630] [8086:3e9b] (prog-if 00 [VGA controller])
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU116M [GeForce GTX 1660 Ti Mobile] [10de:2191] (rev a1) (prog-if 00 [VGA controller])

os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo

plugins:

======Config-Start======

Config File: /home/tenzen/.config/hypr/hyprland.conf: Read Succeeded

# #######################################################################################
# AUTOGENERATED HYPR CONFIG.
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
# #######################################################################################

autogenerated = 0 # remove this line to remove the warning

# This is an example Hyprland config file.
# Refer to the wiki for more information.
# https://wiki.hyprland.org/Configuring/Configuring-Hyprland/

# Please note not all available settings / options are set here.
# For a full list, see the wiki

# You can split this configuration into multiple files
# Create your files separately and then link them to this file like this:
# source = ~/.config/hypr/myColors.conf

################
### MONITORS ###
################

# See https://wiki.hyprland.org/Configuring/Monitors/
# monitor=,preferred,auto,auto
monitor=,1920x1080,auto,1

###################
### MY PROGRAMS ###
###################

# See https://wiki.hyprland.org/Configuring/Keywords/

# Set programs that you use
$terminal = konsole
$fileManager = dolphin
$menu = wofi --show drun

#################
### AUTOSTART ###
#################

# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:

# exec-once = $terminal
# exec-once = nm-applet &
# exec-once = waybar & hyprpaper & firefox

#############################
### ENVIRONMENT VARIABLES ###
#############################

# See https://wiki.hyprland.org/Configuring/Environment-variables/

env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24

env = LIBVA_DRIVER_NAME,nvidia
env = XDG_SESSION_TYPE,wayland
env = GBM_BACKEND,nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
env = CLUTTER_BACKEND,wayland
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
env = MOZ_ENABLE_WAYLAND,1
env = WLR_BACKEND,vulkan
env = QT_QPA_PLATFORM,wayland
env = GDK_BACKEND,wayland
env = NVD_BACKEND,direct
env = ELECTRON_OZONE_PLATFORM_HINT,auto

cursor {
    no_hardware_cursors = true
}

#####################
### LOOK AND FEEL ###
#####################

# Refer to https://wiki.hyprland.org/Configuring/Variables/

# https://wiki.hyprland.org/Configuring/Variables/#general
general {
    gaps_in = 5
    gaps_out = 20

    border_size = 2

    # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
    col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
    col.inactive_border = rgba(595959aa)

    # Set to true enable resizing windows by clicking and dragging on borders and gaps
    resize_on_border = false

    # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
    allow_tearing = false

    layout = dwindle
}

# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration {
    rounding = 10

    # Change transparency of focused and unfocused windows
    active_opacity = 1.0
    inactive_opacity = 1.0

    drop_shadow = true
    shadow_range = 4
    shadow_render_power = 3
    col.shadow = rgba(1a1a1aee)

    # https://wiki.hyprland.org/Configuring/Variables/#blur
    blur {
        enabled = true
        size = 3
        passes = 1

        vibrancy = 0.1696
    }
}

# https://wiki.hyprland.org/Configuring/Variables/#animations
animations {
    enabled = true

    # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more

    bezier = myBezier, 0.05, 0.9, 0.1, 1.05

    animation = windows, 1, 7, myBezier
    animation = windowsOut, 1, 7, default, popin 80%
    animation = border, 1, 10, default
    animation = borderangle, 1, 8, default
    animation = fade, 1, 7, default
    animation = workspaces, 1, 6, default
}

# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
dwindle {
    pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
    preserve_split = true # You probably want this
}

# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
master {
    new_status = master
}

# https://wiki.hyprland.org/Configuring/Variables/#misc
misc {
    force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
    disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
}

#############
### INPUT ###
#############

# https://wiki.hyprland.org/Configuring/Variables/#input
input {
    kb_layout = us
    kb_variant =
    kb_model =
    kb_options = ctrl:nocaps
    kb_rules =

    repeat_rate = 30
    repeat_delay = 250
    numlock_by_default = true

    follow_mouse = 1

    sensitivity = 0 # -1.0 - 1.0, 0 means no modification.

    touchpad {
        natural_scroll = true
    }
}

# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures {
    workspace_swipe = true
}

# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
device {
    name = epic-mouse-v1
    sensitivity = -0.5
}

###################
### KEYBINDINGS ###
###################

# See https://wiki.hyprland.org/Configuring/Keywords/
$mainMod = SUPER # Sets "Windows" key as main modifier

# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Q, exec, $terminal
bind = $mainMod, C, killactive,
bind = $mainMod, M, exit,
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, V, togglefloating,
bind = $mainMod, R, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, G, togglesplit, # dwindle

# Move focus with mainMod + arrow keys
bind = $mainMod, H, movefocus, l
bind = $mainMod, L, movefocus, r
bind = $mainMod, K, movefocus, u
bind = $mainMod, J, movefocus, d

# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10

# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10

# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic

# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1

# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow

# Laptop multimedia keys for volume and LCD brightness
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-

# Requires playerctl
bindl = , XF86AudioNext, exec, playerctl next
bindl = , XF86AudioPause, exec, playerctl play-pause
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous

##############################
### WINDOWS AND WORKSPACES ###
##############################

# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules

# Example windowrule v1
# windowrule = float, ^(kitty)$

# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$

# Ignore maximize requests from apps. You'll probably like this.
windowrulev2 = suppressevent maximize, class:.*

# Fix some dragging issues with XWayland
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0

======Config-End========

Description
When using 4k or 1440p settings for the monitor variable on my laptop I hover around 20-30fps. I'm only able to fix this by setting monitor=,1920x1080,auto,1. I've tried using the nvidia, nvidia-open, nvidia-dkms-open arch packages, as well as nouveau but they all have this same issue. The most noticeable frame drops happen when there are two windows open and I close one, and remaining window's bezier animation to fill the whole screen will be extremely low fps, although I'm not sure if this is just more noticeable because it has a very far distance to cover compared to other animations. I've also tried Gnome and KDE Plasma which both run at 4k 60fps in wayland. I have integrated Intel graphics but I believe Hyprland is running on Nvidia since nvidia-smi lists Hyprland as a process using 1MB of memory.
How to reproduce
With an Nvidia 1660Ti Mobile and a 4k monitor, launch Hyprland. To stop the issue change the "monitor" variable in ~/.config/hypr/hyprland.conf to ",1920x1080,auto,1".
My actual laptop model is an Acer ConceptD 5 Pro, although I was only able to find my version here. Acer's seems to have released a new version with a 3070Ti and hidden the old version.
Crash reports, logs, images, videos
disable_logs is set to false, I'm not sure why this file doesn't think it is.

thats because your igpu is struggling to push 4k or 1440p on low clocks. Force it to high clocks (will cost battery) or just deal with it.


Selecting BIP32 tab throws error with blank mnemonic

Steps to reproduce

Load page and leave mnemonic field blank
Click BIP32 tab
Note an error is thrown in the developer console

See https://github.com/iancoleman/bip39/commit/0a1f0259d1cfe5217ca9c08f7fbd371a03703594 - Root key validity is checked before deriving


Add overdue job prompt to approval

Relates to #125
This PR adds a confirmation view to the job approval if the job is a once-off and past its scheduled time.

The text should be informative enough, I hope?
Cheers

Done, ready for another look!


Not compatible with Npcap Loopback Adapter

Fakenet is not working when Npcap Loopback Adapter is installed (from nmap)

Fixed in the latest update.


Arrays are matched as keywords in TOML lexer

Hi!
Arrays are matched as keywords in the TOML lexer. Would it be possible to improve the lexer to fix this? I tried to fix it myself, but without success.
On master:

Wanted:

There is a PR for this here: https://github.com/pygments/pygments/pull/1872


Roll Engine from 0ee8f267df81 to 93b465119585 (8 revisions)

https://github.com/flutter/engine/compare/0ee8f267df81...93b465119585
2021-04-15<EMAIL_ADDRESS>Roll Skia from cbb60bd0b08e to 333de882b62c (2 revisions) (flutter/engine#25609)
2021-04-15<EMAIL_ADDRESS>Distinguish between touch and mouse input on win32/winuwp (flutter/engine#25579)
2021-04-15<EMAIL_ADDRESS>Fix usage of (soon to be removed) Name.name (flutter/engine#25606)
2021-04-15<EMAIL_ADDRESS>Roll Skia from be834bfa2c3a to cbb60bd0b08e (1 revision) (flutter/engine#25608)
2021-04-15<EMAIL_ADDRESS>Roll Skia from 5c5f09bc28b8 to be834bfa2c3a (8 revisions) (flutter/engine#25607)
2021-04-15<EMAIL_ADDRESS>Roll Dart SDK from 05538f0a8a5b to 0b565abb0c24 (1 revision) (flutter/engine#25604)
2021-04-15<EMAIL_ADDRESS>change the Android FlutterEngine class doc around multiple engines (flutter/engine#25575)
2021-04-15<EMAIL_ADDRESS>[web] Render ellipsis for overflowing text in DOM mode (flutter/engine#25556)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Commit queue failed; closing this roll.


ValueError from configuration dialog

Description
Traceback (most recent call last):
  File "C:\Users\alex\AppData\Roaming\Binary Ninja\python310\site-packages\binsync\ui\config_dialog.py", line 164, in _on_repo_clicked
    path = path.with_suffix(".bsproj")
  File "pathlib.py", line 782, in with_suffix
ValueError: WindowsPath('.') has an empty name

Steps to reproduce the bug
Unfortunately, I'm not exactly sure what I did to trigger this exception. I can't seem to repro it, and things are working fine now. Hopefully the backtrace rings a bell to someone.
Environment
Binary Ninja 3.5.4311-dev Personal (ff27871c)
Additional context
No response

@alexrp so strangely, I think this is a race condition inside BinSync. You might be able to reproduce this by opening a binary for the first time in binary ninja (no bndb), quickly go and configure binsync before the whole binary finishes loading in Binja.
My hunch is that this is caused by the BV not being fully initialized when we ask for it, resulting in an empty name on the binary, resulting in this.

Hmm, I think in my case, I triggered it on a fully open and idle BV where I wanted to connect to a repo.
Come to think of it, I did manually delete a .bsproj directory that I had used previously. I then recreated it with the New button in the configuration dialog. I wonder if something went wrong in that process?

Lmao, no this is just a real bug. I'll have the fix up in 10.


Revert "Bump vitest from 0.31.4 to 0.32.0"

Reverts EasyPost/easy-ui#281
Broke our tests since it's a breaking change.
We need to get the CI status check requirement in place.

going to just fix the problem instead