Update versions of Java dependencies

This Pr address a part of #438 by updating the packages to newer versions which don't have any known cves at this time.

cc: @jdye64 it would be great if you could take a look and let me know if the version need to be updated elsewhere as well.

Codecov Report

Merging #445 (ed1679b) into main (a05138d) will decrease coverage by 0.02%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #445      +/-   ##
==========================================
- Coverage   88.56%   88.53%   -0.03%
==========================================
  Files          70       70
  Lines        3497     3498       +1
  Branches      700      694       -6
==========================================
  Hits         3097     3097
+ Misses        315      313       -2
- Partials       85       88       +3

Impacted Files
Coverage Δ

dask_sql/_version.py
32.27% <0.00%> (-0.29%)
:arrow_down:

dask_sql/physical/rel/custom/predict.py
95.34% <0.00%> (-0.11%)
:arrow_down:

dask_sql/utils.py
100.00% <0.00%> (ø)

dask_sql/_compat.py
100.00% <0.00%> (ø)

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more

LGTM. Straight forward change with no side effects


Add getAllDependents and getAllDependencies method to the DependencyGraph class

https://github.com/ballerina-platform/ballerina-lang/blob/master/compiler/ballerina-lang/src/main/java/io/ballerina/projects/DependencyGraph.java
    // Returns all direct and indirect dependents of the node T
    public Collection<T> getAllDependents(T node) {
    }

    // Returns all direct and indirect dependencies of node T
    public Collection<T> getAllDependencies(T node) {
    }

@sameerajayasoma  Can I please take this issue ?
Thanks!

@keizer619 can I please be assigned to this issue? There have been no updates for 3 weeks

@keizer619 @sameerajayasoma I created a PR for the issue. If Shreya comes back with a PR, please just ignore mine. Thanks

Thanks @keizer619
Can you please run the workflows on my PR?

Thanks @keizer619 Can you please run the workflows on my PR?

There are some test failures.

@keizer619 I made some confusion in the tests, bot now they're all fixed. Please re-run the checks.

@sameerajayasoma @keizer619 I see that CI Windows still fails, but I don't know why. Could you have a look please?

@sameerajayasoma @keizer619 I see that CI Windows still fails, but I don't know why. Could you have a look please?

@adripo These are some intermittent test failures. We have fixed it now.


Zapiperf workload objects

fix for #9
as mentioned in the issue, this is an inefficient way to support workloads (some counters are collected twice), leaving a better implementation for the future.
the 4 workload objects are disabled by default and the data poll interval is set to 3 minutes

sorry, messed up with commits, closed to open a new pr


test-branch/execute-job/quoted-authorization/a3aef18d-458c-441f-90be-0c0e099091f3

PR for testing 2994fb943a86f18782fc0a4ce1d53da0e0e547ee

/canonical/self-hosted-runners/run-workflows 2994fb943a86f18782fc0a4ce1d53da0e0e547ee


Open source IMX298 camera driver

Would it be possible for commaai to publish the IMX298 camera driver for linux as an open source kernel extension independently from the visiond binary?
I own a Jetson TX2 and 3 x $6 usd Oneplus 3 rear camera, I think it should be possible to replace the camera it has with that one if I can figure out the correct wiring and have two of them taking stereo video at high fps and the third one taking high resolution video at 30fps.

Hmm, don't you work for our competition now?
I'm not even sure what you mean by camera driver. Most of our camera stack is qualcomm specific, and already open source in the Android kernel. The user space stuff in visiond is highly qualcomm specific as well. It won't really help you with an nVidia port.
For prototyping, why use such a difficult camera? Just get some Point Grey.

In order to load specific cameras on the jetson tx2 or tk1 I need to enable a .ko kernel module, that's what I am calling the driver for lack of a better word.
Right now I am using a close sourced one from e-con systems or the one nvidia ships with, that one was quite expensive and I'd like to move to cheaper (and better) ones.
I'd like to see myself as a comma ai coopetitor, I'm still working on creating the DBC file and publishing detailed info about each can command as I understand them: https://github.com/autti/abraham/issues/63 and updating issue #1 here.

We didn't write any kernel code for our camera driver, it's already open source.
https://android.googlesource.com/kernel/msm/+/8a49608cf010892935740e26fe575dde56e5224e/drivers/media/video/msm

(our full kernel is also open source, and we don't load any modules)
https://github.com/commaneos/android_kernel_oneplus_msm8996

This is great news to me, I'll look for something that looks like the imx074.c in the official android folder on the commaneos fork.
Thanks a lot!

https://github.com/commaneos/android_kernel_oneplus_msm8996/tree/master/drivers/media/platform/msm/camera_v2


allows OR searching on scientific concepts

@DanielJMaher As a Oceanographic Engineer, could you review the scientific concepts here and ensure they are all in their correct categories and names are appropriately assigned?

Approved by Vardaro!


fix: handle win32 paths

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


feat: add GenDigital implementation

@BigBlueHat please review and merge

@skynet2 @sudeshrshetty same thing needed as on https://github.com/w3c/vc-test-suite-implementations/pull/84#issuecomment-2515626476
The id needs to be a URI--ideally a did:key.

hi @BigBlueHat ,
Updated, please review.
Thanks,
Stas

@skynet2 fyi the BitstringStatusList test suites have migrated to the w3c and don't need to be duplicated here as you have included them in the w3c implementations. Otherwise this looks good!

Can you remove the BitstringStatusList entries? Those are covered by your other PR: https://github.com/w3c/vc-test-suite-implementations/pull/84
Otherwise, this looks good!

hi @BigBlueHat ,
Thanks for the patch. I applied it.
Thanks,
Stas

Hi @BigBlueHat  can you please review the PR we made the change that requested

@PatStLouis Can you please generate latest interop report for vc-api issuer & verifier test suites.


Add seccomp unconfined

Add seccomp unconfined. Fixes:
Using prysm.dnp.dappnode.eth
curl: (6) getaddrinfo() thread failed to start

ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

Using prysm.dnp.dappnode.eth
curl: (6) getaddrinfo() thread failed to start

ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

Fixes issue for Docker v20.4


Server shutdown when load resourcepack

my server shutdown when anywhere player load RP for login in my server.
https://imgur.com/UPCDNBO

PD: version 1.14.4

Resource packs actually have nothing to do with the server, though. The server just gives a URL to the players' client, the client then loads the RP directly from it host (Amazon S3 in the case of Magic's official RPs)
So I honestly can't see how the two would be related at all.

no, sorry its my world, one chunk have problems, sorry, close issue.


stop ignoring liveview diffs on code snippet container

what is this?
re-implementing the fix for https://github.com/surface-ui/surface_catalogue/issues/13 - looks like a regression snuck in during a run of mix surface.convert in https://github.com/surface-ui/surface_catalogue/pull/15/files#diff-02eaac6d9911de90de16ae0d200d87bff2eb2efe08703a826a9a56faf6da38aeL144-R145
before:
https://user-images.githubusercontent.com/81541018/134599300-99aa3df3-d341-4e43-adbd-a1877820e256.mov
after:
https://user-images.githubusercontent.com/81541018/134599323-e82925e8-9d17-42e9-b9e6-17f5dc3269b7.mov
thanks for all of the awesome effort put towards surface, liveview and surface catalogue! very excited about the tailwindcss direction and the catalogue moving beyond a prototype. please let me know if there's a better place to get involved / look for opportunities to contribute!

@justlampin thanks for the PR! ❤

very excited about the tailwindcss direction and the catalogue moving beyond a prototype. please let me know if there's a better place to get involved / look for opportunities to contribute!

