[Feature Request] Restructure Builder class to support extended FXTrayIcon classes.

I'm trying to extend FXTrayIcon to allow (in addtion) for a custom Menu when righitng clicking.
I can do that fine with some reflection to get the trayIcon (all though would be nice if it was protected :D)
However, supporting the builder in my extended even with some nasty reflection just isn't do-able i think because it always returns a FXTrayIcon constructed as such instead of my custom class. I'd have to copy your wonderful code and that just doesn't feel right.
I tried settings it with reflection in the builder but its final so no bueno.
Would it be possible to Generify builder? or make the trayIcon field (in the builder) protected and not final?
Love the work btw!  <3 🥇

Hey, Sorry for getting back so late. Had a pretty spooky halloween ;) But ive now had the chance to have a look at the new implemtnation and doesn't allow construction of the custom class.
Because the Build constructor is private in FXTrayIcon it can't be used in sub classes.
Also, the fields are private in the base FXTrayIcon.Builder so they can't be used in another implementation from scratch that implements this functionality..
Also, the builder() function so returns a constructed instance of FXTrayIcon so the return can't be used either directly.
The ways i see overcoming this is either providing protected getters for the fields so we can construct our own instances of FXTrayIcon when overriding build(). This also allows us the implement our own constructor that takes a builder.
or on the other hand
the previous protected trayIcon also would work but i think we could both agree that the previous solution works better overall.

Yeah, I did try some examples. I'll try again when I get some time later, working again. :D
But i kept getting errors  like "Cannot cast FXTrayIcon to NexTrayIcon" etc. Both extending and using the base builder. :)

Here we are @EasyG0ing1!
So, for example. If i try to use this extended builder (in my extend class of FXTrayIcon)...
    public static class Builder extends FXTrayIcon.Builder {

        public Builder(Stage parentStage, URL iconImagePath, int iconWidth, int iconHeight) {
            super(parentStage, iconImagePath, iconWidth, iconHeight);
        }

        public Builder(Stage parentStage, URL iconImagePath) {
            super(parentStage, iconImagePath);
        }

        public Builder(Stage parentStage) {
            super(parentStage);
        }

        @Override public NexTrayIcon.Builder menuItem(String label, EventHandler<ActionEvent> eventHandler) { return (Builder) super.menuItem(label, eventHandler); }
        @Override public NexTrayIcon.Builder menuItem(javafx.scene.control.MenuItem menuItem) { return (Builder) super.menuItem(menuItem); }
        @Override public NexTrayIcon.Builder menuItems(javafx.scene.control.MenuItem... menuItems) { return (Builder) super.menuItems(menuItems); }
        @Override public NexTrayIcon.Builder separator() { return (Builder) super.separator(); }
        @Override public NexTrayIcon.Builder toolTip(String tooltip) { return (Builder) super.toolTip(tooltip); }
        @Override public NexTrayIcon.Builder addTitleItem(boolean addTitleMenuItem) { return (Builder) super.addTitleItem(addTitleMenuItem); }
        @Override public NexTrayIcon.Builder applicationTitle(String appTitle) { return (Builder) super.applicationTitle(appTitle); }
        @Override public NexTrayIcon.Builder addExitMenuItem() { return (Builder) super.addExitMenuItem(); }
        @Override public NexTrayIcon.Builder onAction(EventHandler<ActionEvent> event) { return (Builder) super.onAction(event); }
        @Override public NexTrayIcon.Builder show() { return (Builder) super.show(); }

        @Override
        public NexTrayIcon build() {
            this.isMac = System.getProperty("os.name").toLowerCase(Locale.ENGLISH).contains("mac");
            if (this.iconWidth == 0 || this.iconHeight == 0) {
                if (this.isMac) {
                    this.iconWidth = 26;
                    this.iconHeight = 26;
                } else {
                    this.iconWidth = 16;
                    this.iconHeight = 16;
                }
            }

            if (this.useDefaultIcon) {
                this.icon = FXTrayIcon.loadImageFromFile(this.defaultIconPath, this.iconWidth, this.iconHeight);
            } else {
                this.icon = FXTrayIcon.loadImageFromFile(this.iconImagePath, this.iconWidth, this.iconHeight);
            }

            return new NexTrayIcon(this);
        }
    }

and construct like so
   NexTrayIcon icon = new NexTrayIcon.Builder(stage, url).build();

It will not work because the fields inside the super class builder are all private with no way to access them and thus no way of passing the fields to the private constructor in my extended FXTrayIcon called NexTrayIcon. :)
Admittedly, the concept of private constructors is new to me so maybe im goofing up somewhere. Nether the less I get
error: isMac has private access in Builder this.isMac = System.getProperty("os.name").toLowerCase(Locale.ENGLISH).contains("mac");
on compile.
Obviously, whenever I've implemented my custom features for FXTrayIcon, i could add any related properties to my extended Builder for the constructor, but I just want to show the basics of course.

Okay, so this has been a bit of a learning experience for me. And I now know that all i really needed to do in my builder was this...
        @Override
        public NexTrayIcon build() {
            return new NexTrayIcon(this);
        }

and my private constructor can then look like this
    private NexTrayIcon(Builder builder) {
        super(builder);
        this.customField = builder.customField; // my custom fields assigned here
    }

but this still leave one last problem. The constructor in super is still private :D
I think the only change that needs to be done in your new implementation to support extended builders is a going from a private consturctor of FXTrayIcon to a protected one.
When private, it ensures derivaed classes cannot construct from it. But with protected classes, derivaed classes are support and no encapsulation is broken :)
Problem solved unless you have any problems

I'm not averse to making the constructor protected. I will try to review this today. Thanks!

Great @dustinkredmond!
I've setup a fork with those two changes (newbuilder & protected constrctor).
Also. I added a protected getter for the AWT trayIcon. This would just be a nice bonus as corrently I'm using reflection to get and use it for custom things.
I plan add stuff like animated trayIcon, custom right clcik menu, etc. So it would be really great if we could get this too! Reflection works but its less than idea haha.
I've made a fork here if you like the sound of all that :) i can open a pull request :)

@dustinkredmond - I looked at his fork, and I made trayIcon protected as well as the private constructor for the Builder class in my existing pull request. It looks like those were the only two changes he made.
@Nex-Coder you can see the branch where I implemented your changes here, take a look and see if it's right.

@EasyG0ing1 Yeah that all I wished for thanks! Only difference being i made a protected final getter for trayIcon. But its exactly the same result! That satisfies everything an extended implemtnation needs on my end.

@Nex-Coder I added the getter to the branch as well. It is locked and loaded in the current pull request.

@Nex-Coder - Here is an artifact that includes all of the changes if you want to test it.
FXTrayIcon.zip

I can confirm the new changes permit extended classes!!!
Test some building and changes in super() calls are also visable in the current this().
Feel free to close this thread once your done tracking/pushed to mavern. <3

The ball is in @dustinkredmond 's court right now. Everything is done, just needs to be merged and (hopefully) published.

@Nex-Coder You mentioned something about animated icons in the tray ... I'd like to see that in action...
:-)

Sure. I can work this stuff in a fork if you guys like and contribute the features you guys want :)
Not exactly sure how far I will take it, but I know I'd like some custom right click parents/controls and semi animated icons. Like Discords microphone activatity TrayIcon.

