Adam onboarding

Your first day
Goal: I’ve met my manager and some members of the engineering team (over lunch at Tataki). I’ve logged into slack,
google (artsymail), 1Password, and know how to use the coffee machine.

[x] Add a cool pic of yourself to Slack and Jira

Your first week
Goal: I can ssh into gravity (staging and production). I can PR to a repo in Artsy’s Github org. I know what the
engineering teams are, what their main focuses are, and who leads them. I know my way around the Artsy site.
First week checklist
Dev environment:
Keep your eye out for ways to improve our documentation -- including in this repo! A code change is great, but
improving documentation (in whatever little way) with your fresh set of eyes helps us help the next person
onboarding. We emphatically do not underestimate it, this is real work!
Remember to review all setup scripts before executing them :)

[x] Get invited to the Artsy Github org Ask your mentor or another engineer for help, or log into github using
the<EMAIL_ADDRESS>account in 1Password and add yourself.
[x] Set up your general dev environment (download your favorite text editor, terminal application, etc.) If you
don't have a favorite, ask for advice- by default the initial developer setup script below will install and
configure vscode.
[x] Set up a baseline development environment:

[x] Optional: Some Artsy engineers have used strap to automate an
initial, unopinionated setup (applying updates, activating xcode command line tools & encryption, etc) and
avoid some later gotchas.
[x] Artsy Engineering's initial developer setup
provides a base for many artsy projects. Confirm how you want to configure it (ask questions if you're
unsure about the options), and run it on your computer.

[ ] Set up (some) of our most critical projects:

[ ] Gravity
(#product-platform)

[ ] Make MongoDB fast
by following these steps

[ ] Force (#front-end)
[ ] Metaphysics
(#front-end)
[ ] Volt (#product-sell)
[ ] Reaction (#front-end)
[ ] Emission
(#front-end-ios) For each of these, follow the
instructions in the README. If you encounter problems, it’s not your fault! Ask in the appropriate slack
channels (always default to #dev if you don’t know) for help and PR clarifying changes.

[x] While scripts run, consider installing some common engineering tools:

[x] Jasper App; this will help you manage GitHub interactions.
[x] Insomnia an API client that works for graphql and REST endpoints.
[x] Docker for Mac

[x] Make a PR to an Artsy repo.
[x] Ask an engineer for help getting set up with an AWS account. They can find instructions on creating your
account here.
[ ] Follow the instructions in https://github.com/artsy/hokusai to get set up with hokusai.
[ ] Successfully open a gravity staging and production console

Product team:

[x] Get access to JIRA and explore each of the product team’s sprints
[ ] Scan through the issues labeled
“good-first-issue”
[x] Read through the project list

Reading/Learning:

[ ] Take a tour of Artsy. Log into staging.artsy.net with your admin account (i.e.
your @artsymail.com account) and click around without fear. Visit each of the top-nav pages. Bid in an
auction. Make an inquiry. Ask your mentor or others for help with any of these concepts. Have them show you
CMS and some internal apps, like Ohm or Torque.
[ ] Besides
Artsy’s base values, the
engineering team has its own additional
set of principles
[ ] Learn how code goes from your local machine --> production. _Talk to your mentor. Have them explain the
Gravity, Metaphysics, and/or Force/Reaction deployment process. Read about our
staging environment.
[ ] Scan our list of preferred technologies. Dig in where necessary.

[ ] Front-end technologies
[ ] Back-end/Platform technologies
[ ] iOS/React Native? #TODO

[ ] Reading: Best of Our Blog
[ ] Reading:
Internal and external tech learning resources
[ ] Join the #incidents slack channel and scan through some
recent threads
[ ] Read the support doc about how support
incidents are handled by our on-call rotation
[ ] On-call onboarding #TODO

Personal:

[ ] Get coffee/tea with your mentor
[ ] Get coffee/tea with your manager
[ ] Keep track of questions/feedback you have as you go through this process

Onboarding sessions:
Your manager should have set these sessions up for you. If they haven't, poke them kindly.

[ ] Leads of product teams and/or practices
[ ] PM
[ ] Data
[ ] Design
[ ] On-call

End of first week

[ ] Check-in with your manager

Sprint Rotation
Goal: I understand how different product teams run sprints and what their focus is at a deep level. I’ve paired
with multiple members of the engineering team and have a sense for how I might approach tasks.
See the doc on the sprint rotation for
expectations/an explanation.
Join a Team
Goal: I feel part of a team and understand how my work contributes to making Artsy the best way to buy art. I’m
learning about Artsy’s stack and systems while also shipping code.
Before you join:

[ ] Tech lead/PM of product team sets you up with all relevant meetings
[ ] If necessary, review that team’s onboarding docs
[ ] … go!

The JIRA query for good-first-issues can be improved by including "Closed" in the statuses to ignore.

Yup, that’s the one 👍

Item to add to checklist:

Add pic and name to GitHub profile.

For context, name is important to add to ease auto-completion when e.g. assigning PRs


I AM TRYING TO CONNECT ESP32 TO STEVE WEBSERVER USING OCPP1.6.  Did you add charger identity in Steve and did you put correct URL into ArduinoOCPP?

Please confirm your steve server is running.
Please check host ,port and url of steve server in your code is correctly .
if your steve server is wss not ws ,you could modify your code to support it.

Please confirm your steve server is running.
Please check host ,port and url of steve server in your code is correctly .
if your steve server is wss not ws ,you could modify your code to support it.

 Did you add charger identity in Steve and did you put correct URL into ArduinoOCPP?

YES I HAVE MADE CHARGER IDENTITY IN STEVE AND I HAVE PUT THE WS URL IN CODE

Please help me i have tried everything

I think you should check your network if steve server is running on a private network or a public network like a firewall.
May be you can test connect to steve websocket by postman on your computer.

hai,i tested it using postman ,it was unable to connect to my webserver
when i checked steves log it gives ocpp protocol not specified hence denied connection request
what should i do know

This happened with me and it held me for months tbh.

First and foremost, make sure that you have set port forwarding as required and mentioned in this link https://github.com/steve-community/steve/wiki/Prepare-Ubuntu-VM-for-SteVe#optional-ufw-configuration under the "(optional)  UFW Configuration" heading.
"Connection reset by peer" appears when the SteVe VM is running but the command to run SteVe on the VM is not executed. Make sure you run SteVe using this command.

# java -jar target/steve.jar

In the code for ESP32, mention the host, port and url like so:

#define OCPP_HOST "<IP_ADDRESS>"
#define OCPP_PORT 8080
#define OCPP_URL "ws://<IP_ADDRESS>:8080/steve/websocket/CentralSystemService/TestCharger"

make sure to replace the host, port and charger name as per your settings.

hai i was able to coonect to my steve webserver using postman but still my esp32 is not connecting

Hi everyone, thanks for sharing your advice on this!
@rathourcode, sorry for jumping in later. In many cases, the connection problems are caused by firewall settings or by incomplete connection details (see Fareed99's comment for a complete example: https://github.com/matth-x/ArduinoOcpp/issues/138#issuecomment-1523264132).
If Postman connects while running on the same computer as SteVe, the chances are still high that some firewall settings are still missing.
If Postman connects while running on a different computer, it's a hint that something is not going well with the DNS resolver. In that case I would recommend trying it with the pure WebSockets library. Bypassing the OCPP lib will simplify things a lot for resolving the connection issue. Basically, all my library does is to forward the credentials to the WS lib in that line:
https://github.com/matth-x/ArduinoOcpp/blob/0da4df1aa9b7fce37b8279d88b28f6361ae362e8/src/ArduinoOcpp.cpp#L65
In that setup, you could try exchanging IP addresses with the hostname and so on. Somehow it will work for sure.
By coincidence I saw that you opened an issue in the SteVe project (https://github.com/steve-community/steve/issues/1132). Is it related? If yes, what were your steps to get that result?

Hi everyone, thanks for sharing your advice on this!
@rathourcode, sorry for jumping in later. In many cases, the connection problems are caused by firewall settings or by incomplete connection details (see Fareed99's comment for a complete example: #138 (comment)).
If Postman connects while running on the same computer as SteVe, the chances are still high that some firewall settings are still missing.
If Postman connects while running on a different computer, it's a hint that something is not going well with the DNS resolver. In that case I would recommend trying it with the pure WebSockets library. Bypassing the OCPP lib will simplify things a lot for resolving the connection issue. Basically, all my library does is to forward the credentials to the WS lib in that line:
https://github.com/matth-x/ArduinoOcpp/blob/0da4df1aa9b7fce37b8279d88b28f6361ae362e8/src/ArduinoOcpp.cpp#L65
In that setup, you could try exchanging IP addresses with the hostname and so on. Somehow it will work for sure.
By coincidence I saw that you opened an issue in the SteVe project (steve-community/steve#1132). Is it related? If yes, what were your steps to get that result?

First of all great thanks for your library , i will try to do  what you have suugested . thank you very much man for responding.

Hi everyone, thanks for sharing your advice on this!
@rathourcode, sorry for jumping in later. In many cases, the connection problems are caused by firewall settings or by incomplete connection details (see Fareed99's comment for a complete example: #138 (comment)).
If Postman connects while running on the same computer as SteVe, the chances are still high that some firewall settings are still missing.
If Postman connects while running on a different computer, it's a hint that something is not going well with the DNS resolver. In that case I would recommend trying it with the pure WebSockets library. Bypassing the OCPP lib will simplify things a lot for resolving the connection issue. Basically, all my library does is to forward the credentials to the WS lib in that line:
https://github.com/matth-x/ArduinoOcpp/blob/0da4df1aa9b7fce37b8279d88b28f6361ae362e8/src/ArduinoOcpp.cpp#L65
In that setup, you could try exchanging IP addresses with the hostname and so on. Somehow it will work for sure.
By coincidence I saw that you opened an issue in the SteVe project (steve-community/steve#1132). Is it related? If yes, what were your steps to get that result?

hai
i tried  to connect to my  steve server from different computer using postman but failed , i blocked all firewalls even then
i was unable to connect  can you suggest where problem could be

Are you running your SteVe server in a VM?
If yes, then is the network adapter setting configured to 'Bridged'?
By default this setting is set to NAT, which means the VM will be sharing the IP with the host computer. Changing this setting to Bridged assigns a different IP to the VM.
If you already followed the port forwarding step I mentioned in my previous comment, then changing the network adapter setting in the VM will do it for you, as it did for me.

Are you running your SteVe server in a VM? If yes, then is the network adapter setting configured to 'Bridged'? By default this setting is set to NAT, which means the VM will be sharing the IP with the host computer. Changing this setting to Bridged assigns a different IP to the VM.
If you already followed the port forwarding step I mentioned in my previous comment, then changing the network adapter setting in the VM will do it for you, as it did for me.

i am not  running steve on VM , running on my windows os
i used follwing instructions for for configuring my firwall
https://learn.microsoft.com/en-us/sql/reporting-services/report-server/configure-a-firewall-for-report-server-access?view=sql-server-ver16
still got nothing please suggest something

Closing this due to inactivity


OpenId Connect Authentication doesn't work when behind a reverse proxy with an url prefix

Hello,
I use An OpenId Connect Authentication in an ASP.NET Core 2 project. I use a custom CallbackPath.
During development everything work fine (like ever). When I reach the protected page, the OpenId Connect middleware redirect me to the right URI with the good redirect url.
But on my production server…
My App is host inside a Docker behind a reverse proxy and has an url prefix. The app is reachable at https://app.domain.org/api/app1, and /api/app1 is his url prefix.
I must add the url prefix to the CallbackPath, because when the redirect_url is generated, the url prefix isn’t add automatically from the header property X-Forwarded-Prefix.
But it’s look like, if I add this url prefix, when the user’s browser come back from the authentication system, the OpenId Connect middleware never understoud that’s the redirect uri. Because the URL in the context has no url prefix and so is not the same who was stored the CallbackPath.
So, the OpenId Connect middleware never process the authentication and send back the user to the authentication page.
I’ve checked in the header received from the reverse proxy that the value for the properties X-Forwarded-For, X-Forwarded-Host, X-Forwarded-Prefix and X-Forwarded-Proto was well set.
I don’t know what I’ve missed to configure the OpenId Connect middleware ?

This is not an OIDC specific issue, it's a general reverse-proxy issue. All link generation in your app depends on knowing the proper scheme, host, and pathbase.
The UseForwardedHeaders middleware is used to process x-forwarded-for, host, and proto. There's no built in support for x-fowarded-prefix. If this is a constant value you can hard code it in your app with app.UsePathBase("/api/app1"). If it's dynamic you can map this yourself via middleware like this:
app.Use((context, next) =>
{
  var prefix = context.Request.Headers["x-forwarded-prefix"];
  if (!StringValues.IsNullOrEmpty(prefix))
  {
    context.Request.PathBase = PathString.FromUriComponent(prefix.ToString());
    // TODO: subtract PathBase from Path if needed.
  }
  return next();
});

I'll close this and refer you to the main discussion at https://github.com/aspnet/Docs/issues/2384.

Thanks for your answer.
app.UsePathBase("/api/app1") doesn't work for me, but context.Request.PathBase did the trick!
You save my day ;)


Bind key to menu button in sim

Maybe you could bind to the R for player 1 and Y for player 2? You could also use F and H.

Player2 can only use these buttons


[VRChat Request] Regarding local persistence

Hello VRCX!
We see that you're planning on implementing a form of persistence that relies on using Udon remote strings to access local URLs.
Being able to access local URLs isn't good security practice, and generally, we don't want to allow this. In an upcoming security update, we had already planned to block most if not all bogon IP networks.
But then, we learned about this PR. This security change would break VRCX's implementation in that PR. We're also aware that'd it break some other systems, like Varneon's Udonity.
However, we know persistence is really useful and highly desired. As it happens, a couple of types of persistence are coming very soon, including a form of persistence that would implement the features this PR provides. We're looking at 1.5 to 3 months, maybe. These features are yet to be announced so timelines can still move. You're getting a bit of a preview here.
We are concerned that if the VRCX form of persistence becomes popular (as it probably would be, it's pretty convenient), many worlds will then be affected by the security changes. Those worlds will break when we make this change, affecting a large number of users and causing them to lose data. Furthermore, users may accrue large amounts of VRCX-brand local persistence data that won't migrate to the native implementation. As this would be pretty terrible for a user to experience, we wanted to contact you as soon as we learned about this.
As such, we'd like to ask you to refrain from implementing this feature as a baseline feature. We'd also request that you discourage world developers from implementing it and then encouraging users to install unstable versions of VRCX, as shown below:

I'll be glad to answer questions on this issue if needed! You can also contact me on Discord. My username is tupper.
Thank you!

well that sucks

Appreciate the heads up on this~

@dtupper If this is planned to be restricted, can you please make sure localhost is only restricted in live builds and that it remains available during editor / local testing?
Testing data loading within worlds with vrcjson / string loading / etc will become more troublesome without localhost access.

@dtupper If this is planned to be restricted, can you please make sure localhost is only restricted in live builds and that it remains available during editor / local testing? Testing data loading within worlds with vrcjson / string loading / etc will become more troublesome without localhost access.

Yep, the bogon block would not be in effect for local test worlds and editor.

Hello VRChat and @dtupper!
Good to hear from you! Very cool that we're both on the world persistence bandwagon! I've been hammering away at our own version over here and was actually pretty close to finishing it up and pushing it to stable - funny timing, right?
Look, I'm no VRChat developer - I don't know the ins and outs of your systems, teams, project management/structure, or any other various difficulties you may be restricted by, and I'm not here to pretend I do. So please take everything I say with a grain of salt - I'm coming from a place of wanting to help and empower content creators to do things they are not able to do, not cause un-necessary drama.
Firstly, it's great that you reached out to us about this. You could've just shrugged and moved on with your internal planning, but you didn't. I can at least respect that. Pretty cool of you.
Anyway, addressing the big pink elephant in the room! When you say that accessing local URLs isn't good security practice, can you help us understand why, from your perspective? I'm certainly no security expert; but security isn't always a black-and-white situtation. The way you've presented the issue feels a bit binary - either we implement our feature and break stuff when you update your security, or we don't implement it at all and twiddle our thumbs waiting for a native solution. What about a middle road? Can we adapt our feature to match your security updates, or figure out a way to smoothly transition when the time comes? If you were willing, potential security concerns around the feature could be mitigated. What's your stance on this? Why and why not?
You've acknowledged that world persistence is both "useful" and "desired", but, no offense, it's still missing from VRChat after 2 years from its original teaser back in mid-2021. It feels like we've been waiting for the Christmas that never comes. This is not just something that we want, it's a persistent desire from creators in general. It's one of the highest rated feature requests, especially in the context of world creation, at least on canny. Giving creators more avenues to explore their creativity, as I see it, can only benefit the game in the long run.
You've also mentioned that you've got your own persistence in the works, which is super exciting!  I've invested 2 weeks of my own time into this so please understand that using my work as an example of a 'preview' of your own system doesn't exactly soothe my concerns surrounding when this feature will arrive, or what it'll be like. Some extra details or a chance to collaborate on the issue would go a very long way.
We totally get your concern about worlds breaking due to the upcoming security update - nobody wants that, especially if it causes real issues and anguish for the end-user. But you've got to admit, it's a bit ironic that in the same breath, you're acknowledging how popular the persistence feature could be, while also discouraging it. Can't we find a way to make both work in the meantime and make sure any future transition process is as smooth as possible?
Lastly, I'd like to gently push back on your bolded request for us to refrain from implementing our feature and even actively discourage creators from using it. We're not here to cause problems, but we are here to provide value to the community. We're more than happy to play by the rules, but we'd very much appreciate if those rules included some wiggle room for third-party innovation, and not thinly-veiled demands to cease development on things.
I'm more than willing to have open dialogue about this with you and everyone else here, on Github, and figure out something that works for everyone. If anyone else has anything to say, concerns or otherwise, I very much encourage you to voice your opinion on the subject; More perspectives is never a bad thing, as long as discourse is kept civil.
Let's work together and come to a proper solution on this! We're all after the same thing in the end - a better VRChat experience.
Cheers,
Teacup

Teacup asked for other perspectives, so here's one :)
I am not involved in the VRCX project, but I'm a happy user. I've also had persistent storage for worlds on my wishlist for quite a while, so VRCX coming up with a standard method for this is of interest to me, and I was planning to implement it in the next update to my world.
To begin, I think dtupper establishing communication here is overall a good thing. Having any kind of dialogue about this is probably better than none at all, regardless of the outcome.
There are a few things that stood out to me in the original post that I'd like to comment on:

We're looking at 1.5 to 3 months, maybe.

I understand you can't spill the beans too much regarding upcoming features, but hearing this vague timeframe after a third party has already implemented it is difficult to act on. VRChat doesn't have a good track record here either - a reply from staff on the Canny post for this very feature states it is "planned for this year [2021]". Maybe things would've gone differently if the community knew this feature was actually coming soon. This is probably something that can be improved upon in future communication, to help avoid getting in situations like this.

Those worlds will break when we make this change

Surely any world that uses VRCX persistent storage as a prominent feature is going to have error handling to fail gracefully for users who don't have VRCX, are using Quest native VRChat, have untrusted URLs disabled, etc. So even if loading local resources suddenly breaks overnight, it shouldn't cause any undue problems other than the save/load mechanism not working. VRChat could also provide a timeframe for when local requests would start being blocked, in order to give creators who made use of this system some time to prepare/migrate.

Furthermore, users may accrue large amounts of VRCX-brand local persistence data that won't migrate to the native implementation. As this would be pretty terrible for a user to experience, we wanted to contact you as soon as we learned about this.

Given the state of current-day VRChat without VRCX, where there is no persistence at all (aside from a few hacky things using remote servers or copy/pasted strings), I would hardly call this "terrible". Additionally, previous VRChat updates have broken or reset core client settings and it didn't seem like that was considered much of a problem, so I'm confused by the sudden concern about it. This doesn't seem like a big problem to me.
Finally, I too find the sudden "ask" from VRChat head of community to not just alter or reconsider, but to refrain entirely from releasing a feature (which in my understanding does not run afoul of any of VRChat's terms) to be somewhat alarming, albeit not exactly surprising given VRChat's prior handling of similar situations.
Personally, I hope the VRCX developers release this feature in the next stable build, and that we continue to see it adopted by world creators. It would not be the first or last time that a third-party tool or integration eventually got broken due to an update, but it seems to be working well currently, so let's make use of it in the interim. And in the meantime before a first-party solution is available, it'd be great to see cooperation from VRChat staff to limit potential problems caused for this or any other well-meaning tool/service. Like please please please make the untrusted URL system less black-and-white, a simple prompt before allowing the request would alleviate so many security concerns in the first place :(

There's a huge amount of statements, questions, and requests in your posts. I'll do my best to aggregate and respond to them. Forgive me if I skip your specific point, but I can't spend all day writing novel-length responses!
@GroovyTeacup your post in particular has several addressables I'll use.

Anyway, addressing the big pink elephant in the room! When you say that accessing local URLs isn't good security practice, can you help us understand why, from your perspective? I'm certainly no security expert; but security isn't always a black-and-white situtation.

Sure thing. I am also not a security expert, but given a few minutes of searching, I found some demonstrable examples in the wild we want to avoid and confirmed that these are the class of exploits we're concerned about with our Security team. Notably, a few years back, a TrendMicro bug permitted ACE with a GET request. There's also a lot of cases where routers have vulnerabilities along these lines, like this one with Netgear routers and this more recent one with Buffalo routers. Admittedly, the last two are arguments against local network access rather than localhost access, but it's still a tick against it in our book.
I hope these cases (and all the others out there) provide the answer: we're concerned about keeping our users safe from remote code/command execution due to local device access via HTTP.

You've acknowledged that world persistence is both "useful" and "desired", but, no offense, it's still missing from VRChat after 2 years from its original teaser back in mid-2021. It feels like we've been waiting for the Christmas that never comes.

Absolutely. Trust me, more than anyone else, I know how long it takes VRChat to implement things. Down to the count of days, in some cases... Anyhow. Part of my job is to represent the community's voice at VRChat's table, and I think several producers and engineers want to throttle me after I ask "so what's up with persistence? avatar scaling? world rules? 🙃" for the 27th time this week.
With that in mind, rest assured that we know how much people want persistence, and we've been working on it for quite a bit. It's going to be ready quite soon.
I'll admit that the "i want it now!!!" feeling is something I share with you. However, I think that after ~2+ years, a few extra months isn't going to be pivotal to world development.

I've invested 2 weeks of my own time into this so please understand that using my work as an example of a 'preview' of your own system doesn't exactly soothe my concerns surrounding when this feature will arrive, or what it'll be like.

I understand completely. We've invested quite a lot of development time ourselves into ensuring VRChat remains safe for all while delivering features (eventually... 😅) that users want, so I completely get that pain.

Some extra details or a chance to collaborate on the issue would go a very long way.

Let me offer some clarifications and compromises that might help out here.
First, we will not deploy the security change until after "player persistence" is in Live. "Player persistence" is what we're calling data storage sectioned off per world ID, which would feature-match VRCX's implementation from what I'm seeing. As previously noted, this feature is expected to hit release within 1.5 to 3 months.
Second, we will consider adding a launch option that will turn off the bogon check for either a pre-defined set of whitelisted ports or a list of user-defined ports. There are no guarantees here, but the Security team has stated they think that's a possibility.
Third, we will consider having an always-on whitelisted set of ports. This one's a bit more challenging of a sell, though.
Please note the emphasis on the word "consider" in the second and third items. These are not guarantees!
There are a few caveats I want you to keep in mind:
We're hesitant to add more launch options in general. Not only do launch options prevent the majority of our users from accessing that flag (Quest can't use launch flags, ofc), but we are also concerned that adding launch options may encourage VRCX to implement instructions or directly launch VRChat with the debug launch option on by default, which... defeats the security without direct user consent. We're kinda not OK with that? The flag is likely going to be named --insecure-bogon-network-access or something along those lines, and typing that flag in yourself is kind of a "hey, we hope you know what you're doing" check.
Additionally, on that note, we don't feel great about providing users a way to "shoot themselves in the foot", as it were. A launch option to undo a security change is not something we're OK with, and is part of our hesitance here.
Next, we're still worried about the weird user experience of VRCX getting a new feature, then VRChat implementing a version soon after, and then also breaking VRCX's in the same swoop. That looks hostile where no hostility exists. To be blunt, both persistence and this security change were already on the way. Nothing I'm telling you is new changes or features, but they are new for us to announce.
In other words, it will look as if VRChat pulled the rug out from under VRCX fresh after it launched a new feature, which is not what we want to do. This is why we are telling you in no uncertain terms that we have changes in the pipe that will break this feature. We let you know as soon as we found out about it. If we had known sooner, we would have told you sooner.
Finally, a big concern with the VRCX implementation is that it may cause a split in user behavior, content compatibility, and the community. Keep in mind, more than half of our users cannot use VRCX on their local device, which means that they won't be able to use that content.
(selfishly, I also cannot use this, because I don't give third-party applications my VRChat credentials. 🥲)
I hope this makes things a bit more clear, and I hope the compromises help make this transition as painless as possible for end users.

(selfishly, I also cannot use this, because I don't give third-party applications my VRChat credentials. 🥲)
Just wanted to maybe bump something about that.

https://feedback.vrchat.com/feature-requests/p/provide-an-authenticationauthorization-model-for-third-party-api-integrations

Me and a few others are working on a VRChat world called Project Aincrad (we're trying to recreate Sword Art Online), and we have been relying on an avatar parameter based saving system for about a year and a half now. It provides arguably more flexibility than both the system that was proposed by VRCX and what seems to be coming to VRChat now, in the sense that it allows cross world saving. We recently discovered some new workarounds to be able to store a lot more data using that method, but this system is still very maintenance heavy (it likes to break with VRChat updates and is inherently less stable because we literally write binary data through player velocity).
I was wondering if you're able to give us any information about this being / becoming a thing on this or some other native VRChat persistence system, as continuing to develop our existing save system might not be worth the time if it fits our needs as well :)
Without support for cross world saving (from the same author of course) this system would basically not be an option for us. Don't get me wrong, i'm extremely happy that there finally is a word out about any progress towards properly supported persistance at all, as it will still let me do super cool stuff in other projects! But as the main project/world i (and quite a large team actually) work on, this is very big. Current options we're discussing on our team are not using this native system at all, or having the native persistance system act as the main save method, and then using avatar parameter based saving to transfer data between worlds, but for obvious reasons i would rather avoid this 😅

@BocuD For accessing data from other worlds, it seems like this was added in a recent pull request merged in. Not sure if it's done but it at least seems to be a planned thing. https://github.com/vrcx-team/VRCX/pull/558

@dtupper Thank you for your response and understanding. I appreciate the extra details and considering given. I personally agree with you that a parameter to essentially disable a security feature would be a bit odd; I could easily see an app or something telling all of their users "just turn this off It doesn't matter" and suddenly it doesn't mean anything. ...Kind of like the current implementation of untrusted urls.
Even if just a small port range that was researched a little bit beforehand to make sure it's not being actively used by any other known public products, something like that being whitelisted for, perhaps, just localhost, would be useful for tools wanting to make use of it while also minimizing any potential attack vectors by malicious worlds. Even if it's not specifically used for world persistence, having a little support like that for other developers would mean a lot to them.

@BocuD I assume you specifically mean cross world saving? The current system allows for worlds to access another world's data but only if the world in question allows it to prevent abuse; I didn't think about grouping that permission under an an author ID though, that could be a nice way to do it. If you'd like to request anything specific, feel free to reach out to me on discord or the VRCX server and we can talk about implementation.

@GroovyTeacup @PennyBunny I was actually mainly asking @dtupper about this, but i was not aware that VRCX also added this functionality. Thats good to know for sure. I might DM you about that at some point still yeah because implementing the VRCX system would be a good usability improvement we can do for PC users specifically.

@PennyBunny You're welcome, of course! As I noted, I would like to remind you that the port range and launch option is not a guarantee; they have downsides that I listed (and a few more).
The delay until persistence launches, though, is a thing we're doing, along with the caution and our worries about what would happen if VRCX launches this feature and it becomes popular and then gets broken by the upcoming change.

It's a little off topic, but the 5 second rate limiting can be very annoying. Maybe VRChat could consider using a token system where you start off with an amount and you can use them as fast as you want, but they only replenish 1 every 5 seconds. This would help lots of systems that need more requests but not constantly. It would not solve everyone's issues, but it could mitigate them.

As someone who usually praises VRChat for the freedom and creativity it allows, i cannot agree with you (@DarthShader) more. Some of these decisions are very strange and are holding back VRChat just that tiniest bit from being an ideal platform for creators. In 99% of cases we end up building hacky solutions on top of the limitations that are usually quite artificial, and while this can be fun to work around in its own way, it shouldn't be needed (think AvatarImageReader, NUSaveState, and the system VRCX is now proposing just to name a few). Many of these end up being replaced years later by a native solution despite a native solution requiring very little actual development time (especially in comparison to the workaround systems) to be implemented.

(selfishly, I also cannot use this, because I don't give third-party applications my VRChat credentials. 🥲)

@dtupper speaking of this, any uhh... rough timeframe (at least) of when/how OAuth(2) will actually be implemented in a form accessible to third-party applications and not just VRChat partners (currently I observed canny using it, and I think the avatar makers also do (didn't double check this, but makes sense for them to))

@dtupper 👀
I know you said 1.5-3 months and that it can still change, but it has been 3 months. I also just noticed that LS Media supports this now as of the past couple weeks AFAIK. So... you might want to release that feature quick before more people notice.
I was mind-blown that LS Media supported it, and am now considering using VRCX's implementation in my worlds. With no solid guarantee or view of the state of these features, we can only guess.

Just want to pile on here even though my comment probably wont be read, following this would set a bad precedent. Imagine if this same kind of response was done when gogoloco added scaling into its broke version, or when udonsharp was being developed, or when VRCFury was being made. I could go on and on about public projects that people have created just because the VRC team never gets around to them.
And the security issues mentioned doesnt mean anything since its still very easy to track users through things like video links at the minimum. Theoretically, you could literally make a botnet world using video URLs, String loading URLs, Image loading URLs, etc, and all youd need is a HQ webserver for everyone to talk to. And it also brings into question, did the engineers working on it not think about this abuse vector when it was being developed?
This request would be great if we could trust your timelines on things at all. Its just not feasible for pretty much anyone in the creator space at the moment to do that, given the track record the team has established. I mean I'll just point out here that you mentioned 1-3 months as of this git issue, and its coming up on 4 months since you posted this. I know you mentioned "maybe", but I also believe that persistence hasnt been shown off in any blog posts yet to begin with, so functionally to me and pretty much everyone else it doesnt exist
Im sorry if this comment seems negative, its just frustrating to continually see issues that should tops take a few days to fix sit there for eternity, and systems with minor issues or usability issues not be touched anymore after a few months of being implemented, and im sure im not alone in this view

I think you're good @Happyrobot33.
I think I understand now why a lot of people have been upset with VRChat for a very long time relating to features not being released.
When EAC happened, the team did a really good job at communicating constantly and doing lots of updates. But at this point it feels like everything has slowed down. I'm pretty sure the second to last developer update barely had anything in it.
I totally understand that VRChat can't talk about certain things in too much detail. I also completely understand project priority and scope, where it's kind of impossible to work on even small things due to the requirements of other tasks.
But it's really things like this that grind my gears. We have a really useful feature that is actually being implemented buy another software. Yet VRChat doesn't want them to implement it due to "security" and the possibility of their own implementation.
That's fine and all, but it has to come with a hard date. This is one of those times where I genuinely don't understand why they don't have it yet. It's writing JSON to a file, filtered through an API.
I am deathly curious about the internal processes at VRChat and why simple things like this seem to take forever to implement. I understand that sometimes it's difficult to scale a company and get more people to work on features. But recently it feels like VRChat has fallen radio silent again.

I think you're good @Happyrobot33.
I think I understand now why a lot of people have been upset with VRChat for a very long time relating to features not being released.
When EAC happened, the team did a really good job at communicating constantly and doing lots of updates. But at this point it feels like everything has slowed down. I'm pretty sure the second to last developer update barely had anything in it.
I totally understand that VRChat can't talk about certain things in too much detail. I also completely understand project priority and scope, where it's kind of impossible to work on even small things due to the requirements of other tasks.
But it's really things like this that grind my gears. We have a really useful feature that is actually being implemented by another software. Yet VRChat doesn't want them to implement it due to "security" and the possibility of their own implementation.
That's fine and all, but it has to come with a hard date. This is one of those times where I genuinely don't understand why they don't have it yet. It's writing JSON to a file, filtered through an API. How hard can it be that it would take more than 4 months to work on?
I am deathly curious about the internal processes at VRChat and why simple things like this seem to take forever to implement. They even teased imposters nearly half a year ago, which I think will be a game changer to making instances performant, yet that's also been non-existent for months. I understand that sometimes it's difficult to scale a company and get more people to work on features, and like I said certain tasks taking priority. But recently it feels like VRChat has fallen radio silent again.

I don't want to derail the conversation but tack on to that last paragraph udon UI which when last shown off looked finished

The very short version of my response is that both Mobile and Creator Economy are both very, very important to VRChat, and as such, are where most of our resources are at the moment. In addition, development on Persistence has not stopped, but it is slower than expected. That is due in part to our wish to create a durable, holistic system rather than just a simple data store.
While we (clearly) busted our initial estimate of 1-3 months for persistence, that's because priorities changed during that 1-3 month time period... as they often do in gamedev. So, things got pushed back. This is why we -- and basically everyone in software development -- simply don't give feature timelines. They always get moved. Giving dates is a gamble you rarely come out on top on.
While I'd love to give you a running, up-to-date tally of our priorities, that's not an expectation I want to establish for future features, nor do I think it's a reasonable expectation.
I know waiting for long-awaited features is a huge pain. Persistence, in particular, is something I desperately want because it'll enable a huge class of content that simply doesn't exist in VRChat yet. (Preaching to the choir, I know.)
As such, our original ask remains the same.

That is due in part to our wish to create a durable, holistic system rather than just a simple data store.

But why? This is also another problem I take issue with. I understand the desire to create robust solutions. But how is a JSON file with fields not robust enough? Why can't we just have a JSON local store for now, and then you can update the system later if you want to add more advanced functionality to it? Y'all seem to do this with a lot of features.

While it isn't off the table, I don't think we ever wanted to put dates on it -- only current status.

That's completely fine! Like I said, the problem is when you guys announce features that, despite being WIP, look basically finished, and then go radio-silent on them for 4+ months. This is especially true when you yourself said you pretty much only announce things in the dev blogs when they're within 2-3 months from being released.

As such, our original ask remains the same, as we wish to close the security gap that allowing localhost access opens.

I still completely disagree with this decision. At least make it off by default and allow users to override it. I use localhost/local network for a lot of things, namely to watch local media in VR. I also know other people that use local addresses for other useful things in VRChat.
This is really the first time I've heard of a context of local IPs being bad practice, especially since the idea of IoT relies on this functionality.

even better idea when it comes to local IPs: Implement something like was recently implemented with OSCQuery where programs can request a port to communicate with VRC over

A fundamental solution is to store character data transmitted from a specific world on the VRChat server.
However, several years have passed since this canny was registered, and VRChat has long provided this function only to companies, so it was created by users.
But VRChat will block this for security reasons? Isn't it because of money?

I guess we can mark this as completed now!

Not until we have local stores..


Autostart PowerToys

Microsoft PowerToys version
0.65.0
Installation method
GitHub
Running as admin
Yes
Area(s) with issue?
Settings
Steps to reproduce
Active autostart PowerToys Windows 11
✔ Expected Behavior
PowerToys autostart for every Windows's login
❌ Actual Behavior
PowerToys autostart stay in disable.
Other Software
No response

Sorry, can you be a bit more descriptive. The language barrier is not helping here, perhaps.
Are you saying that you are setting PowerToys to auto-start in settings but it's not starting when you login?
/needinfo

Sorry, can you be a bit more descriptive. The language barrier is not helping here, perhaps. Are you saying that you are setting PowerToys to auto-start in settings but it's not starting when you login?
/needinfo

Hi Jaime,
I will describe all the steps that I did :

Open PowerToys > Setting > Active auto-start
Close the Windows PowerToys
Re-open PowerToys to check and in Setting, auto-start stay in disable

Exact same behavior here. I used Autoruns to check if the switch even does anything. If I use the switch to enable autostart and reload in Autoruns nothing changes. Currently the switch just does nothing.

I encountered this issue too. The PowerToys won't start automatically when Windows startup even if I turned on the auto-start function most of the time. And when I activate auto-start, the button still keeps closed when I re-open PowerToys (I didn't kill the process, just closed the window, PowerToys still runs in the background). Furthermore, I didn't find anything related to PowerToys in Start-up apps.
But mine is a little different, sometimes, rarely, the PowerToys will run with Windows start-up, and it shows in Start-up apps.

My issue just solved itself and I don't know the exact reason. Here is what I've done: I updated the app from v0.75.0 to v0.75.1, and the auto-start function just kept activated which means it didn't close itself after I closed the window of it. I took the opportunity to restart my computer, and the issue just solved. And I restart my computer again to make sure the success could reproduce and it just did! I still don't know the reason.
After a few restarting operations, the issue just shows again.

I finished by do it manually. Open "Run" > shell:startup > Create a shortcut of PowerToys and then put it in this folder > Problem solved.


Make all OCS components Burstable except the OSD by reducing the requests CPU

This will reduce our initial CPU footprint, if there are available CPU they can still use it.
Signed-off-by: Orit Wasserman<EMAIL_ADDRESS>

/retest

/hold
According to @oritwas , this is currently more a basis for testing and experimentation than the result. So putting a hold to prevent it from merging prematurely.

@oritwas If this PR is still valid, please rebase and I'll approve it.

@oritwas If this PR is still valid, please rebase and I'll approve it.


Added manual

As discussed, let's put this into releases and have a markdown version tracked in the repository.


UDP support

Hi,
Thank you for a great tool. How much would it take to add UDP you think?
Thanks

I also wish there be udp support

https://github.com/path-network/go-mmproxy might be worth a look.
It's a go port of mmproxy and it supports udp.

@patrickbsf Hi patrick, do you also know which reverse proxy supports proxy protocol and UDP, like HAproxy for TCP? Thanks

Sorry, I haven't had the need, so I haven't looked.

dnsdist supports udp for dns.
https://blog.powerdns.com/2020/03/20/first-alpha-release-of-dnsdist-1-5-0/


Database Connections

Allow users to add database connections. As a start, we'll support the following database providers. More providers to be added soon after:

Microsoft SQL Server
PostgreSQL

We want to have the following features available at a minimum:

[x] 1. Add, edit, remove and test a database connection
[x] 2. Use a database connection in a query and be able to run all common EF Core actions (inserts, delete, selects...etc)
[x] 3. Show generated T-SQL in a SQL tab in output console
[x] 4. Protect connection passwords so they aren't persisted in an unprotected format
[x] 5. Add helper queries to a context menu the user can chose from when right-clicking a connection in the sidebar
[x] 6. Allow user to override the OnConfiguring method of the generated  DatabaseContext in a script
[x] 7. OmniSharp integration

This is close to being code complete..


Circleci integration

CircleCI integration (#101).
It seems to be pretty fast (<30s)!

See https://circleci.com/gh/wilzbach/mir
When you enable it via the web interface - there is also a setting to allow up to 4 parallel builds :)

Btw at some point we can also setup a build matrix there, but it seems to be more complicated and for now we can enjoy the fast success / error from within one minute :)


Subscription not found when creating function app with trial account

Does this occur consistently?
Repro steps:

Action: azureFunctions.createFunctionApp
Error type: SubscriptionNotFound
Error Message: Subscription redacted:id was not found.
Version: 1.7.4
OS: win32
OS Release: 10.0.22000
Product: Visual Studio Code
Product Version: 1.69.2
Language: en

Call Stack
handleErrorResponse extension.bundle.js:2:1823131
deserializeResponseBody extension.bundle.js:2:1823862

Does this occur consistently? Repro steps:
Action: azureFunctions.createFunctionApp Error type: SubscriptionNotFound Error Message: Subscription redacted:id was not found.
Version: 1.7.4 OS: win32 OS Release: 10.0.22000 Product: Visual Studio Code Product Version: 1.69.2 Language: en
Call Stack

Same here (new user)!

Are you guys using student accounts by chance?

Hi,
No, just normal accounts in trial mode with the 200 dollar allowance. I even used two different accounts, but both fail.
I was only able to upload to an App Service, however I’m now deviating from the Microsoft training, so that not ideal.
Best regards, Met vriendelijke groet,
Ingmar Waller
Solution Architect & Product owner ORTEC Routing & Dispatch
+31 (0)6 1313 7176 |<EMAIL_ADDRESS>| LinkedInhttp://www.linkedin.com/in/ingmarwaller | ortec.comhttps://ortec.com/
From: Nathan @.>
Sent: maandag 1 augustus 2022 21:00
To: microsoft/vscode-azurefunctions @.>
Cc: Ingmar Waller @.>; Comment @.>
Subject: Re: [microsoft/vscode-azurefunctions] Stuck on an assignment (Issue #3269)
U ontvangt niet vaak e-mail van<EMAIL_ADDRESS>Meer informatie over waarom dit belangrijk ishttps://aka.ms/LearnAboutSenderIdentification
Are you guys using student accounts by chance?
—
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/vscode-azurefunctions/issues/3269#issuecomment-1201590623, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A2CJTQHFWOVMMPGPSSYTBNTVXANE3ANCNFSM55CPEFTA.
You are receiving this because you commented.Message ID<EMAIL_ADDRESS>

Hi, I am running into this too.  I am following this guide and running into this same issue.

Having the exact same problem here. Just created a 200 dollar free acount with this my email.

Same as described by @raff-run

I've tested this and found it reproducible. With a previously existing account, I could create a function app through VS Code with no problems. I created a new Azure account, signed out in VS Code from the old one, signed in with the new. Then, no matter what region I chose, I got the Subscription ... not found error when trying to create a new function app.
The only way I could get past this was to create a new function app through the Azure portal. Even then, there are problems. New function apps created using new Azure accounts do not have the option to add storage accounts to the function app. I don't know why this is, but perhaps has something to do with the new version of storage accounts that was released recently.
What happens when you try to use the Azure extension to deploy a function to a function app created without any storage is this:
1:43:57 PM AzureFnAppTest2022: Creating placeholder blob for linux consumption function app...
1:43:57 PM AzureFnAppTest2022: Malformed SCM_RUN_FROM_PACKAGE when uploading built content.
1:43:57 PM AzureFnAppTest2022: Generating summary of Oryx build
1:43:57 PM AzureFnAppTest2022: Deployment Log file does not exist in /tmp/oryx-build.log
1:43:57 PM AzureFnAppTest2022: The logfile at /tmp/oryx-build.log is empty. Unable to fetch the summary of build
1:43:57 PM AzureFnAppTest2022: Deployment Failed. deployer = Push-Deployer deploymentPath = Functions App ZipDeploy. Extract zip. Remote build.
1:44:01 PM AzureFnAppTest2022: Deployment failed.

What I did to get past this:
Add the storage account manually. You can do this in the Azure portal by going to Storage accounts, and creating one with default options.
Then find the Access key for that storage account and copy the connection string. There are two access keys, I used the first one.
Then go to the function app's Configuration panel, and add a new Application Setting with the name of AzureWebJobsStorage and the value of the connection string, then click Save. Make sure to click Save!
After this, deploying a function to that function app from the VS Code Azure extension worked for me.

+1 to this.
this not working effects AZ-204 course as the described way to start a function doesnt work currently

ALL of the ways that the Azure docs and tutorials describe to add a function app do not work currently for any new subscribers due to this bug. Including the instructions provided in the Azure portal when you go to create a function. That's a pretty big deal and I wish more attention would be paid to this.

Hi @minaelee
Thanks for detailed explanation. This was helpful for diagnosing the issue. I have a PR opened that should resolve this issue.
I have a custom VSIX here: https://dev.azure.com/ms-azuretools/AzCode/_build/results?buildId=52115&view=artifacts&pathAsName=false&type=publishedArtifacts
But hopefully we will release this soon so that the tutorials will work again.

@nturinski Fantastic, thank you!!

Is it intended that function apps should be able to be created in the extension (without the "Subscription ... was not found") but at this time? Or is the workaround of creating a storage account in the portal still necessary for the time being?
(I'm finding that the latter is true - and also that as long as a storage account has been previously created on the subscription, doesn't matter the resource group, a new function app will create through the extension properly.)

Hi @minaelee
You would have to install the custom build that I linked for the fix to be patched in.  However, we should be releasing the update shortly (v1.8.0) that will include the fix as well. I anticipate that we will get that released before EOD!
Until then, the workaround will be necessary.

Just wanted to let you know that the fix should now be live!

Just wanted to let you know that I tested again.
Azure wasn't happy with me creating so many new accounts, so I had to use the same one as previously (created after the bug started happening) but deleted all resource groups on it except the DefaultResourceGroup-CUS one, and the storage account I'd created on it, to hopefully mimic a new account.
Uninstalled Azure Functions extension and reinstalled. Went through all the steps to create a function app and deploy a function - works perfectly, just as before! Thanks again!


[Suggestion] Support for the Edge Runtime

https://vercel.com/docs/concepts/functions/edge-functions

@alvarlagerlof Thanks for the suggestion. The support is already there. You need to pass edge: true to createGraphQLHandler and it will owrk

@alvarlagerlof Thanks for the suggestion. The support is already there. You need to pass edge: true to createGraphQLHandler and it will owrk

Yes! I figured it out and it seems to work great. Forgot to close the issue.

I ended up going for graphql-yoga since that option seemed undocumented.


[cmake][build-script] Add support for building the runtime with +0 no…

…rmal args.
I am upstreaming some changes to the runtime to support +0 normal arguments.
rdar://34222540

@swift-ci clean smoke test and merge

@swift-ci clean test and merge

I killed the smoke tests. Fingers moved too quickly. Habit is difficult = (.

Lets try this again, now that I fixed the python lint error. I am still sooo happy that I added that test to lit. Nothing like defining away problems!

@swift-ci test and merge

@swift-ci test and merge

@swift-ci test and merge


[Enhancement] Can disqus comments be made optional?

I've had great success with using castanet for my podcast site (and again thanks for the great updates lately) and I'd like to use it for an internal hugo site at work that will function very similar to my podcast site give or take a few differences.  Since it will be within the firewall we don't have a desire to use disqus for episode comments.  I couldn't find any language around making disqus comments optional, but would there be a way to disable it in the site config?

This seems quite reasonable! I'll start working on it soon.


[SPARK-18928][branch-2.0]Check TaskContext.isInterrupted() in FileScanRDD, JDBCRDD & UnsafeSorter

This is a branch-2.0 backport of #16340; the original description follows:
What changes were proposed in this pull request?
In order to respond to task cancellation, Spark tasks must periodically check TaskContext.isInterrupted(), but this check is missing on a few critical read paths used in Spark SQL, including FileScanRDD, JDBCRDD, and UnsafeSorter-based sorts. This can cause interrupted / cancelled tasks to continue running and become zombies (as also described in #16189).
This patch aims to fix this problem by adding TaskContext.isInterrupted() checks to these paths. Note that I could have used InterruptibleIterator to simply wrap a bunch of iterators but in some cases this would have an adverse performance penalty or might not be effective due to certain special uses of Iterators in Spark SQL. Instead, I inlined InterruptibleIterator-style logic into existing iterator subclasses.
How was this patch tested?
Tested manually in spark-shell with two different reproductions of non-cancellable tasks, one involving scans of huge files and another involving sort-merge joins that spill to disk. Both causes of zombie tasks are fixed by the changes added here.

Test build #70417 has started for PR 16357 at commit 66a8370.

LGTM

Test build #70417 has finished for PR 16357 at commit 66a8370.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/70417/
Test PASSed.

Merging to branch 2.0.

@yhuai as I already mentioned a couple of days back, please allow more time for review - not everyone is in the same time zone or have the same working hours. Thanks.

@mridulm ok. I merged this because it is a backport (the original patch has already been merged to 2.1 and master) and I believe Josh has already addressed your concerns. If you want us hold the merge, it will be good to explicitly mention it next time. Thanks!

@yhuai I had not seen the original PR - else would have commented there.
By default, if there is an active review in progress (and is not stale), please give more time : for both the submitter to respond (so that we dont aggresively close pr's as stale) and for reviewers to get to the response.


chore: fixing some broken links

@TomAFrench @signorecello looks like there are broken docs links on master now possibly related to this PR. See https://github.com/noir-lang/noir/pull/4560 and https://github.com/noir-lang/noir/pull/4523 which are failing the build docs step.
The links that are failing are:
Error: Docs markdown link couldn't be resolved: (../reference/NoirJS/noir_js/type-aliases/ForeignCallHandler.md) in "/home/runner/work/noir/noir/docs/versioned_docs/version-v0.25.0/explainers/explainer-oracle.md" for version v0.25.0

Error: Docs markdown link couldn't be resolved: (../reference/NoirJS/noir_js/type-aliases/ForeignCallHandler.md) in "/home/runner/work/noir/noir/docs/versioned_docs/version-v0.25.0/how_to/how-to-oracles.md" for version v0.25.0

Error: Docs markdown link couldn't be resolved: (../reference/NoirJS/noir_js/index.md) in "/home/runner/work/noir/noir/docs/versioned_docs/version-v0.25.0/how_to/how-to-recursion.md" for version v0.25.0

possibly related to this PR

Doesn't look like this PR touches any of those links though. Not sure why they are broken now.

Don't seem related, no... I'll have a look

Ok this is worse than I thought, for some reason typedoc didn't build...


Quote table names to support numbers

When using table names starting or ending with a number the following error occurs. This can be resolved by quoting the table name e.g.
`4fkjsdkfj`

Hi @Slind14, thx for report this bug.


Coverage reports not generated when tests fail

Here's my gulp task:
  gulp.task(taskName, function(callback) {
    require('babel/register')({
      stage: 0
    });

    gulp.src(filesToCover)
      .pipe(istanbul({
	instrumenter: isparta.Instrumenter,
	includeUntested: true,
	babel: {
	  stage: 0
	}
      }))
      .pipe(istanbul.hookRequire())
      .on('finish', function() {
	gulp.src(testFiles, {read: false})
	  .pipe(mocha({
	    reporter: reporter
	  }))
	  .pipe(istanbul.writeReports())
	  .pipe(istanbul.enforceThresholds({
	    thresholds: {
	      global: minimumCodeCoverage
	    }
	  }))
	  .on('error', function(error) {
	    throw new Error("Code coverage is below " + minimumCodeCoverage + "%");
	  })
	  .on('end', callback);
      });
  });

When tests fail, the mocha task throws an error and coverage reports aren't generated. Is there a way to fix this?
Thanks

This is not related to gulp-istanbul. If gulp exit because there's an error, gulp-istanbul report task just won't run.

Is there any way to work around this limitation?

Actually, I retract my question. Now that I think about it, this behaviour isn't desirable because coverage would be way off because of all the tests that don't run when mocha fails.
Thanks


borderRadius is not working properly with type "Bar with Negative Values"

Description
If you follow this exemple and you try to add a border raduis, it won't work properly. The border radius is only applied to the left bars and not to the right bars.
My code :
  var options = {
    series: [
      {
        name: 'Males',
        data: [0.4, 0.65, 0.76, 0.88, 1.5, 2.1, 2.9, 3.8, 3.9, 4.2, 4, 4.3, 4.1, 4.2, 4.5,
          3.9, 3.5, 3
        ]
      },
      {
        name: 'Females',
        data: [-0.8, -1.05, -1.06, -1.18, -1.4, -2.2, -2.85, -3.7, -3.96, -4.22, -4.3, -4.4,
          -4.1, -4, -4.1, -3.4, -3.1, -2.8
        ]
      }
    ],
    chart: {
      type: 'bar',
      height: 440,
      stacked: true
    },
    colors: ['#008FFB', '#FF4560'],
    plotOptions: {
      bar: {
        horizontal: true,
        barHeight: '80%',
        borderRadius: 5   // Here is the issue ...
      },
    },
    dataLabels: {
      enabled: false
    },
    stroke: {
      width: 1,
      colors: ["#fff"]
    },
    grid: {
      xaxis: {
        lines: {
          show: false
        }
      }
    },
    yaxis: {
      min: -5,
      max: 5,
    },
    xaxis: {
      categories: ['85+', '80-84', '75-79', '70-74', '65-69', '60-64', '55-59', '50-54',
        '45-49', '40-44', '35-39', '30-34', '25-29', '20-24', '15-19', '10-14', '5-9',
        '0-4'
      ],
      title: {
        text: 'Percent'
      },
      labels: {
        formatter: function (val) {
          return Math.abs(Math.round(val)) + "%"
        }
      }
    },
  };

  var chart = new ApexCharts(document.querySelector("#chart"), options);
  chart.render();

Steps to Reproduce

Try the code below

Expected Behavior
All bars have rounded corners.
Actual Behavior
Only one side of the chart has bars with rounded corners.
Reproduction Link
https://codepen.io/plapointe6/pen/QWgEKwJ

I found the offending code. Now I just need to find a fix that doesn't break anything else :)

By the way, this only happens when the bar chart is stacked. If you set stack: false this it will work. However, it will not look the same.

The reason this is happening is because when using a stacked bar chart, there is logic that prevents any series from having a radius applied except the very last one. This results in a more appealing visual appearance and ensures all the stacked series data can be properly read. Example:

In this specific case, you are using a stacked bar chart, however, the series are not contiguous, instead they are opposite. This results in only the last series in the index to have the radius applied (the Females).
To fix this, I need to add another property to the bar plot options that will force the radius on all the series of the stacked bar chart.  As you know, naming things can be hard, and this is a very specific scenario, so I don't imagine this option being used very often.
Here are a couple of ideas I had for the property name:

borderRadiusOnAllStackedSeries
borderRadiusOnStackedSeries
forceBorderRadiusOnAllStackedSeries
forceBorderRadiusOnStackedSeries
forceBorderRadius

The usage will look somethiing like this:
plotOptions: {
  bar: {
    horizontal: true,
    barHeight: '80%',
    borderRadius: 5,
    borderRadiusOnAllStackedSeries: true
  },
      }

Let me know what you think and if you have any ideas on good property names to apply the border radius on all stacked series

You're right, that was the intended behavior.
I like borderRadiusOnAllStackedSeries property which is clear from the name that the user wants border-radius on all series of a stacked chart.
Feel free to create a PR with this change.
(Please also add a property to the typescript file)

Another option would be to avoid adding a property.
We could add a check that if there are exactly two series and the first series has negative values then add the radius, otherwise we don't.
This is an edge case and I would prefer not to add a property to the API if we could help it.
Thoughts?

Just an idea: the logic could be the same as for property colors. Allow specifying an array for the property borderRadius. So, It could be possible to set a specific border-radius for each series. Specifying only one value will keep the current behavior (no breaking changes). In my case, after the changes, I could set borderRadius: [5, 5].

@plapointe6 that's a really good idea.  Let me play around a but and see how that works out.

@plapointe6 Your idea worked perfectly and actually ended up being a new feature. You can now assign a border radius to a specific series in your chart. See PR #2614


AclMaintainer with dual stack and cfg/proxy container support

The cfg/proxy support is basically about forwarding trusted ports as part of the ACL and apply the rules for IPv4 too.
After a lot of back and forth I ended up rewriting how we manipulate iptables, using iptables-restore instead of individual commands. One side-effect is that it is very easy to compare the actual iptables state to the wanted state instead of assuming the state as it is today, and we do everything in one command.
Unit tests are stil in progress...

@freva This is work in progress but I would like to get your views on it before doing the last leg.

@freva I don't think we are using docker exec here. We are simply executing the commands in an other network namespace using nsenter. Was that what you meant?

@smorgrav Huh, that's interesting, the method you used is dockerOperations.executeCommandInContainerAsRoot() which does docker exec, but I guess you meant to use dockerOperations.executeCommandInNetworkNamespace()...? If so, then yes, there wont be any docker exec.

Ah... wrong execute cmd... thanks

@freva I think this is ready for a proper review. I'll test it live and verify the iptables rules against what we have on premise before I merge. I suspect I need to adjust a little bit on normalizing the rules.

@hakonhall FYI the changes to AclMaintainer

In addition to the unit tests, I've verified this to work for one aws porxy host. Will merge when green

Also for a regular node in Yahoo?

Tested on premise too.


The plugin change button sytle (margin for example) globbly

before enable:

after enable:

debug info:

sorry for commit this bug twice because of network errors.


Add citations file

I'll merge this, when (fingers crossed) we have the FM' 21 paper through the peer review.


test: Add networking settings for critest

Signed-off-by: Mrunal Patel<EMAIL_ADDRESS>

/test ami

@runcom This is ready.

LGTM but, you need to tag new amis after I merge right?

LGTM

We can wait for nightly to pick this up. Merging.


No metacritic score

No longer see any metacritic scores.

The Metacritic site redesign broke it for the add-on, I will get a fix out hopefully today

Fixed in latest release (v3.8.1 and v3.8.2).
The update is live on the Chrome and Firefox stores, Edge is still in review.


Create set of functions for the filter evaluations

govaluate allows adding custom functions that can be exposed to the filter expression. We could add all sort of convenience functions for example for:

string manipulations

contains() - bool if contains substring
startsWith() - bool if string starts with substring
endsWith() - bool if string ends with substring

Now that we have switched to expr the previously mentioned functions are actually already implemented there, but this is still possible and we should think of what custom functions would make sense to include.

https://github.com/antonmedv/expr/blob/master/docs/Language-Definition.md
https://github.com/antonmedv/expr/blob/master/docs/Custom-Functions.md


Content is rendered as HTML

Hello
I have a problem with rendering data.
The first column contains a product ID, these are unnecessarily converted to HTML.
Example
D&LT123 is converted to D<123.
I fixed this in fnRowCallback, so the data displayed is correct, but when I search for D&LT, no results are found, if I search for D<123, I get results.

Hi,
DataTables will write content to the .innerHTML of the cells, so yes, any HTML elements would be shown converted as such.
If you don't want that to happen, you could either:

Use the built in text renderer
Encode your HTML entities (e.g. & rather than &)

In future, could you post support requests in the forums as requested in the new issue template text please?


Can't find uncss

I've installed and uninstalled the plugin multiple times using:
npm install gulp-uncss --save-dev
and and keep getting a cannot find module gulp-uncss error. I see it in my node folder and in the package.json. Any ideas?

Do you have any error logs?

I do...here:

Looks like you are requiring gulp.uncss, not gulp-uncss.

:O Duh! I even noticed that in the error and didn't look back at my gulpfile or think enough of it. Thank you!

No problem. 😄


Format memory Quantity to Gi in version_syncer

IMPORTANT: Please do not create a Pull Request without creating an issue first.
Format memory Quantity to Gi in version_syncer
Related Issue:
https://github.com/harvester/security/issues/17
Test plan:

make test

@Mergifyio backport v1.1


API requests needed for page load should happen in parallel

The  UI is architected in a pattern that does not issue API calls until previous API calls have been resolved.
<Component#1>
    <Component#2 />
</Component#1>

and component#1 does not render component#2 until after all the API calls it makes are resolved.
The biggest culprit here is the use of SpinnerContainer. which blocks the render of its children while it is loading. What happens is that we show one container's Spinner and then its child's spinner, and then its child's spinner.

Currently app state is bootstrapped thusly: Me => Flags => Orgs => the rest of the app.  Look into how we can flatten that request to behave more like [me, flags, orgs].  All at once.


Exception in nested try-catch suite is 'leaked' to another enclosing try-catch suite

When an exception is raised from a try-catch suite enclosed in another try-catch suite and both suites are trying to catch exception of same type, the exception will be passed directly to the outer suite instead of propagate outwards from inner suite. e.g:
try:
    try:
        raise TypeError
    except TypeError as e:
        print("handled by first except")

    try:
        raise TypeError
    except TypeError as e:
        print("handled by second except")
except TypeError as e:
    print("handled by outer except")

The correct output should be:
handled by first except
handled by second except

But voc produced the following output:
handled by outer except

Edit:
So I did some investigations on what is causing this behavior-- something to do with the Exception table generated by JVM. Below is the Exception table generated from the example code above:
    Exception table:
       from    to  target type
          26   154   157   Class org/python/exceptions/TypeError
          26    37    40   Class org/python/exceptions/TypeError
          90   101   104   Class org/python/exceptions/TypeError

The outer exception handler is placed on top of the Exception table, so when TypeError is thrown, this entry is used by the JVM to resolve exception. The code execution will be redirected to offset 157 (the outer catch handler), bypassing the inner catch handler.
@freakboy3742, is this a bug in the JVM or can we somehow "sort" the Exception table by the label to in voc during transpilation?

Have you tried enumerate "e" with a number? Or Have putting your inner try-blocks in triple-quoted blocks inside an "exec" function call?
It appears like it interprets the call to jump to the end of the outer most try-block and responded to its exception handler due to parsing/translation issues. It may also have an issue with an internal ProgramCounter.


Reevaluate contribute links

Finalize the contribute links, and make sure the Google Spreadsheet our data is stored in is linked on the site somehow.

Fixed in 2a313272ee160310ba8fede1c308b1865cedb8b4, spreadsheet not linked.


action bar height error when used AppCompatV21

action bar height error when used AppCompatV21

private int getActionBarHeight(Context context) {
            int result = 0;
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
                TypedValue tv = new TypedValue();
                context.getTheme().resolveAttribute(android.support.v7.appcompat.R.attr.actionBarSize, tv, true);
                result = TypedValue.complexToDimensionPixelSize(tv.data, context.getResources().getDisplayMetrics());
            }
            return result;
        }

if you use "com.android.support:appcompat-v7:21.0.3", you need to get attribute "android.support.v7.appcompat.R.attr.actionBarSize".

If the Toolbar/Actionbar is being overlapped by the status bar or by the views below it then you are not using fitsSystemWindows properly.
The fitsSystemWindows property is not intended to be used on themes but on views xml. You're not just changing the fitsSystemWindows default for your top-level views by specifying it in the theme, you're overriding it for all views with that theme, which is not what you want. Instead, apply it to the root view on your activity layout file.
There should be no need to measure the Toolbar/Actionbar.

If I understand the issue correctly, the library itself is not getting the correct ActionBar height when using AppCompat v7 21. You can try to reproduce the issue yourselves by simply setting a custom ActionBar height in your styles.xml file.
Since the app is relying on the fixed value android.R.attr.actionBarSize (48dp), whatever custom value you use will result in the library applying a wrong padding.
The new android.support.v7.appcompat.R.attr.actionBarSize value is higher than before (56dp), so you end up with the ActionBar on top of your content, regardless of fitsSystemWindows being set. Same for a higher custom value.
Ideally the library should read the proper value when the app is using AppCompat 21, or it should provide a setActionBarHeight method for custom values.

@mradzinski
Yes, just tried your answer and that fixes this problem.
That is an interesting property, do you know of any other cases where this is required?


Add "Translation" to the org shape for these scratch org configs

Critical Changes
Changes
Issues Closed
New Metadata
Deleted Metadata

@jlantz Just following up on this PR. Do you see any issues merging this?


Use CMake constant

Use CMake constant

Hi, @CIRKIT-ARC-1stGrade
Let's check Pull-requests. (ex. this repository's, CIR-KIT's or stranger's)
You can check and approve them!
You will get skills for programming techniques or point of break off one's work .


Purpose of status model should be documented

After studying the Frame project for awhile I got a good understanding of how everything works. I created a pull request documenting a lot of the tricky things in updated Swagger docs.
One thing I haven't been able to figure out is what "status" is for. I went to the defunct Aqua project and found this great overview of what this is used for and what "pivot" is all about here:
https://github.com/jedireza/aqua/issues/227
I think it can be very useful if folks understand how it was designed. That explanation is great, perhaps it could be added to a dedicated wiki page in the Frame project?

I think it can be very useful if folks understand how it was designed. That explanation is great, perhaps it could be added to a dedicated wiki page in the Frame project?

Sounds good to me.


Licensing

I think that both I and Camille should be listed in the license as significant contributors since this code was extracted from the Godot Engine branch. See authors.md https://github.com/godotengine/godot/blob/master/AUTHORS.md
https://github.com/fire K. S. Ernest (iFire) Lee (fire) https://github.com/godot-extended-libraries/godot-fire/tree/feature/3.2/opensubdiv-next
https://github.com/pouleyKetchoupp Camille Mohr-Daurat (pouleyKetchoupp) wrote the original proposal https://github.com/godotengine/godot-proposals/issues/784

Right sorry, I was/am unsure if I can just list people as contributors, I should've just asked... I have no idea about licensing. Do you mean I should create an AUTHORS file like godot then and put those 2 lines a little bit edited at the top?

I'm ok with it. I don't think @pouleyKetchoupp is in the Godot Engine ecosystem anymore.
Alternatively you can copy the Godot Engine license as is.

The function naming and functionality of the QuadMeshInstance and the mesh are planned to be an exact copy of the corresponding one in Godot so I think the Godot license is needed as well. I'll do the authors thing for now because I do want to credit you (I do in the README just not in the more important License)

Thanks! I would be happy to be credited as well :)
Also excellent work on making this plugin! It's a great idea, will be easier than convincing maintainers to add subdiv support to core.

I made a quick AUTHORS file for now, might change tomorrow cause I'm not fully happy with my wording. It gets included in the artifact as well :)

Thanks! I would be happy to be credited as well :)
Also excellent work on making this plugin! It's a great idea, will be easier than convincing maintainers to add subdiv support to core.

Thanks a lot!  It's been quite fun developing this so far since this is my first actual C++ project (just did small stuff before). I likely would've not started this without your proposal :smile:, so thanks!

Closing as resolved.


Unable to use the plugon on linux

whenever i try and add the plugin it asks to rebuild and fails after roughly 30sec

Hello!
Which release of the plugin are you using?
Ensure that you run GenerateProjectFiles.sh after copying the plugin to your project.
Then rebuild the project using make
If there are any errors during the make build, please post them here for me to help investigate!

Im using the latest released zip.
I dont have a GenerateProjectFiles.sh bash scrip, i also dont see any logs when it tries to rebuild it

I actually found some issues with the contents in master on Linux and have merged in a fix.
I will write some documentation on how to Rebuild the plugin on linux later today.
Hopefully the latest Release fixes your issue though!

the windows zip for 5.1 rebuilt without any issue for linux


Inital Database Setup

The first segment of database data needs to be setup during the first phase.

Trooper data

Slot, Role, and Team/Flight
Rank
Time in Grade
Time in Service
Last Promotion
Start of Service
Initial Training
UTC
Notes
C-Shops
Qualifications
Training Stuff(?) - Phase Blue, BLC, ALC, etc.
Display Name - The actual name of the member. the User Name is a custom field that is private to only that member, as the Display Name can have duplicates.

Website Roles

Admin
Trooper
NCO
RTO
Medic
GlobalClerk (Allows access to all Roster items)
Manager (Allows access to account management pages)
Adjutant

Primary data is saved in the Trooper class - no data from this point onward should be removed. Further implementation of features will add more data to the database as future migrations past the initial release deployment.


Feature request: sign releases with PGP

It would be nice to be able to verify release file signatures with PGP, either through signatures of the file directly or signatures of the checksum file. Particularly in light of the recent issues with codecov.
Thank you for your consideration.

Agreed. Not sure when we'll get to it though. FWIW, We do post checksums with the releases already, though I understand that's not the same as signing.

That's right. Checksums only validate that what you've downloaded is the same as what was uploaded. The signature helps prove that the uploader also had access to some secret information in addition to the credentials to perform the upload in the first place.
To use a concrete example, the codecov bash uploader security incident may have been preventable if they had signed releases of the script and cautious users checked the signatures of those releases.


Build failure: diffoscope

Steps To Reproduce
Steps to reproduce the behavior:

nix-build -A diffoscope (on x86_64-linux, at least)

Build log
=================================== FAILURES ===================================
_____________________________ test_nested_symlink ______________________________

nested_differences = [<Difference file list -- file list []>, <Difference filetype from file(1) -- filetype from file(1) []>, <Difference dir/link -- dir/link []>, <Difference dir/text -- dir/text []>]

    @skip_unless_tools_exist("cpio")
    @skip_unless_tool_is_at_least("dumpimage", dumpimage_version, "2021.01")
    @skip_unless_tools_exist("fdtdump")
    def test_nested_symlink(nested_differences):
>       assert nested_differences[1].source1 == "dir/link"
E       AssertionError: assert 'filetype from file(1)' == 'dir/link'
E         - dir/link
E         + filetype from file(1)

tests/comparators/test_fit.py:128: AssertionError
_________________________ test_nested_compressed_files _________________________

nested_differences = [<Difference file list -- file list []>, <Difference filetype from file(1) -- filetype from file(1) []>, <Difference dir/link -- dir/link []>, <Difference dir/text -- dir/text []>]

    @skip_unless_tools_exist("cpio")
    @skip_unless_tool_is_at_least("dumpimage", dumpimage_version, "2021.01")
    @skip_unless_tools_exist("fdtdump")
    def test_nested_compressed_files(nested_differences):
>       assert nested_differences[2].source1 == "dir/text"
E       AssertionError: assert 'dir/link' == 'dir/text'
E         - dir/text
E         + dir/link

Additional context
https://hydra.nixos.org/build/232823318. Reproduced on latest master (efed6046cf64a6c64d0f62ff38840a238e882adc).
Notify maintainers
@dezgeg @danielfullmer @RaitoBezarius
Metadata
n/a, see Hydra.

It is a known issue from staging fallout. I am on vacations though, so I
hope other maintainers will be able to take a look.
It is suspected to be buried in the file binary upgrade.
Le mar. 29 août 2023 à 00:57, Andrew Marshall @.***> a
écrit :

Steps To Reproduce
Steps to reproduce the behavior:

nix-build -A diffoscope (on x86_64-linux, at least)

Build log
=================================== FAILURES ===================================
_____________________________ test_nested_symlink ______________________________
nested_differences = [<Difference file list -- file list []>, <Difference filetype from file(1) -- filetype from file(1) []>, <Difference dir/link -- dir/link []>, <Difference dir/text -- dir/text []>]
@skip_unless_tools_exist("cpio")
@skip_unless_tool_is_at_least("dumpimage", dumpimage_version, "2021.01")
@skip_unless_tools_exist("fdtdump")
def test_nested_symlink(nested_differences):

  assert nested_differences[1].source1 == "dir/link"

E       AssertionError: assert 'filetype from file(1)' == 'dir/link'
E         - dir/link
E         + filetype from file(1)
tests/comparators/test_fit.py:128: AssertionError
_________________________ test_nested_compressed_files _________________________
nested_differences = [<Difference file list -- file list []>, <Difference filetype from file(1) -- filetype from file(1) []>, <Difference dir/link -- dir/link []>, <Difference dir/text -- dir/text []>]
@skip_unless_tools_exist("cpio")
@skip_unless_tool_is_at_least("dumpimage", dumpimage_version, "2021.01")
@skip_unless_tools_exist("fdtdump")
def test_nested_compressed_files(nested_differences):

  assert nested_differences[2].source1 == "dir/text"

E       AssertionError: assert 'dir/link' == 'dir/text'
E         - dir/text
E         + dir/link
Additional context
https://hydra.nixos.org/build/232823318
Notify maintainers
@dezgeg https://github.com/dezgeg @danielfullmer
https://github.com/danielfullmer @RaitoBezarius
https://github.com/RaitoBezarius
Metadata
n/a, see Hydra.
—
Reply to this email directly, view it on GitHub
https://github.com/NixOS/nixpkgs/issues/252045, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACMZRAMM6P3DND5ZHYGYGTXXUH3FANCNFSM6AAAAAA4CAWGFA
.
You are receiving this because you were mentioned.Message ID:
@.***>

It seems they did in test_cpio.py and test_uimage.py but missed the ones in tests/comparators/test_fit.py. It should be easy to fix following that same pattern.

Thanks! I hit this and tracked it down to the staging-next merge in f900e733c1602b4c46064a9ef0514bb2345a8949.
I see the fix hit nixos-unstable-small today and it works for me. :+1:

Filed https://github.com/NixOS/nixpkgs/issues/256896 for the new issue since it's unrelated other than that the diffoscope tests are failing again.


Vickel: Watch passage-through-trees.com

Vickel requests the watch of the watch_keyword passage-through-trees\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

passage-through-trees\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


JAMES-4085 [S3 SSEC] SSEC key derivation

squash & rebase

The multi-tenancy feature doesn't seem to attract much attention from the community.
The purpose of this PR is to enhance security for each tenant.
-> Close this PR
<EMAIL_ADDRESS>


Cannot import the A32NX

Tried importing best LOD of the cockpit of the A32NX from FlyByWire (A320_NEO_INTERIOR_LOD00.gltf) and I get this error:
Traceback (most recent call last):
  File "C:\Users\\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_msfs_gltf (1).py", line 760, in execute
    ImportProperties.convert_textures_dirs)
  File "C:\Users\\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_msfs_gltf (1).py", line 629, in import_msfs_gltf
    objects = create_objects(gltf['nodes'], meshes)
  File "C:\Users\\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_msfs_gltf (1).py", line 242, in create_objects
    mesh = meshes[node['mesh']]
TypeError: list indices must be integers or slices, not NoneType

location: <unknown location>:-1

Tested in Blender 3.1.2, 2.9 and 2.8.
The other LODs and exterior meshes import correctly.

Fixed by catching all exceptions and just creating a new mesh:
def create_objects(nodes, meshes):
    objects = []
    for node in nodes:
        name = node['name']
        print(node)
        try:
            mesh = meshes[node['mesh']]
-        except KeyError:
+        except:
            mesh = bpy.data.meshes.new(name)

        obj = bpy.data.objects.new(name, mesh)


Vite's HMR Breaks polyfill

A reload fixes the issue.

Here's what I think is happening. Whenever the css is edited, Vite reloads the CSS, setting the spacing to the default value. The polyfill function doesn't run because it only runs on page load. Therefore, you're left with no masonry.


Uncomment test bootstrapper to get integration tests running again

Going to merge this in since it's just uncommenting old yaml. This needs to be enabled in order to run the accompanying IntegrationTest pipeline


chore: switch to variable len. encoding for numbers (using BigSize)

Note: Unclear do we want to do it at all, if so what encoding should we use.

Blocked on https://github.com/fedimint/fedimint/pull/2742 as it will need to recreate migration files as well.

Any encoding that permits two valid encodings of the same integer CAN NOT be used by us as we use the the encoding for consensus_hash.

is not really a problem, as "non-minimal" encodings are detected and rejected at decoding as invalid. Not a pretty design, I don't particularly enjoy it, kind of crude, but technically works, sorts lexicographicaly just fine, AFAICT.

I have come away with the impression that a consensus critical variable length integer encoding is a potential footgun and would therefore advise against it as the space savings seem negligible anyways, or not?

The savings depend on what is being encoded exactly, but generally... there seem to be a lot of numbers in consensus.
I don't share a fear of variable length encoding. Either it's correct, or not. We have bunch of other variable len. encoded stuff like collections, Dyn* types etc.

Any encoding that permits two valid encodings of the same integer CAN NOT be used by us as we use the the encoding for consensus_hash.

is not really a problem, as "non-minimal" encodings are detected and rejected at decoding as invalid. Kind of crude, but technically works, sorts lexicographicaly just fine, AFAICT.

I saw that comment on LDK and my conclusion is exactly the same: it's just fine

Note: Unclear do we want to do it at all, if so what encoding should we use.

Right now I do not think a varint encoding is worth our time, at least if our motive is saving space, as there is so much way worse waste of space everywhere in consensus right which we should address instead, for example:
We write every accepted transaction to disk twice but only ever read the module_instace_ids and nothing else. (This is fixed in my next pr)
I believe we also write redundant transactions submitted by different peers within on epoch to disk. (This is gonna be fixed with aleph bft)
Furthermore, for every generated ecash note we put 2f+1 signature shares on the broadcast and therefore also on the disk forever. Every share is 64 bytes and since ecash reissue is probably our most common transaction, each transaction containing several notes, signature shares may easily end up constituting the majority of our disk usage. However, we don’t even not need to order them, the client can easily collect the shares from the guardians and combine the shares by itself. Would also save a the guardians a ton of compute as every signature share also needs to be verified which is actually the most expensive operation in threshold crypto as it requires two pairings.
We use Amount for ecash notes even though we only have 30 tiers which could be encoded in a single byte. With encoding the amounts with variant will only encode them with several bytes as it will encode the actual msats for every tier which may easily require 3-4 bytes.
All of the aforementioned changes either do not add complexity or even reduce it. Therefore my argument is that right now is not the time to worry about varint encodings to save space.

It's subjective, but to me varint is not a lot of complexity in grand scheme of things, and a win is a win: every number, enum tag, length will get space savings. We use consensus encoding in more places than only consensus: non-consensus db stuff gets smaller, QR codes get smaller, less bandwidth here and there.
I agree that the optimizations listed by @joschisan are more impactful and would love to see all of them, but they do require more work so we will have to wait longer for them, even if they make things simpler overall, and at least some do add some small complexity (e.g. having to have a federation config to lookup note amount; still totally worth it, IMO!).

I read the code of BigSize and they reject non-minimal representations, so I agree with @dpc and @douglaz that it's not a big deal. It will be slightly harder to read hex-encoded data structures when debugging, but I have the feeling that only few people do that anyway. Not having to worry as much about the size of some integer we add here or there is worth it imo.


mariadb-connector-c was build without sha256 authentication plugin

That prevents to connect ClickHouse to ClickHouse via mysql table function through MySQL compatibility protocol (that I accidentially wanted to test).

Fixed by @yurriy


Passing Values to Functions with Arguments

@erictleung, @pranayberry, @raisedadead, @ceejayoz
Passing Values to Functions with Arguments
Issue Description
As with the previous exercise (Write Reusable JavaScript with Functions -- issue #8551) the example code and what the students are to write are essentially identical. The identical function name becomes confusing.
Either slightly renaming either function would be helpful or saying "rewrite the function, changing the contents of ..... " would be helpful in this case.
Screenshot

@hrokr thanks for the issue. Looks like this was fixed with a recently PR #9485. Closing as resolved. Happy coding!