There are many opportunities for contributions on that front. For instance, we're evaluating the possibility to have an official component suite based on TailwindCSS, probably using DaisyUI. If we decide to migrate the catalogue to Tailwind, that will be the suite we'll use for that. Would that be something you'd be willing to contribute to? If not, let us know what you'd might be interested in.
There are also many other ways to contribute like improving documentation, fixing bugs, answering questions in the forum or slack. Feel free to take a look at the our open issues or share ideas you have that could turn into potential contributions.
Thanks again!

Hey @justlampin!

if i followed what i read in the github issues correctly, it sounds like we'd consider using alpine.js to drive that type of functionality- is that still the plan?

It is, but only when really necessary. If it can be solved with simple vanilla JS (or even CSS), we should avoid alpine.js.

is there more active dialogue about this in the surface slack or is it mainly being discussed via github issues?

The main discussion we had so far is in https://github.com/surface-ui/surface_catalogue/issues/20 and we should keep posting important decisions there so everyone can follow it, however, feel free to ping us on slack if you have any specific question or need any assistance.
My plan is to fix any remaining issue regarding compatibility with phoenix v1.6 and release Surface v0.6 and the Catalogue this weekend. After that, I should get back to my experiments with Tailwind/DaisyUI. In case you have already tried something in that direction, feel free to share your results with us ;)


Remove pegged version

The stream version should be taken from quilt-bom
Signed-off-by: David Fuelling<EMAIL_ADDRESS>

This is fixed by https://github.com/interledger4j/ilpv4-connector/pull/643


Add support for Unix Epoch

Description

Add Unix Epoch constant.
Add methods to convert from/to Unix Epoch.
Bump AssemblyNativeVersion to v<IP_ADDRESS>.

Motivation and Context

These are available in .netcore.
Considering that we target IoT and network usage scenarios where Unix Epoch is widely used, it makes sense to include this in our API.

How Has This Been Tested?

Screenshots
Types of changes

[ ] Improvement (non-breaking change that improves a feature, code or algorithm)
[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

Signed-off-by: José Simões<EMAIL_ADDRESS>

SonarCloud failing because of missing coverage. Ignoring.


feat: added control over matching audio interfaces

When testing on multiple Linux systems, I found I wanted to make the fuzzy match threshold configurable at runtime. While I was making these changes, I also thought it could be a nice idea to add a way to just go ahead and assert what the audio input device name is for a given modem, and ignore what VARA has to say. I like that varanny's default behavior is to auto-detect it from the .ini file, but having an override it is a nice fallback.
While adding these updates, I also updated the ergonomics of the fuzzy match threshold and fixed some lint.
* Added "AudioInputNameThreshold" to config
   * Similarity normalized so "0" means no match, and "1" means
     strings are identical
* Added "AudioInputName" to modem section to assert audio device
  input name if for whatever reason fuzzy matching should fail
* Changed Delay configuration such that it can be set to 0 in
  the config (start with no delay)

Updated PR now that #9 has been merged

Thanks for this contribution Jordan. I realize the startup delay is a bit jank. Ultimately it should be replaced with a configuration parameter of what network interface varanny should bind to. It can then wait until a hotspot network gets setup, which on Windows takes place shortly after windows login and therefore can create a race condition with varanny. Something to put on "the list" :)


Cleanups

Various minor fixes and improvements:

install target for Makefile that installs the binary. Got tired of always doing that myself.
removed some debug output in leaky bucket
moved loading assets from a local directory out of ThemeClient into its own method next to Asset.

Review: @chrisbutcher

Lookin' good!


master: fails with  imx-vpuwrap-dev deps

For a variety of reasons we need to be building mendel from source and using the "master" / day branch based off debian 10.x instead of the current "chef" release.
Looks like it depends on some internal packages. Could we please remove those deps or add stubs if they can't be removed.
Thanks
====================================
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
builddeps:/build/imx-gst1.0-plugin_4.4.5-5.dsc:arm64 : Depends: imx-vpu-hantro-dev:arm64 (>= 1.11.0) but it is not going to be installed
Depends: imx-vpuwrap-dev:arm64 (>= 4.4.5) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
E: pbuilder-satisfydepends failed.

@powderluv
Are you trying the build by following this guide here?
https://coral.googlesource.com/docs/+/refs/heads/master/GettingStarted.md
Make sure that you are connected to an unrestricted network as the build will requires pulling from debian source. FETCH_PACKAGES=true m should download all dependencies.

that did the trick.


Widen library column/menu on left?

Is there any way to modify in the configuration the width of the column on the left? Love the theme, but rely heavily on playlists and would love to be able to see more of the name.

Nevermind, user.css


Consistent responses (and docs)

I am a bit confused on which responses each endpoint provides, in terms of JWT and user data.
Register sends back the user data from the UserDetailsSerializer, but no token.
Login in turn sends back the JWT, but no  user data.
Is it possible to have both being returned in case of register and login?

At this point, in both cases, the token key is being returned using TokenSerializer. You can always override it to include related user.


Wrong behavior of Type.isAssignableBy(...) for TypeVariables

It looks like the behavior of Type.isAssignableBy(...) for TypeVariables is not implemented correctly yet. Consider the following code snippet:
ReflectionTypeSolver typeSolver = new ReflectionTypeSolver();
TypeParameterDeclaration tpDeclA = TypeParameterDeclaration.onType("A", "foo.Bar", Collections.emptyList());
TypeVariable tpA = new TypeVariable(tpDeclA);
ReferenceTypeImpl tpString = new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver);
boolean assignable1 = tpString.isAssignableBy(tpA);
boolean assignable2 = tpA.isAssignableBy(tpString);

When executing this code both assignable1 and assignable2 evaluate to true where they actually should be false (assignable1 would only be true in case tpA would have an extends bound for String).

I managed to fix the first of the two cases mentioned above (boolean assignable1 = tpString.isAssignableBy(tpA);) and I also wrote a test for that. However, the second case may not behave wrongly at all. I thought that it had to be working incorrectly because the following code snippet would not compile in java.
<T> void foo() {
	T t = new String();
}

But it turnes out that the isAssignable method is used when trying to figure out if a method declaration is applicable when solving a method call (regarding the method's name and the passed argument types). In this case a method declaration that specifies a parameter type T can be applicable when called with a String argument :)

It is tricky, isn't it? :D
I agree with your thinking process, and I think the only way out of this is building one example at the time. Probably I should also document better isAssignableBy. However your PR for this one looks good to me, so we are getting closer! And we also remove one "TODO" from the code

Oh yes, it's tricky. I only had to change a few lines of code but it felt like a whole day of debugging ;) Thanks for the review, I'll close this one now.


Channel in node not reciving status

Hi.
Trying to use your fork so i can have some more functionality but have some issues.
Can turn on or off the lights but can not recive feedback when switched from DLP on wall or from nodered.

Should this not show me every change happening on dimmer with adress 1.60 and channel 1?
If i use the HDL raw node i can see it.
Do you have a example flow for recive status?

Hi - yep understand.  I don't use if from DLPs but do have one so will take a look.  This node is simply watching the network for events with op code 0x0032 (Single Channel Lighting Control) - if nothing is specified in the level field (as you're using it), it'll fire on every event seen.
The flow you have above is the simplest flow that could be created and should output Single Channel Lighting Control message sent to 1.60, channel 1.
Try turning it on and off from another switch and see if it's fired?  If you use the raw node, what op code do you see with the events you're expecting to see this node fired for?

Hi and thanks for quick responce.
Think maby something went wrong during installation of pallete. Can see that none of the raw message contain any sender adresse, this is not expected?
Here is the 0032(50) message the dimmer outputs when i switch it to 100 from the out node.

Ps i get the same answerback when using the DLP or it is switched on from 12/1 sensor.
Should i try a new fresh install?
Thanks