@Nex-Coder Well I know that FXTrayIcon is a native AWT control because there STILL does not exist, a native JavaFX System Tray Icon object, in spite of it being officially requested and receiving enough votes for its implementation into JavaFX back in ... 2015 I believe. It even had a developer assigned to it ... but it seems that person had better things to do.
Anyways, The reason I mention the AWT fact of our reality is that where Macs are concerned, right-clicking is an exercise in futility. HOWEVER, we can dual click on it and get some action from it that way ... Windows is another story, you can right click on it all day in Windows ... if fact, I don't think there is any difference between a right-click in Windows vs a left-click ... which is fun ...
If you start developing something that begins to have a shape to it, let me know... perhaps you could just post it on your Github page and I could clone it from there and have a look.
My email, by the way, is<EMAIL_ADDRESS>


Httpcore-405: osgi tests

…works a little.
More complex testing is certainly possible.

Patch committed to SVN trunk and 4.4.x branch.


Update JasperReports Library 7.0.0

A new library version was released: 7.0.0. on the
Files are available for the library and JasperSoft Studio here:

https://sourceforge.net/projects/jasperreports/files/jasperreports/

JasperReports Library 6.15.0 Change Log
=============================================

- minor bug fixes and improvements;
Source: readme, updated 2020-10-07

JasperSoft Studio
https://community.jaspersoft.com/download-jaspersoft/community-edition/

Starting with version 6.21.3, Jaspersoft Studio is available under a BSD-type license, with no source code provided.

Change Log (2024-06-21)
=====================
-- Full support for JasperReports® Library 7.0.0
-- Java 17 as the new minimum required environment for the plug-ins
-- JFreeChart Library upgraded to 1.5.4
-- Jersey Library upgraded to 2.39
-- New context menu item "JasperReports > Update JasperReports files" to perform a bulk update of the JRXML and JRTX files to the chosen JRL version
-- Removed Custom Visualization Component plug-in (moved to upcoming Professional)
-- Removed MongoDB plug-in (moved to upcoming Professional)
-- Removed old deprecated HTML component
-- Removed broken Subclipse SVN plug-in
-- Minor and major bug fixes
-- NOTE: the new JRXML 7 model is not compatible with currently existing JasperReports Server versions. So please be sure to properly modify the compatibility settings when needed, for example even configuring the "JasperReports Library Version" option in the "Advanced Settings" of the JasperReports Connection dialog.

The build system for the JasperReportsLibraries has been changed from Apache Ant + Apache Ivy to a pure Maven build. This makes things a lot easier in the long run because JasperReportsIntegration is using a Gradle build (based on the Maven repositories) itself.
For the developers, there is no longer the need to download the JasperReports project and build the libraries. This was done previously using the gradle build command jriDownloadJasperLibraries.
This command will be removed from the gradle file.

Currently, for testing and debugging as a developer of the JasperReportsIntegration, the mechanisms in the gradle built don't work at the moment. Previously, this was done using the integrated gretty plugin, which allowed for running an embedded Tomcat9 or Jetty container.
Due to complexities with different Java versions required by Gradle, Gretty, and JasperReports, there seem to be conflicts which will have to be resolved.
For the time being, configuring it as a Java project in Eclipse works just fine.
To set up the required dependencies in Eclipse, first run the gradle command:
<gradle command> eclipse
This will create the proper dependencies in Eclipse.
Then, refresh the project in eclipse.


Double figure 8 crash

I am attaching a .hom file and an action file for constructing a "double figure 8". In the 2d projected view of this 4-diagram, if I try to contract the bit below the tool crashes:

Chiara told me Nick probably already fixed this and just needs to upload the patch, but I'm leaving this here anyway just so I know when it's working.
double8.zip

Alpha is completely broken at the moment, it should be fixed soon once Nick pushed his changes.

I can't import this workspace anymore (probably due to the change in 6b7eadc5321a71234b103a473fd63bc886ba11a1), so I can't check if this works now. Would it be a huge pain to reconstruct?

No, I can do it quickly now.

I just tried it and I can import the workspace on alpha. Maybe the change is not live yet?

I just tried it and I can import the workspace on alpha. Maybe the change is not live yet?

You might need to force refresh to clear your cache

I did this (Ctrl + Shift + R) and I am still able to import the workspace. And I still get the crash. I will upload a new .hom file shortly.

Manuel you can check what commit version you're working with by looking at the code in the bottom right.

Version 0.1.2.
Now the tool crashed earlier in the construction. I'm attaching the action file and workspace.
homotopyio.zip

Not that, I'm referring to the hexadecimal commit reference.
On Fri, 2 Sept 2022, 18:24 mlharaujo, @.***> wrote:

Version 0.1.2.
Now the tool crashed earlier in the construction. I'm attaching the action
file and workspace.
homotopyio.zip
https://github.com/homotopy-io/homotopy-rs/files/9479958/homotopyio.zip
—
Reply to this email directly, view it on GitHub
https://github.com/homotopy-io/homotopy-rs/issues/780#issuecomment-1235744628,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACQ4OHQMMTNEAKYR3TKOQLDV4IZ5XANCNFSM6AAAAAAQCMSR54
.
You are receiving this because you commented.Message ID:
@.***>

The only thing I see in the bottom right of the screen is "Version 0.1.2". How do I find the hexadecimal commit reference?

Sorry you're right I don't know why it's not there.
On Fri, 2 Sept 2022, 18:57 mlharaujo, @.***> wrote:

The only thing I see in the bottom right of the screen is "Version 0.1.2".
How do I find the hexadecimal commit reference?
—
Reply to this email directly, view it on GitHub
https://github.com/homotopy-io/homotopy-rs/issues/780#issuecomment-1235770079,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACQ4OHSA2HGAEWGZ5PX44OLV4I5YLANCNFSM6AAAAAAQCMSR54
.
You are receiving this because you commented.Message ID:
@.***>

I can't import this workspace anymore (probably due to the change in 6b7eadc), so I can't check if this works now. Would it be a huge pain to reconstruct?

This works fine for me. I don't see how that change would affect the export. Are you sure you didn't try to import it on beta?

This still crashes. I think it's related to #744 and the action is an interchange rather than a contraction.

I wonder if we can extract a smaller example from this.

Manuel if you could find a simpler scenario that illustrates the "same" bug that would be great.

I have actually posted two different bugs in this thread. The second one is a much smaller diagram, and the bug appears in an seemingly unrelated place to the first one.
I can also try to isolate the part of the first diagram that gives the bug.

Here is a minimal version of the first bug (hom file and crash dump).
minimal.zip

Nice! This seems very similar to #798.

Both the simple file and the more complicated file in the OP seem to contract OK if I remove the assertion
https://github.com/homotopy-io/homotopy-rs/blob/d28f85fd9fa157227797a1567c15a37d761ad72e/homotopy-core/src/contraction.rs#L566
This would also fix #798. It's seeming increasingly possible that this assertion is flawed...

Correct me if I am wrong, but it seems these check if two edges which are identified have the same label. If they have different labels, then surely we shouldn't identify them.

Also this seems to contradict what you just said: https://github.com/homotopy-io/homotopy-rs/issues/798#issuecomment-1243829229
Could it be that your latest commit sort of fixed that?

Also this seems to contradict what you just said: #798 (comment)
Could it be that your latest commit sort of fixed that?