I just checked and I had this package as a file dependency during development (as I was modifying this too) - if you go into .node-red/node_modules and run git clone https://github.com/mrgadget/smart-bus before install - hopefully that'll work.  If you want to do this via SMB and don't have git installed, just download the repo and dump it in \\<IP_ADDRESS>\openhabian\.node-red\node_modules\smart-bus.
I've made some local changes to smart-bus but stalled at the negotiation stages with the package owner so don't have my changes in the package yet.
If this doesn't work let me know and I'll sort it all out at a package level for you.
Cheers,
Ben.

Ahh tought it was installing your fork of the smart-bus and not the master.
Put it in manualy via SMB
Tried installing via palette again and got:

also tried going into the smart-bus folder via ssh after but get this error:

if i try to enter the folder again via SMB its not there.
Thanks

Understand. Basically I’ve screwed it up :) I’ll fix the dep so it points at my fork (or update my lib to work with his new version) and come back to you. Probably a day or so sorry.

Ok. Thanks :)


qemu: disable modern in SCSI constroller

Disable modern to prevent qemu from relying on fast MMIO.
This change is needed to allow virtual virtual containers run
in virtual machines, for example azure VMs.
fixes #663
Signed-off-by: Julio Montes<EMAIL_ADDRESS>

@devimc dont you need to revendor govmm here?

@sboeuf @amshinde done

LGTM

@egernst  done

Looks good -- happy to see it merged after the CI finishes up.  Thanks @devimc


Make minOccurs/maxOccurs checking more robust.

Fix holes in validating that minOccurs/maxOccurs for inputs are not violated:

In _setValueWithOccurence(), check the cases where maxOccurs equals 0 or 1,
in addition to the >1 case.
In consolidateInputs() check that minOccurs is always satisfied, including for
the minOccurs>1 case, rather than just checking that there is any single occurrence.

Thanks for contribution


[Suggestion] Prepare TAG Events for KubeCon / CloudNativeCon EU 2023

KubCon / CloudNativeCon NA just ended last week, but we'll have it again in not too long, in April 2023 in Amsterdam. Planning meetings and events takes a lot of time and coordination. So it would be good to start the process early to get a team together, brainstorm ideas for the event and coordinate.
Proposed next steps:

Ask for folks that are interested in helping here
Brainstorm and discuss ideas
Planning & coordination

/cc @catblade @mkorbi

fyi I send the other day an email to the CNCF event team asking for a project meeting timeslot

fyi @caradelia the project meeting benefits will be published in January, from that time on we are allowed to apply for a project meeting. First come first serve.

As mentioned today in the meeting Feb.1, I propose we leverage the audience at Kubecon to build relationships with future potential members while accomplishing our mission to educate the open source community. We can accomplish this by:

Hosting at least 2 sustainability meetups at different times led by our members to discuss their interests and/or pain points around sustainability within their org today ( I can lead 1)
Formalizing a new survey to get users feedback - can include a QR code at end of presentation for live surveying
Educating new members about the mission of this group, broader sustainability principles and evangelizing our group- we can all wear our logo on t shirts so we increase brand awareness and stir curiosity
Propose we have formal website with a blog by Kubecon so we can point interested parties to at our event

As mentioned in today's meeting, we could add sustainability-related KubeCon EU '23 talks here in the comments.

@leonardpahlke - The State of Green Software + Cloud Native - Leonard Vincent Simon Pahlke, Liquid Reply

Since KubeCon 2023 in Amsterdam is approaching rapidly. I want to follow up on the suggestions from @berryq460. Did we make any progress here?
If yes, where can that progress be found?
If no, do we still want to do any of this?
I am very much in favor of having one or two meetups. They do not need to be fancy maybe just getting a drink or something to eat while talking about what’s on people’s minds.
I would also like another survey, which this time does not focus to much on data centers but more on the state of software/cloud-native development?
Please let me know how you would like to organize/push any of these topics.

hey, we will have a meetup on Tuesday https://sched.co/1JWOX and another one after the TAG talk on Friday. I created a document to brainstorm ideas https://docs.google.com/document/d/1ESxvXcSiorwi_Zh1WXuVmHJcSlR5aJQbCYfh11xRXqw/edit#.

They do not need to be fancy maybe just getting a drink or something to eat while talking about what’s on people’s minds

I think we should get a agenda set out to make use of the meetup.

I would also like another survey, which this time does not focus to much on data centers but more on the state of software/cloud-native development?

You are very welcome to start with something in this direction 👍. Let me know if you need something to get this started.

Do we have a room/space for the meeting on Friday?

Do we have a room/space for the meeting on Friday?

Not yet. We still have to organize something. If you want, you can do the organizational part.

I will let you guys run with my idea proposed above as I cannot attend this year due to company budget. Would love to hear what the outcome was. Have fun!

It was great in Amsterdam! See you all at the next KCCN :)


[docs] Fix links that point to the next branch

[x] I have followed (at least) the PR section of the contributing guide.

@Maxim-Mazurok It's a great first pull request on Material-UI 👌🏻. Thank you for working on it!


feat(op-batcher): support disable eth fallback

@emilianobonassi in case of a blob submission error, the expected behaviour is that the sequencer should continue to retry indefinitely, correct?

yes


shedding not checking if there is enough free power to start

version: 5.4.2
We only have 13A for 3 heaters and a couple of other stuff.
I am trying to get versatile_thermostat not to exceed a maximum power consumption not to make the fuse blow. However, instead of checking if there is enough power available before starting a heater it starts up och then goes into shedding only if it exceeds my maximum value. Would it be possible to make it check before starting instead?

Hello @R00S
Why don't you follow the issue template ? It would have been much easier for me to answer.

The shedding works as you want: it checks before starting a device that power is available. There is some conditions for this to work and I need your VTherm attributes to answer.

Thanks for the reply!
Sorry, i didm't even understand where in the template i was supposed to write something. I may have been very tired...
I'll try to remove my central configuration. Hopefully, i may be able to create a vtherm after that. Right now there is no vtherm option when i press Add device.

Sorry, i didm't even understand where in the template i was supposed to write something. I may have been very tired...

When you create an issue, you have to follow a template: give VTherm attributes, ....


Small fixups

f428e8f - The next template variable is the data value, and use redirect_field_name for the field name
4b6a510 - Using HTML buttons instead of inputs enables i18n without changing the field values
2383ad8 - Turn on i18n in templates
b0a7c04 - The /confirm view allows users to accept user agreements multiple times, and every time a new UserAgreement is created pointing to the same TermsOfService and user (read: a duplicate row). Use UserAgreement.objects.get_or_create() instead of just UserAgreement.objects.create() to avoid creating duplicate UserAgreements.
3488d54 - Add test for avoiding duplicate UserAgreements
10c1809 - Add more tests to bump coverage

Looks like this needs a conflict resolved now that those other fixes are in. Hoping to take a look at this tomorrow. Thanks :D

One small nitpick then looks good :D

Fixed.

Thanks for the continued work on this :)


router-link should provide an attribute to specify route locations that count as exact active

What problem is this solving
I have a router setup like so:
		{
			path: '/help',
			component: Help,
			children: [
				{
					path: '',
					name: 'Help',
					component: Quickstart,
				},
				{
					path: 'quickstart',
					name: 'Quickstart',
					component: Quickstart,
				},
				{
					path: 'about',
					name: 'About',
					component: About,
				},
				{
					path: 'contact',
					name: 'Contact',
					component: Contact,
				},
			]
		},

On the Help page, I have a set of tabs that are router-links linking to Help, About, and Contact.  But both the Help and Quickstart routes map to my Quickstart component; I want the link to be "exactActive" for both of them.  At the moment, I have to specify one or the other for my router-link's to attribute, and that one will cause "exactActive" (as well as aria-current to get set), but I want both to cause it.
Proposed solution
router-link should provide an attribute like active-routes where you can specify a list of route locations (ie. RouteLocationRaws) that could as "exact active", and cause the "exactActive" class to get set as well as the aria-current attribute.  In the above example, I could specify both Help and Quickstart for my main help link.
Describe alternatives you've considered
No response

Exact active and active links already means something in the context of the router. Changing it the way you are proposing would add extra meaning that can be changed by the user, make it confusing.
In order to achieve what you want, you can directly set the aria attributes that are relevant to your application. You can even create a custom RouterLink implementation (see docs) to automatically add the aria attributes. In order for Vue Router to not add the wrong aria attributes, we intentionally limit it to aria-current=page (which can be customized). Note that only one element should have the aria-current=page.

@posva Why on earth did you close the discussion #1736 ?  It's unrelated to this issue.  Re-open it NOW!  Why is the attitude of vue-router to just close everything down?  It's infuriating!


Add bounding box argument to level2_chunk_graph

Companion to https://github.com/seung-lab/PyChunkedGraph/pull/488

https://neuroglancer.neuvue.io/?json_url=https://global.daf-apis.com/nglstate/api/v1/5170957968736256

demonstration of the query (yellow box) with the resulting lvl2 graph shown


Feedback Management

Users should be able to Thumbs-up/down tracks

You can now Like / Ban / Mark song as tired for the currently playing song. I need to figure out the format of the delete feedback endpoints and find a way to make feedback management work well for previously played songs in the UI.


Adds support for additional Neo4j::Session.open options

The current Neo4j support only passed through path and type parameters, but Neo4j::Session.open can also take in a third 'params' option for specifying things like connection profile or authentication. This change passes through the additional options to the Session.open call

@brienw Thanks for this! Could you add a spec for this new behavior here: https://github.com/DatabaseCleaner/database_cleaner/blob/master/spec/database_cleaner/neo4j/base_spec.rb?

@etagwerker Thanks, I must have been in a hurry when I opened this earlier. I've added spec coverage

@brienw Awesome. Thank you! :+1:


Accelerometer calibration

When i try to calibrate the accelerometer i call the function for each axis and when i show the results all of the biases are 0 and the scale for each one is 1. Is that normal?
CALIB Gyro -- dont move until I say stop!!! done!
X: 0.004778
Y: 0.019271
Z: -0.003822
Gyro calib done
********** ACC calib **************
Enter when ready for dir 1 X+..
Enter when ready for dir 2 X-..
Enter when ready for dir 3 Y+..
Enter when ready for dir 4 Y-..
Enter when ready for dir 5 Z+..
Enter when ready for dir 6 Z-..
Acc calib done
Vals:
X: 0.000000/1.000000 (bias/scale)
Y: 0.000000/1.000000 (bias/scale)
Z: 0.000000/1.000000 (bias/scale)
CALIB MAG -- move in figure 8s until I say stop!!! done!
X: 28.451765/0.883743
Y: 47.327587/1.067171
Z: -51.208195/1.073661
Code used:
Serial.println(F("********** ACC calib **************"));
char * dirs[6] = { "X+", "X-", "Y+", "Y-", "Z+", "Z-"};
for (uint8_t i = 0; i < 6; i++) {
Serial.print(F("Enter when ready for dir "));
Serial.print((int)(i + 1));
Serial.print(' ');
Serial.print(dirs[i]);
while (! Serial.available() ) {
delay(10);
}
while (Serial.available()) {
  Serial.read();
  delay(5);
  Serial.print('.');
}
Serial.println();
IMU.calibrateAccel();

}
Serial.println(F("Acc calib done"));
Serial.println(F("Vals: "));
Serial.print(F("X: "));
Serial.print(IMU.getAccelBiasX_mss(), 6);
Serial.print('/');
Serial.println(IMU.getAccelScaleFactorX(), 6);
Serial.print(F("Y: "));
Serial.print(IMU.getAccelBiasY_mss(), 6);
Serial.print('/');
Serial.println(IMU.getAccelScaleFactorY(), 6);
Serial.print(F("Z: "));
Serial.print(IMU.getAccelBiasZ_mss(), 6);
Serial.print('/');
Serial.println(IMU.getAccelScaleFactorZ(), 6);

I have the same issue.
Any suggestion?
Thanks!

hey, can u post all of code you used to  calibration all of sensor?

@Lynxu hey, can u post all of code you used to calibration all of sensor?

Can you share the code when you calibrate your accel and gyro, please? Thanks in advance!

Not normal, it doesn't sound like the calibration was working, maybe the sensor wasn't being moved? In any case, the calibration functionality has been removed from this library.


I cannot get bouncer to deny http/https connection with Docker but blocking ping works

As the title suggests, I have crowdsec-firewall-bouncer setup and it appears to be working. When I ping the machine it does appear to be blocked but when I navigate to a hosted webpage I am still able to connect. I believe the issue is with the connection to Docker. The full setup I have is MailCow running in Docker. I followed the instructions at Protecting Mailcow with Crowdsec and went a little further than the instructions by modifying the bouncer config to include the forward and docker-user chains. Any help in troubleshooting would be great!
crowdsec-firewall-bouncer.yaml (I had to put the ticks so it was formatted correctly)

mode: iptables
pid_dir: /var/run/
update_frequency: 10s
daemonize: true
log_mode: file
log_dir: /var/log/
log_level: info
log_compression: true
log_max_size: 100
log_max_backups: 3
log_max_age: 30
api_url: http://<IP_ADDRESS>:8080/
api_key: API KEY**
insecure_skip_verify: false
disable_ipv6: false
deny_action: DROP
deny_log: false
supported_decisions_types:
'   - ban
#to change log prefix
#deny_log_prefix: "crowdsec: "
#to change the blacklists name
blacklists_ipv4: crowdsec-blacklists
blacklists_ipv6: crowdsec6-blacklists
#type of ipset to use
ipset_type: nethash
#if present, insert rule in those chains
iptables_chains:
'  - INPUT
'   - FORWARD
'   - DOCKER-USER
nftables
nftables:
ipv4:
enabled: true
set-only: false
table: crowdsec
chain: crowdsec-chain
priority: -10
ipv6:
enabled: true
set-only: false
table: crowdsec6
chain: crowdsec6-chain
priority: -10
nftables_hooks:
'   - input
'   - forward
' # packet filter
pf:
'   # an empty string disables the anchor
anchor_name: ""
prometheus:
prometheus:
enabled: true
listen_addr: <IP_ADDRESS>
listen_port: 60601

crowdsec-firewall-bouncer.log