Yes, it does seem that way.
Also, having examined the equality check which fails (it's the first one), the values are:
panicked at 'assertion failed: `(left == right)`
  left: `Some(Label(None))`,
 right: `None`', homotopy-core/src/contraction.rs:453:29

So it's almost certainly an implementation bug rather than a conceptual throwing away of labels.

When does a rewrite have Label(None)?

Directed identities,i.e. someting like $f^+ \to f^0$.

Some(Label(None)) and None should be treated as the same.
I think we should change Rewrite0::label so that it returns an Option<LabelNode> instead of Option<Label> (which is equivalent to Option<Option<LabelNode>>). Does that make sense?

Ok, I'll make a minimal change to fix this then and we can discuss restructuring/cleanup elsewhere.

Cool! This has also fixed another bug I had found but not yet reported.


Add iso-3166-2

Fixes Or Enhances
Adds the option to validate iso-3166-2 codes
Make sure that you've checked the boxes below before you submit PR:

[ ] Tests exist or have been written that cover this particular change.

@go-playground/validator-maintainers

Coverage increased (+0.008%) to 75.965% when pulling f8abaf06420e274280ccde9ae46391cdda12ab41 on erma07:master into 76b917f43204d9b281b57d3a2c37ab1d56b165fa on go-playground:master.

Ubuntu 18.04.5 LTS /usr/share/iso-codes/json/iso_3166-2.json is the source of the iso_3166-2 map

Is it possible to merge this change because I really need it in my service?


[Feature] autojoin retry logic

Currently we embed significant logic in terraform for bootstrapping AWS clusters. Ideally some of this logic would move to the autojoin code embedded within gravity so it's better defined and creates less complicated bootstrapping scripts.
Items of note:

Retrieval of ServiceURL and Join token should retry and wait until the keys are created
On cluster re-install, test that the ServiceURL is available should be moved to autojoin (to wait for the new cluster key)
When doing a multi-master install, the election of which master to run the install from can be codified as well

Current leader election:
https://github.com/gravitational/terraform-gravity/blob/ec026d9d3d64485fec29c8bca7e34a8a88cb0a7f/aws/cloud-init/master.script.tpl#L42-L53
Waiting is done by waiting for a file copy from the leader:
https://github.com/gravitational/terraform-gravity/blob/master/aws/cloud-init/master.script.tpl#L284-L297

If the service URL and token are empty behave as if they haven't been created; That allows TF to create the SSM keys as empty, and when a cluster is deleted, clean it up.

Some of this is addressed in PR https://github.com/gravitational/gravity/pull/803


[NuGet.org Bug]: Some stats pages return empty results

Impact
It bothers me. A fix would be nice
Describe the bug
The following stats pages show empty results:
awssdk.core awssdk.dynamodbv2 awssdk.s3 awssdk.secretsmanager awssdk.securitytoken awssdk.sqs csvhelper fluentvalidation microsoft.entityframeworkcore microsoft.entityframeworkcore.abstractions microsoft.extensions.configuration.abstractions microsoft.extensions.configuration.binder microsoft.extensions.dependencyinjection microsoft.extensions.dependencyinjection.abstractions microsoft.extensions.logging microsoft.extensions.logging.abstractions microsoft.extensions.options microsoft.extensions.primitives njsonschema nlog restsharp uno.ui
This is because the response body exceeds JsonResult.MaxJsonLength. For example AWSSDK.Core wants to return a 5,434,369 byte response which exceeds the default 4 MB.
Repro Steps
Go to any of the stats pages linked above.
Expected Behavior
A chart show be displayed, instead of an error page.
Screenshots

Additional Context and logs
No response

https://github.com/NuGet/NuGetGallery/issues/8708

#8708

Sorry about that. I didn't see it. Closing this one as a duplicate.


Can't Bond to validator, Can't transfer

Description
I just bond from rw address to validator, It showb OK.
But later I checked again balance in RW wallet and Validator not increase.
Herre is Transaction Hash:
Transaction hash: 8bad2495395edf74ee904182a2d4e5e3143869788b0a3cc4db20ab4c0726d0c1

Provide a clear and concise description of the issue, including what you expected to happen.

How To Reproduce

Detail the steps taken to reproduce this error, and whether this issue can be reproduced consistently or if it is intermittent.

What Happened

What actually happened including any error log or so

Expected Behavior

What were you expecting

Extra

any extra information you think is relevant to issue

Environment

Operation System:
Pactus Version:
Go Version:

The above transaction is fully committed and can be verified: http://testnet1.pactus.org/transaction/id/8bad2495395edf74ee904182a2d4e5e3143869788b0a3cc4db20ab4c0726d0c1


Implement Core Location Management Functionality

Description:
This pull request implements the core location management functionality for the StoreMapper project, focusing on the first step of our development roadmap. Key changes include:

Enhanced Data Models:

Refined Coordinates class with improved distance calculation and destination point methods.
Implemented abstract Location class with Store and Restaurant subclasses.
Added LocationType enum for categorizing locations.
Improved Route class with waypoint management and distance calculation.

Service Layer Improvements:

Implemented InMemoryLocationService for basic CRUD operations on locations.
Created MapService for spatial operations and route calculations.
Added SimpleRouteStrategy for basic route finding.

Web Layer Updates:

Enhanced LocationServlet to handle GET requests for all locations.
Moved index.jsp to WEB-INF for better security.

Utility Classes:

Added LocationFactory for creating different types of locations.
Implemented TestDataGenerator for generating sample location data.
Created DistanceUtil for distance unit conversions.

Testing:

Added unit tests for Coordinates, Location, InMemoryLocationService, and MapService.

Project Configuration:

Updated web.xml for proper servlet mapping.

These changes provide a solid foundation for the core location management functionality, including:

Basic CRUD operations for locations
Spatial calculations (distance, finding nearest locations)
Simple route generation
Initial web interface for displaying locations on a map

Next steps:

Implement remaining CRUD operations in the web layer
Enhance error handling and input validation
Expand test coverage
Begin work on more advanced route finding capabilities

Refactor MapService:

Add optional filtering to findNearestLocation
Implement error handling in findLocationsWithinRadius
Add searchLocationsWithinRadiusAndKeyword method

Implement basic SimpleRouteStrategy
Expand test suite:

Add comprehensive MapServiceTest
Include edge case testing for location finding methods

Update related classes to support new functionality

lgtm


Skywalking agent modifying bytecode and blocking collisions

Please answer these questions before submitting your issue.

Why do you submit this issue?
[√] Question or discussion
[ ] Bug
[ ] Requirement
[ ] Feature or performance improvement

Question

What do you want to know?

Bug

Which version of SkyWalking, OS and JRE?
Skywalking 3.2.6
OS win7
JRE jdk1.8

Which company or project?
北京壹号车科技有限公司

What happen?
Demo in attach。
If you add skywalking agent to tomcat, the following error will appear:
java.lang.IllegalStateException: getOutputStream() has already been called for this response   at org.apache.catalina.connector.Response.getWriter(Response.java:662)   at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:213)   at com.TestController.test$original$Oz7g7Vag(TestController.java:20)   at com.TestController.test$original$Oz7g7Vag$accessor$X8Huy5Bp(TestController.java)   at com.TestController$auxiliary$2azUNemA.call(Unknown Source)   at org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstMethodsInter.intercept(InstMethodsInter.java:92)   at com.TestController.test(TestController.java)   at com.TestController$$FastClassBySpringCGLIB$$ee5085fb.invoke(<generated>)   at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
api.zip