time="05-08-2023 16:52:20" level=info msg="backend type : iptables"
time="05-08-2023 16:52:20" level=info msg="config is valid"
time="05-08-2023 16:52:20" level=info msg="backend type : iptables"
time="05-08-2023 16:52:20" level=info msg="iptables for ipv4 initiated"
time="05-08-2023 16:52:20" level=info msg="iptables clean-up : /usr/sbin/iptables -D INPUT -m set --match-set crowdsec-blacklists src -j DROP"
time="05-08-2023 16:52:20" level=error msg="error while removing set entry in iptables : exit status 1 --> iptables: Bad rule (does a matching rule exist in that chain?).\n"
time="05-08-2023 16:52:20" level=info msg="iptables clean-up : /usr/sbin/iptables -D FORWARD -m set --match-set crowdsec-blacklists src -j DROP"
time="05-08-2023 16:52:20" level=error msg="error while removing set entry in iptables : exit status 1 --> iptables: Bad rule (does a matching rule exist in that chain?).\n"
time="05-08-2023 16:52:20" level=info msg="iptables clean-up : /usr/sbin/iptables -D DOCKER-USER -m set --match-set crowdsec-blacklists src -j DROP"
time="05-08-2023 16:52:20" level=error msg="error while removing set entry in iptables : exit status 1 --> iptables: Bad rule (does a matching rule exist in that chain?).\n"
time="05-08-2023 16:52:20" level=info msg="ipset clean-up : /usr/sbin/ipset -exist destroy crowdsec-blacklists"
time="05-08-2023 16:52:20" level=info msg="Checking existing set"
time="05-08-2023 16:52:20" level=info msg="ipset set-up : /usr/sbin/ipset -exist create crowdsec-blacklists nethash timeout 300 maxelem 65536"
time="05-08-2023 16:52:21" level=info msg="Rule doesn't exist (/usr/sbin/iptables -C INPUT -m set --match-set crowdsec-blacklists src -j DROP)"
time="05-08-2023 16:52:21" level=info msg="Rule doesn't exist (/usr/sbin/iptables -C FORWARD -m set --match-set crowdsec-blacklists src -j DROP)"
time="05-08-2023 16:52:21" level=info msg="Rule doesn't exist (/usr/sbin/iptables -C DOCKER-USER -m set --match-set crowdsec-blacklists src -j DROP)"
time="05-08-2023 16:52:21" level=info msg="iptables set-up : /usr/sbin/iptables -I INPUT -m set --match-set crowdsec-blacklists src -j DROP"
time="05-08-2023 16:52:21" level=info msg="iptables set-up : /usr/sbin/iptables -I FORWARD -m set --match-set crowdsec-blacklists src -j DROP"
time="05-08-2023 16:52:21" level=info msg="iptables set-up : /usr/sbin/iptables -I DOCKER-USER -m set --match-set crowdsec-blacklists src -j DROP"
time="05-08-2023 16:52:21" level=info msg="iptables for ipv6 initiated"
time="05-08-2023 16:52:21" level=info msg="iptables clean-up : /usr/sbin/ip6tables -D INPUT -m set --match-set crowdsec6-blacklists src -j DROP"
time="05-08-2023 16:52:21" level=error msg="error while removing set entry in iptables : exit status 1 --> ip6tables: Bad rule (does a matching rule exist in that chain?).\n"
time="05-08-2023 16:52:21" level=info msg="iptables clean-up : /usr/sbin/ip6tables -D FORWARD -m set --match-set crowdsec6-blacklists src -j DROP"
time="05-08-2023 16:52:21" level=error msg="error while removing set entry in iptables : exit status 1 --> ip6tables: Bad rule (does a matching rule exist in that chain?).\n"
time="05-08-2023 16:52:21" level=info msg="iptables clean-up : /usr/sbin/ip6tables -D DOCKER-USER -m set --match-set crowdsec6-blacklists src -j DROP"
time="05-08-2023 16:52:21" level=error msg="error while removing set entry in iptables : exit status 1 --> ip6tables: Bad rule (does a matching rule exist in that chain?).\n"
time="05-08-2023 16:52:21" level=info msg="ipset clean-up : /usr/sbin/ipset -exist destroy crowdsec6-blacklists"
time="05-08-2023 16:52:21" level=info msg="Checking existing set"
time="05-08-2023 16:52:21" level=info msg="ipset set-up : /usr/sbin/ipset -exist create crowdsec6-blacklists nethash timeout 300 family inet6 maxelem 65536"
time="05-08-2023 16:52:22" level=warning msg="iptables check command (/usr/sbin/ip6tables -C INPUT -m set --match-set crowdsec6-blacklists src -j DROP) failed : exit status 1"
time="05-08-2023 16:52:22" level=warning msg="iptables check command (/usr/sbin/ip6tables -C FORWARD -m set --match-set crowdsec6-blacklists src -j DROP) failed : exit status 1"
time="05-08-2023 16:52:22" level=warning msg="iptables check command (/usr/sbin/ip6tables -C DOCKER-USER -m set --match-set crowdsec6-blacklists src -j DROP) failed : exit status 1"
time="05-08-2023 16:52:22" level=info msg="iptables set-up : /usr/sbin/ip6tables -I INPUT -m set --match-set crowdsec6-blacklists src -j DROP"
time="05-08-2023 16:52:22" level=info msg="iptables set-up : /usr/sbin/ip6tables -I FORWARD -m set --match-set crowdsec6-blacklists src -j DROP"
time="05-08-2023 16:52:22" level=info msg="iptables set-up : /usr/sbin/ip6tables -I DOCKER-USER -m set --match-set crowdsec6-blacklists src -j DROP"
time="05-08-2023 16:52:22" level=info msg="Using API key auth"
time="05-08-2023 16:52:22" level=info msg="Serving metrics at <IP_ADDRESS>:60601/metrics"
time="05-08-2023 16:52:22" level=info msg="Processing new and deleted decisions . . ."
time="05-08-2023 16:53:19" level=info msg="15000 decisions added"
time="05-08-2023 16:57:42" level=info msg="1 decision added"

Could you provide the output of iptables -L ?

 However, you might want to investigate Warning: iptables-legacy tables present, use iptables-legacy to see them this as there may be some rules that are not shown that are causing issues?

I think you are right. While I was waiting for you to reply before, I put in IPTable rules to deny traffic using the same IP list Crowdsec does on every chain but didn't do it on the legacy ones mostly because I didn't make that connection. So with a rule on all the chains I sent you before, I was still able to hit the web page. So it must be using the legacy tables or something. I was thinking that the IP tables are like firewall rules and the first one takes priority, my mistake was assuming that the legacy ones are called from the non-legacy ones. I will update you as soon as I know more. Thanks for all you help so far. Just the point in the IPtable direction has been a huge leap because I didn't know that was the mechanism blocking.

Ok so now I have tried a couple things and still cannot get it to work but have more information....
I removed all of the legacy IP tables and disabled their creation so that I could enable the bouncer. With the legacy ones removed, I still cannot get it to work correctly. The webpage is denied (as expected) if I hit the server with the IP:Port. Where I am having trouble is that when I try to load the webpage using the FQDN, through my reverse proxy, the webpage is not denied. I am going to try some additional tests like setting up the bouncer to deny access on port 25 or 465 but that might take me a little to setup. If you have any ideas or think I should try something else, any help is appreciated.

To be honest, I got nothing more to add. The bouncers is doing what it suppose to do and injecting the rules to the top of the chains. Remember to constantly check iptables -L  as our bouncer only injects the rules once then if they are flushed they wont be reinjected till bouncer restarts

OK I got it working. Thanks again to @LaurenceJJones for pointing me in the right direction. Your help allowed me to at least know what services to google to take deeper dives. There were several areas that needed to be modified on my part. I am documenting this all so that if anyone runs into a similar issue, maybe they can use my lessons learned to help.
First, the reason that I was still able to hit the webpage was that the mail server was behind a reverse proxy. I looked into how the data was being sent to the mailcow server by enabling logging on IPTABLES. When I looked at the data, it appears that the proxy server was making the HTTP requests. When an IP was banned, I needed it to be banned on the proxy server AND the mail server. It needs to be banned on both because I have all port 80 and 443 traffic port forwarded in my router to the proxy server but the SMTPS(465),POP(995)... all the ports for mail server stuff are forwarded to the mail server directly. There is a tutorial an setting up crowdsec with multiple servers How to set up a CrowdSec multi-server installation and CrowdSec Multiserver Docker. This issue being that I needed both since my proxy server is Ngnix Proxy Manager running in docker. That configuration did not expose the bouncer port (8080) so I had two modify the docker-compose file. The part :

Now edit /etc/systemd/system/crowdsec.service and add the -no-api

was really important as without it the 'mothership' (or server 2&3) would not receive heartbeats from the mail server.
fail2ban is automatically enabled on Mailcow. I had to modify the configuration so that it would not ban an IP before Crowdsec was able to. Again, the vision being that banned IP addresses be banned everywhere.
lastly, once I get everything working. I ran into an issue where a blocked IP would not be blocked by the individual machine but would be blocked by all the other machines- through the Proxy server. I took a look at the Bouncer logs and found an error "time="19-08-2023 14:56:04" level=info msg="Error while inserting in set (/usr/sbin/ipset -exist add crowdsec-blacklists <IP_ADDRESS> timeout 583196): exit status 1 --> ipset v7.15: Hash is full, cannot add more elements\n" this is already an identified issue #260. After I made the change, everything completely worked.


Exceptions with v2.6.0

I just ended up picking version 2.6.0 as a dependency. I am running into some regressions from previous versions.
p = require("acorn");
p.parse('n === 10');

Throws:
TypeError: Cannot read property 'sourceType' of undefined
    at new Parser (.../node_modules/acorn/dist/acorn.js:1545:116)

The code reads:
    this.options = _options.getOptions(options);
    this.sourceFile = this.options.sourceFile;
    this.keywords = keywordRegexp(_identifier.keywords[this.options.ecmaVersion >= 6 ? 6 : 5]);
    var reserved = this.options.allowReserved ? "" : _identifier.reservedWords[this.options.ecmaVersion] + (options.sourceType == "module" ? " await" : "");
    this.reservedWords = keywordRegexp(reserved);

Changing options.sourceType to this.options.sourceType works around the problem for me.

Already fixed in<PHONE_NUMBER>0720f9cab5a62ce2e25515c41c5f45.

@TimothyGu That's right, thanks.

I've released a 2.6.2 that includes this patch.


!default flag should be removed

Maybe I have missed something here, but if I have !default applied to a bunch of variables in my Bootstrap variables.scss file, regardless of whether or not I have the variable in a custom.scss variables file it will not allow me to override it.
So while I can spend time removing this flag, it will get overridden if I upgrade Bootstrap.

Ignore, seems it makes no difference.

Have you tired importing your custom.scss or declaring any variable before you import the bootstrap variables.scss file?

Yeah I did and it works. But not sure why but it didn't make logical sense to me.
If I add a variable after one variable of the same name it overrides it.
Sent from my iPhone

On 5 Nov 2015, at 15:23, Matthew Jason Craig<EMAIL_ADDRESS>wrote:
Have you tired importing your custom.scss or declaring any variable before you import the bootstrap variables.scss file?
—
Reply to this email directly or view it on GitHub.


Using WSL - How to use Bash for the launch configurations?

VSCode Version: 1.11.2
OS Version: Windows 10  (Version 1703), with WSL enabled.

I asked the question on StackOverflow, but without any answers, so I guess it's maybe not possible...
I use Visual Studio Code to develop a TypeScript Node application on Windows 10, with WSL enabled.
Thanks to other threads, I'm almost able to run a VSCode task with Bash on Ubuntu on Windows.
But now I try to do the same with a launch configuration. How can I make a launch configuration to use the node executable installed in WSL instead of the one installed on Windows?
If I run this command directly in the integrated terminal, with Bash, it works :
node src/start.js

But when I press "[F5]" and start a launch configuration that runs this same file, I get an error : "Error: %1 is not a valid Win32 application". This is because the oracledb library is used and has been compiled in Bash, not in Windows.
How can I make a launch configuration use Bash to run Node?

You should be able to use bash.exe -c node (or probably C:\Windows\sysnative\bash.exe -c node) but you will then run into https://github.com/Microsoft/vscode/issues/24072 I think

@CherryDT I'm not sure I understand what you suggest. Am I wrong or a launch configuration always uses node as the main program, so I can't make it use bash.exe. For example, this doesn't work in launch.json :
{
    "version": "2.0.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "test",
            "program": "C:\\Windows\\sysnative\\bash.exe",
            "args": [
                "-c",
                "node",
                "${workspaceRoot}/src/start.js"
            ],
            "cwd": "${workspaceRoot}",
            "outFiles": [],
            "sourceMaps": true,
            "internalConsoleOptions": "openOnSessionStart",
            "timeout": 20000
        }
    ]
}

I may not understand correctly, but I think this kind of launch configuration will run something like :
node C:\Windows\sysnative\bash.exe -c node ${workspaceRoot}/src/start.js
and of course the first "node" makes no sense. Please correct me if I'm wrong!

Not in program, but in runtimeExecutable.

@CherryDT I try to reach the point where you are so I can ask this issue to be closed and follow yours!
Setting runtimeExecutable seems to be the way to go, indeed, thanks! But then, even without using ${workspaceRoot}, I'm still unable to make a simple example work. For example :
{
    "version": "2.0.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "test",
            "runtimeExecutable": "C:\\Windows\\sysnative\\bash.exe",
            "runtimeArgs": [
                "-c",
                "pwd"
            ],
            "outFiles": [],
            "sourceMaps": true,
            "internalConsoleOptions": "openOnSessionStart",
            "timeout": 20000
        }
    ]
}

This results in : "/bin/bash: --debug-brk=37360: invalid option ...".
Do you have a sample of a working launch configuration usingbash.exe, without the need of an intermediate .bat file?

@electrotype Can't test it right now, I remember I originally used a batch file but I did so in order to convert the path from Windows to WSL.
I would try to include -c node in the runtimeExecutable already, but I don't know if this works the way I think it does. Did you try that?

No luck sadly...
"runtimeExecutable": "C:\\Windows\\sysnative\\bash.exe -c pwd",
=>
Error - Attribute 'runtimeExecutable' does not exist ('C:\Windows\sysnative\bash.exe -c pwd').
and
"runtimeExecutable": "\"C:\\Windows\\sysnative\\bash.exe\" -c pwd",
=>
Error - Cannot launch debug target (spawn "C:\Windows\sysnative\bash.exe" -c pwd ENOENT)..

I see. Then you probably need a batch file, but I'm not sure if this even works (because you can't CreateProcess a batch file I think), maybe you need a custom EXE.
I was now able to find the old files and see how I did it back then (before I opened https://github.com/Microsoft/vscode/issues/11681) - I had a more complex approach there because I tried to also convert paths, and environment variables (this was before Anniversary Update by the way). This worked but then I ran into the issue with the paths with VSCode debugging.
What I did back then was to build an executable on the Windows side which translates paths and environment variables and base64 encodes them to avoid escaping issues, then starts bash.exe with a custom shell script which decodes everything again and finally launches node.
FreeBasic source code of the Windows-side program: https://gist.github.com/CherryDT/0045624611834c888c24797df2844386
WSL-side shell script:
https://gist.github.com/CherryDT/44788497e8870121969b840892d99025

Nice hacking!
I'm not sure I'm ready to go this way though... VSCode should make this way, way much easier.
I'll stick to the regular cmd shell for now...

As mentioned, this doesn't lead to anywhere anyways because of the path issues. However, according to https://github.com/Microsoft/vscode/issues/24072 and similar issues, it is possible to get WSL node to launch by setting the terminal shell (terminal.integrated.shell.window, I believe) to bash - but I don't observe this behavior, so I'm not exactly sure what is going on there.
My current workflow is much less hackish than what I tried there before: I just have bash as terminal shell and run node --inspect --debug-brk from there, and I use VSCode to attach to it (instead of launching it). The downside is that I have to set remoteRoot correctly which is problematic if the launch.json is to be checked into a repository (because of paths which are different for individual developers).

@isidorn assigning to you. It is about launch configs not tasks.

Assigning to @weinand to check if he has ideas. Otherwise stack overflow is the best route for questions like this.

I'm only speculating here but you could try this:

configure VS Code's integrated (or external) terminal  to use WSL (I assume this possible but I've never tried this myself).
setup your launch config so that it launches the debug target in either the integrated or the external terminal (use IntelliSense to find the possible values):{
 "type": "node",
 "request": "launch",
 "name": "Launch Program",
 "program": "${workspaceRoot}/app.js",
 "console": "integratedTerminal"
}