Requirement or improvement

Please describe about your requirements or improvement suggestions.

No,  In our plugin there is any plugin to operation  the Response, excepted to get the status code . But this demo make me confused. because it cannot reproduce this error in both of version 3.2.6 and version 5.0.0-beta

@292292yang Are you sure that demo can produce this issue in your environment?

No update. Closing.


Remove chmod to make Flutter framework headers unwritable

Description
I believe code signing issues are being manifested as permission errors on these files.  Remove the chmod--it's become more problematic than helpful (it was trying to give a gentle hint to not edit those header files) and is hiding potentially actionable code signing error messages.
Related Issues
Fixes https://github.com/flutter/flutter/issues/40146.
Also see https://github.com/flutter/flutter/issues/39507.
Originally introduced with https://github.com/flutter/flutter/pull/8748
Checklist

[x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
[x] I signed the [CLA].
[x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change

[ ] Yes, this is a breaking change (Please read [Handling breaking changes]). Replace this with a link to the e-mail where you asked for input on this proposed change.
[x] No, this is not a breaking change.

Post-submit lgtm. It's worth noting that this was less a gentle hint, and more us spending a fairly large amount of time dealing with confusing bug reports that we eventually got traced to developers having unintentionally edited the headers in ways that caused compile errors (typically through jump to header in Xcode then accidentally typing/deleting things).
If this is causing issues with code signing though, an alternative would be to check for changes in the tool (e.g. verify shas or check diffs against the SDK version, etc.). I'm not super convinced that adding "DO NOT EDIT" will solve the issue (though it can't hurt!) since several of these turned out to be developers who could verify the headers had diffs, but had no recollection of editing them. Maybe accidental keypresses or something.

LGTM!
It's worth noting that this was less a gentle hint, and more us spending a fairly large amount of time dealing with confusing bug reports that we eventually got traced to developers having unintentionally edited the headers in ways that caused compile errors (typically through jump to header in Xcode then accidentally typing/deleting things).

I wish chflags nouchg let you delete the file, just not edit it.  That would solve the problem!
I don't any special flags are on the SDK headers, my guess is that the path is whitelisted by Xcode to be locked, since you can edit them in any other editor you want.


Composio: add new example

Why are these changes needed?
Our blog post shows how Autogen Agents can automate tasks with Linear and GitHub using Composio.dev. We believe this workflow could help others, adding it to Autogen's gallery would inspire the community.

@Karthikeya-Meesala please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.
@microsoft-github-policy-service agree [company="{your company}"]

Options:

(default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.

@microsoft-github-policy-service agree

(when company given) I am making Submissions in the course of work for my employer (or my employer has intellectual property rights in my Submissions by contract or applicable law). I have permission from my employer to make Submissions and enter into this Agreement on behalf of my employer. By signing below, the defined term “You” includes me and my employer.

@microsoft-github-policy-service agree company="Microsoft"

Contributor License Agreement

@microsoft-github-policy-service agree company="Composio"

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 37.94%. Comparing base (2053dd9) to head (a8b3d18).
Report is 2 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2237   +/-   ##
=======================================
  Coverage   37.94%   37.94%
=======================================
  Files          77       77
  Lines        7784     7784
  Branches     1667     1667
=======================================
  Hits         2954     2954
  Misses       4580     4580
  Partials      250      250

Flag
Coverage Δ

unittests
37.93% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Use pointermove instead of mousemove to allow touch interactions to work

Just swaps out mousemove in favor of pointermove, which encapsulates mouse, touch, and pen events. Since PointerEvent inherits from MouseEvent, there is no other change needed for this to work. See the MDN page for PointerEvent.
The other bound event, click, already handles touch events, so nothing else is needed to make this plugin compatible with touch events.
Should fix #66 (as far as touchmove -- the other two are fixed by using pointer events to cover all interactions)

@nedredmond are there any mouse events you didnt cover?
Asking because if this:

the other two are fixed by using pointer events to cover all interactions

@nedredmond are there any mouse events you didnt cover?
Asking because if this:

the other two are fixed by using pointer events to cover all interactions

I meant those two use cases are handled by the consumer, as in drawArea.pointerdown((e) => drawing.draw()) and drawArea.pointerup((e) => drawing.draw("stop")) (not sure I'm getting the syntax right, on my phone -- but you get it) which cover mouse, touch, and stylus events.
I think the user that reported the issue was seeing that the draw between touch start and touch end didn't work. With pointermove, it will.

Ah OK. I see. Thanks :)

@Fuzzyma when might this be published? I'm using this for a bugfix at work (just migrated us from raphael) and I'd like to replace import to a git url to my own fork as soon as I can.
No rush for you of course, but would you let me know when the node package is published?

@nedredmond I merged from my phone so I couldnt publish right away :D. It should be available now.
Nice to hear that people still use this lib and even moving from something like raphael!
May I ask what you are building?

I refactored the drawing tools on Khan Academy exercises so that we can improve / extend them for accessibility. They let learners draw on the margins of their exercises while they work.
After the migration, it's broken for touch experiences. Whoops! Thanks for helping me get this fix in so quickly.

Uh interesting. Hope svg.js will serve you well :D


feature: change gatheredhost / gatheredstun definition

changes the definitions of gatheredHost and gatheredStun
to return undefined if there are no onicecandidate events.

I should also rewrite the other gathered* to use the new gathered() style which returns an object :-/


Testing with protractor when ngf-select is not input

I currently try to implement a protractor test the ng-file-upload functionality. It works fine as long as I use the ngf-select on an <input> element (I jsut send sendKeys to the element), but if I use <span> or <div> with ngf-select it does not work. Protractor tells me that it cannot focus on the element:

Failed: unknown error: cannot focus element

Do you know if and how it is possible to test with non-input elements?

I finally found it, after checking the code of the plugin. I was not aware that ng-file-uploads adds an input element somewhere in the DOM (not in the original <form>), so now I can such search for it like this:

element( by.css( 'input[type=file][ng-model=modelImageName]' ) ).sendKeys( absolutePath );

Nice!

Wow, so glad I found this. Thanks!

You saved my life! Thanks a lot.

Unfortunately, when I try to use this solution, I receive the error : "Element is no currently visible and so may not be interacted with". Any other ideas?

@PerwiPerwi It's because the  surrounding the input is hidden and this causes a problem in some browsers. Here's a solution how to make it visible:
  it('should upload a file', function() {

    var callback = function () {

      var fileToUpload = './upload-test.js',
          absolutePath = path.resolve(__dirname, fileToUpload);

      element(by.css('input[type=file]')).sendKeys(absolutePath); //assuming you only have 1 input

    };

    //firefox fix
    browser.executeAsyncScript(function(callback) {

      //make ngfSelectLabel visible

      //ngf is usually the last label on the page
      var ngfSelectLabel = document.querySelectorAll('label')[document.querySelectorAll('label').length - 1];

      ngfSelectLabel.style.visibility = 'visible';
      ngfSelectLabel.style.position = 'absolute';
      ngfSelectLabel.style.top = '0'; //maybe needs adjustment, depending on where on the page you are
      ngfSelectLabel.style.width = '100px';
      ngfSelectLabel.style.height = '100px';
      ngfSelectLabel.style.background = 'white';
      ngfSelectLabel.style.zIndex = '10000'; //to account for any blocking modal / popup screens

      callback();

    }).then(function() {
      callback();
    });

  });

Thank you so much!

Hi, what if there's really no Input element? Does anybody know to do the test? Appreciate any help as I'm really stuck on this. Thank you.

It works like charm! Thanks.


Print changed config during starting to better check whether configs take affect

What problem does this PR solve?
Issue Number: close #8367
Problem Summary:
What is changed and how it works?
Check List
Tests

[ ] Unit test
[ ] Integration test
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

None

/approve

/run-integratiom-test

/approve

/run-unit-test

/run-all-tests


Adding the 2.4.0 breaking change and recommending Disable-AzureDataCo…

…llection on machines without internet connection

@bganapa : Thanks for your contribution! The author, @mattbriggs, has been notified to review your proposed change.

@mattbriggs

#sign-off

@rjagiewich : Thanks for your contribution! The author, @mattbriggs, has been notified to review your proposed change.


Hidden editors cause issues with keybinding contexts

Causing https://github.com/Microsoft/vscode/issues/9705 and https://github.com/Microsoft/vscode/issues/10122
Current thinking is to dispose editors once they become hidden.

Closing since https://github.com/Microsoft/vscode/issues/10075 landed


Add infrastructure for creating standalone service workers

Create config for the operator to use for creating workers.
The operator will use this config to load specific workers to handle desired operator operations, such as scaler, configuration services .etc.

@idanl21 I believe that this is done too?

Done.


Better metadata for blog posts

When posted to twitter and reddit it has no image and the Post:  prefix kinda sucks

35eb38fc650f59911d113fe7bdc053e29f9d66e8

Good enough


How to highlight a portion of the score?

In my app (which controls Yamaha's digital pianos) the user loads a midi-file for playback and a corresponding musicxml-file is loaded into Lomse score object. Then user can start playback on piano, the program receives playback position from piano via midi-events and moves current playback position in the score using interactor->move_tempo_line_and_scroll_if_necessary - this works perfectly.
Now there is a feature where user can select a portion of the score for practice. When it hits playback button the piano plays the selected portion over and over again (it actually waits for player to push correct keys). The program continues correctly displaying position with the above Lomse function. All good here.
In the original Yamaha application there are two orange vertical lines - one at the beginning  and one at the end of the selection. The beat which is currently being played is painted with the orange background.
Screenshot from Yamaha app:

I wonder what are my options to highlight selected portion of the score in Lomse?

Is it possible to draw vertical lines (of custom color) at certain measure/beat positions? That would be similar to Yamaha app and is very nice looking. When #168 get implemented I can use the same color for both tempo rectangle and selection lines but for now I need to use another color for selection.
Maybe I can change the color of notes in the selection? That probably wouldn't look as nice as the first alternative but probably can be implemented with current Lomse features. I would need to find out which notes belong to selection. The starting and ending position of the selection is provided as "measure/beat" (as required by piano API).

Yes, is it possible to draw vertical lines at any point in the score, of any color , line type and line endings, and to remove them when desired. It is just inserting/deleting line objects in the document model at the desired places. The drawback is that this approach requires good knowledge of the document model. Right now I'm busy but in a couple of days I will post some sample code for doing it.
As drawing/removing a pair of markers is a very common need (e.g. to select a portion for playback or other uses) probably it would be useful to add a couple of simple methods for this to the API. But it is necessary to assess what the most common needs may be so that the API be useful and simple. Ideas for this are welcome.

I have added sample "drawlines" (in examples/samples). It is a simple program to display an score. In the menu there is an option to add colored marker lines to the score, and another option to remove them.
The importante part are methods MainWindow::on_add_lines() and MainWindow::on_remove_lines() in file drawlines.cpp. I wrote the sample very quickly and can be improved. But its in an example of the code you could use for drawing marker lines and removing them.
While coding this sample I've noticed that lomse does not have a suitable API for score manipulation, at least for the most common expected operations. For instance, it is complex to position the cursor on a given measure. I have opened issue #208 to define this API. Any collaboration to define the API is welcome. Examples of use cases that you would like to be considered or ideas to outline the API would be of great help!

Thank you very much, this is incredibly useful!
In my application the start and end position of selection are defined as measure/beat (via piano midi events). I have to figure out how to move cursor to certain measure/beat. I need to put the first line to the beginning of certain measure/beat and the end line to the end of other measure/beat (if that's possible).
My progress so far:

Orange is the tempo line, blue and green are selection lines. As you can see the selection lines cover only the first instrument. I changed the height of lines from 70 to 180:

That's much better.
Two open questions:

How to move cursor to measure/beat (optionally to the end of beat).
How to calculate proper height of lines to cover all instruments?

As to your questions:

How to move cursor to measure/beat (optionally to the end of beat).

There are several options for this:

Method ScoreCursor::to_measure(int measure, int instr, int staff) allows you to position at start of any measure. From there, you can move forward or backwards to the desired point.

Method ScoreCursor::to_time(int iInstr, int iStaff, TimeUnits rTargetTime)allows you to move to any time position. But currently, there are no methods to deal with beats, only with time position. You will have to convert beats to time duration by taking into account current time signature.

Method ScoreCursor::point_to(ImoId nId) can be used to move to end of score by providing a non existing Id such as k_no_imoid.

Leave me a couple of days to document the current cursor API and then you can decide the best options for your app and we could discuss further needs if required.

How to calculate proper height of lines to cover all instruments?

This is a conceptually complex task although its implementation could be simple. This is because you will have to deal with two internal models: the document model and the graphic model.
The document model knows nothing about how the document will be rendered and thus there is no knowledge to determine the height of a line to cover all instruments. At document level you can only deal with local measurements in tenths of staff line spacing and with points referred to an object position. But currently there is no information to link two unrelated points such as top staff of first instrument and last staff of last instrument.
To get that information you will have to query the graphic model, i.e. by accessing the system box and taking its height. Then you will have to convert this box height (in logical units, cents of one millimeter) to tenths (no problem, there are methods for this) and with this information decide the height to assign to the line in the document model.
These type of computations should be restricted to lomse internals, as they can create a lot of backwards incompatibility problems when there are changes in the Lomse internal models. Therefore, I will not support this approach. I would prefer to code an API method for drawing and removing line markers on the score. Let's define an initial specification suitable for your needs and general enough for other uses and I will code it in a few days. If you agree please open an issue for this API method with your initial needs and some generality for other uses. For instance, marker styles (line, open/close brackets, open/close parenthesis, other), marker heights (one staff, all saves for an instrument, all staves from instrument i to instrument j, other). Also it is necessary to consider if these markers have to be just visual effects, overlayed on the score, without representation in the document model or, by the contrary, these markers are real objects in the document model, such as the lines drawn in the 'drawlines' sample.

Thanks again.
I've found that positioning to measure/beat is easy:
TimeUnits timepos = ScoreAlgorithms::get_timepos_for(score, measure, beat);
cursor.to_time(0, 0, timepos);

There is however an issue with the approach from the example. It is based on add_attachment to an existing object. If however there is no object at certain beat position the cursor.staffobj() returns NULL and we can't add.
Is there another possibility to add a new object to the staff at certain time position?

I would prefer to code an API method for drawing and removing line markers on the score... If you agree please open an issue for this API method.

Great, I'll post an issue.

Thanks! I forgot about ScoreAlgorithms::get_timepos_for(score, measure, beat);  It's a perfectly valid solution.
The solution in the sample is based on add_attachment because lines are auxiliary objects that can not be placed directly on the staff. They need to go attached to an staff object. But when there is no object at certain beat position you can always insert an empty staff object and attach the line to it.
It is not possible to directly insert staff objects at specific time positions. Objects are inserted before or after an existing object or appended at the end of the score. The time position of an inserted object is implied by the existing objects before the insertion point. Consider inserting notes. You can not place a note at a given time pos. You just insert a note after another one, and the resulting time position will be given by the previous note time position plus its duration. A timepos can be occupied by a long duration note. Consider a 4/4 time signature score with one whole note. Beats 2, 3 and 4 are occupied by the note. If you points cursor to the second beat it will move to first object after the whole note and as the time position is greater than the requested one it returns nullptr to signal that that position is invalid.
In previous example, the only posibility to insert an object at second beat is by starting a second voice. You must point to the whole note and insert after it an invisible quarter rest in voice 2, and then the empty staff object, also in voice 2, to attach the line to it.
The complexity of traversing a real score with many parts and inserting objects at specific time positions is big and IMO is not required in real score edition scenarios. Perhaps hig level API method for very common operations could be considered. But working at low level, I would suggest moving to the barline where the measure starts, and from there advance to the desired beat by iteration, until you find an object whose timepos is equal or greater than the desired beat timepos, and attach the line to it. Something as (not tested):
cursor.to_measure(measure, instr, staff);	//will point to first object after the barline
pAt = cursor.getstaffobj();
if (pAt == nullptr)
{
	//nothing after the barline. You are at end of the instrument.
	//Append an empty staffobj to attach later the line to it
	pAt = pInstr->add_spacer(0);
}
else
{
	//pointing to first object after barline. Locate beat time
	TimeUnits beatTimepos = ScoreAlgorithms::get_timepos_for(score, measure, beat);
	while (!cursor.is_at_end_of_score() && cursor.time() < beatTimepos)
    {
		cursor.move_next();
    }

	//here timepos is equal or greater than desired timepos. Move to right instrument/staff
	while (!cursor.is_at_end_of_score() && cursor.instrument() != instr && cursor.staff() != staff)
    {
		cursor.move_next();
    }

	//here you are at first staff object in the desired instrument/staff with timepos equal or
	//greater than the desired beat time pos. Or you are at end of score
	if (!cursor.is_at_end_of_score())
	{
		//You are at end of the instrument.
		//Append an empty staffobj to attach later the line to it
		pAt = pInstr->add_spacer(0);
	}
	else
		pAt = cursor.getstaffobj();

	//now attach the line
	pAt->add_attachment(pDoc, line);

When comparing time positions be aware that they are real numbers. Consider an error epsilon when looking for equality.

But working at low level, I would suggest moving to the barline where the measure starts, and from there advance to the desired beat by iteration, until you find an object whose timepos is equal or greater than the desired beat timepos, and attach the line to it.

During playback the tempo line can be positioned at any beat, even when there are no notes on any instrument at that beat:

I guess the approach find suitable object to attach to doesn't always work if the want to draw lines at any beat?

the only posibility to insert an object at second beat is by starting a second voice. You must point to the whole note and insert after it an invisible quarter rest in voice 2, and then the empty staff object, also in voice 2, to attach the line to it.

Can you please give an example of this? Or is this the big and complex thing you meant above?
#210, if implemented will draw that code obsolete though. Please don't bother with the example if you are going to work on visual markers.

During playback the tempo line can be positioned at any beat, even when there are no notes on any instrument at that beat

Yes, tempo line is a visual effect and does not use score objects for positioning. It is a picture overlayed on the score at any desired position (logical units). It knows nothing about timepos, mesures, beats or tenths. But ScoreCursor is a kind of iterator over the collection of staff objects and thus only can point to existing objects and not to empty time positions. Instead of returning nullptr when an object does not exist in a given timepos it could have returned the nearest object to that timepos but will never return a non-existing object!
I have started to work on #210 so I would suggets to forget about inserting lines. In a few days, I expect to have a first implementation of the add_visual_market() method to test and experiment with it.

I have started to work on #210

That's great, thank you!

Closing this issue then.


Made status bar transparent

Made status bar transparent to look more professional.
Description
Describe the changes you have made.
Issue Resolved
Link to the issue that is resolved by this pull request goes here e.g. Fixes #10.
Screenshots
Provide some screenshots of the changes made (if applicable).
Checklist
Please make sure to review the following before submitting your PR:

[x] I have read the contribution guidelines.
[x] I have read the code of conduct.
[x] I have reviewed my submission in detail.

Can you share a screeenshot of the app after the changes

Can you share a screeenshot of the app after the changes

Seems fine, can you share one in light mode as well

Can you share a screeenshot of the app after the changes

This is after changes

can you share one in light mode as well

can you share one in light mode as well

can you share one in light mode as well

can you share one in light mode as well

Sir in light mode for your reference

Share a screenshot

Please a share screenshot to show your changes, otherwise I won't be merging this pr

OK I would share.


Added the option to add fields and Tables

through the API.

Hi @Bertverbeek4PS
I have created a new pull request making some big changes from your PR,

I have created new APIs solely for the purposes of insertions.
I have kept the old table API page largely unchanged, while adding the capability to enable/ disable/ reset the individual records
I removed all system audit fields except systemID
I added a validation check to ensure that fields are not inserted for absent tables.

Please see the PR at https://github.com/microsoft/bc2adls/pull/113.
I created the PR as it was easier for me to make the changes instead of making comments on this one. If you wish, you may copy my changes to this PR and I shall happily approve it.
best regards,
Dutta.

Hi @DuttaSoumya I have added new changes to the commit based on your proposal :)

I have also changed the ADLSE Setup API and ADLSE Run API to be consistent


#382 added link_with_credential function

Added a function to link an anonymous account with an oAuth2 account via a token provided by the account being linked to

Closes #382


.shape is missing from the documentation

The method shape returns the dimensions of an array, but is not mentioned in the documentation.
I'm unsure how and where to add this to the documentation.

Maybe https://github.com/perl6/doc/blob/master/doc/Type/Array.pod ?

Seems to be the right place. :-)
The next thing: the docs contain entries like
Defined as:
    multi sub    shift(Array:D )
    multi method shift(Array:D:)

Where do I find that kind of information?
rakudo/src/Array.pm gives me: method shape() { (*,) }. That looks different.
So far I guess my addition to Array.pod would be:
`=head2 method shape
Defined as:
    method shape() { (*,) }

Usage:
ARRAY.shape

Returns the shape of the array as a list.
Example:
my @foo[2;3] = ( < 1 2 3 >, < 4 5 6 > );
say @foo.shape;     # (2 3)

`
OK?

Create a pull request please and let us see what #perl6 gurus say :+1:

I think those gists come from something like:
.perl.say for Array.can("shape")
method shape (Array $: *%_) { #`(Method|140420701857272) ... }
On Sat, Mar 5, 2016 at 10:24 PM Ahmad M. Zawawi<EMAIL_ADDRESS>wrote:

Create a pull request please and let us see what #perl6 gurus say [image:
:+1:]
—
Reply to this email directly or view it on GitHub
https://github.com/perl6/doc/issues/411#issuecomment-192624157.

I created a pull request.

Thanks. Waiting for Travis CI to OK to merge :+1:
@edehont++

Merged in https://github.com/perl6/doc/commit/cc82fb2004179732c3cc03c07a1d0e7919d31ad1

@edehont thanks for your contribution.
Regarding the question of where to find things, an easy way it use git grep in a clone of the rakudo repository:
moritz@pat:~/p6/rakudo$ git grep 'method shape'
src/core/Array.pm:    method shape() { (*,) }
src/core/native_array.pm:        method shape() {
src/core/native_array.pm:    method shape() { (*,) }

The interesting thing is that normal arrays aren't constraint in their shape, hence they return a placeholder (a list returning a whatever star). Only native arrays support shapes right now, which is why one of the methods in src/core/native_array.pm returns more interesting values.

I'm still in the sorcerer's apprentice stage where git and #perl6 are concerned... Thanks.

It suddenly hit me what you meant: the case of the normal array returning the whatever star should be explicitly mentioned in the docs as well.
I will add that ASAP.

Thanks looking forward for your pull request :+1:

It's already merged. https://doc.perl6.org/routine/shape


Clarify starting position 🏎

When I first followed The Auth0 Quickstartl, I did not know from which starting position I could follow this quick start.
I believe this PR will clarify it for others.

🚀 Thank you for your contribution! 🚀


Try enabling akka backend for Scala 3

https://akka.io/blog/news/2021/12/20/akka-2.6.18-released

akka-http won't be published for Scala 3 under an open-source license, so this unfortunately won't happen - closing.


kie-remote-client: use explicit dependency to fix parallel builds

@mrietveld could you please double check this? I believe it is safe as we are using the same on master and 6.3.x for some time now.

+1 from me, thanks @psiroky

@mswiderski Thanks! yes, +1


April 2022 ARR: Area Chair can't modify reviewer assignments

There is no link to modify reviewers, see below:

For comparison, see January 2022 ARR:

It's fixed now.


help wanted: Generated code doesn't contain any way to actually decode a buffer

Hi all. Just getting started with swift-protobuf (and Swift, for that matter).
I'm following a somewhat out-of-date example I found online; I have it building successfully, but when I try to instantiate an object (message) that's defined in my proto file by passing the constructor a buffer, the compiler complains "Argument passed to call that takes no arguments." And indeed that's true; there's no initialization that takes anything. I don't see anything in the extensions defined in the file that would provide this either. What am I missing here? Thanks!
Here's the proto file:
syntax = "proto3";

message Contact
{
  enum ContactType
	{
    SPEAKER = 0;
    ATTENDANT = 1;
    VOLUNTEER = 2;
  	}

  string first_name = 1;
  string last_name = 2;
  string twitter_name = 3;
  string email = 4;
  string github_link = 5;
  ContactType type = 6;
  string imageName = 7;
};

The Swift file generated by protoc looks typical (attached)
contact.pb.txt
. But this code then fails to compile:
let contact = try? Contact(protobuf: data)

what OS you are developing on (Linux or macOS, including the version)
Mac OS 10.14.2

for macOS, what version of Xcode you are using (xcodebuild -version),
for Linux, what version of Swift (swift --version)
Xcode 10.1

what version of Swift is your code set to compile with (i.e. from project
settings, etc.)
4.2

what branch/tag of SwiftProtobuf you are using (1.0.0, etc.)
I can't tell. I downloaded it zipped, not with Git. I can't find any other indication of version. The file dates are all December 16 (two weeks ago).

Never mind. The code was out of date, and the syntax now takes "serializedData" in the initializer.


[ENHANCEMENT] How to run tests in parallel (possibly with pabot) using robotcode extension

Hello, I would like to first say that I'm loving the tool, debugging with it is an awesome feature.
Now to the business,
I've been trying to make tests to run in parallel, with pabot in such case, but I can't find how to configure robotcode/VSCode to replace "robot" with "pabot", therefore I came here, with shame by not finding the solution myself, to ask if:
Does someone knows how to configure pabot with robotcode?
Thank you in advance for replies.
Desktop (please complete the following information):

VS Code Version [1.88.1]
RobotCode Version [0.80.0]
OS: [All of them]
Python Version [3.10.11]
RobotFramework Version [7.0]
Additional tools like robocop, robotidy [None]

Hello, this is a good question, and I hope it will be logged here too. Yet, you might be interested to ask this on Robot Framework slack or forum.

sorry, a direct integration of pabot is not possible at the moment, so you have nothing to be ashamed of ;-)
To be honest I thougth sometimes about such things like running tests in parallel, I don't think that I want to use pabot as a runner, because it "hacks" robot framework and it is old code and supports very old robot and python versions.
But there are some new features in Robot Framework, like saving a test suite or test run to json format and in python the concurrent libraries and something like ProcessPoolExecutor, that should make it easy to implement such things. But the main problem is, how can I handle such things like seeing the status of execution in vscode or how can I attach the RobotCode debugger to several processes.
But I will leave this Question open, make it to an enhancement, to not forget this.
In the mean time, maybe you can create a vscode launch config of type python module with pabot as module and all the command line parameters you need, then it should be possible to start tests with pabot within vscode, but debugging the robot part is not possible with that.

Hello @d-biehl Thank you for replying and adding it as enhancement 🥇.
Not very much related, but still related to changing how we call robot with the robotcode, here at the company we have been doing a POC with percy and the tool require us to start robot with npx percy -- exec  robot ...
<If you don't see the relation here I can sure open a new ticket to discuss that.>
Of course, as workaround, the vs code launch config of type python module  should also help in such situation.

@digoo
Have you tried running pabot with the --command / --end-command flags? I think that might work, I've tried this out today on a very basic setup. And it doesn't seem to crash and uses toml profile information.  A very simplistic example:
pabot --command robotcode -p tst robot --end-command .


Issue 182: Add Windows test to build

This PR amends addresses issue #182. It amends the GH Actions workflow to:

Include the Windows 2019 self-hosted runner with npcap pre-installed
Separates the test and build into two steps, making the latter dependent on a push to main
Regularizes the workflow to bring it inline with other OpenCyphal workflows

This PR is pending an investigation into the failure of the Windows test on the self-hosted runner with npcap pre-installed.  It fails to create a multicast group on the UDP socket on the loopback address. The WinSock error code is [WSAEADDRNOTAVAIL].  Full logs can be found here.

The workflow has been standardised with the other projects but the issue mentioned on Jun 12 above still persists.

@silverv please look into this asap

It's time to merge!


Allow configurable startup timeout

Currently, the timeout is configurable wait_until_up:
    def wait_until_up(deadline = Time.now + 2)

... but that parameter is used nowhere else in the code.  Perhaps this should be taken from @options passed into the constructor?

Fixed in 94a1e38593f2b5eb590dadc337a4a1579314b912.


fix broken golangci-lint step

the step included before just downloaded and cached golangci-lint, but didn't run it as part of the job. However, the action previously used stopped working today (see warning message at https://github.com/projectrekor/rekor-server/actions/runs/359783608 ) so I've replaced it here with a version that not only downloads & caches, but actually runs the linters against the PR as part of the check.
It is complaining about some incomplete code in app/admin, so I've set it to treat the failure as non-fatal, and I can fix that error in a different PR.
@lukehinds @dlorenc let me know if this is good to merge as-is.

LGTM!


Adds new metrics for tracking deactivation of old plugin

fixes https://github.com/GoogleCloudPlatform/google-cloud-intellij/issues/892

I would really love to get this in before our Beta release. Any chance we can merge this and cut a new release build?

Yes. I'd like to also include: https://github.com/GoogleCloudPlatform/google-cloud-intellij/pull/899

I'm ok with the current state of this. lgtm.

I'm good with this once the disable link click event label has been made a bit more specific.

Updated to address @patflynn's concern. Feel free to merge once tests pass, in case I'm AFK when it's done.


Could not start worker thread

Checkout revision 74c609c265ce6399e9619e11bae02c62eae9e911 of the sdk and build it.

Copy the attached file to sdk/pkg/analyzer/test/performance (renaming it to '.dart').

Run the command
/Users/brianwilkerson/Dev/dart/dart-sdk/bin/dart --ignore-unrecognized-flags --pause_isolates_on_exit --checked --enable-vm-service:53213 --trace_service_pause_events /Users/brianwilkerson/src/dart/sdk/sdk/pkg/analyzer/test/performance/time_build_scopes.dart

I get the following output:
Observatory listening on http://<IP_ADDRESS>:53213
Analyzing 8922 files
Exhausted heap space, trying to allocate 549760 bytes.
/Users/brianwilkerson/src/dart/sdk/sdk/runtime/vm/thread_pool.cc:346: error: Could not start worker thread: result = 35.
Process finished with exit code 134

time_build_scopes.txt

I followed these instructions, and could not reproduce on my desktop Linux machine. The program uses up to 7GB of memory, though. Error 35 from pthread_create() is EAGAIN meaning "Insufficient  resources to create another thread". It looks like what happened in your run is that memory was exhausted. Following that, the ways in which the VM will fail to make progress aren't entirely predictable, especially in the presence of multiple threads/isolates. I don't think there's a whole lot we can do better here, so I'm going to go ahead and close this out.

In case it matters, this was running on my MacBook Pro.

@zanderso, I am pretty certain @bwilkerson ran with a ia32 (as in similar related recent bug reports) build so that would explain why he ran out of address space. Brian, can you please confirm?

Yes:
$ dart --version
Dart VM version: 1.16.0-edge.ceec063f27b6bde552cf22193aa2ba4e3d310c15 (Thu Mar 17 14:51:59 2016) on "macos_ia32"

Is there anything I can do to work around this? Having the VM crash on me is making it difficult for me to improve the performance of analyzer.

At this point you have essentially two options: Run a x64 build or use less memory in the analyzer.

../../runtime/vm/thread_pool.cc: 315: error: Could not start worker thread: result = 22.
version=2.17.0-112.0.dev (dev) (Tue Feb 15 21:18:47 2022 -0800) on "windows_x64"
pid=2080, thread=13136, isolate_group=main(000000CBD6121950), isolate=(nil)(0000000000000000)
isolate_instructions=7ff6ed1d5760, vm_instructions=7ff6ed1d5770
  pc 0x00007ff6ed3dfdd2 fp 0x000000cbebc1e5e0 Unknown symbol
-- End of DumpStackTrace
  pc 0x0000000000000000 fp 0x000000cbebc1ed00 sp 0x0000000000000000 [Stub] CallToRuntime
  pc 0x000000cbd6181c5d fp 0x000000cbebc1ed38 sp 0x000000cbebc1ed10 [Stub] AllocateClosure
  pc 0x000000cbe502389e fp 0x000000cbebc1ee20 sp 0x000000cbebc1ed48 [Optimized] Query.sendExtended
  pc 0x000000cbe502e5ae fp 0x000000cbebc1eea8 sp 0x000000cbebc1ee30 [Optimized]<EMAIL_ADDRESS>  pc 0x000000cbe502b871 fp 0x000000cbebc1f020 sp 0x000000cbebc1eeb8 [Optimized] _PostgreSQLConnection&Object&_PostgreSQLExecutionContextMixin@280299794._enqueue@280299794
  pc 0x000000cbe502ed51 fp 0x000000cbebc1f078 sp 0x000000cbebc1f030 [Optimized] _PostgreSQLConnection&Object&_PostgreSQLExecutionContextMixin@280299794._enqueue@280299794
  pc 0x000000cbe5026e76 fp 0x000000cbebc1f198 sp 0x000000cbebc1f088 [Optimized] _PostgreSQLConnection&Object&_PostgreSQLExecutionContextMixin@280299794._query@280299794
  pc 0x000000cbe503054c fp 0x000000cbebc1f1f0 sp 0x000000cbebc1f1a8 [Optimized] _PostgreSQLConnection&Object&_PostgreSQLExecutionContextMixin@280299794._query@280299794
  pc 0x000000cbe502d677 fp 0x000000cbebc1f300 sp 0x000000cbebc1f200 [Optimized] saveArchivesToDB
  pc 0x000000cbe5014e9d fp 0x000000cbebc1f358 sp 0x000000cbebc1f310 [Optimized]<EMAIL_ADDRESS>  pc 0x000000cbe5018c26 fp 0x000000cbebc1f3d0 sp 0x000000cbebc1f368 [Optimized] _Future<EMAIL_ADDRESS>  pc 0x000000cbe5013938 fp 0x000000cbebc1f438 sp 0x000000cbebc1f3e0 [Optimized] _Future@4048458._propagateToListeners@4048458
  pc 0x000000cbe5029824 fp 0x000000cbebc1f480 sp 0x000000cbebc1f448 [Optimized] _completeWithNoFutureOnAsyncReturn@4048458
  pc 0x000000cbe5027141 fp 0x000000cbebc1f598 sp 0x000000cbebc1f490 [Optimized] _PostgreSQLConnection&Object&_PostgreSQLExecutionContextMixin@280299794._query@280299794
  pc 0x000000cbe5014e9d fp 0x000000cbebc1f5f0 sp 0x000000cbebc1f5a8 [Optimized]<EMAIL_ADDRESS>  pc 0x000000cbe5018c26 fp 0x000000cbebc1f668 sp 0x000000cbebc1f600 [Optimized] _Future<EMAIL_ADDRESS>  pc 0x000000cbe5013938 fp 0x000000cbebc1f6d0 sp 0x000000cbebc1f678 [Optimized] _Future@4048458._propagateToListeners@4048458
  pc 0x000000cbe5031301 fp 0x000000cbebc1f720 sp 0x000000cbebc1f6e0 [Optimized] _Future<EMAIL_ADDRESS>closure>
  pc 0x000000cbe5031ae6 fp 0x000000cbebc1f788 sp 0x000000cbebc1f730 [Optimized] _startMicrotaskLoop@4048458
  pc 0x000000cbe5028be3 fp 0x000000cbebc1f7b0 sp 0x000000cbebc1f798 [Optimized] _startMicrotaskLoop@4048458
  pc 0x000000cbe501c87e fp 0x000000cbebc1f7f0 sp 0x000000cbebc1f7c0 [Optimized] _RawReceivePortImpl@1026248._handleMessage@1026248
  pc 0x000000cbd6182668 fp 0x000000cbebc1f918 sp 0x000000cbebc1f800 [Stub] InvokeDartCode