With this VS Code will launch "node" in the integrated terminal and I assume that it will use the WSL "node".

@weinand You are right, integratedTerminal doest work, in that sense that it does use the correct node executable!
For reference, both "externalTerminal" and "internalConsole" fail though :
"externalTerminal" :

"internalConsole" :

That said, "integratedTerminal" only works when the entry file is at the very root. For example, a ${workspaceRoot}/src/start.js (instead of ${workspaceRoot}/test.js) fails :

But I think I've seen there already are existing issues about those missing backslashes?

@electrotype I was also trying to use integratedTerminal option and got this.

I guess when bash changes directory (check second highlighted box ) all the slashes are missing (check first highlighted box ). Issue definitely is because of missing slashes.

Currently VS Code launch configurations do not support WSL. The code is not aware of WSL and just assumes Windows which results in paths with backslashes.

@DhirajAdPushup your problem is #24072

I have scoured the internet and as far as I can tell you cannot debug VSCode using WSL / bash as the executing environment.  For now I'm going to switch back using chrome dev tools built in debugger via the --inspect flag.

You can, you just can't launch it. Launch it manually with --inspect or --inspect --debug-brk, then attach to it using VSCode. Set the remoteRoot in your attach launch config to the WSL path of your project, then also the breakpoints will work properly.

@CherryDT Thanks!  I'll try that.

@ryanstevens If that works then do share the process and experience here, that will be a great help.

Would very much love to see this supported.  With WSL having such great support for for 3rd party applications and how much better suited linux is for web dev, I'd much prefer to develop with it as my underlying environment.

I tried to launch my Node app with the --inspect flag in WSL, and Attach the VSCode debugger to it, but my breakpoints do not works, VSCode tells me that there is a sourcemap problem.
What do I need to do to make my breakpoints work ?

@sylvainlap as I mentioned above, set the remoteRoot in your attach launch config to the WSL path of your project in order to make breakpoints work.

@CherryDT that doesn't work. Say my WSL project path is /mnt/c/Users/abc/project1, but when I open files in VS code their path is C:\Users\abc\project1, so setting break points still won't work.

@Alkasai : Why? That's exactly what the remoteRoot is for. You tell VSCode that your "remote server" (in this case WSL) uses the root path /mnt/c/Users/abc/project1 so it knows how to translate the path. It's the same thing when you are debugging on an actual remote server via SSH tunnels for example.

Ah thank you it finally works! I wasn't sure what the format was remoteRoot and I think I was missing localRoot.
Also tried "request": "launch" and it seems it still doesn't work. I mean the breakpoints work, but it doesn't know know how to translate a path like /src/..... So whenever it tries to interpret this kind of path it fails.

Status update:
Today VS Code node debugging knows nothing about "WSL" but since it supports "remote debugging", the WSL case is already supported nicely when launching the target manually in WSL and then using an "attach" configuration (see @CherryDT's config from above).
For the WSL "launch" case we've received https://github.com/Microsoft/vscode-node-debug/pull/156 and https://github.com/Microsoft/vscode-node-debug2/pull/126 that add the required functionality to the node debugger.

@CherryDT not sure if you can help. Your solution used to work for me for a while. I also had "sourceMaps": true in there.
{
	"name": "Attach to Process",
	"type": "node",
	"protocol": "inspector",
	"request": "attach",
	"port": 9229,
	"localRoot": "${workspaceRoot}",
	"remoteRoot": "/mnt/c/Users/david/proj/my-project",
        "sourceMaps": true
}

But since I switch to a new machine, the break points stopped working for me. It still attaches the debugger and breaks on the entry, just like it used to. But all breakpoint now show as 'Breakpoints set but not yet bound'.

Hi all. Note that node debugging support in WSL is in the way soon!

@bitcrazed - That's awesome!  What are the specific things your team has had to do to facilitate this?  ie: What barriers would I be hitting right now if I tried?

In the October release VS Code supports the useWSL flag for both the "legacy" and the "inspector" protocol of node.js.

@weinand - You should make that useWsl.

@atrauzzi no, the name of the flag is useWSL.

This is mostly in passing, but the only reason the flag in your comments jumped out at me is because most communities have settled on lower case letters for everything after the first when applying pascal case to acronyms: https://stackoverflow.com/questions/15526107/acronyms-in-camelcase (one of probably many references available)

@atrauzzi thanks for the references. Now I understand.
However, since the name 'useWSL' shipped in September, we will not change the spelling in October and break launch configs.

It would be worthwhile to see this as an overall suggestion. Not just for the current flag in question here.


Feature Request: chocolatey switch when installing programs

As far as I can tell Chocolatey is used when WinGet does not work or just not available,,
However it would be really nice if we had a little switch for when we wanna use winget or chocolatey
I personally prefer chocolatey because it is more of a package manager then Winget I also like keeping all my programs in one place

it's pure winget currently, choco is in the works and the idea is having the ability to switch between the package managers.

Exactly what I was thinking of


Building for platform win32 on macOS with ARM64  fails

Pre-flight checklist

[X] I have read the contribution documentation for this project.
[X] I agree to follow the code of conduct that this project uses.
[X] I have searched the issue tracker for a bug that matches the one I want to file, without success.

Electron Forge version
6.0.0-beta.63
Electron version
v16.0.7
Operating system
macOS 11.6.2
Last known working Electron Forge version
No response
Expected behavior
Application for platform win32 should build.
Actual behavior
>   npx electron-forge make --arch=x64 --platform=win32
✔ Checking your system
✔ Resolving Forge Config
We need to package your application before we can make it
✔ Preparing to Package Application for arch: x64
✔ Preparing native dependencies
✔ Packaging Application
Making for the following targets: squirrel
✖ Making for target: squirrel - On platform: win32 - For arch: x64

An unhandled error has occurred inside Forge:
An error occured while making for target: squirrel
spawn mono ENOENT
Error: spawn mono ENOENT
    at Process.ChildProcess._handle.onexit (node:internal/child_process:282:19)
    at onErrorNT (node:internal/child_process:475:16)
    at processTicksAndRejections (node:internal/process/task_queues:83:21)

Steps to reproduce

start from electron-forge template on macOS (ARM64)
attempt to build for platform win32 and arch x86.

Additional information
No response

Hey
This issue appears inside electron-winstaller
https://github.com/electron/windows-installer/issues/386
I had the same issue but it's fixable manually.

Open ./node_modules/electron-winstaller/vendor
Copy 7z-x64.* files as 7z.* (fe, 7z-x64.exe => 7z.exe)
Try to build it again

If you want to build windows app on mac or linux OS, you need to install wine and mono. In you case the mono is missing.

Same problem building on Windows 11.

I was running into this same issue on MacOS Monterey 12.3.1 on my MacBook Air (M1, 2020).
After installing mono I get past the above mentioned errors, but it seems to hang on:
Making for target: squirrel - On platform: win32 - For arch: x64

Electron version: 16.2.8
Electron force version: 6.0.0-beta.64
It's been running for 15 minutes now with no changes... gave up and switched to electron-builder which just seems to work without installing anything extra.

It's work for me ! thank you

Hey This issue appears inside electron-winstaller electron/windows-installer#386
I had the same issue but it's fixable manually.

Open ./node_modules/electron-winstaller/vendor
Copy 7z-x64.* files as 7z.* (fe, 7z-x64.exe => 7z.exe)
Try to build it again

work for me


Expose Text Attributes to UI Automation

Summary of the Pull Request
This implements GetAttributeValue and FindAttribute for UiaTextRangeBase (the shared ITextRangeProvider for Conhost and Windows Terminal). This also updates UiaTracing to collect more useful information on these function calls.
References
#7000 - Epic
Text Attribute Identifiers
ITextRangeProvider::GetAttributeValue
ITextRangeProvider::FindAttribute
PR Checklist

[X] Closes #2161
[X] Tests added/passed

Detailed Description of the Pull Request / Additional comments

TextBuffer:

Exposes a new TextBufferCellIterator that takes in an end position. This simplifies the logic drastically as we can now use this iterator to navigate through the text buffer. The iterator can also expose the position in the buffer.

UiaTextRangeBase:

Shared logic & helper functions:

Most of the text attributes are stored as TextAttributes in the text buffer. To extract them, we generate an attribute verification function via _getAttrVerificationFn(), then use that to verify if a given cell has the desired attribute.
A few attributes are special (i.e. font name, font size, and "is read only"), in that they are (1) acquired differently and (2) consistent across the entire text buffer. These are handled separate from the attribute verification function.

GetAttributeValue: Retrieve the attribute verification of the first cell in the range. Then, verify that the entire range has that attribute by iterating through the text range. If a cell does not have that attribute, return the "reserved mixed attribute value".
FindAttribute: Iterate through the text range and leverage the attribute verification function to find the first contiguous range with that attribute. Then, make the end exclusive and output a UiaTextRangeBase. This function must be able to perform a search backwards, so we abstract the "start" and "end" into resultFirstAnchor and resultSecondAnchor, then perform post processing to output a valid UiaTextRangeBase.

UiaTracing:

GetAttributeValue: Log uia text range, desired attribute, resulting attribute metadata, and the type of the result.
FindAttribute: Log uia text range, desired attribute and attribute metadata, if we were searching backwards, the type of the result, and the resulting text range.
AttributeType is a nice way to understand/record if the result was either of the reserved UIA values, a normal result, or an error.

UiaTextRangeTests:

GetAttributeValue:

verify that we know which attributes we support
test each of the known text attributes (expecting 100% code coverage for _getAttrVerificationFn())

FindAttribute:

test each of the known special text attributes
test IsItalic. NOTE: I'm explicitly only testing one of the standard text attributes because the logic is largely the same between all of them and they leverage _getAttrVerificationFn().

Validation Steps Performed

@codeofdusk has been testing this Conhost build
Tests added for Conhost and shared implementation
Windows Terminal changes were manually verified using accessibility insights and NVDA

Known Issues

font size always returns 0. This is because I need to figure out how to convert the inner representation of the font size to "points".
foreground color is "0" (black). I don't know why.

Things that I should do

[ ] Compare this behavior to another app like Microsoft Word

Please also consider regression testing against legacy console (i.e. disable the UIA feature flag and check text formatting).

@carlos-zamora @DHowett Since it might be interesting for others as well I'm going to post it here:
If y is a trivial operation, x | y often generates significantly faster assembly, than x || y.
C++ requires short-circuit evaluation and thus compilers will absolutely refuse to eagerly evaluate or inline the left-hand side of a boolean operator. For instance if you write boolean = boolean || TrivialFunction() then TrivialFunction()'s code will only ever run if the boolean variable is false, even if it's as trivial as reading a single variable.
You can see the drastic difference here: https://godbolt.org/z/sd9qY8Meh
(And that's despite maximum inline expansion with /Ob3!)

However _bounds.IncrementInBounds(newPos) sounds like a mutating operation. I don't think it should run if _exceeded is true. 😅

it appears that you have talked yourself around into wanting short-circuit evaluation after all ;)

I'm not the most qualified to review this PR, but it does make sorta sense to me.
I hope others find time to review it as well.
Finally I'm not entirely happy with _getAttrVerificationFn. The std::function will always allocate on the heap which is slow in a non-GC language like C++.
I convinced it would've been more ergonomic to call it directly in the loop and have it switch through the switch (attributeId) every time. Since attributeId is constant a modern CPU would have the easiest time of its life to predict the correct switch case.

I would also prefer if it was a little less alloc-happy... but we need to give Carlos a good suggestion then, @lhecker. I think the C-style way of declaring the methods is probably too gross (though it would avoid this.) Could we pass some static refs to these functions so they're only allocated once? Or hold them in a map? Or would holding onto them be a waste of memory long term?

@miniksa This code is written in a style that I'd use for interpreted or JITed languages, because the function call overhead is fairly high, while closure overhead is fairly low. In C/C++ I would suggest leveraging how CPU branch predictors work - function calls and branches are extremely cheap, while closures are extremely expensive.
I wrote a suggestion before:

I convinced it would be more ergonomic to call it directly in the loop and have it switch through the switch (attributeId) every time. Since attributeId is constant a modern CPU would have the easiest time of its life to predict the correct switch case.

@miniksa Oh yeah using function pointers would also be possible for sure and would be even more performant...
If there's any state worth preserving for a specific _getAttrVerificationFn we can simply put it into a member of the class and access it through the this pointer.

@miniksa This code is written in a style that I'd use for interpreted or JITed languages, because in those function call overhead is fairly high, while closure overhead is fairly low.
In C/C++ on the other hand I would suggest leveraging how CPU branch predictors work: constant function calls and constant branches are extremely cheap, while closures and their heap allocations are extremely expensive.
I wrote a suggestion before:

I convinced it would be more ergonomic to call it directly in the loop and have it switch through the switch (attributeId) every time. Since attributeId is constant a modern CPU would have the easiest time of its life to predict the correct switch case.

Derp. Sorry, I missed that.

@miniksa Oh yeah using function pointers would also be possible for sure and would be even more performant...
If there's any state worth preserving for a specific _getAttrVerificationFn we can simply put it into a member of the class and access it through the this pointer.

You mean function pointer like C-style? Or is there a nicer way to encapsulate it?

Checked in with Leonard offline. I made it so that we don't return the lambda. Instead, we basically "run the lambda" that we would've returned.

@DHowett putting this on your radar
@zadjii-msft idk if you wanted to take another look, but I'll leave you as assigned anyways haha.


Enable transparency manipulation

I ran into trouble when manipulating colors across themes. I use the same primary color(deepOrange) for my light and dark themes, but when trying to blend them with their respective backgrounds it looked messy and required unnecessary coloring logic. Following the same philosophy of lighten/darken, opacify allows blending the palette with the rest of the theme in a simple manner, e.g.: opacify(lighten(theme.palette.primary.light, 0.75), 0.2).

Don't forget that colorManipulator.js is considered a private module for now: #10789.

Am I missing something, or is this not just a copy / paste / rename of fade()?

I confirm. It's the 💯% the same logic. One more good reason to document these helpers.

Yeah, sorry, the name isn't the most intuitive, but it was like that when I found it. 😁


tsx comment block indentation

Resolves #167

I'm not familiar with the option here. Would you like give me a brief explanation?

The -= and += operators make changes to formatoptions
formatoptions-=t - removes "Auto-wrap text using textwidth" from the format options
formatoptions+=croql - adds

c - Auto-wrap comments using textwidth, inserting the current comment leader automatically.
r - Insert comment leader after hitting <Enter> in insert mode
o - Indsert comment leader after hitting o or O in normal mode
q - Allow formatting of comments with "gq"
l - Long lines not broken when in insert mode

The lines are in typescript.vim - link
If there's a better place to include in both I will happily move it

Thanks!

@danifus you might be interested in this PR that addresses a bug I believe was introduced with this commit.

@mttrms - TIL - thanks for the follow up, I will be sure to pay it forward